From eaedc113c4d7fdf7aef907e74766e8f4678d739e Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Thu, 23 Mar 2023 09:50:17 +0100 Subject: [PATCH] Backporting translations. --- bugs.po | 44 +- c-api/arg.po | 4 +- c-api/buffer.po | 6 +- c-api/bytearray.po | 11 +- c-api/bytes.po | 24 +- c-api/concrete.po | 7 +- c-api/exceptions.po | 6 +- c-api/function.po | 25 +- c-api/init.po | 16 +- c-api/mapping.po | 4 +- c-api/refcounting.po | 29 ++ c-api/structures.po | 20 +- c-api/typeobj.po | 14 +- c-api/unicode.po | 73 ++- distributing/index.po | 2 +- distutils/builtdist.po | 10 +- distutils/index.po | 9 +- extending/extending.po | 47 +- extending/newtypes_tutorial.po | 94 +++- faq/design.po | 23 +- faq/general.po | 33 +- faq/programming.po | 39 +- faq/windows.po | 5 +- glossary.po | 25 +- howto/clinic.po | 3 +- howto/instrumentation.po | 9 +- howto/logging-cookbook.po | 559 +++++++++++++++++++++-- install/index.po | 10 +- library/__future__.po | 2 +- library/ast.po | 80 +++- library/asyncio-api-index.po | 18 +- library/asyncio-dev.po | 92 +++- library/asyncio-eventloop.po | 4 + library/asyncio-future.po | 114 ++++- library/asyncio-llapi-index.po | 76 ++-- library/asyncio-policy.po | 2 + library/asyncio-protocol.po | 2 +- library/asyncio-queue.po | 2 + library/asyncio-subprocess.po | 101 ++++- library/asyncio.po | 4 +- library/audioop.po | 55 ++- library/audit_events.po | 34 +- library/bz2.po | 4 +- library/codeop.po | 6 +- library/collections.abc.po | 12 +- library/collections.po | 40 +- library/contextlib.po | 9 +- library/csv.po | 7 +- library/ctypes.po | 101 ++++- library/dataclasses.po | 172 ++++++- library/datetime.po | 391 ++++++---------- library/dbm.po | 2 +- library/decimal.po | 100 ++-- library/doctest.po | 753 ++++++++++++++++++++++++++++--- library/email.errors.po | 3 +- library/email.po | 3 +- library/ensurepip.po | 71 ++- library/enum.po | 34 +- library/exceptions.po | 19 +- library/fileinput.po | 112 ++++- library/ftplib.po | 39 +- library/functions.po | 32 +- library/functools.po | 25 +- library/gc.po | 159 ++++++- library/gettext.po | 9 +- library/glob.po | 11 +- library/html.parser.po | 136 +++++- library/http.client.po | 242 +++++++++- library/http.server.po | 83 +++- library/importlib.po | 23 +- library/inspect.po | 617 +++++++++++++++++++++---- library/io.po | 12 +- library/ipaddress.po | 193 ++++++-- library/itertools.po | 4 + library/keyword.po | 12 +- library/linecache.po | 7 + library/logging.config.po | 6 +- library/logging.handlers.po | 40 +- library/logging.po | 190 +++++++- library/mailbox.po | 15 +- library/msvcrt.po | 29 +- library/multiprocessing.po | 55 ++- library/nntplib.po | 2 +- library/optparse.po | 8 +- library/os.po | 98 +++- library/ossaudiodev.po | 2 + library/pathlib.po | 31 +- library/pickle.po | 575 +++++++++++++++++++++-- library/profile.po | 4 +- library/py_compile.po | 3 +- library/pyexpat.po | 2 +- library/random.po | 9 +- library/re.po | 3 +- library/select.po | 2 +- library/signal.po | 3 +- library/site.po | 3 +- library/smtplib.po | 6 +- library/socket.po | 13 +- library/socketserver.po | 264 ++++++++++- library/sqlite3.po | 4 + library/ssl.po | 56 +-- library/stat.po | 73 +-- library/stdtypes.po | 10 +- library/string.po | 71 ++- library/sys.po | 152 +++++-- library/syslog.po | 72 ++- library/tempfile.po | 18 +- library/textwrap.po | 3 +- library/time.po | 24 +- library/timeit.po | 7 +- library/tkinter.ttk.po | 2 +- library/turtle.po | 27 +- library/types.po | 2 +- library/unittest.po | 47 +- library/urllib.request.po | 2 + library/xml.etree.elementtree.po | 133 ++++-- library/xml.po | 6 +- library/xmlrpc.client.po | 3 +- library/zipfile.po | 23 +- license.po | 17 +- reference/compound_stmts.po | 20 +- reference/datamodel.po | 77 +++- reference/expressions.po | 22 +- reference/import.po | 15 +- reference/lexical_analysis.po | 16 +- reference/simple_stmts.po | 14 +- sphinx.po | 28 +- tutorial/classes.po | 5 +- tutorial/controlflow.po | 36 +- tutorial/datastructures.po | 8 +- tutorial/errors.po | 22 +- tutorial/inputoutput.po | 12 + tutorial/venv.po | 7 +- using/windows.po | 23 +- whatsnew/2.3.po | 5 +- whatsnew/2.4.po | 5 +- whatsnew/2.5.po | 5 +- whatsnew/2.6.po | 5 +- whatsnew/2.7.po | 7 +- whatsnew/3.1.po | 5 +- whatsnew/3.2.po | 35 +- whatsnew/3.3.po | 63 +-- whatsnew/3.4.po | 62 +-- whatsnew/3.5.po | 67 +-- whatsnew/3.6.po | 74 +-- whatsnew/3.7.po | 88 ++-- whatsnew/3.8.po | 77 ++-- 147 files changed, 6218 insertions(+), 1880 deletions(-) diff --git a/bugs.po b/bugs.po index 2c87b0c5..667fd267 100644 --- a/bugs.po +++ b/bugs.po @@ -113,20 +113,19 @@ msgid "Using the Python issue tracker" msgstr "Utilisation du gestionnaire de tickets Python" #: bugs.rst:43 -#, fuzzy msgid "" "Issue reports for Python itself should be submitted via the GitHub issues " "tracker (https://github.com/python/cpython/issues). The GitHub issues " "tracker offers a web form which allows pertinent information to be entered " "and submitted to the developers." msgstr "" -"Les rapports de bogues pour Python lui-même devraient être soumis via le " -"l'outil de suivi des bogues (*Bug Tracker Python* — http://bugs.python." -"org/). Le gestionnaire de tickets propose un formulaire Web permettant de " -"saisir des informations pertinentes à soumettre aux développeurs." +"Les rapports concernant un problème relatif à Python lui-même doivent être " +"soumis *via* l'outil de suivi des problèmes de GitHub (https://github.com/" +"python/cpython/issues). Le gestionnaire de tickets propose un formulaire Web " +"permettant de saisir des informations pertinentes à soumettre aux " +"développeurs." #: bugs.rst:48 -#, fuzzy msgid "" "The first step in filing a report is to determine whether the problem has " "already been reported. The advantage in doing so, aside from saving the " @@ -138,46 +137,44 @@ msgid "" msgstr "" "La première étape pour remplir un rapport est de déterminer si le problème a " "déjà été rapporté. L'avantage de cette approche, en plus d'économiser du " -"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " +"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " "il se peut que le problème soit déjà résolu dans la prochaine version, ou " "que des informations complémentaires soient attendues (auquel cas votre " -"contribution est la bienvenue !). Pour ce faire, cherchez dans la base de " -"données de bogues grâce à la boîte de recherche en haut de la page." +"contribution est la bienvenue !). Pour ce faire, cherchez dans le " +"gestionnaire de tickets grâce à la boîte de recherche en haut de la page." #: bugs.rst:55 -#, fuzzy msgid "" "If the problem you're reporting is not already in the list, log in to " "GitHub. If you don't already have a GitHub account, create a new account " "using the \"Sign up\" link. It is not possible to submit a bug report " "anonymously." msgstr "" -"Si le problème que vous soumettez n'est pas déjà dans l'outil de suivi des " -"bogues, revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez " -"pas déjà un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », " -"ou, si vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* " -"dans la barre latérale. Il n'est pas possible de soumettre un rapport de " -"bogue de manière anonyme." +"Si le problème que vous soumettez n'est pas déjà dans la liste, connectez-" +"vous à GitHub. Si vous n'avez pas déjà un compte GitHub, créez un nouveau " +"compte en cliquant sur le lien « Sign Up ». Il n'est pas possible de " +"soumettre un rapport de bogue de manière anonyme." #: bugs.rst:60 -#, fuzzy msgid "" "Being now logged in, you can submit an issue. Click on the \"New issue\" " "button in the top bar to report a new issue." msgstr "" -"Une fois identifié, pour pouvez rapporter un bogue. Sélectionnez le lien " -"*Create New* dans la barre latérale pour ouvrir un nouveau formulaire de " -"rapport de bogue." +"Une fois connecté, vous pouvez rapporter un problème. Sélectionnez le bouton " +"*New issue* dans la barre en haut pour ouvrir un nouveau formulaire de " +"rapport." #: bugs.rst:63 msgid "The submission form has two fields, \"Title\" and \"Comment\"." -msgstr "" +msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*." #: bugs.rst:65 msgid "" "For the \"Title\" field, enter a *very* short description of the problem; " "less than ten words is good." msgstr "" +"Dans le champ *Title*, entrez une *très* brève description du problème " +"rencontré ; tâchez de vous limiter à dix mots." #: bugs.rst:68 msgid "" @@ -193,15 +190,14 @@ msgstr "" "informations de versions)." #: bugs.rst:73 -#, fuzzy msgid "" "Each issue report will be reviewed by a developer who will determine what " "needs to be done to correct the problem. You will receive an update each " "time an action is taken on the issue." msgstr "" -"Chaque bogue sera attribué à un développeur qui déterminera ce qui est " +"Chaque rapport sera attribué à un développeur qui déterminera ce qui est " "nécessaire d'entreprendre pour corriger le problème. Vous recevrez une " -"notification à chaque action effectuée sur le bogue." +"notification à chaque action concernant le rapport." #: bugs.rst:82 msgid "" diff --git a/c-api/arg.po b/c-api/arg.po index ae3fd2e4..a63a0eae 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-23 09:47+0100\n" -"PO-Revision-Date: 2018-10-04 12:14+0200\n" +"PO-Revision-Date: 2023-03-23 10:05+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -688,7 +688,7 @@ msgstr "``n`` (:class:`int`) [``Py_ssize_t``]" #: c-api/arg.rst:292 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." -msgstr "Convertit un entier Python en un :c:type:`short int` C." +msgstr "Convertit un entier Python en un :c:type:`Py_ssize_t`." #: c-api/arg.rst:299 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" diff --git a/c-api/buffer.po b/c-api/buffer.po index 989d4be6..f8fed66c 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -455,7 +455,7 @@ msgstr "oui" #: c-api/buffer.rst:323 c-api/buffer.rst:325 msgid "if needed" -msgstr "" +msgstr "si nécessaire" #: c-api/buffer.rst:278 c-api/buffer.rst:298 c-api/buffer.rst:302 #: c-api/buffer.rst:327 c-api/buffer.rst:331 c-api/buffer.rst:335 @@ -513,7 +513,7 @@ msgstr "" #: c-api/buffer.rst:321 msgid "readonly" -msgstr "" +msgstr "lecture seule" #: c-api/buffer.rst:321 msgid "format" @@ -529,7 +529,7 @@ msgstr "0" #: c-api/buffer.rst:329 c-api/buffer.rst:337 msgid "1 or 0" -msgstr "" +msgstr "0 ou 1" #: c-api/buffer.rst:342 msgid "Complex arrays" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index d804059a..467059a3 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -65,13 +65,12 @@ msgstr "" "implémente le :ref:`protocole buffer `." #: ../Doc/c-api/bytearray.rst:50 -#, fuzzy msgid "" "Create a new bytearray object from *string* and its length, *len*. On " "failure, ``NULL`` is returned." msgstr "" "Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa " -"longueur, *len*. En cas d'échec, *NULL* est renvoyé." +"longueur, *len*. En cas d'échec, ``NULL`` est renvoyé." #: ../Doc/c-api/bytearray.rst:56 msgid "" @@ -81,21 +80,19 @@ msgstr "" "avec le résultat." #: ../Doc/c-api/bytearray.rst:61 -#, fuzzy msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer." msgstr "" "Renvoie la taille de *bytearray* après vérification de la présence d'un " -"pointeur *NULL*." +"pointeur ``NULL``." #: ../Doc/c-api/bytearray.rst:66 -#, fuzzy msgid "" "Return the contents of *bytearray* as a char array after checking for a " "``NULL`` pointer. The returned array always has an extra null byte appended." msgstr "" "Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en " -"vérifiant que ce n'est pas un pointeur *NULL*. Le tableau renvoyé se termine " -"toujours par un octet *null*." +"vérifiant que ce n'est pas un pointeur ``NULL``. Le tableau renvoyé a " +"toujours un caractère *null* rajouté." #: ../Doc/c-api/bytearray.rst:73 msgid "Resize the internal buffer of *bytearray* to *len*." diff --git a/c-api/bytes.po b/c-api/bytes.po index 9cd0d1bf..aa61904d 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -96,7 +96,7 @@ msgstr "Commentaires" #: c-api/bytes.rst:70 msgid ":attr:`%%`" -msgstr "" +msgstr ":attr:`%%`" #: c-api/bytes.rst:70 msgid "*n/a*" @@ -108,7 +108,7 @@ msgstr "" #: c-api/bytes.rst:72 msgid ":attr:`%c`" -msgstr "" +msgstr ":attr:`%c`" #: c-api/bytes.rst:75 c-api/bytes.rst:96 msgid "int" @@ -120,7 +120,7 @@ msgstr "" #: c-api/bytes.rst:75 msgid ":attr:`%d`" -msgstr "" +msgstr ":attr:`%d`" #: c-api/bytes.rst:75 msgid "Equivalent to ``printf(\"%d\")``. [1]_" @@ -128,7 +128,7 @@ msgstr "" #: c-api/bytes.rst:78 msgid ":attr:`%u`" -msgstr "" +msgstr ":attr:`%u`" #: c-api/bytes.rst:78 msgid "unsigned int" @@ -140,7 +140,7 @@ msgstr "" #: c-api/bytes.rst:81 msgid ":attr:`%ld`" -msgstr "" +msgstr ":attr:`%ld`" #: c-api/bytes.rst:81 msgid "long" @@ -152,7 +152,7 @@ msgstr "" #: c-api/bytes.rst:84 msgid ":attr:`%lu`" -msgstr "" +msgstr ":attr:`%lu`" #: c-api/bytes.rst:84 msgid "unsigned long" @@ -164,7 +164,7 @@ msgstr "" #: c-api/bytes.rst:87 msgid ":attr:`%zd`" -msgstr "" +msgstr ":attr:`%zd`" #: c-api/bytes.rst:87 msgid "Py_ssize_t" @@ -176,7 +176,7 @@ msgstr "" #: c-api/bytes.rst:90 msgid ":attr:`%zu`" -msgstr "" +msgstr ":attr:`%zu`" #: c-api/bytes.rst:90 msgid "size_t" @@ -188,7 +188,7 @@ msgstr "" #: c-api/bytes.rst:93 msgid ":attr:`%i`" -msgstr "" +msgstr ":attr:`%i`" #: c-api/bytes.rst:93 msgid "Equivalent to ``printf(\"%i\")``. [1]_" @@ -196,7 +196,7 @@ msgstr "" #: c-api/bytes.rst:96 msgid ":attr:`%x`" -msgstr "" +msgstr ":attr:`%x`" #: c-api/bytes.rst:96 msgid "Equivalent to ``printf(\"%x\")``. [1]_" @@ -204,7 +204,7 @@ msgstr "" #: c-api/bytes.rst:99 msgid ":attr:`%s`" -msgstr "" +msgstr ":attr:`%s`" #: c-api/bytes.rst:99 msgid "const char\\*" @@ -216,7 +216,7 @@ msgstr "" #: c-api/bytes.rst:102 msgid ":attr:`%p`" -msgstr "" +msgstr ":attr:`%p`" #: c-api/bytes.rst:102 msgid "const void\\*" diff --git a/c-api/concrete.po b/c-api/concrete.po index 24b29523..b303bb51 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -36,7 +36,6 @@ msgstr "" "types d'objets Python." #: ../Doc/c-api/concrete.rst:19 -#, fuzzy msgid "" "While the functions described in this chapter carefully check the type of " "the objects which are passed in, many of them do not check for ``NULL`` " @@ -46,9 +45,9 @@ msgid "" msgstr "" "Tandis que les fonctions décrites dans ce chapitre vérifient avec soin le " "type des objets qui leur sont passés, beaucoup d'entre elles ne vérifient " -"pas que *NULL* est passé au lieu d'un objet valide. Autoriser *NULL* à être " -"passé peut provoquer des violations d'accès à la mémoire et ainsi terminer " -"immédiatement l'interpréteur." +"pas que ``NULL`` est passé au lieu d'un objet valide. Autoriser ``NULL`` à " +"être passé peut provoquer des violations d'accès à la mémoire et ainsi " +"terminer immédiatement l'interpréteur." #: ../Doc/c-api/concrete.rst:28 msgid "Fundamental Objects" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index 40b4c6d4..2fc1360a 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -657,7 +657,7 @@ msgstr "" #: c-api/exceptions.rst:648 msgid "3.11" -msgstr "" +msgstr "3.11" #: c-api/exceptions.rst:640 msgid "" @@ -1057,7 +1057,7 @@ msgstr ":c:data:`PyExc_ModuleNotFoundError`." #: c-api/exceptions.rst:889 msgid ":exc:`ModuleNotFoundError`" -msgstr "" +msgstr ":exc:`ModuleNotFoundError`" #: c-api/exceptions.rst:891 msgid ":c:data:`PyExc_NameError`" @@ -1121,7 +1121,7 @@ msgstr ":c:data:`PyExc_ReferenceError`" #: c-api/exceptions.rst:905 msgid ":exc:`RecursionError`" -msgstr "" +msgstr ":exc:`RecursionError`" #: c-api/exceptions.rst:907 msgid ":c:data:`PyExc_ReferenceError`" diff --git a/c-api/function.po b/c-api/function.po index 9eadc610..f00fa9a7 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -20,11 +20,11 @@ msgstr "Objets fonctions" #: ../Doc/c-api/function.rst:10 msgid "There are a few functions specific to Python functions." -msgstr "" +msgstr "Certaines fonctions sont spécifiques aux fonctions Python." #: ../Doc/c-api/function.rst:15 msgid "The C structure used for functions." -msgstr "" +msgstr "La structure C utilisée pour les fonctions." #: ../Doc/c-api/function.rst:22 msgid "" @@ -32,6 +32,8 @@ msgid "" "function type. It is exposed to Python programmers as ``types." "FunctionType``." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` et représente le type fonction " +"en Python. Il est exposé aux développeurs comme ``types.FunctionType``." #: ../Doc/c-api/function.rst:28 msgid "" @@ -45,6 +47,8 @@ msgid "" "*globals* must be a dictionary with the global variables accessible to the " "function." msgstr "" +"Renvoie une nouvelle fonction associée avec l'objet *code*. *globals* doit " +"être un dictionnaire avec les variables globales accessibles à la fonction." #: ../Doc/c-api/function.rst:37 msgid "" @@ -64,11 +68,12 @@ msgstr "" #: ../Doc/c-api/function.rst:54 msgid "Return the code object associated with the function object *op*." -msgstr "" +msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*." #: ../Doc/c-api/function.rst:59 msgid "Return the globals dictionary associated with the function object *op*." msgstr "" +"Renvoie le dictionnaire global associé avec l'objet de la fonction *op*." #: ../Doc/c-api/function.rst:64 msgid "" @@ -82,38 +87,50 @@ msgid "" "Return the argument default values of the function object *op*. This can be " "a tuple of arguments or ``NULL``." msgstr "" +"Renvoie les valeurs par défaut de l'argument de l'objet de la fonction *op*. " +"Cela peut être un tuple d'arguments ou ``NULL``." #: ../Doc/c-api/function.rst:77 msgid "" "Set the argument default values for the function object *op*. *defaults* " "must be ``Py_None`` or a tuple." msgstr "" +"Définir les valeurs par défaut de l'argument pour l'objet de la fonction " +"*op*. *defaults* doit être ``Py_None`` ou un tuple." #: ../Doc/c-api/function.rst:80 ../Doc/c-api/function.rst:94 #: ../Doc/c-api/function.rst:108 msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." -msgstr "" +msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec." #: ../Doc/c-api/function.rst:85 msgid "" "Return the closure associated with the function object *op*. This can be " "``NULL`` or a tuple of cell objects." msgstr "" +"Renvoie la fermeture associée avec l'objet de la fonction *op*. Cela peut " +"être ``NULL`` ou un tuple d'objets cellule." #: ../Doc/c-api/function.rst:91 msgid "" "Set the closure associated with the function object *op*. *closure* must be " "``Py_None`` or a tuple of cell objects." msgstr "" +"Définir la fermeture associée avec l'objet de la fonction *op*. *closure* " +"doit être ``Py_None`` ou un tuple d'objets cellule." #: ../Doc/c-api/function.rst:99 msgid "" "Return the annotations of the function object *op*. This can be a mutable " "dictionary or ``NULL``." msgstr "" +"Renvoie les annotations de l'objet de la fonction *op*. Cela peut être un " +"dictionnaire mutable ou ``NULL``." #: ../Doc/c-api/function.rst:105 msgid "" "Set the annotations for the function object *op*. *annotations* must be a " "dictionary or ``Py_None``." msgstr "" +"Définir les annotations pour l'objet de la fonction *op*. *annotations* doit " +"être un dictionnaire ou ``Py_None``." diff --git a/c-api/init.po b/c-api/init.po index c8bb711c..b6ce7a8f 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -1593,7 +1593,7 @@ msgstr "" #: c-api/init.rst:1372 msgid ":const:`PyTrace_CALL`" -msgstr "" +msgstr ":const:`PyTrace_CALL`" #: c-api/init.rst:1377 c-api/init.rst:1388 msgid "Always :c:data:`Py_None`." @@ -1601,7 +1601,7 @@ msgstr "" #: c-api/init.rst:1374 msgid ":const:`PyTrace_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_EXCEPTION`" #: c-api/init.rst:1374 msgid "Exception information as returned by :func:`sys.exc_info`." @@ -1609,11 +1609,11 @@ msgstr "" #: c-api/init.rst:1377 msgid ":const:`PyTrace_LINE`" -msgstr "" +msgstr ":const:`PyTrace_LINE`" #: c-api/init.rst:1379 msgid ":const:`PyTrace_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_RETURN`" #: c-api/init.rst:1379 msgid "" @@ -1622,7 +1622,7 @@ msgstr "" #: c-api/init.rst:1382 msgid ":const:`PyTrace_C_CALL`" -msgstr "" +msgstr ":const:`PyTrace_C_CALL`" #: c-api/init.rst:1384 c-api/init.rst:1386 msgid "Function object being called." @@ -1630,15 +1630,15 @@ msgstr "" #: c-api/init.rst:1384 msgid ":const:`PyTrace_C_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_C_EXCEPTION`" #: c-api/init.rst:1386 msgid ":const:`PyTrace_C_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_C_RETURN`" #: c-api/init.rst:1388 msgid ":const:`PyTrace_OPCODE`" -msgstr "" +msgstr ":const:`PyTrace_OPCODE`" #: c-api/init.rst:1393 msgid "" diff --git a/c-api/mapping.po b/c-api/mapping.po index e758a121..64612d6a 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -63,7 +63,6 @@ msgstr "" "aussi :c:func:`PyObject_GetItem`." #: ../Doc/c-api/mapping.rst:38 -#, fuzzy msgid "" "Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``o[key] = v``. See " @@ -72,7 +71,8 @@ msgid "" msgstr "" "Fait correspondre la chaîne *key* à la valeur *v* dans l'objet *o*. Renvoie " "``-1`` en cas d'échec. C'est l'équivalent de la commande Python ``o[key] = " -"v``. Voir aussi :c:func:`PyObject_SetItem`." +"v``. Voir aussi :c:func:`PyObject_SetItem`. Cette fonction *ne vole pas* de " +"référence à *v*." #: ../Doc/c-api/mapping.rst:46 msgid "" diff --git a/c-api/refcounting.po b/c-api/refcounting.po index 841f702b..d06afb2a 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -23,6 +23,8 @@ msgid "" "The macros in this section are used for managing reference counts of Python " "objects." msgstr "" +"Les macros dans cette section permettent de gérer le compteur de références " +"des objets Python." #: ../Doc/c-api/refcounting.rst:16 msgid "" @@ -36,6 +38,8 @@ msgid "" "Increment the reference count for object *o*. The object may be ``NULL``, " "in which case the macro has no effect." msgstr "" +"Incrémente le compteur de références de l'objet *o*. La macro n'a pas " +"d'effet si l'objet est ``NULL``." #: ../Doc/c-api/refcounting.rst:28 msgid "" @@ -57,6 +61,15 @@ msgid "" "update the list data structure, and then call :c:func:`Py_DECREF` for the " "temporary variable." msgstr "" +"La fonction de dés-allocation peut invoquer du code Python arbitraire (par " +"exemple quand une instance d'une classe avec une méthode :meth:`__del__` est " +"supprimée). Le code exécuté a accès à toutes les variables Python globales " +"mais les exceptions lors de l'exécution de ce code ne sont pas propagées. " +"Tous les objets qui peuvent être atteints à partir d'une variable globale " +"doivent être dans un état cohérent avant d'appeler :c:func:`Py_DECREF`. Par " +"exemple le code pour supprimer un élément d'une liste doit copier une " +"référence à l'objet dans une variable temporaire, mettre à jour la liste, et " +"enfin appeler :c:func:`Py_DECREF` avec la variable temporaire." #: ../Doc/c-api/refcounting.rst:47 msgid "" @@ -64,6 +77,10 @@ msgid "" "in which case the macro has no effect; otherwise the effect is the same as " "for :c:func:`Py_DECREF`, and the same warning applies." msgstr "" +"Décrémente le compteur de références de l'objet *o*. L'objet peut être " +"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le " +"comportement est identique à :c:func:`Py_DECREF` et les mêmes avertissements " +"sont de rigueur." #: ../Doc/c-api/refcounting.rst:54 msgid "" @@ -74,12 +91,20 @@ msgid "" "object passed because the macro carefully uses a temporary variable and sets " "the argument to ``NULL`` before decrementing its reference count." msgstr "" +"Décrémente le compteur de références de l'objet *o*. L'objet peut être " +"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le " +"comportement est identique à :c:func:`Py_DECREF`, puis l'argument est mis à " +"``NULL``. L'avertissement au sujet de l'objet passé en argument à :c:func:" +"`Py_DECREF` ne s'applique pas car la macro utilise une variable temporaire " +"et met l'objet à ``NULL`` avant de décrémenter le compteur de références." #: ../Doc/c-api/refcounting.rst:61 msgid "" "It is a good idea to use this macro whenever decrementing the reference " "count of an object that might be traversed during garbage collection." msgstr "" +"Il est recommandé d'utiliser cette macro lorsqu'on décrémente le compteur de " +"référence d'un objet qui peut être parcouru par le ramasse-miette." #: ../Doc/c-api/refcounting.rst:65 msgid "" @@ -95,3 +120,7 @@ msgid "" "core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" "`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." msgstr "" +"Les fonctions ou macros suivantes doivent être uniquement utilisées au sein " +"de l'interpréteur et ne font pas partie de l'API publique : :c:func:" +"`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, " +"ainsi que la variable globale :c:data:`_Py_RefTotal`." diff --git a/c-api/structures.po b/c-api/structures.po index 18615318..ada5b73a 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -154,7 +154,7 @@ msgstr "Signification" #: c-api/structures.rst:141 msgid ":attr:`ml_name`" -msgstr "" +msgstr ":attr:`ml_name`" #: c-api/structures.rst:149 c-api/structures.rst:294 c-api/structures.rst:347 #: c-api/structures.rst:355 @@ -167,7 +167,7 @@ msgstr "" #: c-api/structures.rst:143 msgid ":attr:`ml_meth`" -msgstr "" +msgstr ":attr:`ml_meth`" #: c-api/structures.rst:143 msgid "PyCFunction" @@ -179,7 +179,7 @@ msgstr "" #: c-api/structures.rst:146 msgid ":attr:`ml_flags`" -msgstr "" +msgstr ":attr:`ml_flags`" #: c-api/structures.rst:283 c-api/structures.rst:306 msgid "int" @@ -191,7 +191,7 @@ msgstr "" #: c-api/structures.rst:149 msgid ":attr:`ml_doc`" -msgstr "" +msgstr ":attr:`ml_doc`" #: c-api/structures.rst:294 msgid "points to the contents of the docstring" @@ -331,7 +331,7 @@ msgstr "" #: c-api/structures.rst:281 msgid ":attr:`name`" -msgstr "" +msgstr ":attr:`name`" #: c-api/structures.rst:281 msgid "name of the member" @@ -339,7 +339,7 @@ msgstr "" #: c-api/structures.rst:283 msgid ":attr:`!type`" -msgstr "" +msgstr ":attr:`!type`" #: c-api/structures.rst:283 msgid "the type of the member in the C struct" @@ -347,7 +347,7 @@ msgstr "" #: c-api/structures.rst:286 msgid ":attr:`offset`" -msgstr "" +msgstr ":attr:`offset`" #: c-api/structures.rst:322 msgid "Py_ssize_t" @@ -360,7 +360,7 @@ msgstr "" #: c-api/structures.rst:290 msgid ":attr:`flags`" -msgstr "" +msgstr ":attr:`flags`" #: c-api/structures.rst:290 msgid "flag bits indicating if the field should be read-only or writable" @@ -368,7 +368,7 @@ msgstr "" #: c-api/structures.rst:294 msgid ":attr:`doc`" -msgstr "" +msgstr ":attr:`doc`" #: c-api/structures.rst:298 msgid "" @@ -532,7 +532,7 @@ msgstr "" #: c-api/structures.rst:347 msgid "name" -msgstr "" +msgstr "nom" #: c-api/structures.rst:347 msgid "attribute name" diff --git a/c-api/typeobj.po b/c-api/typeobj.po index aeda7904..df0e38f0 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -176,7 +176,7 @@ msgstr "" #: c-api/typeobj.rst:64 c-api/typeobj.rst:68 msgid ":ref:`sub-slots`" -msgstr "" +msgstr ":ref:`sub-slots`" #: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82 msgid "%" @@ -2064,7 +2064,7 @@ msgstr "Comparaison" #: c-api/typeobj.rst:1348 msgid ":const:`Py_LT`" -msgstr "" +msgstr ":const:`Py_LT`" #: c-api/typeobj.rst:1348 msgid "``<``" @@ -2072,7 +2072,7 @@ msgstr "``<``" #: c-api/typeobj.rst:1350 msgid ":const:`Py_LE`" -msgstr "" +msgstr ":const:`Py_LE`" #: c-api/typeobj.rst:1350 msgid "``<=``" @@ -2080,7 +2080,7 @@ msgstr "``<=``" #: c-api/typeobj.rst:1352 msgid ":const:`Py_EQ`" -msgstr "" +msgstr ":const:`Py_EQ`" #: c-api/typeobj.rst:1352 msgid "``==``" @@ -2088,7 +2088,7 @@ msgstr "``==``" #: c-api/typeobj.rst:1354 msgid ":const:`Py_NE`" -msgstr "" +msgstr ":const:`Py_NE`" #: c-api/typeobj.rst:1354 msgid "``!=``" @@ -2096,7 +2096,7 @@ msgstr "``!=``" #: c-api/typeobj.rst:1356 msgid ":const:`Py_GT`" -msgstr "" +msgstr ":const:`Py_GT`" #: c-api/typeobj.rst:1356 msgid "``>``" @@ -2104,7 +2104,7 @@ msgstr "``>``" #: c-api/typeobj.rst:1358 msgid ":const:`Py_GE`" -msgstr "" +msgstr ":const:`Py_GE`" #: c-api/typeobj.rst:1358 msgid "``>=``" diff --git a/c-api/unicode.po b/c-api/unicode.po index 88ed065e..8e1bb2b6 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -16,11 +16,11 @@ msgstr "" #: c-api/unicode.rst:6 msgid "Unicode Objects and Codecs" -msgstr "" +msgstr "Objets Unicode et Codecs" #: c-api/unicode.rst:12 msgid "Unicode Objects" -msgstr "" +msgstr "Objets Unicode" #: c-api/unicode.rst:14 msgid "" @@ -31,6 +31,12 @@ msgid "" "65536; otherwise, code points must be below 1114112 (which is the full " "Unicode range)." msgstr "" +"Depuis l'implémentation de :pep:`393` dans Python 3.3, les objets Unicode " +"utilisent une variété de représentations internes, pour permettre de gérer " +"l'intervalle complet des caractères Unicode en restant efficace en termes de " +"mémoire. Il y a des cas spéciaux pour les chaînes où tous les points de code " +"sont inférieurs à 128, 256, ou 65536 ; sinon, les points de code doivent " +"être inférieurs à 1114112 (qui est l'intervalle Unicode complet)." #: c-api/unicode.rst:20 msgid "" @@ -44,6 +50,9 @@ msgid "" "Due to the transition between the old APIs and the new APIs, Unicode objects " "can internally be in two states depending on how they were created:" msgstr "" +"En raison de la transition des anciennes APIs vers les nouvelles APIs, les " +"objets Unicode peuvent être dans deux états internes selon comment ils ont " +"été créés :" #: c-api/unicode.rst:27 msgid "" @@ -51,6 +60,9 @@ msgid "" "Unicode API. They use the most efficient representation allowed by the " "implementation." msgstr "" +"Les objets Unicode « canoniques » sont tous les objets créés par une API " +"Unicode non-dépréciée. Ils utilisent la représentation la plus efficace " +"permise par l'implémentation." #: c-api/unicode.rst:31 msgid "" @@ -66,16 +78,21 @@ msgid "" "APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` " "for more information." msgstr "" +"Les objets Unicode « historiques » vont être supprimés de Python 3.12 avec " +"les APIs dépréciées. Tous les objets Unicode vont être « canoniques » à " +"partir de là. Voir :pep:`623` pour plus d'information." #: c-api/unicode.rst:43 msgid "Unicode Type" -msgstr "" +msgstr "Type Unicode" #: c-api/unicode.rst:45 msgid "" "These are the basic Unicode object types used for the Unicode implementation " "in Python:" msgstr "" +"Voici les types d'objets Unicode utilisés pour l'implémentation Unicode en " +"Python :" #: c-api/unicode.rst:52 msgid "" @@ -83,6 +100,9 @@ msgid "" "characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " "single Unicode characters, use :c:type:`Py_UCS4`." msgstr "" +"Voici les *typedefs* pour les types entiers non signés suffisamment large " +"pour contenir des caractères de 32 bits, 16 bits et 8 bits, respectivement. " +"Pour traiter des caractères uniques, utilisez :c:type:`Py_UCS4`." #: c-api/unicode.rst:61 msgid "" @@ -96,6 +116,9 @@ msgid "" "whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " "build time." msgstr "" +"Dans les versions précédentes, ceci était un type 16-bit ou un type 32-bit " +"selon que vous choisissiez une version Unicode *narrow* ou *wide* de Python " +"à la compilation." #: c-api/unicode.rst:74 msgid "" @@ -464,7 +487,7 @@ msgstr "Commentaires" #: c-api/unicode.rst:459 msgid ":attr:`%%`" -msgstr "" +msgstr ":attr:`%%`" #: c-api/unicode.rst:459 msgid "*n/a*" @@ -476,7 +499,7 @@ msgstr "" #: c-api/unicode.rst:461 msgid ":attr:`%c`" -msgstr "" +msgstr ":attr:`%c`" #: c-api/unicode.rst:464 c-api/unicode.rst:500 msgid "int" @@ -488,7 +511,7 @@ msgstr "" #: c-api/unicode.rst:464 msgid ":attr:`%d`" -msgstr "" +msgstr ":attr:`%d`" #: c-api/unicode.rst:464 msgid "Equivalent to ``printf(\"%d\")``. [1]_" @@ -496,7 +519,7 @@ msgstr "" #: c-api/unicode.rst:467 msgid ":attr:`%u`" -msgstr "" +msgstr ":attr:`%u`" #: c-api/unicode.rst:467 msgid "unsigned int" @@ -508,7 +531,7 @@ msgstr "" #: c-api/unicode.rst:470 msgid ":attr:`%ld`" -msgstr "" +msgstr ":attr:`%ld`" #: c-api/unicode.rst:473 msgid "long" @@ -520,7 +543,7 @@ msgstr "" #: c-api/unicode.rst:473 msgid ":attr:`%li`" -msgstr "" +msgstr ":attr:`%li`" #: c-api/unicode.rst:473 msgid "Equivalent to ``printf(\"%li\")``. [1]_" @@ -528,7 +551,7 @@ msgstr "" #: c-api/unicode.rst:476 msgid ":attr:`%lu`" -msgstr "" +msgstr ":attr:`%lu`" #: c-api/unicode.rst:476 msgid "unsigned long" @@ -540,7 +563,7 @@ msgstr "" #: c-api/unicode.rst:479 msgid ":attr:`%lld`" -msgstr "" +msgstr ":attr:`%lld`" #: c-api/unicode.rst:482 msgid "long long" @@ -552,7 +575,7 @@ msgstr "" #: c-api/unicode.rst:482 msgid ":attr:`%lli`" -msgstr "" +msgstr ":attr:`%lli`" #: c-api/unicode.rst:482 msgid "Equivalent to ``printf(\"%lli\")``. [1]_" @@ -560,7 +583,7 @@ msgstr "" #: c-api/unicode.rst:485 msgid ":attr:`%llu`" -msgstr "" +msgstr ":attr:`%llu`" #: c-api/unicode.rst:485 msgid "unsigned long long" @@ -572,7 +595,7 @@ msgstr "" #: c-api/unicode.rst:488 msgid ":attr:`%zd`" -msgstr "" +msgstr ":attr:`%zd`" #: c-api/unicode.rst:491 msgid "Py_ssize_t" @@ -584,7 +607,7 @@ msgstr "" #: c-api/unicode.rst:491 msgid ":attr:`%zi`" -msgstr "" +msgstr ":attr:`%zi`" #: c-api/unicode.rst:491 msgid "Equivalent to ``printf(\"%zi\")``. [1]_" @@ -592,7 +615,7 @@ msgstr "" #: c-api/unicode.rst:494 msgid ":attr:`%zu`" -msgstr "" +msgstr ":attr:`%zu`" #: c-api/unicode.rst:494 msgid "size_t" @@ -604,7 +627,7 @@ msgstr "" #: c-api/unicode.rst:497 msgid ":attr:`%i`" -msgstr "" +msgstr ":attr:`%i`" #: c-api/unicode.rst:497 msgid "Equivalent to ``printf(\"%i\")``. [1]_" @@ -612,7 +635,7 @@ msgstr "" #: c-api/unicode.rst:500 msgid ":attr:`%x`" -msgstr "" +msgstr ":attr:`%x`" #: c-api/unicode.rst:500 msgid "Equivalent to ``printf(\"%x\")``. [1]_" @@ -620,7 +643,7 @@ msgstr "" #: c-api/unicode.rst:503 msgid ":attr:`%s`" -msgstr "" +msgstr ":attr:`%s`" #: c-api/unicode.rst:503 msgid "const char\\*" @@ -632,7 +655,7 @@ msgstr "" #: c-api/unicode.rst:506 msgid ":attr:`%p`" -msgstr "" +msgstr ":attr:`%p`" #: c-api/unicode.rst:506 msgid "const void\\*" @@ -647,7 +670,7 @@ msgstr "" #: c-api/unicode.rst:514 msgid ":attr:`%A`" -msgstr "" +msgstr ":attr:`%A`" #: c-api/unicode.rst:517 c-api/unicode.rst:529 msgid "PyObject\\*" @@ -659,7 +682,7 @@ msgstr "" #: c-api/unicode.rst:517 msgid ":attr:`%U`" -msgstr "" +msgstr ":attr:`%U`" #: c-api/unicode.rst:517 #, fuzzy @@ -668,7 +691,7 @@ msgstr "Un objet Unicode." #: c-api/unicode.rst:519 msgid ":attr:`%V`" -msgstr "" +msgstr ":attr:`%V`" #: c-api/unicode.rst:519 msgid "PyObject\\*, const char\\*" @@ -683,7 +706,7 @@ msgstr "" #: c-api/unicode.rst:526 msgid ":attr:`%S`" -msgstr "" +msgstr ":attr:`%S`" #: c-api/unicode.rst:526 msgid "The result of calling :c:func:`PyObject_Str`." @@ -691,7 +714,7 @@ msgstr "" #: c-api/unicode.rst:529 msgid ":attr:`%R`" -msgstr "" +msgstr ":attr:`%R`" #: c-api/unicode.rst:529 msgid "The result of calling :c:func:`PyObject_Repr`." diff --git a/distributing/index.po b/distributing/index.po index ce07bacd..13470f2e 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -281,7 +281,7 @@ msgstr "" #: distributing/index.rst:131 msgid "`The .pypirc file`_" -msgstr "" +msgstr "`(en) Le fichier .pypirc `_." #: distributing/index.rst:144 msgid "How do I...?" diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 15e74281..d9a43d33 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -763,17 +763,17 @@ msgid "or the :command:`bdist` command with the :option:`!--formats` option::" msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::" #: distutils/builtdist.rst:322 -#, fuzzy msgid "" "If you have a pure module distribution (only containing pure Python modules " "and packages), the resulting installer will be version independent and have " "a name like :file:`foo-1.0.win32.exe`. Note that creating ``wininst`` binary " "distributions in only supported on Windows systems." msgstr "" -"Si vous avez un module pur (contenant seulement des modules et des packages " -"en Python pur), l'installateur final ne sera lié a aucune version de Python " -"et aura un nom du type :file:`foo-1.0.win32.exe`. Ces installateurs peuvent " -"même être créés sur les plateformes Unix ou Mac OS X." +"Si vous avez une distribution de modules purs (contenant seulement des " +"modules et des packages en Python pur), l'installateur produit n'est lié à " +"aucune version de Python et a un nom du type :file:`foo-1.0.win32.exe`. " +"Notez que la création de distributions binaires ``wininst`` n'est prise en " +"charge que sur les systèmes Windows." #: distutils/builtdist.rst:327 msgid "" diff --git a/distutils/index.po b/distutils/index.po index 7e7e82c4..caef6721 100644 --- a/distutils/index.po +++ b/distutils/index.po @@ -70,7 +70,6 @@ msgstr "" "d'informations." #: ../Doc/distutils/index.rst:25 -#, fuzzy msgid "" "This document describes the Python Distribution Utilities (\"Distutils\") " "from the module developer's point of view, describing the underlying " @@ -78,7 +77,7 @@ msgid "" "make Python modules and extensions readily available to a wider audience." msgstr "" "Ce document décrit les outils de distribution de Python (\"Distutils\") du " -"point de vue d'un développeur de modules. Il décrit comment utiliser " -"`Distutils` pour rendre des modules et extensions Python disponible à une " -"large audience, simplement, avec un faible surcoût sur les mécaniques de " -"construction, déploiement et installation." +"point de vue d'un développeur de modules. Il décrit les capacités sous-" +"jacentes sur lesquelles ``setuptools`` s'appuie pour permettre aux " +"développeurs Python de créer des modules Python et des extensions " +"disponibles à une large audience." diff --git a/extending/extending.po b/extending/extending.po index 757936ce..6e593845 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -210,7 +210,6 @@ msgstr "" "converties. Nous en verront plus, plus tard." #: extending/extending.rst:116 -#, fuzzy msgid "" ":c:func:`PyArg_ParseTuple` returns true (nonzero) if all arguments have the " "right type and its components have been stored in the variables whose " @@ -221,10 +220,10 @@ msgid "" msgstr "" ":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments ont " "le bon type et que ses composants ont été stockés dans les variables dont " -"les adresses données. Il renvoie faux (zéro) si une liste d'arguments " -"invalide a été passée. Dans ce dernier cas, elle lève également une " -"exception appropriée de sorte que la fonction d'appel puisse renvoyer *NULL* " -"immédiatement (comme nous l'avons vu dans l'exemple)." +"les adresses ont été données en entrée. Il renvoie faux (zéro) si une liste " +"d'arguments invalide a été passée. Dans ce dernier cas, elle lève également " +"une exception appropriée de sorte que la fonction d'appel puisse renvoyer " +"``NULL`` immédiatement (comme nous l'avons vu dans l'exemple)." #: extending/extending.rst:126 msgid "Intermezzo: Errors and Exceptions" @@ -296,7 +295,6 @@ msgstr "" "func:`Py_INCREF` aux objets transmis à ces fonctions." #: extending/extending.rst:154 -#, fuzzy msgid "" "You can test non-destructively whether an exception has been set with :c:" "func:`PyErr_Occurred`. This returns the current exception object, or " @@ -306,10 +304,10 @@ msgid "" msgstr "" "Vous pouvez tester de manière non destructive si une exception a été levée " "avec :c:func:`PyErr_Occurred`. Cela renvoie l'objet exception actuel, ou " -"*NULL* si aucune exception n'a eu lieu. Cependant, vous ne devriez pas avoir " -"besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " +"``NULL`` si aucune exception n'a eu lieu. Cependant, vous ne devriez pas " +"avoir besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " "survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " -"de le déterminer à partir de la valeur de retour." +"de le déterminer à partir de la valeur renvoyée." #: extending/extending.rst:160 #, fuzzy @@ -445,17 +443,16 @@ msgstr "" "`PyInit_spam`) avec un objet exception ::" #: extending/extending.rst:235 -#, fuzzy msgid "" "Note that the Python name for the exception object is :exc:`spam.error`. " "The :c:func:`PyErr_NewException` function may create a class with the base " "class being :exc:`Exception` (unless another class is passed in instead of " "``NULL``), described in :ref:`bltin-exceptions`." msgstr "" -"Notez que le nom de exception, côté Python, est :exc:`spam.error`. La " +"Notez que le nom de l'exception en Python est :exc:`spam.error`. La " "fonction :c:func:`PyErr_NewException` peut créer une classe héritant de :exc:" "`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " -"*NULL*), voir :ref:`bltin-exceptions`." +"``NULL``), voir :ref:`bltin-exceptions`." #: extending/extending.rst:240 msgid "" @@ -504,7 +501,6 @@ msgstr "" "capable de comprendre cette affirmation ::" #: extending/extending.rst:281 -#, fuzzy msgid "" "It returns ``NULL`` (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " @@ -514,14 +510,14 @@ msgid "" "which it points (so in Standard C, the variable :c:data:`command` should " "properly be declared as ``const char *command``)." msgstr "" -"Elle renvoie *NULL* (l'indicateur d'erreur pour les fonctions renvoyant des " -"pointeurs d'objet) si une erreur est détectée dans la liste des arguments,se " -"fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. Autrement,la " -"valeur chaîne de l'argument a été copiée dans la variable locale :c:data:" -"`command`. Il s'agit d'une attribution de pointeur et vous n'êtes pas " -"supposés modifier la chaîne qui vers laquelle il pointe (donc en C Standard, " -"la variable :c:data:`command` doit être clairement déclarée comme ``const " -"char *command``)." +"Elle renvoie ``NULL`` (l'indicateur d'erreur pour les fonctions renvoyant " +"des pointeurs d'objet) si une erreur est détectée dans la liste des " +"arguments, se fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. " +"Autrement, la valeur chaîne de l'argument a été copiée dans la variable " +"locale :c:data:`command`. Il s'agit d'une attribution de pointeur et vous " +"n'êtes pas supposés modifier la chaîne vers laquelle il pointe (donc en C " +"Standard, la variable :c:data:`command` doit être clairement déclarée comme " +"``const char *command``)." #: extending/extending.rst:289 msgid "" @@ -562,16 +558,15 @@ msgstr "" "implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" #: extending/extending.rst:310 -#, fuzzy msgid "" ":c:data:`Py_None` is the C name for the special Python object ``None``. It " "is a genuine Python object rather than a ``NULL`` pointer, which means " "\"error\" in most contexts, as we have seen." msgstr "" -":c:data:`Py_None` est le nom C pour l'objet spécial Python ``None``. C'est " -"un authentique objet Python plutôt qu'un pointeur *NULL*, qui signifie " -"qu'une erreur est survenue, dans la plupart des situations, comme nous " -"l'avons vu." +":c:data:`Py_None` est la dénomination en C pour l'objet spécial Python " +"``None``. C'est un authentique objet Python plutôt qu'un pointeur ``NULL``, " +"qui signifie qu'une erreur est survenue, dans la plupart des situations, " +"comme nous l'avons vu." #: extending/extending.rst:318 msgid "The Module's Method Table and Initialization Function" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index 5f25949c..53b4ad7d 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -16,7 +16,7 @@ msgstr "" #: extending/newtypes_tutorial.rst:7 msgid "Defining Extension Types: Tutorial" -msgstr "" +msgstr "Tutoriel : définir des types dans des extensions" #: extending/newtypes_tutorial.rst:14 msgid "" @@ -26,10 +26,15 @@ msgid "" "pattern, but there are some details that you need to understand before you " "can get started. This document is a gentle introduction to the topic." msgstr "" +"Python permet à l'auteur d'un module d'extension C de définir de nouveaux " +"types qui peuvent être manipulés depuis du code Python, à la manière des " +"types natifs :class:`str` et :class:`list`. Les implémentations de tous les " +"types d'extension ont des similarités, mais quelques subtilités doivent être " +"abordées avant de commencer." #: extending/newtypes_tutorial.rst:24 msgid "The Basics" -msgstr "" +msgstr "Les bases" #: extending/newtypes_tutorial.rst:26 msgid "" @@ -48,6 +53,8 @@ msgid "" "So, if you want to define a new extension type, you need to create a new " "type object." msgstr "" +"Donc, pour définir un nouveau type dans une extension, vous devez créer un " +"nouvel objet type." #: extending/newtypes_tutorial.rst:38 msgid "" @@ -55,6 +62,9 @@ msgid "" "but complete, module that defines a new type named :class:`Custom` inside a " "C extension module :mod:`custom`:" msgstr "" +"Ce genre de chose ne s'explique correctement qu'avec des exemples, voici " +"donc un module minimaliste mais suffisant qui définit un nouveau type nommé :" +"class:`Custom` dans le module d'extension :mod:`custom` :" #: extending/newtypes_tutorial.rst:43 msgid "" @@ -63,18 +73,27 @@ msgid "" "allows defining heap-allocated extension types using the :c:func:" "`PyType_FromSpec` function, which isn't covered in this tutorial." msgstr "" +"Ce qui est montré ici est la manière traditionnelle de définir des types " +"d'extension *statiques*, et cela convient dans la majorité des cas. L'API C " +"permet aussi de définir des types alloués sur le tas, via la fonction :c:" +"func:`PyType_FromSpec`, mais ce n'est pas couvert par ce tutoriel." #: extending/newtypes_tutorial.rst:50 msgid "" "Now that's quite a bit to take in at once, but hopefully bits will seem " "familiar from the previous chapter. This file defines three things:" msgstr "" +"C'est un peu long, mais vous devez déjà reconnaître quelques morceaux " +"expliqués au chapitre précédent. Ce fichier définit trois choses :" #: extending/newtypes_tutorial.rst:53 msgid "" "What a :class:`Custom` **object** contains: this is the ``CustomObject`` " "struct, which is allocated once for each :class:`Custom` instance." msgstr "" +"Ce qu'un **objet** :class:`Custom` contient : c'est la structure " +"``CustomObject``, qui est allouée une fois pour chaque instance de :class:" +"`Custom`." #: extending/newtypes_tutorial.rst:55 msgid "" @@ -82,16 +101,21 @@ msgid "" "which defines a set of flags and function pointers that the interpreter " "inspects when specific operations are requested." msgstr "" +"Comment le **type** :class:`Custom` se comporte : c'est la structure " +"``CustomType``, qui définit l'ensemble des options et pointeurs de fonction " +"utilisés par l'interpréteur." #: extending/newtypes_tutorial.rst:58 msgid "" "How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` " "function and the associated ``custommodule`` struct." msgstr "" +"Comment initialiser le module :mod:`custom` : c'est la fonction " +"``PyInit_custom`` et la structure associée ``custommodule``." #: extending/newtypes_tutorial.rst:61 msgid "The first bit is::" -msgstr "" +msgstr "Commençons par ::" #: extending/newtypes_tutorial.rst:67 msgid "" @@ -108,6 +132,9 @@ msgid "" "There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " "wary of adding one by accident: some compilers will complain." msgstr "" +"Il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. " +"Attention à ne pas l'ajouter par accident : certains compilateurs pourraient " +"s'en plaindre." #: extending/newtypes_tutorial.rst:78 msgid "" @@ -115,10 +142,13 @@ msgid "" "``PyObject_HEAD`` boilerplate; for example, here is the definition for " "standard Python floats::" msgstr "" +"Bien sûr, les objets ajoutent généralement des données supplémentaires après " +"l'entête standard ``PyObject_HEAD``. Par exemple voici la définition du type " +"standard Python ``float`` ::" #: extending/newtypes_tutorial.rst:87 msgid "The second bit is the definition of the type object. ::" -msgstr "" +msgstr "La deuxième partie est la définition de l'objet type ::" #: extending/newtypes_tutorial.rst:100 msgid "" @@ -126,6 +156,10 @@ msgid "" "listing all the :c:type:`PyTypeObject` fields that you don't care about and " "also to avoid caring about the fields' declaration order." msgstr "" +"Nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour " +"remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les " +"champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas " +"vous soucier de leur ordre." #: extending/newtypes_tutorial.rst:104 msgid "" @@ -134,22 +168,31 @@ msgid "" "fields will be filled with zeros by the C compiler, and it's common practice " "to not specify them explicitly unless you need them." msgstr "" +"La définition de :c:type:`PyTypeObject` dans :file:`object.h` contient en " +"fait bien plus de :ref:`champs ` que la définition ci-dessus. " +"Les champs restants sont mis à zéro par le compilateur C, et c'est une " +"pratique répandue de ne pas spécifier les champs dont vous n'avez pas besoin." #: extending/newtypes_tutorial.rst:109 msgid "We're going to pick it apart, one field at a time::" -msgstr "" +msgstr "Regardons les champs de cette structure, un par un ::" #: extending/newtypes_tutorial.rst:113 msgid "" "This line is mandatory boilerplate to initialize the ``ob_base`` field " "mentioned above. ::" msgstr "" +"Cette ligne, obligatoire, initialise le champ ``ob_base`` mentionné " +"précédemment." #: extending/newtypes_tutorial.rst:118 msgid "" "The name of our type. This will appear in the default textual " "representation of our objects and in some error messages, for example:" msgstr "" +"C'est le nom de notre type. Il apparaît dans la représentation textuelle par " +"défaut de nos objets, ainsi que dans quelques messages d'erreur, par " +"exemple :" #: extending/newtypes_tutorial.rst:128 msgid "" @@ -159,6 +202,11 @@ msgid "" "`custom.Custom`. Using the real dotted import path is important to make your " "type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" +"Notez que le nom comporte un point : il inclut le nom du module et le nom du " +"type. Dans ce cas le module est :mod:`custom`, et le type est :class:" +"`Custom`, donc nous donnons comme nom :class:`custom.Custom`. Nommer " +"correctement son type, avec le point, est important pour le rendre " +"compatible avec :mod:`pydoc` et :mod:`pickle`. ::" #: extending/newtypes_tutorial.rst:137 msgid "" @@ -166,6 +214,10 @@ msgid "" "class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " "used for variable-sized objects and should otherwise be zero." msgstr "" +"C'est pour que Python sache combien de mémoire allouer à la création d'une " +"nouvelle instance de :class:`Custom`. :c:member:`~PyTypeObject.tp_itemsize` " +"n'est utilisé que pour les objets de taille variable, sinon il doit rester à " +"zéro." #: extending/newtypes_tutorial.rst:143 msgid "" @@ -180,10 +232,22 @@ msgid "" "type will be :class:`object`, or else you will be adding data members to " "your base type, and therefore increasing its size." msgstr "" +"Si vous voulez qu'une classe en Python puisse hériter de votre type, et que " +"votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, " +"vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe " +"Python de votre type devra lister votre type en premier dans son :attr:" +"`~class.__bases__`, sans quoi elle ne sera pas capable d'appeler la méthode :" +"meth:`__new__` de votre type sans erreur. Vous pouvez éviter ce problème en " +"vous assurant que votre type a un :c:member:`~PyTypeObject.tp_basicsize` " +"plus grand que son parent. La plupart du temps ce sera vrai (soit son parent " +"sera :class:`object`, soit vous ajouterez des attributs à votre type, " +"augmentant ainsi sa taille)." #: extending/newtypes_tutorial.rst:153 msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" msgstr "" +"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de " +"type. ::" #: extending/newtypes_tutorial.rst:157 msgid "" @@ -191,11 +255,17 @@ msgid "" "the members defined until at least Python 3.3. If you need further members, " "you will need to OR the corresponding flags." msgstr "" +"Chaque type doit inclure cette constante dans ses options : elle active tous " +"les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus " +"de membres, vous pouvez la combiner à d'autres constantes avec un *ou* " +"binaire." #: extending/newtypes_tutorial.rst:161 msgid "" "We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" msgstr "" +"On fournit une *docstring* pour ce type via le membre :c:member:" +"`~PyTypeObject.tp_doc`. ::" #: extending/newtypes_tutorial.rst:165 msgid "" @@ -205,12 +275,19 @@ msgid "" "use the default implementation provided by the API function :c:func:" "`PyType_GenericNew`. ::" msgstr "" +"Pour permettre la création d'une instance, nous devons fournir un *handler* :" +"c:member:`~PyTypeObject.tp_new`, qui est l'équivalent de la méthode Python :" +"meth:`__new__`, mais elle a besoin d'être spécifiée explicitement. Dans ce " +"cas, on se contente de l'implémentation par défaut fournie par la fonction :" +"c:func:`PyType_GenericNew` de l'API." #: extending/newtypes_tutorial.rst:172 msgid "" "Everything else in the file should be familiar, except for some code in :c:" "func:`PyInit_custom`::" msgstr "" +"Le reste du fichier doit vous être familier, en dehors du code de :c:func:" +"`PyInit_custom` ::" #: extending/newtypes_tutorial.rst:178 msgid "" @@ -218,18 +295,25 @@ msgid "" "the appropriate default values, including :attr:`ob_type` that we initially " "set to ``NULL``. ::" msgstr "" +"Il initialise le type :class:`Custom`, en assignant quelques membres à leurs " +"valeurs par défaut, tel que :attr:`ob_type` qui valait initialement " +"``NULL``. ::" #: extending/newtypes_tutorial.rst:189 msgid "" "This adds the type to the module dictionary. This allows us to create :" "class:`Custom` instances by calling the :class:`Custom` class:" msgstr "" +"Ici on ajoute le type au dictionnaire du module. Cela permet de créer une " +"instance de :class:`Custom` en appelant la classe :class:`Custom` :" #: extending/newtypes_tutorial.rst:197 msgid "" "That's it! All that remains is to build it; put the above code in a file " "called :file:`custom.c` and:" msgstr "" +"C'est tout ! Il ne reste plus qu'à compiler, placez le code ci-dessus dans " +"un fichier :file:`custom.c` et :" #: extending/newtypes_tutorial.rst:206 msgid "in a file called :file:`setup.py`; then typing" diff --git a/faq/design.po b/faq/design.po index b6e1a0ed..20a3a5e4 100644 --- a/faq/design.po +++ b/faq/design.po @@ -1129,15 +1129,12 @@ msgstr "" "MutableMapping`." #: faq/design.rst:573 -#, fuzzy msgid "" "For Python, many of the advantages of interface specifications can be " "obtained by an appropriate test discipline for components." msgstr "" "Pour Python, la plupart des avantages des spécifications d'interface peuvent " -"être obtenus par une discipline de test appropriée pour les composants. Il " -"existe aussi un outil, PyChecker, qui peut être utilisé pour trouver des " -"problèmes d'héritage." +"être obtenus par une discipline de test appropriée pour les composants." #: faq/design.rst:576 msgid "" @@ -1208,20 +1205,26 @@ msgid "" "expressions) and loop (with ``while`` and ``for`` statements, possibly " "containing ``continue`` and ``break``)." msgstr "" +"Dans les années 1970, les gens se sont aperçus que le foisonnement de *goto* " +"conduisait à du code « spaghetti » difficile à comprendre et à modifier. " +"Dans les langages de haut niveau, c'est d'autant moins nécessaire qu'il " +"existe différentes manières de créer des branches (en Python, les " +"instructions ``if`` et les expressions ``or``, ``and`` et ``if-else``) et de " +"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir " +"des ``continue`` et ``break``)." #: faq/design.rst:609 -#, fuzzy msgid "" "One can also use exceptions to provide a \"structured goto\" that works even " "across function calls. Many feel that exceptions can conveniently emulate " "all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and " "other languages. For example::" msgstr "" -"Vous pouvez utiliser les exceptions afin de mettre en place un \"``goto`` " -"structuré\" qui fonctionne même avec les appels de fonctions. Beaucoup de " -"personnes estiment que les exceptions peuvent émuler idéalement tout " -"utilisation raisonnable des constructions ``go`` ou ``goto`` en C, en " -"Fortran ou autres langages de programmation. Par exemple ::" +"Vous pouvez utiliser les exceptions afin de mettre en place un « *goto* " +"structuré » qui fonctionne même à travers les appels de fonctions. Beaucoup " +"de personnes estiment que les exceptions sont une façon commode d'émuler " +"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran " +"ou d'autres langages de programmation. Par exemple ::" #: faq/design.rst:625 msgid "" diff --git a/faq/general.po b/faq/general.po index 366e1d06..90da9e6b 100644 --- a/faq/general.po +++ b/faq/general.po @@ -32,7 +32,6 @@ msgid "What is Python?" msgstr "Qu'est-ce que Python ?" #: faq/general.rst:18 -#, fuzzy msgid "" "Python is an interpreted, interactive, object-oriented programming " "language. It incorporates modules, exceptions, dynamic typing, very high " @@ -45,16 +44,18 @@ msgid "" "Finally, Python is portable: it runs on many Unix variants including Linux " "and macOS, and on Windows." msgstr "" -"Python est un langage de programmation interprété, interactif, orienté " -"objet. Il incorpore des modules, des exceptions, un typage dynamique et des " -"classes. Python combine une puissance incroyable et une syntaxe très claire. " -"Il dispose de liens avec de nombreuses interfaces de programmation pour " -"systèmes d'exploitation et bibliothèques, ainsi que divers systèmes " -"d'interfaces graphiques, et il peut être étendu grâce au C ou C++. Il est " -"aussi utilisable comme langage d'extension (script) pour les logiciels qui " -"nécessitent une interface de programmation. Enfin, Python est portable : il " -"fonctionne sur multiples variantes Unix, sur Mac, ainsi que sur Windows 2000 " -"et versions supérieures." +"Python est un langage de programmation interprété, interactif et orienté " +"objet. Il intègre des modules, des exceptions, un typage dynamique, des " +"types de données dynamiques de très haut niveau et des classes. Il gère de " +"multiples paradigmes de programmation au-delà de la programmation orientée " +"objet, tels que la programmation procédurale et fonctionnelle. Python " +"combine une puissance remarquable avec une syntaxe très claire. Il possède " +"des interfaces avec de nombreux appels système et bibliothèques, ainsi " +"qu'avec divers systèmes d'interfaces graphiques, et il peut être étendu avec " +"du C ou du C++. Il est également utilisable comme langage d'extension pour " +"les applications qui nécessitent une interface de programmation. Enfin, " +"Python est portable : il fonctionne sur de nombreuses variantes d'Unix, y " +"compris Linux et macOS, et sur Windows." #: faq/general.rst:28 msgid "" @@ -644,15 +645,14 @@ msgid "How stable is Python?" msgstr "Quel est le niveau de stabilité de Python ?" #: faq/general.rst:298 -#, fuzzy msgid "" "Very stable. New, stable releases have been coming out roughly every 6 to " "18 months since 1991, and this seems likely to continue. As of version 3.9, " "Python will have a major new release every 12 months (:pep:`602`)." msgstr "" "Très stable. Les versions stables sont sorties environ tous les 6 à 18 mois " -"depuis 1991, et il semble probable que ça continue. Actuellement il y a " -"habituellement environ 18 mois entre deux sorties de version majeure." +"depuis 1991, et il semble probable que ça continue. À partir de la version " +"3.9, Python aura une nouvelle version majeure tous les 12 mois (:pep:`602`)." #: faq/general.rst:302 msgid "" @@ -693,13 +693,12 @@ msgid "How many people are using Python?" msgstr "Combien de personnes utilisent Python ?" #: faq/general.rst:318 -#, fuzzy msgid "" "There are probably millions of users, though it's difficult to obtain an " "exact count." msgstr "" -"Il y a probablement des dizaines de milliers d'utilisateurs, cependant c'est " -"difficile d'obtenir un nombre exact." +"Il y a probablement des millions d'utilisateurs, bien qu'il soit difficile " +"d'en déterminer le nombre exact." #: faq/general.rst:321 msgid "" diff --git a/faq/programming.po b/faq/programming.po index ec086a5e..855b0b54 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -70,7 +70,6 @@ msgstr "" "idle``) contient un débogueur graphique." #: faq/programming.rst:31 -#, fuzzy msgid "" "PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " "PythonWin debugger colors breakpoints and has quite a few cool features such " @@ -83,10 +82,9 @@ msgstr "" "embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " "colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " "comme la possibilité de déboguer des programmes développés sans " -"*PythonWin*. *PythonWin* est disponible dans le projet `Extensions Python " -"pour Windows `__ et fait partie " -"de la distribution ActivePython (voir https://www.activestate.com/" -"activepython\\ )." +"*PythonWin*. *PythonWin* est disponible dans le projet `pywin32 `_ et fait partie de la distribution " +"`ActivePython `_." #: faq/programming.rst:38 msgid "" @@ -101,12 +99,17 @@ msgid "" "`trepan3k `_ is a gdb-like " "debugger." msgstr "" +"`trepan3k `_ est un débogueur " +"semblable à GDB." #: faq/programming.rst:43 msgid "" "`Visual Studio Code `_ is an IDE with " "debugging tools that integrates with version-control software." msgstr "" +"`Visual Studio Code `_ est un EDI qui " +"contient des outils de débogage. Il sait interagir avec les outils de " +"gestion de versions." #: faq/programming.rst:46 msgid "" @@ -117,25 +120,22 @@ msgstr "" "graphique. Notamment :" #: faq/programming.rst:49 -#, fuzzy msgid "`Wing IDE `_" -msgstr "Wing IDE (https://wingware.com/)" +msgstr "`Wing IDE `_ ;" #: faq/programming.rst:50 msgid "`Komodo IDE `_" -msgstr "" +msgstr "`Komodo IDE `_ ;" #: faq/programming.rst:51 -#, fuzzy msgid "`PyCharm `_" -msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" +msgstr "`PyCharm `_ ;" #: faq/programming.rst:55 -#, fuzzy msgid "Are there tools to help find bugs or perform static analysis?" msgstr "" "Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " -"statique de code ?" +"statique de code ?" #: faq/programming.rst:59 msgid "" @@ -1766,11 +1766,8 @@ msgid "How do I iterate over a sequence in reverse order?" msgstr "Comment itérer à rebours sur une séquence ?" #: faq/programming.rst:1125 -#, fuzzy msgid "Use the :func:`reversed` built-in function::" -msgstr "" -"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " -"2.4 ::" +msgstr "Utilisez la fonction native :func:`reversed` ::" #: faq/programming.rst:1130 msgid "" @@ -1821,9 +1818,8 @@ msgstr "" "doublons, puis la transforme à nouveau en liste." #: faq/programming.rst:1163 -#, fuzzy msgid "How do you remove multiple items from a list" -msgstr "Comment retirer les doublons d'une liste ?" +msgstr "Comment retirer les doublons d'une liste" #: faq/programming.rst:1165 msgid "" @@ -1832,11 +1828,14 @@ msgid "" "replacement with an implicit or explicit forward iteration. Here are three " "variations.::" msgstr "" +"Comme pour supprimer les doublons, il est possible d’itérer explicitement à " +"l’envers avec une condition de suppression. Cependant, il est plus facile et " +"plus rapide d’utiliser le remplacement des tranches par une itération avant, " +"implicite ou explicite. Voici trois variantes. ::" #: faq/programming.rst:1174 -#, fuzzy msgid "The list comprehension may be fastest." -msgstr "Utilisez une liste en compréhension ::" +msgstr "La liste en compréhension est peut-être la plus rapide ::" #: faq/programming.rst:1178 msgid "How do you make an array in Python?" diff --git a/faq/windows.po b/faq/windows.po index a753649d..0d4a0598 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -512,15 +512,14 @@ msgstr "" "pressée ?" #: faq/windows.rst:280 -#, fuzzy msgid "" "Use the :mod:`msvcrt` module. This is a standard Windows-specific extension " "module. It defines a function ``kbhit()`` which checks whether a keyboard " "hit is present, and ``getch()`` which gets one character without echoing it." msgstr "" -"Utilisez le module ``msvcrt``. C'est une extension standard spécifique à " +"Utilisez le module :mod:`msvcrt`. C'est une extension standard spécifique à " "Windows, qui définit une fonction ``kbhit()`` qui vérifie si une pression de " -"touche s'est produite, et ``getch()`` qui récupère le caractère sans " +"touche s'est produite, et ``getch()`` qui récupère le caractère sans " "l'afficher." #~ msgid "" diff --git a/glossary.po b/glossary.po index c596b486..a138a694 100644 --- a/glossary.po +++ b/glossary.po @@ -458,13 +458,15 @@ msgstr "" #: glossary.rst:191 msgid "callback" -msgstr "" +msgstr "*callback*" #: glossary.rst:193 msgid "" "A subroutine function which is passed as an argument to be executed at some " "point in the future." msgstr "" +"Une fonction (classique, par opposition à une coroutine) passée en argument " +"pour être exécutée plus tard." #: glossary.rst:195 msgid "class" @@ -735,24 +737,20 @@ msgstr "" "`__eq__`. En Perl, les dictionnaires sont appelés \"*hash*\"." #: glossary.rst:310 -#, fuzzy msgid "dictionary comprehension" -msgstr "liste en compréhension (ou liste en intension)" +msgstr "dictionnaire en compréhension (ou dictionnaire en intension)" #: glossary.rst:312 -#, fuzzy msgid "" "A compact way to process all or part of the elements in an iterable and " "return a dictionary with the results. ``results = {n: n ** 2 for n in " "range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n " "** 2``. See :ref:`comprehensions`." msgstr "" -"Écriture concise pour manipuler tout ou partie des éléments d'une séquence " -"et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." -"format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " -"nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " -"hexadécimal (``0x…``). La clause :keyword:`if` est optionnelle. Si elle est " -"omise, tous les éléments du ``range(256)`` seront utilisés." +"Écriture concise pour traiter tout ou partie des éléments d'un itérable et " +"renvoyer un dictionnaire contenant les résultats. ``results = {n: n ** 2 for " +"n in range(10)}`` génère un dictionnaire contenant des clés ``n`` liées à " +"leurs valeurs ``n ** 2``. Voir :ref:`compréhensions `." #: glossary.rst:316 msgid "dictionary view" @@ -2426,9 +2424,8 @@ msgstr "" "peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." #: glossary.rst:1034 -#, fuzzy msgid "set comprehension" -msgstr "liste en compréhension (ou liste en intension)" +msgstr "ensemble en compréhension (ou ensemble en intension)" #: glossary.rst:1036 msgid "" @@ -2437,6 +2434,10 @@ msgid "" "not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. See :ref:" "`comprehensions`." msgstr "" +"Une façon compacte de traiter tout ou partie des éléments d'un itérable et " +"de renvoyer un *set* avec les résultats. ``results = {c for c in " +"'abracadabra' if c not in 'abc'}`` génère l'ensemble contenant les lettres " +"« r » et « d » ``{'r', 'd'}``. Voir :ref:`comprehensions`." #: glossary.rst:1040 msgid "single dispatch" diff --git a/howto/clinic.po b/howto/clinic.po index f0ed5fbe..e4a3d5a2 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -1905,9 +1905,8 @@ msgstr "" "pas aussi simple, notamment à cause de sémantiques peu évidentes." #: howto/clinic.rst:976 -#, fuzzy msgid "Consider the following example:" -msgstr "Examinons l'exemple suivant ::" +msgstr "Examinons l'exemple suivant :" #: howto/clinic.rst:982 msgid "" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index 5f39cb29..c8f58774 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -389,17 +389,16 @@ msgstr "" "n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." #: howto/instrumentation.rst:383 -#, fuzzy msgid "" "This probe point is the converse of ``python.function.return``, and " "indicates that execution of a Python function has ended (either via " "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" -"Cette sonde est l'inverse de :c:func:`python.function.return`, et indique " -"que l'exécution d'une fonction Python est terminée (soit via ``return``, " -"soit via une exception). Elle est uniquement déclenchée pour les fonctions " -"en Python pur (code intermédiaire)." +"Cette sonde est l'inverse de ``python.function.return``, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Elle est uniquement déclenchée pour les fonctions en " +"Python pur (code intermédiaire ou *bytecode*)." #: howto/instrumentation.rst:390 msgid "Examples" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index 07d3fcbd..eddab04e 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -16,7 +16,7 @@ msgstr "" #: howto/logging-cookbook.rst:5 msgid "Logging Cookbook" -msgstr "" +msgstr "Recettes pour la journalisation" #: howto/logging-cookbook.rst:0 msgid "Author" @@ -34,7 +34,7 @@ msgstr "" #: howto/logging-cookbook.rst:15 msgid "Using logging in multiple modules" -msgstr "" +msgstr "Journalisation dans plusieurs modules" #: howto/logging-cookbook.rst:17 msgid "" @@ -47,10 +47,18 @@ msgid "" "logger calls to the child will pass up to the parent. Here is a main " "module::" msgstr "" +"Deux appels à ``logging.getLogger('unLogger')`` renvoient toujours une " +"référence vers le même objet de journalisation. C’est valable à l’intérieur " +"d’un module, mais aussi dans des modules différents pour autant que ce soit " +"le même processus de l’interpréteur Python. En plus, le code d’une " +"application peut définir et configurer une journalisation parente dans un " +"module et créer (mais pas configurer) une journalisation fille dans un " +"module séparé. Les appels à la journalisation fille passeront alors à la " +"journalisation parente. Voici un module principal ::" #: howto/logging-cookbook.rst:55 msgid "Here is the auxiliary module::" -msgstr "" +msgstr "Voici un module auxiliaire ::" #: howto/logging-cookbook.rst:75 msgid "The output looks like this:" @@ -58,27 +66,33 @@ msgstr "La sortie ressemble à ceci ::" #: howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" -msgstr "" +msgstr "Journalisation avec des fils d’exécution multiples" #: howto/logging-cookbook.rst:103 msgid "" "Logging from multiple threads requires no special effort. The following " "example shows logging from the main (initial) thread and another thread::" msgstr "" +"La journalisation avec des fils d’exécution multiples ne requiert pas " +"d’effort particulier. L’exemple suivant montre comment journaliser depuis le " +"fil principal (c.-à-d. initial) et un autre fil ::" #: howto/logging-cookbook.rst:132 msgid "When run, the script should print something like the following:" -msgstr "" +msgstr "À l’exécution, le script doit afficher quelque chose comme ça ::" #: howto/logging-cookbook.rst:154 msgid "" "This shows the logging output interspersed as one might expect. This " "approach works for more threads than shown here, of course." msgstr "" +"Les entrées de journalisation sont entrelacées, comme on pouvait s’y " +"attendre. Cette approche fonctionne aussi avec plus de fils que dans " +"l’exemple, bien sûr." #: howto/logging-cookbook.rst:158 msgid "Multiple handlers and formatters" -msgstr "" +msgstr "Plusieurs gestionnaires et formateurs" #: howto/logging-cookbook.rst:160 msgid "" @@ -91,6 +105,15 @@ msgid "" "slight modification to the previous simple module-based configuration " "example::" msgstr "" +"Les gestionnaires de journalisation sont des objets Python ordinaires. La " +"méthode :meth:`~Logger.addHandler` n’est pas limitée, en nombre minimum ou " +"maximum, en gestionnaires que vous pouvez ajouter. Parfois, il peut être " +"utile pour une application de journaliser tous les messages quels que soient " +"leurs niveaux vers un fichier texte, tout en journalisant les erreurs (et " +"plus grave) dans la console. Pour ce faire, configurez simplement les " +"gestionnaires de manière adéquate. Les appels de journalisation dans le code " +"de l’application resteront les mêmes. Voici une légère modification de " +"l’exemple précédent dans une configuration au niveau du module ::" #: howto/logging-cookbook.rst:193 msgid "" @@ -98,6 +121,9 @@ msgid "" "All that changed was the addition and configuration of a new handler named " "*fh*." msgstr "" +"Notez que le code de « l’application » ignore la multiplicité des " +"gestionnaires. Les modifications consistent simplement en l’ajout et la " +"configuration d’un nouveau gestionnaire appelé *fh*." #: howto/logging-cookbook.rst:196 msgid "" @@ -110,10 +136,19 @@ msgid "" "to happen is to modify the severity level of the logger and/or handler to " "debug." msgstr "" +"La possibilité de créer de nouveaux gestionnaires avec des filtres sur un " +"niveau de gravité supérieur ou inférieur peut être très utile lors de " +"l’écriture ou du test d’une application. Au lieu d’utiliser de nombreuses " +"instructions ``print`` pour le débogage, utilisez ``logger.debug`` : " +"contrairement aux instructions ``print``, que vous devrez supprimer ou " +"commenter plus tard, les instructions ``logger.debug`` peuvent demeurer " +"telles quelles dans le code source et restent dormantes jusqu’à ce que vous " +"en ayez à nouveau besoin. À ce moment-là, il suffit de modifier le niveau de " +"gravité de la journalisation ou du gestionnaire pour déboguer." #: howto/logging-cookbook.rst:207 msgid "Logging to multiple destinations" -msgstr "" +msgstr "Journalisation vers plusieurs destinations" #: howto/logging-cookbook.rst:209 msgid "" @@ -123,34 +158,46 @@ msgid "" "console. Let's also assume that the file should contain timestamps, but the " "console messages should not. Here's how you can achieve this::" msgstr "" +"Supposons que vous souhaitiez journaliser dans la console et dans un fichier " +"avec différents formats de messages et avec différents critères. Supposons " +"que vous souhaitiez consigner les messages de niveau DEBUG et supérieur dans " +"le fichier, et les messages de niveau INFO et supérieur dans la console. " +"Supposons également que le fichier doive contenir des horodatages, mais pas " +"les messages de la console. Voici comment y parvenir ::" #: howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" -msgstr "" +msgstr "Quand vous le lancez, vous devez voir" #: howto/logging-cookbook.rst:256 msgid "and in the file you will see something like" -msgstr "" +msgstr "et, dans le fichier, vous devez trouver" #: howto/logging-cookbook.rst:266 msgid "" "As you can see, the DEBUG message only shows up in the file. The other " "messages are sent to both destinations." msgstr "" +"Comme vous pouvez le constater, le message DEBUG n’apparaît que dans le " +"fichier. Les autres messages sont envoyés vers les deux destinations." #: howto/logging-cookbook.rst:269 msgid "" "This example uses console and file handlers, but you can use any number and " "combination of handlers you choose." msgstr "" +"Cet exemple utilise la console et des gestionnaires de fichier, mais vous " +"pouvez utiliser et combiner autant de gestionnaires que de besoin." #: howto/logging-cookbook.rst:274 msgid "Configuration server example" -msgstr "" +msgstr "Exemple d’un serveur de configuration" #: howto/logging-cookbook.rst:276 msgid "Here is an example of a module using the logging configuration server::" msgstr "" +"Voici un exemple de module mettant en œuvre la configuration de la " +"journalisation *via* un serveur ::" #: howto/logging-cookbook.rst:307 msgid "" @@ -158,10 +205,14 @@ msgid "" "server, properly preceded with the binary-encoded length, as the new logging " "configuration::" msgstr "" +"Et voici un script qui, à partir d’un nom de fichier, commence par envoyer " +"la taille du fichier encodée en binaire (comme il se doit), puis envoie ce " +"fichier au serveur pour définir la nouvelle configuration de " +"journalisation ::" #: howto/logging-cookbook.rst:330 msgid "Dealing with handlers that block" -msgstr "" +msgstr "Utilisation de gestionnaires bloquants" #: howto/logging-cookbook.rst:334 msgid "" @@ -180,6 +231,15 @@ msgid "" "which is too slow (and this query can be deep in the socket library code, " "below the Python layer, and outside your control)." msgstr "" +"Un gestionnaire classiquement lent est le :class:`SMTPHandler` : l’envoi d’e-" +"mails peut prendre beaucoup de temps, pour un certain nombre de raisons " +"indépendantes du développeur (par exemple, une infrastructure de messagerie " +"ou de réseau peu performante). Mais n’importe quel autre gestionnaire " +"utilisant le réseau ou presque peut aussi s’avérer bloquant : même une " +"simple opération :class:`SocketHandler` peut faire une requête DNS implicite " +"et être ainsi très lente (cette requête peut être enfouie profondément dans " +"le code de la bibliothèque d’accès réseau, sous la couche Python, et hors de " +"votre contrôle)." #: howto/logging-cookbook.rst:346 msgid "" @@ -194,6 +254,18 @@ msgid "" "to attach only ``QueueHandlers`` to your loggers) for the benefit of other " "developers who will use your code." msgstr "" +"Une solution consiste à utiliser une approche en deux parties. Pour la " +"première partie, affectez un seul :class:`QueueHandler` à la journalisation " +"des fils d’exécution critiques pour les performances. Ils écrivent " +"simplement dans leur file d’attente, qui peut être dimensionnée à une " +"capacité suffisamment grande ou initialisée sans limite supérieure en " +"taille. L’écriture dans la file d’attente est généralement acceptée " +"rapidement, mais nous vous conseillons quand même de prévoir d’intercepter " +"l’exception :exc:`queue.Full` par précaution dans votre code. Si vous " +"développez une bibliothèque avec des fils d’exécution critiques pour les " +"performances, documentez-le bien (avec une suggestion de n’affecter que des " +"``QueueHandlers`` à votre journalisation) pour faciliter le travail des " +"développeurs qui utilisent votre code." #: howto/logging-cookbook.rst:357 msgid "" @@ -205,6 +277,13 @@ msgid "" "matter). The ``LogRecords`` are removed from the queue and passed to the " "handlers for processing." msgstr "" +"La deuxième partie de la solution est la classe :class:`QueueListener`, " +"conçue comme l’homologue de :class:`QueueHandler`. Un :class:`QueueListener` " +"est très simple : vous lui passez une file d’attente et des gestionnaires, " +"et il lance un fil d’exécution interne qui scrute la file d’attente pour " +"récupérer les événements envoyés par les ``QueueHandlers`` (ou toute autre " +"source de ``LogRecords``, d’ailleurs). Les ``LogRecords`` sont supprimés de " +"la file d’attente et transmis aux gestionnaires pour traitement." #: howto/logging-cookbook.rst:365 msgid "" @@ -214,14 +293,20 @@ msgid "" "handler classes, which would eat up one thread per handler for no particular " "benefit." msgstr "" +"L’avantage d’avoir une classe :class:`QueueListener` séparée est que vous " +"pouvez utiliser la même instance pour servir plusieurs ``QueueHandlers``. " +"Cela consomme moins de ressources que des instances de gestionnaires " +"réparties chacune dans un fil d’exécution séparé." #: howto/logging-cookbook.rst:370 msgid "An example of using these two classes follows (imports omitted)::" msgstr "" +"Voici un exemple d’utilisation de ces deux classes (les importations sont " +"omises) ::" #: howto/logging-cookbook.rst:388 msgid "which, when run, will produce:" -msgstr "" +msgstr "ce qui produit ceci à l’exécution :" #: howto/logging-cookbook.rst:394 msgid "" @@ -234,10 +319,18 @@ msgid "" "of each message with the handler's level, and only passes a message to a " "handler if it's appropriate to do so." msgstr "" +"avant Python 3.5, la classe :class:`QueueListener` passait chaque message " +"reçu de la file d’attente à chaque gestionnaire avec lequel l’instance avait " +"été initialisée (on supposait que le filtrage de niveau était entièrement " +"effectué de l’autre côté, au niveau de l’alimentation de la file d’attente). " +"Depuis Python 3.5, le comportement peut être modifié en passant l’argument " +"par mot-clé ``respect_handler_level=True`` au constructeur. Dans ce cas, la " +"``QueueListener`` compare le niveau de chaque message avec le niveau défini " +"dans chaque gestionnaire et ne transmet le message que si c’est opportun." #: howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" -msgstr "" +msgstr "Envoi et réception d’événements de journalisation à travers le réseau" #: howto/logging-cookbook.rst:409 msgid "" @@ -245,18 +338,26 @@ msgid "" "at the receiving end. A simple way of doing this is attaching a :class:" "`SocketHandler` instance to the root logger at the sending end::" msgstr "" +"Supposons que vous souhaitiez envoyer des événements de journalisation sur " +"un réseau et les traiter à la réception. Une façon simple de faire est " +"d’attacher une instance :class:`SocketHandler` à la journalisation racine de " +"l’émetteur ::" #: howto/logging-cookbook.rst:437 msgid "" "At the receiving end, you can set up a receiver using the :mod:" "`socketserver` module. Here is a basic working example::" msgstr "" +"Vous pouvez configurer le récepteur en utilisant le module :mod:" +"`socketserver`. Voici un exemple élémentaire ::" #: howto/logging-cookbook.rst:525 msgid "" "First run the server, and then the client. On the client side, nothing is " "printed on the console; on the server side, you should see something like:" msgstr "" +"Lancez d’abord le serveur, puis le client. Côté client, rien ne s’affiche " +"sur la console ; côté serveur, vous devez voir quelque chose comme ça :" #: howto/logging-cookbook.rst:537 msgid "" @@ -266,10 +367,15 @@ msgid "" "implementing your alternative there, as well as adapting the above script to " "use your alternative serialization." msgstr "" +"Notez que ``pickle`` introduit des problèmes de sécurité dans certains " +"scénarios. Si vous êtes concerné, vous pouvez utiliser une sérialisation " +"alternative en surchargeant la méthode :meth:`~handlers.SocketHandler." +"makePickle` par votre propre implémentation, ainsi qu’en adaptant le script " +"ci-dessus pour utiliser votre sérialisation." #: howto/logging-cookbook.rst:547 msgid "Adding contextual information to your logging output" -msgstr "" +msgstr "Ajout d’informations contextuelles dans la journalisation" #: howto/logging-cookbook.rst:549 msgid "" @@ -286,10 +392,26 @@ msgid "" "logging an application, it could be hard to manage if the number of :class:" "`Logger` instances becomes effectively unbounded." msgstr "" +"Dans certains cas, vous pouvez souhaiter que la journalisation contienne des " +"informations contextuelles en plus des paramètres transmis à l’appel de " +"journalisation. Par exemple, dans une application réseau, il peut être " +"souhaitable de consigner des informations spécifiques au client dans le " +"journal (par exemple, le nom d’utilisateur ou l’adresse IP du client " +"distant). Bien que vous puissiez utiliser le paramètre *extra* pour y " +"parvenir, il n’est pas toujours pratique de transmettre les informations de " +"cette manière. Il peut être aussi tentant de créer des instances :class:" +"`Logger` connexion par connexion, mais ce n’est pas une bonne idée car ces " +"instances :class:`Logger` ne sont pas éliminées par le ramasse-miettes. Même " +"si ce point n’est pas problématique en soi si la journalisation est " +"configurée avec plusieurs niveaux de granularité, cela peut devenir " +"difficile de gérer un nombre potentiellement illimité d’instances de :class:" +"`Logger`." #: howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" msgstr "" +"Utilisation d’adaptateurs de journalisation pour transmettre des " +"informations contextuelles" #: howto/logging-cookbook.rst:566 msgid "" @@ -301,6 +423,14 @@ msgid "" "signatures as their counterparts in :class:`Logger`, so you can use the two " "types of instances interchangeably." msgstr "" +"Un moyen simple de transmettre des informations contextuelles accompagnant " +"les informations de journalisation consiste à utiliser la classe :class:" +"`LoggerAdapter`. Cette classe est conçue pour ressembler à un :class:" +"`Logger`, de sorte que vous pouvez appeler :meth:`debug`, :meth:`info`, :" +"meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` et :meth:" +"`log`. Ces méthodes ont les mêmes signatures que leurs homologues dans :" +"class:`Logger`, vous pouvez donc utiliser les deux types d’instances de " +"manière interchangeable." #: howto/logging-cookbook.rst:574 msgid "" @@ -312,6 +442,13 @@ msgid "" "contextual information in the delegated call. Here's a snippet from the code " "of :class:`LoggerAdapter`::" msgstr "" +"Lorsque vous créez une instance de :class:`LoggerAdapter`, vous lui " +"transmettez une instance de :class:`Logger` et un objet dictionnaire qui " +"contient vos informations contextuelles. Lorsque vous appelez l’une des " +"méthodes de journalisation sur une instance de :class:`LoggerAdapter`, elle " +"délègue l’appel à l’instance sous-jacente de :class:`Logger` transmise à son " +"constructeur et s’arrange pour intégrer les informations contextuelles dans " +"l’appel délégué. Voici un extrait du code de :class:`LoggerAdapter` ::" #: howto/logging-cookbook.rst:590 msgid "" @@ -325,6 +462,15 @@ msgid "" "had passed an 'extra' keyword argument in the call to the adapter, it will " "be silently overwritten." msgstr "" +"Les informations contextuelles sont ajoutées dans la méthode :meth:" +"`~LoggerAdapter.process` de :class:`LoggerAdapter`. On lui passe le message " +"et les arguments par mot-clé de l’appel de journalisation, et elle en " +"renvoie des versions (potentiellement) modifiées à utiliser pour la " +"journalisation sous-jacente. L’implémentation par défaut de cette méthode " +"laisse le message seul, mais insère une clé ``extra`` dans l’argument par " +"mot-clé dont la valeur est l’objet dictionnaire passé au constructeur. Bien " +"sûr, si vous avez passé un argument par mot-clé ``extra`` dans l’appel à " +"l’adaptateur, il est écrasé silencieusement." #: howto/logging-cookbook.rst:599 msgid "" @@ -336,20 +482,33 @@ msgid "" "string, you just need to subclass :class:`LoggerAdapter` and override :meth:" "`~LoggerAdapter.process` to do what you need. Here is a simple example::" msgstr "" +"L’avantage d’utiliser ``extra`` est que les valeurs de l’objet dictionnaire " +"sont fusionnées dans le ``__dict__`` de l’instance :class:`LogRecord`, ce " +"qui vous permet d’utiliser des chaînes personnalisées avec vos instances :" +"class:`Formatter` qui connaissent les clés de l’objet dictionnaire. Si vous " +"avez besoin d’une méthode différente, par exemple si vous souhaitez ajouter " +"des informations contextuelles avant ou après la chaîne de message, il vous " +"suffit de surcharger :class:`LoggerAdapter` et de remplacer :meth:" +"`~LoggerAdapter.process` pour faire ce dont vous avez besoin. Voici un " +"exemple simple ::" #: howto/logging-cookbook.rst:615 msgid "which you can use like this::" -msgstr "" +msgstr "que vous pouvez utiliser comme ceci ::" #: howto/logging-cookbook.rst:620 msgid "" "Then any events that you log to the adapter will have the value of " "``some_conn_id`` prepended to the log messages." msgstr "" +"Ainsi, tout événement journalisé aura la valeur de ``some_conn_id`` insérée " +"en début de message de journalisation." #: howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" msgstr "" +"Utilisation d’objets autres que les dictionnaires pour passer des " +"informations contextuelles" #: howto/logging-cookbook.rst:626 msgid "" @@ -359,10 +518,16 @@ msgid "" "if you want to generate values dynamically (whereas the values in a dict " "would be constant)." msgstr "" +"Il n’est pas obligatoire de passer un dictionnaire réel à un :class:" +"`LoggerAdapter`, vous pouvez passer une instance d’une classe qui implémente " +"``__getitem__`` et ``__iter__`` pour qu’il ressemble à un dictionnaire du " +"point de vue de la journalisation. C’est utile si vous souhaitez générer des " +"valeurs de manière dynamique (alors que les valeurs d’un dictionnaire " +"seraient constantes)." #: howto/logging-cookbook.rst:635 msgid "Using Filters to impart contextual information" -msgstr "" +msgstr "Utilisation de filtres pour transmettre des informations contextuelles" #: howto/logging-cookbook.rst:637 msgid "" @@ -372,6 +537,12 @@ msgid "" "can then be output using a suitable format string, or if needed a custom :" "class:`Formatter`." msgstr "" +"Un :class:`Filter` défini par l’utilisateur peut aussi ajouter des " +"informations contextuelles à la journalisation. Les instances de ``Filter`` " +"sont autorisées à modifier les ``LogRecords`` qui leur sont transmis, y " +"compris par l’ajout d’attributs supplémentaires qui peuvent ensuite être " +"intégrés à la journalisation en utilisant une chaîne de formatage appropriée " +"ou, si nécessaire, un :class:`Formatter` personnalisé." #: howto/logging-cookbook.rst:642 msgid "" @@ -384,14 +555,23 @@ msgid "" "format string can be used to get similar output to that shown above. Here's " "an example script::" msgstr "" +"Par exemple, dans une application Web, la requête en cours de traitement (ou " +"du moins ce qu’elle contient d’intéressant) peut être stockée dans une " +"variable locale au fil d’exécution (:class:`threading.local`), puis utilisée " +"dans un ``Filter`` pour ajouter, par exemple, des informations relatives à " +"la requête (par exemple, l’adresse IP distante et le nom de l’utilisateur) " +"au ``LogRecord``, en utilisant les noms d’attribut ``ip`` et ``user`` comme " +"dans l’exemple ``LoggerAdapter`` ci-dessus. Dans ce cas, la même chaîne de " +"formatage peut être utilisée pour obtenir une sortie similaire à celle " +"indiquée ci-dessus. Voici un exemple de script ::" #: howto/logging-cookbook.rst:688 msgid "which, when run, produces something like:" -msgstr "" +msgstr "qui, à l’exécution, produit quelque chose comme ça ::" #: howto/logging-cookbook.rst:709 msgid "Logging to a single file from multiple processes" -msgstr "" +msgstr "Journalisation vers un fichier unique à partir de plusieurs processus" #: howto/logging-cookbook.rst:711 msgid "" @@ -408,6 +588,20 @@ msgid "" "includes a working socket receiver which can be used as a starting point for " "you to adapt in your own applications." msgstr "" +"La journalisation est fiable avec les programmes à fils d’exécution " +"multiples (*thread-safe*) : rien n’empêche plusieurs fils d’exécution de " +"journaliser dans le même fichier, du moment que ces fils d’exécution font " +"partie du même processus. En revanche, il n’existe aucun moyen standard de " +"sérialiser l’accès à un seul fichier sur plusieurs processus en Python. Si " +"vous avez besoin de vous connecter à un seul fichier à partir de plusieurs " +"processus, une façon de le faire est de faire en sorte que tous les " +"processus se connectent à un :class:`~handlers.SocketHandler`, et d’avoir un " +"processus séparé qui implémente un serveur qui lit à partir de ce connecteur " +"et écrit les journaux dans le fichier (si vous préférez, vous pouvez dédier " +"un fil d’exécution dans l’un des processus existants pour exécuter cette " +"tâche). :ref:`Cette section ` documente cette approche plus " +"en détail et inclut un connecteur en écoute réseau fonctionnel qui peut être " +"utilisé comme point de départ pour l’adapter à vos propres applications." #: howto/logging-cookbook.rst:724 msgid "" @@ -419,6 +613,14 @@ msgid "" "`multiprocessing` module does not provide working lock functionality on all " "platforms (see https://bugs.python.org/issue3770)." msgstr "" +"Vous pouvez également écrire votre propre gestionnaire en utilisant la " +"classe :class:`~multiprocessing.Lock` du module :mod:`multiprocessing` pour " +"sérialiser l’accès au fichier depuis vos processus. Les actuels :class:" +"`FileHandler` et sous-classes n’utilisent pas :mod:`multiprocessing` pour le " +"moment, même s’ils pourraient le faire à l’avenir. Notez qu’à l’heure " +"actuelle, le module :mod:`multiprocessing` ne fournit pas un verrouillage " +"fonctionnel pour toutes les plates-formes (voir https://bugs.python.org/" +"issue3770)." #: howto/logging-cookbook.rst:734 msgid "" @@ -434,12 +636,26 @@ msgid "" "application, and can be used as the basis for code meeting your own specific " "requirements::" msgstr "" +"Autrement, vous pouvez utiliser une ``Queue`` et un :class:`QueueHandler` " +"pour envoyer tous les événements de journalisation à l’un des processus de " +"votre application multi-processus. L’exemple de script suivant montre " +"comment procéder ; dans l’exemple, un processus d’écoute distinct écoute les " +"événements envoyés par les autres processus et les journalise en fonction de " +"sa propre configuration de journalisation. Bien que l’exemple ne montre " +"qu’une seule façon de faire (par exemple, vous pouvez utiliser un fil " +"d’exécution d’écoute plutôt qu’un processus d’écoute séparé – " +"l’implémentation serait analogue), il permet des configurations de " +"journalisation complètement différentes pour celui qui écoute ainsi que pour " +"les autres processus de votre application, et peut être utilisé comme base " +"pour répondre à vos propres exigences ::" #: howto/logging-cookbook.rst:850 msgid "" "A variant of the above script keeps the logging in the main process, in a " "separate thread::" msgstr "" +"Une variante du script ci-dessus conserve la journalisation dans le " +"processus principal, dans un fil séparé ::" #: howto/logging-cookbook.rst:945 msgid "" @@ -450,10 +666,17 @@ msgid "" "events are generated in the worker processes) to direct the messages to the " "appropriate destinations." msgstr "" +"Cette variante montre comment appliquer la configuration pour des " +"enregistreurs particuliers – par exemple l’enregistreur ``foo`` a un " +"gestionnaire spécial qui stocke tous les événements du sous-système ``foo`` " +"dans un fichier ``mplog-foo.log``. C’est utilisé par le mécanisme de " +"journalisation dans le processus principal (même si les événements de " +"journalisation sont générés dans les processus de travail) pour diriger les " +"messages vers les destinations appropriées." #: howto/logging-cookbook.rst:952 msgid "Using concurrent.futures.ProcessPoolExecutor" -msgstr "" +msgstr "Utilisation de concurrent.futures.ProcessPoolExecutor" #: howto/logging-cookbook.rst:954 msgid "" @@ -461,22 +684,29 @@ msgid "" "your worker processes, you need to create the queue slightly differently. " "Instead of" msgstr "" +"Si vous souhaitez utiliser :class:`concurrent.futures.ProcessPoolExecutor` " +"pour démarrer vos processus de travail, vous devez créer la file d’attente " +"légèrement différemment. À la place de" #: howto/logging-cookbook.rst:962 msgid "you should use" -msgstr "" +msgstr "vous devez écrire" #: howto/logging-cookbook.rst:968 msgid "and you can then replace the worker creation from this::" msgstr "" +"et vous pouvez alors remplacer la création du processus de travail telle " +"que ::" #: howto/logging-cookbook.rst:979 msgid "to this (remembering to first import :mod:`concurrent.futures`)::" msgstr "" +"par celle-ci (souvenez-vous d’importer au préalable :mod:`concurrent." +"futures`) ::" #: howto/logging-cookbook.rst:987 msgid "Using file rotation" -msgstr "" +msgstr "Utilisation du roulement de fichiers" #: howto/logging-cookbook.rst:992 msgid "" @@ -487,12 +717,21 @@ msgid "" "usage pattern, the logging package provides a :class:`~handlers." "RotatingFileHandler`::" msgstr "" +"Parfois, vous souhaitez laisser un fichier de journalisation grossir jusqu’à " +"une certaine taille, puis ouvrir un nouveau fichier et vous y enregistrer " +"les nouveaux événements. Vous souhaitez peut-être conserver un certain " +"nombre de ces fichiers et, lorsque ce nombre de fichiers aura été créé, " +"faire rouler les fichiers afin que le nombre de fichiers et la taille des " +"fichiers restent tous deux limités. Pour ce cas d’usage, :class:`~handlers." +"RotatingFileHandler` est inclus dans le paquet de journalisation ::" #: howto/logging-cookbook.rst:1024 msgid "" "The result should be 6 separate files, each with part of the log history for " "the application:" msgstr "" +"Vous devez obtenir 6 fichiers séparés, chacun contenant une partie de " +"l’historique de journalisation de l’application :" #: howto/logging-cookbook.rst:1036 msgid "" @@ -501,16 +740,23 @@ msgid "" "``.1``. Each of the existing backup files is renamed to increment the suffix " "(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." msgstr "" +"Le fichier de journalisation actuel est toujours :file:" +"`logging_rotatingfile_example.out`, et chaque fois qu’il atteint la taille " +"limite, il est renommé avec le suffixe ``.1``. Chacun des fichiers de " +"sauvegarde existants est renommé pour incrémenter le suffixe (``.1`` devient " +"``.2``, etc.) et le fichier ``.6`` est effacé." #: howto/logging-cookbook.rst:1041 msgid "" "Obviously this example sets the log length much too small as an extreme " "example. You would want to set *maxBytes* to an appropriate value." msgstr "" +"De toute évidence, la longueur du journal définie dans cet exemple est " +"beaucoup trop petite. À vous de définir *maxBytes* à une valeur appropriée." #: howto/logging-cookbook.rst:1047 msgid "Use of alternative formatting styles" -msgstr "" +msgstr "Utilisation d’autres styles de formatage" #: howto/logging-cookbook.rst:1049 msgid "" @@ -520,6 +766,11 @@ msgid "" "`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " "Python 2.6)." msgstr "" +"Lorsque la journalisation a été ajoutée à la bibliothèque standard Python, " +"la seule façon de formater les messages avec un contenu variable était " +"d’utiliser la méthode de formatage avec « % ». Depuis, Python s’est enrichi " +"de deux nouvelles méthode de formatage : :class:`string.Template` (ajouté " +"dans Python 2.4) et :meth:`str.format` (ajouté dans Python 2.6)." #: howto/logging-cookbook.rst:1055 msgid "" @@ -533,6 +784,17 @@ msgid "" "meth:`str.format` or :class:`string.Template`. Here's an example console " "session to show the possibilities:" msgstr "" +"La journalisation (à partir de la version 3.2) offre une meilleure prise en " +"charge de ces deux styles de formatage supplémentaires. La classe :class:" +"`Formatter` a été améliorée pour accepter un paramètre par mot-clé " +"facultatif supplémentaire nommé ``style``. La valeur par défaut est ``'%'``, " +"les autres valeurs possibles étant ``'{'`` et ``'$'``, qui correspondent aux " +"deux autres styles de formatage. La rétrocompatibilité est maintenue par " +"défaut (comme vous vous en doutez) mais, en spécifiant explicitement un " +"paramètre de style, vous avez la possibilité de spécifier des chaînes de " +"format qui fonctionnent avec :meth:`str.format` ou :class:`string.Template`. " +"Voici un exemple de session interactive en console pour montrer les " +"possibilités :" #: howto/logging-cookbook.rst:1089 msgid "" @@ -540,6 +802,10 @@ msgid "" "completely independent of how an individual logging message is constructed. " "That can still use %-formatting, as shown here::" msgstr "" +"Notez que le formatage des messages de journalisation est, au final, " +"complètement indépendant de la façon dont un message de journalisation " +"individuel est construit. Vous pouvez toujours utiliser formatage *via* " +"« % », comme ici ::" #: howto/logging-cookbook.rst:1097 msgid "" @@ -556,6 +822,19 @@ msgid "" "logging calls which are out there in existing code will be using %-format " "strings." msgstr "" +"Les appels de journalisation (``logger.debug()``, ``logger.info()`` etc.) ne " +"prennent que des paramètres positionnels pour le message de journalisation " +"lui-même, les paramètres par mots-clés étant utilisés uniquement pour " +"déterminer comment gérer le message réel (par exemple, le paramètre par mot-" +"clé ``exc_info`` indique que les informations de trace doivent être " +"enregistrées, ou le paramètre par mot-clé ``extra`` indique des informations " +"contextuelles supplémentaires à ajouter au journal). Vous ne pouvez donc pas " +"inclure dans les appels de journalisation à l’aide de la syntaxe :meth:`str." +"format` ou :class:`string.Template`, car le paquet de journalisation utilise " +"le formatage via « % » en interne pour fusionner la chaîne de format et les " +"arguments de variables. Il n’est pas possible de changer ça tout en " +"préservant la rétrocompatibilité puisque tous les appels de journalisation " +"dans le code pré-existant utilisent des chaînes au format « % »." #: howto/logging-cookbook.rst:1110 msgid "" @@ -565,6 +844,11 @@ msgid "" "will call ``str()`` on that object to get the actual format string. Consider " "the following two classes::" msgstr "" +"Il existe cependant un moyen d’utiliser le formatage *via* « {} » et « $ » " +"pour vos messages de journalisation. Rappelez-vous que, pour un message, " +"vous pouvez utiliser un objet arbitraire comme chaîne de format de message, " +"et que le package de journalisation appelle ``str()`` sur cet objet pour " +"fabriquer la chaîne finale. Considérez les deux classes suivantes ::" #: howto/logging-cookbook.rst:1134 msgid "" @@ -576,6 +860,14 @@ msgid "" "__ (double underscore --- not to be confused with _, the single underscore " "used as a synonym/alias for :func:`gettext.gettext` or its brethren)." msgstr "" +"L’une ou l’autre peut être utilisée à la place d’une chaîne de format " +"\"%(message)s\" ou \"{message}\" ou \"$message\", afin de mettre en forme " +"*via* « { } » ou « $ » la partie « message réel » qui apparaît dans la " +"sortie de journal formatée. Il est un peu lourd d’utiliser les noms de " +"classe chaque fois que vous voulez journaliser quelque chose, mais ça " +"devient acceptable si vous utilisez un alias tel que __ (double trait de " +"soulignement — à ne pas confondre avec _, le trait de soulignement unique " +"utilisé comme alias pour :func:`gettext.gettext` ou ses homologues)." #: howto/logging-cookbook.rst:1142 msgid "" @@ -583,6 +875,10 @@ msgid "" "copy and paste into your own code. They can be used as follows (assuming " "that they're declared in a module called ``wherever``):" msgstr "" +"Les classes ci-dessus ne sont pas incluses dans Python, bien qu’elles soient " +"assez faciles à copier et coller dans votre propre code. Elles peuvent être " +"utilisées comme suit (en supposant qu’elles soient déclarées dans un module " +"appelé ``wherever``) :" #: howto/logging-cookbook.rst:1164 msgid "" @@ -590,6 +886,9 @@ msgid "" "you would of course use ``logger.debug()`` or similar to actually log using " "this approach." msgstr "" +"Alors que les exemples ci-dessus utilisent ``print()`` pour montrer comment " +"fonctionne le formatage, utilisez bien sûr ``logger.debug()`` ou similaire " +"pour journaliser avec cette approche." #: howto/logging-cookbook.rst:1168 msgid "" @@ -601,22 +900,35 @@ msgid "" "not just the format string. That's because the __ notation is just syntax " "sugar for a constructor call to one of the XXXMessage classes." msgstr "" +"Une chose à noter est qu’il n’y a pas de perte de performance significative " +"avec cette approche : le formatage réel ne se produit pas lorsque vous " +"effectuez l’appel de journalisation, mais lorsque (et si) le message " +"journalisé est réellement sur le point d’être écrit dans un journal par un " +"gestionnaire. Ainsi, la seule chose légèrement inhabituelle qui pourrait " +"vous perturber est que les parenthèses entourent la chaîne de format et les " +"arguments, pas seulement la chaîne de format. C’est parce que la notation __ " +"n’est que du sucre syntaxique pour un appel de constructeur à l’une des " +"classes ``XXXMessage``." #: howto/logging-cookbook.rst:1176 msgid "" "If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " "effect to the above, as in the following example::" msgstr "" +"Si vous préférez, vous pouvez utiliser un :class:`LoggerAdapter` pour " +"obtenir un effet similaire à ce qui précède, comme dans l’exemple suivant ::" #: howto/logging-cookbook.rst:1207 msgid "" "The above script should log the message ``Hello, world!`` when run with " "Python 3.2 or later." msgstr "" +"Le script ci-dessus journalise le message ``Hello, world!`` quand il est " +"lancé avec Python 3.2 ou ultérieur." #: howto/logging-cookbook.rst:1216 msgid "Customizing ``LogRecord``" -msgstr "" +msgstr "Personnalisation de ``LogRecord``" #: howto/logging-cookbook.rst:1218 msgid "" @@ -628,12 +940,22 @@ msgid "" "disabled). Before Python 3.2, there were only two places where this creation " "was done:" msgstr "" +"Chaque événement de journalisation est représenté par une instance :class:" +"`LogRecord`. Lorsqu’un événement est enregistré et non filtré en raison du " +"niveau d’un enregistreur, un :class:`LogRecord` est créé, rempli avec les " +"informations de l’événement, puis transmis aux gestionnaires de cet " +"enregistreur (et ses ancêtres, jusqu’à et y compris l’enregistreur où la " +"propagation vers le haut de la hiérarchie est désactivée). Avant Python 3.2, " +"il n’y avait que deux endroits où cette création était effectuée :" #: howto/logging-cookbook.rst:1225 msgid "" ":meth:`Logger.makeRecord`, which is called in the normal process of logging " "an event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" +":meth:`Logger.makeRecord`, qui est appelée dans le processus normal de " +"journalisation d’un événement. Elle appelait :class:`LogRecord` directement " +"pour créer une instance." #: howto/logging-cookbook.rst:1228 msgid "" @@ -643,12 +965,20 @@ msgid "" "via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" "`~handlers.HTTPHandler`)." msgstr "" +":func:`makeLogRecord`, qui est appelée avec un dictionnaire contenant des " +"attributs à ajouter au *LogRecord*. Elle est généralement invoquée lorsqu’un " +"dictionnaire approprié a été reçu par le réseau (par exemple, sous forme de " +"*pickle* *via* un :class:`~handlers.SocketHandler`, ou sous format JSON " +"*via* un :class:`~handlers.HTTPHandler`)." #: howto/logging-cookbook.rst:1234 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." msgstr "" +"Cela signifiait généralement que, si vous deviez faire quelque chose de " +"spécial avec un :class:`LogRecord`, vous deviez faire l’une des choses " +"suivantes." #: howto/logging-cookbook.rst:1237 msgid "" @@ -656,6 +986,9 @@ msgid "" "makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " "loggers that you care about are instantiated." msgstr "" +"Créer votre propre sous-classe :class:`Logger`, surchargeant :meth:`Logger." +"makeRecord`, et la personnaliser à l’aide de :func:`~logging.setLoggerClass` " +"avant que les enregistreurs qui vous intéressaient ne soient instanciés." #: howto/logging-cookbook.rst:1240 msgid "" @@ -663,6 +996,9 @@ msgid "" "special manipulation you need when its :meth:`~Filter.filter` method is " "called." msgstr "" +"Ajouter un :class:`Filter` à un enregistreur ou un gestionnaire, qui " +"effectuait la manipulation spéciale nécessaire dont vous aviez besoin " +"lorsque sa méthode :meth:`~Filter.filter` était appelée." #: howto/logging-cookbook.rst:1244 msgid "" @@ -671,6 +1007,10 @@ msgid "" "attempt to set its own :class:`Logger` subclass, and the one which did this " "last would win." msgstr "" +"La première approche est un peu lourde dans le scénario où (disons) " +"plusieurs bibliothèques différentes veulent faire des choses différentes. " +"Chacun essaie de définir sa propre sous-classe :class:`Logger`, et celui qui " +"l’a fait en dernier gagne." #: howto/logging-cookbook.rst:1249 msgid "" @@ -680,6 +1020,12 @@ msgid "" "to remember to do this every time they introduced a new logger (which they " "would do simply by adding new packages or modules and doing ::" msgstr "" +"La seconde approche fonctionne raisonnablement bien dans de nombreux cas, " +"mais ne vous permet pas, par exemple, d’utiliser une sous-classe spécialisée " +"de :class:`LogRecord`. Les développeurs de bibliothèques peuvent définir un " +"filtre approprié sur leurs enregistreurs, mais ils doivent se rappeler de le " +"faire chaque fois qu’ils introduisent un nouvel enregistreur (ce qu’ils font " +"simplement en ajoutant de nouveaux paquets ou modules et en écrivant ::" #: howto/logging-cookbook.rst:1257 msgid "" @@ -690,6 +1036,13 @@ msgid "" "so output from that handler would not reflect the intentions of the library " "developer." msgstr "" +"au niveau des modules). C’est probablement trop de choses auxquelles penser. " +"Les développeurs pourraient également ajouter le filtre à un :class:" +"`~logging.NullHandler` attaché à leur enregistreur de niveau supérieur, mais " +"cela ne serait pas invoqué si un développeur d’application attachait un " +"gestionnaire à un enregistreur de bibliothèque de niveau inférieur — donc la " +"sortie de ce gestionnaire ne refléterait pas les intentions du développeur " +"de la bibliothèque." #: howto/logging-cookbook.rst:1263 msgid "" @@ -700,6 +1053,13 @@ msgid "" "signature as the :class:`~logging.LogRecord` constructor, as :class:" "`LogRecord` is the default setting for the factory." msgstr "" +"Dans Python 3.2 et ultérieurs, la création de :class:`~logging.LogRecord` " +"est effectuée via une fabrique, que vous pouvez spécifier. La fabrique est " +"juste un appelable que vous pouvez définir avec :func:`~logging." +"setLogRecordFactory`, et interroger avec :func:`~logging." +"getLogRecordFactory`. La fabrique est invoquée avec la même signature que le " +"constructeur :class:`~logging.LogRecord`, car :class:`LogRecord` est le " +"paramètre par défaut de la fabrique." #: howto/logging-cookbook.rst:1270 msgid "" @@ -708,6 +1068,10 @@ msgid "" "additional attributes to the record once created, using a pattern similar to " "this::" msgstr "" +"Cette approche permet à une fabrique personnalisée de contrôler tous les " +"aspects de la création d’un *LogRecord*. Par exemple, vous pouvez renvoyer " +"une sous-classe ou simplement ajouter des attributs supplémentaires à " +"l’enregistrement une fois créé, en utilisant un modèle similaire à celui-ci :" #: howto/logging-cookbook.rst:1283 msgid "" @@ -718,10 +1082,18 @@ msgid "" "time overhead to all logging operations, and the technique should only be " "used when the use of a :class:`Filter` does not provide the desired result." msgstr "" +"Ce modèle permet à différentes bibliothèques d’enchaîner des fabriques, et " +"tant qu’elles n’écrasent pas les attributs des autres ou n’écrasent pas " +"involontairement les attributs fournis en standard, il ne devrait pas y " +"avoir de surprise. Cependant, il faut garder à l’esprit que chaque maillon " +"de la chaîne ajoute une surcharge d’exécution à toutes les opérations de " +"journalisation, et la technique ne doit être utilisée que lorsque " +"l’utilisation d’un :class:`Filter` ne permet pas d’obtenir le résultat " +"souhaité." #: howto/logging-cookbook.rst:1294 msgid "Subclassing QueueHandler - a ZeroMQ example" -msgstr "" +msgstr "Dérivation de *QueueHandler* – un exemple de *ZeroMQ*" #: howto/logging-cookbook.rst:1296 msgid "" @@ -729,22 +1101,31 @@ msgid "" "of queues, for example a ZeroMQ 'publish' socket. In the example below,the " "socket is created separately and passed to the handler (as its 'queue')::" msgstr "" +"Vous pouvez utiliser une sous-classe :class:`QueueHandler` pour envoyer des " +"messages à d’autres types de files d’attente, par exemple un connecteur " +"*ZeroMQ publish*. Dans l’exemple ci-dessous, le connecteur est créé " +"séparément et transmis au gestionnaire (en tant que file d’attente) ::" #: howto/logging-cookbook.rst:1315 msgid "" "Of course there are other ways of organizing this, for example passing in " "the data needed by the handler to create the socket::" msgstr "" +"Bien sûr, il existe d’autres manières de faire, par exemple en transmettant " +"les données nécessaires au gestionnaire pour créer le connecteur ::" #: howto/logging-cookbook.rst:1333 msgid "Subclassing QueueListener - a ZeroMQ example" -msgstr "" +msgstr "Dérivation de *QueueListener* – un exemple de *ZeroMQ*" #: howto/logging-cookbook.rst:1335 msgid "" "You can also subclass :class:`QueueListener` to get messages from other " "kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" msgstr "" +"Vous pouvez également dériver :class:`QueueListener` pour obtenir des " +"messages d’autres types de files d’attente, par exemple un connecteur " +"*ZeroMQ subscribe*. Voici un exemple ::" #: howto/logging-cookbook.rst:1354 msgid "Module :mod:`logging`" @@ -773,14 +1154,18 @@ msgstr "Gestionnaires utiles inclus avec le module de journalisation." #: howto/logging-cookbook.rst:1362 msgid ":ref:`A basic logging tutorial `" msgstr "" +":ref:`Les bases de l’utilisation du module de journalisation `" #: howto/logging-cookbook.rst:1364 msgid ":ref:`A more advanced logging tutorial `" msgstr "" +":ref:`Utilisation avancée du module de journalisation `" #: howto/logging-cookbook.rst:1368 msgid "An example dictionary-based configuration" -msgstr "" +msgstr "Exemple de configuration basée sur un dictionnaire" #: howto/logging-cookbook.rst:1370 msgid "" @@ -789,6 +1174,11 @@ msgid "" "stable/topics/logging/#configuring-logging>`_. This dictionary is passed to :" "func:`~config.dictConfig` to put the configuration into effect::" msgstr "" +"Vous trouverez ci-dessous un exemple de dictionnaire de configuration de " +"journalisation ­– il est tiré de la `documentation du projet Django `_. Ce " +"dictionnaire est passé à :func:`~config.dictConfig` pour activer la " +"configuration ::" #: howto/logging-cookbook.rst:1426 msgid "" @@ -796,10 +1186,15 @@ msgid "" "section `_ of the Django documentation." msgstr "" +"Pour plus d’informations sur cette configuration, vous pouvez consulter la " +"`section correspondante `_ de la documentation de *Django*." #: howto/logging-cookbook.rst:1433 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" +"Utilisation d’un rotateur et d’un nom pour personnaliser la rotation des " +"journaux" #: howto/logging-cookbook.rst:1435 msgid "" @@ -816,7 +1211,7 @@ msgstr "" #: howto/logging-cookbook.rst:1458 msgid "A more elaborate multiprocessing example" -msgstr "" +msgstr "Exemple plus élaboré avec traitement en parallèle" #: howto/logging-cookbook.rst:1460 msgid "" @@ -825,6 +1220,11 @@ msgid "" "simple, but serve to illustrate how more complex ones could be implemented " "in a real multiprocessing scenario." msgstr "" +"L’exemple suivant que nous allons étudier montre comment la journalisation " +"peut être utilisée, à l’aide de fichiers de configuration, pour un programme " +"effectuant des traitements parallèles. Les configurations sont assez " +"simples, mais servent à illustrer comment des configurations plus complexes " +"pourraient être implémentées dans un scénario multi-processus réel." #: howto/logging-cookbook.rst:1465 msgid "" @@ -838,16 +1238,30 @@ msgid "" "purely illustrative, but you should be able to adapt this example to your " "own scenario." msgstr "" +"Dans l’exemple, le processus principal génère un processus d’écoute et des " +"processus de travail. Chacun des processus, le principal, l’auditeur " +"(*listener_process* dans l’exemple) et les processus de travail " +"(*worker_process* dans l’exemple) ont trois configurations distinctes (les " +"processus de travail partagent tous la même configuration). Nous pouvons " +"voir la journalisation dans le processus principal, comment les processus de " +"travail se connectent à un *QueueHandler* et comment l’auditeur implémente " +"un *QueueListener* avec une configuration de journalisation plus complexe, " +"et s’arrange pour envoyer les événements reçus *via* la file d’attente aux " +"gestionnaires spécifiés dans la configuration. Notez que ces configurations " +"sont purement illustratives, mais vous devriez pouvoir adapter cet exemple à " +"votre propre scénario." #: howto/logging-cookbook.rst:1475 msgid "" "Here's the script - the docstrings and the comments hopefully explain how it " "works::" msgstr "" +"Voici le script – les chaines de documentation et les commentaires " +"expliquent (en anglais), le principe de fonctionnement ::" #: howto/logging-cookbook.rst:1687 msgid "Inserting a BOM into messages sent to a SysLogHandler" -msgstr "" +msgstr "Insertion d’une *BOM* dans les messages envoyés à un *SysLogHandler*" #: howto/logging-cookbook.rst:1689 msgid "" @@ -857,6 +1271,11 @@ msgid "" "encoded using UTF-8. (See the :rfc:`relevant section of the specification " "<5424#section-6>`.)" msgstr "" +"La :rfc:`5424` requiert qu’un message Unicode soit envoyé à un démon " +"*syslog* sous la forme d’un ensemble d’octets ayant la structure suivante : " +"un composant ASCII pur facultatif, suivi d’une marque d’ordre d’octet (*BOM* " +"pour *Byte Order Mark* en anglais) UTF-8, suivie de contenu Unicode UTF-8 " +"(voir la :rfc:`la spécification correspondante <5424#section-6>`)." #: howto/logging-cookbook.rst:1695 msgid "" @@ -865,6 +1284,10 @@ msgid "" "incorrectly, with the BOM appearing at the beginning of the message and " "hence not allowing any pure-ASCII component to appear before it." msgstr "" +"Dans Python 3.1, du code a été ajouté à :class:`~logging.handlers." +"SysLogHandler` pour insérer une *BOM* dans le message mais, malheureusement, " +"il a été implémenté de manière incorrecte, la *BOM* apparaissant au début du " +"message et n’autorisant donc aucun composant ASCII pur à être placé devant." #: howto/logging-cookbook.rst:1701 msgid "" @@ -874,18 +1297,28 @@ msgid "" "an optional pure-ASCII sequence before it and arbitrary Unicode after it, " "encoded using UTF-8, then you need to do the following:" msgstr "" +"Comme ce comportement est inadéquat, le code incorrect d’insertion de la " +"*BOM* a été supprimé de Python 3.2.4 et ultérieurs. Cependant, il n’est pas " +"remplacé et, si vous voulez produire des messages conformes :rfc:`5424` qui " +"incluent une *BOM*, une séquence facultative en ASCII pur avant et un " +"Unicode arbitraire après, encodé en UTF-8, alors vous devez appliquer ce qui " +"suit :" #: howto/logging-cookbook.rst:1707 msgid "" "Attach a :class:`~logging.Formatter` instance to your :class:`~logging." "handlers.SysLogHandler` instance, with a format string such as::" msgstr "" +"Adjoignez une instance :class:`~logging.Formatter` à votre instance :class:" +"`~logging.handlers.SysLogHandler`, avec une chaîne de format telle que ::" #: howto/logging-cookbook.rst:1713 msgid "" "The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " "a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." msgstr "" +"Le point de code Unicode U+FEFF, lorsqu’il est encodé en UTF-8, est encodé " +"comme une *BOM* UTF-8 – la chaîne d’octets ``b'\\xef\\xbb\\xbf'``." #: howto/logging-cookbook.rst:1716 msgid "" @@ -893,6 +1326,9 @@ msgid "" "that the data that appears in there after substitution is always ASCII (that " "way, it will remain unchanged after UTF-8 encoding)." msgstr "" +"Remplacez la section ASCII par les caractères de votre choix, mais assurez-" +"vous que les données qui y apparaissent après la substitution sont toujours " +"ASCII (ainsi elles resteront inchangées après l’encodage UTF-8)." #: howto/logging-cookbook.rst:1720 msgid "" @@ -900,6 +1336,10 @@ msgid "" "which appears there after substitution contains characters outside the ASCII " "range, that's fine -- it will be encoded using UTF-8." msgstr "" +"Remplacez la section Unicode par le contenu de votre choix ; si les données " +"qui y apparaissent après la substitution contiennent des caractères en " +"dehors de la plage ASCII, c’est pris en charge – elles seront encodées en " +"UTF-8." #: howto/logging-cookbook.rst:1724 msgid "" @@ -909,10 +1349,15 @@ msgid "" "complain, but your messages will not be RFC 5424-compliant, and your syslog " "daemon may complain." msgstr "" +"Le message formaté *sera* encodé en UTF-8 par ``SysLogHandler``. Si vous " +"suivez les règles ci-dessus, vous devriez pouvoir produire des messages " +"conformes à la :rfc:`5424`. Si vous ne le faites pas, la journalisation ne " +"se plaindra peut-être pas, mais vos messages ne seront pas conformes à la " +"RFC 5424 et votre démon *syslog* est susceptible de se plaindre." #: howto/logging-cookbook.rst:1731 msgid "Implementing structured logging" -msgstr "" +msgstr "Journalisation structurée" #: howto/logging-cookbook.rst:1733 msgid "" @@ -925,30 +1370,42 @@ msgid "" "following is a simple approach which uses JSON to serialise the event in a " "machine-parseable manner::" msgstr "" +"Bien que la plupart des messages de journalisation soient destinés à être " +"lus par des humains, et donc difficilement analysables par la machine, il " +"peut arriver que vous souhaitiez produire des messages dans un format " +"structuré dans le but d’être analysé par un programme (sans avoir besoin " +"d’expressions régulières complexes pour analyser le message du journal). " +"C’est simple à réaliser en utilisant le paquet de journalisation. Il existe " +"plusieurs façons d’y parvenir et voici une approche simple qui utilise JSON " +"pour sérialiser l’événement de manière à être analysable par une machine ::" #: howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" -msgstr "" +msgstr "Si vous lancez le script ci-dessus, il imprime :" #: howto/logging-cookbook.rst:1763 howto/logging-cookbook.rst:1812 msgid "" "Note that the order of items might be different according to the version of " "Python used." msgstr "" +"Notez que l’ordre des éléments peut être différent en fonction de la version " +"de Python utilisée." #: howto/logging-cookbook.rst:1766 msgid "" "If you need more specialised processing, you can use a custom JSON encoder, " "as in the following complete example::" msgstr "" +"Si vous avez besoin d’un traitement plus spécifique, vous pouvez utiliser un " +"encodeur JSON personnalisé, comme dans l’exemple complet suivant :" #: howto/logging-cookbook.rst:1806 msgid "When the above script is run, it prints:" -msgstr "" +msgstr "Quand vous exécutez le script ci-dessus, il imprime :" #: howto/logging-cookbook.rst:1821 msgid "Customizing handlers with :func:`dictConfig`" -msgstr "" +msgstr "Personnalisation des gestionnaires avec :func:`dictConfig`" #: howto/logging-cookbook.rst:1823 msgid "" @@ -959,12 +1416,23 @@ msgid "" "the file handlers in the stdlib don't offer built-in support. You can " "customize handler creation using a plain function such as::" msgstr "" +"Il arrive de souhaiter personnaliser les gestionnaires de journalisation " +"d’une manière particulière et, en utilisant :func:`dictConfig`, vous pourrez " +"peut-être le faire sans avoir à dériver les classes mères. Par exemple, " +"supposons que vous souhaitiez définir le propriétaire d’un fichier journal. " +"Dans un environnement POSIX, cela se fait facilement en utilisant :func:" +"`shutil.chown`, mais les gestionnaires de fichiers de la bibliothèque " +"standard n’offrent pas cette gestion nativement. Vous pouvez personnaliser " +"la création du gestionnaire à l’aide d’une fonction simple telle que ::" #: howto/logging-cookbook.rst:1837 msgid "" "You can then specify, in a logging configuration passed to :func:" "`dictConfig`, that a logging handler be created by calling this function::" msgstr "" +"Vous pouvez ensuite spécifier, dans une configuration de journalisation " +"transmise à :func:`dictConfig`, qu’un gestionnaire de journalisation soit " +"créé en appelant cette fonction ::" #: howto/logging-cookbook.rst:1870 msgid "" @@ -972,10 +1440,14 @@ msgid "" "group, just for the purposes of illustration. Putting it together into a " "working script, ``chowntest.py``::" msgstr "" +"Dans cet exemple, nous définissons le propriétaire à l’utilisateur et au " +"groupe ``pulse``, uniquement à des fins d’illustration. Rassemblons le tout " +"dans un script ``chowntest.py`` ::" #: howto/logging-cookbook.rst:1917 msgid "To run this, you will probably need to run as ``root``:" msgstr "" +"Pour l’exécuter, vous devrez probablement le faire en tant que ``root`` :" #: howto/logging-cookbook.rst:1927 msgid "" @@ -985,16 +1457,25 @@ msgid "" "With pre-3.3 versions, you would need to implement the actual ownership " "change using e.g. :func:`os.chown`." msgstr "" +"Notez que cet exemple utilise Python 3.3 car c’est là que :func:`shutil." +"chown` fait son apparition. Cette approche devrait fonctionner avec " +"n’importe quelle version de Python prenant en charge :func:`dictConfig` – à " +"savoir, Python 2.7, 3.2 ou version ultérieure. Avec les versions antérieures " +"à la 3.3, vous devrez implémenter le changement de propriétaire réel en " +"utilisant par exemple :func:`os.chown`." #: howto/logging-cookbook.rst:1933 msgid "" "In practice, the handler-creating function may be in a utility module " "somewhere in your project. Instead of the line in the configuration::" msgstr "" +"En pratique, la fonction de création de gestionnaire peut être située dans " +"un module utilitaire ailleurs dans votre projet. Au lieu de cette ligne dans " +"la configuration ::" #: howto/logging-cookbook.rst:1938 msgid "you could use e.g.::" -msgstr "" +msgstr "vous pouvez écrire par exemple ::" #: howto/logging-cookbook.rst:1942 msgid "" @@ -1003,6 +1484,11 @@ msgid "" "__main__.owned_file_handler'`` should work. Here, the actual callable is " "resolved by :func:`dictConfig` from the ``ext://`` specification." msgstr "" +"où ``project.util`` peut être remplacé par le nom réel du paquet où réside " +"la fonction. Dans le script étudié ci-dessus, l’utilisation de ``'ext://" +"__main__.owned_file_handler'`` devrait fonctionner. Dans le cas présent, " +"l’appelable réel est résolu par :func:`dictConfig` à partir de la " +"spécification ``ext://``." #: howto/logging-cookbook.rst:1947 msgid "" @@ -1010,6 +1496,9 @@ msgid "" "types of file change - e.g. setting specific POSIX permission bits - in the " "same way, using :func:`os.chmod`." msgstr "" +"Nous espérons qu'à partir de cet exemple vous saurez implémenter d’autres " +"types de modification de fichier – par ex. définir des bits d’autorisation " +"POSIX spécifiques – de la même manière, en utilisant :func:`os.chmod`." #: howto/logging-cookbook.rst:1951 msgid "" @@ -1017,6 +1506,10 @@ msgid "" "than a :class:`~logging.FileHandler` - for example, one of the rotating file " "handlers, or a different type of handler altogether." msgstr "" +"Bien sûr, l’approche pourrait également être étendue à des types de " +"gestionnaires autres qu’un :class:`~logging.FileHandler` – par exemple, l’un " +"des gestionnaires à roulement de fichiers ou un autre type de gestionnaire " +"complètement différent." #: howto/logging-cookbook.rst:1961 msgid "Using particular formatting styles throughout your application" diff --git a/install/index.po b/install/index.po index 377d1848..68759187 100644 --- a/install/index.po +++ b/install/index.po @@ -1279,7 +1279,7 @@ msgstr "" #: install/index.rst:737 msgid ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" -msgstr "" +msgstr ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" #: install/index.rst:751 msgid "personal" @@ -1287,7 +1287,7 @@ msgstr "" #: install/index.rst:739 msgid ":file:`$HOME/.pydistutils.cfg`" -msgstr "" +msgstr ":file:`$HOME/.pydistutils.cfg`" #: install/index.rst:753 msgid "local" @@ -1295,7 +1295,7 @@ msgstr "" #: install/index.rst:753 msgid ":file:`setup.cfg`" -msgstr "" +msgstr ":file:`setup.cfg`" #: install/index.rst:753 msgid "\\(3)" @@ -1307,7 +1307,7 @@ msgstr "" #: install/index.rst:749 msgid ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" -msgstr "" +msgstr ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" #: install/index.rst:749 msgid "\\(4)" @@ -1315,7 +1315,7 @@ msgstr "\\(4)" #: install/index.rst:751 msgid ":file:`%HOME%\\\\pydistutils.cfg`" -msgstr "" +msgstr ":file:`%HOME%\\\\pydistutils.cfg`" #: install/index.rst:751 msgid "\\(5)" diff --git a/library/__future__.po b/library/__future__.po index 52be7cd5..db3fc925 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -278,7 +278,7 @@ msgstr "3.7.0b1" #: library/__future__.rst:93 msgid "3.10" -msgstr "" +msgstr "3.10" #: library/__future__.rst:93 msgid ":pep:`563`: *Postponed evaluation of annotations*" diff --git a/library/ast.po b/library/ast.po index 82eb354f..d521d228 100644 --- a/library/ast.po +++ b/library/ast.po @@ -146,6 +146,10 @@ msgid "" "one can get the source segment of a one-line expression node using " "``source_line[node.col_offset : node.end_col_offset]``." msgstr "" +"Les décalages *end…* ne sont pas obligatoires ni nécessaires au compilateur. " +"*end_col_offset* pointe *après* le dernier lexème. On peut donc obtenir la " +"partie du code source ayant donné lieu à une expression avec " +"``ligne_source[nœud.col_offset : nœud.end_col_offset]``." #: library/ast.rst:80 msgid "" @@ -185,6 +189,8 @@ msgstr "ou, plus compact ::" #: library/ast.rst:106 msgid "Class :class:`ast.Constant` is now used for all constants." msgstr "" +"toutes les constantes sont désormais représentées par des instances de :" +"class:`ast.Constant`." #: library/ast.rst:110 msgid "" @@ -234,6 +240,16 @@ msgid "" "the ``type_ignores`` attribute of :class:`Module` (otherwise it is always an " "empty list)." msgstr "" +"Si *type_comments* est mis à ``True``, l'analyseur syntaxique reconnaît les " +"commentaires de type et les ajoute à l'arbre, comme décrit dans la :pep:" +"`484` et la :pep:`526`. Ceci revient à ajouter :data:`ast." +"PyCF_TYPE_COMMENTS` à l'argument *flags* de :func:`compile`. Une erreur de " +"syntaxe est levée si un commentaire de type est placé au mauvais endroit. " +"Les commentaires ``# type: ignore`` sont également détectés et leurs " +"positions dans la source sont placées dans l'attribut *type_ignores* du " +"nœud :class:`Module`. Sans cette option, les commentaires de type sont " +"ignorés tout comme les commentaires ordinaires, et l'attribut *type_comment* " +"des nœuds dont le type possède ce champ sera toujours mis à ``None``." #: library/ast.rst:148 msgid "" @@ -250,6 +266,12 @@ msgid "" "use of ``async`` and ``await`` as variable names. The lowest supported " "version is ``(3, 4)``; the highest is ``sys.version_info[0:2]``." msgstr "" +"Si *feature_version* est défini à une version de Python, sous la forme d'un " +"couple ``(version_majeure, version_mineure)``, l'analyseur tentera de lire " +"la source en se conformant à la syntaxe de cette version. Ainsi, avec " +"``feature_version=(3, 4)``, les noms ``async`` et ``await`` peuvent nommer " +"des variables. La version la plus ancienne prise en charge est actuellement " +"``(3, 4)`` ; la plus récente est ``sys.version_info[0:2]``." #: library/ast.rst:181 msgid "" @@ -263,6 +285,8 @@ msgstr "" #: library/ast.rst:164 msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." msgstr "" +"ajout des paramètres *type_comments* et *feature_version* ainsi que de la " +"valeur ``'func_type'`` pour *mode*." #: library/ast.rst:170 msgid "" @@ -317,6 +341,10 @@ msgid "" "location information (:attr:`lineno`, :attr:`end_lineno`, :attr:" "`col_offset`, or :attr:`end_col_offset`) is missing, return ``None``." msgstr "" +"Donne la partie de *source* (le code source) qui a donné lieu à *node*. Si " +"l'un des attributs de localisation du nœud (:attr:`lineno`, :attr:" +"`end_lineno`, :attr:`col_offset` et :attr:`end_col_offset`) n'est pas " +"rempli, cette fonction renvoie ``None``." #: library/ast.rst:207 msgid "" @@ -340,25 +368,24 @@ msgstr "" "parent. Elle fonctionne récursivement en démarrant de *node*." #: library/ast.rst:224 -#, fuzzy msgid "" "Increment the line number and end line number of each node in the tree " "starting at *node* by *n*. This is useful to \"move code\" to a different " "location in a file." msgstr "" -"Incrémente de *n* le numéro de ligne de chaque nœud dans l'arbre en " -"commençant par le nœud *node*. C'est utile pour \"déplacer du code\" à un " -"endroit différent dans un fichier." +"Incrémente de *n* les numéros des lignes de début et ligne de fin de chaque " +"nœud dans l'arbre, en commençant par le nœud *node*. C'est utile pour " +"« déplacer du code » à un endroit différent dans un fichier." #: library/ast.rst:231 -#, fuzzy msgid "" "Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:" "`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if " "possible, and return *new_node*." msgstr "" -"Copie le code source (:attr:`lineno` et :attr:`col_offset`) de l'ancien nœud " -"*old_node* vers le nouveau nœud *new_node* si possible, et renvoie " +"Copie la position dans la source (attributs :attr:`lineno`, :attr:" +"`col_offset`, :attr:`end_lineno` et :attr:`end_col_offset`) de l'ancien nœud " +"*old_node* vers le nouveau nœud *new_node*, si possible, et renvoie " "*new_node*." #: library/ast.rst:238 @@ -449,6 +476,11 @@ msgid "" "not be called in future Python versions. Add the :meth:`visit_Constant` " "method to handle all constant nodes." msgstr "" +"les méthodes :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :" +"meth:`visit_NameConstant` et :meth:`visit_Ellipsis` sont devenues obsolètes " +"et cesseront d'être appelées dans une version ultérieure de Python. Écrivez " +"une méthode :meth:`visit_Constant` pour traiter tous les nœuds qui " +"représentent des valeurs constantes." #: library/ast.rst:292 msgid "" @@ -508,13 +540,16 @@ msgid "" "`lineno`), :func:`fix_missing_locations` should be called with the new sub-" "tree to recalculate the location information::" msgstr "" +"Si :class:`NodeTransformer` ajoute de nouveaux nœuds à l'original sans leur " +"donner les attributs de position dans la source (:attr:`lineno` et " +"consorts), il faut passer le nouvel arbre (ou la nouvelle partie de l'arbre) " +"à :func:`fix_missing_locations` pour calculer les positions manquantes :" #: library/ast.rst:329 msgid "Usually you use the transformer like this::" msgstr "Utilisation typique du *transformer* ::" #: library/ast.rst:336 -#, fuzzy msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. If *annotate_fields* is true (by default), the returned " @@ -524,13 +559,15 @@ msgid "" "dumped by default. If this is wanted, *include_attributes* can be set to " "true." msgstr "" -"Renvoie un *dump* formaté de l'arbre dans *node*. C'est principalement utile " -"à des fins de débogage. La chaîne de caractères renvoyée présente les noms " -"et valeurs des champs. Cela rend le code impossible à évaluer, si l'on " -"souhaite évaluer ce code, l'option *annotate_fields* doit être définie comme " -"``False``. Les attributs comme les numéros de ligne et les décalages de " -"colonne ne sont pas récupérés par défaut. Si l'on souhaite les récupérer, " -"l'option *include_attributes* peut être définie comme ``True``." +"Renvoie une représentation sous forme de chaîne de caractères de l'arbre " +"contenu dans *node*. Ceci est principalement utile à des fins de débogage. " +"Par défaut, les champs sont passés comme paramètres nommés aux constructeurs " +"des classes d'arbre syntaxiques. Cependant, si *annotate_fields* est mis à " +"``False``, les valeurs sont passées, lorsque cela est possible, comme " +"arguments positionnels, rendant la représentation plus compacte. Les " +"attributs comme les numéros de lignes et positions sur les lignes sont " +"masqués par défaut, mais on peut les inclure en mettant *include_attributes* " +"à ``True``." #: library/ast.rst:346 msgid "" @@ -548,6 +585,10 @@ msgid "" "code that generated them. This is helpful for tools that make source code " "transformations." msgstr "" +"`ASTTokens `_ " +"annote les arbres syntaxiques Python avec les positions des lexèmes et les " +"extraits de code source à partir desquels ils sont produits. Ceci est utile " +"pour les outils qui transforment du code source." #: library/ast.rst:354 msgid "" @@ -562,6 +603,10 @@ msgid "" "Tree that looks like an ast tree and keeps all formatting details. It's " "useful for building automated refactoring (codemod) applications and linters." msgstr "" +"`LibCST `_ produit à partir du code source " +"des arbres syntaxiques concrets, qui ressemblent à leurs homologues " +"abstraits et conservent tous les détails du formatage. Cette bibliothèque " +"est utile aux outils de réusinage et d'analyse de code." #: library/ast.rst:363 msgid "" @@ -570,3 +615,8 @@ msgid "" "multiple Python versions). Parso is also able to list multiple syntax errors " "in your python file." msgstr "" +"`Parso `_ est un analyseur syntaxique de code " +"Python qui gère la récupération d'erreurs et la génération de code (de " +"l'arbre syntaxique vers le code source), le tout pour les grammaires de " +"différentes versions de Python et en utilisant différentes versions. Il sait " +"également donner plusieurs erreurs de syntaxe en une seule fois." diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po index 822ef3fb..60bd18d0 100644 --- a/library/asyncio-api-index.po +++ b/library/asyncio-api-index.po @@ -43,7 +43,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:24 msgid ":func:`create_task`" -msgstr "" +msgstr ":func:`create_task`" #: ../Doc/library/asyncio-api-index.rst:25 msgid "Start an asyncio Task." @@ -91,7 +91,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:42 msgid ":func:`current_task`" -msgstr "" +msgstr ":func:`current_task`" #: ../Doc/library/asyncio-api-index.rst:43 msgid "Return the current Task." @@ -99,7 +99,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:45 msgid ":func:`all_tasks`" -msgstr "" +msgstr ":func:`all_tasks`" #: ../Doc/library/asyncio-api-index.rst:46 msgid "Return all tasks for an event loop." @@ -107,7 +107,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:48 msgid ":class:`Task`" -msgstr "" +msgstr ":class:`Task`" #: ../Doc/library/asyncio-api-index.rst:49 msgid "Task object." @@ -115,7 +115,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:51 msgid ":func:`run_coroutine_threadsafe`" -msgstr "" +msgstr ":func:`run_coroutine_threadsafe`" #: ../Doc/library/asyncio-api-index.rst:52 msgid "Schedule a coroutine from another OS thread." @@ -220,7 +220,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:112 msgid "Create a subprocess." -msgstr "" +msgstr "Crée un sous-processus." #: ../Doc/library/asyncio-api-index.rst:114 msgid "``await`` :func:`create_subprocess_shell`" @@ -280,7 +280,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:147 msgid ":class:`StreamReader`" -msgstr "" +msgstr ":class:`StreamReader`" #: ../Doc/library/asyncio-api-index.rst:148 msgid "High-level async/await object to receive network data." @@ -288,7 +288,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:150 msgid ":class:`StreamWriter`" -msgstr "" +msgstr ":class:`StreamWriter`" #: ../Doc/library/asyncio-api-index.rst:151 msgid "High-level async/await object to send network data." @@ -377,7 +377,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:208 msgid ":exc:`asyncio.CancelledError`" -msgstr "" +msgstr ":exc:`asyncio.CancelledError`" #: ../Doc/library/asyncio-api-index.rst:209 msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index a65d258c..da48142a 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -23,29 +23,36 @@ msgid "" "Asynchronous programming is different from classic \"sequential\" " "programming." msgstr "" +"La programmation asynchrone est différente de la programmation " +"« séquentielle » classique." #: library/asyncio-dev.rst:12 msgid "" "This page lists common mistakes and traps and explains how to avoid them." msgstr "" +"Cette page liste les pièges et erreurs communs que le développeur pourrait " +"rencontrer et décrit comment les éviter." #: library/asyncio-dev.rst:19 msgid "Debug Mode" -msgstr "" +msgstr "Mode débogage" #: library/asyncio-dev.rst:21 msgid "" "By default asyncio runs in production mode. In order to ease the " "development asyncio has a *debug mode*." msgstr "" +"Par défaut, *asyncio* s'exécute en mode production. Pour faciliter le " +"développement, *asyncio* possède un « mode débogage »." #: library/asyncio-dev.rst:24 msgid "There are several ways to enable asyncio debug mode:" -msgstr "" +msgstr "Il existe plusieurs façons d'activer le mode débogage de *asyncio* :" #: library/asyncio-dev.rst:26 msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." msgstr "" +"en réglant la variable d’environnement :envvar:`PYTHONASYNCIODEBUG` à ``1`` ;" #: library/asyncio-dev.rst:28 msgid "Using the :option:`-X` ``dev`` Python command line option." @@ -53,15 +60,15 @@ msgstr "" #: library/asyncio-dev.rst:30 msgid "Passing ``debug=True`` to :func:`asyncio.run`." -msgstr "" +msgstr "en passant ``debug=True`` à la fonction :func:`asyncio.run` ;" #: library/asyncio-dev.rst:32 msgid "Calling :meth:`loop.set_debug`." -msgstr "" +msgstr "en appelant la méthode :meth:`loop.set_debug`." #: library/asyncio-dev.rst:34 msgid "In addition to enabling the debug mode, consider also:" -msgstr "" +msgstr "En plus d'activer le mode débogage, vous pouvez également :" #: library/asyncio-dev.rst:36 msgid "" @@ -69,6 +76,10 @@ msgid "" "data:`logging.DEBUG`, for example the following snippet of code can be run " "at startup of the application::" msgstr "" +"régler le niveau de journalisation pour l'enregistreur d'*asyncio* (:ref:" +"`asyncio logger `) à :py:data:`logging.DEBUG` ; par exemple, " +"le fragment de code suivant peut être exécuté au démarrage de " +"l'application ::" #: library/asyncio-dev.rst:42 msgid "" @@ -76,10 +87,13 @@ msgid "" "warnings. One way of doing that is by using the :option:`-W` ``default`` " "command line option." msgstr "" +"configurer le module :mod:`warnings` afin d'afficher les avertissements de " +"type :exc:`ResourceWarning` ; vous pouvez faire cela en utilisant l'option :" +"option:`-W` ``default`` sur la ligne de commande." #: library/asyncio-dev.rst:47 msgid "When the debug mode is enabled:" -msgstr "" +msgstr "Lorsque le mode débogage est activé :" #: library/asyncio-dev.rst:49 msgid "" @@ -87,6 +101,9 @@ msgid "" "not-scheduled>` and logs them; this mitigates the \"forgotten await\" " "pitfall." msgstr "" +"*asyncio* surveille les :ref:`coroutines qui ne sont jamais attendues " +"` et les journalise ; cela atténue le " +"problème des « *await* oubliés » ;" #: library/asyncio-dev.rst:53 msgid "" @@ -94,12 +111,18 @@ msgid "" "`loop.call_at` methods) raise an exception if they are called from a wrong " "thread." msgstr "" +"beaucoup d'*API* *asyncio* ne prenant pas en charge les fils d'exécution " +"multiples (comme les méthodes :meth:`loop.call_soon` et :meth:`loop." +"call_at`) lèvent une exception si elles sont appelées par le mauvais fil " +"d’exécution ;" #: library/asyncio-dev.rst:57 msgid "" "The execution time of the I/O selector is logged if it takes too long to " "perform an I/O operation." msgstr "" +"le temps d'exécution du sélecteur d'entrée-sortie est journalisé si une " +"opération prend trop de temps à s'effectuer ;" #: library/asyncio-dev.rst:60 msgid "" @@ -120,12 +143,21 @@ msgid "" "``await`` expression, the running Task gets suspended, and the event loop " "executes the next Task." msgstr "" +"Une boucle d'évènements s'exécute dans un fil d’exécution (typiquement dans " +"le fil principal) et traite toutes les fonctions de rappel (*callbacks*) " +"ainsi que toutes les tâches dans ce même fil. Lorsqu'une tâche est en cours " +"d'exécution dans la boucle d'évènements, aucune autre tâche ne peut " +"s'exécuter dans ce fil. Quand une tâche traite une expression ``await``, " +"elle se suspend et laisse la boucle d’évènements traiter la tâche suivante." #: library/asyncio-dev.rst:76 msgid "" "To schedule a :term:`callback` from another OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" +"Pour planifier un :term:`rappel ` depuis un autre fil d'exécution " +"système, utilisez la méthode :meth:`loop.call_soon_threadsafe`. Par " +"exemple ::" #: library/asyncio-dev.rst:81 msgid "" @@ -134,6 +166,12 @@ msgid "" "a callback. If there's a need for such code to call a low-level asyncio " "API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" msgstr "" +"La plupart des objets *asyncio* ne sont pas conçus pour être exécutés dans " +"un contexte multi-fils (*thread-safe*) mais cela n'est en général pas un " +"problème à moins que l'objet ne fasse appel à du code se trouvant en dehors " +"d'une tâche ou d'une fonction de rappel. Dans ce dernier cas, si le code " +"appelle les *API* bas niveau de *asyncio*, utilisez la méthode :meth:`loop." +"call_soon_threadsafe`. Par exemple ::" #: library/asyncio-dev.rst:89 msgid "" @@ -141,12 +179,17 @@ msgid "" "`run_coroutine_threadsafe` function should be used. It returns a :class:" "`concurrent.futures.Future` to access the result::" msgstr "" +"Pour planifier un objet concurrent depuis un autre fil d'exécution système, " +"utilisez :func:`run_coroutine_threadsafe`. Cette fonction renvoie un objet :" +"class:`concurrent.futures.Future` pour accéder au résultat ::" #: library/asyncio-dev.rst:102 msgid "" "To handle signals and to execute subprocesses, the event loop must be run in " "the main thread." msgstr "" +"Pour pouvoir traiter les signaux et démarrer des processus enfants, la " +"boucle d'évènements doit être exécutée dans le fil principal." #: library/asyncio-dev.rst:105 msgid "" @@ -155,6 +198,10 @@ msgid "" "different OS thread without blocking the OS thread that the event loop runs " "in." msgstr "" +"La méthode :meth:`loop.run_in_executor` peut être utilisée avec :class:" +"`concurrent.futures.ThreadPoolExecutor` pour exécuter du code bloquant dans " +"un autre fil d'exécution, afin de ne pas bloquer le fil où la boucle " +"d'évènements se trouve." #: library/asyncio-dev.rst:110 msgid "" @@ -171,7 +218,7 @@ msgstr "" #: library/asyncio-dev.rst:124 msgid "Running Blocking Code" -msgstr "" +msgstr "Exécution de code bloquant" #: library/asyncio-dev.rst:126 msgid "" @@ -179,6 +226,11 @@ msgid "" "function performs a CPU-intensive calculation for 1 second, all concurrent " "asyncio Tasks and IO operations would be delayed by 1 second." msgstr "" +"Du code bloquant sur des opérations de calcul (*CPU-bound*) ne devrait pas " +"être appelé directement. Par exemple, si une fonction effectue des calculs " +"utilisant le CPU intensivement pendant une seconde, toutes les tâches " +"*asyncio* concurrentes et les opérations d'entrées-sorties seront bloquées " +"pour une seconde." #: library/asyncio-dev.rst:131 msgid "" @@ -186,6 +238,10 @@ msgid "" "different process to avoid blocking the OS thread with the event loop. See " "the :meth:`loop.run_in_executor` method for more details." msgstr "" +"Un exécuteur peut être utilisé pour traiter une tâche dans un fil " +"d'exécution ou un processus différent, afin d'éviter de bloquer le fil " +"d'exécution système dans lequel se trouve la boucle d’évènements. Voir :meth:" +"`loop.run_in_executor` pour plus de détails." #: library/asyncio-dev.rst:140 msgid "Logging" @@ -196,16 +252,20 @@ msgid "" "asyncio uses the :mod:`logging` module and all logging is performed via the " "``\"asyncio\"`` logger." msgstr "" +"*Asyncio* utilise le module :mod:`logging`. Toutes les opérations de " +"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``." #: library/asyncio-dev.rst:145 msgid "" "The default log level is :py:data:`logging.INFO`, which can be easily " "adjusted::" msgstr "" +"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut " +"être ajusté facilement ::" #: library/asyncio-dev.rst:154 msgid "Detect never-awaited coroutines" -msgstr "" +msgstr "Détection des coroutines jamais attendues" #: library/asyncio-dev.rst:156 msgid "" @@ -213,6 +273,10 @@ msgid "" "instead of ``await coro()``) or the coroutine is not scheduled with :meth:" "`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" msgstr "" +"Lorsqu'une fonction coroutine est appelée mais qu'elle n'est pas attendue " +"(p. ex. ``coro()`` au lieu de ``await coro()``) ou si la coroutine n'est " +"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet un :exc:" +"`RuntimeWarning` ::" #: library/asyncio-dev.rst:216 msgid "Output::" @@ -227,10 +291,12 @@ msgid "" "The usual fix is to either await the coroutine or call the :meth:`asyncio." "create_task` function::" msgstr "" +"La façon habituelle de régler ce problème est d'attendre (*await*) la " +"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::" #: library/asyncio-dev.rst:197 msgid "Detect never-retrieved exceptions" -msgstr "" +msgstr "Détection des exceptions jamais récupérées" #: library/asyncio-dev.rst:199 msgid "" @@ -239,16 +305,22 @@ msgid "" "this case, asyncio would emit a log message when the Future object is " "garbage collected." msgstr "" +"Si la méthode :meth:`Future.set_exception` est appelée mais que l'objet " +"*Future* n'est pas attendu, l'exception n'est pas propagée au code " +"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque " +"l'objet *Future* est récupéré par le ramasse-miette." #: library/asyncio-dev.rst:204 msgid "Example of an unhandled exception::" -msgstr "" +msgstr "Exemple d'une exception non-gérée ::" #: library/asyncio-dev.rst:227 msgid "" ":ref:`Enable the debug mode ` to get the traceback where " "the task was created::" msgstr "" +":ref:`Activez le mode débogage ` pour récupérer la trace " +"d'appels indiquant où la tâche a été créée ::" #~ msgid "Debug mode of asyncio" #~ msgstr "Mode de débogage d'*asyncio*" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 0df0329f..401163c0 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -267,6 +267,9 @@ msgid "" "class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" +"L'argument nommé optionnel *context* permet de spécifier une classe :class:" +"`contextvars.Context` personnalisée dans laquelle la fonction de rappel " +"s’exécutera. Le contexte actuel est utilisé si *context* n'est pas fourni." #: library/asyncio-eventloop.rst:192 msgid "" @@ -298,6 +301,7 @@ msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" +"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." #: library/asyncio-eventloop.rst:213 msgid "" diff --git a/library/asyncio-future.po b/library/asyncio-future.po index 392d58a8..e211b77a 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -23,42 +23,51 @@ msgid "" "**Source code:** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" "base_futures.py`" msgstr "" +"**Code source :** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" +"base_futures.py`" #: ../Doc/library/asyncio-future.rst:15 msgid "" "*Future* objects are used to bridge **low-level callback-based code** with " "high-level async/await code." msgstr "" +"Les objets *Future* sont utilisés comme passerelles entre du **code bas " +"niveau basé sur des fonctions de rappel** et du code haut niveau utilisant " +"*async* et *await*." #: ../Doc/library/asyncio-future.rst:20 msgid "Future Functions" -msgstr "" +msgstr "Fonctions pour *Future*" #: ../Doc/library/asyncio-future.rst:24 msgid "Return ``True`` if *obj* is either of:" -msgstr "" +msgstr "Renvoie ``True`` si *obj* est soit :" #: ../Doc/library/asyncio-future.rst:26 msgid "an instance of :class:`asyncio.Future`," -msgstr "" +msgstr "une instance de :class:`asyncio.Future` ;" #: ../Doc/library/asyncio-future.rst:27 msgid "an instance of :class:`asyncio.Task`," -msgstr "" +msgstr "une instance de :class:`asyncio.Task` ;" #: ../Doc/library/asyncio-future.rst:28 msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." msgstr "" +"un objet se comportant comme *Future* et possédant un attribut " +"``_asyncio_future_blocking``." #: ../Doc/library/asyncio-future.rst:36 msgid "Return:" -msgstr "" +msgstr "Renvoie :" #: ../Doc/library/asyncio-future.rst:38 msgid "" "*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a " "Future-like object (:func:`isfuture` is used for the test.)" msgstr "" +"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:`Task` ou " +"se comportant comme un *Future*. :func:`isfuture` est utilisée pour le test ;" #: ../Doc/library/asyncio-future.rst:42 msgid "" @@ -66,22 +75,31 @@ msgid "" "`iscoroutine` is used for the test); in this case the coroutine will be " "scheduled by ``ensure_future()``." msgstr "" +"un objet :class:`Task` encapsulant *obj* si ce dernier est une coroutine (:" +"func:`iscoroutine` est utilisée pour le test). Dans ce cas, l’exécution de " +"la coroutine sera planifiée par ``ensure_future()`` ;" #: ../Doc/library/asyncio-future.rst:47 msgid "" "a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:" "func:`inspect.isawaitable` is used for the test.)" msgstr "" +"un objet :class:`Task` qui attendra (*await*) *obj* si ce dernier peut être " +"attendu (*awaitable*). :func:`iscoroutine` est utilisée pour le test." #: ../Doc/library/asyncio-future.rst:50 msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." msgstr "" +"Si *obj* ne correspond à aucun des critères ci-dessus, une exception :exc:" +"`TypeError` est levée." #: ../Doc/library/asyncio-future.rst:54 msgid "" "See also the :func:`create_task` function which is the preferred way for " "creating new Tasks." msgstr "" +"Voir aussi la fonction :func:`create_task` qui est la manière privilégiée " +"pour créer des nouvelles tâches." #: ../Doc/library/asyncio-future.rst:57 msgid "The function accepts any :term:`awaitable` object." @@ -92,16 +110,20 @@ msgid "" "Wrap a :class:`concurrent.futures.Future` object in a :class:`asyncio." "Future` object." msgstr "" +"Encapsule un objet :class:`concurrent.futures.Future` dans un objet :class:" +"`asyncio.Future`." #: ../Doc/library/asyncio-future.rst:68 msgid "Future Object" -msgstr "" +msgstr "Objet *Future*" #: ../Doc/library/asyncio-future.rst:72 msgid "" "A Future represents an eventual result of an asynchronous operation. Not " "thread-safe." msgstr "" +"Un *Future* représente le résultat final d'une opération asynchrone. Il " +"n'est pas conçu pour pouvoir être utilisé par plusieurs fils d'exécution." #: ../Doc/library/asyncio-future.rst:75 msgid "" @@ -116,6 +138,10 @@ msgid "" "protocols implemented using asyncio :ref:`transports `) to interoperate with high-level async/await code." msgstr "" +"Les *Futures* sont habituellement utilisés pour permettre à du code bas " +"niveau basé sur des fonctions de rappel (par exemple : les protocoles " +"utilisant *asyncio* :ref:`transports `) " +"d'interagir avec du code haut niveau utilisant *async* et *await*." #: ../Doc/library/asyncio-future.rst:84 msgid "" @@ -124,6 +150,11 @@ msgid "" "create_future`. This way alternative event loop implementations can inject " "their own optimized implementations of a Future object." msgstr "" +"Une bonne règle empirique est de ne jamais exposer des objets *Future* dans " +"des *API* destinées à l'utilisateur. La façon privilégiée de créer des " +"objets *Future* est d'appeler la méthode :meth:`loop.create_future`. Cela " +"permet aux implémentations alternatives de la boucle d'évènements d'utiliser " +"leur propre implémentation de l'objet *Future*." #: ../Doc/library/asyncio-future.rst:90 msgid "Added support for the :mod:`contextvars` module." @@ -131,27 +162,30 @@ msgstr "Ajout du support du module :mod:`contextvars`." #: ../Doc/library/asyncio-future.rst:95 msgid "Return the result of the Future." -msgstr "" +msgstr "Renvoie le résultat du *Future*." #: ../Doc/library/asyncio-future.rst:97 msgid "" "If the Future is *done* and has a result set by the :meth:`set_result` " "method, the result value is returned." msgstr "" +"Si le *Future* est « terminé » et a un résultat défini par la méthode :meth:" +"`set_result`, ce résultat est renvoyé." #: ../Doc/library/asyncio-future.rst:100 msgid "" "If the Future is *done* and has an exception set by the :meth:" "`set_exception` method, this method raises the exception." msgstr "" +"Si le *Future* est « terminé » et a une exception définie par la méthode :" +"meth:`set_exception`, cette méthode lève l'exception." #: ../Doc/library/asyncio-future.rst:103 ../Doc/library/asyncio-future.rst:188 -#, fuzzy msgid "" "If the Future has been *cancelled*, this method raises a :exc:" "`CancelledError` exception." msgstr "" -"Si la tâche a été *annulée*, cette méthode lève une exception :exc:" +"Si le *Future* a été *annulé*, cette méthode lève une exception :exc:" "`CancelledError`." #: ../Doc/library/asyncio-future.rst:106 @@ -164,53 +198,62 @@ msgstr "" "une exception :exc:`InvalidStateError`." #: ../Doc/library/asyncio-future.rst:111 -#, fuzzy msgid "Mark the Future as *done* and set its result." -msgstr "Marque le futur comme terminé et définit son résultat." +msgstr "Marque le *Future* comme « terminé » et définit son résultat." #: ../Doc/library/asyncio-future.rst:113 ../Doc/library/asyncio-future.rst:120 msgid "" "Raises a :exc:`InvalidStateError` error if the Future is already *done*." msgstr "" +"Lève une erreur :exc:`InvalidStateError` si le *Future* est déjà « terminé »." #: ../Doc/library/asyncio-future.rst:118 -#, fuzzy msgid "Mark the Future as *done* and set an exception." -msgstr "Marque le futur comme terminé et définit une exception." +msgstr "Marque le *Future* comme « terminé » et définit une exception." #: ../Doc/library/asyncio-future.rst:125 msgid "Return ``True`` if the Future is *done*." -msgstr "" +msgstr "Renvoie ``True`` si le *Future* est « terminé »." #: ../Doc/library/asyncio-future.rst:127 msgid "" "A Future is *done* if it was *cancelled* or if it has a result or an " "exception set with :meth:`set_result` or :meth:`set_exception` calls." msgstr "" +"Un *Future* est « terminé » s'il a été « annulé » ou si un résultat ou une " +"exception a été définie par les méthodes :meth:`set_result` ou :meth:" +"`set_exception`." #: ../Doc/library/asyncio-future.rst:133 msgid "Return ``True`` if the Future was *cancelled*." -msgstr "" +msgstr "Renvoie ``True`` si le *Future* a été « annulé »." #: ../Doc/library/asyncio-future.rst:135 msgid "" "The method is usually used to check if a Future is not *cancelled* before " "setting a result or an exception for it::" msgstr "" +"Cette méthode est habituellement utilisée pour vérifier qu'un *Future* n'est " +"pas « annulé » avant de définir un résultat ou une exception pour celui-ci ::" #: ../Doc/library/asyncio-future.rst:143 msgid "Add a callback to be run when the Future is *done*." msgstr "" +"Ajoute une fonction de rappel à exécuter lorsque le *Future* est « terminé »." #: ../Doc/library/asyncio-future.rst:145 msgid "The *callback* is called with the Future object as its only argument." msgstr "" +"L'argument *callback* est appelé avec l'objet *Future* comme seul argument." #: ../Doc/library/asyncio-future.rst:148 msgid "" "If the Future is already *done* when this method is called, the callback is " "scheduled with :meth:`loop.call_soon`." msgstr "" +"Si le *Future* est déjà « terminé » lorsque la méthode est appelée, " +"l'exécution de la fonction de rappel est planifiée avec :meth:`loop." +"call_soon`." #: ../Doc/library/asyncio-future.rst:151 msgid "" @@ -218,18 +261,24 @@ msgid "" "class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" +"L'argument nommé optionnel *context* permet de spécifier une classe :class:" +"`contextvars.Context` personnalisée dans laquelle la fonction de rappel " +"s’exécutera. Le contexte actuel est utilisé si *context* n'est pas fourni." #: ../Doc/library/asyncio-future.rst:155 msgid "" ":func:`functools.partial` can be used to pass parameters to the callback, e." "g.::" msgstr "" +":func:`functools.partial` peut être utilisée pour passer des paramètres à la " +"fonction de rappel ::" #: ../Doc/library/asyncio-future.rst:162 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" +"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." #: ../Doc/library/asyncio-future.rst:168 msgid "Remove *callback* from the callbacks list." @@ -240,10 +289,12 @@ msgid "" "Returns the number of callbacks removed, which is typically 1, unless a " "callback was added more than once." msgstr "" +"Renvoie le nombre de fonctions de rappel retiré. La méthode renvoie " +"généralement 1, à moins que la fonction ait été ajoutée plus d'une fois." #: ../Doc/library/asyncio-future.rst:175 msgid "Cancel the Future and schedule callbacks." -msgstr "" +msgstr "Annule le *Future* et planifie l'exécution des fonctions de rappel." #: ../Doc/library/asyncio-future.rst:177 msgid "" @@ -251,68 +302,89 @@ msgid "" "change the Future's state to *cancelled*, schedule the callbacks, and return " "``True``." msgstr "" +"Si le *Future* est déjà « terminé » ou « annulé », renvoie ``False``. " +"Autrement, change l'état du *Future* à « annulé », planifie l'exécution des " +"fonctions de rappel et renvoie ``True``." #: ../Doc/library/asyncio-future.rst:183 msgid "Return the exception that was set on this Future." -msgstr "" +msgstr "Renvoie l'exception définie pour ce *Future*." #: ../Doc/library/asyncio-future.rst:185 msgid "" "The exception (or ``None`` if no exception was set) is returned only if the " "Future is *done*." msgstr "" +"L'exception, ou ``None`` si aucune exception n'a été définie, est renvoyé " +"seulement si le *Future* est « terminé »." #: ../Doc/library/asyncio-future.rst:191 -#, fuzzy msgid "" "If the Future isn't *done* yet, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" -"Si la tâche n'est pas encore *achevée*, cette méthode lève une exception :" -"exc:`InvalidStateError`." +"Si le *Future* n'est pas encore « terminé », cette méthode lève une " +"exception :exc:`InvalidStateError`." #: ../Doc/library/asyncio-future.rst:196 msgid "Return the event loop the Future object is bound to." -msgstr "" +msgstr "Renvoie la boucle d'évènements à laquelle le *Future* est attaché." #: ../Doc/library/asyncio-future.rst:203 msgid "" "This example creates a Future object, creates and schedules an asynchronous " "Task to set result for the Future, and waits until the Future has a result::" msgstr "" +"Cet exemple crée un objet *Future*, puis crée et planifie l’exécution d'une " +"tâche asynchrone qui définira le résultat du *Future* et attend jusqu'à ce " +"que le *Future* ait un résultat ::" #: ../Doc/library/asyncio-future.rst:238 msgid "" "The Future object was designed to mimic :class:`concurrent.futures.Future`. " "Key differences include:" msgstr "" +"L'objet *Future* est conçu pour imiter la classe :class:`concurrent.futures." +"Future`. Les principales différences sont :" #: ../Doc/library/asyncio-future.rst:241 msgid "" "unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " "be awaited." msgstr "" +"contrairement au *Future asyncio*, les instances de :class:`concurrent." +"futures.Future` ne peuvent pas être attendues ;" #: ../Doc/library/asyncio-future.rst:244 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " "accept the *timeout* argument." msgstr "" +":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` " +"n'acceptent pas d'argument *timeout* ;" #: ../Doc/library/asyncio-future.rst:247 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :" "exc:`InvalidStateError` exception when the Future is not *done*." msgstr "" +":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` lèvent une " +"exception :exc:`InvalidStateError` lorsque le *Future* n'est pas " +"« terminé » ;" #: ../Doc/library/asyncio-future.rst:251 msgid "" "Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " "called immediately. They are scheduled with :meth:`loop.call_soon` instead." msgstr "" +"les fonctions de rappel enregistrées à l'aide de :meth:`asyncio.Future." +"add_done_callback` ne sont pas exécutées immédiatement mais planifiées avec :" +"meth:`loop.call_soon` ;" #: ../Doc/library/asyncio-future.rst:255 msgid "" "asyncio Future is not compatible with the :func:`concurrent.futures.wait` " "and :func:`concurrent.futures.as_completed` functions." msgstr "" +"les *Future asyncio* ne sont pas compatibles avec les fonctions :func:" +"`concurrent.futures.wait` et :func:`concurrent.futures.as_completed` ;" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index bcce68b5..33f1cea3 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -28,7 +28,7 @@ msgstr "Obtenir une boucle d'évènements" #: ../Doc/library/asyncio-llapi-index.rst:18 msgid ":func:`asyncio.get_running_loop`" -msgstr "" +msgstr ":func:`asyncio.get_running_loop`" #: ../Doc/library/asyncio-llapi-index.rst:19 msgid "The **preferred** function to get the running event loop." @@ -36,7 +36,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:21 msgid ":func:`asyncio.get_event_loop`" -msgstr "" +msgstr ":func:`asyncio.get_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:22 msgid "Get an event loop instance (current or via the policy)." @@ -44,7 +44,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:24 msgid ":func:`asyncio.set_event_loop`" -msgstr "" +msgstr ":func:`asyncio.set_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:25 msgid "Set the event loop as current via the current policy." @@ -52,7 +52,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:27 msgid ":func:`asyncio.new_event_loop`" -msgstr "" +msgstr ":func:`asyncio.new_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:28 msgid "Create a new event loop." @@ -83,7 +83,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:47 msgid ":meth:`loop.run_until_complete`" -msgstr "" +msgstr ":meth:`loop.run_until_complete`" #: ../Doc/library/asyncio-llapi-index.rst:48 msgid "Run a Future/Task/awaitable until complete." @@ -91,7 +91,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:50 msgid ":meth:`loop.run_forever`" -msgstr "" +msgstr ":meth:`loop.run_forever`" #: ../Doc/library/asyncio-llapi-index.rst:51 msgid "Run the event loop forever." @@ -99,7 +99,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:53 msgid ":meth:`loop.stop`" -msgstr "" +msgstr ":meth:`loop.stop`" #: ../Doc/library/asyncio-llapi-index.rst:54 msgid "Stop the event loop." @@ -107,7 +107,7 @@ msgstr "Arrête l'exécution de la boucle d'évènements." #: ../Doc/library/asyncio-llapi-index.rst:56 msgid ":meth:`loop.close`" -msgstr "" +msgstr ":meth:`loop.close`" #: ../Doc/library/asyncio-llapi-index.rst:57 msgid "Close the event loop." @@ -115,7 +115,7 @@ msgstr "Arrête la boucle d'évènements." #: ../Doc/library/asyncio-llapi-index.rst:59 msgid ":meth:`loop.is_running()`" -msgstr "" +msgstr ":meth:`loop.is_running()`" #: ../Doc/library/asyncio-llapi-index.rst:60 msgid "Return ``True`` if the event loop is running." @@ -123,7 +123,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:62 msgid ":meth:`loop.is_closed()`" -msgstr "" +msgstr ":meth:`loop.is_closed()`" #: ../Doc/library/asyncio-llapi-index.rst:63 #, fuzzy @@ -140,11 +140,11 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:69 msgid "Debugging" -msgstr "" +msgstr "Débogage" #: ../Doc/library/asyncio-llapi-index.rst:74 msgid ":meth:`loop.set_debug`" -msgstr "" +msgstr ":meth:`loop.set_debug`" #: ../Doc/library/asyncio-llapi-index.rst:75 msgid "Enable or disable the debug mode." @@ -152,7 +152,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:77 msgid ":meth:`loop.get_debug`" -msgstr "" +msgstr ":meth:`loop.get_debug`" #: ../Doc/library/asyncio-llapi-index.rst:78 msgid "Get the current debug mode." @@ -164,7 +164,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:86 msgid ":meth:`loop.call_soon`" -msgstr "" +msgstr ":meth:`loop.call_soon`" #: ../Doc/library/asyncio-llapi-index.rst:87 msgid "Invoke a callback soon." @@ -172,7 +172,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:89 msgid ":meth:`loop.call_soon_threadsafe`" -msgstr "" +msgstr ":meth:`loop.call_soon_threadsafe`" #: ../Doc/library/asyncio-llapi-index.rst:90 msgid "A thread-safe variant of :meth:`loop.call_soon`." @@ -180,7 +180,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:92 msgid ":meth:`loop.call_later`" -msgstr "" +msgstr ":meth:`loop.call_later`" #: ../Doc/library/asyncio-llapi-index.rst:93 msgid "Invoke a callback *after* the given time." @@ -188,7 +188,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:95 msgid ":meth:`loop.call_at`" -msgstr "" +msgstr ":meth:`loop.call_at`" #: ../Doc/library/asyncio-llapi-index.rst:96 msgid "Invoke a callback *at* the given time." @@ -210,7 +210,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:108 msgid ":meth:`loop.set_default_executor`" -msgstr "" +msgstr ":meth:`loop.set_default_executor`" #: ../Doc/library/asyncio-llapi-index.rst:109 msgid "Set the default executor for :meth:`loop.run_in_executor`." @@ -222,7 +222,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:117 msgid ":meth:`loop.create_future`" -msgstr "" +msgstr ":meth:`loop.create_future`" #: ../Doc/library/asyncio-llapi-index.rst:118 msgid "Create a :class:`Future` object." @@ -230,7 +230,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:120 msgid ":meth:`loop.create_task`" -msgstr "" +msgstr ":meth:`loop.create_task`" #: ../Doc/library/asyncio-llapi-index.rst:121 msgid "Schedule coroutine as a :class:`Task`." @@ -238,7 +238,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:123 msgid ":meth:`loop.set_task_factory`" -msgstr "" +msgstr ":meth:`loop.set_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:124 msgid "" @@ -248,7 +248,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:127 msgid ":meth:`loop.get_task_factory`" -msgstr "" +msgstr ":meth:`loop.get_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:128 msgid "" @@ -414,7 +414,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:204 msgid ":meth:`loop.add_reader`" -msgstr "" +msgstr ":meth:`loop.add_reader`" #: ../Doc/library/asyncio-llapi-index.rst:205 msgid "Start watching a file descriptor for read availability." @@ -422,7 +422,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:207 msgid ":meth:`loop.remove_reader`" -msgstr "" +msgstr ":meth:`loop.remove_reader`" #: ../Doc/library/asyncio-llapi-index.rst:208 msgid "Stop watching a file descriptor for read availability." @@ -430,7 +430,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:210 msgid ":meth:`loop.add_writer`" -msgstr "" +msgstr ":meth:`loop.add_writer`" #: ../Doc/library/asyncio-llapi-index.rst:211 msgid "Start watching a file descriptor for write availability." @@ -438,7 +438,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:213 msgid ":meth:`loop.remove_writer`" -msgstr "" +msgstr ":meth:`loop.remove_writer`" #: ../Doc/library/asyncio-llapi-index.rst:214 msgid "Stop watching a file descriptor for write availability." @@ -451,7 +451,7 @@ msgstr "Signaux Unix" #: ../Doc/library/asyncio-llapi-index.rst:222 msgid ":meth:`loop.add_signal_handler`" -msgstr "" +msgstr ":meth:`loop.add_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:223 msgid "Add a handler for a :mod:`signal`." @@ -459,7 +459,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:225 msgid ":meth:`loop.remove_signal_handler`" -msgstr "" +msgstr ":meth:`loop.remove_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:226 msgid "Remove a handler for a :mod:`signal`." @@ -471,7 +471,7 @@ msgstr "Sous-processus" #: ../Doc/library/asyncio-llapi-index.rst:234 msgid ":meth:`loop.subprocess_exec`" -msgstr "" +msgstr ":meth:`loop.subprocess_exec`" #: ../Doc/library/asyncio-llapi-index.rst:235 msgid "Spawn a subprocess." @@ -479,7 +479,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:237 msgid ":meth:`loop.subprocess_shell`" -msgstr "" +msgstr ":meth:`loop.subprocess_shell`" #: ../Doc/library/asyncio-llapi-index.rst:238 msgid "Spawn a subprocess from a shell command." @@ -491,7 +491,7 @@ msgstr "Gestion des erreurs" #: ../Doc/library/asyncio-llapi-index.rst:246 msgid ":meth:`loop.call_exception_handler`" -msgstr "" +msgstr ":meth:`loop.call_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:247 msgid "Call the exception handler." @@ -499,7 +499,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:249 msgid ":meth:`loop.set_exception_handler`" -msgstr "" +msgstr ":meth:`loop.set_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:250 msgid "Set a new exception handler." @@ -507,7 +507,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:252 msgid ":meth:`loop.get_exception_handler`" -msgstr "" +msgstr ":meth:`loop.get_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:253 msgid "Get the current exception handler." @@ -515,7 +515,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:255 msgid ":meth:`loop.default_exception_handler`" -msgstr "" +msgstr ":meth:`loop.default_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:256 msgid "The default exception handler implementation." @@ -804,7 +804,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:407 msgid "Protocols" -msgstr "" +msgstr "Protocoles" #: ../Doc/library/asyncio-llapi-index.rst:409 msgid "Protocol classes can implement the following **callback methods**:" @@ -966,7 +966,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:503 msgid ":meth:`asyncio.get_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.get_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:504 msgid "Return the current process-wide policy." @@ -974,7 +974,7 @@ msgstr "Renvoie la stratégie actuelle à l'échelle du processus." #: ../Doc/library/asyncio-llapi-index.rst:506 msgid ":meth:`asyncio.set_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.set_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:507 msgid "Set a new process-wide policy." @@ -982,7 +982,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:509 msgid ":class:`AbstractEventLoopPolicy`" -msgstr "" +msgstr ":class:`AbstractEventLoopPolicy`" #: ../Doc/library/asyncio-llapi-index.rst:510 msgid "Base class for policy objects." diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index 91405779..5c3d2253 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -323,6 +323,8 @@ msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Instancier un sous-processus avec un observateur enfant actuel *inactif* " +"lève l'exception :exc:`RuntimeError`." #: library/asyncio-policy.rst:200 msgid "Close the watcher." diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index d7272982..5063bd0a 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -585,7 +585,7 @@ msgstr "" #: library/asyncio-protocol.rst:436 msgid "Protocols" -msgstr "" +msgstr "Protocoles" #: library/asyncio-protocol.rst:438 msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index ec5a3efe..f1976440 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -68,6 +68,8 @@ msgstr "Le paramètre *loop*." #: ../Doc/library/asyncio-queue.rst:43 msgid "This class is :ref:`not thread safe `." msgstr "" +"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." #: ../Doc/library/asyncio-queue.rst:47 msgid "Number of items allowed in the queue." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 728e2bb3..07932af7 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -29,12 +29,16 @@ msgid "" "This section describes high-level async/await asyncio APIs to create and " "manage subprocesses." msgstr "" +"Cette section décrit des API de haut niveau de *asyncio* pour créer et gérer " +"des sous-processus via ``async``/``await``." #: library/asyncio-subprocess.rst:19 msgid "" "Here's an example of how asyncio can run a shell command and obtain its " "result::" msgstr "" +"Voici un exemple de comment *asyncio* peut lancer une commande shell et " +"obtenir son résultat ::" #: library/asyncio-subprocess.rst:40 #, fuzzy @@ -51,15 +55,15 @@ msgstr "" #: library/asyncio-subprocess.rst:58 msgid "See also the `Examples`_ subsection." -msgstr "" +msgstr "Voir également la section `Exemples`_." #: library/asyncio-subprocess.rst:62 msgid "Creating Subprocesses" -msgstr "" +msgstr "Créer des sous-processus" #: library/asyncio-subprocess.rst:68 msgid "Create a subprocess." -msgstr "" +msgstr "Crée un sous-processus." #: library/asyncio-subprocess.rst:70 library/asyncio-subprocess.rst:89 msgid "" @@ -67,15 +71,21 @@ msgid "" "wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" "`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." msgstr "" +"Le paramètre *limit* définit la taille maximale du tampon pour les instances " +"de :class:`StreamReader` encapsulant :attr:`Process.stdout` et :attr:" +"`Process.stderr` (Si :attr:`subprocess.PIPE` est passé aux paramètres " +"*stdout* et *stderr*)." #: library/asyncio-subprocess.rst:74 library/asyncio-subprocess.rst:93 msgid "Return a :class:`~asyncio.subprocess.Process` instance." -msgstr "" +msgstr "Renvoie une instance de :class:`~asyncio.subprocess.Process`." #: library/asyncio-subprocess.rst:76 msgid "" "See the documentation of :meth:`loop.subprocess_exec` for other parameters." msgstr "" +"Voir la documentation de :meth:`loop.subprocess_exec` pour d'autres " +"paramètres." #: library/asyncio-subprocess.rst:81 library/asyncio-subprocess.rst:109 #, fuzzy @@ -90,6 +100,8 @@ msgstr "Exécute la commande *cmd* dans un *shell*." msgid "" "See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" +"Voir la documentation de :meth:`loop.subprocess_shell` pour d'autres " +"paramètres." #: library/asyncio-subprocess.rst:100 msgid "" @@ -100,6 +112,13 @@ msgid "" "escape whitespace and special shell characters in strings that are going to " "be used to construct shell commands." msgstr "" +"Il est de la responsabilité de l'application de s'assurer que tous les " +"espaces et les caractères spéciaux sont correctement mis entre guillemets " +"pour éviter les vulnérabilités de type `injection de code `_. La fonction :func:" +"`shlex.quote` peut être utilisée pour l’échappement des espaces et " +"caractères spéciaux dans les chaînes utilisées pour construire des commandes " +"shell." #: library/asyncio-subprocess.rst:113 msgid "" @@ -107,6 +126,9 @@ msgid "" "used. See :ref:`Subprocess Support on Windows ` " "for details." msgstr "" +"Les sous-processus sont disponibles pour Windows si un :class:" +"`ProactorEventLoop` est utilisé. Voir :ref:`Support des sous-processus sous " +"Windows ` pour plus de précisions." #: library/asyncio-subprocess.rst:119 msgid "" @@ -123,7 +145,7 @@ msgstr "Constantes" #: library/asyncio-subprocess.rst:131 msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." -msgstr "" +msgstr "Peut être passé aux paramètres *stdin*, *stdout* ou *stderr*." #: library/asyncio-subprocess.rst:133 msgid "" @@ -131,6 +153,9 @@ msgid "" "subprocess.Process.stdin>` attribute will point to a :class:`StreamWriter` " "instance." msgstr "" +"Si *PIPE* est passé au paramètre *stdin*, l'attribut :attr:`Process.stdin " +"` ne pointera pas vers une instance de :" +"class:`StreamWriter`." #: library/asyncio-subprocess.rst:137 msgid "" @@ -139,12 +164,18 @@ msgid "" "` attributes will point to :class:" "`StreamReader` instances." msgstr "" +"Si *PIPE* est passé au paramètre *stdout* ou *stderr* , l'attribut :attr:" +"`Process.stdout ` et :attr:`Process." +"stderr ` pointeront vers des instances " +"de :class:`StreamReader`." #: library/asyncio-subprocess.rst:144 msgid "" "Special value that can be used as the *stderr* argument and indicates that " "standard error should be redirected into standard output." msgstr "" +"Une valeur spéciale qui peut être passée au paramètre *stderr* et qui " +"indique que la sortie d'erreur doit être redirigée vers la sortie standard." #: library/asyncio-subprocess.rst:149 msgid "" @@ -152,10 +183,13 @@ msgid "" "to process creation functions. It indicates that the special file :data:`os." "devnull` will be used for the corresponding subprocess stream." msgstr "" +"Une valeur spéciale qui peut être passée à l'argument *stdin*, *stdout* ou " +"*stderr* des fonctions créant des processus. Elle implique l'utilisation du " +"fichier :data:`os.devnull` pour le flux correspondant du processus." #: library/asyncio-subprocess.rst:155 msgid "Interacting with Subprocesses" -msgstr "" +msgstr "Interagir avec les sous-processus" #: library/asyncio-subprocess.rst:157 msgid "" @@ -199,11 +233,13 @@ msgstr "" #: library/asyncio-subprocess.rst:183 msgid "the *universal_newlines* parameter is not supported." -msgstr "" +msgstr "le paramètre *universal_newlines* n'est pas pris en charge." #: library/asyncio-subprocess.rst:185 msgid "This class is :ref:`not thread safe `." msgstr "" +"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." #: library/asyncio-subprocess.rst:187 msgid "" @@ -215,11 +251,11 @@ msgstr "" #: library/asyncio-subprocess.rst:192 msgid "Wait for the child process to terminate." -msgstr "" +msgstr "Attend que le sous processus s'arrête." #: library/asyncio-subprocess.rst:194 msgid "Set and return the :attr:`returncode` attribute." -msgstr "" +msgstr "Définit et renvoie l'attribut :attr:`returncode`." #: library/asyncio-subprocess.rst:198 msgid "" @@ -228,32 +264,41 @@ msgid "" "pipe buffer to accept more data. Use the :meth:`communicate` method when " "using pipes to avoid this condition." msgstr "" +"Cette méthode peut générer un interblocage quand ``stdout=PIPE`` ou " +"``stderr=PIPE`` est utilisé et que le sous-processus génère tellement de " +"sorties qu'il se bloque, dans l'attente que le tampon du tube côté OS " +"accepte des données supplémentaires. Pour éviter cette situation, choisissez " +"la méthode :meth:`communicate` quand vous utilisez des tubes." #: library/asyncio-subprocess.rst:206 msgid "Interact with process:" -msgstr "" +msgstr "Interagit avec le processus :" #: library/asyncio-subprocess.rst:208 msgid "send data to *stdin* (if *input* is not ``None``);" -msgstr "" +msgstr "envoie des données sur le *stdin* (si *input* n'est pas ``None``);" #: library/asyncio-subprocess.rst:209 msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "" +"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit " +"atteint ;" #: library/asyncio-subprocess.rst:210 msgid "wait for process to terminate." -msgstr "" +msgstr "attend que le processus s'arrête." #: library/asyncio-subprocess.rst:212 msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." msgstr "" +"Le paramètre optionnel *input* (objet de type :class:`bytes`) représente les " +"données transmises au sous-processus." #: library/asyncio-subprocess.rst:215 msgid "Return a tuple ``(stdout_data, stderr_data)``." -msgstr "" +msgstr "Renvoie un tuple ``(stdout_data, stderr_data)``." #: library/asyncio-subprocess.rst:217 msgid "" @@ -284,15 +329,15 @@ msgid "Sends the signal *signal* to the child process." msgstr "Envoie le signal *signal* au sous-processus." #: library/asyncio-subprocess.rst:237 -#, fuzzy msgid "" "On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. " "``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " "with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." msgstr "" -"Sous Windows, *SIGTERM* est un alias pour :meth:`terminate`. *CTRL_C_EVENT* " -"et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus démarrés avec un " -"paramètre *creationflags* incluant `CREATE_NEW_PROCESS_GROUP`." +"Sous Windows, :py:data:`SIGTERM` est un alias pour :meth:`terminate`. " +"*CTRL_C_EVENT* et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus " +"démarrés avec un paramètre *creationflags* incluant " +"``CREATE_NEW_PROCESS_GROUP``." #: library/asyncio-subprocess.rst:244 msgid "Stop the child process." @@ -318,16 +363,15 @@ msgid "Kill the child process." msgstr "Arrête le sous-processus." #: library/asyncio-subprocess.rst:256 -#, fuzzy msgid "" "On POSIX systems this method sends :py:data:`SIGKILL` to the child process." msgstr "" -"Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " +"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au " "sous-processus." #: library/asyncio-subprocess.rst:259 msgid "On Windows this method is an alias for :meth:`terminate`." -msgstr "" +msgstr "Sous Windows, cette méthode est un alias pour :meth:`terminate`." #: library/asyncio-subprocess.rst:263 msgid "" @@ -358,6 +402,8 @@ msgstr "" #: library/asyncio-subprocess.rst:287 msgid "Process identification number (PID)." msgstr "" +"Numéro d'identification du processus (PID, pour *Process Identification " +"Number* en anglais)." #: library/asyncio-subprocess.rst:289 msgid "" @@ -367,7 +413,7 @@ msgstr "" #: library/asyncio-subprocess.rst:294 msgid "Return code of the process when it exits." -msgstr "" +msgstr "Code de retour du processus quand il se termine." #: library/asyncio-subprocess.rst:296 msgid "A ``None`` value indicates that the process has not terminated yet." @@ -414,18 +460,25 @@ msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Instancier un sous-processus avec un observateur enfant actuel *inactif* " +"lève l'exception :exc:`RuntimeError`." #: library/asyncio-subprocess.rst:325 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" +"Notez que ces implémentations alternatives de la boucle d'événements peuvent " +"comporter leurs propres limitations. Veuillez vous référer à leur " +"documentation." #: library/asyncio-subprocess.rst:330 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" +"La section :ref:`Exécution concurrente et multi-fils d'exécution `." #: library/asyncio-subprocess.rst:335 msgid "Examples" @@ -437,17 +490,23 @@ msgid "" "subprocess and the :class:`StreamReader` class to read from its standard " "output." msgstr "" +"Un exemple utilisant la classe :class:`~asyncio.subprocess.Process` pour " +"contrôler un sous-processus et la classe :class:`StreamReader` pour lire sa " +"sortie standard." #: library/asyncio-subprocess.rst:343 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" +"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::" #: library/asyncio-subprocess.rst:370 msgid "" "See also the :ref:`same example ` written " "using low-level APIs." msgstr "" +"Voir également :ref:`le même exemple `, " +"écrit en utilisant des API de bas niveau." #~ msgid "An event loop must run in the main thread." #~ msgstr "" diff --git a/library/asyncio.po b/library/asyncio.po index a20d015f..a6f7da7b 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -136,9 +136,9 @@ msgid "Reference" msgstr "Sommaire" #: library/asyncio.rst:96 -#, fuzzy msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." -msgstr "**Code source :** :source:`Lib/asyncio/`" +msgstr "" +"Le code source d'``asyncio`` est disponible dans :source:`Lib/asyncio/`." #~ msgid "" #~ "This module provides infrastructure for writing single-threaded " diff --git a/library/audioop.po b/library/audioop.po index da9f560a..fd79ee5b 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -26,33 +26,49 @@ msgid "" "`. All scalar items are integers, unless specified " "otherwise." msgstr "" +"Le module :mod:`audioop` permet d'effectuer des opérations utiles sur des " +"fragments sonores. Ceux-ci sont constitués d'échantillons audio, suite " +"d'entiers signés de taille 8, 16, 24 ou 32 bits. Ils sont sauvegardés dans " +"des :term:`objets octet-compatibles `. Tous les nombres " +"sont des entiers, sauf mention particulière." #: library/audioop.rst:14 msgid "" "Support for 24-bit samples was added. All functions now accept any :term:" "`bytes-like object`. String input now results in an immediate error." msgstr "" +"Ajout de la prise en charge d'échantillons 24 bits. Toutes les fonctions " +"acceptent maintenant les :term:`objets octet-compatibles `. Une chaîne de caractères reçue en entrée lève immédiatement une " +"erreur." #: library/audioop.rst:25 msgid "" "This module provides support for a-LAW, u-LAW and Intel/DVI ADPCM encodings." msgstr "" +"Ce module prend en charge les encodages de la loi A, de la loi u et les " +"encodages Intel/DVI ADPCM." #: library/audioop.rst:29 msgid "" "A few of the more complicated operations only take 16-bit samples, otherwise " "the sample size (in bytes) is always a parameter of the operation." msgstr "" +"Mis à part quelques opérations plus complexes ne prenant que des " +"échantillons de 16 bits, la taille de l'échantillon (en octets) est toujours " +"un paramètre de l'opération." #: library/audioop.rst:32 msgid "The module defines the following variables and functions:" -msgstr "" +msgstr "Le module définit les fonctions et variables suivantes :" #: library/audioop.rst:37 msgid "" "This exception is raised on all errors, such as unknown number of bytes per " "sample, etc." msgstr "" +"Cette exception est levée pour toutes les erreurs, comme un nombre inconnu " +"d'octets par échantillon, etc." #: library/audioop.rst:43 msgid "" @@ -61,6 +77,10 @@ msgid "" "or ``4``. Both fragments should have the same length. Samples are " "truncated in case of overflow." msgstr "" +"Renvoie un fragment constitué de l'addition des deux échantillons fournis " +"comme paramètres. *width* est la largeur de l'échantillon en octets, soit " +"``1``, ``2``, ``3`` ou ``4``. Les deux fragments doivent avoir la même " +"longueur. Les échantillons sont tronqués en cas de débordement." #: library/audioop.rst:50 msgid "" @@ -78,7 +98,7 @@ msgstr "" #: library/audioop.rst:64 msgid "Return the average over all samples in the fragment." -msgstr "" +msgstr "Renvoie la moyenne prise sur l'ensemble des échantillons du fragment." #: library/audioop.rst:69 msgid "" @@ -113,7 +133,7 @@ msgstr "" #: library/audioop.rst:99 msgid "The time taken by this routine is proportional to ``len(fragment)``." -msgstr "" +msgstr "Le temps pris par cette routine est proportionnel à ``len(fragment)``." #: library/audioop.rst:104 msgid "" @@ -136,11 +156,12 @@ msgstr "" #: library/audioop.rst:119 msgid "The routine takes time proportional to ``len(fragment)``." -msgstr "" +msgstr "La routine s'exécute en un temps proportionnel à ``len(fragment)``." #: library/audioop.rst:124 msgid "Return the value of sample *index* from the fragment." msgstr "" +"Renvoie la valeur de l'échantillon à l'indice *index* dans le fragment." #: library/audioop.rst:129 msgid "" @@ -170,7 +191,7 @@ msgstr "" #: library/audioop.rst:150 msgid "Convert samples between 1-, 2-, 3- and 4-byte formats." -msgstr "" +msgstr "Convertit des échantillons pour les formats à 1, 2, 3, et 4 octets." #: library/audioop.rst:154 msgid "" @@ -184,6 +205,8 @@ msgid "" "The same, in reverse, has to be applied when converting from 8 to 16, 24 or " "32 bit width samples." msgstr "" +"Le même procédé, mais inversé, doit être suivi lorsqu'on exécute une " +"conversion d'échantillons de 8 bits à 16, 24 ou 32 bits." #: library/audioop.rst:167 msgid "" @@ -197,6 +220,7 @@ msgstr "" msgid "" "Return the maximum of the *absolute value* of all samples in a fragment." msgstr "" +"Renvoie la *valeur absolue* maximale de tous les échantillons du fragment." #: library/audioop.rst:180 msgid "Return the maximum peak-peak value in the sound fragment." @@ -207,6 +231,8 @@ msgid "" "Return a tuple consisting of the minimum and maximum values of all samples " "in the sound fragment." msgstr "" +"Renvoie un *n*-uplet contenant les valeurs maximale et minimale de tous les " +"échantillons du fragment sonore." #: library/audioop.rst:191 msgid "" @@ -214,10 +240,13 @@ msgid "" "by the floating-point value *factor*. Samples are truncated in case of " "overflow." msgstr "" +"Renvoie un fragment contenant tous les échantillons du fragment original " +"multipliés par la valeur à décimale *factor*. Les échantillons sont tronqués " +"en cas de débordement." #: library/audioop.rst:197 msgid "Convert the frame rate of the input fragment." -msgstr "" +msgstr "Transforme la fréquence d'échantillonnage du fragment d'entrée." #: library/audioop.rst:199 msgid "" @@ -232,15 +261,21 @@ msgid "" "The *weightA* and *weightB* arguments are parameters for a simple digital " "filter and default to ``1`` and ``0`` respectively." msgstr "" +"Les arguments *weightA* et *weightB* sont les paramètres d'un filtre " +"numérique simple et ont comme valeur par défaut ``1`` et ``0``, " +"respectivement." #: library/audioop.rst:209 msgid "Reverse the samples in a fragment and returns the modified fragment." msgstr "" +"Inverse les échantillons dans un fragment et renvoie le fragment modifié." #: library/audioop.rst:214 msgid "" "Return the root-mean-square of the fragment, i.e. ``sqrt(sum(S_i^2)/n)``." msgstr "" +"Renvoie la moyenne quadratique du fragment, c'est-à-dire ``sqrt(sum(S_i^2)/" +"n)``." #: library/audioop.rst:216 msgid "This is a measure of the power in an audio signal." @@ -252,6 +287,9 @@ msgid "" "multiplied by *lfactor* and the right channel by *rfactor* before adding the " "two channels to give a mono signal." msgstr "" +"Transforme un fragment stéréo en fragment mono. Le canal de gauche est " +"multiplié par *lfactor* et le canal de droite par *rfactor* avant " +"d'additionner les deux canaux afin d'obtenir un signal mono." #: library/audioop.rst:228 msgid "" @@ -259,6 +297,11 @@ msgid "" "the stereo fragment are computed from the mono sample, whereby left channel " "samples are multiplied by *lfactor* and right channel samples by *rfactor*." msgstr "" +"Génère un fragment stéréo à partir d'un fragment mono. Chaque paire " +"d'échantillons dans le fragment stéréo est obtenue à partir de l'échantillon " +"mono de la façon suivante : les échantillons du canal de gauche sont " +"multipliés par *lfactor* et les échantillons du canal de droite, par " +"*rfactor*." #: library/audioop.rst:235 msgid "" diff --git a/library/audit_events.po b/library/audit_events.po index da1ea991..f2f948e9 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -55,6 +55,8 @@ msgid "" "The following events are raised internally and do not correspond to any " "public API of CPython:" msgstr "" +"Les évènements suivants sont levés en interne et ne correspondent à aucune " +"API publique de CPython:" #: library/audit_events.rst:27 #, fuzzy @@ -63,66 +65,68 @@ msgstr "Table des évènements d'audit" #: library/audit_events.rst:27 msgid "Arguments" -msgstr "" +msgstr "Arguments" #: library/audit_events.rst:29 msgid "_winapi.CreateFile" -msgstr "" +msgstr "_winapi.CreateFile" #: library/audit_events.rst:29 msgid "" "``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " "``flags_and_attributes``" msgstr "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" #: library/audit_events.rst:33 msgid "_winapi.CreateJunction" -msgstr "" +msgstr "_winapi.CreateJunction" #: library/audit_events.rst:33 msgid "``src_path``, ``dst_path``" -msgstr "" +msgstr "``src_path``, ``dst_path``" #: library/audit_events.rst:35 msgid "_winapi.CreateNamedPipe" -msgstr "" +msgstr "_winapi.CreateNamedPipe" #: library/audit_events.rst:35 msgid "``name``, ``open_mode``, ``pipe_mode``" -msgstr "" +msgstr "``name``, ``open_mode``, ``pipe_mode``" #: library/audit_events.rst:37 msgid "_winapi.CreatePipe" -msgstr "" +msgstr "_winapi.CreatePipe" #: library/audit_events.rst:39 msgid "_winapi.CreateProcess" -msgstr "" +msgstr "_winapi.CreateProcess" #: library/audit_events.rst:39 msgid "``application_name``, ``command_line``, ``current_directory``" -msgstr "" +msgstr "``application_name``, ``command_line``, ``current_directory``" #: library/audit_events.rst:42 msgid "_winapi.OpenProcess" -msgstr "" +msgstr "_winapi.OpenProcess" #: library/audit_events.rst:42 msgid "``process_id``, ``desired_access``" -msgstr "" +msgstr "``process_id``, ``desired_access``" #: library/audit_events.rst:44 msgid "_winapi.TerminateProcess" -msgstr "" +msgstr "_winapi.TerminateProcess" #: library/audit_events.rst:44 msgid "``handle``, ``exit_code``" -msgstr "" +msgstr "``handle``, ``exit_code``" #: library/audit_events.rst:46 msgid "ctypes.PyObj_FromPtr" -msgstr "" +msgstr "ctypes.PyObj_FromPtr" #: library/audit_events.rst:46 msgid "``obj``" -msgstr "" +msgstr "``obj``" diff --git a/library/bz2.po b/library/bz2.po index 1dc81d46..5970ab0d 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -494,9 +494,9 @@ msgstr "" "généralement un taux de compression élevé." #: library/bz2.rst:304 -#, fuzzy msgid "Writing and reading a bzip2-compressed file in binary mode:" -msgstr "Ouvre et lit un fichier *bzip2* en mode binaire :" +msgstr "" +"Écriture et lecture en mode binaire d'un fichier compressé avec *bzip2* :" #~ msgid "Compress *data*." #~ msgstr "Compresse *data*." diff --git a/library/codeop.po b/library/codeop.po index 12f5ab00..c7b8616f 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -94,7 +94,6 @@ msgstr "" "ou :exc:`ValueError` si un littéral invalide est rencontré." #: ../Doc/library/codeop.rst:45 -#, fuzzy msgid "" "The *symbol* argument determines whether *source* is compiled as a statement " "(``'single'``, the default), as a sequence of statements (``'exec'``) or as " @@ -102,8 +101,9 @@ msgid "" "`ValueError` to be raised." msgstr "" "L'argument *symbol* détermine si *source* est compilée comme une instruction " -"(``'single'``, par défaut) ou comme une :term:`expression` (``'eval'``). " -"Toute autre valeur lèvera :exc:`ValueError`." +"(``'single'``, par défaut), comme une suite d'instructions (``'exec'``), ou " +"comme une :term:`expression` (``'eval'``). Toute autre valeur lèvera :exc:" +"`ValueError`." #: ../Doc/library/codeop.rst:52 msgid "" diff --git a/library/collections.abc.po b/library/collections.abc.po index ce64408e..862eb507 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -326,24 +326,20 @@ msgid "``aclose``, ``__aiter__``, ``__anext__``" msgstr "``aclose``, ``__aiter__``, ``__anext__``" #: library/collections.abc.rst:102 -#, fuzzy msgid "ABC for classes that provide the :meth:`__contains__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__contains__`." #: library/collections.abc.rst:106 -#, fuzzy msgid "ABC for classes that provide the :meth:`__hash__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__hash__`." #: library/collections.abc.rst:110 -#, fuzzy msgid "ABC for classes that provide the :meth:`__len__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__len__`." #: library/collections.abc.rst:114 -#, fuzzy msgid "ABC for classes that provide the :meth:`__call__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__call__`." #: library/collections.abc.rst:118 msgid "ABC for classes that provide the :meth:`__iter__` method." diff --git a/library/collections.po b/library/collections.po index cf9ef522..bcacba89 100644 --- a/library/collections.po +++ b/library/collections.po @@ -121,7 +121,6 @@ msgstr "" "de ``str``" #: library/collections.rst:41 -#, fuzzy msgid "" "Moved :ref:`collections-abstract-base-classes` to the :mod:`collections.abc` " "module. For backwards compatibility, they continue to be visible in this " @@ -129,7 +128,7 @@ msgid "" msgstr "" "Les :ref:`collections-abstract-base-classes` ont été déplacées vers le " "module :mod:`collections.abc`. Pour assurer la rétrocompatibilité, elles " -"sont toujours disponibles dans ce module en Python 3.8." +"sont toujours disponibles dans ce module dans Python 3.9." #: library/collections.rst:43 msgid ":class:`ChainMap` objects" @@ -285,7 +284,6 @@ msgstr "" "l'écriture dans n'importe quel dictionnaire de la chaîne." #: library/collections.rst:127 -#, fuzzy msgid "" "Django's `Context class `_ for templating is a read-only chain of mappings. It " @@ -293,12 +291,12 @@ msgid "" "`~collections.ChainMap.new_child` method and the :attr:`~collections." "ChainMap.parents` property." msgstr "" -"La `classe de contexte de Django `_ pour la création de modèles est une " -"chaîne de dictionnaires en lecture seule. Elle comporte également des " -"fonctionnalités d'ajouts et de retraits de contextes similaires à la " -"méthode :meth:`~collections.ChainMap.new_child` et à la propriété :attr:" -"`~collections.ChainMap.parents`." +"La `classe de contexte de Django `_ pour la création de modèles est une chaîne de " +"dictionnaires en lecture seule. Elle comporte également des fonctionnalités " +"d'ajouts et de retraits de contextes similaires à la méthode :meth:" +"`~collections.ChainMap.new_child` et à la propriété :attr:`~collections." +"ChainMap.parents`." #: library/collections.rst:134 msgid "" @@ -438,19 +436,17 @@ msgstr "" "compteurs gèrent trois méthodes supplémentaires :" #: library/collections.rst:282 -#, fuzzy msgid "" "Return an iterator over elements repeating each as many times as its count. " "Elements are returned in the order first encountered. If an element's count " "is less than one, :meth:`elements` will ignore it." msgstr "" "Renvoie un itérateur sur chaque élément en le répétant autant de fois que la " -"valeur du compteur associé. Les éléments sont renvoyés dans un ordre " -"arbitraire. Si le comptage d'un élément est strictement inférieur à 1, " -"alors :meth:`elements` l'ignore." +"valeur du compteur associé. Les éléments sont renvoyés dans l'ordre selon " +"lequel ils sont rencontrés pour la première fois. Si le comptage d'un " +"élément est strictement inférieur à 1, alors :meth:`elements` l'ignore." #: library/collections.rst:292 -#, fuzzy msgid "" "Return a list of the *n* most common elements and their counts from the most " "common to the least. If *n* is omitted or ``None``, :meth:`most_common` " @@ -460,8 +456,8 @@ msgstr "" "Renvoie une liste des *n* éléments les plus nombreux et leur valeur " "respective dans l'ordre décroissant. Si *n* n'est pas fourni ou vaut " "``None``, :meth:`most_common` renvoie *tous* les éléments du compteur. Les " -"éléments qui ont le même nombre d'occurrences sont ordonnés de manière " -"arbitraire :" +"éléments qui ont le même nombre d'occurrences sont ordonnés par l'ordre " +"selon lequel ils ont été rencontrés pour la première fois :" #: library/collections.rst:302 msgid "" @@ -836,7 +832,6 @@ msgid "Maximum size of a deque or ``None`` if unbounded." msgstr "La taille maximale d'une *deque*, ou ``None`` si illimitée." #: library/collections.rst:552 -#, fuzzy msgid "" "In addition to the above, deques support iteration, pickling, ``len(d)``, " "``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " @@ -847,9 +842,9 @@ msgstr "" "En plus des méthodes précédentes, les *deques* gèrent l'itération, la " "sérialisation, ``len(d)``, ``reversed(d)``, ``copy.copy(d)``, ``copy." "deepcopy(d)``, le test d'appartenance avec l'opérateur :keyword:`in`, et les " -"références en indice comme ``d[-1]``. L'accès par indice est en *O(1)* aux " -"extrémités mais en *O(n)* au milieu. Pour des accès aléatoires rapides, il " -"est préférable d'utiliser des listes." +"références en indice telles que ``d[0]`` pour accéder au premier élément. " +"L'accès par indice est en *O(1)* aux extrémités mais en *O(n)* au milieu. " +"Pour des accès aléatoires rapides, il est préférable d'utiliser des listes." #: library/collections.rst:558 msgid "" @@ -1321,13 +1316,12 @@ msgstr "" "la fonction :func:`getattr` :" #: library/collections.rst:974 -#, fuzzy msgid "" "To convert a dictionary to a named tuple, use the double-star-operator (as " "described in :ref:`tut-unpacking-arguments`):" msgstr "" -"Pour convertir un dictionnaire en tuple nommé, utilisez l'opérateur double-" -"étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" +"Pour convertir un dictionnaire en *n*-uplet nommé, utilisez l'opérateur " +"double-étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" #: library/collections.rst:981 msgid "" diff --git a/library/contextlib.po b/library/contextlib.po index 0df9f782..a85c46d9 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -106,16 +106,15 @@ msgstr "" "ressources ::" #: library/contextlib.rst:73 -#, fuzzy msgid "" "The function being decorated must return a :term:`generator`-iterator when " "called. This iterator must yield exactly one value, which will be bound to " "the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." msgstr "" -"La fonction à décorer doit renvoyer un :term:`générateur-itérateur " -"` quand elle est appelée. Ce générateur ne doit produire " -"qu'une seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide " -"de la clause :keyword:`!as` si précisée." +"La fonction à décorer doit renvoyer un :term:`générateur `-" +"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une " +"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la " +"clause :keyword:`!as` si précisée." #: library/contextlib.rst:77 msgid "" diff --git a/library/csv.po b/library/csv.po index 8263dc27..1cc69cfe 100644 --- a/library/csv.po +++ b/library/csv.po @@ -251,7 +251,6 @@ msgstr "" "les noms de champs, le dictionnaire préserve leur ordre original." #: library/csv.rst:161 -#, fuzzy msgid "" "If a row has more fields than fieldnames, the remaining data is put in a " "list and stored with the fieldname specified by *restkey* (which defaults to " @@ -262,7 +261,8 @@ msgstr "" "Si une ligne a plus de champs que *fieldnames*, les données excédentaires " "sont mises dans une liste stockée dans le champ spécifié par *restkey* " "(``None`` par défaut). Si une ligne non-vide a moins de champs que " -"*fieldnames*, les valeurs manquantes sont mises à ``None``." +"*fieldnames*, les valeurs manquantes sont remplacées par la valeur de " +"*restval* (``None`` par défaut)." #: library/csv.rst:167 msgid "" @@ -273,9 +273,8 @@ msgstr "" "class:`reader` sous-jacente." #: library/csv.rst:170 -#, fuzzy msgid "Returned rows are now of type :class:`OrderedDict`." -msgstr "Les lignes renvoyées sont maintenant de type :class:`dict`." +msgstr "Les lignes renvoyées sont maintenant de type :class:`OrderedDict`." #: library/csv.rst:173 msgid "Returned rows are now of type :class:`dict`." diff --git a/library/ctypes.po b/library/ctypes.po index f2cb4c4d..cd60ae39 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -1397,15 +1397,14 @@ msgstr "" "autre, donc mieux vaut sortir de la boucle quand on lit l'entrée ``NULL`` ::" #: library/ctypes.rst:1120 -#, fuzzy msgid "" "The fact that standard Python has a frozen module and a frozen package " "(indicated by the negative ``size`` member) is not well known, it is only " "used for testing. Try it out with ``import __hello__`` for example." msgstr "" -"Le fait que le standard Python possède un module et un paquet gelés (indiqué " -"par la valeur négative du membre *size*) est peu connu, cela ne sert qu'aux " -"tests. Essayez avec ``import __hello__`` par exemple." +"Le fait que le standard Python possède un module et un paquet figés " +"(indiqués par la valeur négative du membre *size*) est peu connu, cela ne " +"sert qu'aux tests. Essayez avec ``import __hello__`` par exemple." #: library/ctypes.rst:1128 msgid "Surprises" @@ -1679,12 +1678,22 @@ msgid "" "which DLL is not found, you need to find the list of dependent DLLs and " "determine which one is not found using Windows debugging and tracing tools." msgstr "" +"En Windows, créer une instance de :class:`CDLL` peut échouer, même si une " +"DLL du bon nom existe. Quand une des dépendances de la DLL à charger ne peut " +"pas être trouvée, une :exc:`OSError` est levée avec le message *\"[WinError " +"126] The specified module could not be found\".* Ce message d'erreur ne " +"contient pas le nom de la DLL manquante car l'API Windows ne fournit pas " +"cette information. Cela rend l'erreur délicate à analyser ; pour la " +"résoudre, il faut lister toutes les dépendances de la DLL et trouver celle " +"qui manque en utilisant des outils de débogage et de traçage Windows." #: library/ctypes.rst:1341 msgid "" "`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." msgstr "" +"`DUMPBIN `_ — un " +"utilitaire Microsoft pour lister les dépendances d'une DLL." #: library/ctypes.rst:1347 msgid "" @@ -1893,7 +1902,7 @@ msgstr "" #: library/ctypes.rst:1460 msgid "The system handle used to access the library." -msgstr "" +msgstr "Le lien système d'accès à la bibliothèque." #: library/ctypes.rst:1465 msgid "The name of the library passed in the constructor." @@ -2246,6 +2255,15 @@ msgid "" "decorator factories, and as such, be applied to functions through the " "``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." msgstr "" +"Il est aussi possible de créer des fonctions externes en instanciant des " +"prototypes de fonction. Les prototypes de fonction ressemblent beaucoup aux " +"prototypes de fonctions en C ; ils décrivent une fonction (type de retour, " +"type des arguments, convention d'appel) sans préciser son implémentation. " +"Les fabriques de fonctions prennent en entrée le type de retour et le type " +"des arguments de la fonction, et peuvent être utilisées comme des " +"décorateurs-fabrique et ainsi s'appliquer à des fonctions avec la syntaxe " +"``@décorateur``. Ceci est illustré dans la section :ref:`ctypes-callback-" +"functions`." #: library/ctypes.rst:1657 msgid "" @@ -2255,6 +2273,11 @@ msgid "" "`errno` variable is exchanged with the real :data:`errno` value before and " "after the call; *use_last_error* does the same for the Windows error code." msgstr "" +"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " +"convention d'appel standard C. Les fonctions libèreront le GIL lors de leur " +"exécution. Si *use_errno* est vrai, la copie privée *ctypes* de la variable " +"système :data:`errno` est échangée avec la vraie valeur de :data:`errno` " +"avant et après l'appel ; *use_last_error* a le même effet sous Windows." #: library/ctypes.rst:1667 msgid "" @@ -2270,6 +2293,9 @@ msgid "" "The returned function prototype creates functions that use the Python " "calling convention. The function will *not* release the GIL during the call." msgstr "" +"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " +"convention d'appel Python. Les fonctions ne libèreront *pas* le GIL lors de " +"leur exécution." #: library/ctypes.rst:1679 msgid "" @@ -2277,16 +2303,21 @@ msgid "" "in different ways, depending on the type and number of the parameters in the " "call:" msgstr "" +"Il y a plusieurs façons d'instancier les prototypes de fonction créés par " +"ces fabriques, selon le type et le nombre de paramètres de l'appel :" #: library/ctypes.rst:1687 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" +"Renvoie une fonction externe sur l'adresse donnée sous la forme d'un entier." #: library/ctypes.rst:1694 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" +"Crée une fonction appelable depuis du code C (une fonction de rappel) d'un " +"appelable Python donné en paramètre." #: library/ctypes.rst:1701 msgid "" @@ -2295,6 +2326,11 @@ msgid "" "exported function as string, or the ordinal of the exported function as " "small integer. The second item is the shared library instance." msgstr "" +"Renvoie une fonction externe exposée par une bibliothèque partagée. " +"*func_spec* est un couple ``(nom_ou_indice, bibliothèque)``. Le premier " +"élément est le nom de la fonction à passer comme une chaîne ou bien son " +"indice (dans la table des symboles) à passer comme un entier. Le second " +"élément est l'instance de la bibliothèque partagée." #: library/ctypes.rst:1711 msgid "" @@ -2303,6 +2339,11 @@ msgid "" "is name of the COM method. *iid* is an optional pointer to the interface " "identifier which is used in extended error reporting." msgstr "" +"Renvoie une fonction qui appelle une méthode COM. *vtbl_index* est l'indice " +"de la fonction dans la table virtuelle, un petit entier positif. *name* est " +"le nom de la méthode COM. *iid* est un pointeur optionnel vers " +"l'identificateur de plateforme, qui est utilisé dans la remontée d'erreurs " +"étendue." #: library/ctypes.rst:1716 msgid "" @@ -2310,28 +2351,39 @@ msgid "" "COM interface as first argument, in addition to those parameters that are " "specified in the :attr:`argtypes` tuple." msgstr "" +"Les méthodes COM ont une convention d'appel particulière : elles requièrent " +"de passer un pointeur vers l'interface COM en premier argument, en sus des " +"arguments passés dans le *n*-uplet :attr:`argtypes`." #: library/ctypes.rst:1720 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." msgstr "" +"Le paramètre optionnel *paramflags* crée une fabrique de fonction externes " +"avec des fonctionnalités supplémentaires par rapport à celles décrites ci-" +"dessus." #: library/ctypes.rst:1723 msgid "*paramflags* must be a tuple of the same length as :attr:`argtypes`." -msgstr "" +msgstr "*paramflags* est un *n*-uplet de la même taille que :attr:`argtypes`." #: library/ctypes.rst:1725 msgid "" "Each item in this tuple contains further information about a parameter, it " "must be a tuple containing one, two, or three items." msgstr "" +"Chaque élément de ce *n*-uplet contient des informations supplémentaires sur " +"le paramètre correspondant. Ce doit être aussi un *n*-uplet, avec un, deux " +"ou trois éléments." #: library/ctypes.rst:1728 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" msgstr "" +"Le premier élément est un entier qui contient une combinaison de drapeaux " +"qui précisent le sens des paramètres (entrée ou sortie) :" #: library/ctypes.rst:1732 msgid "1" @@ -2339,7 +2391,7 @@ msgstr "1" #: library/ctypes.rst:1732 msgid "Specifies an input parameter to the function." -msgstr "" +msgstr "Paramètre d'entrée." #: library/ctypes.rst:1735 msgid "2" @@ -2347,7 +2399,7 @@ msgstr "2" #: library/ctypes.rst:1735 msgid "Output parameter. The foreign function fills in a value." -msgstr "" +msgstr "Paramètre de sortie. La fonction externe va modifier cette valeur." #: library/ctypes.rst:1738 msgid "4" @@ -2355,17 +2407,21 @@ msgstr "4" #: library/ctypes.rst:1738 msgid "Input parameter which defaults to the integer zero." -msgstr "" +msgstr "Paramètre d'entrée, valant 0 par défaut." #: library/ctypes.rst:1740 msgid "" "The optional second item is the parameter name as string. If this is " "specified, the foreign function can be called with named parameters." msgstr "" +"Le deuxième élément (optionnel) est une chaîne de caractères représentant le " +"nom du paramètre. Si cet élément est donné, la fonction externe pourra être " +"appelée avec des paramètres nommés." #: library/ctypes.rst:1743 msgid "The optional third item is the default value for this parameter." msgstr "" +"Le troisième élément (optionnel) est la valeur par défaut du paramètre." #: library/ctypes.rst:1745 msgid "" @@ -2373,14 +2429,20 @@ msgid "" "so that it supports default parameters and named arguments. The C " "declaration from the windows header file is this::" msgstr "" +"L'exemple suivant montre comment encapsuler la fonction Windows " +"``MessageBoxW`` afin que celle-ci prenne en charge des paramètres par défaut " +"et des arguments nommés. Sa déclaration C dans le fichier d'en-tête des " +"fenêtres est ::" #: library/ctypes.rst:1779 msgid "Here is the wrapping with :mod:`ctypes`::" -msgstr "" +msgstr "L'encapsulation :mod:`ctypes` correspondante est alors ::" #: library/ctypes.rst:1764 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "" +"La fonction ``MessageBox`` peut désormais être appelée des manières " +"suivantes ::" #: library/ctypes.rst:1770 msgid "" @@ -2389,6 +2451,9 @@ msgid "" "copying them into ``RECT`` structure that the caller has to supply. Here is " "the C declaration::" msgstr "" +"L'exemple qui suit traite des paramètres en sortie. La fonction win32 " +"``GetWindowRect`` donne les dimensions d'une fenêtre en les copiant dans une " +"structure ``RECT`` que l'appelant doit fournir. Sa déclaration en C est ::" #: library/ctypes.rst:1788 msgid "" @@ -2397,6 +2462,11 @@ msgid "" "parameter values when there are more than one, so the GetWindowRect function " "now returns a RECT instance, when called." msgstr "" +"Les fonctions avec des paramètres en sortie renvoient automatiquement la " +"valeur du paramètre de sortie s'il n'y en a qu'un seul, ou un *n*-uplet avec " +"les valeurs de sortie de chaque paramètre s'il y en a plusieurs. Ici, la " +"fonction *GetWindowRect* renvoie donc une instance de *RECT* quand elle est " +"appelée." #: library/ctypes.rst:1793 msgid "" @@ -2406,6 +2476,11 @@ msgid "" "function could do the error checking, and raises an exception when the api " "call failed::" msgstr "" +"Il est possible de combiner des paramètres en sortie avec le protocole :attr:" +"`errcheck` pour post-traiter les sorties et faire de la vérification " +"d'erreur. La fonction de l'API win32 ``GetWindowRect`` renvoie un ``BOOL`` " +"pour indiquer le succès ou l'échec de l'exécution, donc cette fonction peut " +"vérifier le résultat et lever une exception quand l'appel à l'API a échoué ::" #: library/ctypes.rst:1806 msgid "" @@ -2415,6 +2490,12 @@ msgid "" "instead of a ``RECT`` instance, you can retrieve the fields in the function " "and return them instead, the normal processing will no longer take place::" msgstr "" +"Si la fonction :attr:`errcheck` renvoie le *n*-uplet passé en paramètre sans " +"rien y changer, :mod:`ctypes` continue l'exécution habituelle des paramètres " +"en sortie. Si on préfère renvoyer un *n*-uplet de coordonnées au lieu de " +"renvoyer une instance de ``RECT``, il faut récupérer les champs " +"correspondants et les renvoyer en retour. Dans ce cas, l'exécution " +"habituelle n'a plus lieu ::" #: library/ctypes.rst:1825 msgid "Utility functions" diff --git a/library/dataclasses.po b/library/dataclasses.po index 5c5fe855..84d9d844 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -239,7 +239,6 @@ msgstr "" "de :meth:`__hash__`." #: library/dataclasses.rst:139 -#, fuzzy msgid "" "If :meth:`__hash__` is not explicitly defined, or if it is set to ``None``, " "then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " @@ -250,11 +249,12 @@ msgid "" msgstr "" "Si :meth:`__hash__` n’est pas défini explicitement, ou s’il a pour valeur " "``None``, alors :func:`dataclass` *peut* ajouter une méthode :meth:" -"`__hash__` implicite. Bien que ce ne soit pas recommandé,, vous pouvez " +"`__hash__` implicite. Bien que ce ne soit pas recommandé, vous pouvez " "forcer :func:`dataclass` à créer une méthode :meth:`__hash__` en utilisant " "``unsafe_hash=True``. Cela pourrait être nécessaire si votre classe est " -"logiquement immuable mais qu’une mutation est tout de même possible. C’est " -"un cas très particulier qui doit être considéré avec la plus grande prudence." +"logiquement immuable mais qu’une mutation est tout de même possible. Il " +"s'agit là d'un cas particulier qui doit être considéré avec la plus grande " +"prudence." #: library/dataclasses.rst:146 msgid "" @@ -288,14 +288,13 @@ msgstr "" "basé sur les id)." #: library/dataclasses.rst:159 -#, fuzzy msgid "" "``frozen``: If true (the default is ``False``), assigning to fields will " "generate an exception. This emulates read-only frozen instances. If :meth:" "`__setattr__` or :meth:`__delattr__` is defined in the class, then :exc:" "`TypeError` is raised. See the discussion below." msgstr "" -"``frozen``: Si vrai (faux par défaut), assigner une valeur à un champ lèvera " +"*frozen* : si vrai (faux par défaut), assigner une valeur à un champ lève " "une exception. Cela simule le comportement des instances figées en lecture " "seule. Si la méthode :meth:`__setattr__` ou :meth:`__delattr__` est définie " "sur la classe, alors une :exc:`TypeError` est levée. Voir la discussion ci-" @@ -336,6 +335,11 @@ msgid "" "replace the default field value with a call to the provided :func:`field` " "function. For example::" msgstr "" +"Dans les cas les plus simples et courants, ce qui a été décrit jusqu'ici " +"suffit. Cependant, les classes de données possèdent des fonctionnalités " +"supplémentaires fondées sur des métadonnées propres à chaque champ. Pour " +"remplir ces métadonnées, il suffit de mettre un appel à la fonction :func:" +"`field` à la place de la valeur par défaut, comme dans cet exemple :" #: library/dataclasses.rst:196 msgid "" @@ -347,7 +351,7 @@ msgstr "" #: library/dataclasses.rst:202 msgid "The parameters to :func:`field` are:" -msgstr "" +msgstr "Les paramètres de :func:`field` sont :" #: library/dataclasses.rst:204 msgid "" @@ -355,6 +359,9 @@ msgid "" "This is needed because the :meth:`field` call itself replaces the normal " "position of the default value." msgstr "" +"*default* : s'il est fourni, il devient la valeur par défaut du champ. " +"L'appel à :meth:`field` est mis à la place normale de la valeur par défaut, " +"d'où la nécessité de ce paramètre." #: library/dataclasses.rst:208 msgid "" @@ -364,24 +371,36 @@ msgid "" "discussed below. It is an error to specify both ``default`` and " "``default_factory``." msgstr "" +"*default_factory* : s'il est fourni, ce doit être un objet appelable sans " +"argument. Il est alors appelé à chaque fois qu'il faut une valeur par défaut " +"pour le champ. Ceci permet, entre autres choses, de définir des champs dont " +"les valeurs par défaut sont muables. Une erreur se produit si *default* et " +"*default_factory* sont donnés tous les deux." #: library/dataclasses.rst:214 msgid "" "``init``: If true (the default), this field is included as a parameter to " "the generated :meth:`__init__` method." msgstr "" +"*init* : si vrai (par défaut), la méthode :meth:`__init__` générée possède " +"un paramètre correspondant à ce champ." #: library/dataclasses.rst:217 msgid "" "``repr``: If true (the default), this field is included in the string " "returned by the generated :meth:`__repr__` method." msgstr "" +"*repr* : si vrai (par défaut), le champ est inclus dans les chaînes " +"construites par la méthode :meth:`__repr__` générée." #: library/dataclasses.rst:220 msgid "" "``compare``: If true (the default), this field is included in the generated " "equality and comparison methods (:meth:`__eq__`, :meth:`__gt__`, et al.)." msgstr "" +"*compare* : si vrai (par défaut), le champ est considéré dans les " +"comparaisons d'égalité et d'inégalité dans les méthodes générées :meth:" +"`__eq__`, :meth:`__gt__`, etc." #: library/dataclasses.rst:224 msgid "" @@ -391,6 +410,12 @@ msgid "" "field should be considered in the hash if it's used for comparisons. " "Setting this value to anything other than ``None`` is discouraged." msgstr "" +"*hash* : ce paramètre est un booléen ou ``None``. La valeur ``False`` force " +"la prise en compte du champ dans la méthode :meth:`__hash__` générée, alors " +"que ``False`` force son exclusion. ``None`` revient à mettre la même valeur " +"que *compare*, ce qui est en général correct : il faut inclure dans le " +"hachage les champs employés pour les comparaisons. Il est déconseillé de " +"mettre ce paramètre à autre chose que ``None``." #: library/dataclasses.rst:231 msgid "" @@ -400,6 +425,12 @@ msgid "" "hash value. Even if a field is excluded from the hash, it will still be " "used for comparisons." msgstr "" +"Cependant, une raison légitime de mettre *hash* à ``False`` alors que " +"*compare* est à ``True`` est la concourance de trois facteurs : le champ est " +"coûteux à hacher ; il est nécessaire pour les comparaisons d'égalité ; et il " +"y a déjà d'autres champs qui participent au hachage des instances. À ce " +"moment, on peut alors se passer du champ dans le hachage tout en le faisant " +"participer aux comparaisons." #: library/dataclasses.rst:237 msgid "" @@ -410,6 +441,10 @@ msgid "" "Multiple third-parties can each have their own key, to use as a namespace in " "the metadata." msgstr "" +"*metadata* : ce paramètre est un tableau associatif (*mapping* en anglais). " +"La valeur par défaut de ``None`` est prise comme un dictionnaire vide. Le " +"tableau associatif devient accessible sur l'objet :class:`Field`, sous la " +"forme d'un :func:`~types.MappingProxyType` afin qu'il soit en lecture seule." #: library/dataclasses.rst:245 msgid "" @@ -421,12 +456,22 @@ msgid "" "fields, just as if the default value itself were specified. For example, " "after::" msgstr "" +"Si la valeur par défaut d'un champ est donnée dans un appel à :func:`field` " +"(et pas directement), l'attribut correspondant de la classe est remplacé par " +"cette valeur. Si le paramètre *default* n'est pas passé, l'attribut est " +"simplement supprimé. De cette manière, après le passage du décorateur :func:" +"`dataclass`, les attributs de la classe contiennent les valeurs par défaut " +"des champs exactement comme si elles avaient été définies directement. Par " +"exemple :" #: library/dataclasses.rst:261 msgid "" "The class attribute ``C.z`` will be ``10``, the class attribute ``C.t`` will " "be ``20``, and the class attributes ``C.x`` and ``C.y`` will not be set." msgstr "" +"Après l'exécution de ce code, l'attribut de classe ``C.z`` vaut ``10`` et " +"l'attribut ``C.t`` vaut ``20``, alors que les attributs ``C.x`` et ``C.y`` " +"n'existent pas." #: library/dataclasses.rst:267 msgid "" @@ -435,14 +480,19 @@ msgid "" "method (see below). Users should never instantiate a :class:`Field` object " "directly. Its documented attributes are:" msgstr "" +"Les objets :class:`Field` contiennent des informations sur les champs. Ils " +"sont créés en interne, et on y accède à l'aide de la méthode au niveau du " +"module :func:`fields` (voir plus bas). Les utilisateurs ne doivent jamais " +"instancier un objet :class:`Field` eux-mêmes. Les attributs documentés sont " +"les suivants :" #: library/dataclasses.rst:272 msgid "``name``: The name of the field." -msgstr "" +msgstr "*name* : le nom du champ ;" #: library/dataclasses.rst:274 msgid "``type``: The type of the field." -msgstr "" +msgstr "*type* : le type associé au champ par l'annotation ;" #: library/dataclasses.rst:276 msgid "" @@ -456,6 +506,8 @@ msgid "" "Other attributes may exist, but they are private and must not be inspected " "or relied on." msgstr "" +"D'autres attributs peuvent exister, mais ils sont privés et ne sont pas " +"censés être inspectés. Le code ne doit jamais reposer sur eux." #: library/dataclasses.rst:285 msgid "" @@ -464,6 +516,11 @@ msgid "" "Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " "not return pseudo-fields which are ``ClassVar`` or ``InitVar``." msgstr "" +"Renvoie un *n*-uplet d'objets :class:`Field` correspondant aux champs de " +"l'argument, à l'exclusion des pseudo-champs ``ClassVar`` ou ``InitVar``. " +"L'argument peut être soit une classe de données, soit une instance d'une " +"telle classe ; si ce n'est pas le cas, une exception :exc:`TypeError` est " +"levée." #: library/dataclasses.rst:292 msgid "" @@ -486,7 +543,7 @@ msgstr "" #: library/dataclasses.rst:321 msgid "Continuing from the previous example::" -msgstr "" +msgstr "Pour continuer l'exemple précédent :" #: library/dataclasses.rst:330 msgid "" @@ -507,10 +564,14 @@ msgid "" "`dataclass` function to convert that class to a dataclass. This function is " "provided as a convenience. For example::" msgstr "" +"Cette fonction est pratique mais pas absolument nécessaire, puisqu'il suffit " +"de créer par un moyen quelconque une classe avec l'attribut " +"``__annotation__`` et de lui appliquer la fonction :func:`dataclass`, qui la " +"convertit en une classe de données. Par exemple, ceci :" #: library/dataclasses.rst:351 msgid "Is equivalent to::" -msgstr "" +msgstr "est équivalent à ::" #: library/dataclasses.rst:364 msgid "" @@ -526,6 +587,9 @@ msgid "" "of the dataclass. This ensures that :meth:`__post_init__`, if present, is " "also called." msgstr "" +"L'objet renvoyé est créé à l'aide de la méthode :meth:`__init__` de la " +"classe de données, ce qui garantit que :meth:`__post_init__` est appelée (si " +"elle existe)." #: library/dataclasses.rst:373 msgid "" @@ -533,12 +597,17 @@ msgid "" "on the call to :func:`replace` so that they can be passed to :meth:" "`__init__` and :meth:`__post_init__`." msgstr "" +"Si un champ d'initialisation (voir plus bas) n'a pas de valeur par défaut, " +"il faut l'inclure dans l'appel à :func:`replace` afin qu'il soit passé à :" +"meth:`__init__` et :meth:`__post_init__`." #: library/dataclasses.rst:377 msgid "" "It is an error for ``changes`` to contain any fields that are defined as " "having ``init=False``. A :exc:`ValueError` will be raised in this case." msgstr "" +"Si une clé de *changes* correspond à un champ défini avec ``init=False``, :" +"exc:`ValueError` est levée." #: library/dataclasses.rst:381 msgid "" @@ -550,12 +619,21 @@ msgid "" "perhaps a custom ``replace()`` (or similarly named) method which handles " "instance copying." msgstr "" +"Prenez garde aux champs définis avec ``init=False`` dans un appel à :func:" +"`replace`. Ils ne sont pas copiés automatiquement de l'instance source. " +"C'est le rôle de :meth:`__post_init__` de les initialiser — ou pas. Les " +"champs avec ``init=False`` doivent rarement être utilisés et seulement à bon " +"escient. Si vous en avez, il peut être sage de traiter la copie des " +"instances par des constructeurs de classe alternatifs, ou bien une méthode " +"personnalisée ``replace()`` (ou un nom similaire)." #: library/dataclasses.rst:392 msgid "" "Return ``True`` if its parameter is a dataclass or an instance of one, " "otherwise return ``False``." msgstr "" +"Renvoie ``True`` si l'argument est soit une classe de données, soit une " +"instance d'une telle classe. Sinon, renvoie ``False``." #: library/dataclasses.rst:395 msgid "" @@ -563,10 +641,13 @@ msgid "" "dataclass itself), then add a further check for ``not isinstance(obj, " "type)``::" msgstr "" +"Pour vérifier qu'un objet *obj* est une instance d'une classe de données, et " +"non pas lui-même une classe de données, ajoutez le test ``not " +"isinstance(obj, type)`` ::" #: library/dataclasses.rst:403 msgid "Post-init processing" -msgstr "" +msgstr "Post-initialisation" #: library/dataclasses.rst:405 msgid "" @@ -577,12 +658,21 @@ msgid "" "order they were defined in the class. If no :meth:`__init__` method is " "generated, then :meth:`__post_init__` will not automatically be called." msgstr "" +"Après avoir initialisé l'objet, la méthode :meth:`__init__` générée appelle " +"la méthode :meth:`__post_init__`, si elle est définie. :meth:`__post_init__` " +"est habituellement appelée avec un simple ``self.__post_init__()``. " +"Cependant, si la classe comporte des champs d'initialisation (voir plus " +"bas), leurs valeurs sont aussi passées à :meth:`__post_init__` telles " +"qu'elles ont été fournies à :meth:`__init__`. Si la classe est créée avec " +"``init=False``, :meth:`__post_init__` n'est jamais appelée automatiquement." #: library/dataclasses.rst:413 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" msgstr "" +"Cette méthode permet, entre autres, d'initialiser des champs qui dépendent " +"d'autres champs. Par exemple :" #: library/dataclasses.rst:425 msgid "" @@ -590,10 +680,14 @@ msgid "" "meth:`__post_init__`. Also see the warning about how :func:`replace` " "handles ``init=False`` fields." msgstr "" +"Voir la section plus bas à propos des variables d'initialisation pour les " +"moyens de passer des paramètres à :meth:`__post_init__`. Voir également " +"l'avertissement sur le traitement par :func:`replace` des champs définis " +"avec ``init=False``." #: library/dataclasses.rst:430 msgid "Class variables" -msgstr "" +msgstr "Variables de classe" #: library/dataclasses.rst:432 msgid "" @@ -607,7 +701,7 @@ msgstr "" #: library/dataclasses.rst:441 msgid "Init-only variables" -msgstr "" +msgstr "Variables d'initialisation" #: library/dataclasses.rst:443 msgid "" @@ -626,16 +720,20 @@ msgid "" "For example, suppose a field will be initialized from a database, if a value " "is not provided when creating the class::" msgstr "" +"On peut par exemple imaginer un champ initialisé à partir d'une base de " +"données s'il n'a pas reçu de valeur explicite :" #: library/dataclasses.rst:468 msgid "" "In this case, :func:`fields` will return :class:`Field` objects for ``i`` " "and ``j``, but not for ``database``." msgstr "" +"Ici, :func:`fields` renvoie des objets :class:`Field` correspondant à ``i`` " +"et à ``j``, mais pas à ``database``." #: library/dataclasses.rst:472 msgid "Frozen instances" -msgstr "" +msgstr "Instances figées" #: library/dataclasses.rst:474 msgid "" @@ -645,6 +743,11 @@ msgid "" "meth:`__delattr__` methods to the class. These methods will raise a :exc:" "`FrozenInstanceError` when invoked." msgstr "" +"Bien qu'il ne soit pas possible de créer des objets Python strictement " +"immuables, on peut rendre les instances d'une classe de données quasi " +"immuables en passant ``frozen=True`` au décorateur :meth:`dataclass`, ce qui " +"lui fait générer des méthodes :meth:`__setattr__` et :meth:`__delattr__`. " +"Celles-ci lèvent systématiquement l'exception :exc:`FrozenInstanceError`." #: library/dataclasses.rst:480 msgid "" @@ -652,6 +755,9 @@ msgid "" "`__init__` cannot use simple assignment to initialize fields, and must use :" "meth:`object.__setattr__`." msgstr "" +"Les performances sont légèrement moins bonnes avec ``frozen=True`` car :meth:" +"`__init__` doit passer par :meth:`object.__setattr__` au lieu de simples " +"affectations pour initialiser les champs." #: library/dataclasses.rst:485 msgid "Inheritance" @@ -668,20 +774,30 @@ msgid "" "ordered mapping of fields. Because the fields are in insertion order, " "derived classes override base classes. An example::" msgstr "" +"Au moment de la création d'une classe de données, le décorateur :meth:" +"`dataclass` parcourt toutes les classes mères dans l'ordre inverse de " +"résolution des méthodes (donc en commençant par :class:`object`). À chaque " +"fois qu'une classe de données est rencontrée, ses champs sont insérés dans " +"un tableau associatif ordonné. Pour finir, les champs de la classe elle-même " +"sont rajoutés. Toutes les méthodes générées utilisent en interne ce même " +"tableau associatif. Puisqu'il est ordonné, les champs des classes filles " +"écrasent ceux des classes mères. Voici un exemple :" #: library/dataclasses.rst:507 msgid "" "The final list of fields is, in order, ``x``, ``y``, ``z``. The final type " "of ``x`` is ``int``, as specified in class ``C``." msgstr "" +"La liste finale des champs contient, dans l'ordre, ``x``, ``y``, ``z``. Le " +"type de ``x`` est ``int``, comme déclaré dans ``C``." #: library/dataclasses.rst:510 msgid "The generated :meth:`__init__` method for ``C`` will look like::" -msgstr "" +msgstr "La méthode :meth:`__init__` générée pour ``C`` ressemble à :" #: library/dataclasses.rst:515 msgid "Default factory functions" -msgstr "" +msgstr "Fabriques de valeurs par défaut" #: library/dataclasses.rst:517 msgid "" @@ -689,6 +805,9 @@ msgid "" "arguments when a default value for the field is needed. For example, to " "create a new instance of a list, use::" msgstr "" +"Le paramètre facultatif *default_factory* de :func:`field` est une fonction " +"qui est appelée sans argument pour fournir des valeurs par défaut. Par " +"exemple, voici comment donner la valeur par défaut d'une liste vide :" #: library/dataclasses.rst:523 msgid "" @@ -697,30 +816,38 @@ msgid "" "will always be called from the generated :meth:`__init__` function. This " "happens because there is no other way to give the field an initial value." msgstr "" +"Si un champ avec fabrique est exclu de :meth:`__init__` (par " +"``init=False``), alors la fabrique est appelée par :meth:`__init__` pour " +"chaque nouvelle instance, puisque c'est le seul moyen d'obtenir une valeur à " +"laquelle initialiser le champ." #: library/dataclasses.rst:530 msgid "Mutable default values" -msgstr "" +msgstr "Valeurs par défaut muables" #: library/dataclasses.rst:532 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" msgstr "" +"En Python, les valeurs par défaut des attributs sont stockées dans des " +"attributs de la classe. Observez cet exemple, sans classe de données :" #: library/dataclasses.rst:547 msgid "" "Note that the two instances of class ``C`` share the same class variable " "``x``, as expected." msgstr "" +"Comme attendu, les deux instances de ``C`` partagent le même objet pour " +"l'attribut ``x``." #: library/dataclasses.rst:550 msgid "Using dataclasses, *if* this code was valid::" -msgstr "" +msgstr "Avec les classes de données, si ce code était valide :" #: library/dataclasses.rst:558 msgid "it would generate code similar to::" -msgstr "" +msgstr "il générerait un code équivalent à :" #: library/dataclasses.rst:569 msgid "" @@ -739,6 +866,8 @@ msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" +"Pour qu'un champ d'un type muable soit par défaut initialisé à un nouvel " +"objet pour chaque instance, utilisez une fonction de fabrique :" #: library/dataclasses.rst:589 msgid "Exceptions" @@ -750,3 +879,6 @@ msgid "" "is called on a dataclass which was defined with ``frozen=True``. It is a " "subclass of :exc:`AttributeError`." msgstr "" +"Sous-classe de :exc:`AttributeError`, levée lorsqu'une méthode :meth:" +"`__setattr__` ou :meth:`__delattr__` définie implicitement est appelée dans " +"une classe de données définie avec ``frozen=True``." diff --git a/library/datetime.po b/library/datetime.po index 64245cd3..6ad3e81b 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -25,23 +25,21 @@ msgid "**Source code:** :source:`Lib/datetime.py`" msgstr "**Code source :** :source:`Lib/datetime.py`" #: library/datetime.rst:17 -#, fuzzy msgid "" "The :mod:`datetime` module supplies classes for manipulating dates and times." -msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" +msgstr "" +"Le module :mod:`datetime` fournit des classes permettant de manipuler les " +"dates et les heures." #: library/datetime.rst:19 -#, fuzzy msgid "" "While date and time arithmetic is supported, the focus of the implementation " "is on efficient attribute extraction for output formatting and manipulation." msgstr "" -"Le module :mod:`datetime` fournit des classes pour manipuler de façon simple " -"ou plus complexe des dates et des heures. Bien que les calculs de date et " -"d'heure sont gérés, l'implémentation est essentiellement tournée vers " -"l'efficacité pour extraire des attributs pour les manipuler et les formater " -"pour l'affichage. Pour d'autres fonctionnalités associées, voir aussi les " -"modules :mod:`time` et :mod:`calendar`." +"Bien que les calculs de date et d'heure sont gérés, l'attention lors de " +"l'implémentation s'est essentiellement portée sur l'efficacité de " +"l'extraction des attributs en vue de leur manipulation et formatage pour " +"l'affichage." #: library/datetime.rst:25 msgid "Module :mod:`calendar`" @@ -60,9 +58,8 @@ msgid "Time access and conversions." msgstr "Accès aux données d'horaires et aux conversions associées." #: library/datetime.rst:30 -#, fuzzy msgid "Package `dateutil `_" -msgstr "`dateutil.tz `_" +msgstr "Paquet `dateutil `_" #: library/datetime.rst:31 msgid "Third-party library with expanded time zone and parsing support." @@ -71,21 +68,19 @@ msgstr "" "l'analyse de dates sous forme textuelle." #: library/datetime.rst:36 -#, fuzzy msgid "Aware and Naive Objects" -msgstr "Pour un objet avisé :" +msgstr "Objets avisés et naïfs" #: library/datetime.rst:38 -#, fuzzy msgid "" "Date and time objects may be categorized as \"aware\" or \"naive\" depending " "on whether or not they include timezone information." msgstr "" "Les objets *date* et *time* peuvent être classés comme « avisés » ou " -"« naïfs »." +"« naïfs » selon qu'ils contiennent ou non des informations sur le fuseau " +"horaire." #: library/datetime.rst:41 -#, fuzzy msgid "" "With sufficient knowledge of applicable algorithmic and political time " "adjustments, such as time zone and daylight saving time information, an " @@ -93,14 +88,13 @@ msgid "" "object represents a specific moment in time that is not open to " "interpretation. [#]_" msgstr "" -"Un objet avisé possède suffisamment de connaissance des règles à appliquer " -"et des politiques d'ajustement de l'heure comme les informations sur les " -"fuseaux horaires et l'heure d'été pour se situer de façon relative par " -"rapport à d'autres objets avisés. Un objet avisé est utilisé pour représenté " -"un moment précis de l'histoire qui n'est pas ouvert à l'interprétation [#]_." +"Un objet **avisé** possède suffisamment de connaissance des règles à " +"appliquer et des politiques d'ajustement de l'heure comme les informations " +"sur les fuseaux horaires et l'heure d'été pour se situer de façon relative " +"par rapport à d'autres objets avisés. Un objet avisé est utilisé pour " +"représenter un instant précis qui n'est pas ouvert à l'interprétation [#]_." #: library/datetime.rst:47 -#, fuzzy msgid "" "A **naive** object does not contain enough information to unambiguously " "locate itself relative to other date/time objects. Whether a naive object " @@ -110,7 +104,7 @@ msgid "" "objects are easy to understand and to work with, at the cost of ignoring " "some aspects of reality." msgstr "" -"Un objet naïf ne comporte pas assez d'informations pour se situer sans " +"Un objet **naïf** ne comporte pas assez d'informations pour se situer sans " "ambiguïté par rapport à d'autres objets *date/time*. Le fait qu'un objet " "naïf représente un Temps universel coordonné (UTC), une heure locale ou une " "heure dans un autre fuseau horaire dépend complètement du programme, tout " @@ -135,7 +129,6 @@ msgstr "" "horaire, et si l'heure d'été est en vigueur." #: library/datetime.rst:60 -#, fuzzy msgid "" "Only one concrete :class:`tzinfo` class, the :class:`timezone` class, is " "supplied by the :mod:`datetime` module. The :class:`timezone` class can " @@ -145,20 +138,14 @@ msgid "" "across the world are more political than rational, change frequently, and " "there is no standard suitable for every application aside from UTC." msgstr "" -"Pour les applications qui nécessitent des objets avisés, les objets :class:`." -"datetime` et :class:`.time` ont un attribut optionnel d'information sur le " -"fuseau horaire, :attr:`!tzinfo`, qui peut être réglé sur une instance d'une " -"sous-classe de la classe abstraite :class:`tzinfo`. Ces objets :class:" -"`tzinfo` regroupent l'information à propos du décalage avec le temps UTC, le " -"nom du fuseau horaire, et si l'heure d'été est effective. Notez qu'une " -"seule classe concrète :class:`tzinfo`, la classe :class:`timezone`, est " -"proposée par le module :mod:`datetime`. La classe :class:`timezone` " -"représente des fuseaux horaires simples avec un décalage fixe par rapport à " -"UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du Nord. Gérer " -"des fuseaux horaires d'un niveau de détails plus avancé est à la charge de " -"l'application. Les règles d'ajustement du temps à travers le monde sont " -"plus politiques que rationnelles, changent fréquemment, et il n'y a pas de " -"standard qui vaille pour toute application, en dehors d'UTC." +"Notez qu'une seule classe concrète :class:`tzinfo`, la classe :class:" +"`timezone`, est proposée par le module :mod:`datetime`. La classe :class:" +"`timezone` représente des fuseaux horaires simples avec un décalage fixe par " +"rapport à UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du " +"Nord. Gérer des fuseaux horaires d'un niveau de détails plus avancé est à la " +"charge de l'application. Les règles d'ajustement du temps à travers le monde " +"sont plus politiques que rationnelles, changent fréquemment, et il n'y a pas " +"de standard qui vaille pour toute application, en dehors d'UTC." #: library/datetime.rst:69 msgid "Constants" @@ -199,7 +186,6 @@ msgstr "" "`month` et :attr:`day`." #: library/datetime.rst:98 -#, fuzzy msgid "" "An idealized time, independent of any particular day, assuming that every " "day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap " @@ -208,7 +194,7 @@ msgid "" msgstr "" "Un temps idéalisé, indépendant d'une date particulière, en supposant qu'une " "journée est composée d'exactement 24\\*60\\*60 secondes (il n'y a pas ici de " -"notion de \"seconde bissextile\"). Attributs : :attr:`hour`, :attr:" +"notion de « seconde intercalaire »). Attributs : :attr:`hour`, :attr:" "`minute`, :attr:`second`, :attr:`microsecond` et :attr:`tzinfo`." #: library/datetime.rst:107 @@ -296,10 +282,11 @@ msgid "Objects of the :class:`date` type are always naive." msgstr "Les objets de type :class:`date` sont toujours naïfs." #: library/datetime.rst:163 -#, fuzzy msgid "" "An object of type :class:`.time` or :class:`.datetime` may be aware or naive." -msgstr "Les objets de type :class:`date` sont toujours naïfs." +msgstr "" +"Un objet du type :class:`.time` ou :class:`.datetime` peut être avisé ou " +"naïf." #: library/datetime.rst:165 msgid "A :class:`.datetime` object *d* is aware if both of the following hold:" @@ -338,12 +325,11 @@ msgid "Otherwise, *t* is naive." msgstr "Autrement, *t* est naïf." #: library/datetime.rst:179 -#, fuzzy msgid "" "The distinction between aware and naive doesn't apply to :class:`timedelta` " "objects." msgstr "" -"La distinction entre naïf et avisé ne s'applique pas aux objets de type :" +"La distinction entre avisé et naïf ne s'applique pas aux objets de type :" "class:`timedelta`." #: library/datetime.rst:185 @@ -369,13 +355,12 @@ msgstr "" "positifs ou négatifs." #: library/datetime.rst:195 -#, fuzzy msgid "" "Only *days*, *seconds* and *microseconds* are stored internally. Arguments " "are converted to those units:" msgstr "" "Seuls les *jours*, les *secondes* et les *microsecondes* sont stockés en " -"interne. Tous les paramètres sont convertis dans ces unités :" +"interne. Tous les paramètres sont convertis dans ces unités :" #: library/datetime.rst:198 msgid "A millisecond is converted to 1000 microseconds." @@ -424,7 +409,6 @@ msgstr "" "attributs résultants ::" #: library/datetime.rst:228 -#, fuzzy msgid "" "If any argument is a float and there are fractional microseconds, the " "fractional microseconds left over from all arguments are combined and their " @@ -434,8 +418,8 @@ msgid "" msgstr "" "Si l'un des arguments est un flottant et qu'il y a des microsecondes " "décimales, les microsecondes décimales laissées par les arguments sont " -"combinées et leur somme est arrondie à la microseconde la plus proche (en " -"arrondissant les demis vers le nombre pair). Si aucun argument n'est " +"combinées et leur somme est arrondie à la microseconde la plus proche (en " +"arrondissant les demis vers le nombre pair). Si aucun argument n'est " "flottant, les processus de conversion et de normalisation seront exacts (pas " "d'informations perdues)." @@ -728,15 +712,14 @@ msgstr "" "*-timedelta.max* n'est pas représentable avec un objet :class:`timedelta`." #: library/datetime.rst:361 -#, fuzzy msgid "" "String representations of :class:`timedelta` objects are normalized " "similarly to their internal representation. This leads to somewhat unusual " "results for negative timedeltas. For example::" msgstr "" "La représentation en chaîne de caractères des objets :class:`timedelta` est " -"normalisée similairement à leur représentation interne. Cela amène à des " -"résultats inhabituels pour des *timedeltas* négatifs. Par exemple ::" +"normalisée similairement à leur représentation interne. Cela amène à des " +"résultats inhabituels pour des *timedeltas* négatifs. Par exemple ::" #: library/datetime.rst:371 msgid "" @@ -760,7 +743,6 @@ msgstr "" "`date` et :class:`datetime` (voir ci-dessous)." #: library/datetime.rst:379 -#, fuzzy msgid "" "Floor division and true division of a :class:`timedelta` object by another :" "class:`timedelta` object are now supported, as are remainder operations and " @@ -769,15 +751,16 @@ msgid "" msgstr "" "La division entière et la vraie division d'un objet :class:`timedelta` par " "un autre :class:`timedelta` sont maintenant gérées, comme le sont les " -"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " +"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " "division et la multiplication d'un objet :class:`timedelta` par un :class:" "`float` sont maintenant implémentées." #: library/datetime.rst:386 -#, fuzzy msgid "" "Comparisons of :class:`timedelta` objects are supported, with some caveats." -msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" +msgstr "" +"Les comparaisons des objets :class:`timedelta` sont gérées, avec quelques " +"réserves." #: library/datetime.rst:388 msgid "" @@ -798,15 +781,12 @@ msgstr "" "`TypeError` est levée ::" #: library/datetime.rst:410 -#, fuzzy msgid "" "In Boolean contexts, a :class:`timedelta` object is considered to be true if " "and only if it isn't equal to ``timedelta(0)``." msgstr "" -"Les objets :class:`timedelta` sont :term:`hashable` (utilisables comme clés " -"de dictionnaires), implémentent le protocole *pickle* et, dans un contexte " -"booléen, un :class:`timedelta` est considéré vrai si et seulement si il " -"n'est pas égal à ``timedelta(0)``." +"Dans les contextes booléens, un objet :class:`timedelta` est considéré comme " +"vrai si et seulement s'il n'est pas égal à ``timedelta(0)``." #: library/datetime.rst:622 library/datetime.rst:1779 msgid "Instance methods:" @@ -833,18 +813,16 @@ msgstr "" "microsecondes." #: library/datetime.rst:427 -#, fuzzy msgid "Examples of usage: :class:`timedelta`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemples d'utilisation de la classe :class:`timedelta` :" #: library/datetime.rst:429 msgid "An additional example of normalization::" msgstr "Un exemple supplémentaire de normalisation ::" #: library/datetime.rst:441 -#, fuzzy msgid "Examples of :class:`timedelta` arithmetic::" -msgstr "Objets :class:`timedelta` ::" +msgstr "Exemples d'arithmétique avec la classe :class:`timedelta` ::" #: library/datetime.rst:460 msgid ":class:`date` Objects" @@ -869,13 +847,12 @@ msgstr "" "de l'année 1 est appelé jour numéro 2, et ainsi de suite. [#]_" #: library/datetime.rst:471 -#, fuzzy msgid "" "All arguments are required. Arguments must be integers, in the following " "ranges:" msgstr "" -"Tous les arguments sont requis. Les arguments peuvent être des entiers, " -"dans les intervalles suivant :" +"Tous les arguments sont requis. Les arguments peuvent être des entiers, dans " +"les intervalles suivants :" #: library/datetime.rst:474 msgid "``MINYEAR <= year <= MAXYEAR``" @@ -905,11 +882,8 @@ msgid "Return the current local date." msgstr "Renvoie la date locale courante." #: library/datetime.rst:487 -#, fuzzy msgid "This is equivalent to ``date.fromtimestamp(time.time())``." -msgstr "" -"Renvoie la date locale courante. Cela est équivalent à ``date." -"fromtimestamp(time.time())``." +msgstr "Cela est équivalent à ``date.fromtimestamp(time.time())``." #: library/datetime.rst:491 msgid "" @@ -920,7 +894,6 @@ msgstr "" "renvoyée par :func:`time.time`." #: library/datetime.rst:494 -#, fuzzy msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`localtime` function, and :exc:" @@ -929,14 +902,12 @@ msgid "" "that include leap seconds in their notion of a timestamp, leap seconds are " "ignored by :meth:`fromtimestamp`." msgstr "" -"Renvoie la date locale correspondant à l'horodatage (*timestamp* en anglais) " -"*POSIX*, tel que renvoyé par :func:`time.time`. Elle peut lever une :exc:" -"`OverflowError`, si l'horodatage est en dehors des bornes gérées par la " -"fonction C :c:func:`localtime` de la plateforme, et une :exc:`OSError` en " -"cas d'échec de :c:func:`localtime`. Il est commun d'être restreint aux " -"années entre 1970 et 2038. Notez que sur les systèmes non *POSIX* qui " -"incluent les secondes de décalage dans leur notion d'horodatage, ces " -"secondes sont ignorées par :meth:`fromtimestamp`." +"Elle peut lever une :exc:`OverflowError`, si l'horodatage est en dehors des " +"bornes gérées par la fonction C :c:func:`localtime` de la plateforme, et " +"une :exc:`OSError` en cas d'échec de :c:func:`localtime`. Il est commun " +"d'être restreint aux années entre 1970 et 2038. Notez que sur les systèmes " +"non *POSIX* qui incluent les secondes intercalaires dans leur notion " +"d'horodatage, ces secondes sont ignorées par :meth:`fromtimestamp`." #: library/datetime.rst:501 msgid "" @@ -951,26 +922,20 @@ msgstr "" "plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:`localtime`." #: library/datetime.rst:510 -#, fuzzy msgid "" "Return the date corresponding to the proleptic Gregorian ordinal, where " "January 1 of year 1 has ordinal 1." msgstr "" "Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " -"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." -"fromordinal(d.toordinal()) == d``." +"janvier de l'an 1 a l'ordinal 1." #: library/datetime.rst:513 -#, fuzzy msgid "" ":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " "For any date *d*, ``date.fromordinal(d.toordinal()) == d``." msgstr "" -"Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " -"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." -"fromordinal(d.toordinal()) == d``." +":exc:`ValueError` est levée à moins que ``1 <= ordinal <= date.max." +"toordinal()``. Pour toute date *d*, ``date.fromordinal(d.toordinal()) == d``." #: library/datetime.rst:520 #, fuzzy @@ -1067,7 +1032,6 @@ msgstr "" "*date2* dans le temps. (4)" #: library/datetime.rst:596 -#, fuzzy msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -1076,7 +1040,7 @@ msgid "" "`MINYEAR` or larger than :const:`MAXYEAR`." msgstr "" "*date2* est déplacée en avant dans le temps si ``timedelta.days > 0``, ou en " -"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." +"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." "days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés. " "Une :exc:`OverflowError` est levée si ``date2.year`` devait être inférieure " "à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." @@ -1086,17 +1050,15 @@ msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." msgstr "``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés." #: library/datetime.rst:606 -#, fuzzy msgid "" "This is exact, and cannot overflow. timedelta.seconds and timedelta." "microseconds are 0, and date2 + timedelta == date1 after." msgstr "" -"Cela est exact, et ne peut pas dépasser les bornes. ``timedelta.seconds`` " -"et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta == " -"date1`` après cela." +"Cela est exact, et ne peut pas provoquer de débordement. ``timedelta." +"seconds`` et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta " +"== date1`` après cela." #: library/datetime.rst:610 -#, fuzzy msgid "" "In other words, ``date1 < date2`` if and only if ``date1.toordinal() < date2." "toordinal()``. Date comparison raises :exc:`TypeError` if the other " @@ -1112,29 +1074,26 @@ msgstr "" "< date2.toordinal()``. La comparaison de dates lève une :exc:`TypeError` si " "l'autre opérande n'est pas un objet :class:`date`. Cependant, " "``NotImplemented`` est renvoyé à la place si l'autre opérande a un attribut :" -"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " +"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " "chance d'implémenter une comparaison entre types différents. Sinon, quand un " "objet :class:`date` est comparé à un objet d'un type différent, une :exc:" -"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " +"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " "derniers cas renvoient respectivement :const:`False` et :const:`True`." #: library/datetime.rst:620 -#, fuzzy msgid "" "In Boolean contexts, all :class:`date` objects are considered to be true." msgstr "" -"Dans un contexte booléen, un objet :class:`.time` est toujours considéré " +"Dans des contextes booléens, tous les objets :class:`date` sont considérés " "comme vrai." #: library/datetime.rst:626 -#, fuzzy msgid "" "Return a date with the same value, except for those parameters given new " "values by whichever keyword arguments are specified." msgstr "" "Renvoie une date avec la même valeur, excepté pour les valeurs spécifiées " -"par arguments nommés. Par exemple, si ``d == date(2002, 12, 31)``, alors " -"``d.replace(day=26) == date(2002, 12, 26)``." +"par arguments nommés." #: library/datetime.rst:1822 #, fuzzy @@ -1168,14 +1127,13 @@ msgstr "" "`er` janvier." #: library/datetime.rst:653 -#, fuzzy msgid "" "Return the proleptic Gregorian ordinal of the date, where January 1 of year " "1 has ordinal 1. For any :class:`date` object *d*, ``date.fromordinal(d." "toordinal()) == d``." msgstr "" "Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de " -"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." +"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." "fromordinal(d.toordinal()) == d``." #: library/datetime.rst:660 @@ -1212,7 +1170,6 @@ msgstr "" "grégorien. [#]_" #: library/datetime.rst:678 -#, fuzzy msgid "" "The ISO year consists of 52 or 53 full weeks, and where a week starts on a " "Monday and ends on a Sunday. The first week of an ISO year is the first " @@ -1221,30 +1178,26 @@ msgid "" "Gregorian year." msgstr "" "Une année ISO est composée de 52 ou 53 semaines pleines, où chaque semaine " -"débute un lundi et se termine un dimanche. La première semaine d'une année " +"débute un lundi et se termine un dimanche. La première semaine d'une année " "ISO est la première semaine calendaire (grégorienne) de l'année comportant " -"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce " -"mercredi est la même que son année grégorienne." +"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce jeudi " +"est la même que son année Grégorienne." #: library/datetime.rst:683 -#, fuzzy msgid "" "For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " "begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" msgstr "" "Par exemple, l'année 2004 débute un jeudi, donc la première semaine de " "l'année ISO 2004 débute le lundi 29 décembre 2003 et se termine le dimanche " -"4 janvier 2004, ainsi ``date(2003, 12, 29).isocalendar() == (2004, 1, 1)`` " -"et ``date(2004, 1, 4).isocalendar() == (2004, 1, 7)`` ::" +"4 janvier 2004 ::" #: library/datetime.rst:694 -#, fuzzy msgid "" "Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" msgstr "" "Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " -"'2002-12-04'`` ::" +"\"YYYY-MM-DD\" ::" #: library/datetime.rst:700 msgid "This is the inverse of :meth:`date.fromisoformat`." @@ -1263,17 +1216,13 @@ msgid "``d.ctime()`` is equivalent to::" msgstr "``d.ctime()`` est équivalent à ::" #: library/datetime.rst:719 -#, fuzzy msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`date.ctime` does not invoke) conforms to " "the C standard." msgstr "" -"Renvoie une chaîne de caractères représentant la date, par exemple " -"``date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'``. ``d.ctime()`` " -"est équivalent à ``time.ctime(time.mktime(d.timetuple()))`` sur les " -"plateformes où la fonction C native :c:func:`ctime` (que :func:`time.ctime` " -"invoque, mais pas :meth:`date.ctime`) est conforme au standard C." +"sur les plateformes où la fonction C native :c:func:`ctime` (que :func:`time." +"ctime` invoque, mais pas :meth:`date.ctime`) est conforme au standard C." #: library/datetime.rst:726 msgid "" @@ -1301,61 +1250,54 @@ msgstr "" "behavior`." #: library/datetime.rst:741 -#, fuzzy msgid "Examples of Usage: :class:`date`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemple d'utilisation de la classe :class:`date` :" #: library/datetime.rst:743 msgid "Example of counting days to an event::" msgstr "Exemple de décompte des jours avant un évènement ::" #: library/datetime.rst:761 -#, fuzzy msgid "More examples of working with :class:`date`:" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Plus d'exemples avec la classe :class:`date` :" #: library/datetime.rst:810 msgid ":class:`.datetime` Objects" msgstr "Objets :class:`.datetime`" #: library/datetime.rst:812 -#, fuzzy msgid "" "A :class:`.datetime` object is a single object containing all the " "information from a :class:`date` object and a :class:`.time` object." msgstr "" -"Les objets :class:`.datetime` peuvent être utilisés comme clés de " -"dictionnaires. Dans les contextes booléens, tous les objets :class:`." -"datetime` sont considérés vrais." +"Un objet :class:`.datetime` est un seul et même objet contenant toute " +"l'information d'un objet :class:`date` et d'un objet :class:`time`." #: library/datetime.rst:815 -#, fuzzy msgid "" "Like a :class:`date` object, :class:`.datetime` assumes the current " "Gregorian calendar extended in both directions; like a :class:`.time` " "object, :class:`.datetime` assumes there are exactly 3600\\*24 seconds in " "every day." msgstr "" -"Un objet :class:`.datetime` est un objet comportant toutes les informations " -"d'un objet :class:`date` et d'un objet :class:`.time`. Comme un objet :class:" -"`date`, un objet :class:`.datetime` utilise l'actuel calendrier Grégorien " -"étendu vers le passé et le futur ; comme un objet ``time``, un objet :class:" -"`.datetime` suppose qu'il y a exactement 3600\\*24 secondes chaque jour." +"Comme un objet :class:`date`, un objet :class:`.datetime` utilise le " +"calendrier Grégorien actuel étendu vers le passé et le futur ; comme un " +"objet :class:`.time`, un objet :class:`.datetime` suppose qu'il y a " +"exactement 3600\\*24 secondes chaque jour." #: library/datetime.rst:819 msgid "Constructor:" msgstr "Constructeur :" #: library/datetime.rst:823 -#, fuzzy msgid "" "The *year*, *month* and *day* arguments are required. *tzinfo* may be " "``None``, or an instance of a :class:`tzinfo` subclass. The remaining " "arguments must be integers in the following ranges:" msgstr "" -"Les arguments *year*, *month* et *day* sont requis. *tzinfo* peut être " -"``None``, ou une instance d'une sous-classe de :class:`tzinfo`. Les " -"arguments restant doivent être des nombres, dans les intervalles suivants :" +"Les arguments *year*, *month* et *day* sont requis. *tzinfo* peut être " +"``None`` ou une instance d'une sous-classe de :class:`tzinfo`. Les arguments " +"restant doivent être des nombres, dans les intervalles suivants :" #: library/datetime.rst:827 msgid "``MINYEAR <= year <= MAXYEAR``," @@ -1418,31 +1360,26 @@ msgid "Return the current local date and time." msgstr "Renvoie la date et l'heure locale actuelle." #: library/datetime.rst:860 -#, fuzzy msgid "" "If optional argument *tz* is ``None`` or not specified, this is like :meth:" "`today`, but, if possible, supplies more precision than can be gotten from " "going through a :func:`time.time` timestamp (for example, this may be " "possible on platforms supplying the C :c:func:`gettimeofday` function)." msgstr "" -"Renvoie la date et l'heure courantes locales. Si l'argument optionnel *tz* " -"est ``None`` ou n'est pas spécifié, la méthode est similaire à :meth:" -"`today`, mais, si possible, apporte plus de précisions que ce qui peut être " -"trouvé à travers un horodatage :func:`time.time` (par exemple, cela peut " -"être possible sur des plateformes fournissant la fonction C :c:func:" -"`gettimeofday`)." +"Si l'argument optionnel *tz* est ``None`` ou n'est pas spécifié, la méthode " +"est similaire à :meth:`today`, mais, si possible, apporte plus de précisions " +"que ce qui peut être trouvé à travers un horodatage :func:`time.time` (par " +"exemple, cela peut être possible sur des plateformes fournissant la fonction " +"C :c:func:`gettimeofday`)." #: library/datetime.rst:866 -#, fuzzy msgid "" "If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " "subclass, and the current date and time are converted to *tz*’s time zone." msgstr "" "Si *tz* n'est pas ``None``, il doit être une instance d'une sous-classe :" "class:`tzinfo`, et la date et l'heure courantes sont converties vers le " -"fuseau horaire *tz*. Dans ce cas le résultat est équivalent à ``tz." -"fromutc(datetime.utcnow().replace(tzinfo=tz))``. Voir aussi :meth:`today`, :" -"meth:`utcnow`." +"fuseau horaire *tz*." #: library/datetime.rst:869 msgid "This function is preferred over :meth:`today` and :meth:`utcnow`." @@ -1454,17 +1391,15 @@ msgstr "" "Renvoie la date et l'heure UTC actuelle, avec :attr:`.tzinfo` ``None``." #: library/datetime.rst:876 -#, fuzzy msgid "" "This is like :meth:`now`, but returns the current UTC date and time, as a " "naive :class:`.datetime` object. An aware current UTC datetime can be " "obtained by calling ``datetime.now(timezone.utc)``. See also :meth:`now`." msgstr "" -"Renvoie la date et l'heure UTC courantes, avec :attr:`.tzinfo` à ``None``. " "C'est semblable à :meth:`now`, mais renvoie la date et l'heure UTC " -"courantes, comme un objet :class:`.datetime` naïf. Un *datetime* UTC " -"courant avisé peut être obtenu en appelant ``datetime.now(timezone.utc)``. " -"Voir aussi :meth:`now`." +"courantes, comme un objet :class:`.datetime` naïf. Un *datetime* UTC courant " +"avisé peut être obtenu en appelant ``datetime.now(timezone.utc)``. Voir " +"aussi :meth:`now`." #: library/datetime.rst:882 msgid "" @@ -1493,18 +1428,15 @@ msgstr "" "datetime` renvoyé est naïf." #: library/datetime.rst:895 -#, fuzzy msgid "" "If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " "subclass, and the timestamp is converted to *tz*’s time zone." msgstr "" "Si *tz* n'est pas ``None``, il doit être une instance d'une sous-classe :" "class:`tzinfo`, et l'horodatage (*timestamp* en anglais) est converti vers " -"le fuseau horaire *tz*. Dans ce cas le résultat est équivalent à ``tz." -"fromutc(datetime.utcfromtimestamp(timestamp).replace(tzinfo=tz))``." +"le fuseau horaire *tz*." #: library/datetime.rst:898 -#, fuzzy msgid "" ":meth:`fromtimestamp` may raise :exc:`OverflowError`, if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -1524,8 +1456,8 @@ msgstr "" "*POSIX* qui incluent les secondes intercalaires dans leur notion " "d'horodatage, les secondes intercalaires sont ignorées par :meth:" "`fromtimestamp`, et il est alors possible d'avoir deux horodatages différant " -"d'une seconde produisant un objet :class:`.datetime` identique. Voir aussi :" -"meth:`utcfromtimestamp`." +"d'une seconde produisant un objet :class:`.datetime` identique. Cette " +"méthode est préférée à :meth:`utcfromtimestamp`." #: library/datetime.rst:909 msgid "" @@ -1555,19 +1487,16 @@ msgstr "" "avec :attr:`.tzinfo` ``None`` (l'objet résultant est naïf)." #: library/datetime.rst:924 -#, fuzzy msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`gmtime` function, and :exc:" "`OSError` on :c:func:`gmtime` failure. It's common for this to be restricted " "to years in 1970 through 2038." msgstr "" -"Renvoie le :class:`.datetime` UTC correspondant à l'horodatage (*timestamp* " -"en anglais) *POSIX*, avec :attr:`.tzinfo` à ``None``. Cela peut lever une :" -"exc:`OverflowError`, si l'horodatage est en dehors de l'intervalle de " -"valeurs gérées par la fonction C :c:func:`gmtime` de la plateforme, et une :" -"exc:`OSError` en cas d'échec de :c:func:`gmtime`. Il est courant d'être " -"restreint aux années de 1970 à 2038." +"Cela peut lever une :exc:`OverflowError`, si l'horodatage est en dehors de " +"l'intervalle de valeurs gérées par la fonction C :c:func:`gmtime` de la " +"plateforme, et une :exc:`OSError` en cas d'échec de :c:func:`gmtime`. Il est " +"courant d'être restreint aux années de 1970 à 2038." #: library/datetime.rst:929 msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" @@ -1618,7 +1547,6 @@ msgstr "" "exc:`ValueError` en cas d'échec de :c:func:`gmtime`." #: library/datetime.rst:958 -#, fuzzy msgid "" "Return the :class:`.datetime` corresponding to the proleptic Gregorian " "ordinal, where January 1 of year 1 has ordinal 1. :exc:`ValueError` is " @@ -1629,11 +1557,10 @@ msgstr "" "Renvoie le :class:`.datetime` correspondant à l'ordinal du calendrier " "grégorien proleptique, où le 1er janvier de l'an 1 a l'ordinal 1. Une :exc:" "`ValueError` est levée à moins que ``1 <= ordinal <= datetime.max." -"toordinal()``. Les heures, minutes, secondes et microsecondes du résultat " +"toordinal()``. Les heures, minutes, secondes et microsecondes du résultat " "valent toutes 0, et :attr:`.tzinfo` est ``None``." #: library/datetime.rst:966 -#, fuzzy msgid "" "Return a new :class:`.datetime` object whose date components are equal to " "the given :class:`date` object's, and whose time components are equal to the " @@ -1642,21 +1569,20 @@ msgid "" "the :attr:`~.time.tzinfo` attribute of the *time* argument is used." msgstr "" "Renvoie un nouvel objet :class:`.datetime` dont les composants de date sont " -"égaux à ceux de l'objet :class:`date` donné, et donc les composants de temps " -"sont égaux à ceux de l'objet :class:`time` donné. Si l'argument *tzinfo* " -"est fourni, sa valeur est utilisée pour initialiser l'attribut :attr:`." -"tzinfo` du résultat, autrement l'attribut :attr:`~.time.tzinfo` de " -"l'argument *time* est utilisé." +"égaux à ceux de l'objet :class:`date` donné, et dont les composants de temps " +"sont égaux à ceux de l'objet :class:`time` donné. Si l'argument *tzinfo* est " +"fourni, sa valeur est utilisée pour initialiser l'attribut :attr:`.tzinfo` " +"du résultat, autrement l'attribut :attr:`~.time.tzinfo` de l'argument *time* " +"est utilisé." #: library/datetime.rst:973 -#, fuzzy msgid "" "For any :class:`.datetime` object *d*, ``d == datetime.combine(d.date(), d." "time(), d.tzinfo)``. If date is a :class:`.datetime` object, its time " "components and :attr:`.tzinfo` attributes are ignored." msgstr "" "Pour tout objet :class:`.datetime` *d*`, ``d == datetime.combine(d.date(), d." -"time(), d.tzinfo)``. Si *date* est un objet :class:`.datetime`, ses " +"time(), d.tzinfo)``. Si *date* est un objet :class:`.datetime`, ses " "composants de temps et attributs :attr:`.tzinfo` sont ignorés." #: library/datetime.rst:978 @@ -1726,19 +1652,16 @@ msgid "This is equivalent to::" msgstr "C’est équivalent à ::" #: library/datetime.rst:1037 -#, fuzzy msgid "" ":exc:`ValueError` is raised if the date_string and format can't be parsed " "by :func:`time.strptime` or if it returns a value which isn't a time tuple. " "For a complete list of formatting directives, see :ref:`strftime-strptime-" "behavior`." msgstr "" -"Renvoie un :class:`.datetime` correspondant à la chaîne *date_string*, " -"analysée conformément à *format*. Cela est équivalent à ``datetime(*(time." -"strptime(date_string, format)[0:6]))``. Une :exc:`ValueError` est levée si " -"*date_string* et *format* ne peuvent être analysée par :func:`time.strptime` " -"ou si elle renvoie une valeur qui n'est pas un *tuple-temps*. Pour une liste " -"complète des directives de formatage, voir :ref:`strftime-strptime-behavior`." +"Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " +"analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " +"pas un *n*-uplet de temps. Pour une liste complète des directives de " +"formatage, voir :ref:`strftime-strptime-behavior`." #: library/datetime.rst:1048 msgid "" @@ -1785,7 +1708,6 @@ msgstr "" "class:`.datetime` ou ``None`` si aucun n'a été donné." #: library/datetime.rst:1712 -#, fuzzy msgid "" "In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " "(A repeated interval occurs when clocks are rolled back at the end of " @@ -1793,9 +1715,9 @@ msgid "" "decreased for political reasons.) The value 0 (1) represents the earlier " "(later) of the two moments with the same wall time representation." msgstr "" -"``0`` ou ``1``. Utilisé pour désambiguïser les heures dans un intervalle " -"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la " -"fin de l'heure d'été ou quand le décalage UTC du fuseau courant et " +"Dans ``[0, 1]``. Utilisé pour désambiguïser les heures dans un intervalle " +"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la fin " +"de l'heure d'été ou quand le décalage horaire UTC du fuseau courant est " "décrémenté pour des raisons politiques.) La valeur 0 (1) représente le plus " "ancien (récent) des deux moments représentés par la même heure." @@ -2204,24 +2126,22 @@ msgstr "" "pouvez utiliser :meth:`.datetime.timetuple`." #: library/datetime.rst:1345 -#, fuzzy msgid "" "Return the proleptic Gregorian ordinal of the date. The same as ``self." "date().toordinal()``." msgstr "" -"Renvoie l'ordinal du calendrier géorgien proleptique de cette date. " +"Renvoie l'ordinal du calendrier grégorien proleptique de cette date. " "Identique à ``self.date().toordinal()``." #: library/datetime.rst:1350 -#, fuzzy msgid "" "Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " "return value is a :class:`float` similar to that returned by :func:`time." "time`." msgstr "" -"Renvoie l'horodatage (*timestamp* en anglais) *POSIX* correspondant à " -"l'instance :class:`.datetime`. La valeur renvoyée est un :class:`float` " -"similaire à ceux renvoyés par :func:`time.time`." +"Renvoie l'horodatage *POSIX* correspondant à l'instance :class:`.datetime`. " +"La valeur renvoyée est un :class:`float` similaire à ceux renvoyés par :func:" +"`time.time`." #: library/datetime.rst:1354 #, fuzzy @@ -2301,12 +2221,9 @@ msgstr "" "la semaine ISO). Identique à ``self.date().isocalendar()``." #: library/datetime.rst:1407 -#, fuzzy msgid "Return a string representing the date and time in ISO 8601 format:" msgstr "" -"Renvoie une chaîne représentant la date et l'heure au format ISO 8601, *YYYY-" -"MM-DDTHH:MM:SS.ffffff* ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:" -"SS*" +"Renvoie une chaîne représentant la date et l'heure au format ISO 8601 :" #: library/datetime.rst:1409 msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" @@ -2317,13 +2234,12 @@ msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" msgstr "``YYYY-MM-DDTHH:MM:SS``, si :attr:`microsecond` vaut 0" #: library/datetime.rst:1412 -#, fuzzy msgid "" "If :meth:`utcoffset` does not return ``None``, a string is appended, giving " "the UTC offset:" msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " -"plus renvoyer ``None``." +"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " +"donnant le décalage UTC :" #: library/datetime.rst:1415 msgid "" @@ -2340,14 +2256,13 @@ msgstr "" "``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0" #: library/datetime.rst:1427 -#, fuzzy msgid "" "The optional argument *sep* (default ``'T'``) is a one-character separator, " "placed between the date and time portions of the result. For example::" msgstr "" -"L'argument optionnel *sep* (valant par défaut ``'T'``) est un séparateur " -"d'un caractère, placé entre les portions du résultat correspondant à la date " -"et à l'heure. Par exemple ::" +"L'argument optionnel *sep* (par défaut ``'T'``) est un séparateur d'un " +"caractère, placé entre les portions du résultat correspondant à la date et à " +"l'heure. Par exemple ::" #: library/datetime.rst:1802 msgid "" @@ -2368,15 +2283,14 @@ msgstr "" "``'microseconds'`` sinon." #: library/datetime.rst:1808 -#, fuzzy msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." -msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres HH." +msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres ``HH``." #: library/datetime.rst:1809 -#, fuzzy msgid "" "``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." -msgstr "``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format HH:MM." +msgstr "" +"``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format ``HH:MM``." #: library/datetime.rst:1810 #, fuzzy @@ -2407,10 +2321,9 @@ msgid "Excluded time components are truncated, not rounded." msgstr "Les composants de temps exclus sont tronqués et non arrondis." #: library/datetime.rst:1459 -#, fuzzy msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" msgstr "" -"Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide ::" +"Une :exc:`ValueError` est levée en cas d'argument *timespec* invalide ::" #: library/datetime.rst:1833 msgid "Added the *timespec* argument." @@ -2475,14 +2388,12 @@ msgstr "" "behavior`." #: library/datetime.rst:1514 -#, fuzzy msgid "Examples of Usage: :class:`.datetime`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemple d'utilisation de la classe :class:`.datetime` :" #: library/datetime.rst:1516 -#, fuzzy msgid "Examples of working with :class:`~datetime.datetime` objects:" -msgstr "Exemples d'utilisation des objets *datetime* :" +msgstr "Exemples d'utilisation des objets :class:`~datetime.datetime` :" #: library/datetime.rst:1569 msgid "" @@ -2670,12 +2581,9 @@ msgstr "" "des données de temps." #: library/datetime.rst:1795 -#, fuzzy msgid "Return a string representing the time in ISO 8601 format, one of:" msgstr "" -"Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " -"'2002-12-04'``." +"Renvoie une chaîne de caractères représentant la date au format ISO 8601 :" #: library/datetime.rst:1797 msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" @@ -2768,14 +2676,12 @@ msgstr "" "renvoie pas ``None`` ou une chaîne de caractères." #: library/datetime.rst:1884 -#, fuzzy msgid "Examples of Usage: :class:`.time`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemples d'utilisation de :class:`.time`" #: library/datetime.rst:1886 -#, fuzzy msgid "Examples of working with a :class:`.time` object::" -msgstr "Exemples d'utilisation des objets *datetime* ::" +msgstr "Exemples d'utilisation de l'objet :class:`.time` ::" #: library/datetime.rst:1917 msgid ":class:`tzinfo` Objects" @@ -3372,13 +3278,12 @@ msgid "Always returns ``None``." msgstr "Renvoie toujours ``None``." #: library/datetime.rst:2253 -#, fuzzy msgid "" "Return ``dt + offset``. The *dt* argument must be an aware :class:`." "datetime` instance, with ``tzinfo`` set to ``self``." msgstr "" -"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" -"class:`datetime`, avec ``tzinfo`` valant ``self``." +"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" +"class:`.datetime`, avec ``tzinfo`` valant ``self``." #: library/datetime.rst:2260 msgid "The UTC timezone, ``timezone(timedelta(0))``." @@ -3421,14 +3326,12 @@ msgstr "" "`strftime` et :meth:`strptime` :" #: library/datetime.rst:2283 -#, fuzzy msgid "``strftime``" -msgstr "``str(t)``" +msgstr "``strftime``" #: library/datetime.rst:2283 -#, fuzzy msgid "``strptime``" -msgstr "``str(t)``" +msgstr "``strptime``" #: library/datetime.rst:2285 msgid "Usage" @@ -3450,9 +3353,8 @@ msgid "Type of method" msgstr "Type de méthode" #: library/datetime.rst:2287 -#, fuzzy msgid "Instance method" -msgstr "Méthodes de l'instance :" +msgstr "Méthode d'instance" #: library/datetime.rst:2287 msgid "Class method" @@ -3463,43 +3365,37 @@ msgid "Method of" msgstr "Méthode de" #: library/datetime.rst:2289 -#, fuzzy msgid ":class:`date`; :class:`.datetime`; :class:`.time`" -msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" +msgstr ":class:`date` ; :class:`.datetime` ; :class:`.time`" #: library/datetime.rst:2289 -#, fuzzy msgid ":class:`.datetime`" -msgstr "Objets :class:`.datetime`" +msgstr ":class:`.datetime`" #: library/datetime.rst:2291 msgid "Signature" msgstr "Signature" #: library/datetime.rst:2291 -#, fuzzy msgid "``strftime(format)``" -msgstr "``str(t)``" +msgstr "``strftime(format)``" #: library/datetime.rst:2291 msgid "``strptime(date_string, format)``" msgstr "``strptime(date_string, format)``" #: library/datetime.rst:2296 -#, fuzzy msgid ":meth:`strftime` and :meth:`strptime` Format Codes" -msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" +msgstr "Codes de formatage de :meth:`strftime` et :meth:`strptime`" #: library/datetime.rst:2298 -#, fuzzy msgid "" "The following is a list of all the format codes that the 1989 C standard " "requires, and these work on all platforms with a standard C implementation." msgstr "" "La liste suivante est la liste de tous les codes de formatage requis par le " "standard C (version 1989), ils fonctionnent sur toutes les plateformes " -"possédant une implémentation de C standard. Notez que la version 1999 du " -"standard C a ajouté des codes de formatage additionnels." +"possédant une implémentation de C standard." #: library/datetime.rst:2405 msgid "Directive" @@ -3732,13 +3628,12 @@ msgid "``%z``" msgstr "``%z``" #: library/datetime.rst:2359 -#, fuzzy msgid "" "UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " "naive)." msgstr "" -"Décalage UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si l'instance " -"est naïve)." +"Décalage horaire UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si " +"l'instance est naïve)." #: library/datetime.rst:2359 msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" diff --git a/library/dbm.po b/library/dbm.po index 9c0ab6e3..dac69e8c 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -176,7 +176,7 @@ msgstr "" #: ../Doc/library/dbm.rst:121 msgid "Module :mod:`shelve`" -msgstr "" +msgstr "Module :mod:`shelve`" #: ../Doc/library/dbm.rst:122 msgid "Persistence module which stores non-string data." diff --git a/library/decimal.po b/library/decimal.po index d0e1da10..60820755 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -708,24 +708,33 @@ msgid "" "otherwise. Currently, a :class:`Decimal` instance is always canonical, so " "this operation always returns :const:`True`." msgstr "" +"Renvoie :const:`True` si l'argument est sous forme canonique et :const:" +"`False` sinon. Actuellement, une instance :class:`Decimal` est toujours " +"canonique, donc cette opération renvoie toujours :const:`True`." #: library/decimal.rst:616 msgid "" "Return :const:`True` if the argument is a finite number, and :const:`False` " "if the argument is an infinity or a NaN." msgstr "" +"Renvoie :const:`True` si l'argument est un nombre fini et :const:`False` si " +"l'argument est un infini ou NaN." #: library/decimal.rst:621 msgid "" "Return :const:`True` if the argument is either positive or negative infinity " "and :const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un infini positif ou négatif et :" +"const:`False` sinon." #: library/decimal.rst:626 msgid "" "Return :const:`True` if the argument is a (quiet or signaling) NaN and :" "const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN (signalétique ou silencieux) " +"et :const:`False` sinon." #: library/decimal.rst:631 msgid "" @@ -738,18 +747,24 @@ msgid "" "Return :const:`True` if the argument is a quiet NaN, and :const:`False` " "otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN silencieux et :const:`False` " +"sinon." #: library/decimal.rst:641 msgid "" "Return :const:`True` if the argument has a negative sign and :const:`False` " "otherwise. Note that zeros and NaNs can both carry signs." msgstr "" +"Renvoie :const:`True` si l'argument est négatif et :const:`False` sinon. " +"Notez que les zéros et les NaNs peuvent être signés." #: library/decimal.rst:646 msgid "" "Return :const:`True` if the argument is a signaling NaN and :const:`False` " "otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN signalétique et :const:" +"`False` sinon." #: library/decimal.rst:651 msgid "" @@ -762,18 +777,24 @@ msgid "" "Return :const:`True` if the argument is a (positive or negative) zero and :" "const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un zéro (positif ou négatif) et :" +"const:`False` sinon." #: library/decimal.rst:661 msgid "" "Return the natural (base e) logarithm of the operand. The result is " "correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" +"Renvoie le logarithme naturel (base e) de l'opérande. Le résultat est " +"arrondi avec le mode :const:`ROUND_HALF_EVEN`." #: library/decimal.rst:666 msgid "" "Return the base ten logarithm of the operand. The result is correctly " "rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" +"Renvoie le logarithme en base 10 de l'opérande. Le résultat est arrondi avec " +"le mode :const:`ROUND_HALF_EVEN`." #: library/decimal.rst:671 msgid "" @@ -876,7 +897,7 @@ msgstr "" #: library/decimal.rst:757 msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." -msgstr "" +msgstr "``\"-Infinity\"``, indiquant que l'opérande est l'infini négatif ;" #: library/decimal.rst:758 msgid "" @@ -890,11 +911,11 @@ msgstr "" #: library/decimal.rst:760 msgid "``\"-Zero\"``, indicating that the operand is a negative zero." -msgstr "" +msgstr "``\"-Zero\"``, indiquant que l'opérande est un zéro négatif ;" #: library/decimal.rst:761 msgid "``\"+Zero\"``, indicating that the operand is a positive zero." -msgstr "" +msgstr "``\"+Zero\"``, indiquant que l'opérande est un zéro positif ;" #: library/decimal.rst:762 msgid "" @@ -908,15 +929,19 @@ msgstr "" #: library/decimal.rst:764 msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." -msgstr "" +msgstr "``\"+Infinity\"``, indiquant que l'opérande est l'infini positif ;" #: library/decimal.rst:765 msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." msgstr "" +"``\"NaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " +"nombre) silencieux ;" #: library/decimal.rst:766 msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." msgstr "" +"``\"sNaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " +"nombre) signalétique." #: library/decimal.rst:770 msgid "" @@ -1325,7 +1350,7 @@ msgstr "Renvoie la valeur absolue de *x*." #: library/decimal.rst:1135 msgid "Return the sum of *x* and *y*." -msgstr "" +msgstr "Renvoie la somme de *x* et *y*." #: library/decimal.rst:1140 msgid "Returns the same Decimal object *x*." @@ -1354,23 +1379,23 @@ msgstr "" #: library/decimal.rst:1170 msgid "Returns a copy of *x* with the sign inverted." -msgstr "" +msgstr "Renvoie une copie de *x* mais de signe opposé." #: library/decimal.rst:1175 msgid "Copies the sign from *y* to *x*." -msgstr "" +msgstr "Copie le signe de *y* vers *x*." #: library/decimal.rst:1180 msgid "Return *x* divided by *y*." -msgstr "" +msgstr "Renvoie *x* divisé par *y*." #: library/decimal.rst:1185 msgid "Return *x* divided by *y*, truncated to an integer." -msgstr "" +msgstr "Renvoie *x* divisé par *y*, tronqué comme entier." #: library/decimal.rst:1190 msgid "Divides two numbers and returns the integer part of the result." -msgstr "" +msgstr "Renvoie la partie entière de la division entre deux nombres." #: library/decimal.rst:1195 msgid "Returns `e ** x`." @@ -1378,7 +1403,7 @@ msgstr "" #: library/decimal.rst:1200 msgid "Returns *x* multiplied by *y*, plus *z*." -msgstr "" +msgstr "Renvoie *x* multiplié par *y*, plus *z*." #: library/decimal.rst:1205 msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." @@ -1390,11 +1415,13 @@ msgstr "" #: library/decimal.rst:1215 msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est infini et ``False`` sinon." #: library/decimal.rst:1220 msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." msgstr "" +"Renvoie ``True`` si *x* est un NaN (silencieux ou signalétique) et ``False`` " +"sinon." #: library/decimal.rst:1225 msgid "" @@ -1403,16 +1430,16 @@ msgstr "" #: library/decimal.rst:1230 msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un NaN silencieux et ``False`` sinon." #: library/decimal.rst:1235 msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est négatif et ``False`` sinon." #: library/decimal.rst:1240 msgid "" "Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un NaN signalétique et ``False`` sinon." #: library/decimal.rst:1245 msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." @@ -1420,15 +1447,15 @@ msgstr "" #: library/decimal.rst:1250 msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un zéro et ``False`` sinon." #: library/decimal.rst:1255 msgid "Returns the natural (base e) logarithm of *x*." -msgstr "" +msgstr "Renvoie le logarithme naturel (en base e) de *x*." #: library/decimal.rst:1260 msgid "Returns the base 10 logarithm of *x*." -msgstr "" +msgstr "Renvoie le logarithme en base 10 de *x*." #: library/decimal.rst:1265 msgid "Returns the exponent of the magnitude of the operand's MSD." @@ -1452,7 +1479,7 @@ msgstr "" #: library/decimal.rst:1290 msgid "Compares two values numerically and returns the maximum." -msgstr "" +msgstr "Renvoie le maximum entre les deux valeurs numériques." #: library/decimal.rst:1305 msgid "Compares the values numerically with their sign ignored." @@ -1468,7 +1495,7 @@ msgstr "" #: library/decimal.rst:1315 msgid "Return the product of *x* and *y*." -msgstr "" +msgstr "Renvoie la multiplication de *x* avec *y*." #: library/decimal.rst:1320 msgid "Returns the largest representable number smaller than *x*." @@ -1484,7 +1511,7 @@ msgstr "" #: library/decimal.rst:1335 msgid "Reduces *x* to its simplest form." -msgstr "" +msgstr "Réduit *x* à sa forme la plus simple." #: library/decimal.rst:1340 msgid "Returns an indication of the class of *x*." @@ -1535,11 +1562,11 @@ msgstr "" #: library/decimal.rst:1372 msgid "``y`` must be nonnegative" -msgstr "" +msgstr "``y`` ne doit pas être négatif ;" #: library/decimal.rst:1373 msgid "at least one of ``x`` or ``y`` must be nonzero" -msgstr "" +msgstr "au moins l'un de ``x`` ou ``y`` doit être différent de zéro ;" #: library/decimal.rst:1374 msgid "``modulo`` must be nonzero and have at most 'precision' digits" @@ -1560,11 +1587,11 @@ msgstr "" #: library/decimal.rst:1391 msgid "Just returns 10, as this is Decimal, :)" -msgstr "" +msgstr "Renvoie 10 car c'est Decimal, :)" #: library/decimal.rst:1396 msgid "Returns the remainder from integer division." -msgstr "" +msgstr "Donne le reste de la division entière." #: library/decimal.rst:1398 msgid "" @@ -1584,7 +1611,7 @@ msgstr "" #: library/decimal.rst:1415 msgid "Returns ``True`` if the two operands have the same exponent." -msgstr "" +msgstr "Renvoie ``True`` si les deux opérandes ont le même exposant." #: library/decimal.rst:1420 msgid "Returns the first operand after adding the second value its exp." @@ -1619,6 +1646,9 @@ msgid "" "The constants in this section are only relevant for the C module. They are " "also included in the pure Python version for compatibility." msgstr "" +"Les constantes de cette section ne sont pertinentes que pour le module C. " +"Elles sont aussi incluses pour le compatibilité dans la version en Python " +"pur." #: library/decimal.rst:1467 msgid "32-bit" @@ -1656,6 +1686,8 @@ msgstr ":const:`-1999999999999999997`" msgid "" "The value is ``True``. Deprecated, because Python now always has threads." msgstr "" +"La valeur est ``True``. Déprécié, parce que maintenant Python possède " +"toujours des fils d'exécution." #: library/decimal.rst:1487 msgid "" @@ -1671,7 +1703,7 @@ msgstr "" #: library/decimal.rst:1495 msgid "Rounding modes" -msgstr "" +msgstr "Modes d'arrondi" #: library/decimal.rst:1499 msgid "Round towards :const:`Infinity`." @@ -1709,7 +1741,7 @@ msgstr "" #: library/decimal.rst:1534 msgid "Signals" -msgstr "" +msgstr "Signaux" #: library/decimal.rst:1536 msgid "" @@ -1783,7 +1815,7 @@ msgstr "" #: library/decimal.rst:1602 msgid "Numerical overflow." -msgstr "" +msgstr "Débordement numérique." #: library/decimal.rst:1604 msgid "" @@ -2041,6 +2073,8 @@ msgid "" "Q. Once I have valid two place inputs, how do I maintain that invariant " "throughout an application?" msgstr "" +"Q. Une fois que mes entrées sont à deux décimales valides, comment maintenir " +"cet invariant dans l'application ?" #: library/decimal.rst:2019 msgid "" @@ -2049,12 +2083,20 @@ msgid "" "division and non-integer multiplication, will change the number of decimal " "places and need to be followed-up with a :meth:`quantize` step:" msgstr "" +"R. Certaines opérations comme l'addition, la soustraction et la " +"multiplication par un entier préservent automatiquement la virgule fixe. " +"D'autres opérations, comme la division et la multiplication par des non-" +"entiers, changent le nombre de décimales et doivent être suivies d'une " +"étape :meth:`quantize` :" #: library/decimal.rst:2037 msgid "" "In developing fixed-point applications, it is convenient to define functions " "to handle the :meth:`quantize` step:" msgstr "" +"Lors du développement d'applications en virgule fixe, il est pratique de " +"définir des fonctions pour gérer cette étape de quantification par :meth:" +"`quantize` :" #: library/decimal.rst:2050 msgid "" diff --git a/library/doctest.po b/library/doctest.po index f6dc1f34..cdda6fa4 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -16,12 +16,11 @@ msgstr "" #: library/doctest.rst:2 msgid ":mod:`doctest` --- Test interactive Python examples" -msgstr "" +msgstr ":mod:`doctest` — Exemples de tests interactifs en Python" #: library/doctest.rst:12 -#, fuzzy msgid "**Source code:** :source:`Lib/doctest.py`" -msgstr "**Code source:** :source:`Lib/os.py`" +msgstr "**Code source :** :source:`Lib/doctest.py`" #: library/doctest.rst:16 msgid "" @@ -29,18 +28,27 @@ msgid "" "interactive Python sessions, and then executes those sessions to verify that " "they work exactly as shown. There are several common ways to use doctest:" msgstr "" +"Le module :mod:`doctest` cherche des extraits de texte ressemblant à des " +"sessions Python interactives avant de les exécuter, de façon à vérifier que " +"le fonctionnement correspond exactement à la description. Voici quelques cas " +"d'utilisation de *doctest* :" #: library/doctest.rst:20 msgid "" "To check that a module's docstrings are up-to-date by verifying that all " "interactive examples still work as documented." msgstr "" +"Vérifier que les *docstrings* d'un module sont à jour en vérifiant que tous " +"les exemples interactifs fonctionnent toujours tels que décrits." #: library/doctest.rst:23 msgid "" "To perform regression testing by verifying that interactive examples from a " "test file or a test object work as expected." msgstr "" +"Réaliser un test de régression en vérifiant que les exemples interactifs " +"provenant d'un fichier de test ou d'un objet de test fonctionnent comme " +"prévu." #: library/doctest.rst:26 msgid "" @@ -49,16 +57,22 @@ msgid "" "text are emphasized, this has the flavor of \"literate testing\" or " "\"executable documentation\"." msgstr "" +"Rédiger de la documentation sous forme de tutoriel pour un paquet, avec une " +"abondance d'exemples ayant des entrées et des sorties. On pourrait voir ça " +"comme des tests « dans le texte » ou de la « documentation exécutable », " +"selon le point de vue." #: library/doctest.rst:31 msgid "Here's a complete but small example module::" -msgstr "" +msgstr "Voici un petit exemple d'un module qui soit tout de même complet ::" #: library/doctest.rst:88 msgid "" "If you run :file:`example.py` directly from the command line, :mod:`doctest` " "works its magic:" msgstr "" +"L'exécution du fichier :file:`example.py` directement à partir de la ligne " +"de commande démontre la magie de :mod:`doctest` :" #: library/doctest.rst:96 msgid "" @@ -66,10 +80,14 @@ msgid "" "Pass ``-v`` to the script, and :mod:`doctest` prints a detailed log of what " "it's trying, and prints a summary at the end:" msgstr "" +"Il n'y a pas de sortie ! C'est normal, cela signifie que tous les exemples " +"fonctionnent. Passez ``-v`` au script pour que :mod:`doctest` affiche un " +"journal détaillé de ce qui a été essayé, avant d'afficher un résumé à la " +"fin :" #: library/doctest.rst:114 msgid "And so on, eventually ending with:" -msgstr "" +msgstr "Et ainsi de suite, jusqu'à ce qu'on atteigne :" #: library/doctest.rst:133 msgid "" @@ -79,26 +97,37 @@ msgid "" "libraries. Especially useful examples can be found in the standard test " "file :file:`Lib/test/test_doctest.py`." msgstr "" +"C'est tout ce dont vous avez besoin pour pouvoir commencer une utilisation " +"productive de :mod:`doctest` ! Allez-y. Les sections suivantes donnent tous " +"les détails. Notez qu'il y a plusieurs exemples de *doctests* dans la suite " +"de tests de la bibliothèque standard de Python et dans les autres " +"bibliothèques. Des exemples particulièrement utiles se situent dans le " +"fichier de test standard :file:`Lib/test/test_doctest.py`." #: library/doctest.rst:143 msgid "Simple Usage: Checking Examples in Docstrings" -msgstr "" +msgstr "Utilisation simple : vérifier des exemples dans des *docstrings*" #: library/doctest.rst:145 msgid "" "The simplest way to start using doctest (but not necessarily the way you'll " "continue to do it) is to end each module :mod:`M` with::" msgstr "" +"Le plus simple pour commencer à utiliser *doctest* (mais pas nécessairement " +"la façon avec laquelle vous continuerez) est de terminer chaque module :mod:" +"`M` avec ::" #: library/doctest.rst:152 msgid ":mod:`doctest` then examines docstrings in module :mod:`M`." -msgstr "" +msgstr ":mod:`doctest` examine alors les *docstrings* dans le module :mod:`M`." #: library/doctest.rst:154 msgid "" "Running the module as a script causes the examples in the docstrings to get " "executed and verified::" msgstr "" +"Exécuter le module comme un script a comme conséquence d'exécuter et de " +"vérifier les exemples dans les *docstrings* ::" #: library/doctest.rst:159 msgid "" @@ -107,16 +136,22 @@ msgid "" "and the final line of output is ``***Test Failed*** N failures.``, where *N* " "is the number of examples that failed." msgstr "" +"Ceci n'affiche rien à moins qu'un exemple échoue ; le cas échéant, les " +"exemples défaillants et les causes du ou des échecs sont affichés sur " +"*stdout*, et la ligne finale de la sortie est ``***Test Failed*** *N " +"failures*.``, où *N* est le nombre d'exemples défaillants." #: library/doctest.rst:164 msgid "Run it with the ``-v`` switch instead::" -msgstr "" +msgstr "À la place, exécutez-la avec l'option de ligne de commande ``-v`` ::" #: library/doctest.rst:168 msgid "" "and a detailed report of all examples tried is printed to standard output, " "along with assorted summaries at the end." msgstr "" +"alors, un rapport détaillé de tous les exemples faisant partie de l'essai " +"est affiché sur la sortie standard, accompagné à la fin de leurs résumés." #: library/doctest.rst:171 msgid "" @@ -125,6 +160,10 @@ msgid "" "``sys.argv`` is not examined by :func:`testmod` (so passing ``-v`` or not " "has no effect)." msgstr "" +"Vous pouvez activer le mode verbeux en passant ``verbose=True`` à :func:" +"`testmod`, ou vous le désactiver en lui passant ``verbose=False``. Dans ces " +"deux cas, ``sys.argv`` n'est pas inspecté par :func:`testmod` (ainsi, lui " +"passer ``-v`` ou pas n'a aucun effet)." #: library/doctest.rst:176 msgid "" @@ -132,6 +171,10 @@ msgid "" "instruct the Python interpreter to run the doctest module directly from the " "standard library and pass the module name(s) on the command line::" msgstr "" +"Il y a un raccourci pour exécuter :func:`testmod` à partir de la ligne de " +"commande. Vous demandez à l'interpréteur Python d'exécuter le module " +"*doctest* directement à partir de la bibliothèque standard afin de passer le " +"ou les noms des modules à partir de la ligne de commande ainsi ::" #: library/doctest.rst:182 msgid "" @@ -139,22 +182,31 @@ msgid "" "`testmod` on it. Note that this may not work correctly if the file is part " "of a package and imports other submodules from that package." msgstr "" +"Ceci importera :file:`example.py` comme un module autonome et exécutera :" +"func:`testmod` sur celui-ci. Notez que ceci peut ne pas fonctionner si le " +"fichier fait partie d'un paquet et importe d'autres sous-modules de ce " +"paquet." #: library/doctest.rst:186 msgid "" "For more information on :func:`testmod`, see section :ref:`doctest-basic-" "api`." msgstr "" +"Pour plus d'informations sur :func:`testmod`, consultez la section :ref:" +"`doctest-basic-api`." #: library/doctest.rst:192 msgid "Simple Usage: Checking Examples in a Text File" -msgstr "" +msgstr "Utilisation simple : vérifier des exemples dans un fichier texte" #: library/doctest.rst:194 msgid "" "Another simple application of doctest is testing interactive examples in a " "text file. This can be done with the :func:`testfile` function::" msgstr "" +"Une autre application simple de *doctest* est de tester des exemples " +"interactifs dans un fichier texte. Ceci est fait avec la fonction :func:" +"`testfile` ::" #: library/doctest.rst:200 msgid "" @@ -163,12 +215,19 @@ msgid "" "if it were a single giant docstring; the file doesn't need to contain a " "Python program! For example, perhaps :file:`example.txt` contains this:" msgstr "" +"Ce court script exécute et vérifie chacun des exemples Python interactifs " +"contenus dans le fichier :file:`example.txt`. Le contenu du fichier est " +"traité comme une seule *docstring* géante ; le fichier n'a pas besoin de " +"contenir un programme Python ! Par exemple, prenons un fichier :file:" +"`example.txt` contenant :" #: library/doctest.rst:223 msgid "" "Running ``doctest.testfile(\"example.txt\")`` then finds the error in this " "documentation::" msgstr "" +"Exécuter ``doctest.testfile(\"example.txt\")`` recherche les erreurs dans " +"cette documentation ::" #: library/doctest.rst:234 msgid "" @@ -177,6 +236,10 @@ msgid "" "cause(s) of the failure(s) are printed to stdout, using the same format as :" "func:`testmod`." msgstr "" +"Comme pour :func:`testmod`, :func:`testfile` n'affichera rien sauf si un " +"exemple échoue. Si un exemple échoue, alors le ou les exemples défaillants " +"et leurs causes sont affichés sur *stdout*, dans le même format que :func:" +"`testmod`." #: library/doctest.rst:239 msgid "" @@ -185,12 +248,19 @@ msgid "" "optional arguments that can be used to tell it to look for files in other " "locations." msgstr "" +"Par défaut, :func:`testfile` cherche les fichiers dans le répertoire où se " +"situe le module qui l'appelle. Consultez la section :ref:`doctest-basic-api` " +"pour une description des options de ligne de commande à utiliser afin de " +"chercher dans d'autres répertoires." #: library/doctest.rst:243 msgid "" "Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the ``-" "v`` command-line switch or with the optional keyword argument *verbose*." msgstr "" +"Comme pour :func:`testmod`, la verbosité de :func:`testfile` peut être " +"ajustée avec l'option de ligne de commande ``-v`` ou avec le mot clé " +"*verbose*." #: library/doctest.rst:247 msgid "" @@ -198,22 +268,31 @@ msgid "" "instruct the Python interpreter to run the doctest module directly from the " "standard library and pass the file name(s) on the command line::" msgstr "" +"Il y a un raccourci pour exécuter :func:`testfile` à partir de la ligne de " +"commande. Demandez à l'interpréteur Python d'exécuter le module *doctest* " +"directement à partir de la bibliothèque standard et de passer le ou les noms " +"des modules à partir de la ligne de commande ainsi ::" #: library/doctest.rst:253 msgid "" "Because the file name does not end with :file:`.py`, :mod:`doctest` infers " "that it must be run with :func:`testfile`, not :func:`testmod`." msgstr "" +"Puisque le nom du fichier ne se termine pas par :file:`.py`, :mod:`doctest` " +"en déduit qu'il s'exécute à l'aide de :func:`testfile`, et non pas :func:" +"`testmod`." #: library/doctest.rst:256 msgid "" "For more information on :func:`testfile`, see section :ref:`doctest-basic-" "api`." msgstr "" +"Pour plus d'information sur :func:`testfile`, consultez la section :ref:" +"`doctest-basic-api`." #: library/doctest.rst:262 msgid "How It Works" -msgstr "" +msgstr "Comment ça marche" #: library/doctest.rst:264 msgid "" @@ -224,16 +303,27 @@ msgid "" "examples; for information about actually running doctest on these examples, " "see the following sections." msgstr "" +"Cette section examine en détail le fonctionnement de *doctest* : quelles " +"*docstrings* sont considérées, comment sont trouvés les exemples " +"interactifs, quel est le contexte d'exécution sélectionné, comment les " +"exceptions sont gérées, et de quelles façons les options de ligne de " +"commande peuvent être utilisées pour définir le comportement. Ceci est " +"l'information dont vous avez besoin pour écrire des exemples *doctest* ; " +"pour de l'information sur l'exécution de *doctest* sur ces exemples, " +"consultez les sections suivantes." #: library/doctest.rst:275 msgid "Which Docstrings Are Examined?" -msgstr "" +msgstr "Quelles *docstrings* sont considérées ?" #: library/doctest.rst:277 msgid "" "The module docstring, and all function, class and method docstrings are " "searched. Objects imported into the module are not searched." msgstr "" +"Les *docstrings* du module, de toutes les fonctions, classes, et méthodes " +"sont cherchées. Les objets qui sont importés dans le module ne sont pas " +"cherchés." #: library/doctest.rst:280 msgid "" @@ -243,16 +333,24 @@ msgid "" "searched, and strings are treated as if they were docstrings. In output, a " "key ``K`` in ``M.__test__`` appears with name ::" msgstr "" +"De plus, si ``M.__test__`` existe et qu'il est vrai, il doit être un *dict* " +"dont chaque élément lie un nom (chaîne de caractère) à un objet (fonction, " +"classe, chaîne de caractère). Les *docstrings* d'objets fonctions et classes " +"trouvées dans ``M.__test__`` sont cherchés, et les chaînes de caractères " +"sont traitées comme si elles étaient des *docstrings*. En sortie, une clé " +"``K`` dans ``M.__test__`` apparaît avec le nom ::" #: library/doctest.rst:288 msgid "" "Any classes found are recursively searched similarly, to test docstrings in " "their contained methods and nested classes." msgstr "" +"Toute classe trouvée est ainsi cherchée récursivement, afin de tester les " +"*docstrings* contenues dans leurs méthodes et leurs classes imbriquées." #: library/doctest.rst:299 msgid "How are Docstring Examples Recognized?" -msgstr "" +msgstr "Comment les exemples *docstring* sont-ils identifiés ?" #: library/doctest.rst:301 msgid "" @@ -260,6 +358,9 @@ msgid "" "but doctest isn't trying to do an exact emulation of any specific Python " "shell." msgstr "" +"Dans la plupart des cas, un copier-coller d'une séance interactive de " +"console fonctionne bien, mais *doctest* n'essaye pas de faire une simulation " +"exacte d'un *shell* Python spécifique." #: library/doctest.rst:326 msgid "" @@ -267,10 +368,13 @@ msgid "" "'`` line containing the code, and the expected output (if any) extends to " "the next ``'>>> '`` or all-whitespace line." msgstr "" +"Toute sortie souhaitée doit immédiatement suivre le dernier ``'>>> '`` ou le " +"dernier ``'... '`` contenant le code, et la sortie souhaitée, s'il y en a " +"une, s'étend jusqu'au prochain ``'>>> '`` ou à la prochaine ligne vide." #: library/doctest.rst:330 msgid "The fine print:" -msgstr "" +msgstr "En détail :" #: library/doctest.rst:332 msgid "" @@ -279,6 +383,10 @@ msgid "" "a blank line, put ```` in your doctest example each place a blank " "line is expected." msgstr "" +"La sortie souhaitée ne peut pas contenir une ligne vide, puisque contenir " +"une telle ligne signale la fin de la sortie souhaitée. Si la sortie " +"souhaitée doit contenir une ligne vide, ajoutez ```` dans votre " +"exemple *doctest* à chaque endroit où une ligne vide est souhaitée." #: library/doctest.rst:337 msgid "" @@ -294,12 +402,29 @@ msgid "" "different algorithm for handling tabs by writing a custom :class:" "`DocTestParser` class." msgstr "" +"Tous les caractères de tabulation insécables (*hard tab characters*) sont " +"convertis en espaces, en utilisant des taquets de tabulation de 8 espaces. " +"Les tabulations se trouvant dans la sortie générée par le code test ne sont " +"pas modifiées. Comme tout caractère de tabulation insécable *est* converti, " +"ceci veut dire que si le code de sortie inclut des caractères de tabulation " +"insécables, alors la seule façon que le *doctest* peut réussir est si " +"l'option :const:`NORMALIZE_WHITESPACE` ou si :ref:`directive ` a cours. De façon alternative, le test peut être ré-écrit afin " +"de capturer la sortie et de la comparer à un ensemble de valeurs attendues, " +"et ce, en tant qu'étape du test. Cette gestion des tabulations à la source a " +"été obtenue suite à un processus d'essais et d'erreurs ; il a été démontré " +"que c'était là la façon de les gérer qui soit la moins susceptible de " +"générer des erreurs. Il est possible d'utiliser un algorithme différent pour " +"la gestion des tabulations en rédigeant une classe sur mesure :class:" +"`DocTestParser`." #: library/doctest.rst:349 msgid "" "Output to stdout is captured, but not output to stderr (exception tracebacks " "are captured via a different means)." msgstr "" +"La sortie vers *stdout* est capturée, mais pas la sortie vers *stderr* (les " +"traces d'appel sont capturées par d'autres moyens)." #: library/doctest.rst:352 msgid "" @@ -307,6 +432,10 @@ msgid "" "any other reason use a backslash, you should use a raw docstring, which will " "preserve your backslashes exactly as you type them::" msgstr "" +"Si vous souhaitez conserver les barres obliques inversées telles quelles " +"lorsque vous terminez une ligne avec une barre oblique inversée dans une " +"séance interactive, ou quand vous utilisez une telle barre pour toute autre " +"raison, vous devez utiliser une *docstring* brute ::" #: library/doctest.rst:361 msgid "" @@ -315,20 +444,27 @@ msgid "" "Alternatively, you can double each backslash in the doctest version (and not " "use a raw string)::" msgstr "" +"Sinon, la barre oblique inversée est interprétée comme faisant partie de la " +"chaîne de caractères. Par exemple, le ``\\n`` ci-dessus est interprété comme " +"un caractère de saut de ligne. De façon alternative, vous pouvez doubler " +"chaque barre oblique inversée dans la version *doctest* (et n'utilisez pas " +"dans ce cas de *docstring* brute) ::" #: library/doctest.rst:370 msgid "The starting column doesn't matter::" -msgstr "" +msgstr "La colonne de départ n'a pas d'importance ::" #: library/doctest.rst:377 msgid "" "and as many leading whitespace characters are stripped from the expected " "output as appeared in the initial ``'>>> '`` line that started the example." msgstr "" +"et autant d'espaces sont retirés de la sortie attendue qu'il y avait " +"d'espaces avant la ligne commençant par ``'>>> '``." #: library/doctest.rst:384 msgid "What's the Execution Context?" -msgstr "" +msgstr "Quel est le contexte d'exécution ?" #: library/doctest.rst:386 msgid "" @@ -340,16 +476,28 @@ msgid "" "names defined earlier in the docstring being run. Examples cannot see names " "defined in other docstrings." msgstr "" +"Par défaut, chaque fois que :mod:`doctest` trouve une *docstring* à tester, " +"il utilise une *copie superficielle* des variables globales de :mod:`M`, de " +"telle façon que l'exécution de tests ne change pas les variables globales " +"réelles du module et que l'exécution d'un unique test dans :mod:`M` ne " +"puisse laisser traîner des miettes pouvant accidentellement causer la " +"réussite d'un autre test. Ceci signifie que les exemples peuvent utiliser " +"librement n'importe quel nom défini au niveau supérieur dans :mod:`M` ainsi " +"que les noms définis précédemment dans la *docstring* en cours d'exécution. " +"Les exemples ne peuvent voir les noms définis dans d'autres *docstrings*." #: library/doctest.rst:394 msgid "" "You can force use of your own dict as the execution context by passing " "``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." msgstr "" +"Vous pouvez forcer l'utilisation de votre propre *dict* comme contexte " +"d'exécution en passant ``globs=your_dict`` à :func:`testmod` ou encore, à :" +"func:`testfile`." #: library/doctest.rst:401 msgid "What About Exceptions?" -msgstr "" +msgstr "Qu'en est-il des exceptions ?" #: library/doctest.rst:403 msgid "" @@ -359,16 +507,23 @@ msgid "" "numbers), this is one case where doctest works hard to be flexible in what " "it accepts." msgstr "" +"Pas de problèmes, tant que la trace d'appels est la seule sortie produite " +"par l'exemple : il suffit d'ajouter la trace. [#]_ Comme les traces d'appels " +"contiennent des détails qui sont sujets à changement rapide (par exemple, le " +"chemin exact vers un fichier et les numéros de ligne), ceci est un cas où " +"*doctest* fait un effort pour être flexible dans ce qu'il accepte." #: library/doctest.rst:409 msgid "Simple example::" -msgstr "" +msgstr "Exemple simple ::" #: library/doctest.rst:416 msgid "" "That doctest succeeds if :exc:`ValueError` is raised, with the ``list." "remove(x): x not in list`` detail as shown." msgstr "" +"Ce *doctest* réussit si :exc:`ValueError` est levée, avec le détail ``list." +"remote(x): x not in list`` tel que montré." #: library/doctest.rst:419 msgid "" @@ -376,6 +531,9 @@ msgid "" "which may be either of the following two lines, indented the same as the " "first line of the example::" msgstr "" +"La sortie attendue pour une exception doit commencer par un en-tête de trace " +"d'appels, qui peut être l'une des deux lignes suivantes, avec la même " +"indentation que la première ligne de l'exemple ::" #: library/doctest.rst:426 msgid "" @@ -383,6 +541,10 @@ msgid "" "contents are ignored by doctest. The traceback stack is typically omitted, " "or copied verbatim from an interactive session." msgstr "" +"L'en-tête de la trace d'appels est suivi par une pile optionnelle de trace " +"d'appels, dont le contenu est ignoré par *doctest*. La trace d'appels est " +"habituellement omise, ou est copiée verbatim à partir d'une séance " +"interactive." #: library/doctest.rst:430 msgid "" @@ -391,12 +553,20 @@ msgid "" "a traceback, but can extend across multiple lines if the exception has a " "multi-line detail::" msgstr "" +"La pile de trace d'appels est suivie par la partie la plus intéressante : la " +"ou les lignes contenant le type et le détail de l'exception. Ceci est " +"habituellement la dernière ligne de la trace d'appels ; dans le cas où " +"l'exception a un détail sur plusieurs lignes, il est possible de prolonger " +"sur plusieurs lignes ::" #: library/doctest.rst:442 msgid "" "The last three lines (starting with :exc:`ValueError`) are compared against " "the exception's type and detail, and the rest are ignored." msgstr "" +"Les trois dernières lignes (en commençant par :exc:`ValueError`) sont " +"comparées avec le type et le détail de l'exception ; tout le reste est " +"ignoré." #: library/doctest.rst:445 msgid "" @@ -404,6 +574,9 @@ msgid "" "documentation value to the example. So the last example is probably better " "as::" msgstr "" +"La pratique optimale est d'omettre la pile de trace d'appels, à moins que " +"celle-ci ait une valeur significative de documentation de l'exemple. Ainsi, " +"le dernier exemple est probablement meilleur tel qui suit ::" #: library/doctest.rst:455 msgid "" @@ -413,10 +586,18 @@ msgid "" "just as well be three (or three hundred) commas or digits, or an indented " "transcript of a Monty Python skit." msgstr "" +"Prenez note que les traces d'appels sont traitées de façon vraiment " +"particulière. Précisément, dans l'exemple ré-écrit, l'utilisation de ``...`` " +"est indépendante de l'option *doctest* :const:`ELLIPSIS`. Les points de " +"suspension dans cet exemple peuvent être omis, ou peuvent aussi être trois " +"(ou trois cents) virgules ou chiffres, ou une retranscription indentée d'une " +"parodie de Monty Python." #: library/doctest.rst:461 msgid "Some details you should read once, but won't need to remember:" msgstr "" +"Quelques détails que vous devriez lire une fois, mais que vous pouvez " +"oublier :" #: library/doctest.rst:463 msgid "" @@ -427,6 +608,13 @@ msgid "" "ordinary output rarely begins with a traceback header line, so this doesn't " "create real problems." msgstr "" +"*Doctest* ne peut pas deviner si votre sortie attendue provient d'une trace " +"d'appels issue d'une exception ou d'un affichage ordinaire. Ainsi, si nous " +"avons un exemple s'attendant à obtenir ``ValueError: 42 is prime``, celui-ci " +"réussira peu importe si :exc:`ValueError` est réellement levée ou si " +"l'exemple affiche simplement ce texte de trace d'appels. Dans la pratique, " +"une sortie ordinaire commence rarement par une ligne d'en-tête de trace " +"d'appels ; ainsi, ceci ne pose pas de vrai problème." #: library/doctest.rst:470 msgid "" @@ -436,6 +624,13 @@ msgid "" "with an alphanumeric is taken to be the start of the exception detail. Of " "course this does the right thing for genuine tracebacks." msgstr "" +"Chaque ligne de la trace d'appel (s'il y en a) doit soit être indentée d'un " +"niveau supplémentaire au niveau de la première ligne de l'exemple *ou* doit " +"commencer par un caractère qui ne soit pas alphanumérique. La première ligne " +"suivant l'en-tête de la trace d'appels qui soit indentée similairement et " +"qui commence par un caractère alphanumérique est comprise comme étant le " +"début du détail de l'exception. Bien sûr, ceci fait la chose adéquate pour " +"les traces d'appels véritables." #: library/doctest.rst:476 msgid "" @@ -443,6 +638,9 @@ msgid "" "everything following the leftmost colon and any module information in the " "exception name is ignored." msgstr "" +"Lorsque l'option de *doctest* :const:`IGNORE_EXCEPTION_DETAIL` est définie, " +"tout ce qui suit le point-virgule se trouvant le plus à gauche ainsi que " +"toute information liée au module dans le nom de l'exception sont ignorés." #: library/doctest.rst:480 msgid "" @@ -452,6 +650,13 @@ msgid "" "need to test a :exc:`SyntaxError` that omits the traceback header, you will " "need to manually add the traceback header line to your test example." msgstr "" +"Le shell interactif omet la ligne d'en-tête de la trace d'appels pour " +"certaines erreurs :exc:`SyntaxError`. Ceci étant dit, *doctest* utilise la " +"ligne d'en-tête de la trace d'appels afin de faire une distinction entre les " +"exceptions et les autres types d'erreurs. Ainsi, dans les rares cas où vous " +"avez besoin de tester une erreur :exc:`SyntaxError` qui omet l'en-tête de la " +"trace d'appels, il vous est nécessaire d'ajouter manuellement la ligne d'en-" +"tête de la trace d'appels à l'exemple de test." #: library/doctest.rst:488 msgid "" @@ -466,10 +671,14 @@ msgid "" "following test would pass, even though it puts the ``^`` marker in the wrong " "location::" msgstr "" +"Comme les lignes dénotant la position de l'erreur précèdent le type et le " +"détail de l'exception, elles ne sont pas vérifiées par *doctest*. Par " +"exemple, le test suivant réussira, même si le marqueur ``^`` n'est pas à la " +"bonne place ::" #: library/doctest.rst:513 msgid "Option Flags" -msgstr "" +msgstr "Options de ligne de commande" #: library/doctest.rst:515 msgid "" @@ -480,16 +689,26 @@ msgid "" "and may be passed to the doctest command line interface via the ``-o`` " "option." msgstr "" +"Un ensemble d'options de ligne de commande contrôle différents aspects du " +"comportement de *doctest*. Pour les options, des noms symboliques sont " +"fournis comme des constantes de module, qui peuvent être composés par un OU " +"bit à bit (:ref:`bitwise ORed `) et passés à diverses fonctions. " +"Les noms peuvent aussi être utilisés dans des :ref:`instructions doctest " +"`, et peuvent être passés à l'interface de ligne de " +"commande de *doctest* à l'aide de l'option ``-o``." #: library/doctest.rst:521 msgid "The ``-o`` command line option." -msgstr "" +msgstr "L'option de ligne de commande ``-o``." #: library/doctest.rst:524 msgid "" "The first group of options define test semantics, controlling aspects of how " "doctest decides whether actual output matches an example's expected output:" msgstr "" +"Le premier groupe d'options définit les sémantiques de test, de façon à " +"contrôler comment *doctest* décide si la sortie obtenue correspond à la " +"sortie attendue de l'exemple :" #: library/doctest.rst:530 msgid "" @@ -502,6 +721,16 @@ msgid "" "output still work in these cases. This option will probably go away, but " "not for several years." msgstr "" +"Par défaut, si un bloc de sortie attendu contient uniquement un ``1``, un " +"vrai bloc de sortie contenant uniquement un ``1`` ou un ``True`` sera " +"considéré comme étant une correspondance ; de façon similaire, nous avons " +"une correspondance pour ``0`` et ``False``. Lorsque l'option :const:" +"`DONT_ACCEPT_TRUE_FOR_1` est précisée, aucune de ces substitutions n'est " +"acceptée. Le comportement par défaut s'ajuste au fait que Python a changé le " +"type de renvoi de plusieurs fonctions, passant de nombres entiers à des " +"booléens ; les *doctests* s'attendant à une sortie de \"petit " +"entier\" (*little integer*) fonctionnent encore dans ces cas. Cette option " +"disparaîtra probablement, mais pas avant plusieurs années." #: library/doctest.rst:542 msgid "" @@ -511,6 +740,13 @@ msgid "" "is the only way to communicate that a blank line is expected. When :const:" "`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." msgstr "" +"Par défaut, si un bloc de sortie attendue contient une ligne contenant " +"uniquement la chaîne de caractères ````, alors cette ligne sera " +"en correspondance avec une ligne vide dans la sortie réelle. Puisqu'une " +"véritable ligne vide permet de délimiter la sortie attendue, ceci est la " +"seule façon de communiquer qu'une ligne vide est souhaitée. Lorsque " +"l'option :const:`DONT_ACCEPT_BLANKLINE` est précisée, cette substitution " +"n'est pas permise." #: library/doctest.rst:551 msgid "" @@ -521,6 +757,14 @@ msgid "" "useful when a line of expected output is very long, and you want to wrap it " "across multiple lines in your source." msgstr "" +"Lorsque précisé, toutes les séquences de caractères d'espacement et de " +"caractères de saut de ligne sont traitées comme équivalentes. Toute séquence " +"de caractères d'espacement à l'intérieur de la sortie attendue correspondra " +"alors à toute séquence de caractères d'espacement à l'intérieur de la sortie " +"réelle. Par défaut, les caractères d'espacement doivent correspondre de " +"façon exacte. L'option :const:`NORMALIZE_WHITESPACE` est particulièrement " +"utile lorsqu'une ligne de sortie attendue est très longue, et que l'on " +"souhaite la répartir sur plusieurs lignes dans le fichier source." #: library/doctest.rst:562 msgid "" @@ -530,6 +774,14 @@ msgid "" "this simple. Complicated uses can lead to the same kinds of \"oops, it " "matched too much!\" surprises that ``.*`` is prone to in regular expressions." msgstr "" +"Lorsque précisé, un marqueur de points de suspension (``...``) dans la " +"sortie attendue peut correspondre à n'importe quelle partie de chaîne de " +"caractères dans la sortie réelle. Ceci inclut les parties qui traversent les " +"frontières de lignes, ainsi que les parties vides de chaînes de caractères ; " +"ainsi, il est préférable d'en faire une utilisation simple. Les usages " +"complexes mènent aux mêmes surprises du type \"oups, il y avait trop de " +"correspondances !\" que l'utilisation de ``.*`` dans les expressions " +"régulières." #: library/doctest.rst:571 msgid "" @@ -539,6 +791,11 @@ msgid "" "the actual exception raised is ``ValueError: 3*14``, but will fail, e.g., " "if :exc:`TypeError` is raised." msgstr "" +"Lorsque précisé, un exemple qui s'attend à une exception réussit le test si " +"une exception du type attendu est levée, même si le détail de l'exception ne " +"correspond pas. Par exemple, un exemple s'attendant à ``ValueError: 42`` " +"réussira si l'exception réellement levée est ``ValueError: 3*14``, mais " +"échouera si par exemple :exc:`TypeError` est levée." #: library/doctest.rst:577 msgid "" @@ -546,6 +803,10 @@ msgid "" "both of these variations will work with the flag specified, regardless of " "whether the test is run under Python 2.7 or Python 3.2 (or later versions)::" msgstr "" +"Il fera fi du nom de module utilisé dans les rapports *doctest* de Python 3. " +"Ainsi, ces deux variations fonctionneront avec l'option précisée, peu " +"importe si le test est exécuté avec Python 2.7 ou Python 3.2 (ou des " +"versions ultérieures) ::" #: library/doctest.rst:589 msgid "" @@ -558,6 +819,15 @@ msgid "" "support :ref:`doctest directives ` and ignore them as " "irrelevant comments). For example::" msgstr "" +"Prendre note que :const:`ELLIPSIS` peut aussi être utilisée afin d'ignorer " +"les détails du message d'exception, mais un tel test peut tout de même " +"échouer si les détails du module sont affichés comme faisant partie du nom " +"de l'exception. L'utilisation de :const:`IGNORE_EXCEPTION_DETAIL` et des " +"détails de Python 2.3 est aussi la seule façon claire d'écrire un *doctest* " +"qui ne se soucie pas du détail d'exception tout en continuant de réussir, et " +"ce, pour Python 2.3 ou antérieur (ces versions ne supportent pas les :ref:" +"`instructions doctest `, les ignorant et les traitant " +"comme des commentaires sans pertinence). Par exemple ::" #: library/doctest.rst:603 msgid "" @@ -565,12 +835,18 @@ msgid "" "even though the detail changed in Python 2.4 to say \"does not\" instead of " "\"doesn't\"." msgstr "" +"réussit sous Python 2.3 ainsi que pour les versions ultérieures de Python, " +"avec l'option précisée, même si le détail a été changé dans Python 2.4 pour " +"mentionner *\"does not\"* plutôt que *\"doesn't\"* (ne fait pas)." #: library/doctest.rst:607 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." msgstr "" +"Maintenant, :const:`IGNORE_EXCEPTION_DETAIL` permet aussi d'ignorer toute " +"information liée au module contenant l'exception qui est en train d'être " +"testée." #: library/doctest.rst:614 msgid "" @@ -580,31 +856,48 @@ msgid "" "be checked. E.g., the example's output might be random; or the example " "might depend on resources which would be unavailable to the test driver." msgstr "" +"Lorsque précisé, cesse complètement l'exécution de tous les exemples. Ceci " +"peut être utile dans des contextes où les exemples *doctest* sont à la fois " +"de la documentation et des cas de tests, et qu'un exemple doit être inclus " +"pour des raisons de documentation, mais ne devrait pas être vérifié. Par " +"exemple, la sortie de l'exemple doit être aléatoire ; ou encore, lorsque " +"l'exemple peut dépendre de ressources inatteignables pour l'exécuteur de " +"test." #: library/doctest.rst:620 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" +"L'option *SKIP* peut aussi être utilisée temporairement afin de commenter " +"des exemples et d'en empêcher l'exécution." #: library/doctest.rst:625 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" +"Un masque binaire effectuant une composition avec OU de toutes les options " +"de comparaisons ci-dessus." #: library/doctest.rst:627 msgid "The second group of options controls how test failures are reported:" msgstr "" +"Le deuxième groupe d'options détermine comment les échecs de tests sont " +"signalés :" #: library/doctest.rst:632 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." msgstr "" +"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " +"et réelles multi-lignes sont affichées dans une *diff* unifiée." #: library/doctest.rst:638 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." msgstr "" +"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " +"et réelles multi-lignes sont affichées dans une *diff* de contexte." #: library/doctest.rst:644 msgid "" @@ -615,6 +908,13 @@ msgid "" "output contains letter ``l``, a line is inserted with a caret marking the " "mismatching column positions." msgstr "" +"Lorsque précisé, les différences sont obtenues grâce à ``difflib.Differ``, " +"en utilisant le même algorithme que le populaire utilitaire :file:`ndiff." +"py`. Ceci est la seule méthode qui puisse faire la différence à l'intérieur " +"des lignes ainsi que parmi les lignes prises conjointement. Par exemple, si " +"une ligne de sortie attendue contient le chiffre ``1`` alors que la sortie " +"réelle contient la lettre ``l``, une ligne est insérée avec un marqueur " +"caret démarquant les positions de colonnes où il n'y a pas de correspondance." #: library/doctest.rst:653 msgid "" @@ -626,6 +926,14 @@ msgid "" "remaining examples are still run, and still count towards the total number " "of failures reported; only the output is suppressed." msgstr "" +"Lorsque précisé, le premier exemple défaillant de chaque *doctest* est " +"affiché, mais la sortie est supprimée pour tous les autres exemples. Ceci " +"empêche *doctest* de rapporter les exemples adéquats qui échouent du fait " +"d'échecs précédents ; ceci peut aussi cacher des exemples inadéquats qui " +"échouent de façon indépendante au premier échec. Lorsque :const:" +"`REPORT_ONLY_FIRST_FAILURE` est précisé, les exemples restants sont toujours " +"exécutés, et sont toujours comptabilisés dans le nombre total des lignes " +"échouant ; seulement la sortie est omise." #: library/doctest.rst:664 msgid "" @@ -634,22 +942,34 @@ msgid "" "most 1. This flag may be useful during debugging, since examples after the " "first failure won't even produce debugging output." msgstr "" +"Lorsque précisé, mettre fin à l'exécution après le premier exemple " +"défaillant et ne pas essayer d'exécuter les exemples restants. Ainsi, le " +"nombre d'échecs rapporté sera au plus un (1). Cette option peut être utile " +"durant le débogage, étant donné que les exemples suivant le premier échec ne " +"produiront aucune sortie de débogage." #: library/doctest.rst:669 msgid "" "The doctest command line accepts the option ``-f`` as a shorthand for ``-o " "FAIL_FAST``." msgstr "" +"La ligne de commande de *doctest* accepte l'option ``-f`` comme un raccourci " +"de ``-o FAIL_FAST``." #: library/doctest.rst:677 msgid "A bitmask or'ing together all the reporting flags above." msgstr "" +"Un masque binaire effectuant une composition avec le OU de toutes les " +"options de signalement ci-dessus." #: library/doctest.rst:680 msgid "" "There is also a way to register new option flag names, though this isn't " "useful unless you intend to extend :mod:`doctest` internals via subclassing:" msgstr "" +"Il y a aussi une façon d'enregistrer des nouveaux noms d'option, quoique " +"ceci n'est pas utile sauf dans le cas où vous devez faire une extension pour " +"le code interne de :mod:`doctest` par le biais d'une sous-classe :" #: library/doctest.rst:686 msgid "" @@ -659,11 +979,17 @@ msgid "" "are supported by your subclasses. :func:`register_optionflag` should always " "be called using the following idiom::" msgstr "" +"Crée une nouvelle option avec un nom donné, et renvoie la valeur en nombre " +"entier de la nouvelle option. La fonction :func:`register_optionflag` peut " +"être utilisée lors de la création de sous-classes à partir de :class:" +"`OutputChecker` ou :class:`DocTestRunner` pour créer de nouvelles options " +"qui sont supportées par vos sous-classes. La fonction :func:" +"`register_optionflag` devrait toujours être appelée par l'expression " +"suivante ::" #: library/doctest.rst:702 -#, fuzzy msgid "Directives" -msgstr "Directive" +msgstr "Instructions" #: library/doctest.rst:704 msgid "" @@ -671,6 +997,10 @@ msgid "" "options>` for an individual example. Doctest directives are special Python " "comments following an example's source code:" msgstr "" +"Les instructions *doctest* peuvent être utilisées afin de modifier les :ref:" +"`options ` pour un exemple individuel. Les instructions " +"*doctest* sont des commentaires Python spéciaux suivant le code source d'un " +"exemple :" #: library/doctest.rst:715 msgid "" @@ -684,6 +1014,9 @@ msgid "" "An example's doctest directives modify doctest's behavior for that single " "example. Use ``+`` to enable the named behavior, or ``-`` to disable it." msgstr "" +"Les instructions d'un exemple *doctest* modifient le comportement de " +"*doctest* et ce, seulement pour cet exemple. Utilisez ``+`` pour activer le " +"comportement nommé, ou ``-`` pour le désactiver." #: library/doctest.rst:722 msgid "For example, this test passes::" @@ -725,6 +1058,14 @@ msgid "" "defaults. In such cases, disabling an option via ``-`` in a directive can " "be useful." msgstr "" +"Prendre note que puisque toutes les options sont désactivées par défaut, et " +"comme les instructions s'appliquent uniquement aux exemples dans lesquelles " +"elles apparaissent, activer les options (par le biais de ``+`` dans une " +"instruction) est habituellement le seul choix ayant du sens. Toutefois, les " +"options peuvent aussi être passées aux fonctions qui exécutent les " +"*doctests*, définissant de nouvelles valeurs par défaut. Dans de tels cas, " +"désactiver une option par l'utilisation de ``-`` dans une instruction peut " +"être utile." #: library/doctest.rst:767 msgid "Warnings" @@ -739,24 +1080,33 @@ msgid "" "doesn't guarantee that the element is printed in any particular order, so a " "test like ::" msgstr "" +"Le module :mod:`doctest` est rigoureux pour ce qui est d'inclure des " +"correspondances exactes dans la sortie attendue. Si un seul caractère ne " +"correspond pas, le test échoue. Ceci vous surprendra probablement quelques " +"fois, alors que vous apprenez exactement ce que Python garantit et ne " +"garantit pas pour qui est des sorties. Par exemple, lorsqu'on affiche un " +"ensemble (set), Python ne garantit pas que les éléments sont affichés dans " +"un ordre particulier ; ainsi un test tel que ::" #: library/doctest.rst:778 msgid "is vulnerable! One workaround is to do ::" -msgstr "" +msgstr "est vulnérable ! Une alternative est de faire ::" #: library/doctest.rst:783 msgid "instead. Another is to do ::" -msgstr "" +msgstr "à la place. Une autre façon de faire est ::" #: library/doctest.rst:791 msgid "" "Before Python 3.6, when printing a dict, Python did not guarantee that the " "key-value pairs was printed in any particular order." msgstr "" +"Avant Python 3.6, lorsque Python affichait un *dict*, il ne garantissait pas " +"que les paires clés-valeurs suivaient un ordre particulier." #: library/doctest.rst:794 msgid "There are others, but you get the idea." -msgstr "" +msgstr "Il y en a d'autres, mais vous saisissez l'idée." #: library/doctest.rst:796 msgid "" @@ -774,6 +1124,11 @@ msgid "" "platforms, because Python defers to the platform C library for float " "formatting, and C libraries vary widely in quality here. ::" msgstr "" +"Les nombres à virgule flottante sont aussi sujets à de petites variations à " +"la sortie, tout dépendamment de la plateforme utilisée, étant donné que " +"Python s'en remet à la bibliothèque de la plateforme C pour la mise-en-forme " +"des *floats*, et les bibliothèques C varient grandement pour ce qui de leur " +"qualité sur ce point. ::" #: library/doctest.rst:820 msgid "" @@ -786,10 +1141,12 @@ msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." msgstr "" +"Les fractions simples sont aussi plus faciles à comprendre, et cela fait une " +"meilleure documentation." #: library/doctest.rst:833 msgid "Basic API" -msgstr "" +msgstr "API de base" #: library/doctest.rst:835 msgid "" @@ -798,24 +1155,35 @@ msgid "" "less formal introduction to these two functions, see sections :ref:`doctest-" "simple-testmod` and :ref:`doctest-simple-testfile`." msgstr "" +"Les fonctions :func:`testmod` et :func:`testfile` fournissent une interface " +"simple pour *doctest* qui est suffisante pour les cas d'usage les plus " +"élémentaires. Pour une introduction moins formelle à ces deux fonctions, " +"voir les sections :ref:`doctest-simple-testmod` et :ref:`doctest-simple-" +"testfile`." #: library/doctest.rst:843 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." msgstr "" +"Tous les arguments sauf *filename* sont optionnels, et doivent être précisés " +"sous forme lettrée." #: library/doctest.rst:846 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." msgstr "" +"Teste les exemples dans le fichier nommé *filename*. Renvoie " +"``(failure_count, test_count)``." #: library/doctest.rst:849 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" msgstr "" +"L'argument optionnel *module_relative* précise comment le nom de fichier " +"doit être interprété :" #: library/doctest.rst:852 msgid "" @@ -826,6 +1194,14 @@ msgid "" "should use ``/`` characters to separate path segments, and may not be an " "absolute path (i.e., it may not begin with ``/``)." msgstr "" +"Si *module_relative* prend la valeur ``True`` (la valeur par défaut), alors " +"*filename* précise un chemin relatif au module qui soit indépendant du " +"système d'exploitation (*OS*). Par défaut, ce chemin est relatif au " +"répertoire du module appelant ; mais si l'argument *package* est précisé, " +"alors il est relatif à ce paquet. Pour garantir l'indépendance quant au " +"système d'exploitation, *filename* doit utiliser des caractères ``/`` pour " +"séparer chaque segment de chemin, et ne peut pas être un chemin absolu " +"(c'est-à-dire qu'il ne peut pas commencer par ``/``)." #: library/doctest.rst:859 msgid "" @@ -833,12 +1209,17 @@ msgid "" "path. The path may be absolute or relative; relative paths are resolved " "with respect to the current working directory." msgstr "" +"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " +"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " +"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." #: library/doctest.rst:863 msgid "" "Optional argument *name* gives the name of the test; by default, or if " "``None``, ``os.path.basename(filename)`` is used." msgstr "" +"L'option *name* désigne le nom du test ; par défaut, ou si ``None`` est " +"passé en argument, ``os.path.basename(filename)`` est utilisé." #: library/doctest.rst:866 msgid "" @@ -848,6 +1229,12 @@ msgid "" "directory is used as the base directory for module-relative filenames. It " "is an error to specify *package* if *module_relative* is ``False``." msgstr "" +"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " +"répertoire doit être utilisé comme le répertoire principal pour un nom de " +"fichier lié à un module. Si aucun paquet n'est spécifié, le répertoire du " +"module appelé à l'exécution est utilisé comme le répertoire principal pour " +"les noms de fichiers liés au module. C'est une erreur que de spécifier " +"*package* si *module_relative* a ``False`` comme valeur." #: library/doctest.rst:872 msgid "" @@ -856,6 +1243,10 @@ msgid "" "doctest, so its examples start with a clean slate. By default, or if " "``None``, a new empty dict is used." msgstr "" +"L'option *globs* spécifie un *dict* à utiliser comme *globals* lorsque des " +"exemples sont exécutés. Une copie superficielle de ce *dict* est créée pour " +"le *doctest* ; ainsi, ces exemples commencent avec un état vide. Par défaut, " +"ou si ``None`` est passé en argument, un nouveau *dict* vide est utilisé." #: library/doctest.rst:877 msgid "" @@ -869,6 +1260,16 @@ msgid "" "passing an *extraglobs* dict mapping the generic name to the subclass to be " "tested." msgstr "" +"L'option *extraglobs* spécifie un *dict* intégré dans les variables globales " +"utilisées pour exécuter l'exemple. Ceci fonctionne comme :meth:`dict." +"update` : si *globs* et *extraglobs* ont une clé commune, la valeur associée " +"à *extraglobs* apparaît dans le *dict* combiné. Par défaut, ou si ``None`` " +"est passé en argument, aucune variable globale supplémentaire est utilisée. " +"Ceci est une fonctionnalité avancée qui permet la configuration des " +"*doctests*. Par exemple, un *doctest* peut être rédigé pour une classe de " +"base, en utilisant un nom générique pour la classe, puis réutilisé afin de " +"tester un nombre indéfini de sous-classes en passant un *dict* *extraglobs* " +"reliant le nom générique à la sous-classe qui doit être testée." #: library/doctest.rst:886 msgid "" @@ -876,6 +1277,10 @@ msgid "" "failures if false; by default, or if ``None``, it's true if and only if ``'-" "v'`` is in ``sys.argv``." msgstr "" +"L'option *verbose* affiche une grande quantité d'information si elle est " +"vraie, et affiche uniquement les défaillances si elle est fausse ; par " +"défaut, ou si ``None``, celle-ci est vraie si et seulement si ``-v`` est " +"présent dans ``sys.argv``." #: library/doctest.rst:890 msgid "" @@ -883,12 +1288,18 @@ msgid "" "prints nothing at the end. In verbose mode, the summary is detailed, else " "the summary is very brief (in fact, empty if all tests passed)." msgstr "" +"L'option *report* affiche un résumé à la fin lorsque vraie ; sinon, rien " +"n'est affiché à la fin. En mode *verbose*, le résumé est détaillé, sinon le " +"résumé est très bref (en fait, vide si tous les tests ont réussi)." #: library/doctest.rst:894 msgid "" "Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " "` of option flags. See section :ref:`doctest-options`." msgstr "" +"L'option *optionflags* (dont la valeur par défaut est de zéro) calcule la " +"valeur :ref:`bitwise OR ` des options de ligne de commande. Voir la " +"section :ref:`doctest-options`." #: library/doctest.rst:898 msgid "" @@ -897,6 +1308,11 @@ msgid "" "This allows failures to be post-mortem debugged. Default behavior is to " "continue running examples." msgstr "" +"L'option *raise_on_error* est fausse par défaut. Si elle est vraie, une " +"exception est levée à la première défaillance ou à la première exception qui " +"ne soit prévue dans l'exemple. Ceci permet aux défaillances d'être analysées " +"lors d'un post-mortem. Le comportement par défaut est de poursuivre " +"l'exécution des exemples." #: library/doctest.rst:1043 msgid "" @@ -904,18 +1320,26 @@ msgid "" "that should be used to extract tests from the files. It defaults to a " "normal parser (i.e., ``DocTestParser()``)." msgstr "" +"L'option *parser* définit une classe ou une sous-classe :class:" +"`DocTestParser` qui doit être utilisée pour extraire les tests des fichiers. " +"Par défaut, on utilise un analyseur normal (c'est-à-dire, " +"``DocTestParser()``)." #: library/doctest.rst:1047 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." msgstr "" +"L'option *encoding* définit un encodage à utiliser pour convertir le fichier " +"en format *unicode*." #: library/doctest.rst:913 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." msgstr "" +"Toutes les options sont facultatives, et toutes sauf *m* doivent être " +"définies en format lettré." #: library/doctest.rst:916 msgid "" @@ -923,6 +1347,9 @@ msgid "" "*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " "starting with ``m.__doc__``." msgstr "" +"Ceci teste les exemples en *docstrings* dans les fonctions et les classes " +"accessibles depuis le module *m* (ou depuis le module :mod:`__main__` si *m* " +"n'a pas été défini ou est ``None``), en commençant par ``m.__doc__``." #: library/doctest.rst:920 msgid "" @@ -931,21 +1358,31 @@ msgid "" "strings; function and class docstrings are searched for examples; strings " "are searched directly, as if they were docstrings." msgstr "" +"Ceci teste aussi les exemples accessibles depuis le *dict* ``m.__test__``, " +"si et seulement s'il existe et qu'il n'est pas ``None``. Le *dict* ``m." +"__test__`` associe des noms (chaînes de caractères) à des fonctions, des " +"classes et des chaînes de caractères ; les *docstrings* de fonctions et de " +"classes sont fouillées pour des exemples ; les chaînes de caractères sont " +"fouillées directement, comme si elles étaient des *docstrings*." #: library/doctest.rst:925 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" +"Seulement les *docstrings* attribuées à des objets appartenant au module *m* " +"sont fouillées." #: library/doctest.rst:927 msgid "Return ``(failure_count, test_count)``." -msgstr "" +msgstr "Renvoie ``(failure_count, test_count)``." #: library/doctest.rst:929 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." msgstr "" +"L'option *name* donne le nom du module ; par défaut, ou si ``None``, ``m." +"__name__`` est utilisé." #: library/doctest.rst:932 msgid "" @@ -956,6 +1393,14 @@ msgid "" "output for objects with no tests. The *exclude_empty* argument to the newer :" "class:`DocTestFinder` constructor defaults to true." msgstr "" +"L'option *exclude_empty* prend la valeur faux par défaut. Si la valeur est " +"vraie, les objets pour lesquels aucun *doctest* n'est trouvé ne sont pas " +"pris en compte. Le défaut est un bricolage permettant la compatibilité à " +"rebours, de façon à ce que le code qui utilise toujours :meth:`doctest." +"master.summarize` en conjonction avec :func:`testmod` puisse continuer " +"d'obtenir des sorties pour les objets n'ayant aucun test. L'option " +"*exclude_empty* dans le constructeur de la classe plus récente :class:" +"`DocTestFinder` prend vrai comme valeur par défaut." #: library/doctest.rst:939 msgid "" @@ -963,24 +1408,33 @@ msgid "" "*raise_on_error*, and *globs* are the same as for function :func:`testfile` " "above, except that *globs* defaults to ``m.__dict__``." msgstr "" +"Les options *extraglobs*, *verbose*, *report*, *optionflags*, " +"*raise_on_error*, et *globs* sont les mêmes que pour la fonction :func:" +"`testfile` ci-dessus, sauf pour *globs*, qui est ``m.__dict__`` par défaut." #: library/doctest.rst:946 msgid "" "Test examples associated with object *f*; for example, *f* may be a string, " "a module, a function, or a class object." msgstr "" +"Les exemples de test associés à l'objet *f* ; par exemple, *f* peut être une " +"chaîne de caractères, un module, une fonction, ou un objet de classe." #: library/doctest.rst:949 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." msgstr "" +"Une copie superficielle de l'argument-dictionnaire *globs* est utilisée pour " +"le contexte d'exécution." #: library/doctest.rst:951 msgid "" "Optional argument *name* is used in failure messages, and defaults to " "``\"NoName\"``." msgstr "" +"L'option *name* est utilisée pour les messages d'échec, et prend " +"``\"NoName\"`` comme valeur par défaut." #: library/doctest.rst:954 msgid "" @@ -988,6 +1442,9 @@ msgid "" "are no failures. By default, output is generated only in case of an example " "failure." msgstr "" +"Si l'option *verbose* est vraie, les sorties sont générées même s'il n'y a " +"aucun échec. Par défaut, la sortie est générée seulement si un exemple " +"échoue." #: library/doctest.rst:957 msgid "" @@ -996,15 +1453,21 @@ msgid "" "``None``, flags are deduced corresponding to the set of future features " "found in *globs*." msgstr "" +"L'option *compileflags* donne l'ensemble des options qui doit être utilisée " +"par le compilateur Python lorsqu'il exécute les exemples. Par défaut, ou si " +"``None``, les options sont inférées à partir de l'ensemble des " +"fonctionnalités futures trouvées dans *globs*." #: library/doctest.rst:961 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" +"L'option *optionflags* fonctionne similairement à la fonction :func:" +"`testfile` ci-dessus." #: library/doctest.rst:967 msgid "Unittest API" -msgstr "" +msgstr "API de tests unitaires" #: library/doctest.rst:969 msgid "" @@ -1014,18 +1477,31 @@ msgid "" "files containing doctests. To integrate with :mod:`unittest` test " "discovery, include a :func:`load_tests` function in your test module::" msgstr "" +"Au fur et à mesure que la collection de modules testés avec *doctest* " +"s'agrandira, vous allez souhaiter avoir une façon d'exécuter " +"systématiquement tous les *doctests*. Le module :mod:`doctest` fournit deux " +"fonctions qui peuvent être utilisées afin de créer des suites de tests " +"unitaires :mod:`unittest` à partir des modules et des fichiers textes " +"contenant des *doctests*. Afin d'intégrer la découverte fournie par :mod:" +"`unittest`, il suffit d'ajouter une fonction :func:`load_tests` dans votre " +"module de test ::" #: library/doctest.rst:983 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" msgstr "" +"Il y a deux fonctions principales pour créer des instances de la classe :" +"class:`unittest.TestSuite` à partir de fichiers textes et de modules ayant " +"des *doctests* :" #: library/doctest.rst:989 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." msgstr "" +"Convertit des tests *doctest* à partir d'un ou plusieurs fichiers vers une " +"classe :class:`unittest.TestSuite`." #: library/doctest.rst:992 msgid "" @@ -1035,20 +1511,30 @@ msgid "" "`failureException` exception is raised showing the name of the file " "containing the test and a (sometimes approximate) line number." msgstr "" +"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée dans le " +"cadriciel de tests unitaires et exécute les exemples interactifs trouvés " +"dans chaque fichier. Si un exemple de n'importe quel fichier échoue, alors " +"le test unitaire de synthèse échoue aussi, et une exception :exc:" +"`failureException` est levée, affichant le nom du fichier contenant le test " +"et un numéro de ligne (celui-ci est parfois approximatif)." #: library/doctest.rst:998 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" +"Passe un ou plusieurs chemins (sous forme de chaînes de caractères) à des " +"fichiers textes afin d'être vérifiés." #: library/doctest.rst:1000 msgid "Options may be provided as keyword arguments:" -msgstr "" +msgstr "Les options peuvent être fournies comme des options lettrées :" #: library/doctest.rst:1002 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" msgstr "" +"L'option *module_relative* précise comment les noms de fichiers dans *paths* " +"doivent être interprétés :" #: library/doctest.rst:1005 msgid "" @@ -1060,6 +1546,14 @@ msgid "" "segments, and may not be an absolute path (i.e., it may not begin with ``/" "``)." msgstr "" +"Si *module_relative* a ``True`` comme valeur (valeur par défaut), alors " +"chaque nom de fichier dans *paths* précise un chemin relatif au module qui " +"soit indépendant du système d'exploitation. Par défaut, ce chemin est " +"relatif au répertoire du module appelant ; mais si l'option *package* est " +"précisée, alors il est relatif à ce paquet. Afin de garantir l'indépendance " +"face au système d'exploitation, chaque nom de fichier doit utiliser des " +"caractères ``/`` afin de séparer les segments de chemin, et ne peut pas être " +"un chemin absolu (c'est-à-dire, il ne peut pas commencer par ``/``)." #: library/doctest.rst:1013 msgid "" @@ -1067,6 +1561,9 @@ msgid "" "an OS-specific path. The path may be absolute or relative; relative paths " "are resolved with respect to the current working directory." msgstr "" +"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " +"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " +"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." #: library/doctest.rst:1017 msgid "" @@ -1077,6 +1574,13 @@ msgid "" "filenames. It is an error to specify *package* if *module_relative* is " "``False``." msgstr "" +"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " +"répertoire dont être utilisé comme le répertoire principal pour un nom de " +"fichier dans *paths* qui soit lié à un module. Si aucun paquet n'est " +"spécifié, le répertoire du module appelé à l'exécution est utilisé comme le " +"répertoire principal pour les noms de fichiers liés au module. C'est une " +"erreur que de spécifier *package* si *module_relative* a ``False`` comme " +"valeur." #: library/doctest.rst:1024 msgid "" @@ -1085,6 +1589,11 @@ msgid "" "will be passed a :class:`DocTest` object. The setUp function can access the " "test globals as the *globs* attribute of the test passed." msgstr "" +"L'option *setUp* précise une fonction de mise-en-place pour la suite de " +"tests. Ceci est appelé avant l'exécution des tests dans chaque fichier. La " +"fonction *setUp* est passée à un objet :class:`DocTest`. La fonction *setUp* " +"peut accéder aux valeurs globales du test par le biais de l'attribut *globs* " +"du test passé." #: library/doctest.rst:1029 msgid "" @@ -1093,6 +1602,11 @@ msgid "" "function will be passed a :class:`DocTest` object. The setUp function can " "access the test globals as the *globs* attribute of the test passed." msgstr "" +"L'option *tearDown* précise une fonction de démolition pour la suite de " +"tests. Celle-ci est appelée après avoir exécuté les tests dans chaque " +"fichier. La fonction *tearDown* est passée à un objet :class:`DocTest`. La " +"fonction *setUp* peut accéder aux valeurs globales du test par l'attribut " +"*globs* du test passé." #: library/doctest.rst:1068 msgid "" @@ -1100,6 +1614,9 @@ msgid "" "variables for the tests. A new copy of this dictionary is created for each " "test. By default, *globs* is a new empty dictionary." msgstr "" +"L'option *globs* est un dictionnaire contenant les variables globales " +"initiales pour les tests. Une nouvelle copie de ce dictionnaire est créée " +"pour chaque test. Par défaut, *globs* est un nouveau dictionnaire vide." #: library/doctest.rst:1038 msgid "" @@ -1108,16 +1625,26 @@ msgid "" "ref:`doctest-options`. See function :func:`set_unittest_reportflags` below " "for a better way to set reporting options." msgstr "" +"Les options *optionflags* précisent les options par défaut de *doctest* pour " +"les tests, créées en composant par un OU les différentes options " +"individuelles. Voir la section :ref:`doctest-options`. Voir la fonction :" +"func:`set_unittest_reportflags` ci-dessous pour une meilleure façon de " +"préciser des options de rapport." #: library/doctest.rst:1050 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." msgstr "" +"La valeur globale ``__file__`` est ajoutée aux valeurs globales fournies par " +"les *doctests*, ceux-ci étant téléchargés d'un fichier texte utilisant la " +"fonction :func:`DocFileSuite`." #: library/doctest.rst:1056 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" +"Convertit les tests *doctest* pour un module donné à une classe :class:" +"`unittest.TestSuite`." #: library/doctest.rst:1058 msgid "" @@ -1127,6 +1654,12 @@ msgid "" "exception is raised showing the name of the file containing the test and a " "(sometimes approximate) line number." msgstr "" +"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée par le " +"cadriciel de test unitaire, afin d'exécuter chaque *doctest* dans le module. " +"Si n'importe lequel des *doctests* échoue, alors le test unitaire de " +"synthèse échoue, et une exception :exc:`failureException` est levée, " +"affichant le nom du fichier contenant le test et un numéro de ligne pouvant " +"être approximatif." #: library/doctest.rst:1064 msgid "" @@ -1134,34 +1667,49 @@ msgid "" "module object or a (possibly dotted) module name. If not specified, the " "module calling this function is used." msgstr "" +"L'option *module* fournit le module qui sera testé. Il peut prendre la forme " +"d'un objet-module ou celle du nom d'un module (possiblement *dotted*). Si " +"non-précisée, le module appelant cette fonction est utilisé." #: library/doctest.rst:1072 msgid "" "Optional argument *extraglobs* specifies an extra set of global variables, " "which is merged into *globs*. By default, no extra globals are used." msgstr "" +"L'option *extraglobs* précise un ensemble supplémentaire de variables " +"globales, à fusionner avec *globs*. Par défaut, aucune variable globale " +"supplémentaire est utilisée." #: library/doctest.rst:1075 msgid "" "Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " "drop-in replacement) that is used to extract doctests from the module." msgstr "" +"L'option *test_finder* est l'instance de :class:`DocTestFinder` (ou un " +"remplacement *drop-in*) qui est utilisée pour extraire les *doctests* à " +"partir du module." #: library/doctest.rst:1078 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " "for function :func:`DocFileSuite` above." msgstr "" +"Les options *setUp*, *tearDown* et *optionflags* sont les mêmes que pour la " +"fonction :func:`DocFileSuite` ci-dessus." #: library/doctest.rst:1081 msgid "This function uses the same search technique as :func:`testmod`." msgstr "" +"Cette fonction utilise la même technique de recherche que :func:`testmod`." #: library/doctest.rst:1083 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." msgstr "" +"La fonction :func:`DocTestSuite` renvoie une instance vide de la classe :" +"class:`unittest.TestSuite` si *module* ne contient aucune *docstring*, et " +"ce, au lieu de lever l'exception :exc:`ValueError`." #: library/doctest.rst:1088 msgid "" @@ -1171,6 +1719,12 @@ msgid "" "documented here (it's an internal detail), but studying its code can answer " "questions about the exact details of :mod:`unittest` integration." msgstr "" +"Sous le capot, :func:`DocTestSuite` crée une classe :class:`unittest." +"TestSuite` à partir d'instances de :class:`doctest.DocTestCase` ; de plus, :" +"class:`DocTestCase` est une sous-classe de :class:`unittest.TestCase`. La " +"classe :class:`DocTestCase` n'est pas documentée ici (c'est un détail " +"interne), mais l'étude de son code peut répondre à des questions concernant " +"les détails exacts de l'intégration du module :mod:`doctest`." #: library/doctest.rst:1094 msgid "" @@ -1178,6 +1732,9 @@ msgid "" "of :class:`doctest.DocFileCase` instances, and :class:`DocFileCase` is a " "subclass of :class:`DocTestCase`." msgstr "" +"De la même façon, :func:`DocFileSuite` crée une classe :class:`unittest." +"TestSuite` à partir des instances :class:`doctest.DocFileCase`, où :class:" +"`DocFileCase` est une sous-classe de :class:`DocTestCase`." #: library/doctest.rst:1098 msgid "" @@ -1191,22 +1748,41 @@ msgid "" "specified by command line options), but there's no way to pass options " "through :mod:`unittest` to :mod:`doctest` test runners." msgstr "" +"Ainsi, les deux façons de créer une :class:`unittest.TestSuite` utilisent " +"des instances de la classe :class:`DocTestCase`. Ceci est important pour une " +"raison subtile : lorsque vous exécutez par vous-même des fonctions :mod:" +"`doctest`, vous pouvez contrôler les options :mod:`doctest` qui sont " +"utilisées de façon directe, en passant des options aux fonctions :mod:" +"`doctest`. Toutefois, si vous écrivez un cadriciel :mod:`unittest`, alors :" +"mod:`unittest` a le contrôle final de quand et de comment les tests sont " +"exécutés. La personne qui écrit le cadriciel souhaite habituellement " +"contrôler les options de rapport de :mod:`doctest` (qui sont peut-être, par " +"exemple, spécifiées en options de ligne de commande), sauf qu'il n'y a pas " +"de moyen de spécifier des options à l'attention des exécuteurs de test de :" +"mod:`doctest` à partir de :mod:`unittest`." #: library/doctest.rst:1108 msgid "" "For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " "reporting flags specific to :mod:`unittest` support, via this function:" msgstr "" +"Pour cette raison, :mod:`doctest` implémente le concept d'options de rapport " +"de :mod:`doctest` qui soit spécifique à :mod:`unittest`, par le biais de " +"cette fonction :" #: library/doctest.rst:1114 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "" +"Voir les options de ligne de commandes de :mod:`doctest` pour l'utilisation." #: library/doctest.rst:1116 msgid "" "Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " "section :ref:`doctest-options`. Only \"reporting flags\" can be used." msgstr "" +"L'argument *flags* prend la :ref:`composition OU bit à bit ` des " +"arguments. Voir la section :ref:`doctest-options`. Ce sont uniquement les " +"\"options de rapport\" qui peuvent être utilisées." #: library/doctest.rst:1119 msgid "" @@ -1221,16 +1797,30 @@ msgid "" "were specified when the :class:`DocTestCase` instance was constructed, :mod:" "`doctest`'s :mod:`unittest` reporting flags are ignored." msgstr "" +"Ceci est un paramètre au niveau global du module, et affecte tous les futurs " +"*doctests* exécutés par le module :mod:`unittest` : la méthode :meth:" +"`runTest` de :class:`DocTestCase` prend en compte les options précisées pour " +"le cas de test lorsque l'instance de la classe :class:`DocTestCase` a été " +"construite. Si aucune option de rapport n'a été précisée (ce qui est le cas " +"typique et attendu), les options de rapport du module :mod:`unitest` de :mod:" +"`doctest` sont :ref:`` vers les options, et " +"les options obtenues sont passées à l'instance de la classe :class:" +"`DocTestRunner` créée pour exécuter le *doctest*. Si une seule option de " +"rapport a été précisée lorsque l'instance de :class:`DocTestCase` a été " +"construite, les options de rapport du module :mod:`unittest` de :mod:" +"`doctest` sont ignorées." #: library/doctest.rst:1130 msgid "" "The value of the :mod:`unittest` reporting flags in effect before the " "function was called is returned by the function." msgstr "" +"La valeur prise par les options de rapport de :mod:`unittest` et ce, avant " +"que la fonction n'ait été appelée, est renvoyée par la fonction." #: library/doctest.rst:1137 msgid "Advanced API" -msgstr "" +msgstr "API avancé" #: library/doctest.rst:1139 msgid "" @@ -1251,12 +1841,16 @@ msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." msgstr "" +":class:`Example` : Un unique :term:`statement` Python, pris conjointement " +"avec sa sortie attendue." #: library/doctest.rst:1150 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." msgstr "" +":class:`DocTest` : Une collection de :class:`Example`, habituellement " +"extraits d'une seule *docstring* ou fichier texte." #: library/doctest.rst:1153 msgid "" @@ -1297,7 +1891,7 @@ msgstr "" #: library/doctest.rst:1185 msgid "DocTest Objects" -msgstr "" +msgstr "Objets *doctest*" #: library/doctest.rst:1190 msgid "" @@ -1311,6 +1905,8 @@ msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" +":class:`DocTest` définit les attributs suivants. Ils sont initialisés par le " +"constructeur, et ne doivent pas être modifiés directement." #: library/doctest.rst:1200 msgid "" @@ -1354,7 +1950,7 @@ msgstr "" #: library/doctest.rst:1241 msgid "Example Objects" -msgstr "" +msgstr "Exemples d'objets" #: library/doctest.rst:1246 msgid "" @@ -1417,7 +2013,7 @@ msgstr "" #: library/doctest.rst:1303 msgid "DocTestFinder objects" -msgstr "" +msgstr "Objets *DocTestFinder*" #: library/doctest.rst:1308 msgid "" @@ -1453,7 +2049,7 @@ msgstr "" #: library/doctest.rst:1326 msgid ":class:`DocTestFinder` defines the following method:" -msgstr "" +msgstr "La classe :class:`DocTestFinder` définit la méthode suivante :" #: library/doctest.rst:1331 msgid "" @@ -1489,7 +2085,7 @@ msgstr "" #: library/doctest.rst:1348 msgid "To find the name of the file containing the object." -msgstr "" +msgstr "Afin de trouver le nom du fichier contenant l'objet." #: library/doctest.rst:1350 msgid "To help find the line number of the object within its file." @@ -1516,7 +2112,7 @@ msgstr "" #: library/doctest.rst:1369 msgid "DocTestParser objects" -msgstr "" +msgstr "Objets *DocTestParser*" #: library/doctest.rst:1374 msgid "" @@ -1526,13 +2122,15 @@ msgstr "" #: library/doctest.rst:1446 msgid ":class:`DocTestParser` defines the following methods:" -msgstr "" +msgstr "La classe :class:`DocTestFinder` définit les méthodes suivantes :" #: library/doctest.rst:1383 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." msgstr "" +"Extrait tous les exemples de *doctests* à partir de la chaîne de caractère " +"donnée, et les réunit dans un objet :class:`DocTest`." #: library/doctest.rst:1386 msgid "" @@ -1540,6 +2138,9 @@ msgid "" "`DocTest` object. See the documentation for :class:`DocTest` for more " "information." msgstr "" +"Notez que *globs*, *name*, *filname* et *lineno* sont des attributs pour le " +"nouvel objet :class:`DocTest`. Voir la documentation pour :class:`DocTest` " +"pour plus d'information." #: library/doctest.rst:1393 msgid "" @@ -1559,7 +2160,7 @@ msgstr "" #: library/doctest.rst:1409 msgid "DocTestRunner objects" -msgstr "" +msgstr "Objets *DocTestRunner*" #: library/doctest.rst:1414 msgid "" @@ -1705,7 +2306,7 @@ msgstr "" #: library/doctest.rst:1525 msgid "OutputChecker objects" -msgstr "" +msgstr "Objets *OutputChecker*" #: library/doctest.rst:1530 msgid "" @@ -1718,7 +2319,7 @@ msgstr "" #: library/doctest.rst:1537 msgid ":class:`OutputChecker` defines the following methods:" -msgstr "" +msgstr "La classe :class:`OutputChecker` définit les méthodes suivantes :" #: library/doctest.rst:1541 msgid "" @@ -1738,17 +2339,20 @@ msgstr "" #: library/doctest.rst:1558 msgid "Debugging" -msgstr "" +msgstr "Débogage" #: library/doctest.rst:1560 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" +"*Doctest* fournit plusieurs mécanismes pour déboguer des exemples *doctest* :" #: library/doctest.rst:1562 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." msgstr "" +"Plusieurs fonctions convertissent les *doctests* en programmes Python " +"exécutables, qui peuvent être exécutés grâce au débogueur Python, :mod:`pdb`." #: library/doctest.rst:1565 msgid "" @@ -1774,7 +2378,7 @@ msgstr "" #: library/doctest.rst:1588 msgid "Then an interactive Python session may look like this::" -msgstr "" +msgstr "Alors une séance interactive de Python peut ressembler à ceci ::" #: library/doctest.rst:1621 msgid "" @@ -1784,7 +2388,7 @@ msgstr "" #: library/doctest.rst:1627 msgid "Convert text with examples to a script." -msgstr "" +msgstr "Convertit du texte contenant des exemples en un script." #: library/doctest.rst:1629 msgid "" @@ -1804,10 +2408,13 @@ msgid "" "also be useful when you want to transform an interactive Python session into " "a Python script." msgstr "" +"Cette fonction est utilisée à l'interne par d'autres fonctions (voir ci-" +"bas), mais peut aussi être utile lorsque l'on souhaite transformer une " +"séance interactive de Python en script Python." #: library/doctest.rst:1661 msgid "Convert the doctest for an object to a script." -msgstr "" +msgstr "Convertit en script l'objet *doctest*." #: library/doctest.rst:1663 msgid "" @@ -1824,10 +2431,12 @@ msgid "" "prints a script version of function :func:`f`'s docstring, with doctests " "converted to code, and the rest placed in comments." msgstr "" +"affiche une version script de la *docstring* de la fonction :func:`f`, avec " +"des *doctests* convertis en code, et le reste dans les commentaires." #: library/doctest.rst:1679 msgid "Debug the doctests for an object." -msgstr "" +msgstr "Débogue les *doctests* pour un objet." #: library/doctest.rst:1681 msgid "" @@ -1842,6 +2451,8 @@ msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." msgstr "" +"Une copie superficielle de ``module.__dict__`` est utilisée à la fois pour " +"les contextes d'exécution locaux et globaux." #: library/doctest.rst:1689 msgid "" @@ -1857,19 +2468,24 @@ msgstr "" #: library/doctest.rst:1700 msgid "Debug the doctests in a string." -msgstr "" +msgstr "Débogue les *doctests* dans une chaîne de caractères." #: library/doctest.rst:1702 msgid "" "This is like function :func:`debug` above, except that a string containing " "doctest examples is specified directly, via the *src* argument." msgstr "" +"Ceci est similaire à la fonction :func:`debug` décrite ci-haut, mis-à-part " +"qu'une chaîne de caractères contenant des exemples *doctest* est définie " +"directement, par l'option *src*." #: library/doctest.rst:1705 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." msgstr "" +"L'option *pm* a la même définition que dans la fonction :func:`debug` ci-" +"haut." #: library/doctest.rst:1707 msgid "" @@ -1877,6 +2493,10 @@ msgid "" "execution context. If not specified, or ``None``, an empty dictionary is " "used. If specified, a shallow copy of the dictionary is used." msgstr "" +"L'option *globs* définit un dictionnaire à utiliser comme contexte " +"d'exécution global et local. Si elle n'est pas définie, ou si ``None``, un " +"dictionnaire vide est utilisé. Si définie, une copie superficielle du " +"dictionnaire est utilisée." #: library/doctest.rst:1712 msgid "" @@ -1902,12 +2522,17 @@ msgid "" "documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" "api`." msgstr "" +"Pour de l'information sur les paramètres et méthodes du constructeur, voir " +"la documentation pour la classe :class:`DocTestrunner` dans la section :reF:" +"`doctest-advanced-api`." #: library/doctest.rst:1730 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" msgstr "" +"Il y a deux exceptions qui peuvent être levées par des instances :class:" +"`DebugRunner` :" #: library/doctest.rst:1735 msgid "" @@ -1915,22 +2540,28 @@ msgid "" "example's actual output did not match its expected output. The constructor " "arguments are used to initialize the attributes of the same names." msgstr "" +"Une exception levée par :class:`DocTestRunner` pour signaler que la sortie " +"obtenue suite à un exemple *doctest* ne correspond pas à la sortie attendue. " +"Les arguments du constructeur sont utilisés pour initialiser les attributs " +"des mêmes noms." #: library/doctest.rst:1739 msgid ":exc:`DocTestFailure` defines the following attributes:" -msgstr "" +msgstr ":exc:`DocTestFailure` définit les attributs suivants :" #: library/doctest.rst:1768 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" +"L'objet issu de la classe :class:`DocTest` qui était en cours d'exécution " +"lorsque l'exemple a échoué." #: library/doctest.rst:1773 msgid "The :class:`Example` that failed." -msgstr "" +msgstr "L'exemple :class:`Example` qui a échoué." #: library/doctest.rst:1754 msgid "The example's actual output." -msgstr "" +msgstr "La sortie obtenue par l'exécution de l'exemple." #: library/doctest.rst:1759 msgid "" @@ -1938,38 +2569,45 @@ msgid "" "example raised an unexpected exception. The constructor arguments are used " "to initialize the attributes of the same names." msgstr "" +"Une exception levée par :class:`DocTestRunner` afin de signaler qu'un " +"exemple *doctest* a levé une exception inattendue. Les arguments du " +"constructeur sont utilisés pour initialiser les attributs des mêmes noms." #: library/doctest.rst:1763 msgid ":exc:`UnexpectedException` defines the following attributes:" -msgstr "" +msgstr ":exc:`UnexpectedException` définit les attributs suivants :" #: library/doctest.rst:1778 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." msgstr "" +"Un n-uplet contenant l'information au sujet de l'exception inattendue, telle " +"que retourné par :func:`sys.exc_info`." #: library/doctest.rst:1785 msgid "Soapbox" -msgstr "" +msgstr "Éditorial" #: library/doctest.rst:1787 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" msgstr "" +"Comme mentionné dans l'introduction, :mod:`doctest` a présentement trois " +"usages principaux :" #: library/doctest.rst:1790 msgid "Checking examples in docstrings." -msgstr "" +msgstr "Vérifier les exemples dans les *docstrings*." #: library/doctest.rst:1792 msgid "Regression testing." -msgstr "" +msgstr "Test de régression." #: library/doctest.rst:1794 msgid "Executable documentation / literate testing." -msgstr "" +msgstr "De la documentation exécutable / des tests littéraires." #: library/doctest.rst:1796 msgid "" @@ -2046,6 +2684,11 @@ msgid "" "run only the failing doctest while you debug the problem. Here is a minimal " "example of such a test runner::" msgstr "" +"Lorsque vous placez vos tests dans un module, le module lui-même peut être " +"l'exécuteur de tests. Lorsqu'un test échoue, vous pouvez signifier à votre " +"exécuteur de tests de rouler une seconde fois uniquement les tests qui " +"échouent et ce, tant que vous travaillez sur le problème. Voici un exemple " +"minimal d'un test exécuteur de tests ::" #: library/doctest.rst:1863 msgid "Footnotes" @@ -2057,3 +2700,7 @@ msgid "" "Trying to guess where one ends and the other begins is too error-prone, and " "that also makes for a confusing test." msgstr "" +"Les exemples contenant à la fois la sortie attendue et une exception ne sont " +"pas supportés. Tenter de deviner où finit l'un et où commence l'autre peut " +"mener à plusieurs erreurs, en plus d'être un test qui soit source de " +"confusion." diff --git a/library/email.errors.po b/library/email.errors.po index a5e4dc25..f08fcf03 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -19,9 +19,8 @@ msgid ":mod:`email.errors`: Exception and Defect classes" msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" #: ../Doc/library/email.errors.rst:7 -#, fuzzy msgid "**Source code:** :source:`Lib/email/errors.py`" -msgstr "**Code source :** :source:`Lib/email/iterators.py`" +msgstr "**Code source :** :source:`Lib/email/errors.py`" #: ../Doc/library/email.errors.rst:11 msgid "" diff --git a/library/email.po b/library/email.po index 76e7a381..4e0c34c3 100644 --- a/library/email.po +++ b/library/email.po @@ -23,7 +23,6 @@ msgid "**Source code:** :source:`Lib/email/__init__.py`" msgstr "**Code source:** :source:`Lib/email/__init__.py`" #: library/email.rst:15 -#, fuzzy msgid "" "The :mod:`email` package is a library for managing email messages. It is " "specifically *not* designed to do any sending of email messages to SMTP (:" @@ -37,7 +36,7 @@ msgstr "" "spécifiquement conçu pour ne pas gérer les envois d'e-mails vers SMTP (:rfc:" "`2821`), NNTP, ou autres serveurs ; ces fonctions sont du ressort " "des modules comme :mod:`smtplib` et :mod:`nntplib`. Le paquet :mod:`email` " -"tente de respecter les RFC autant que possible, il gère :rfc:`5233` et :rfc:" +"tente de respecter les RFC autant que possible, il gère :rfc:`5322` et :rfc:" "`6532`, ainsi que les RFCs en rapport avec les MIME comme :rfc:`2045`, :rfc:" "`2046`, :rfc:`2047`, :rfc:`2183`, et :rfc:`2231`." diff --git a/library/ensurepip.po b/library/ensurepip.po index 36b28129..18665f14 100644 --- a/library/ensurepip.po +++ b/library/ensurepip.po @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/ensurepip.rst:2 msgid ":mod:`ensurepip` --- Bootstrapping the ``pip`` installer" -msgstr "" +msgstr ":mod:`ensurepip` — Amorçage de l'installateur ``pip``" #: ../Doc/library/ensurepip.rst:12 msgid "" @@ -28,6 +28,12 @@ msgid "" "is bundled with maintenance and feature releases of the CPython reference " "interpreter." msgstr "" +"Le module :mod:`ensurepip` met en place l'installateur ``pip`` dans un " +"environnement Python, classique ou virtuel. Ce principe d'amorçage a été " +"choisi car ``pip`` est un projet séparé de Python avec son propre cycle de " +"versions. Il permet en particulier d'embarquer la version la plus récente de " +"``pip`` dans les mises à jour de maintenance de l'interpréteur CPython comme " +"dans les nouvelles versions principales." #: ../Doc/library/ensurepip.rst:19 msgid "" @@ -36,12 +42,19 @@ msgid "" "needed if installing ``pip`` was skipped when installing Python (or when " "creating a virtual environment) or after explicitly uninstalling ``pip``." msgstr "" +"Dans la plupart des cas, il n'est pas nécessaire de recourir à ce module. " +"``pip`` est le plus souvent déjà installé pour vous. Cependant, " +"``ensurepip`` peut s'avérer utile si l'installation de ``pip`` a été sautée " +"au moment de l'installation de Python (ou en créant un environnement " +"virtuel), ou bien si ``pip`` a été désinstallé par l'utilisateur." #: ../Doc/library/ensurepip.rst:27 msgid "" "This module *does not* access the internet. All of the components needed to " "bootstrap ``pip`` are included as internal parts of the package." msgstr "" +"Ce module n'accède *pas* au réseau. Tout ce qu'il faut pour amorcer ``pip`` " +"est compris dans le paquet." #: ../Doc/library/ensurepip.rst:34 msgid ":ref:`installing-index`" @@ -49,15 +62,17 @@ msgstr ":ref:`installing-index`" #: ../Doc/library/ensurepip.rst:34 msgid "The end user guide for installing Python packages" -msgstr "" +msgstr "Guide de l'utilisateur final pour installer des paquets Python" #: ../Doc/library/ensurepip.rst:36 msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" msgstr "" +":pep:`453` : Amorçage explicite de pip dans les installations de Python" #: ../Doc/library/ensurepip.rst:37 msgid "The original rationale and specification for this module." msgstr "" +"Les motivations pour l'ajout de ce module et sa spécification d'origine" #: ../Doc/library/ensurepip.rst:41 #, fuzzy @@ -68,10 +83,12 @@ msgstr "Interface en ligne de commande" msgid "" "The command line interface is invoked using the interpreter's ``-m`` switch." msgstr "" +"On fait appel à l'interface en ligne de commande à l'aide de l'option ``-m`` " +"de l'interpréteur." #: ../Doc/library/ensurepip.rst:45 msgid "The simplest possible invocation is::" -msgstr "" +msgstr "L'invocation la plus simple est ::" #: ../Doc/library/ensurepip.rst:49 msgid "" @@ -88,6 +105,9 @@ msgid "" "virtual environment). The installation location can be controlled through " "two additional command line options:" msgstr "" +"``pip`` est installé par défaut dans l'environnement virtuel courant, s'il y " +"en a un, ou bien dans le dossier ``site-packages`` du système. L'emplacement " +"d'installation se règle à travers deux options :" #: ../Doc/library/ensurepip.rst:61 msgid "" @@ -95,6 +115,9 @@ msgid "" "rather than the root of the currently active virtual environment (if any) or " "the default root for the current Python installation." msgstr "" +"``--root `` : installe ``pip`` sur un chemin relatif à la racine " +"*dossier* au lieu de la racine de l'environnement virtuel ou la racine par " +"défaut de l'installation de Python." #: ../Doc/library/ensurepip.rst:64 msgid "" @@ -102,6 +125,9 @@ msgid "" "than globally for the current Python installation (this option is not " "permitted inside an active virtual environment)." msgstr "" +"``--user`` : installe ``pip`` dans le dossier ``site-packages`` propre à " +"l'utilisateur au lieu du dossier global de l'installation de Python. Cette " +"option n'est pas valide dans un environnement virtuel." #: ../Doc/library/ensurepip.rst:68 msgid "" @@ -109,31 +135,40 @@ msgid "" "stands for the version of Python used to invoke ``ensurepip``). The scripts " "installed can be controlled through two additional command line options:" msgstr "" +"Par défaut, les commandes ``pipX`` et ``pipX.Y`` sont créées (où X.Y est la " +"version de Python avec laquelle ``ensurepip`` est utilisé). Cela se contrôle " +"par deux options supplémentaires :" #: ../Doc/library/ensurepip.rst:73 msgid "" "``--altinstall``: if an alternate installation is requested, the ``pipX`` " "script will *not* be installed." msgstr "" +"``--altinstall`` : dans ce mode d'« installation parallèle », seule la " +"commande ``pipX.Y`` est ajoutée, et pas la commande ``pipX``." #: ../Doc/library/ensurepip.rst:76 msgid "" "``--default-pip``: if a \"default pip\" installation is requested, the " "``pip`` script will be installed in addition to the two regular scripts." msgstr "" +"``--default-pip`` : ce mode d'« installation de la version par défaut » crée " +"la commande ``pip`` en plus de ``pipX`` et ``pipX.Y``." #: ../Doc/library/ensurepip.rst:79 msgid "" "Providing both of the script selection options will trigger an exception." -msgstr "" +msgstr "Combiner ces deux options conduit à une exception." #: ../Doc/library/ensurepip.rst:83 msgid "Module API" -msgstr "" +msgstr "API du module" #: ../Doc/library/ensurepip.rst:85 msgid ":mod:`ensurepip` exposes two functions for programmatic use:" msgstr "" +"Le module :mod:`ensurepip` définit deux fonctions pour utilisation dans les " +"programmes :" #: ../Doc/library/ensurepip.rst:89 msgid "" @@ -144,6 +179,7 @@ msgstr "" #: ../Doc/library/ensurepip.rst:96 msgid "Bootstraps ``pip`` into the current or designated environment." msgstr "" +"Amorce ``pip`` dans l'environnement courant ou un environnement spécifique." #: ../Doc/library/ensurepip.rst:98 msgid "" @@ -151,6 +187,9 @@ msgid "" "*root* is ``None``, then installation uses the default install location for " "the current environment." msgstr "" +"Passer *root* permet de changer la racine du chemin d'installation. Si " +"*root* vaut ``None`` (la valeur par défaut), l'installation se fait dans la " +"racine par défaut pour l'environnement courant." #: ../Doc/library/ensurepip.rst:102 msgid "" @@ -163,39 +202,52 @@ msgid "" "*user* indicates whether to use the user scheme rather than installing " "globally." msgstr "" +"Si *user* vaut vrai, ``pip`` est mis dans des chemins qui le rendent " +"disponible pour cet utilisateur uniquement, et non pour tous les " +"utilisateurs de l'installation de Python." #: ../Doc/library/ensurepip.rst:108 msgid "" "By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " "stands for the current version of Python)." msgstr "" +"Par défaut, les commandes créées sont ``pipX`` et ``pipX.Y`` (où X.Y est la " +"version de Python)." #: ../Doc/library/ensurepip.rst:111 msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." -msgstr "" +msgstr "Si *altinstall* vaut vrai, ``pipX`` n'est pas créée." #: ../Doc/library/ensurepip.rst:113 msgid "" "If *default_pip* is set, then ``pip`` will be installed in addition to the " "two regular scripts." msgstr "" +"Si *default_pip* vaut vrai, la commande ``pip`` est créée en plus des deux " +"autres." #: ../Doc/library/ensurepip.rst:116 msgid "" "Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." msgstr "" +"Le fait de combiner *altinstall* et *default_pip* lève l'exception :exc:" +"`ValueError`." #: ../Doc/library/ensurepip.rst:119 msgid "" "*verbosity* controls the level of output to :data:`sys.stdout` from the " "bootstrapping operation." msgstr "" +"*verbosity* règle le niveau de verbosité des messages émis sur :data:`sys." +"stdout` pendant l'amorçage." #: ../Doc/library/ensurepip.rst:123 msgid "" "Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " "argument ``root``." msgstr "" +"Cette fonction lève un :ref:`événement d'audit ` ``ensurepip." +"bootstrap`` avec l'argument ``root``." #: ../Doc/library/ensurepip.rst:126 msgid "" @@ -203,6 +255,9 @@ msgid "" "environ``. Invoking the command line interface in a subprocess instead " "allows these side effects to be avoided." msgstr "" +"Le processus d'amorçage a des effets de bord sur ``sys.path`` et ``os." +"environ``. Pour les éviter, on peut appeler l'interface en ligne de commande " +"dans un sous-processus." #: ../Doc/library/ensurepip.rst:132 msgid "" @@ -211,3 +266,7 @@ msgid "" "be present by default (as the dependencies may be removed in a future " "version of ``pip``)." msgstr "" +"L'amorçage peut installer des modules supplémentaires qui sont requis pour " +"``pip``. Les autres programmes ne doivent pas prendre pour acquise la " +"présence de ces modules, car ``pip`` pourrait dans une version future se " +"passer de ces dépendances." diff --git a/library/enum.po b/library/enum.po index 86dfb0c7..0ba4ede2 100644 --- a/library/enum.po +++ b/library/enum.po @@ -36,13 +36,17 @@ msgstr "" #: library/enum.rst:22 msgid "Case of Enum Members" -msgstr "" +msgstr "Convention de nommage pour les membres d'une **Enum**" #: library/enum.rst:24 msgid "" "Because Enums are used to represent constants we recommend using UPPER_CASE " "names for enum members, and will be using that style in our examples." msgstr "" +"Puisque les **Enums** sont utilisées pour représenter des constantes, il est " +"recommandé d'utiliser des majuscules (format ``MAJUSCULE_AVEC_SOULIGNÉS``) " +"pour leurs membres. Cette convention de style sera utilisée dans les " +"exemples." #: library/enum.rst:30 msgid "Module Contents" @@ -313,20 +317,20 @@ msgstr "" "être redéfinie ::" #: library/enum.rst:279 -#, fuzzy msgid "" "The goal of the default :meth:`_generate_next_value_` method is to provide " "the next :class:`int` in sequence with the last :class:`int` provided, but " "the way it does this is an implementation detail and may change." msgstr "" -"La méthode par défaut :meth:`_generate_next_value_` doit fournir le :class:" -"`int` suivant de la séquence en fonction du dernier :class:`int` fourni, " -"mais la séquence générée dépend de l'implémentation Python." +"La méthode :meth:`_generate_next_value_` doit renvoyer le prochain :class:" +"`int` de la séquence à partir du dernier :class:`int` fourni, mais " +"l'implémentation de cette fonction peut changer." #: library/enum.rst:285 msgid "" "The :meth:`_generate_next_value_` method must be defined before any members." msgstr "" +"La méthode :meth:`_generate_next_value_` doit être définie avant tout membre." #: library/enum.rst:288 msgid "Iteration" @@ -901,7 +905,6 @@ msgstr "" "celui-ci était converti en son type de mélange." #: library/enum.rst:752 -#, fuzzy msgid "" ":ref:`Formatted string literals `, :meth:`str.format`, and :func:" "`format` will use the mixed-in type's :meth:`__format__` unless :meth:" @@ -910,10 +913,13 @@ msgid "" "and !r format codes to force usage of the :class:`Enum` class's :meth:" "`__str__` and :meth:`__repr__` methods." msgstr "" -":ref:`Chaînes de caractères formatées littérales ` : :meth:`str." -"format` et :func:`format` appellent la méthode :meth:`__format__` du type de " -"mélange. Pour appeler les fonctions :func:`str` ou :func:`repr` de la " -"classe :class:`Enum`, il faut utiliser les codes de formatage `!s` ou `!r`." +"Les :ref:`chaînes littérales formatées ` : :meth:`str.format` et :" +"func:`format` appellent la méthode :meth:`__format__` du type dérivé à moins " +"que :meth:`__str__` ou :meth:`__format__` soit surchargée dans la sous-" +"classe, auquel cas les méthodes surchargées ou celles de la classe :class:" +"`Enum` seront utilisées. Pour appeler les méthodes :meth:`__str__` ou :meth:" +"`__repr__` de la classe :class:`Enum`, il faut utiliser les codes de " +"formatage ``!s`` ou ``!r``." #: library/enum.rst:760 msgid "When to use :meth:`__new__` vs. :meth:`__init__`" @@ -925,6 +931,10 @@ msgid "" "of the :class:`Enum` member. Any other modifications may go in either :meth:" "`__new__` or :meth:`__init__`, with :meth:`__init__` being preferred." msgstr "" +":meth:`__new__` doit être utilisé dès que vous souhaitez personnaliser la " +"valeur effective des membres d'un :class:`Enum`. Tout autre modification " +"peut autant aller dans :meth:`__new__` que dans :meth:`__init__`, mais " +"l'usage de :meth:`__init__` est recommandé." #: library/enum.rst:766 msgid "" @@ -1041,12 +1051,16 @@ msgid "" "To make a more general purpose ``AutoNumber``, add ``*args`` to the " "signature::" msgstr "" +"Pour définir un ``AutoNumber`` plus générique, ajoutez ``*args`` à la " +"signature ::" #: library/enum.rst:901 msgid "" "Then when you inherit from ``AutoNumber`` you can write your own " "``__init__`` to handle any extra arguments::" msgstr "" +"Ainsi, quand vous héritez d'``AutoNumber``, vous pouvez définir ``__init__`` " +"pour gérer tout argument supplémentaire ::" #: library/enum.rst:920 msgid "" diff --git a/library/exceptions.po b/library/exceptions.po index b41ef1c3..007201b5 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -108,7 +108,6 @@ msgstr "" "utilisant :keyword:`from` avec :keyword:`raise` ::" #: library/exceptions.rst:50 -#, fuzzy msgid "" "The expression following :keyword:`from` must be an exception or " "``None``. It will be set as :attr:`__cause__` on the raised exception. " @@ -119,12 +118,12 @@ msgid "" "while leaving the old exception available in :attr:`__context__` for " "introspection when debugging." msgstr "" -"L'expression suivant :keyword:`from` doit être une exception ou ``None``. " -"Elle sera assignée en tant que :attr:`__cause__` dans l'exception levée. " -"Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" +"L'expression suivant :keyword:`from` doit être une exception ou " +"``None``. Elle sera assignée en tant que :attr:`__cause__` dans l'exception " +"levée. Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" "`__suppress_context__` à ``True``, de sorte que l'utilisation de ``raise " "new_exc from None`` remplace bien l'ancienne exception avec la nouvelle à " -"des fins d'affichage (e.g., convertir :exc:`KeyError` en :exc:" +"des fins d'affichage (par exemple, convertir :exc:`KeyError` en :exc:" "`AttributeError`), tout en laissant l'ancienne exception disponible dans :" "attr:`__context__` pour introspection lors du débogage." @@ -677,26 +676,28 @@ msgid "" msgstr "" #: library/exceptions.rst:404 -#, fuzzy msgid "The name of the file the syntax error occurred in." -msgstr "Le nom de l'encodage qui a provoqué l'erreur." +msgstr "Le nom du fichier dans lequel l'erreur de syntaxe a été rencontrée." #: library/exceptions.rst:408 msgid "" "Which line number in the file the error occurred in. This is 1-indexed: the " "first line in the file has a ``lineno`` of 1." msgstr "" +"Le numéro de la ligne dans le fichier où l'erreur s'est produite. L'indiçage " +"commence à 1 : ``lineno`` vaut 1 pour la première ligne du fichier." #: library/exceptions.rst:413 msgid "" "The column in the line where the error occurred. This is 1-indexed: the " "first character in the line has an ``offset`` of 1." msgstr "" +"La colonne dans la ligne où l'erreur s'est produite. L'indiçage commence à " +"1 : ``offset`` vaut 1 pour le premier caractère de la ligne." #: library/exceptions.rst:418 -#, fuzzy msgid "The source code text involved in the error." -msgstr "Le nom de l'encodage qui a provoqué l'erreur." +msgstr "Le texte du code source impliqué dans l'erreur." #: library/exceptions.rst:423 msgid "" diff --git a/library/fileinput.po b/library/fileinput.po index 93f78480..d5e11118 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/fileinput.rst:2 msgid ":mod:`fileinput` --- Iterate over lines from multiple input streams" -msgstr "" +msgstr ":mod:`fileinput` — Parcourt les lignes provenant de plusieurs entrées" #: ../Doc/library/fileinput.rst:10 msgid "**Source code:** :source:`Lib/fileinput.py`" @@ -28,10 +28,13 @@ msgid "" "over standard input or a list of files. If you just want to read or write " "one file see :func:`open`." msgstr "" +"Ce module offre une classe auxiliaire et des fonctions pour lire facilement " +"l'entrée standard ou bien les fichiers d'une liste. Si vous n'avez besoin de " +"lire ou écrire qu'un seul fichier, il suffit de :func:`open`." #: ../Doc/library/fileinput.rst:18 msgid "The typical use is::" -msgstr "" +msgstr "Ce module s'utilise le plus couramment comme ceci :" #: ../Doc/library/fileinput.rst:24 msgid "" @@ -42,6 +45,12 @@ msgid "" "it as the first argument to :func:`.input`. A single file name is also " "allowed." msgstr "" +"Ce code traite une à une les lignes des fichiers de ``sys.argv[1:]``. Si " +"cette liste est vide (pas d'argument en ligne de commande), il lit l'entrée " +"standard. Le nom de fichier ``'-'`` est équivalent à l'entrée standard (les " +"arguments facultatifs *mode* et *openhook* sont ignorés dans ce cas). On " +"peut aussi passer la liste des fichiers comme argument à :func:`.input`, " +"voire un nom de fichier unique." #: ../Doc/library/fileinput.rst:30 msgid "" @@ -50,12 +59,16 @@ msgid "" "`FileInput`. If an I/O error occurs during opening or reading a file, :exc:" "`OSError` is raised." msgstr "" +"Par défaut, tous les fichiers sont ouverts en mode texte. On peut changer ce " +"comportement à l'aide du paramètre *mode* de la fonction :func:`.input` ou " +"du constructeur de :class:`FileInput`. Si une erreur d'entrée-sortie se " +"produit durant l'ouverture ou la lecture d'un fichier, l'exception :exc:" +"`OSError` est levée." #: ../Doc/library/fileinput.rst:35 -#, fuzzy msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." msgstr "" -":exc:`IOError` était normalement levée, elle est maintenant un alias de :exc:" +":exc:`IOError` était levée auparavant, elle est devenue un alias de :exc:" "`OSError`." #: ../Doc/library/fileinput.rst:38 @@ -64,6 +77,10 @@ msgid "" "return no lines, except perhaps for interactive use, or if it has been " "explicitly reset (e.g. using ``sys.stdin.seek(0)``)." msgstr "" +"Si ``sys.stdin`` apparaît plus d'une fois dans la liste, toutes les lignes " +"sont consommées dès la première fois, sauf éventuellement en cas d'usage " +"interactif ou si le flux d'entrée standard a été modifié dans l'intervalle " +"(par exemple avec ``sys.stdin.seek(0)``)." #: ../Doc/library/fileinput.rst:42 msgid "" @@ -71,12 +88,18 @@ msgid "" "in the list of filenames is noticeable at all is when the last file opened " "is empty." msgstr "" +"Les fichiers vides sont ouverts et refermés immédiatement. Ils ne sont pas " +"détectables dans la liste des fichiers, sauf éventuellement dans le cas où " +"le dernier fichier est vide." #: ../Doc/library/fileinput.rst:46 msgid "" "Lines are returned with any newlines intact, which means that the last line " "in a file may not have one." msgstr "" +"Les caractères de saut de ligne sont préservés, donc toutes les lignes se " +"terminent par un saut de ligne, sauf éventuellement la dernière ligne d'un " +"fichier." #: ../Doc/library/fileinput.rst:49 msgid "" @@ -89,7 +112,7 @@ msgstr "" #: ../Doc/library/fileinput.rst:55 msgid "The following function is the primary interface of this module:" -msgstr "" +msgstr "La fonction suivante constitue l'interface principale du module :" #: ../Doc/library/fileinput.rst:60 msgid "" @@ -98,6 +121,11 @@ msgid "" "to use during iteration. The parameters to this function will be passed " "along to the constructor of the :class:`FileInput` class." msgstr "" +"Crée une instance de :class:`FileInput`, qui devient l'état global pour " +"toutes les fonctions du module. Elle est également renvoyée afin que " +"l'utilisateur puisse la parcourir comme un objet itérable. Tous les " +"paramètres de cette fonction sont transmis au constructeur de :class:" +"`FileInput`." #: ../Doc/library/fileinput.rst:65 msgid "" @@ -105,32 +133,44 @@ msgid "" "keyword:`with` statement. In this example, *input* is closed after the :" "keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" +"Les instances de :class:`FileInput` peuvent s'utiliser comme gestionnaires " +"de contexte, avec l'instruction :keyword:`with`. Dans le code suivant, " +"*input* est fermé lorsque le bloc :keyword:`!with` se termine, y compris si " +"une exception l'a interrompu." #: ../Doc/library/fileinput.rst:73 ../Doc/library/fileinput.rst:166 msgid "Can be used as a context manager." -msgstr "" +msgstr "prise en charge du protocole de gestionnaire de contexte." #: ../Doc/library/fileinput.rst:76 msgid "The keyword parameters *mode* and *openhook* are now keyword-only." -msgstr "" +msgstr "les paramètres *mode* et *openhook* doivent être nommés." #: ../Doc/library/fileinput.rst:80 msgid "" "The following functions use the global state created by :func:`fileinput." "input`; if there is no active state, :exc:`RuntimeError` is raised." msgstr "" +"Toutes les fonctions suivantes font appel à l'état global du module mis en " +"place par :func:`fileinput.input`. L'absence de cet état déclenche " +"l'exception :exc:`RuntimeError`." #: ../Doc/library/fileinput.rst:86 msgid "" "Return the name of the file currently being read. Before the first line has " "been read, returns ``None``." msgstr "" +"Renvoie le nom du fichier en train d'être lu, ou ``None`` avant la lecture " +"de la toute première ligne." #: ../Doc/library/fileinput.rst:92 msgid "" "Return the integer \"file descriptor\" for the current file. When no file is " "opened (before the first line and between files), returns ``-1``." msgstr "" +"Renvoie le descripteur de fichier (sous forme d'entier) utilisé pour lire le " +"fichier courant. Si aucun fichier n'est ouvert (avant la première ligne et " +"entre les fichiers), le résultat est ``-1``." #: ../Doc/library/fileinput.rst:98 msgid "" @@ -138,6 +178,10 @@ msgid "" "Before the first line has been read, returns ``0``. After the last line of " "the last file has been read, returns the line number of that line." msgstr "" +"Renvoie le numéro de la ligne qui vient d'être lue, en commençant par la " +"première ligne du premier fichier. Avant cette toute première ligne, renvoie " +"``0``. Après la dernière ligne du dernier fichier, renvoie le numéro de " +"cette ligne." #: ../Doc/library/fileinput.rst:105 msgid "" @@ -145,18 +189,25 @@ msgid "" "read, returns ``0``. After the last line of the last file has been read, " "returns the line number of that line within the file." msgstr "" +"Renvoie le numéro de ligne relatif au fichier courant. Avant la toute " +"première ligne, renvoie ``0``. Après la toute dernière ligne, renvoie le " +"numéro de cette ligne par rapport à son fichier source." #: ../Doc/library/fileinput.rst:112 msgid "" "Return ``True`` if the line just read is the first line of its file, " "otherwise return ``False``." msgstr "" +"Renvoie ``True`` ou ``False`` selon que la ligne qui vient d'être lue est la " +"première du fichier." #: ../Doc/library/fileinput.rst:118 msgid "" "Return ``True`` if the last line was read from ``sys.stdin``, otherwise " "return ``False``." msgstr "" +"``True`` ou ``False`` selon que la dernière ligne lue provenait de ``sys." +"stdin`` ou non." #: ../Doc/library/fileinput.rst:124 msgid "" @@ -168,16 +219,27 @@ msgid "" "file. After the last line of the last file has been read, this function has " "no effect." msgstr "" +"Ferme le fichier courant et laisse la lecture se poursuivre au début du " +"suivant (ou se terminer si c'était le dernier fichier ; dans ce cas cette " +"fonction ne fait rien). Les lignes court-circuitées ne comptent pas dans les " +"numéros des lignes des fichiers suivants. Le nom du fichier courant n'est " +"pas modifié immédiatement, mais seulement après que la première ligne du " +"fichier suivant a été lue. Cette fonction n'a pas d'effet avant la lecture " +"de la première ligne (elle ne peut pas sauter le premier fichier)." #: ../Doc/library/fileinput.rst:134 msgid "Close the sequence." msgstr "" +"Ferme le fichier courant et termine la lecture en sautant les fichiers " +"suivants." #: ../Doc/library/fileinput.rst:136 msgid "" "The class which implements the sequence behavior provided by the module is " "available for subclassing as well:" msgstr "" +"La classe qui implémente ce comportement du module est publique. On peut en " +"créer des classes filles." #: ../Doc/library/fileinput.rst:142 msgid "" @@ -203,6 +265,10 @@ msgid "" "*filename* and *mode*, and returns an accordingly opened file-like object. " "You cannot use *inplace* and *openhook* together." msgstr "" +"S'il est fourni, l'argument *openhook* est une fonction. Elle est appelée " +"avec les paramètres *filename* et *mode*, et renvoie un objet fichier-" +"compatible ouvert selon *mode*. Notez que *openhook* et *inplace* sont " +"mutuellement exclusifs." #: ../Doc/library/fileinput.rst:158 msgid "" @@ -210,18 +276,22 @@ msgid "" "keyword:`with` statement. In this example, *input* is closed after the :" "keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" +"Les objets :class:`FileInput` peuvent aussi fonctionner comme gestionnaires " +"de contexte dans un bloc :keyword:`with`. Dans l'exemple suivant, *input* " +"est fermé à la fin du bloc :keyword:`!with`, même arrêté par une exception." #: ../Doc/library/fileinput.rst:169 msgid "The ``'rU'`` and ``'U'`` modes." -msgstr "" +msgstr "modes ``'rU'`` et ``'U'``." #: ../Doc/library/fileinput.rst:172 msgid "Support for :meth:`__getitem__` method is deprecated." -msgstr "" +msgstr "accès à un indice avec :meth:`__getitem__`." #: ../Doc/library/fileinput.rst:175 msgid "The keyword parameter *mode* and *openhook* are now keyword-only." msgstr "" +"les paramètres *mode* et *openhook* doivent impérativement être nommés." #: ../Doc/library/fileinput.rst:180 msgid "" @@ -236,10 +306,22 @@ msgid "" "extension is ``'.bak'`` and it is deleted when the output file is closed. " "In-place filtering is disabled when standard input is read." msgstr "" +"**Filtrage sur place optionnel :** si ``inplace=True`` est passé à :func:" +"`fileinput.input` ou au constructeur de :class:`FileInput`, chaque fichier " +"d'entrée est déplacé vers une sauvegarde et la sortie standard est redirigée " +"vers le fichier lui-même, ce qui permet d'écrire des filtres qui modifient " +"directement les fichiers existants. Si le paramètre *backup* est fourni, il " +"donne l'extension des fichiers de sauvegarde. Dans ce cas, la sauvegarde est " +"conservée après l'opération. Par défaut, les fichiers de sauvegarde ont " +"l'extension ``'.bak'`` et sont supprimés dès que le fichier de sortie est " +"fermé. Si un fichier existe avec le même nom que la sauvegarde, il est " +"écrasé. Le filtrage sur place ne fait rien pour l'entrée standard." #: ../Doc/library/fileinput.rst:192 msgid "The two following opening hooks are provided by this module:" msgstr "" +"Les deux fonctions suivantes fournissent des valeurs prédéfinies pour " +"*openhook*." #: ../Doc/library/fileinput.rst:196 msgid "" @@ -248,6 +330,11 @@ msgid "" "modules. If the filename extension is not ``'.gz'`` or ``'.bz2'``, the file " "is opened normally (ie, using :func:`open` without any decompression)." msgstr "" +"Ouvre de façon transparente les fichiers compressés avec gzip ou bzip2, à " +"l'aide des modules :mod:`gzip` et :mod:`bz2`. Les fichiers compressés sont " +"reconnus aux extensions ``'.gz'`` et ``'.bz2'``. Tous les fichiers qui n'ont " +"pas l'une de ces deux extensions sont ouverts normalement (avec :func:" +"`open`, sans décompression)." #: ../Doc/library/fileinput.rst:201 msgid "" @@ -260,13 +347,18 @@ msgid "" "Returns a hook which opens each file with :func:`open`, using the given " "*encoding* and *errors* to read the file." msgstr "" +"Renvoie une fonction qui ouvre les fichiers en passant à :func:`open` les " +"arguments *encoding* et *errors*. Le résultat peut être exploité à travers " +"le point d'entrée automatique *openhook*." #: ../Doc/library/fileinput.rst:209 msgid "" "Usage example: ``fi = fileinput.FileInput(openhook=fileinput." "hook_encoded(\"utf-8\", \"surrogateescape\"))``" msgstr "" +"Exemple d'utilisation : ``fi = fileinput.FileInput(openhook=fileinput." +"hook_encoded(\"utf-8\", \"surrogateescape\"))``." #: ../Doc/library/fileinput.rst:213 msgid "Added the optional *errors* parameter." -msgstr "" +msgstr "ajout du paramètre facultatif *errors*." diff --git a/library/ftplib.po b/library/ftplib.po index 8566108f..04472fb9 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:2 msgid ":mod:`ftplib` --- FTP protocol client" -msgstr "" +msgstr ":mod:`ftplib` — Le protocole client FTP" #: ../Doc/library/ftplib.rst:7 msgid "**Source code:** :source:`Lib/ftplib.py`" @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:22 msgid "Here's a sample session using the :mod:`ftplib` module::" -msgstr "" +msgstr "Voici un exemple de session utilisant le module :mod:`ftplib` ::" #: ../Doc/library/ftplib.rst:42 msgid "The module defines the following items:" @@ -55,6 +55,8 @@ msgstr "" #: ../Doc/library/ftplib.rst:55 msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" msgstr "" +"La classe :class:`FTP` peut s'utiliser avec l'instruction :keyword:`with`, " +"p. ex.:" #: ../Doc/library/ftplib.rst:69 msgid "Support for the :keyword:`with` statement was added." @@ -99,23 +101,27 @@ msgstr "" #: ../Doc/library/ftplib.rst:108 msgid "Here's a sample session using the :class:`FTP_TLS` class::" -msgstr "" +msgstr "Voici un exemple de session utilisant la classe :class:`FTP_TLS` ::" #: ../Doc/library/ftplib.rst:121 msgid "Exception raised when an unexpected reply is received from the server." -msgstr "" +msgstr "Exception levée lorsqu'une réponse inattendue est reçue du serveur." #: ../Doc/library/ftplib.rst:126 msgid "" "Exception raised when an error code signifying a temporary error (response " "codes in the range 400--499) is received." msgstr "" +"Exception levée lorsqu'un code d'erreur signifiant une erreur temporaire " +"(code de réponse dans l'intervalle 400-499) est reçu." #: ../Doc/library/ftplib.rst:132 msgid "" "Exception raised when an error code signifying a permanent error (response " "codes in the range 500--599) is received." msgstr "" +"Exception levée lorsqu'un code d'erreur signifiant une erreur permanente " +"(code de réponse dans l'intervalle 500-599) est reçu." #: ../Doc/library/ftplib.rst:138 msgid "" @@ -123,6 +129,9 @@ msgid "" "the response specifications of the File Transfer Protocol, i.e. begin with a " "digit in the range 1--5." msgstr "" +"Exception levée lorsqu'une réponse reçue du serveur ne correspond pas aux à " +"la spécification de File Transfer Protocol, c.-à-d. qu'elle doit commencer " +"par un chiffre dans l'intervalle 1-5." #: ../Doc/library/ftplib.rst:145 msgid "" @@ -156,9 +165,9 @@ msgid "" msgstr "" #: ../Doc/library/ftplib.rst:168 -#, fuzzy msgid ":class:`FTP` instances have the following methods:" -msgstr "Les instances :class:`Mailbox` contiennent les méthodes suivantes :" +msgstr "" +"Les instances de la classe :class:`FTP` possèdent les méthodes suivantes :" #: ../Doc/library/ftplib.rst:173 msgid "" @@ -336,10 +345,17 @@ msgid "" "directory). Multiple arguments can be used to pass non-standard options to " "the ``NLST`` command." msgstr "" +"Renvoie une liste de noms de fichiers comme celle que renvoie la commande " +"``NLST``. Le paramètre optionnel *argument* est une liste de dossiers (la " +"valeur par défaut est le répertoire courant du serveur). Plusieurs " +"paramètres peuvent être utilisés pour passer des paramètres non standards à " +"la commande ``NLST``." #: ../Doc/library/ftplib.rst:343 ../Doc/library/ftplib.rst:355 msgid "If your server supports the command, :meth:`mlsd` offers a better API." msgstr "" +"La commande :meth:`mlsd` offre une meilleure API si votre serveur sait la " +"gérer." #: ../Doc/library/ftplib.rst:348 msgid "" @@ -354,6 +370,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:360 msgid "Rename file *fromname* on the server to *toname*." msgstr "" +"Renomme le fichier portant le nom *fromname* en *toname* sur le serveur." #: ../Doc/library/ftplib.rst:365 msgid "" @@ -368,15 +385,15 @@ msgstr "" #: ../Doc/library/ftplib.rst:377 msgid "Create a new directory on the server." -msgstr "" +msgstr "Crée un nouveau dossier sur le serveur." #: ../Doc/library/ftplib.rst:382 msgid "Return the pathname of the current directory on the server." -msgstr "" +msgstr "Renvoie le chemin d'accès au répertoire courant sur le serveur." #: ../Doc/library/ftplib.rst:387 msgid "Remove the directory named *dirname* on the server." -msgstr "" +msgstr "Supprime le dossier portant le nom *dirname* sur le serveur." #: ../Doc/library/ftplib.rst:392 msgid "" @@ -439,8 +456,8 @@ msgstr "" #: ../Doc/library/ftplib.rst:445 msgid "Set up secure data connection." -msgstr "" +msgstr "Établit une connexion de données sécurisée." #: ../Doc/library/ftplib.rst:449 msgid "Set up clear text data connection." -msgstr "" +msgstr "Établit une connexion de données non sécurisées." diff --git a/library/functions.po b/library/functions.po index ce3fe3b9..2d2a6074 100644 --- a/library/functions.po +++ b/library/functions.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-03-23 09:47+0100\n" -"PO-Revision-Date: 2020-05-17 14:15+0200\n" +"PO-Revision-Date: 2023-03-23 10:14+0100\n" "Last-Translator: Loc Cosnier \n" "Language-Team: French \n" "Language: fr\n" @@ -458,14 +458,13 @@ msgstr "" "*null bytes*." #: library/functions.rst:154 -#, fuzzy msgid "" "If it is an object conforming to the :ref:`buffer interface " "`, a read-only buffer of the object will be used to " "initialize the bytes array." msgstr "" -"Si c'est un objet conforme à l'interface *buffer*, un *buffer* en lecture " -"seule de l'objet sera utilisé pour initialiser l'*array*." +"si c'est un objet conforme à :ref:`l'interface tampon `, un " +"tampon en lecture seule de l'objet est utilisé pour initialiser le tableau ;" #: library/functions.rst:157 msgid "" @@ -728,8 +727,8 @@ msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source``, ``filename``." msgstr "" -"Lève un :ref:`auditing event ` ``open`` avec les arguments " -"``file``, ``mode``, ``flags``." +"Lève un :ref:`évènement d'audit ` ``compile`` avec les arguments " +"``source`` et ``filename``." #: library/functions.rst:282 msgid "" @@ -1095,8 +1094,8 @@ msgid "" "Raises an :ref:`auditing event ` ``exec`` with argument " "``code_object``." msgstr "" -"Lève un :ref:`auditing event ` ``open`` avec les arguments " -"``file``, ``mode``, ``flags``." +"Lève un :ref:`évènement d'audit ` ``exec`` avec l'argument " +"``code_object``." #: library/functions.rst:535 msgid "" @@ -1516,13 +1515,12 @@ msgstr "" "de vie ne se chevauchent pas peuvent partager le même :func:`id`." #: library/functions.rst:771 -#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.id`` with argument " "``id``." msgstr "" -"Lève un :ref:`auditing event ` ``builtins.input`` avec l'argument " -"``prompt`` avant de lire l'entrée." +"Lève un :ref:`évènement d'audit ` ``builtins.id`` avec l'argument " +"``id``." #: library/functions.rst:776 msgid "" @@ -1550,8 +1548,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt``." msgstr "" -"Lève un :ref:`auditing event ` ``builtins.input`` avec l'argument " -"``prompt`` avant de lire l'entrée." +"Lève un :ref:`évènement d'audit ` ``builtins.input`` avec " +"l'argument ``prompt``." #: library/functions.rst:791 msgid "" @@ -1567,8 +1565,8 @@ msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "argument ``result``." msgstr "" -"Lève un :ref:`auditing event ` ``builtins.breakpoint`` avec " -"l'argument ``breakpointhook``." +"Lève un :ref:`évènement d'audit ` ``builtins.input/result`` avec " +"l'argument ``result``." #: library/functions.rst:796 msgid "" @@ -1924,14 +1922,14 @@ msgstr "" "préfixe ``0o``, vous pouvez utiliser l'une des méthodes suivantes." #: library/functions.rst:1048 -#, fuzzy msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " "examples of how to use this function." msgstr "" "Ouvre *file* et donne un :term:`objet fichier ` correspondant. " -"Si le fichier ne peut pas être ouvert, une :exc:`OSError` est levée." +"Si le fichier ne peut pas être ouvert, une :exc:`OSError` est levée. Voir :" +"ref:`tut-files` pour plus d'exemple d'utilisation de cette fonction." #: library/functions.rst:1052 msgid "" diff --git a/library/functools.po b/library/functools.po index a8c88729..fd0434eb 100644 --- a/library/functools.po +++ b/library/functools.po @@ -140,14 +140,12 @@ msgstr "" "sans préciser *maxsize* (qui est alors défini à sa valeur par défaut, 128) ::" #: library/functools.rst:103 -#, fuzzy msgid "" "If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " "can grow without bound." msgstr "" "Si *maxsize* est à ``None``, la fonctionnalité LRU est désactivée et le " -"cache peut grossir sans limite. La fonctionnalité LRU fonctionne mieux " -"quand *maxsize* est une puissance de deux." +"cache peut grossir sans limite." #: library/functools.rst:106 msgid "" @@ -241,9 +239,8 @@ msgid "Added the *typed* option." msgstr "L'option *typed* a été ajoutée." #: library/functools.rst:177 -#, fuzzy msgid "Added the *user_function* option." -msgstr "L'option *typed* a été ajoutée." +msgstr "Ajout de l'option *user_function*." #: library/functools.rst:182 msgid "" @@ -367,7 +364,6 @@ msgstr "" "constructeur :class:`partialmethod`." #: library/functools.rst:300 -#, fuzzy msgid "" "Apply *function* of two arguments cumulatively to the items of *iterable*, " "from left to right, so as to reduce the iterable to a single value. For " @@ -380,14 +376,14 @@ msgid "" "the first item is returned." msgstr "" "Applique *function* avec deux arguments cumulativement aux éléments de " -"*sequence*, de gauche à droite, pour réduire la séquence à une valeur " -"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " -"``((((1+2)+3)+4)+5)``. Le premier argument, *x*, et la valeur de cumul et le " -"deuxième, *y*, est la valeur de mise à jour depuis *sequence*. Si " +"*iterable*, de gauche à droite, pour réduire la séquence à une valeur " +"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " +"``((((1+2)+3)+4)+5)``. L'argument de gauche, *x*, est la valeur de cumul et " +"celui de droite, *y*, est la valeur mise à jour depuis *iterable*. Si " "l'argument optionnel *initializer* est présent, il est placé avant les " "éléments de la séquence dans le calcul, et sert de valeur par défaut quand " -"la séquence est vide. Si *initializer* n'est pas renseigné et que " -"*sequence* ne contient qu'un élément, le premier élément est retourné." +"la séquence est vide. Si *initializer* n'est pas renseigné et que *iterable* " +"ne contient qu'un élément, le premier élément est renvoyé." #: library/functools.rst:309 msgid "Roughly equivalent to::" @@ -500,13 +496,12 @@ msgstr "" "L’attribut :func:`register` gère l’utilisation des indications de type." #: library/functools.rst:445 -#, fuzzy msgid "" "Transform a method into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -"Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." +"Transforme une méthode en une :term:`fonction générique ` :" +"term:`single-dispatch `." #: library/functools.rst:448 #, fuzzy diff --git a/library/gc.po b/library/gc.po index 5384440c..0fa4a8b1 100644 --- a/library/gc.po +++ b/library/gc.po @@ -16,7 +16,7 @@ msgstr "" #: library/gc.rst:2 msgid ":mod:`gc` --- Garbage Collector interface" -msgstr "" +msgstr ":mod:`gc` — Interface du ramasse-miettes" #: library/gc.rst:12 msgid "" @@ -31,23 +31,34 @@ msgid "" "this includes ``gc.DEBUG_SAVEALL``, causing garbage-collected objects to be " "saved in gc.garbage for inspection." msgstr "" +"Ce module constitue une interface au ramasse-miettes facultatif. Il permet " +"de désactiver le ramasse-miettes ou de régler la fréquence des passages. Il " +"fournit des options de débogage, et donne aussi accès aux objets qui ne " +"peuvent pas être détruits bien qu'ils aient été détectés comme non " +"référencés. Le ramasse-miettes vient en complément du système de comptage de " +"références, et peut donc être désactivé pour du code qui ne crée aucun cycle " +"de références. On le désactive avec ``gc.disable()``. Pour remonter à la " +"source d'une fuite de mémoire, utilisez ``gc.set_debug(gc.DEBUG_LEAK)``. " +"Notez que ``gc.DEBUG_LEAK`` inclut ``gc.DEBUG_SAVEALL``. Cette dernière " +"option fait que les objets inatteignables, au lieu d'être détruits, sont " +"placés dans la liste ``gc.garbage`` pour pouvoir y être examinés." #: library/gc.rst:23 -#, fuzzy msgid "The :mod:`gc` module provides the following functions:" -msgstr "Le module :mod:`abc` fournit également la fonction suivante :" +msgstr "Le module :mod:`gc` contient les fonctions suivantes :" #: library/gc.rst:28 msgid "Enable automatic garbage collection." -msgstr "" +msgstr "Active le ramasse-miettes." #: library/gc.rst:33 msgid "Disable automatic garbage collection." -msgstr "" +msgstr "Désactive le ramasse-miettes." #: library/gc.rst:38 msgid "Return ``True`` if automatic collection is enabled." msgstr "" +"Renvoie ``True`` ou ``False`` selon que le ramasse-miettes est activé ou non." #: library/gc.rst:43 msgid "" @@ -56,6 +67,11 @@ msgid "" "0 to 2). A :exc:`ValueError` is raised if the generation number is " "invalid. The number of unreachable objects found is returned." msgstr "" +"Déclenche un passage du ramasse-miettes. En l'absence d'argument, un passage " +"complet est effectué. Le paramètre *generation* permet de le limiter à une " +"génération entre 0 et 2. Une exception :exc:`ValueError` est levée si le " +"numéro de la génération n'est pas valide. Cette fonction renvoie le nombre " +"d'objets inatteignables qui ont été détectés." #: library/gc.rst:48 msgid "" @@ -71,10 +87,13 @@ msgid "" "written to ``sys.stderr``. See below for a list of debugging flags which " "can be combined using bit operations to control debugging." msgstr "" +"Change les options de débogage du ramasse-miettes, qui activent l'écriture " +"d'informations sur ``sys.stderr``. Une liste d'options se trouve plus bas. " +"Les options peuvent se combiner par les opérateurs bit à bit." #: library/gc.rst:63 msgid "Return the debugging flags currently set." -msgstr "" +msgstr "Renvoie les options de débogage actives." #: library/gc.rst:68 msgid "" @@ -82,16 +101,21 @@ msgid "" "returned. If *generation* is not None, return only the objects tracked by " "the collector that are in that generation." msgstr "" +"Renvoie la liste des objets suivis par le ramasse-miettes, à l'exclusion de " +"cette liste elle-même. Le paramètre facultatif *generation* restreint la " +"liste aux objets d'une génération particulière." #: library/gc.rst:72 msgid "New *generation* parameter." -msgstr "" +msgstr "ajout du paramètre *generation*." #: library/gc.rst:75 msgid "" "Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " "``generation``." msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_objects`` avec " +"l'argument ``generation``." #: library/gc.rst:79 msgid "" @@ -99,16 +123,24 @@ msgid "" "statistics since interpreter start. The number of keys may change in the " "future, but currently each dictionary will contain the following items:" msgstr "" +"Renvoie une liste de trois dictionnaires, un par génération. Ils contiennent " +"des statistiques sur l'action du ramasse-miettes depuis le lancement de " +"l'interpréteur. Les clés actuellement présentes sont les suivantes (d'autres " +"pourraient être ajoutées dans des versions ultérieures) :" #: library/gc.rst:84 msgid "``collections`` is the number of times this generation was collected;" msgstr "" +"``collections``, le nombre de fois où cette génération a été examinée par le " +"ramasse-miettes ;" #: library/gc.rst:86 msgid "" "``collected`` is the total number of objects collected inside this " "generation;" msgstr "" +"``collected``, le nombre total d'objets qui ont été détruits alors qu'ils " +"étaient dans cette génération ;" #: library/gc.rst:89 msgid "" @@ -116,12 +148,18 @@ msgid "" "uncollectable (and were therefore moved to the :data:`garbage` list) inside " "this generation." msgstr "" +"``uncollectable``, le nombre total d'objets qui ont été identifiés comme " +"indestructibles (et donc ajoutés à la liste :data:`garbage`) au sein de " +"cette génération." #: library/gc.rst:98 msgid "" "Set the garbage collection thresholds (the collection frequency). Setting " "*threshold0* to zero disables collection." msgstr "" +"Règle les seuils de déclenchement du ramasse-miettes, qui déterminent sa " +"fréquence de passage. Si *threshold0* est mis à zéro, le ramasse-miettes ne " +"passe jamais." #: library/gc.rst:101 msgid "" @@ -141,18 +179,36 @@ msgid "" "org/garbage_collector/#collecting-the-oldest-generation>`_ for more " "information." msgstr "" +"Les objets sont répartis en trois générations en fonction du nombre de " +"passages du ramasse-miettes qui les ont laissés intacts. Les objets " +"fraîchement créés sont placés dans la génération la plus jeune, numéro 0. À " +"chaque fois qu'un objet persiste à la suite d'un passage du ramasse-miettes, " +"il monte d'une génération, ceci jusqu'à la génération 2, la plus âgée. Le " +"ramasse-miettes se déclenche en fonction du nombre d'allocations et de " +"destructions depuis le passage précédent : lorsque les allocations moins les " +"destructions font plus que *threshold0*, un passage est initié. Lors des " +"premiers passages, seule la génération 0 est inspectée. La génération 1 est " +"examinée périodiquement, lorsque le nombre de passages sur la génération 0 " +"depuis le dernier passage ayant aussi examiné la génération 1 vient à " +"excéder *threshold1*. Les règles pour la génération 2 sont plus complexes. " +"Pour avoir des détails, voir `Collecting the oldest generation `_ " +"(dans le guide du développeur, en anglais)." #: library/gc.rst:118 msgid "" "Return the current collection counts as a tuple of ``(count0, count1, " "count2)``." msgstr "" +"Renvoie un triplet des nombres totaux de passages effectués par génération." #: library/gc.rst:124 msgid "" "Return the current collection thresholds as a tuple of ``(threshold0, " "threshold1, threshold2)``." msgstr "" +"Renvoie les seuils de passage sous la forme du triplet ``(threshold0, " +"threshold1, threshold2)``." #: library/gc.rst:130 msgid "" @@ -161,6 +217,11 @@ msgid "" "extension types which do refer to other objects but do not support garbage " "collection will not be found." msgstr "" +"Renvoie la liste des objets qui contiennent directement une référence à l'un " +"quelconque des arguments. Il est à noter que cette fonction prend uniquement " +"en compte les objets suivis par le ramasse-miettes, ce qui exclut les " +"instances de certains types d'extension qui contiennent bien des références " +"sans pour autant prendre en charge le ramassage des miettes." #: library/gc.rst:135 msgid "" @@ -169,6 +230,9 @@ msgid "" "listed among the resulting referrers. To get only currently live objects, " "call :func:`collect` before calling :func:`get_referrers`." msgstr "" +"La liste renvoyée peut contenir des objets déjà isolés, mais maintenus en " +"mémoire à cause d'un cycle. Pour les exclure, appelez :func:`collect` juste " +"avant :func:`get_referrers`." #: library/gc.rst:141 msgid "" @@ -177,12 +241,18 @@ msgid "" "temporarily invalid state. Avoid using :func:`get_referrers` for any purpose " "other than debugging." msgstr "" +"La manipulation des objets renvoyés par :func:`get_referrers` est hasardeuse " +"car ils risquent d'être encore en cours d'initialisation, donc dans un état " +"temporairement instable. Mieux vaut réserver :func:`get_referrers` au " +"débogage." #: library/gc.rst:146 msgid "" "Raises an :ref:`auditing event ` ``gc.get_referrers`` with " "argument ``objs``." msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_referrers`` avec " +"l'argument ``objs``." #: library/gc.rst:151 msgid "" @@ -195,12 +265,25 @@ msgid "" "example, if an integer is directly reachable from an argument, that integer " "object may or may not appear in the result list." msgstr "" +"Renvoie une liste des objets pointés par les références que contiennent les " +"arguments. Ils sont déterminés en appelant, si présente, la méthode C :c:" +"member:`~PyTypeObject.tp_traverse` de chaque argument, qui visite les objets " +"auxquels cet argument fait référence. Il est à noter que :c:member:" +"`~PyTypeObject.tp_traverse` n'est définie que par les objets qui gèrent le " +"ramassage des miettes, et n'a l'obligation de visiter que les objets qui " +"peuvent potentiellement faire partie d'un cycle. Ainsi, la liste renvoyée " +"par cette fonction ne contient par forcément tous les objets qu'il est " +"possible d'atteindre à partir des arguments. Par exemple, si l'un des " +"arguments contient un entier, ce dernier objet peut être présent ou non dans " +"la liste." #: library/gc.rst:159 msgid "" "Raises an :ref:`auditing event ` ``gc.get_referents`` with " "argument ``objs``." msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_referents`` avec " +"l'argument ``objs``." #: library/gc.rst:163 msgid "" @@ -211,6 +294,13 @@ msgid "" "present in order to suppress the garbage collector footprint of simple " "instances (e.g. dicts containing only atomic keys and values)::" msgstr "" +"Renvoie ``True`` ou ``False`` selon que l'argument est suivi ou non par le " +"ramasse-miettes. En règle générale, les objets atomiques ne sont pas suivis, " +"tandis que les objets non-atomiques, tels que les conteneurs et instances de " +"classes définies par l'utilisateur, le sont. Cependant, certains types " +"présentent des optimisations qui permettent de se passer avantageusement du " +"ramasse-miettes dans les cas simples, comme les dictionnaires dont toutes " +"les clés et valeurs sont atomiques :" #: library/gc.rst:188 msgid "" @@ -237,6 +327,8 @@ msgid "" "The following variables are provided for read-only access (you can mutate " "the values but should not rebind them):" msgstr "" +"Les variables suivantes sont publiques, mais elles ne sont pas censées être " +"modifiées (vous pouvez les muter, mais pas les redéfinir)." #: library/gc.rst:218 msgid "" @@ -245,12 +337,19 @@ msgid "" "should be empty most of the time, except when using instances of C extension " "types with a non-``NULL`` ``tp_del`` slot." msgstr "" +"Liste des objets indestructibles, que le ramasse-miettes n'a pas pu éliminer " +"bien qu'ils soient inatteignables. Depuis Python 3.4, cette liste demeure la " +"plupart du temps vide. Elle peut se remplir si le programme fait appel à des " +"types d'extension définis en C avec un champ ``tp_del`` différent de " +"``NULL``." #: library/gc.rst:223 msgid "" "If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " "to this list rather than freed." msgstr "" +"Si :const:`DEBUG_SAVEALL` est actif, tous les objets inatteignables sont " +"ajoutés à cette liste au lieu d'être détruits." #: library/gc.rst:226 msgid "" @@ -259,12 +358,19 @@ msgid "" "`DEBUG_UNCOLLECTABLE` is set, in addition all uncollectable objects are " "printed." msgstr "" +"Si cette liste n'est pas vide lors de l':term:`arrêt de l'interpréteur " +"`, un :exc:`ResourceWarning` est émis (les " +"avertissements de ce type sont silencieux par défaut). De plus, si :const:" +"`DEBUG_UNCOLLECTABLE` est actif, tous les objets indestructibles sont " +"affichés." #: library/gc.rst:232 msgid "" "Following :pep:`442`, objects with a :meth:`__del__` method don't end up in :" "attr:`gc.garbage` anymore." msgstr "" +"en application de la :pep:`442`, les objets qui définissent une méthode :" +"meth:`__del__` ne finissent plus dans :attr:`gc.garbage`." #: library/gc.rst:238 msgid "" @@ -272,72 +378,92 @@ msgid "" "after collection. The callbacks will be called with two arguments, *phase* " "and *info*." msgstr "" +"Liste de fonctions de rappel lancées par le ramasse-miettes avant et après " +"un passage. Elles prennent deux arguments, *phase* et *info*." #: library/gc.rst:242 msgid "*phase* can be one of two values:" -msgstr "" +msgstr "*phase* peut prendre deux valeurs :" #: library/gc.rst:244 msgid "\"start\": The garbage collection is about to start." -msgstr "" +msgstr "``\"start\"`` lorsque le passage du ramasse-miettes est imminent." #: library/gc.rst:246 msgid "\"stop\": The garbage collection has finished." msgstr "" +"``\"stop\"`` lorsque le passage du ramasse-miettes vient de se terminer." #: library/gc.rst:248 msgid "" "*info* is a dict providing more information for the callback. The following " "keys are currently defined:" msgstr "" +"*info* est un dictionnaire qui donne plus d'informations à la fonction de " +"rappel. Les clés suivantes sont actuellement présentes :" #: library/gc.rst:251 msgid "\"generation\": The oldest generation being collected." -msgstr "" +msgstr "``\"generation\"``, la génération la plus âgée intégrée à ce passage ;" #: library/gc.rst:253 msgid "" "\"collected\": When *phase* is \"stop\", the number of objects successfully " "collected." msgstr "" +"``\"collected\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " +"détruits avec succès ;" #: library/gc.rst:256 msgid "" "\"uncollectable\": When *phase* is \"stop\", the number of objects that " "could not be collected and were put in :data:`garbage`." msgstr "" +"``\"uncollectable\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " +"indestructibles ajoutés à :data:`garbage`." #: library/gc.rst:259 msgid "" "Applications can add their own callbacks to this list. The primary use " "cases are:" msgstr "" +"Toute application peut ajouter ses propres fonctions de rappel à cette " +"liste. Voici les principales applications :" #: library/gc.rst:262 msgid "" "Gathering statistics about garbage collection, such as how often various " "generations are collected, and how long the collection takes." msgstr "" +"Faire des statistiques sur le passage du ramasse-miettes, par exemple la " +"fréquence à laquelle chaque génération est examinée, ou bien le temps d'un " +"passage ;" #: library/gc.rst:266 msgid "" "Allowing applications to identify and clear their own uncollectable types " "when they appear in :data:`garbage`." msgstr "" +"Identifier les types définis par une application dont les instances " +"s'ajoutent à :data:`garbage` car elles sont indestructibles." #: library/gc.rst:272 msgid "The following constants are provided for use with :func:`set_debug`:" msgstr "" +"Les constantes suivantes définissent les options de débogage que l'on peut " +"passer à :func:`set_debug` :" #: library/gc.rst:277 msgid "" "Print statistics during collection. This information can be useful when " "tuning the collection frequency." msgstr "" +"Affiche des statistiques durant les passages du ramasse-miettes. Utile pour " +"pouvoir régler la fréquence des passages." #: library/gc.rst:283 msgid "Print information on collectable objects found." -msgstr "" +msgstr "Affiche des informations sur les objets détruits." #: library/gc.rst:288 msgid "" @@ -345,18 +471,27 @@ msgid "" "reachable but cannot be freed by the collector). These objects will be " "added to the ``garbage`` list." msgstr "" +"Affiche des informations sur les objets indestructibles (ceux qui sont " +"ajoutés à la liste ``garbage``, qui sont inatteignables mais dont la mémoire " +"ne peut pas être libérée)." #: library/gc.rst:292 msgid "" "Also print the contents of the :data:`garbage` list at :term:`interpreter " "shutdown`, if it isn't empty." msgstr "" +"Affiche également le contenu de :data:`garbage` à l':term:`arrêt de " +"l'interpréteur `, pour peu que cette liste ne soit pas " +"vide." #: library/gc.rst:298 msgid "" "When set, all unreachable objects found will be appended to *garbage* rather " "than being freed. This can be useful for debugging a leaking program." msgstr "" +"Lorsque cette option est active, les objets inatteignables sont ajoutés à la " +"liste *garbage* au lieu d'être supprimés. Ceci est utile pour déboguer une " +"fuite de mémoire." #: library/gc.rst:304 msgid "" @@ -364,3 +499,5 @@ msgid "" "leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " "DEBUG_SAVEALL``)." msgstr "" +"Combinaison des options utiles au débogage d'une fuite de mémoire. Il s'agit " +"d'un raccourci pour ``DEBUG_COLLECTABLE|DEBUG_UNCOLLECTABLE|DEBUG_SAVEALL``." diff --git a/library/gettext.po b/library/gettext.po index f1027ae1..2ed1f53c 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -1141,7 +1141,6 @@ msgid "Footnotes" msgstr "Notes" #: library/gettext.rst:724 -#, fuzzy msgid "" "The default locale directory is system dependent; for example, on RedHat " "Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" @@ -1155,10 +1154,10 @@ msgstr "" "exemple, sur RedHat c'est :file:`/usr/share/locale`, mais sur Solaris c'est :" "file:`/usr/lib/locale`. Le module :mod:`gettext` n'essaie pas de prendre en " "charge ce paramètre système dépendant du système d'exploitation, mais " -"utilise le dossier :file:`{sys.prefix}/share/locale` (voir :data:`sys." -"prefix`). C'est pour cette raison qu'il est toujours préférable d'appeler :" -"func:`bindtextdomain` en donnant explicitement un chemin absolu au début de " -"votre application." +"utilise le dossier :file:`{sys.base_prefix}/share/locale` (voir :data:`sys." +"base_prefix`). C'est pour cette raison qu'il est toujours préférable " +"d'appeler :func:`bindtextdomain` en donnant explicitement un chemin absolu " +"au début de votre application." #: library/gettext.rst:732 msgid "See the footnote for :func:`bindtextdomain` above." diff --git a/library/glob.po b/library/glob.po index 686667b2..21e0e86c 100644 --- a/library/glob.po +++ b/library/glob.po @@ -83,23 +83,24 @@ msgstr "" "shell)." #: library/glob.rst:53 -#, fuzzy msgid "" "If *recursive* is true, the pattern \"``**``\" will match any files and zero " "or more directories, subdirectories and symbolic links to directories. If " "the pattern is followed by an :data:`os.sep` or :data:`os.altsep` then files " "will not match." msgstr "" -"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers et, " -"zéro ou plus répertoires et sous-répertoires. Si le motif est suivi par un " -"caractère de séparation ``os.sep``, seuls les répertoires et sous-" -"répertoires sont reconnus." +"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers, " +"aucun ou plusieurs répertoires, sous-répertoires et liens symboliques aux " +"répertoires. Si le motif est suivi par :data:`os.sep` ou :data:`os.altsep` " +"alors les fichiers ne sont pas inclus dans le résultat." #: library/glob.rst:73 msgid "" "Raises an :ref:`auditing event ` ``glob.glob`` with arguments " "``pathname``, ``recursive``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``glob.glob`` avec les arguments " +"``pathname``, ``recursive``." #: library/glob.rst:61 msgid "" diff --git a/library/html.parser.po b/library/html.parser.po index 5388c05c..11e07930 100644 --- a/library/html.parser.po +++ b/library/html.parser.po @@ -16,12 +16,11 @@ msgstr "" #: library/html.parser.rst:2 msgid ":mod:`html.parser` --- Simple HTML and XHTML parser" -msgstr "" +msgstr ":mod:`html.parser`— Un analyseur syntaxique simple pour HTML et XHTML" #: library/html.parser.rst:7 -#, fuzzy msgid "**Source code:** :source:`Lib/html/parser.py`" -msgstr "**Code source :** :source:`Lib/email/parser.py`" +msgstr "**Code source :** :source:`Lib/html/parser.py`" #: library/html.parser.rst:15 msgid "" @@ -29,10 +28,17 @@ msgid "" "for parsing text files formatted in HTML (HyperText Mark-up Language) and " "XHTML." msgstr "" +"Ce module définit une classe :class:`HTMLParser` qui sert de base pour " +"l'analyse syntaxique de fichiers texte formatés HTML (*HyperText Mark-up " +"Language*, le « langage de balisage hypertexte ») et XHTML (*EXtensible " +"HyperText Markup Language*, le « langage extensible de balisage " +"hypertexte »)." #: library/html.parser.rst:20 msgid "Create a parser instance able to parse invalid markup." msgstr "" +"Crée une instance d'analyseur capable de traiter tout balisage, même " +"invalide." #: library/html.parser.rst:22 msgid "" @@ -40,6 +46,9 @@ msgid "" "(except the ones in ``script``/``style`` elements) are automatically " "converted to the corresponding Unicode characters." msgstr "" +"Si *convert_charrefs* est ``True`` (valeur par défaut), toute référence de " +"caractère (sauf ceux enchâssés dans des éléments ``script``/``style``) est " +"automatiquement convertie en son caractère Unicode." #: library/html.parser.rst:26 msgid "" @@ -48,6 +57,11 @@ msgid "" "encountered. The user should subclass :class:`.HTMLParser` and override its " "methods to implement the desired behavior." msgstr "" +"Une instance de :class:`.HTMLParser` est alimentée par des données HTML. " +"Elle fait appel à des méthodes offrant un traitement spécifique quand est " +"rencontré un élément de balisage : balise ouvrante ou fermante, textes, " +"commentaires… Pour implémenter le comportement désiré, l'utilisateur crée " +"une sous-classe de :class:`.HTMLParser` en surchargeant ses méthodes." #: library/html.parser.rst:31 msgid "" @@ -55,18 +69,22 @@ msgid "" "tag handler for elements which are closed implicitly by closing an outer " "element." msgstr "" +"Cet analyseur ne vérifie ni que les balises fermantes correspondent aux " +"balises ouvrantes, ni n'invoque le gestionnaire de balises fermantes pour " +"les éléments implicitement fermés par un élément extérieur." #: library/html.parser.rst:34 msgid "*convert_charrefs* keyword argument added." -msgstr "" +msgstr "L'argument *convert_charrefs* a été ajouté." #: library/html.parser.rst:37 msgid "The default value for argument *convert_charrefs* is now ``True``." msgstr "" +"La valeur par défaut de l'argument *convert_charrefs* est désormais ``True``." #: library/html.parser.rst:42 msgid "Example HTML Parser Application" -msgstr "" +msgstr "Exemple d'application de l'analyseur HTML" #: library/html.parser.rst:44 msgid "" @@ -74,20 +92,22 @@ msgid "" "`HTMLParser` class to print out start tags, end tags, and data as they are " "encountered::" msgstr "" +"Comme exemple simple, un analyseur HTML minimal qui utilise la classe :class:" +"`HTMLParser` pour afficher les balises ouvrantes, les balises fermantes " +"ainsi que les données quand elles apparaissent ::" #: library/html.parser.rst:64 msgid "The output will then be:" -msgstr "" +msgstr "La sortie est alors :" #: library/html.parser.rst:83 msgid ":class:`.HTMLParser` Methods" -msgstr "" +msgstr "Méthodes de la classe :class:`.HTMLParser`" #: library/html.parser.rst:85 -#, fuzzy msgid ":class:`HTMLParser` instances have the following methods:" msgstr "" -"Les instances de :class:`!HTMLCalendar` utilisent les méthodes suivantes :" +"Les instances de :class:`HTMLParser` disposent des méthodes suivantes :" #: library/html.parser.rst:90 msgid "" @@ -95,6 +115,11 @@ msgid "" "complete elements; incomplete data is buffered until more data is fed or :" "meth:`close` is called. *data* must be :class:`str`." msgstr "" +"Alimente l'analyseur avec du texte. Ce texte est traité dans la mesure où il " +"constitue des éléments complets ; les données incomplètes sont mises dans un " +"tampon jusqu'à ce que d'autres données soient fournies ou que la méthode :" +"meth:`close` soit appelée. L'argument *data* doit être de classe :class:" +"`str`." #: library/html.parser.rst:97 msgid "" @@ -103,16 +128,25 @@ msgid "" "additional processing at the end of the input, but the redefined version " "should always call the :class:`HTMLParser` base class method :meth:`close`." msgstr "" +"Force le traitement de toutes les données du tampon comme si elles étaient " +"suivies par un caractère *fin de fichier*. Cette méthode peut-être redéfinie " +"par une classe dérivée pour ajouter des traitements supplémentaires à la fin " +"de l'entrée, mais la version redéfinie devra impérativement appeler la " +"méthode :meth:`close` de la classe de base :class:`HTMLParser`." #: library/html.parser.rst:105 msgid "" "Reset the instance. Loses all unprocessed data. This is called implicitly " "at instantiation time." msgstr "" +"Réinitialise l'instance. Toutes les données non traitées sont perdues. Cette " +"méthode est appelée implicitement lors de l'instanciation." #: library/html.parser.rst:111 msgid "Return current line number and offset." msgstr "" +"Renvoie le numéro de ligne et le numéro du caractère dans la ligne où le " +"curseur est positionné." #: library/html.parser.rst:116 msgid "" @@ -129,6 +163,10 @@ msgid "" "class implementations do nothing (except for :meth:`~HTMLParser." "handle_startendtag`):" msgstr "" +"Les méthodes suivantes sont appelées lors de la rencontre de données ou " +"d'éléments de balisage ; elles sont destinées à être surchargées par la sous-" +"classe. L'implémentation de la classe de base ne fait rien (sauf pour ce qui " +"est de :meth:`~HTMLParser.handle_startendtag`) :" #: library/html.parser.rst:129 msgid "" @@ -144,6 +182,12 @@ msgid "" "translated to lower case, and quotes in the *value* have been removed, and " "character and entity references have been replaced." msgstr "" +"L'argument *tag* contient le nom de la balise en minuscules. L'argument " +"*attrs* contient une liste de *n-uplets* ``(name, value)`` regroupant les " +"attributs présents entre les symboles ``<`` et ``>`` de la balise. Le " +"paramètre *name* est converti en minuscule ; les guillemets sont supprimés " +"du paramètre *value* et toute entité de référence ou de caractère est " +"remplacée." #: library/html.parser.rst:137 msgid "" @@ -151,21 +195,28 @@ msgid "" "would be called as ``handle_starttag('a', [('href', 'https://www.cwi." "nl/')])``." msgstr "" +"Par exemple, pour la balise ````, cette " +"méthode est appelée par ``handle_starttag('a', [('href', 'https://www.cwi." +"nl/')])``." #: library/html.parser.rst:140 msgid "" "All entity references from :mod:`html.entities` are replaced in the " "attribute values." msgstr "" +"Toute référence d'entité présente dans :mod:`html.entities` est remplacée " +"dans la valeur des attributs." #: library/html.parser.rst:146 msgid "" "This method is called to handle the end tag of an element (e.g. ````)." msgstr "" +"Cette méthode est appelée pour traiter les balises fermantes (p. ex. ````)." #: library/html.parser.rst:148 msgid "The *tag* argument is the name of the tag converted to lower case." -msgstr "" +msgstr "L'argument *tag* est le nom de la balise en minuscules." #: library/html.parser.rst:153 msgid "" @@ -175,12 +226,20 @@ msgid "" "implementation simply calls :meth:`handle_starttag` and :meth:" "`handle_endtag`." msgstr "" +"Traitée de façon similaire à :meth:`handle_starttag`, mais appelée quand " +"l'analyseur rencontre une balise vide de type *XHTML* (p. ex. ````). Cette méthode peut-être surchargée par les sous-classes demandant " +"cette information lexicale ; l'implémentation par défaut appelle simplement :" +"meth:`handle_starttag` et :meth:`handle_endtag`." #: library/html.parser.rst:161 msgid "" "This method is called to process arbitrary data (e.g. text nodes and the " "content of ```` and ````)." msgstr "" +"Cette méthode est appelée pour traiter toute donnée arbitraire (p. ex. les " +"nœuds textuels ou les contenus de ```` et ``