From 107d127b6536e25c78953e4d5a3d55b92e33d115 Mon Sep 17 00:00:00 2001 From: git Date: Tue, 9 Jan 2018 21:19:59 +0100 Subject: [PATCH 001/115] translate library/zlib.po --- library/zlib.po | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/library/zlib.po b/library/zlib.po index 3d847def4..f21681341 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -3,23 +3,24 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: fr\n" +"PO-Revision-Date: 2018-01-09 20:48+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.5\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" -msgstr "" +msgstr ":mod:`zlib` --- Compression compatible avec :program:`gzip`" #: ../Doc/library/zlib.rst:10 msgid "" @@ -30,6 +31,13 @@ msgid "" "earlier than 1.1.3; 1.1.3 has a security vulnerability, so we recommend " "using 1.1.4 or later." msgstr "" +"Pour des applications qui nécessitent la compression de données, les " +"fonctions de ce module permettent la compression et la décompression via la " +"librairie zlib. La librairie zlib a sa propre page web sur http://www.zlib." +"net. Il y a des incompatibilités connues entre le module Python et les " +"versions de la librairie zlib plus ancienne que la 1.1.3 ; 1.1.3 contient " +"des failles de sécurité et nous recommandons d'utiliser plutôt la version " +"1.14 ou plus récente." #: ../Doc/library/zlib.rst:17 msgid "" @@ -38,10 +46,16 @@ msgid "" "consult the zlib manual at http://www.zlib.net/manual.html for authoritative " "information." msgstr "" +"Les fonctions zlib recèlent de nombreuses options et nécessitent d'être " +"ordonnées selon un ordre précis. Cette documentation N'a pas pour but de " +"couvrir la totalité des combinaisons. Veuillez consulter le manuel zlib en " +"ligne sur http://www.zlib.net/manual.html pour des contenus avertis." #: ../Doc/library/zlib.rst:22 msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." msgstr "" +"Pour lire ou écrire des fichiers ``.gz`` veuillez consulter le module :mod:" +"`gzip`." #: ../Doc/library/zlib.rst:24 msgid "The available exception and functions in this module are:" From c96e4e4b015bfbc8b43dd56a6049512dde848b22 Mon Sep 17 00:00:00 2001 From: git Date: Tue, 9 Jan 2018 21:46:31 +0100 Subject: [PATCH 002/115] translate library/zlib.po (11%) --- library/zlib.po | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/library/zlib.po b/library/zlib.po index f21681341..74484f704 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-09 20:48+0100\n" +"PO-Revision-Date: 2018-01-09 21:46+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language-Team: \n" "X-Generator: Poedit 2.0.5\n" -"Last-Translator: \n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Last-Translator: \n" "Language: fr\n" #: ../Doc/library/zlib.rst:2 @@ -59,11 +59,12 @@ msgstr "" #: ../Doc/library/zlib.rst:24 msgid "The available exception and functions in this module are:" -msgstr "" +msgstr "Les exceptions et fonctions disponibles de ce module sont :" #: ../Doc/library/zlib.rst:29 msgid "Exception raised on compression and decompression errors." msgstr "" +"Les exceptions levées lors d'erreurs de compression et de décompression." #: ../Doc/library/zlib.rst:34 msgid "" @@ -77,6 +78,17 @@ msgid "" "Since the algorithm is designed for use as a checksum algorithm, it is not " "suitable for use as a general hash algorithm." msgstr "" +"Calcule une somme de contrôle Adler-32 de *données*. (Une somme de contrôle " +"Adler-32 est aussi fiable qu'un CRC32 mais peut être calculé bien plus " +"rapidement.) Le résultat produit est un entier son-signé de 32-bit. Si " +"*valeur* est défini, c'est emlployé comme valeur de départ de la somme de " +"contrôle ; sinon une valeur par défaut de 1 est utilisée. Inscrire une " +"*valeur* permet de calculer une somme de contrôle continue pendant le " +"concaténation de plusieurs entrées. L'algorithme n'est pas " +"cryptographiquement fort, et et ne doit pas être pour l'authentification ou " +"des signatures numériques. Depuis que cet algorithme est conçu comme " +"algorithme de somme de contrôle, il n'est pas adapté comme clé de hashage " +"générique." #: ../Doc/library/zlib.rst:44 msgid "" From 05357fa47bb389a49bb7c06ba6b6fe299b8b29bd Mon Sep 17 00:00:00 2001 From: stevostean Date: Wed, 10 Jan 2018 08:39:54 +0100 Subject: [PATCH 003/115] translate library/zlib.po (30%) --- library/zlib.po | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/library/zlib.po b/library/zlib.po index 74484f704..fc9ccbaf1 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-09 21:46+0100\n" +"PO-Revision-Date: 2018-01-10 08:05+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -95,6 +95,9 @@ msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``adler32(data) & 0xffffffff``." msgstr "" +"Renvoie systématiquement une valeur non-signée. Pour produire " +"systématiquement la même valeur à travers toutes les versions de Python et " +"différentes plateformes, utilisez ``adler32(data) & 0xffffffff``." #: ../Doc/library/zlib.rst:52 msgid "" @@ -107,6 +110,15 @@ msgid "" "compression (currently equivalent to level 6). Raises the :exc:`error` " "exception if any error occurs." msgstr "" +"Il compresse les octets contenus dans *data*, renvoie un objets en octets " +"représentant les données compressées. Le *niveau*doit être un entier, " +"compris entre ``0`` et ``9`` ou ``-1`` pour ajuster le niveau de " +"compression ; ``1`` étant plus rapide et procède une compression légère, " +"``9`` est plus lente mais produit la plus forte. ``0`` n'effectue aucune " +"compression. La valeur par défaut est ``-1`` (Z_DEFAULT_COMPRESSION). " +"Z_DEFAULT_COMPRESSION offre une valeur par défaut proposant un équilibre " +"entre vitesse et taux de compression (actuellement équivalente à 6). Si une " +"erreur surgit, l'exception :exc:`error` est levée." #: ../Doc/library/zlib.rst:60 msgid "*level* can now be used as a keyword parameter." From b00bfbf2c218a2437783ec422b226d841b033006 Mon Sep 17 00:00:00 2001 From: stevostean Date: Wed, 10 Jan 2018 09:38:00 +0100 Subject: [PATCH 004/115] translate library/zlib.po (58%) --- library/zlib.po | 84 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 9 deletions(-) diff --git a/library/zlib.po b/library/zlib.po index fc9ccbaf1..69c387f46 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-10 08:05+0100\n" +"PO-Revision-Date: 2018-01-10 09:37+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -122,13 +122,15 @@ msgstr "" #: ../Doc/library/zlib.rst:60 msgid "*level* can now be used as a keyword parameter." -msgstr "" +msgstr "Le *niveau* peut être employé désormais comme un paramètre clé." #: ../Doc/library/zlib.rst:66 msgid "" "Returns a compression object, to be used for compressing data streams that " "won't fit into memory at once." msgstr "" +"Renvoie un objet compressé, utilisé pour des flux de données compressées qui " +"ne sont pas stockés immédiatement en mémoire." #: ../Doc/library/zlib.rst:69 msgid "" @@ -139,12 +141,21 @@ msgid "" "Z_DEFAULT_COMPRESSION represents a default compromise between speed and " "compression (currently equivalent to level 6)." msgstr "" +"Le *niveau* est le seuil de compression -- un entier compris entre ``0`` et " +"``9`` ou ``-1``. La valeur ``1`` est la plus rapide avec taux de compression " +"minimal, tandis que la valeur ``9`` est la plus lente mais produit une " +"compression plus forte. ``0`` ne produit aucune compression. La valeur par " +"défaut est ``-1`` (Z_DEFAULT_COMPRESSION). La constante " +"Z_DEFAULT_COMPRESSION équivaut à un bon compromis par défaut entre rapidité " +"et bonne compression (valeur équivalente au niveau 6)." #: ../Doc/library/zlib.rst:75 msgid "" "*method* is the compression algorithm. Currently, the only supported value " "is ``DEFLATED``." msgstr "" +"La *méthode* définit l'algorithme de compression. Pour le moment, la seule " +"valeur acceptée est ``DEFLATED``." #: ../Doc/library/zlib.rst:78 msgid "" @@ -152,6 +163,10 @@ msgid "" "\"window size\") used when compressing data, and whether a header and " "trailer is included in the output. It can take several ranges of values:" msgstr "" +"L'argument *wbits* contrôle la taille de la mémoire tampon (ou de sa propre " +"\"dimension\") mobilisée par les données compressées, et si un en-tête et un " +"bloc final font partie de la sortie. Il peut être constitué de plusieurs " +"plages de valeur :" #: ../Doc/library/zlib.rst:82 msgid "" @@ -160,12 +175,19 @@ msgid "" "expense of greater memory usage. The resulting output will include a zlib-" "specific header and trailer." msgstr "" +"De +9 à +15 : le logarithme binaire de sa dimension, compris entre 512 et " +"32768. Des valeurs plus grandes produisent de meilleures compressions au " +"dépens d'une utilisation mémoire plus grande. Le résultat final introduira " +"des en-tête et des blocs spécifiques à zlib." #: ../Doc/library/zlib.rst:87 msgid "" "−9 to −15: Uses the absolute value of *wbits* as the window size logarithm, " "while producing a raw output stream with no header or trailing checksum." msgstr "" +"De -9 à -15 : l'argument *wbits* emploie sa valeur absolue comme dimension " +"du logarithme, développant un flux brut en sortie, sans en-tête ni bloc de " +"somme de contrôle." #: ../Doc/library/zlib.rst:91 msgid "" @@ -173,6 +195,9 @@ msgid "" "size logarithm, while including a basic :program:`gzip` header and trailing " "checksum in the output." msgstr "" +"De +25 à +31 = 16 + (9 à 15) : exploite les 4 bits les plus faibles de la " +"valeur comme dimension de son logarithme, en y ajoutant un en-tête :program:" +"`gzip` et un bloc de somme de contrôle à la sortie." #: ../Doc/library/zlib.rst:95 msgid "" @@ -180,12 +205,19 @@ msgid "" "compression state. Valid values range from ``1`` to ``9``. Higher values use " "more memory, but are faster and produce smaller output." msgstr "" +"L'argument *niveauMem* manipule le taux de mémoire utilisé for pour son état " +"de compression. Les valeurs valides sont comprises entre ``1`` et ``9``. Des " +"valeur plus élevées occupent davantage de mémoire, mais sont plus rapides et " +"produisent des sorties très compressées." #: ../Doc/library/zlib.rst:99 msgid "" "*strategy* is used to tune the compression algorithm. Possible values are " "``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, and ``Z_HUFFMAN_ONLY``." msgstr "" +"La *stratégie* permet d'ajuster l'algorithme de compression. Les valeurs " +"existantes sont ``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, et " +"``Z_HUFFMAN_ONLY``." #: ../Doc/library/zlib.rst:102 msgid "" @@ -371,13 +403,15 @@ msgstr "" msgid "" "A boolean indicating whether the end of the compressed data stream has been " "reached." -msgstr "" +msgstr "Un booléen qui signale s'il a atteint la fin du flux compressé." #: ../Doc/library/zlib.rst:256 msgid "" "This makes it possible to distinguish between a properly-formed compressed " "stream, and an incomplete or truncated one." msgstr "" +"ceci rend possible la distinction entre un flux proprement compressé et une " +"version incomplète ou tronquée." #: ../Doc/library/zlib.rst:264 msgid "" @@ -387,6 +421,12 @@ msgid "" "`decompress` method. Some of the input data may be preserved in internal " "buffers for later processing." msgstr "" +"Les *données* décompressées, renvoient un objet sous forme d'octets, " +"contenant les données non-compressées représentant la plus faible partie des " +"éléments de *chaîne*. Cette donnée devrait être concaténée avec la sortie " +"produite par n'importe quel appel antérieur de la méthode :meth:" +"`decompress`. Quelques données d'entrée peuvent être conservées dans les " +"tampons internes pour un traitement ultérieur." #: ../Doc/library/zlib.rst:270 msgid "" @@ -398,10 +438,18 @@ msgid "" "*max_length* is zero then the whole input is decompressed, and :attr:" "`unconsumed_tail` is empty." msgstr "" +"Si le paramètre optionnel *taille_max* est non-nul alors la valeur renvoyée " +"ne sera pas plus grande que *taille_max*. En clair, une entrée compressée ne " +"sera pas traitée entièrement et les données inutilisées seront stockées dans " +"l'attribut :attr:`unconsumed_tail`. Cette chaîne d'octets doit être " +"transmise à un appel ultérieur vers la méthode :meth:`decompress`, si la " +"décompression est maintenue. Si la *taille_max* est nulle alors la totalité " +"de l'entrée est décompressée, et l'attribut :attr:`unconsumed_tail` demeure " +"vide." #: ../Doc/library/zlib.rst:277 msgid "*max_length* can be used as a keyword argument." -msgstr "" +msgstr "La *taille_max* peut être utilisée comme un argument clé." #: ../Doc/library/zlib.rst:283 msgid "" @@ -410,11 +458,17 @@ msgid "" "`decompress` method cannot be called again; the only realistic action is to " "delete the object." msgstr "" +"Toutes les sorties en attente sont traitées, et il renvoie un objet en octet " +"contenant la décompression de données en cours. après l'appel de :meth:" +"`flush`, la méthode :meth:`decompress` ne peut pas être rappelée. La seule " +"action réalisable est de détruire l'objet." #: ../Doc/library/zlib.rst:288 msgid "" "The optional parameter *length* sets the initial size of the output buffer." msgstr "" +"Le paramètre optionnel *taille* définit la taille initiale du tampon de " +"sortie." #: ../Doc/library/zlib.rst:293 msgid "" @@ -422,12 +476,17 @@ msgid "" "state of the decompressor midway through the data stream in order to speed " "up random seeks into the stream at a future point." msgstr "" +"Renvoie une copie de l'objet décompressé. Vous pouvez l'exploiter pour " +"sauvegarder l'état de la décompression en cours, via le flux de données, " +"afin d'améliorer les temps d'accès alétoires du flux à un moment futur." #: ../Doc/library/zlib.rst:298 msgid "" "Information about the version of the zlib library in use is available " "through the following constants:" msgstr "" +"L'information relative à la version de la librairie zlib utlisée est " +"disponible via les constantes suivantes :" #: ../Doc/library/zlib.rst:304 msgid "" @@ -435,34 +494,41 @@ msgid "" "module. This may be different from the zlib library actually used at " "runtime, which is available as :const:`ZLIB_RUNTIME_VERSION`." msgstr "" +"La version de la librairie zlib utlisée pour la conception du module. Elle " +"peut être différente de la librairie zlib couramment utilisée par le " +"système, qui est consultable avec :const:`ZLIB_RUNTIME_VERSION`." #: ../Doc/library/zlib.rst:311 msgid "" "The version string of the zlib library actually loaded by the interpreter." msgstr "" +"La chaîne contenant la version de la librairie zlib couramment utilisée par " +"l'interpréteur." #: ../Doc/library/zlib.rst:319 msgid "Module :mod:`gzip`" -msgstr "" +msgstr "Module :mod:`gzip`" #: ../Doc/library/zlib.rst:319 msgid "Reading and writing :program:`gzip`\\ -format files." -msgstr "" +msgstr "lire et écrire desfichiers au format :program:`gzip`." #: ../Doc/library/zlib.rst:322 msgid "http://www.zlib.net" -msgstr "" +msgstr "https://www.zlib.net" #: ../Doc/library/zlib.rst:322 msgid "The zlib library home page." -msgstr "" +msgstr "La page officielle de la librairie zlib." #: ../Doc/library/zlib.rst:325 msgid "http://www.zlib.net/manual.html" -msgstr "" +msgstr "https://www.zlib.net/manual.html" #: ../Doc/library/zlib.rst:325 msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." msgstr "" +"Lemanuel zlib fournit les sémantiques et usages des nombreuses fonction de " +"la librairie." From 9fec9636b02bb1d00f1a19e52208e5733aa533af Mon Sep 17 00:00:00 2001 From: stevostean Date: Wed, 10 Jan 2018 10:07:20 +0100 Subject: [PATCH 005/115] translate library/zlib.po (85%) --- library/zlib.po | 56 ++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 5 deletions(-) diff --git a/library/zlib.po b/library/zlib.po index 69c387f46..54a71e548 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-10 09:37+0100\n" +"PO-Revision-Date: 2018-01-10 10:06+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -226,10 +226,16 @@ msgid "" "to occur frequently in the data that is to be compressed. Those subsequences " "that are expected to be most common should come at the end of the dictionary." msgstr "" +"L'argument *zdict* est un dictionnaire de compression pré-défini. Il s'agit " +"d'une séquence d'octets (tel qu'un objet :class:`bytes`) contenant des sous-" +"séquences attendues régulièrement pour produire les données à compresser. " +"Ces sous-séquences devraient se trouver en fin de dictionnaire." #: ../Doc/library/zlib.rst:107 msgid "Added the *zdict* parameter and keyword argument support." msgstr "" +"Ajout du support de prise en charge du paramètre *zdict* et de sa valeur en " +"argument." #: ../Doc/library/zlib.rst:117 msgid "" @@ -248,6 +254,9 @@ msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``crc32(data) & 0xffffffff``." msgstr "" +"Renvoie systématiquement une valeur non-signée. Pour obtenir la même valeur " +"numérique sur n'importe quelle version de Python et plateforme, utilisez " +"``crc32(data) & 0xffffffff``." #: ../Doc/library/zlib.rst:134 msgid "" @@ -257,6 +266,11 @@ msgid "" "initial size of the output buffer. Raises the :exc:`error` exception if any " "error occurs." msgstr "" +"Décompresse les octets dans *données*, en renvoyant un objet contenant les " +"données non-compressées. Le paramètre *wbits* dépend du format des " +"*données*, et est discuté plus loin. Si l'argument *tailleTampon* est " +"défini, il est utilisé comme taille initiale du tampon de sortie. En cas " +"d'erreur, l'exception: exc: `erreur` est levée." #: ../Doc/library/zlib.rst:142 msgid "" @@ -264,36 +278,51 @@ msgid "" "size\"), and what header and trailer format is expected. It is similar to " "the parameter for :func:`compressobj`, but accepts more ranges of values:" msgstr "" +"Le paramètre *wbits* contrôle la dimension du tampon, et quel en-tête et " +"bloc sont attendus. Similaire au paramètre pour : func: `compressobj`, mais " +"accepte davantage de valeurs:" #: ../Doc/library/zlib.rst:147 msgid "" "+8 to +15: The base-two logarithm of the window size. The input must " "include a zlib header and trailer." msgstr "" +"De +8 à +15 : Logarithme binaire à base 2 pour la dimension du tampon. " +"L'entrée doit contenir un en-tête et un bloc zlib." #: ../Doc/library/zlib.rst:150 msgid "" "0: Automatically determine the window size from the zlib header. Only " "supported since zlib 1.2.3.5." msgstr "" +"0: Détermine automatiquement la dimension du tampon à partir de l'en-tête " +"zlib. Supporté uniquement depuis zlib 1.2.3.5." #: ../Doc/library/zlib.rst:153 msgid "" "−8 to −15: Uses the absolute value of *wbits* as the window size logarithm. " "The input must be a raw stream with no header or trailer." msgstr "" +"De -8 à -15 : Utilise la valeur absolue de *wbits* comme logarithme pour la " +"dimension du tampon. L'entrée doit être un flux brut, sans en-tête ni bloc." #: ../Doc/library/zlib.rst:156 msgid "" "+24 to +31 = 16 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm. The input must include a gzip header and trailer." msgstr "" +"De +24 à +31 = 16 + (8 à 15) : Utilise les 4 bitsles plus faibles de la " +"valeur comme logarithme de dimension du tampon. L'entrée doit contenir un " +"en-tête gzip et son bloc." #: ../Doc/library/zlib.rst:160 msgid "" "+40 to +47 = 32 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm, and automatically accepts either the zlib or gzip format." msgstr "" +"De +40 à +47 = 32 + (8 à 15) : Utilise les 4 bits les plus faibles de la " +"valeur comme logarithme de dimension du tampon, et accepte automatiquement " +"les formats zlib ou gzip." #: ../Doc/library/zlib.rst:164 msgid "" @@ -303,6 +332,11 @@ msgid "" "to the largest window size and requires a zlib header and trailer to be " "included." msgstr "" +"Lors de la décompression d'un flux, la dimension du tampon ne doit pas être " +"inférieure à sa taille initialement utilisée pour compresser le flux. " +"L'utilisation d'une valeur trop petite peut déclencher une exception: exc: " +"`error`. La valeur par défaut *wbits* correspond àune dimension élevée du " +"tampon et nécessite d'y adjoindre un en-tête zlib et son bloc." #: ../Doc/library/zlib.rst:170 msgid "" @@ -311,10 +345,17 @@ msgid "" "you don't have to get this value exactly right; tuning it will only save a " "few calls to :c:func:`malloc`." msgstr "" +"L'argument *tailleTampon* correspond à la dimension initiale du tampon " +"utilisé pour contenir les données décompressées. Pour une espace plus grand, " +"la taille du tampon sera augmentée au besoin, donc vous n'avez pas besoin de " +"connaître sa valeur exacte. Son réglage n'effectuera que quelques appels à " +"la fonction :c:func:`malloc`." #: ../Doc/library/zlib.rst:175 msgid "*wbits* and *bufsize* can be used as keyword arguments." msgstr "" +"Les paramètres *wbits* et *tailleTampon* peuvent être utilisés comme " +"arguments clés." #: ../Doc/library/zlib.rst:180 msgid "" @@ -345,11 +386,11 @@ msgstr "" #: ../Doc/library/zlib.rst:197 msgid "Added the *zdict* parameter." -msgstr "" +msgstr "Ajout du paramètre *zdict*." #: ../Doc/library/zlib.rst:201 msgid "Compression objects support the following methods:" -msgstr "" +msgstr "Les objets de compression supportent les méthodes suivantes :" #: ../Doc/library/zlib.rst:206 msgid "" @@ -377,10 +418,15 @@ msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" +"Renvoie une copie de l'objet de compression. Il peut être exploité pour " +"compresser efficacement un ensemble de données qui partagent un préfixe " +"initial commun." #: ../Doc/library/zlib.rst:231 msgid "Decompression objects support the following methods and attributes:" msgstr "" +"Les objets de décompression prennent en charge les méthodes et attributs " +"suivants :" #: ../Doc/library/zlib.rst:236 msgid "" @@ -511,7 +557,7 @@ msgstr "Module :mod:`gzip`" #: ../Doc/library/zlib.rst:319 msgid "Reading and writing :program:`gzip`\\ -format files." -msgstr "lire et écrire desfichiers au format :program:`gzip`." +msgstr "Lire et écrire des fichiers au format :program:`gzip`." #: ../Doc/library/zlib.rst:322 msgid "http://www.zlib.net" @@ -530,5 +576,5 @@ msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." msgstr "" -"Lemanuel zlib fournit les sémantiques et usages des nombreuses fonction de " +"Le manuel zlib fournit les sémantiques et usages des nombreuses fonction de " "la librairie." From 1d1a2f58795c1d50131e9d7a1bb26cddac2bc803 Mon Sep 17 00:00:00 2001 From: stevostean Date: Wed, 10 Jan 2018 21:55:01 +0100 Subject: [PATCH 006/115] translate library/zlib.po (100%) - end --- library/zlib.po | 51 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/library/zlib.po b/library/zlib.po index 54a71e548..c2052dec1 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-10 10:06+0100\n" +"PO-Revision-Date: 2018-01-10 21:54+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -248,6 +248,16 @@ msgid "" "Since the algorithm is designed for use as a checksum algorithm, it is not " "suitable for use as a general hash algorithm." msgstr "" +"Calcule une somme de contrôle CRC (*Cyclic Redundancy Check*) pour " +"l'argument *données*. Il revoie un entier 32-bit non-signé. Si l'argument " +"*valeur* est présent, il permettra de définir la valeur de départ de la " +"somme de contrôle. Sinon, sa valeur par défaut est 0. Donner une valeur à " +"l'argument *valeur* permet de calculer une somme de contrôle exécutée au " +"cours de la concaténation de plusieurs entrées. L'algorithme n'est pas " +"cryptographiquement fort, et ne devra surtout pas être utilisé pour " +"l'authentification ou des signatures numériques. Alors que cet algorithme a " +"été conçu pour être exploité comme un algorithme de somme de contrôle, il " +"n'est en rien adapté à son emploi comme algorithme de hachage courant." #: ../Doc/library/zlib.rst:126 msgid "" @@ -362,6 +372,8 @@ msgid "" "Returns a decompression object, to be used for decompressing data streams " "that won't fit into memory at once." msgstr "" +"Renvoie un objet de décompression, à utiliser pour décompresser des flux de " +"données qui ne s'intègrent tout de suite pas dans la mémoire." #: ../Doc/library/zlib.rst:183 msgid "" @@ -369,6 +381,9 @@ msgid "" "\"window size\"), and what header and trailer format is expected. It has " "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" +"Le paramètre *wbits* contrôle la dimension du tampon, et détermine quel " +"format d'en-tête et de bloc sont prévus. Il a la même signification que " +"`décrit pour decompress() <##decompress-wbits>`__." #: ../Doc/library/zlib.rst:187 msgid "" @@ -376,6 +391,9 @@ msgid "" "provided, this must be the same dictionary as was used by the compressor " "that produced the data that is to be decompressed." msgstr "" +"Le paramètre *zdict* définit un dictionnaire de compression prédéfini. S'il " +"est fourni, il doit être identique au dictionnaire utilisé par le " +"compresseur, à l'origine des données à décompresser." #: ../Doc/library/zlib.rst:193 msgid "" @@ -383,6 +401,10 @@ msgid "" "modify its contents between the call to :func:`decompressobj` and the first " "call to the decompressor's ``decompress()`` method." msgstr "" +"Si *zdict* est un objet modifiable (tel qu'un :class:`bytearray`, par " +"exemple), vous ne devez pas modifier son contenu entre l'appel à la " +"fonction :func:`decompressobj` et le premier appel à la méthode " +"``decompress()`` du décompresseur." #: ../Doc/library/zlib.rst:197 msgid "Added the *zdict* parameter." @@ -399,6 +421,12 @@ msgid "" "output produced by any preceding calls to the :meth:`compress` method. Some " "input may be kept in internal buffers for later processing." msgstr "" +"Compacte les *données*, en renvoyant un objet sous forme d'octets constitué " +"des données compressées, pour au moins une partie des données dans " +"*données*. Ces données doivent être concaténées à la sortie résultante par " +"n'importe quel appels précédant la méthode :meth:`compress`. Certaines " +"entrées peuvent être conservées dans des tampons internes pour un traitement " +"ultérieur." #: ../Doc/library/zlib.rst:214 msgid "" @@ -412,6 +440,17 @@ msgid "" "the :meth:`compress` method cannot be called again; the only realistic " "action is to delete the object." msgstr "" +"Toutes les entrées mises en attente sont traitées et un objet en octets " +"contenant la sortie des données compressées restantes est retourné. " +"L'argument *mode* peut être choisi depuis les constantes :const:" +"`Z_SYNC_FLUSH`, :const:`Z_FULL_FLUSH`, ou :const:`Z_FINISH`, et par " +"défaut :const:`Z_FINISH`. Les constantes :const:`Z_SYNC_FLUSH` and :const:" +"`Z_FULL_FLUSH` permettent de compresser d'autres chaînes d'octets, tandis " +"que :const:`Z_FINISH` finalise le flux compressé et bloque tout autre " +"tentative de compression. Suite à l'appel de la méthode :meth:`flush` avec " +"l'argument *mode* défini sur :const:`Z_FINISH`, la méthode the :meth:" +"`compress` ne peut plus être rappelée à nouveau. Il ne reste plus qu'à " +"supprimer l'objet." #: ../Doc/library/zlib.rst:227 msgid "" @@ -435,6 +474,10 @@ msgid "" "compression data is available. If the whole bytestring turned out to " "contain compressed data, this is ``b\"\"``, an empty bytes object." msgstr "" +"Un objet en octets contenant tous les octets restants à la fin des données " +"compressées. Autrement dit, ça reste en ``b\"\"`` jusqu'au dernier octet des " +"données en cours de compression. Ainsi, si toute la chaîne d'octets contient " +"encore des données compressées, c'est ``b\"\"``, sinon un objet vide." #: ../Doc/library/zlib.rst:244 msgid "" @@ -444,6 +487,12 @@ msgid "" "must feed it (possibly with further data concatenated to it) back to a " "subsequent :meth:`decompress` method call in order to get correct output." msgstr "" +"Un objet en octets contenant toutes les données non-traitées par le dernier " +"appel à la méthode :meth:`decompress`, puisqu''il a pas dépassé la limite du " +"tampon des données non compressées. Ces données n'ont pas encore été détecté " +"par la librairie zlib, vous devez donc les envoyer (potentiellement avec " +"davantage de données concaténées) par un appel à la méthode :meth:" +"`decompress` pour garantir une sortie correcte." #: ../Doc/library/zlib.rst:253 msgid "" From 2090aaa3e8a0327b54238108c11bf061b78a0cda Mon Sep 17 00:00:00 2001 From: stevostean Date: Wed, 10 Jan 2018 22:40:10 +0100 Subject: [PATCH 007/115] translate library/lzma.po (2%) --- library/lzma.po | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/library/lzma.po b/library/lzma.po index 0fb81986a..016ecce59 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -3,27 +3,28 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: fr\n" +"PO-Revision-Date: 2018-01-10 22:13+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.5\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: fr\n" #: ../Doc/library/lzma.rst:2 msgid ":mod:`lzma` --- Compression using the LZMA algorithm" -msgstr "" +msgstr ":mod:`lzma` --- Compression via l'algorithme LZMA" #: ../Doc/library/lzma.rst:12 msgid "**Source code:** :source:`Lib/lzma.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/lzma.py`" #: ../Doc/library/lzma.rst:16 msgid "" @@ -32,6 +33,11 @@ msgid "" "file interface supporting the ``.xz`` and legacy ``.lzma`` file formats used " "by the :program:`xz` utility, as well as raw compressed streams." msgstr "" +"Ce module fournit des classes et des fonctions utiles pour comprimer et " +"décompresser des données en utilisant l'algorithme de compression LZMA. Il " +"ya aussi une interface de fichier prenant en charge les formats de fichiers " +"``. xz`` et son format originel ``. lzma``` utilisés par l'utilitaire :" +"program:`xz`, ainsi que les flux bruts compressés." #: ../Doc/library/lzma.rst:21 msgid "" @@ -107,7 +113,7 @@ msgstr "" #: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 msgid "Accepts a :term:`path-like object`." -msgstr "Accepte un :term:`path-like object`." +msgstr "" #: ../Doc/library/lzma.rst:74 msgid "Open an LZMA-compressed file in binary mode." @@ -390,7 +396,7 @@ msgstr "" #: ../Doc/library/lzma.rst:264 msgid "Added the *max_length* parameter." -msgstr "Ajout du paramètre *max_length*." +msgstr "" #: ../Doc/library/lzma.rst:269 msgid "" @@ -405,7 +411,7 @@ msgstr "" #: ../Doc/library/lzma.rst:279 msgid "Data found after the end of the compressed stream." -msgstr "Donnée trouvée après la fin du flux compressé." +msgstr "" #: ../Doc/library/lzma.rst:281 msgid "Before the end of the stream is reached, this will be ``b\"\"``." @@ -494,7 +500,7 @@ msgstr "" #: ../Doc/library/lzma.rst:339 msgid ":const:`FILTER_DELTA`" -msgstr ":const:`FILTER_DELTA`" +msgstr "" #: ../Doc/library/lzma.rst:347 msgid "Branch-Call-Jump (BCJ) filters:" @@ -502,27 +508,27 @@ msgstr "" #: ../Doc/library/lzma.rst:342 msgid ":const:`FILTER_X86`" -msgstr ":const:`FILTER_X86`" +msgstr "" #: ../Doc/library/lzma.rst:343 msgid ":const:`FILTER_IA64`" -msgstr ":const:`FILTER_IA64`" +msgstr "" #: ../Doc/library/lzma.rst:344 msgid ":const:`FILTER_ARM`" -msgstr ":const:`FILTER_ARM`" +msgstr "" #: ../Doc/library/lzma.rst:345 msgid ":const:`FILTER_ARMTHUMB`" -msgstr ":const:`FILTER_ARMTHUMB`" +msgstr "" #: ../Doc/library/lzma.rst:346 msgid ":const:`FILTER_POWERPC`" -msgstr ":const:`FILTER_POWERPC`" +msgstr "" #: ../Doc/library/lzma.rst:347 msgid ":const:`FILTER_SPARC`" -msgstr ":const:`FILTER_SPARC`" +msgstr "" #: ../Doc/library/lzma.rst:349 msgid "" @@ -606,7 +612,7 @@ msgstr "" #: ../Doc/library/lzma.rst:385 msgid "Examples" -msgstr "Exemples" +msgstr "" #: ../Doc/library/lzma.rst:387 msgid "Reading in a compressed file::" From f6bee79e1d22f43f88fba6047a0e7d648a849244 Mon Sep 17 00:00:00 2001 From: stevostean Date: Thu, 11 Jan 2018 22:39:01 +0100 Subject: [PATCH 008/115] Revert "translate library/zlib.po (100%) - end" This reverts commit 1d1a2f58795c1d50131e9d7a1bb26cddac2bc803. --- library/zlib.po | 51 +------------------------------------------------ 1 file changed, 1 insertion(+), 50 deletions(-) diff --git a/library/zlib.po b/library/zlib.po index c2052dec1..54a71e548 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-10 21:54+0100\n" +"PO-Revision-Date: 2018-01-10 10:06+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -248,16 +248,6 @@ msgid "" "Since the algorithm is designed for use as a checksum algorithm, it is not " "suitable for use as a general hash algorithm." msgstr "" -"Calcule une somme de contrôle CRC (*Cyclic Redundancy Check*) pour " -"l'argument *données*. Il revoie un entier 32-bit non-signé. Si l'argument " -"*valeur* est présent, il permettra de définir la valeur de départ de la " -"somme de contrôle. Sinon, sa valeur par défaut est 0. Donner une valeur à " -"l'argument *valeur* permet de calculer une somme de contrôle exécutée au " -"cours de la concaténation de plusieurs entrées. L'algorithme n'est pas " -"cryptographiquement fort, et ne devra surtout pas être utilisé pour " -"l'authentification ou des signatures numériques. Alors que cet algorithme a " -"été conçu pour être exploité comme un algorithme de somme de contrôle, il " -"n'est en rien adapté à son emploi comme algorithme de hachage courant." #: ../Doc/library/zlib.rst:126 msgid "" @@ -372,8 +362,6 @@ msgid "" "Returns a decompression object, to be used for decompressing data streams " "that won't fit into memory at once." msgstr "" -"Renvoie un objet de décompression, à utiliser pour décompresser des flux de " -"données qui ne s'intègrent tout de suite pas dans la mémoire." #: ../Doc/library/zlib.rst:183 msgid "" @@ -381,9 +369,6 @@ msgid "" "\"window size\"), and what header and trailer format is expected. It has " "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" -"Le paramètre *wbits* contrôle la dimension du tampon, et détermine quel " -"format d'en-tête et de bloc sont prévus. Il a la même signification que " -"`décrit pour decompress() <##decompress-wbits>`__." #: ../Doc/library/zlib.rst:187 msgid "" @@ -391,9 +376,6 @@ msgid "" "provided, this must be the same dictionary as was used by the compressor " "that produced the data that is to be decompressed." msgstr "" -"Le paramètre *zdict* définit un dictionnaire de compression prédéfini. S'il " -"est fourni, il doit être identique au dictionnaire utilisé par le " -"compresseur, à l'origine des données à décompresser." #: ../Doc/library/zlib.rst:193 msgid "" @@ -401,10 +383,6 @@ msgid "" "modify its contents between the call to :func:`decompressobj` and the first " "call to the decompressor's ``decompress()`` method." msgstr "" -"Si *zdict* est un objet modifiable (tel qu'un :class:`bytearray`, par " -"exemple), vous ne devez pas modifier son contenu entre l'appel à la " -"fonction :func:`decompressobj` et le premier appel à la méthode " -"``decompress()`` du décompresseur." #: ../Doc/library/zlib.rst:197 msgid "Added the *zdict* parameter." @@ -421,12 +399,6 @@ msgid "" "output produced by any preceding calls to the :meth:`compress` method. Some " "input may be kept in internal buffers for later processing." msgstr "" -"Compacte les *données*, en renvoyant un objet sous forme d'octets constitué " -"des données compressées, pour au moins une partie des données dans " -"*données*. Ces données doivent être concaténées à la sortie résultante par " -"n'importe quel appels précédant la méthode :meth:`compress`. Certaines " -"entrées peuvent être conservées dans des tampons internes pour un traitement " -"ultérieur." #: ../Doc/library/zlib.rst:214 msgid "" @@ -440,17 +412,6 @@ msgid "" "the :meth:`compress` method cannot be called again; the only realistic " "action is to delete the object." msgstr "" -"Toutes les entrées mises en attente sont traitées et un objet en octets " -"contenant la sortie des données compressées restantes est retourné. " -"L'argument *mode* peut être choisi depuis les constantes :const:" -"`Z_SYNC_FLUSH`, :const:`Z_FULL_FLUSH`, ou :const:`Z_FINISH`, et par " -"défaut :const:`Z_FINISH`. Les constantes :const:`Z_SYNC_FLUSH` and :const:" -"`Z_FULL_FLUSH` permettent de compresser d'autres chaînes d'octets, tandis " -"que :const:`Z_FINISH` finalise le flux compressé et bloque tout autre " -"tentative de compression. Suite à l'appel de la méthode :meth:`flush` avec " -"l'argument *mode* défini sur :const:`Z_FINISH`, la méthode the :meth:" -"`compress` ne peut plus être rappelée à nouveau. Il ne reste plus qu'à " -"supprimer l'objet." #: ../Doc/library/zlib.rst:227 msgid "" @@ -474,10 +435,6 @@ msgid "" "compression data is available. If the whole bytestring turned out to " "contain compressed data, this is ``b\"\"``, an empty bytes object." msgstr "" -"Un objet en octets contenant tous les octets restants à la fin des données " -"compressées. Autrement dit, ça reste en ``b\"\"`` jusqu'au dernier octet des " -"données en cours de compression. Ainsi, si toute la chaîne d'octets contient " -"encore des données compressées, c'est ``b\"\"``, sinon un objet vide." #: ../Doc/library/zlib.rst:244 msgid "" @@ -487,12 +444,6 @@ msgid "" "must feed it (possibly with further data concatenated to it) back to a " "subsequent :meth:`decompress` method call in order to get correct output." msgstr "" -"Un objet en octets contenant toutes les données non-traitées par le dernier " -"appel à la méthode :meth:`decompress`, puisqu''il a pas dépassé la limite du " -"tampon des données non compressées. Ces données n'ont pas encore été détecté " -"par la librairie zlib, vous devez donc les envoyer (potentiellement avec " -"davantage de données concaténées) par un appel à la méthode :meth:" -"`decompress` pour garantir une sortie correcte." #: ../Doc/library/zlib.rst:253 msgid "" From 90d90f48adeefbd4e6ac46e695fde8093561b7af Mon Sep 17 00:00:00 2001 From: stevostean Date: Fri, 12 Jan 2018 15:32:56 +0100 Subject: [PATCH 009/115] translate library/lzma.po (2%) --- library/lzma.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/lzma.po b/library/lzma.po index 016ecce59..146a061f1 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -34,7 +34,7 @@ msgid "" "by the :program:`xz` utility, as well as raw compressed streams." msgstr "" "Ce module fournit des classes et des fonctions utiles pour comprimer et " -"décompresser des données en utilisant l'algorithme de compression LZMA. Il " +"décompresser des données en utilisant l'algorithme LZMA. Il " "ya aussi une interface de fichier prenant en charge les formats de fichiers " "``. xz`` et son format originel ``. lzma``` utilisés par l'utilitaire :" "program:`xz`, ainsi que les flux bruts compressés." From 9d931227ff6cb9893af11a17be4fced9fdb54f65 Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 23 Jan 2018 09:25:49 +0100 Subject: [PATCH 010/115] Replace zlib.po by its original version (not mine). --- library/zlib.po | 184 +++++------------------------------------------- 1 file changed, 17 insertions(+), 167 deletions(-) diff --git a/library/zlib.po b/library/zlib.po index 54a71e548..3d847def4 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -3,24 +3,23 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # +#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-10 10:06+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Language-Team: \n" -"X-Generator: Poedit 2.0.5\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"Last-Translator: \n" -"Language: fr\n" #: ../Doc/library/zlib.rst:2 msgid ":mod:`zlib` --- Compression compatible with :program:`gzip`" -msgstr ":mod:`zlib` --- Compression compatible avec :program:`gzip`" +msgstr "" #: ../Doc/library/zlib.rst:10 msgid "" @@ -31,13 +30,6 @@ msgid "" "earlier than 1.1.3; 1.1.3 has a security vulnerability, so we recommend " "using 1.1.4 or later." msgstr "" -"Pour des applications qui nécessitent la compression de données, les " -"fonctions de ce module permettent la compression et la décompression via la " -"librairie zlib. La librairie zlib a sa propre page web sur http://www.zlib." -"net. Il y a des incompatibilités connues entre le module Python et les " -"versions de la librairie zlib plus ancienne que la 1.1.3 ; 1.1.3 contient " -"des failles de sécurité et nous recommandons d'utiliser plutôt la version " -"1.14 ou plus récente." #: ../Doc/library/zlib.rst:17 msgid "" @@ -46,25 +38,18 @@ msgid "" "consult the zlib manual at http://www.zlib.net/manual.html for authoritative " "information." msgstr "" -"Les fonctions zlib recèlent de nombreuses options et nécessitent d'être " -"ordonnées selon un ordre précis. Cette documentation N'a pas pour but de " -"couvrir la totalité des combinaisons. Veuillez consulter le manuel zlib en " -"ligne sur http://www.zlib.net/manual.html pour des contenus avertis." #: ../Doc/library/zlib.rst:22 msgid "For reading and writing ``.gz`` files see the :mod:`gzip` module." msgstr "" -"Pour lire ou écrire des fichiers ``.gz`` veuillez consulter le module :mod:" -"`gzip`." #: ../Doc/library/zlib.rst:24 msgid "The available exception and functions in this module are:" -msgstr "Les exceptions et fonctions disponibles de ce module sont :" +msgstr "" #: ../Doc/library/zlib.rst:29 msgid "Exception raised on compression and decompression errors." msgstr "" -"Les exceptions levées lors d'erreurs de compression et de décompression." #: ../Doc/library/zlib.rst:34 msgid "" @@ -78,26 +63,12 @@ msgid "" "Since the algorithm is designed for use as a checksum algorithm, it is not " "suitable for use as a general hash algorithm." msgstr "" -"Calcule une somme de contrôle Adler-32 de *données*. (Une somme de contrôle " -"Adler-32 est aussi fiable qu'un CRC32 mais peut être calculé bien plus " -"rapidement.) Le résultat produit est un entier son-signé de 32-bit. Si " -"*valeur* est défini, c'est emlployé comme valeur de départ de la somme de " -"contrôle ; sinon une valeur par défaut de 1 est utilisée. Inscrire une " -"*valeur* permet de calculer une somme de contrôle continue pendant le " -"concaténation de plusieurs entrées. L'algorithme n'est pas " -"cryptographiquement fort, et et ne doit pas être pour l'authentification ou " -"des signatures numériques. Depuis que cet algorithme est conçu comme " -"algorithme de somme de contrôle, il n'est pas adapté comme clé de hashage " -"générique." #: ../Doc/library/zlib.rst:44 msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``adler32(data) & 0xffffffff``." msgstr "" -"Renvoie systématiquement une valeur non-signée. Pour produire " -"systématiquement la même valeur à travers toutes les versions de Python et " -"différentes plateformes, utilisez ``adler32(data) & 0xffffffff``." #: ../Doc/library/zlib.rst:52 msgid "" @@ -110,27 +81,16 @@ msgid "" "compression (currently equivalent to level 6). Raises the :exc:`error` " "exception if any error occurs." msgstr "" -"Il compresse les octets contenus dans *data*, renvoie un objets en octets " -"représentant les données compressées. Le *niveau*doit être un entier, " -"compris entre ``0`` et ``9`` ou ``-1`` pour ajuster le niveau de " -"compression ; ``1`` étant plus rapide et procède une compression légère, " -"``9`` est plus lente mais produit la plus forte. ``0`` n'effectue aucune " -"compression. La valeur par défaut est ``-1`` (Z_DEFAULT_COMPRESSION). " -"Z_DEFAULT_COMPRESSION offre une valeur par défaut proposant un équilibre " -"entre vitesse et taux de compression (actuellement équivalente à 6). Si une " -"erreur surgit, l'exception :exc:`error` est levée." #: ../Doc/library/zlib.rst:60 msgid "*level* can now be used as a keyword parameter." -msgstr "Le *niveau* peut être employé désormais comme un paramètre clé." +msgstr "" #: ../Doc/library/zlib.rst:66 msgid "" "Returns a compression object, to be used for compressing data streams that " "won't fit into memory at once." msgstr "" -"Renvoie un objet compressé, utilisé pour des flux de données compressées qui " -"ne sont pas stockés immédiatement en mémoire." #: ../Doc/library/zlib.rst:69 msgid "" @@ -141,21 +101,12 @@ msgid "" "Z_DEFAULT_COMPRESSION represents a default compromise between speed and " "compression (currently equivalent to level 6)." msgstr "" -"Le *niveau* est le seuil de compression -- un entier compris entre ``0`` et " -"``9`` ou ``-1``. La valeur ``1`` est la plus rapide avec taux de compression " -"minimal, tandis que la valeur ``9`` est la plus lente mais produit une " -"compression plus forte. ``0`` ne produit aucune compression. La valeur par " -"défaut est ``-1`` (Z_DEFAULT_COMPRESSION). La constante " -"Z_DEFAULT_COMPRESSION équivaut à un bon compromis par défaut entre rapidité " -"et bonne compression (valeur équivalente au niveau 6)." #: ../Doc/library/zlib.rst:75 msgid "" "*method* is the compression algorithm. Currently, the only supported value " "is ``DEFLATED``." msgstr "" -"La *méthode* définit l'algorithme de compression. Pour le moment, la seule " -"valeur acceptée est ``DEFLATED``." #: ../Doc/library/zlib.rst:78 msgid "" @@ -163,10 +114,6 @@ msgid "" "\"window size\") used when compressing data, and whether a header and " "trailer is included in the output. It can take several ranges of values:" msgstr "" -"L'argument *wbits* contrôle la taille de la mémoire tampon (ou de sa propre " -"\"dimension\") mobilisée par les données compressées, et si un en-tête et un " -"bloc final font partie de la sortie. Il peut être constitué de plusieurs " -"plages de valeur :" #: ../Doc/library/zlib.rst:82 msgid "" @@ -175,19 +122,12 @@ msgid "" "expense of greater memory usage. The resulting output will include a zlib-" "specific header and trailer." msgstr "" -"De +9 à +15 : le logarithme binaire de sa dimension, compris entre 512 et " -"32768. Des valeurs plus grandes produisent de meilleures compressions au " -"dépens d'une utilisation mémoire plus grande. Le résultat final introduira " -"des en-tête et des blocs spécifiques à zlib." #: ../Doc/library/zlib.rst:87 msgid "" "−9 to −15: Uses the absolute value of *wbits* as the window size logarithm, " "while producing a raw output stream with no header or trailing checksum." msgstr "" -"De -9 à -15 : l'argument *wbits* emploie sa valeur absolue comme dimension " -"du logarithme, développant un flux brut en sortie, sans en-tête ni bloc de " -"somme de contrôle." #: ../Doc/library/zlib.rst:91 msgid "" @@ -195,9 +135,6 @@ msgid "" "size logarithm, while including a basic :program:`gzip` header and trailing " "checksum in the output." msgstr "" -"De +25 à +31 = 16 + (9 à 15) : exploite les 4 bits les plus faibles de la " -"valeur comme dimension de son logarithme, en y ajoutant un en-tête :program:" -"`gzip` et un bloc de somme de contrôle à la sortie." #: ../Doc/library/zlib.rst:95 msgid "" @@ -205,19 +142,12 @@ msgid "" "compression state. Valid values range from ``1`` to ``9``. Higher values use " "more memory, but are faster and produce smaller output." msgstr "" -"L'argument *niveauMem* manipule le taux de mémoire utilisé for pour son état " -"de compression. Les valeurs valides sont comprises entre ``1`` et ``9``. Des " -"valeur plus élevées occupent davantage de mémoire, mais sont plus rapides et " -"produisent des sorties très compressées." #: ../Doc/library/zlib.rst:99 msgid "" "*strategy* is used to tune the compression algorithm. Possible values are " "``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, and ``Z_HUFFMAN_ONLY``." msgstr "" -"La *stratégie* permet d'ajuster l'algorithme de compression. Les valeurs " -"existantes sont ``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, et " -"``Z_HUFFMAN_ONLY``." #: ../Doc/library/zlib.rst:102 msgid "" @@ -226,16 +156,10 @@ msgid "" "to occur frequently in the data that is to be compressed. Those subsequences " "that are expected to be most common should come at the end of the dictionary." msgstr "" -"L'argument *zdict* est un dictionnaire de compression pré-défini. Il s'agit " -"d'une séquence d'octets (tel qu'un objet :class:`bytes`) contenant des sous-" -"séquences attendues régulièrement pour produire les données à compresser. " -"Ces sous-séquences devraient se trouver en fin de dictionnaire." #: ../Doc/library/zlib.rst:107 msgid "Added the *zdict* parameter and keyword argument support." msgstr "" -"Ajout du support de prise en charge du paramètre *zdict* et de sa valeur en " -"argument." #: ../Doc/library/zlib.rst:117 msgid "" @@ -254,9 +178,6 @@ msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``crc32(data) & 0xffffffff``." msgstr "" -"Renvoie systématiquement une valeur non-signée. Pour obtenir la même valeur " -"numérique sur n'importe quelle version de Python et plateforme, utilisez " -"``crc32(data) & 0xffffffff``." #: ../Doc/library/zlib.rst:134 msgid "" @@ -266,11 +187,6 @@ msgid "" "initial size of the output buffer. Raises the :exc:`error` exception if any " "error occurs." msgstr "" -"Décompresse les octets dans *données*, en renvoyant un objet contenant les " -"données non-compressées. Le paramètre *wbits* dépend du format des " -"*données*, et est discuté plus loin. Si l'argument *tailleTampon* est " -"défini, il est utilisé comme taille initiale du tampon de sortie. En cas " -"d'erreur, l'exception: exc: `erreur` est levée." #: ../Doc/library/zlib.rst:142 msgid "" @@ -278,51 +194,36 @@ msgid "" "size\"), and what header and trailer format is expected. It is similar to " "the parameter for :func:`compressobj`, but accepts more ranges of values:" msgstr "" -"Le paramètre *wbits* contrôle la dimension du tampon, et quel en-tête et " -"bloc sont attendus. Similaire au paramètre pour : func: `compressobj`, mais " -"accepte davantage de valeurs:" #: ../Doc/library/zlib.rst:147 msgid "" "+8 to +15: The base-two logarithm of the window size. The input must " "include a zlib header and trailer." msgstr "" -"De +8 à +15 : Logarithme binaire à base 2 pour la dimension du tampon. " -"L'entrée doit contenir un en-tête et un bloc zlib." #: ../Doc/library/zlib.rst:150 msgid "" "0: Automatically determine the window size from the zlib header. Only " "supported since zlib 1.2.3.5." msgstr "" -"0: Détermine automatiquement la dimension du tampon à partir de l'en-tête " -"zlib. Supporté uniquement depuis zlib 1.2.3.5." #: ../Doc/library/zlib.rst:153 msgid "" "−8 to −15: Uses the absolute value of *wbits* as the window size logarithm. " "The input must be a raw stream with no header or trailer." msgstr "" -"De -8 à -15 : Utilise la valeur absolue de *wbits* comme logarithme pour la " -"dimension du tampon. L'entrée doit être un flux brut, sans en-tête ni bloc." #: ../Doc/library/zlib.rst:156 msgid "" "+24 to +31 = 16 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm. The input must include a gzip header and trailer." msgstr "" -"De +24 à +31 = 16 + (8 à 15) : Utilise les 4 bitsles plus faibles de la " -"valeur comme logarithme de dimension du tampon. L'entrée doit contenir un " -"en-tête gzip et son bloc." #: ../Doc/library/zlib.rst:160 msgid "" "+40 to +47 = 32 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm, and automatically accepts either the zlib or gzip format." msgstr "" -"De +40 à +47 = 32 + (8 à 15) : Utilise les 4 bits les plus faibles de la " -"valeur comme logarithme de dimension du tampon, et accepte automatiquement " -"les formats zlib ou gzip." #: ../Doc/library/zlib.rst:164 msgid "" @@ -332,11 +233,6 @@ msgid "" "to the largest window size and requires a zlib header and trailer to be " "included." msgstr "" -"Lors de la décompression d'un flux, la dimension du tampon ne doit pas être " -"inférieure à sa taille initialement utilisée pour compresser le flux. " -"L'utilisation d'une valeur trop petite peut déclencher une exception: exc: " -"`error`. La valeur par défaut *wbits* correspond àune dimension élevée du " -"tampon et nécessite d'y adjoindre un en-tête zlib et son bloc." #: ../Doc/library/zlib.rst:170 msgid "" @@ -345,17 +241,10 @@ msgid "" "you don't have to get this value exactly right; tuning it will only save a " "few calls to :c:func:`malloc`." msgstr "" -"L'argument *tailleTampon* correspond à la dimension initiale du tampon " -"utilisé pour contenir les données décompressées. Pour une espace plus grand, " -"la taille du tampon sera augmentée au besoin, donc vous n'avez pas besoin de " -"connaître sa valeur exacte. Son réglage n'effectuera que quelques appels à " -"la fonction :c:func:`malloc`." #: ../Doc/library/zlib.rst:175 msgid "*wbits* and *bufsize* can be used as keyword arguments." msgstr "" -"Les paramètres *wbits* et *tailleTampon* peuvent être utilisés comme " -"arguments clés." #: ../Doc/library/zlib.rst:180 msgid "" @@ -386,11 +275,11 @@ msgstr "" #: ../Doc/library/zlib.rst:197 msgid "Added the *zdict* parameter." -msgstr "Ajout du paramètre *zdict*." +msgstr "" #: ../Doc/library/zlib.rst:201 msgid "Compression objects support the following methods:" -msgstr "Les objets de compression supportent les méthodes suivantes :" +msgstr "" #: ../Doc/library/zlib.rst:206 msgid "" @@ -418,15 +307,10 @@ msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" -"Renvoie une copie de l'objet de compression. Il peut être exploité pour " -"compresser efficacement un ensemble de données qui partagent un préfixe " -"initial commun." #: ../Doc/library/zlib.rst:231 msgid "Decompression objects support the following methods and attributes:" msgstr "" -"Les objets de décompression prennent en charge les méthodes et attributs " -"suivants :" #: ../Doc/library/zlib.rst:236 msgid "" @@ -449,15 +333,13 @@ msgstr "" msgid "" "A boolean indicating whether the end of the compressed data stream has been " "reached." -msgstr "Un booléen qui signale s'il a atteint la fin du flux compressé." +msgstr "" #: ../Doc/library/zlib.rst:256 msgid "" "This makes it possible to distinguish between a properly-formed compressed " "stream, and an incomplete or truncated one." msgstr "" -"ceci rend possible la distinction entre un flux proprement compressé et une " -"version incomplète ou tronquée." #: ../Doc/library/zlib.rst:264 msgid "" @@ -467,12 +349,6 @@ msgid "" "`decompress` method. Some of the input data may be preserved in internal " "buffers for later processing." msgstr "" -"Les *données* décompressées, renvoient un objet sous forme d'octets, " -"contenant les données non-compressées représentant la plus faible partie des " -"éléments de *chaîne*. Cette donnée devrait être concaténée avec la sortie " -"produite par n'importe quel appel antérieur de la méthode :meth:" -"`decompress`. Quelques données d'entrée peuvent être conservées dans les " -"tampons internes pour un traitement ultérieur." #: ../Doc/library/zlib.rst:270 msgid "" @@ -484,18 +360,10 @@ msgid "" "*max_length* is zero then the whole input is decompressed, and :attr:" "`unconsumed_tail` is empty." msgstr "" -"Si le paramètre optionnel *taille_max* est non-nul alors la valeur renvoyée " -"ne sera pas plus grande que *taille_max*. En clair, une entrée compressée ne " -"sera pas traitée entièrement et les données inutilisées seront stockées dans " -"l'attribut :attr:`unconsumed_tail`. Cette chaîne d'octets doit être " -"transmise à un appel ultérieur vers la méthode :meth:`decompress`, si la " -"décompression est maintenue. Si la *taille_max* est nulle alors la totalité " -"de l'entrée est décompressée, et l'attribut :attr:`unconsumed_tail` demeure " -"vide." #: ../Doc/library/zlib.rst:277 msgid "*max_length* can be used as a keyword argument." -msgstr "La *taille_max* peut être utilisée comme un argument clé." +msgstr "" #: ../Doc/library/zlib.rst:283 msgid "" @@ -504,17 +372,11 @@ msgid "" "`decompress` method cannot be called again; the only realistic action is to " "delete the object." msgstr "" -"Toutes les sorties en attente sont traitées, et il renvoie un objet en octet " -"contenant la décompression de données en cours. après l'appel de :meth:" -"`flush`, la méthode :meth:`decompress` ne peut pas être rappelée. La seule " -"action réalisable est de détruire l'objet." #: ../Doc/library/zlib.rst:288 msgid "" "The optional parameter *length* sets the initial size of the output buffer." msgstr "" -"Le paramètre optionnel *taille* définit la taille initiale du tampon de " -"sortie." #: ../Doc/library/zlib.rst:293 msgid "" @@ -522,17 +384,12 @@ msgid "" "state of the decompressor midway through the data stream in order to speed " "up random seeks into the stream at a future point." msgstr "" -"Renvoie une copie de l'objet décompressé. Vous pouvez l'exploiter pour " -"sauvegarder l'état de la décompression en cours, via le flux de données, " -"afin d'améliorer les temps d'accès alétoires du flux à un moment futur." #: ../Doc/library/zlib.rst:298 msgid "" "Information about the version of the zlib library in use is available " "through the following constants:" msgstr "" -"L'information relative à la version de la librairie zlib utlisée est " -"disponible via les constantes suivantes :" #: ../Doc/library/zlib.rst:304 msgid "" @@ -540,41 +397,34 @@ msgid "" "module. This may be different from the zlib library actually used at " "runtime, which is available as :const:`ZLIB_RUNTIME_VERSION`." msgstr "" -"La version de la librairie zlib utlisée pour la conception du module. Elle " -"peut être différente de la librairie zlib couramment utilisée par le " -"système, qui est consultable avec :const:`ZLIB_RUNTIME_VERSION`." #: ../Doc/library/zlib.rst:311 msgid "" "The version string of the zlib library actually loaded by the interpreter." msgstr "" -"La chaîne contenant la version de la librairie zlib couramment utilisée par " -"l'interpréteur." #: ../Doc/library/zlib.rst:319 msgid "Module :mod:`gzip`" -msgstr "Module :mod:`gzip`" +msgstr "" #: ../Doc/library/zlib.rst:319 msgid "Reading and writing :program:`gzip`\\ -format files." -msgstr "Lire et écrire des fichiers au format :program:`gzip`." +msgstr "" #: ../Doc/library/zlib.rst:322 msgid "http://www.zlib.net" -msgstr "https://www.zlib.net" +msgstr "" #: ../Doc/library/zlib.rst:322 msgid "The zlib library home page." -msgstr "La page officielle de la librairie zlib." +msgstr "" #: ../Doc/library/zlib.rst:325 msgid "http://www.zlib.net/manual.html" -msgstr "https://www.zlib.net/manual.html" +msgstr "" #: ../Doc/library/zlib.rst:325 msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." msgstr "" -"Le manuel zlib fournit les sémantiques et usages des nombreuses fonction de " -"la librairie." From 57027a936428a987e8909938adb31d6800704776 Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 23 Jan 2018 09:58:19 +0100 Subject: [PATCH 011/115] Translation lzma.po (10%) --- library/lzma.po | 39 ++++++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/library/lzma.po b/library/lzma.po index 146a061f1..c15d0d34f 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-10 22:13+0100\n" +"PO-Revision-Date: 2018-01-23 09:57+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -33,11 +33,11 @@ msgid "" "file interface supporting the ``.xz`` and legacy ``.lzma`` file formats used " "by the :program:`xz` utility, as well as raw compressed streams." msgstr "" -"Ce module fournit des classes et des fonctions utiles pour comprimer et " -"décompresser des données en utilisant l'algorithme LZMA. Il " -"ya aussi une interface de fichier prenant en charge les formats de fichiers " -"``. xz`` et son format originel ``. lzma``` utilisés par l'utilitaire :" -"program:`xz`, ainsi que les flux bruts compressés." +"Ce module fournit des classes et des fonctions utiles pour compresser et " +"décompresser des données en utilisant l'algorithme LZMA. Il contient aussi " +"une interface de gestion de fichiers prenant en charge les formats de " +"fichiers ``.xz`` et son format originel ``.lzma`` utilisés par l'utilitaire :" +"program:`xz`, ainsi que des flux bruts compressés." #: ../Doc/library/lzma.rst:21 msgid "" @@ -47,22 +47,32 @@ msgid "" "`LZMAFile` instance from multiple threads, it is necessary to protect it " "with a lock." msgstr "" +"L'interface disponible par ce module ressemble en de nombreux points à celle " +"du module :mod:`bz2`. Cependant, notez que la :class:`LZMAFile` n'est pas " +"*thread-safe*, comme l'est la :class:`bz2.BZ2File`. Donc, si vous souhaitez " +"utiliser une seule instance de :class:`LZMAFile` pour plusieurs fils, il " +"sera alors nécessaire de la protéger avec un verrou (*lock*)." #: ../Doc/library/lzma.rst:29 msgid "" "This exception is raised when an error occurs during compression or " "decompression, or while initializing the compressor/decompressor state." msgstr "" +"Cette exception est levée dès lors qu'une erreur survient pendant la " +"compression ou la décompression, ou pendant l'initialisation de l'état de la " +"compression/décompression." #: ../Doc/library/lzma.rst:34 msgid "Reading and writing compressed files" -msgstr "" +msgstr "Lire et écrire des fichiers compressés" #: ../Doc/library/lzma.rst:38 msgid "" "Open an LZMA-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Ouvre un fichier compressé sous LZMA en mode binaire ou texte, retourne un :" +"term:`file object`." #: ../Doc/library/lzma.rst:41 msgid "" @@ -71,6 +81,10 @@ msgid "" "which case the named file is opened, or it can be an existing file object to " "read from or write to." msgstr "" +"L'argument *nom de fichier* peut être soit le nom d'un fichier à créer " +"(donné pour :class:`str`, :class:`bytes` ou un objet :term:`path-like `), dont le fichier nommé reste ouvert, ou soit un objet fichier " +"existant à lire ou à écrire." #: ../Doc/library/lzma.rst:46 msgid "" @@ -79,6 +93,10 @@ msgid "" "\"rt\"``, ``\"wt\"``, ``\"xt\"``, or ``\"at\"`` for text mode. The default " "is ``\"rb\"``." msgstr "" +"L'argument *mode* peut être n'importe quel argument suivant : ``\"r\"``, ``" +"\"rb\"``, ``\"w\"``, ``\"wb\"``, ``\"x\"``, ``\"xb\"``, ``\"a\"`` ou ``\"ab" +"\"`` pour le mode binaire, ou ``\"rt\"``, ``\"wt\"``, ``\"xt\"``, ou ``\"at" +"\"`` pour le mode texte. La valeur par défaut est ``\"rb\"``." #: ../Doc/library/lzma.rst:50 ../Doc/library/lzma.rst:95 msgid "" @@ -86,12 +104,19 @@ msgid "" "the same meanings as for :class:`LZMADecompressor`. In this case, the " "*check* and *preset* arguments should not be used." msgstr "" +"Quand un fichier est ouvert pour le lire, les arguments *format* et " +"*filtres* ont les mêmes significations que pour la :class:" +"`LZMADecompressor`. Par conséquent, les arguments *vérifié* et *préréglage* " +"ne devront pas être sollicités." #: ../Doc/library/lzma.rst:54 ../Doc/library/lzma.rst:99 msgid "" "When opening a file for writing, the *format*, *check*, *preset* and " "*filters* arguments have the same meanings as for :class:`LZMACompressor`." msgstr "" +"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, " +"*vérifié*, *préréglage* et *filtres* ont le même sens que dans la :class:" +"`LZMACompressor`." #: ../Doc/library/lzma.rst:57 msgid "" From 882017ab09bcdc21f171486c57c140d74c2ab198 Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 23 Jan 2018 10:18:13 +0100 Subject: [PATCH 012/115] Translation lzma.po (31%) --- library/lzma.po | 46 +++++++++++++++++++++++++++++++--------------- 1 file changed, 31 insertions(+), 15 deletions(-) diff --git a/library/lzma.po b/library/lzma.po index c15d0d34f..b9060e59f 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-23 09:57+0100\n" +"PO-Revision-Date: 2018-01-23 10:17+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -278,21 +278,29 @@ msgstr "" #: ../Doc/library/lzma.rst:164 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." msgstr "" +":const:`CHECK_CRC32`: Vérification par Redondance Cyclique 32-bit (*Cyclic " +"Redundancy Check*)." #: ../Doc/library/lzma.rst:166 msgid "" ":const:`CHECK_CRC64`: 64-bit Cyclic Redundancy Check. This is the default " "for :const:`FORMAT_XZ`." msgstr "" +":const:`CHECK_CRC64`: Vérification par Redondance Cyclique 64-bit (*Cyclic " +"Redundancy Check*). Valeur par défaut pour :const:`FORMAT_XZ`." #: ../Doc/library/lzma.rst:169 msgid ":const:`CHECK_SHA256`: 256-bit Secure Hash Algorithm." msgstr "" +":const:`CHECK_SHA256`: Algorithme de Hachage Sécurisé 256-bit (*Secure Hash " +"Algorithm*)." #: ../Doc/library/lzma.rst:171 msgid "" "If the specified check is not supported, an :class:`LZMAError` is raised." msgstr "" +"Si le type de vérification n'est pas supporté par le système, une erreur de " +"type :class:`LZMAError` est levée." #: ../Doc/library/lzma.rst:173 msgid "" @@ -339,16 +347,22 @@ msgid "" "Finish the compression process, returning a :class:`bytes` object containing " "any data stored in the compressor's internal buffers." msgstr "" +"Conclut l'opération de compression, en renvoyant l'objet :class:`bytes` " +"constitué de toutes les données stockées dans les tampons interne du " +"compresseur." #: ../Doc/library/lzma.rst:208 msgid "The compressor cannot be used after this method has been called." msgstr "" +"Le compresseur ne pourra pas être sollicité après l'appel de cette méthode." #: ../Doc/library/lzma.rst:213 msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" +"Créé un objet de décompression, pour décompresser de façon incrémentale les " +"données." #: ../Doc/library/lzma.rst:216 msgid "" @@ -421,7 +435,7 @@ msgstr "" #: ../Doc/library/lzma.rst:264 msgid "Added the *max_length* parameter." -msgstr "" +msgstr "Ajout du paramètre *taille_max*." #: ../Doc/library/lzma.rst:269 msgid "" @@ -432,15 +446,15 @@ msgstr "" #: ../Doc/library/lzma.rst:275 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le pointeur de fin de flux est atteint." #: ../Doc/library/lzma.rst:279 msgid "Data found after the end of the compressed stream." -msgstr "" +msgstr "Les données trouvées après la fin du flux compressé." #: ../Doc/library/lzma.rst:281 msgid "Before the end of the stream is reached, this will be ``b\"\"``." -msgstr "" +msgstr "Avant d'atteindre la fin du flux, ce sera ``b\"\"``." #: ../Doc/library/lzma.rst:285 msgid "" @@ -480,11 +494,12 @@ msgstr "" #: ../Doc/library/lzma.rst:312 msgid "Miscellaneous" -msgstr "" +msgstr "Divers" #: ../Doc/library/lzma.rst:316 msgid "Returns true if the given integrity check is supported on this system." msgstr "" +"Renvoie vrai si le contrôle d'intégrité donné est supporté par le système." #: ../Doc/library/lzma.rst:318 msgid "" @@ -495,7 +510,7 @@ msgstr "" #: ../Doc/library/lzma.rst:327 msgid "Specifying custom filter chains" -msgstr "" +msgstr "Préciser des chaînes de filtre personnalisées" #: ../Doc/library/lzma.rst:329 msgid "" @@ -507,7 +522,7 @@ msgstr "" #: ../Doc/library/lzma.rst:336 msgid "Compression filters:" -msgstr "" +msgstr "Filtres de compression:" #: ../Doc/library/lzma.rst:335 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" @@ -521,7 +536,7 @@ msgstr "" #: ../Doc/library/lzma.rst:339 msgid "Delta filter:" -msgstr "" +msgstr "Filtre Delta:" #: ../Doc/library/lzma.rst:339 msgid ":const:`FILTER_DELTA`" @@ -637,28 +652,29 @@ msgstr "" #: ../Doc/library/lzma.rst:385 msgid "Examples" -msgstr "" +msgstr "Exemples" #: ../Doc/library/lzma.rst:387 msgid "Reading in a compressed file::" -msgstr "" +msgstr "Lire un fichier compressé::" #: ../Doc/library/lzma.rst:393 msgid "Creating a compressed file::" -msgstr "" +msgstr "Créer un fichier compressé::" #: ../Doc/library/lzma.rst:400 msgid "Compressing data in memory::" -msgstr "" +msgstr "Compresser des données en mémoire::" #: ../Doc/library/lzma.rst:406 msgid "Incremental compression::" -msgstr "" +msgstr "Compression incrémentale::" #: ../Doc/library/lzma.rst:417 msgid "Writing compressed data to an already-open file::" -msgstr "" +msgstr "Ecrire des données compressées dans un fichier préalablement ouvert::" #: ../Doc/library/lzma.rst:426 msgid "Creating a compressed file using a custom filter chain::" msgstr "" +"Créer un fichier compressé en utilisant une chaîne de filtre personnalisée::" From 0640f61e92013485707cf8e5673e0d89b072dccf Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 23 Jan 2018 10:37:50 +0100 Subject: [PATCH 013/115] Translation lzma.po (46%) --- library/lzma.po | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/library/lzma.po b/library/lzma.po index b9060e59f..afc8063a5 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-23 10:17+0100\n" +"PO-Revision-Date: 2018-01-23 10:22+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -213,18 +213,22 @@ msgstr "" #: ../Doc/library/lzma.rst:131 msgid "Compressing and decompressing data in memory" -msgstr "" +msgstr "Compresser et décompresser des données en mémoire" #: ../Doc/library/lzma.rst:135 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" +"Créé un objet compresseur, qui peut être utilisé pour compresser " +"incrémentalement des données." #: ../Doc/library/lzma.rst:137 msgid "" "For a more convenient way of compressing a single chunk of data, see :func:" "`compress`." msgstr "" +"Pour une façon plus adaptée de compresser un seul morceau de données, voir :" +"func:`compress`." #: ../Doc/library/lzma.rst:140 msgid "" From 58cd43e8e81196fcf94a2bc1833d1ae0d8963810 Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 20 Feb 2018 20:58:24 +0100 Subject: [PATCH 014/115] Translation lzma.po (84%) --- library/lzma.po | 31 ++++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/library/lzma.po b/library/lzma.po index afc8063a5..387a6a7e3 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-23 10:22+0100\n" +"PO-Revision-Date: 2018-01-23 14:29+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -138,11 +138,11 @@ msgstr "" #: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/lzma.rst:74 msgid "Open an LZMA-compressed file in binary mode." -msgstr "" +msgstr "Ouvre un fichier LZMA compressé en mode binaire." #: ../Doc/library/lzma.rst:76 msgid "" @@ -184,7 +184,7 @@ msgstr "" #: ../Doc/library/lzma.rst:106 msgid "The following method is also provided:" -msgstr "" +msgstr "Les méthodes suivantes sont aussi disponibles :" #: ../Doc/library/lzma.rst:110 msgid "" @@ -203,13 +203,15 @@ msgstr "" #: ../Doc/library/lzma.rst:119 msgid "Added support for the ``\"x\"`` and ``\"xb\"`` modes." -msgstr "" +msgstr "Support ajouté pour les modes ``\"x\"`` and ``\"xb\"``." #: ../Doc/library/lzma.rst:122 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte désormais un argument " +"``None``." #: ../Doc/library/lzma.rst:131 msgid "Compressing and decompressing data in memory" @@ -238,25 +240,29 @@ msgstr "" #: ../Doc/library/lzma.rst:144 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." -msgstr "" +msgstr ":const:`FORMAT_XZ`: Le format du conteneur ``.xz``." #: ../Doc/library/lzma.rst:144 msgid "This is the default format." -msgstr "" +msgstr "C'est le format par défaut." #: ../Doc/library/lzma.rst:148 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." -msgstr "" +msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma`." #: ../Doc/library/lzma.rst:147 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." msgstr "" +"Ce format est davantage limité que ``.xz`` --il ne supporte pas les " +"vérifications d'intégrité ou les filtres multiples." #: ../Doc/library/lzma.rst:154 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" +":const:`FORMAT_RAW`: Un flux de données brut, n'utilisant aucun format de " +"conteneur." #: ../Doc/library/lzma.rst:151 msgid "" @@ -265,6 +271,11 @@ msgid "" "decompression). Additionally, data compressed in this manner cannot be " "decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." msgstr "" +"Ce format spécifique ne prend pas en charge les vérifications d'intégrité et " +"exige systématiquement la définition d'une chaîne de filtrage personnalisée " +"(à la fois pour la compression et la décompression). Par ailleurs, les " +"données compressées par ce biais ne peuvent pas être décompressées par " +"l'usage de :const:`FORMAT_AUTO` (voir : :class:`LZMADecompressor`)." #: ../Doc/library/lzma.rst:156 msgid "" @@ -530,13 +541,15 @@ msgstr "Filtres de compression:" #: ../Doc/library/lzma.rst:335 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" -msgstr "" +msgstr ":const:`FILTER_LZMA1` (à utiliser avec :const:`FORMAT_ALONE`)" #: ../Doc/library/lzma.rst:336 msgid "" ":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" "`FORMAT_RAW`)" msgstr "" +":const:`FILTER_LZMA2` (à utiliser avec :const:`FORMAT_XZ` et :const:" +"`FORMAT_RAW`)" #: ../Doc/library/lzma.rst:339 msgid "Delta filter:" From 3a72937ee591749f071893170e19798c890f0f7f Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 20 Feb 2018 20:58:24 +0100 Subject: [PATCH 015/115] Translation lzma.po (84%) --- library/lzma.po | 168 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 133 insertions(+), 35 deletions(-) diff --git a/library/lzma.po b/library/lzma.po index afc8063a5..077515ae9 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,12 +8,12 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-01-23 10:22+0100\n" +"PO-Revision-Date: 2018-02-20 21:19+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language-Team: \n" -"X-Generator: Poedit 2.0.5\n" +"X-Generator: Poedit 2.0.6\n" "Last-Translator: \n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Language: fr\n" @@ -24,7 +24,7 @@ msgstr ":mod:`lzma` --- Compression via l'algorithme LZMA" #: ../Doc/library/lzma.rst:12 msgid "**Source code:** :source:`Lib/lzma.py`" -msgstr "**Source code:** :source:`Lib/lzma.py`" +msgstr "**Code source:** :source:`Lib/lzma.py`" #: ../Doc/library/lzma.rst:16 msgid "" @@ -105,18 +105,17 @@ msgid "" "*check* and *preset* arguments should not be used." msgstr "" "Quand un fichier est ouvert pour le lire, les arguments *format* et " -"*filtres* ont les mêmes significations que pour la :class:" -"`LZMADecompressor`. Par conséquent, les arguments *vérifié* et *préréglage* " -"ne devront pas être sollicités." +"*filters* ont les mêmes significations que pour la :class:" +"`LZMADecompressor`. Par conséquent, les arguments *check* et *preset* ne " +"devront pas être sollicités." #: ../Doc/library/lzma.rst:54 ../Doc/library/lzma.rst:99 msgid "" "When opening a file for writing, the *format*, *check*, *preset* and " "*filters* arguments have the same meanings as for :class:`LZMACompressor`." msgstr "" -"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, " -"*vérifié*, *préréglage* et *filtres* ont le même sens que dans la :class:" -"`LZMACompressor`." +"Dès ouverture d'un fichier pour l'écriture, les arguments *format*, *check*, " +"*preset* et *filters* ont le même sens que dans la :class:`LZMACompressor`." #: ../Doc/library/lzma.rst:57 msgid "" @@ -124,6 +123,9 @@ msgid "" "constructor: ``LZMAFile(filename, mode, ...)``. In this case, the " "*encoding*, *errors* and *newline* arguments must not be provided." msgstr "" +"Pour le mode binaire, cette fonction équivaut à la :class:`LZMAFile` " +"constructor: ``LZMAFile(filename, mode, ...)``. Dans ce cas précis, les " +"arguments *encoding*, *errors* et *newline* ne sont pas accessibles." #: ../Doc/library/lzma.rst:61 msgid "" @@ -131,18 +133,21 @@ msgid "" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"Pour le mode texte, un objet de :class:`LZMAFile` est créé, et enveloppé " +"dans une instance de :class:`io.TextIOWrapper` avec son encodage spécifique, " +"son gestionnaire d'erreur, et ses signes pour les renvois à la ligne." #: ../Doc/library/lzma.rst:65 msgid "Added support for the ``\"x\"``, ``\"xb\"`` and ``\"xt\"`` modes." -msgstr "" +msgstr "Support ajouté pour les modes ``\"x\"``, ``\"xb\"`` and ``\"xt\"``." #: ../Doc/library/lzma.rst:68 ../Doc/library/lzma.rst:126 msgid "Accepts a :term:`path-like object`." -msgstr "" +msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/lzma.rst:74 msgid "Open an LZMA-compressed file in binary mode." -msgstr "" +msgstr "Ouvre un fichier LZMA compressé en mode binaire." #: ../Doc/library/lzma.rst:76 msgid "" @@ -153,6 +158,12 @@ msgid "" "wrapping an existing file object, the wrapped file will not be closed when " "the :class:`LZMAFile` is closed." msgstr "" +"An :class:`LZMAFile` can wrap an already-open :term:`file object`, or " +"operate directly on a named file. The *filename* argument specifies either " +"the file object to wrap, or the name of the file to open (as a :class:" +"`str`, :class:`bytes` or :term:`path-like ` object). When " +"wrapping an existing file object, the wrapped file will not be closed when " +"the :class:`LZMAFile` is closed." #: ../Doc/library/lzma.rst:83 msgid "" @@ -184,7 +195,7 @@ msgstr "" #: ../Doc/library/lzma.rst:106 msgid "The following method is also provided:" -msgstr "" +msgstr "Les méthodes suivantes sont aussi disponibles :" #: ../Doc/library/lzma.rst:110 msgid "" @@ -192,6 +203,10 @@ msgid "" "of data will be returned, unless EOF has been reached. The exact number of " "bytes returned is unspecified (the *size* argument is ignored)." msgstr "" +"Renvoie la donnée en mémoire-tampon sans progression de la position du " +"fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit " +"atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument " +"*taille*est ignoré). " #: ../Doc/library/lzma.rst:114 msgid "" @@ -200,34 +215,40 @@ msgid "" "if the :class:`LZMAFile` was constructed by passing a file object for " "*filename*)." msgstr "" +"Alors que l'exécution de :meth:`peek ne change pas la position du fichier de " +"la classe :class:`LZMAFile`, la position de l'objet sous-jacent peut être " +"modifiée (ex. : si la classe :class:`LZMAFile` est construite en lui " +"transmettant un fichier-objet comme *filename*)." #: ../Doc/library/lzma.rst:119 msgid "Added support for the ``\"x\"`` and ``\"xb\"`` modes." -msgstr "" +msgstr "Support ajouté pour les modes ``\"x\"`` and ``\"xb\"``." #: ../Doc/library/lzma.rst:122 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte désormais un argument " +"``None``." #: ../Doc/library/lzma.rst:131 msgid "Compressing and decompressing data in memory" -msgstr "Compresser et décompresser des données en mémoire" +msgstr "Compresser et décompresser une donnée en mémoire" #: ../Doc/library/lzma.rst:135 msgid "" "Create a compressor object, which can be used to compress data incrementally." msgstr "" "Créé un objet compresseur, qui peut être utilisé pour compresser " -"incrémentalement des données." +"incrémentalement une donnée." #: ../Doc/library/lzma.rst:137 msgid "" "For a more convenient way of compressing a single chunk of data, see :func:" "`compress`." msgstr "" -"Pour une façon plus adaptée de compresser un seul morceau de données, voir :" +"Pour une façon plus adaptée de compresser un seul extrait de donnée, voir :" "func:`compress`." #: ../Doc/library/lzma.rst:140 @@ -235,28 +256,34 @@ msgid "" "The *format* argument specifies what container format should be used. " "Possible values are:" msgstr "" +"L'argument *format* définit quel format de conteneur sera mis en œuvre. Les " +"valeurs possibles sont :" #: ../Doc/library/lzma.rst:144 msgid ":const:`FORMAT_XZ`: The ``.xz`` container format." -msgstr "" +msgstr ":const:`FORMAT_XZ`: Le format du conteneur ``.xz``." #: ../Doc/library/lzma.rst:144 msgid "This is the default format." -msgstr "" +msgstr "C'est le format par défaut." #: ../Doc/library/lzma.rst:148 msgid ":const:`FORMAT_ALONE`: The legacy ``.lzma`` container format." -msgstr "" +msgstr ":const:`FORMAT_ALONE`: L'ancien format du conteneur ``.lzma`." #: ../Doc/library/lzma.rst:147 msgid "" "This format is more limited than ``.xz`` -- it does not support integrity " "checks or multiple filters." msgstr "" +"Ce format est davantage limité que ``.xz`` --il ne supporte pas les " +"vérifications d'intégrité ou les filtres multiples." #: ../Doc/library/lzma.rst:154 msgid ":const:`FORMAT_RAW`: A raw data stream, not using any container format." msgstr "" +":const:`FORMAT_RAW`: Un flux de donnée brut, n'utilisant aucun format de " +"conteneur." #: ../Doc/library/lzma.rst:151 msgid "" @@ -265,6 +292,11 @@ msgid "" "decompression). Additionally, data compressed in this manner cannot be " "decompressed using :const:`FORMAT_AUTO` (see :class:`LZMADecompressor`)." msgstr "" +"Ce format spécifique ne prend pas en charge les vérifications d'intégrité et " +"exige systématiquement la définition d'une chaîne de filtrage personnalisée " +"(à la fois pour la compression et la décompression). Par ailleurs, les " +"données compressées par ce biais ne peuvent pas être décompressées par " +"l'usage de :const:`FORMAT_AUTO` (voir : :class:`LZMADecompressor`)." #: ../Doc/library/lzma.rst:156 msgid "" @@ -272,12 +304,19 @@ msgid "" "compressed data. This check is used when decompressing, to ensure that the " "data has not been corrupted. Possible values are:" msgstr "" +"L'argument *check* détermine le type de vérification d'intégrité à exploiter " +"avec la donnée compressée. Cette vérification est déclenchée lors de la " +"décompression, pour garantir que la donnée n'a pas été corrompue. Les " +"valeurs possibles sont :" #: ../Doc/library/lzma.rst:160 msgid "" ":const:`CHECK_NONE`: No integrity check. This is the default (and the only " "acceptable value) for :const:`FORMAT_ALONE` and :const:`FORMAT_RAW`." msgstr "" +":const:`CHECK_NONE`: Pas de vérification d'intégrité. C'est la valeur par " +"défaut (et la seule valeur acceptable) pour :const:`FORMAT_ALONE` et :const:" +"`FORMAT_RAW`." #: ../Doc/library/lzma.rst:164 msgid ":const:`CHECK_CRC32`: 32-bit Cyclic Redundancy Check." @@ -312,6 +351,10 @@ msgid "" "level (with the *preset* argument), or in detail as a custom filter chain " "(with the *filters* argument)." msgstr "" +"Les réglages de compression peuvent être définis soit comme un pré-réglage " +"de niveau de compression (avec l'argument *preset*) ; soit de façon " +"détaillée comme une chaîne particulière de filtres (avec l'argument " +"*filters*)." #: ../Doc/library/lzma.rst:177 msgid "" @@ -365,8 +408,8 @@ msgid "" "Create a decompressor object, which can be used to decompress data " "incrementally." msgstr "" -"Créé un objet de décompression, pour décompresser de façon incrémentale les " -"données." +"Créé un objet de décompression, pour décompresser de façon incrémentale une " +"donnée." #: ../Doc/library/lzma.rst:216 msgid "" @@ -439,7 +482,7 @@ msgstr "" #: ../Doc/library/lzma.rst:264 msgid "Added the *max_length* parameter." -msgstr "Ajout du paramètre *taille_max*." +msgstr "Ajout du paramètre *max_length*." #: ../Doc/library/lzma.rst:269 msgid "" @@ -447,6 +490,9 @@ msgid "" "`CHECK_UNKNOWN` until enough of the input has been decoded to determine what " "integrity check it uses." msgstr "" +"L'ID de la vérification d'intégrité exploité par le flux entrant. Il s'agit " +"de :const:`CHECK_UNKNOWN` tant que ce flux a été décodé pour déterminer quel " +"type de vérification d'intégrité à été utilisé." #: ../Doc/library/lzma.rst:275 msgid "``True`` if the end-of-stream marker has been reached." @@ -465,36 +511,48 @@ msgid "" "``False`` if the :meth:`.decompress` method can provide more decompressed " "data before requiring new uncompressed input." msgstr "" +"``False`` si la méthode :meth:`.decompress` produit plus de données " +"décompressées avant de requérir davantage de flux non compressé." #: ../Doc/library/lzma.rst:292 msgid "" "Compress *data* (a :class:`bytes` object), returning the compressed data as " "a :class:`bytes` object." msgstr "" +"*data* compressée (un objet :class:`bytes`), renvoyant une donnée compressée " +"comme un objet :class:`bytes`." #: ../Doc/library/lzma.rst:295 msgid "" "See :class:`LZMACompressor` above for a description of the *format*, " "*check*, *preset* and *filters* arguments." msgstr "" +"Voir :class:`LZMACompressor` ci-dessus pour une description des arguments " +"*format*, *check*, *preset* and *filters*." #: ../Doc/library/lzma.rst:301 msgid "" "Decompress *data* (a :class:`bytes` object), returning the uncompressed data " "as a :class:`bytes` object." msgstr "" +"Décopresse *data* (un objet :class:`bytes` ), et retourne la donnée " +"décompressée sous la forme d'un objet :class:`bytes`." #: ../Doc/library/lzma.rst:304 msgid "" "If *data* is the concatenation of multiple distinct compressed streams, " "decompress all of these streams, and return the concatenation of the results." msgstr "" +"Si *data* est le résultat de la concaténation de plusieurs fluxcompressés et " +"distincts , il les décompresse tous, et retourne les résultats concaténés." #: ../Doc/library/lzma.rst:307 msgid "" "See :class:`LZMADecompressor` above for a description of the *format*, " "*memlimit* and *filters* arguments." msgstr "" +"Voir :class:`LZMADecompressor` ci-dessus pour une description des arguments " +"*format*, *memlimit* et *filters*." #: ../Doc/library/lzma.rst:312 msgid "Miscellaneous" @@ -511,6 +569,10 @@ msgid "" "`CHECK_CRC64` and :const:`CHECK_SHA256` may be unavailable if you are using " "a version of :program:`liblzma` that was compiled with a limited feature set." msgstr "" +":const:`CHECK_NONE` et :const:`CHECK_CRC32` sont toujours suppportés. :const:" +"`CHECK_CRC64` et :const:`CHECK_SHA256` peuvent être indisponibles si vous " +"utlisez une version de :program:`liblzma` compilée avec des possibilités " +"restreintes." #: ../Doc/library/lzma.rst:327 msgid "Specifying custom filter chains" @@ -523,6 +585,11 @@ msgid "" "must contain the key ``\"id\"``, and may contain additional keys to specify " "filter-dependent options. Valid filter IDs are as follows:" msgstr "" +"Une chaîne de filtres est une séquence de dictionnaires, où chaque " +"dictionnaire contient l'ID et les options pour chaque filtre. Le moindre " +"dictionnaire contient la clé ``\"id\"`` et peut aussicontenir d'autres clés " +"pour préciser chaque options relative au filtre déclaré. Les ID valides des " +"filtres sont définies comme suit :" #: ../Doc/library/lzma.rst:336 msgid "Compression filters:" @@ -530,13 +597,15 @@ msgstr "Filtres de compression:" #: ../Doc/library/lzma.rst:335 msgid ":const:`FILTER_LZMA1` (for use with :const:`FORMAT_ALONE`)" -msgstr "" +msgstr ":const:`FILTER_LZMA1` (à utiliser avec :const:`FORMAT_ALONE`)" #: ../Doc/library/lzma.rst:336 msgid "" ":const:`FILTER_LZMA2` (for use with :const:`FORMAT_XZ` and :const:" "`FORMAT_RAW`)" msgstr "" +":const:`FILTER_LZMA2` (à utiliser avec :const:`FORMAT_XZ` et :const:" +"`FORMAT_RAW`)" #: ../Doc/library/lzma.rst:339 msgid "Delta filter:" @@ -544,35 +613,35 @@ msgstr "Filtre Delta:" #: ../Doc/library/lzma.rst:339 msgid ":const:`FILTER_DELTA`" -msgstr "" +msgstr ":const:`FILTER_DELTA`" #: ../Doc/library/lzma.rst:347 msgid "Branch-Call-Jump (BCJ) filters:" -msgstr "" +msgstr "Filtres Branch-Call-Jump (BCJ):" #: ../Doc/library/lzma.rst:342 msgid ":const:`FILTER_X86`" -msgstr "" +msgstr ":const:`FILTER_X86`" #: ../Doc/library/lzma.rst:343 msgid ":const:`FILTER_IA64`" -msgstr "" +msgstr ":const:`FILTER_IA64`" #: ../Doc/library/lzma.rst:344 msgid ":const:`FILTER_ARM`" -msgstr "" +msgstr ":const:`FILTER_ARM`" #: ../Doc/library/lzma.rst:345 msgid ":const:`FILTER_ARMTHUMB`" -msgstr "" +msgstr ":const:`FILTER_ARMTHUMB`" #: ../Doc/library/lzma.rst:346 msgid ":const:`FILTER_POWERPC`" -msgstr "" +msgstr ":const:`FILTER_POWERPC`" #: ../Doc/library/lzma.rst:347 msgid ":const:`FILTER_SPARC`" -msgstr "" +msgstr ":const:`FILTER_SPARC`" #: ../Doc/library/lzma.rst:349 msgid "" @@ -580,60 +649,78 @@ msgid "" "filter in the chain must be a compression filter, and any other filters must " "be delta or BCJ filters." msgstr "" +"Une chaîne de filtres peut contenir jusqu'à 4 filtres, et ne peut pas être " +"vide. Le dernier filtre de cette chaîne devra être un filtre de compression, " +"et tous les autres doivent être des filtres delta ou BCJ." #: ../Doc/library/lzma.rst:353 msgid "" "Compression filters support the following options (specified as additional " "entries in the dictionary representing the filter):" msgstr "" +"Les filtres de compression contiennent les options suivantes (définies comme " +"entrées additionnelles dans le dictionnaire qui représente le filtre) :" #: ../Doc/library/lzma.rst:356 msgid "" "``preset``: A compression preset to use as a source of default values for " "options that are not specified explicitly." msgstr "" +"``preset``: Un pré-réglage à exploiter comme une source de valeurs par " +"défaut pour les options qui ne sont pas explicitement définies." #: ../Doc/library/lzma.rst:358 msgid "" "``dict_size``: Dictionary size in bytes. This should be between 4 KiB and " "1.5 GiB (inclusive)." msgstr "" +"``dict_size``: La taille du dictionnaire en octets. Comprise entre 4 Ko et " +"1.5 Go (inclus)." #: ../Doc/library/lzma.rst:360 msgid "``lc``: Number of literal context bits." -msgstr "" +msgstr "``lc``: Nombre de bits dans le contexte litéral." #: ../Doc/library/lzma.rst:361 msgid "" "``lp``: Number of literal position bits. The sum ``lc + lp`` must be at most " "4." msgstr "" +"``lp``: Nombre de bits dans la position litérale. La somme ``lc + lp`` devra " +"être au moins 4." #: ../Doc/library/lzma.rst:363 msgid "``pb``: Number of position bits; must be at most 4." -msgstr "" +msgstr "``pb``: Nombre de bits à cette position ; au moins 4." #: ../Doc/library/lzma.rst:364 msgid "``mode``: :const:`MODE_FAST` or :const:`MODE_NORMAL`." -msgstr "" +msgstr "``mode``: :const:`MODE_FAST` ou :const:`MODE_NORMAL`." #: ../Doc/library/lzma.rst:365 msgid "" "``nice_len``: What should be considered a \"nice length\" for a match. This " "should be 273 or less." msgstr "" +"``nice_len``: Ce qui devra être pris en compte comme \"longueur appréciable" +"\" pour une recherche. Il devra être 273 ou moins." #: ../Doc/library/lzma.rst:367 msgid "" "``mf``: What match finder to use -- :const:`MF_HC3`, :const:`MF_HC4`, :const:" "`MF_BT2`, :const:`MF_BT3`, or :const:`MF_BT4`." msgstr "" +"``mf``: Quel type d'index de recherche à utiliser -- :const:`MF_HC3`, :const:" +"`MF_HC4`, :const:`MF_BT2`, :const:`MF_BT3`, ou :const:`MF_BT4`." #: ../Doc/library/lzma.rst:369 msgid "" "``depth``: Maximum search depth used by match finder. 0 (default) means to " "select automatically based on other filter options." msgstr "" +"``depth``: Profondeur maximum de la recherche, utilisée par l'index de " +"recherche. 0 (défaut) signifie une sélection automatique basée sur des " +"options de filtres différents." #: ../Doc/library/lzma.rst:372 msgid "" @@ -643,6 +730,11 @@ msgid "" "subtracted. The default is 1, i.e. take the differences between adjacent " "bytes." msgstr "" +"Le filtre delta stocke les différences entre octets, induisant davantage " +"d'entrées répétitives pour le compresseur, selon les circonstances. Il " +"support une option, ``dist``. Ce paramètre définit la distance entre les " +"octets à soustraire. Par défaut : 1, soit la différence entre des octets " +"adjacents." #: ../Doc/library/lzma.rst:377 msgid "" @@ -653,6 +745,12 @@ msgid "" "specifies the address that should be mapped to the beginning of the input " "data. The default is 0." msgstr "" +"Les filtres BCJ sont conçus pour être appliqués sur du langage machine. Ils " +"convertissent les branches relatives, les appels et les sauts dans le code à " +"des fins d'adressage strict, dans le but d'augmenter la redondance mise en " +"jeu par le compresseur. Ils ne supportent qu'une seule option : " +"``start_offset``, pour définir l'adresse où sera déclenché le début de la " +"donnée d'entrée. Par défaut : 0." #: ../Doc/library/lzma.rst:385 msgid "Examples" From 37f23d22188a499f2e70e9d1efd833934bb355f2 Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 20 Feb 2018 21:36:55 +0100 Subject: [PATCH 016/115] Translation lzma.po (85%) --- library/lzma.po | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/library/lzma.po b/library/lzma.po index c56878004..490b09304 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-02-20 21:19+0100\n" +"PO-Revision-Date: 2018-02-20 21:35+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -388,6 +388,12 @@ msgid "" "meth:`flush`. The returned data should be concatenated with the output of " "any previous calls to :meth:`compress`." msgstr "" +"Une *data* compressée (un objet :class:`bytes`), renvoie un objet :class:" +"`bytes` contenant une donnée compressée pour au moins une partie de " +"l'entrée. Certaine *data* peuvent être mise en tampon, pour être utiliser " +"lors de prochains appels par :meth:`compress` et :meth:`flush`. La donnée " +"renvoyée pourra être concaténée avec la sortie d'appels précédents vers la " +"méthode :meth:`compress`." #: ../Doc/library/lzma.rst:205 msgid "" From 9ea9a6e8a9dbc2e821e694861d51e2048f5a75dd Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 20 Feb 2018 22:07:16 +0100 Subject: [PATCH 017/115] Translation lzma.po (95%) --- library/lzma.po | 43 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/library/lzma.po b/library/lzma.po index 490b09304..044255d00 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-02-20 21:35+0100\n" +"PO-Revision-Date: 2018-02-20 22:07+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -172,12 +172,19 @@ msgid "" "appending. These can equivalently be given as ``\"rb\"``, ``\"wb\"``, ``\"xb" "\"`` and ``\"ab\"`` respectively." msgstr "" +"L'argument *mode* peut être soit ``\"r\"`` pour la lecture (défaut), ``\"w" +"\"`` pour la ré-écriture, ``\"x\"`` pour la création exclusive, ou ``\"a\"`` " +"pour l'insertion. Elles epuvent aussi être écrites de la façon suivante : ``" +"\"rb\"``, ``\"wb\"``, ``\"xb\"`` et ``\"ab\"`` respectivement." #: ../Doc/library/lzma.rst:88 msgid "" "If *filename* is a file object (rather than an actual file name), a mode of " "``\"w\"`` does not truncate the file, and is instead equivalent to ``\"a\"``." msgstr "" +"Si l'argument *filename* est un objet fichier (plutôt qu'un nom de fichier " +"courant), un mode``\"w\"`` ne tronquera aucunement le fichier, et sera " +"équivalent à ``\"a\"``." #: ../Doc/library/lzma.rst:91 msgid "" @@ -185,6 +192,9 @@ msgid "" "multiple separate compressed streams. These are transparently decoded as a " "single logical stream." msgstr "" +"Dès l'ouverture d'un fichier pour être lu, le fichier d'entrée peut être le " +"résultat d'une concaténation de plusieurs flux distincts et compressés. Ceux-" +"ci sont décodés de manière transparente en un seul flux logique." #: ../Doc/library/lzma.rst:102 msgid "" @@ -192,6 +202,9 @@ msgid "" "BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " "and the :keyword:`with` statement are supported." msgstr "" +"La :class:`LZMAFile` supporte tous les attributs précisés dans :class:`io." +"BufferedIOBase`, sauf :meth:`detach` et :meth:`truncate`. Le :keyword:`with` " +"et son itération sont également supportés." #: ../Doc/library/lzma.rst:106 msgid "The following method is also provided:" @@ -364,6 +377,12 @@ msgid "" "behavior is to use :const:`PRESET_DEFAULT` (preset level ``6``). Higher " "presets produce smaller output, but make the compression process slower." msgstr "" +"L'argument *preset* (s'il est fourni) doit être un entier compris entre `0`` " +"et ``9`` (inclus), éventuellement relié à OR avec la constante :const:" +"`PRESET_EXTREME`. Si aucun *preset* ni *filters* ne ont définis, le " +"comportement par défaut consiste à utiliser la :const:`PRESET_DEFAULT` " +"(niveau par défaut : ``6``). Des pré-réglages plus élevés entraîne une " +"sortie plus petite, mais rend le processus de compression plus lent." #: ../Doc/library/lzma.rst:186 msgid "" @@ -373,12 +392,20 @@ msgid "" "`LZMACompressor` object can be as high as 800 MiB. For this reason, it is " "generally best to stick with the default preset." msgstr "" +"En plus d'être plus gourmande en CPU, la compression avec des préréglages " +"plus élevés nécessite beaucoup plus de mémoire (et produit des résultats qui " +"nécessitent plus de mémoire pour décompresser). Par exemple, avec le " +"préréglage ``9``, l'objet d'une :class:`LZMACompressor` peut dépasser " +"largement les 800 Mo. Pour cette raison, il est généralement préférable de " +"respecter le préréglage par défaut." #: ../Doc/library/lzma.rst:192 msgid "" "The *filters* argument (if provided) should be a filter chain specifier. " "See :ref:`filter-chain-specs` for details." msgstr "" +"L'argument *filters* (s'il est défini) doit être un critère de la chaîne de " +"filtrage. Voir :ref:`filter-chain-specs` pour plus de précisions." #: ../Doc/library/lzma.rst:197 msgid "" @@ -422,6 +449,8 @@ msgid "" "For a more convenient way of decompressing an entire compressed stream at " "once, see :func:`decompress`." msgstr "" +"Pour un moyen plus pratique de décompresser un flux compressé complet en une " +"seule fois, voir :func:`decompress`." #: ../Doc/library/lzma.rst:219 msgid "" @@ -430,6 +459,10 @@ msgid "" "``.lzma`` files. Other possible values are :const:`FORMAT_XZ`, :const:" "`FORMAT_ALONE`, and :const:`FORMAT_RAW`." msgstr "" +"L'argument *format* spécifie le format du conteneur à utiliser. La valeur " +"par défaut est :const:`FORMAT_AUTO` pouvant à la fois décompresser les " +"fichiers ``.xz`` and ``.lzma``. D'autres valeurs sont possibles comme :const:" +"`FORMAT_XZ`, :const:`FORMAT_ALONE`, et :const:`FORMAT_RAW`." #: ../Doc/library/lzma.rst:224 msgid "" @@ -438,6 +471,10 @@ msgid "" "will fail with an :class:`LZMAError` if it is not possible to decompress the " "input within the given memory limit." msgstr "" +"L'argument *memlimit* spécifie une limite (en octets) sur la quantité de " +"mémoire que le décompresseur peut utiliser. Lorsque cet argument est " +"utilisé, la décompression échouera avec une :class:`LZMAError` s'il n'est " +"pas possible de décompresser l'entrée dans la limite mémoire disponible." #: ../Doc/library/lzma.rst:229 msgid "" @@ -446,6 +483,10 @@ msgid "" "const:`FORMAT_RAW`, but should not be used for other formats. See :ref:" "`filter-chain-specs` for more information about filter chains." msgstr "" +"L'argument *filters* spécifie la chaîne de filtrage utilisée pour créer le " +"flux décompressé. Cet argument est requis si *format* est :const:" +"`FORMAT_RAW`, mais ne doit pas être utilisé pour d'autres formats. Voir :ref:" +"`filter-chain-specs` pour plus d'informations sur les chaînes de filtrage." #: ../Doc/library/lzma.rst:235 msgid "" From da76d1d938ef2032c92641c2c8c8e0deb85fb7b3 Mon Sep 17 00:00:00 2001 From: stevostean Date: Tue, 20 Feb 2018 22:19:02 +0100 Subject: [PATCH 018/115] Translation lzma.po (finished) --- library/lzma.po | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/library/lzma.po b/library/lzma.po index 044255d00..20c174fc0 100644 --- a/library/lzma.po +++ b/library/lzma.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2018-02-20 22:07+0100\n" +"PO-Revision-Date: 2018-02-20 22:18+0100\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -495,6 +495,10 @@ msgid "" "decompress a multi-stream input with :class:`LZMADecompressor`, you must " "create a new decompressor for each stream." msgstr "" +"Cette classe ne gère pas de manière transparente les entrées contenant " +"plusieurs flux compressés, contrairement à :func:`decompress` et :class:" +"`LZMAFile`. Pour décompresser une entrée multi-flux avec :class:" +"`LZMADecompressor`, vous devez créer un nouveau décompresseur à chaque flux." #: ../Doc/library/lzma.rst:242 msgid "" @@ -503,6 +507,11 @@ msgid "" "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" +"Une *donnée* décompressée (un :term:`bytes-like object`), renvoyant une " +"donnée non compressée sous forme d'octets. Certaines des *data* peuvent être " +"mises en tampon, pour une exploitation ultérieure vers des appels à :meth:" +"`decompress`. Les données renvoyées doivent être concaténés avec la sortie " +"de tous les appels précédents à :meth:`decompress`." #: ../Doc/library/lzma.rst:248 msgid "" @@ -512,6 +521,12 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" +"Si *max_length* n'est pas négatif, il renvoie un maximum de *max_length* " +"octets en données décompressées. Si cette limite est atteinte et que " +"d'autres sorties peuvent être produites, l'attribut :attr:`~.needs_input` " +"sera mis à ``False``. Dans ce cas, le prochain appel à :meth:`~.decompress` " +"peut produire des *data* en tant que ``b''`` pour dégager davantage de " +"sorties." #: ../Doc/library/lzma.rst:255 msgid "" @@ -519,6 +534,9 @@ msgid "" "was less than *max_length* bytes, or because *max_length* was negative), " "the :attr:`~.needs_input` attribute will be set to ``True``." msgstr "" +"Si toutes les données d'entrée ont été décompressées et renvoyées (soit " +"parce que c'était moins de *max_length* octets, soit parce que *max_length* " +"était négatif), l'attribut :attr:`~.needs_input` sera mis à ``True``." #: ../Doc/library/lzma.rst:260 msgid "" @@ -526,6 +544,9 @@ msgid "" "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" +"Si vous tentez de décompresser des données après la fin du flux, vous " +"obtiendrez une `EOFError`. Toutes les données trouvées en fin de flux seront " +"ignorées et sauvegardées dans l'attribut :attr:`~.unused_data`." #: ../Doc/library/lzma.rst:264 msgid "Added the *max_length* parameter." From 6df68e30d540ed2f44fb910c1dc89c773002d46d Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Thu, 1 Mar 2018 22:27:02 +0100 Subject: [PATCH 019/115] Tutorial Interactive Input Review. --- tutorial/interactive.po | 41 +++++++++++++++++++---------------------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/tutorial/interactive.po b/tutorial/interactive.po index cd6d0d336..9af4d7bed 100644 --- a/tutorial/interactive.po +++ b/tutorial/interactive.po @@ -9,9 +9,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:59+0100\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2018-03-01 22:10+0100\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,14 +29,14 @@ msgid "" msgstr "" "Certaines versions de l'interpréteur Python prennent en charge l'édition de " "la ligne d'entrée courante et la substitution d'historique, similaires aux " -"facilités que l'on trouve dans le shell Korn et dans le shell GNU Bash. " -"C'est implémenté en utilisant la bibliothèque `GNU Readline`_, qui supporte " -"plusieurs styles d'édition. La bibliothèque a sa propre documentation qui ne " -"va pas être dupliquée ici." +"facilités que l'on trouve dans le shell Korn et dans le shell GNU Bash. Ces " +"implémentations utilisent la bibliothèque `GNU Readline`_, qui gère " +"plusieurs styles d'édition. La bibliothèque a sa propre documentation, nous " +"ne la dupliquons pas ici." #: ../Doc/tutorial/interactive.rst:17 msgid "Tab Completion and History Editing" -msgstr "Complément automatique et édition de l'historique" +msgstr "Complétion automatique et édition de l'historique" #: ../Doc/tutorial/interactive.rst:19 msgid "" @@ -54,10 +52,9 @@ msgid "" "python_history` in your user directory. The history will be available again " "during the next interactive interpreter session." msgstr "" -"La complétion de variables et de noms de modules est :ref:`automatiquement " -"activé ` lors du démarrage de l'interpréteur, tel que la " -"touche :kbd:`Tab` invoque la fonction de complétion, donc taper la touche :" -"kbd:`Tab` deux fois de suite suggère les options disponibles ; la recherche " +"La complétion de noms de variables et de modules est :ref:`automatiquement " +"activée ` au démarrage de l'interpréteur. Ainsi, la " +"touche :kbd:`Tab` invoque la fonction de complétion ; la recherche " "s'effectue dans les noms d'instructions Python, les noms des variables " "locales et les noms de modules disponibles. Pour les expressions pointées " "telles que ``string.a``, l'expression est évaluée jusqu'au dernier ``'.'`` " @@ -66,8 +63,8 @@ msgstr "" "du code de l'application si un objet disposant d'une méthode :meth:" "`__getattr__` fait partie de l'expression. La configuration par défaut " "sauvegarde l'historique dans un fichier nommé :file:`.python_history` dans " -"votre dossier d'utilisateur. L'historique sera à nouveau disponible lors de " -"la prochaine session interactive." +"votre dossier d'utilisateur. L'historique est ainsi conservé entre les " +"sessions interactives successives." #: ../Doc/tutorial/interactive.rst:36 msgid "Alternatives to the Interactive Interpreter" @@ -83,12 +80,12 @@ msgid "" "parentheses, quotes, etc., would also be useful." msgstr "" "Cette facilité constitue un énorme pas en avant comparé aux versions " -"précédentes de l'interpréteur ; toutefois, certains souhaits sont laissés de " -"côté : ce serait bien si une indentation correcte était proposée sur les " -"lignes de continuation (l'analyseur sait si une indentation doit suivre). Le " -"mécanisme de complétion devrait utiliser la table de symboles de " -"l'interpréteur. Une commande pour vérifier (ou même suggérer) les " -"correspondances de parenthèses, de guillemets..., serait également utile." +"précédentes de l'interpréteur. Toutefois, il reste des fonctions à " +"implémenter comme l'indentation correcte sur les lignes de continuation " +"(l'analyseur sait si une indentation doit suivre) ; le mécanisme de " +"complétion devrait utiliser la table de symboles de l'interpréteur. Une " +"commande pour vérifier (ou même suggérer) les correspondances de " +"parenthèses, de guillemets..., serait également utile." #: ../Doc/tutorial/interactive.rst:45 msgid "" @@ -98,8 +95,8 @@ msgid "" "customized and embedded into other applications. Another similar enhanced " "interactive environment is bpython_." msgstr "" -"Une alternative améliorée de l'interpréteur interactif qui a été développée " -"depuis maintenant quelques temps est IPython_, qui fournit la complétude, " +"Une alternative améliorée de l'interpréteur interactif est développée depuis " +"maintenant quelques temps : IPython_. Il fournit la complétion, " "l'exploration d'objets et une gestion avancée de l'historique. Il peut " "également être personnalisé en profondeur et embarqué dans d'autres " "applications. Un autre environnement interactif amélioré similaire est " From 9a579b746ff2bb78c8903a95c38b7b80bb870782 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sun, 4 Mar 2018 00:06:58 +0100 Subject: [PATCH 020/115] Tutorial 'Floating Point Arithmetic' Review. --- tutorial/floatingpoint.po | 182 +++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 89 deletions(-) diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index ab4efaf40..9af9c5d6d 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -9,9 +9,9 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:58+0100\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2018-03-03 23:55+0100\n" +"Last-Translator: Christophe Nanteuil \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/tutorial/floatingpoint.rst:9 msgid "Floating Point Arithmetic: Issues and Limitations" -msgstr "Arithmétique en nombre à virgule flottante : problèmes et limites" +msgstr "Arithmétique en nombres à virgule flottante : problèmes et limites" #: ../Doc/tutorial/floatingpoint.rst:14 msgid "" @@ -34,7 +34,7 @@ msgstr "" msgid "" "has value 1/10 + 2/100 + 5/1000, and in the same way the binary fraction ::" msgstr "" -"a la valeur 1/10 + 2/100 + 5/1000, et de la même manière, la fraction " +"a la valeur 1/10 + 2/100 + 5/1000 et, de la même manière, la fraction " "binaire : ::" #: ../Doc/tutorial/floatingpoint.rst:23 @@ -45,7 +45,7 @@ msgid "" msgstr "" "a la valeur 0/2 + 0/4 + 1/8. Ces deux fractions ont une valeur identique, la " "seule différence est que la première est une fraction décimale, la seconde " -"binaire." +"est une fraction binaire." #: ../Doc/tutorial/floatingpoint.rst:27 msgid "" @@ -54,10 +54,10 @@ msgid "" "point numbers you enter are only approximated by the binary floating-point " "numbers actually stored in the machine." msgstr "" -"Malheureusement, la plupart des fractions décimales n'ont pas de " +"Malheureusement, la plupart des fractions décimales ne peuvent pas avoir de " "représentation exacte en fractions binaires. Par conséquent, en général, les " "nombres à virgule flottante que vous donnez sont seulement approximés en " -"fraction binaire pour être stocké dans la machine." +"fractions binaires pour être stockés dans la machine." #: ../Doc/tutorial/floatingpoint.rst:32 msgid "" @@ -65,7 +65,7 @@ msgid "" "fraction 1/3. You can approximate that as a base 10 fraction::" msgstr "" "Le problème est plus simple à aborder en base 10. Prenons par exemple, la " -"fraction 1/3. Vous pouvez l'approximer en une fraction décimale::" +"fraction 1/3. Vous pouvez l'approximer en une fraction décimale : ::" #: ../Doc/tutorial/floatingpoint.rst:37 ../Doc/tutorial/floatingpoint.rst:41 msgid "or, better, ::" @@ -77,9 +77,9 @@ msgid "" "result will never be exactly 1/3, but will be an increasingly better " "approximation of 1/3." msgstr "" -"etc... Peu importe le nombre de décimales que vous écrirez, le résultat ne " -"sera jamais exactement 1/3, mais une estimation s'en approchant toujours " -"mieux." +"etc. Peu importe le nombre de décimales que vous écrivez, le résultat ne " +"vaut jamais exactement 1/3, mais c'est une estimation s'en approchant " +"toujours mieux." #: ../Doc/tutorial/floatingpoint.rst:49 msgid "" @@ -88,7 +88,7 @@ msgid "" "base 2, 1/10 is the infinitely repeating fraction ::" msgstr "" "De la même manière, peu importe combien de décimales en base 2 vous " -"utiliserez, la valeur décimale 0.1 ne peut être représentée exactement en " +"utilisez, la valeur décimale 0.1 ne peut pas être représentée exactement en " "fraction binaire. En base 2, 1/10 est le nombre périodique suivant : ::" #: ../Doc/tutorial/floatingpoint.rst:55 @@ -105,7 +105,7 @@ msgstr "" "virgule flottante sont approximés par une fraction binaire avec les 53 " "premiers bits comme numérateur et une puissance de deux au dénominateur. " "Dans le cas de 1/10, la fraction binaire est ``3602879701896397 / 2 ** 55`` " -"qui est proche mais pas exactement 1/10." +"qui est proche mais ne vaut pas exactement 1/10." #: ../Doc/tutorial/floatingpoint.rst:62 msgid "" @@ -115,9 +115,9 @@ msgid "" "if Python were to print the true decimal value of the binary approximation " "stored for 0.1, it would have to display ::" msgstr "" -"Il est facile d'oublier que la valeur stockée est une approximation de la " -"fraction décimale d'origine, du fait de la manière dont les flottants sont " -"affichés dans l'interpréteur. Python n'affiche qu'une approximation décimale " +"Du fait de la manière dont les flottants sont affichés par l'interpréteur, " +"il est facile d'oublier que la valeur stockée est une approximation de la " +"fraction décimale d'origine. Python n'affiche qu'une approximation décimale " "de la valeur stockée en binaire. Si Python devait afficher la vraie valeur " "décimale de l'approximation binaire stockée pour 0,1, il afficherait : ::" @@ -126,17 +126,18 @@ msgid "" "That is more digits than most people find useful, so Python keeps the number " "of digits manageable by displaying a rounded value instead ::" msgstr "" -"C'est bien plus de décimales que nécessaire, donc Python affiche une valeur " -"arrondie afin d'améliorer la lisibilité : ::" +"C'est bien plus de décimales que ce qu'attendent la plupart des " +"utilisateurs, donc Python affiche une valeur arrondie afin d'améliorer la " +"lisibilité : ::" #: ../Doc/tutorial/floatingpoint.rst:77 msgid "" "Just remember, even though the printed result looks like the exact value of " "1/10, the actual stored value is the nearest representable binary fraction." msgstr "" -"Il faut se rappeler, bien que la valeur affichée ressemble à la valeur " -"exacte de 1/10, que la valeur stockée est la représentation la plus proche " -"en fraction binaire." +"Rappelez-vous simplement que, bien que la valeur affichée ressemble à la " +"valeur exacte de 1/10, la valeur stockée est la représentation la plus " +"proche en fraction binaire." #: ../Doc/tutorial/floatingpoint.rst:80 msgid "" @@ -149,9 +150,9 @@ msgid "" "while still preserving the invariant ``eval(repr(x)) == x``." msgstr "" "Il existe beaucoup de nombres décimaux qui partagent une même approximation " -"en fraction binaire. Par exemple, ``0.1``, ``0.10000000000000001``, et " +"en fraction binaire. Par exemple, ``0.1``, ``0.10000000000000001`` et " "``0.1000000000000000055511151231257827021181583404541015625`` ont tous pour " -"approximation ``3602879701896397 / 2 ** 55``. Puisques toutes ces valeurs " +"approximation ``3602879701896397 / 2 ** 55``. Puisque toutes ces valeurs " "décimales partagent la même approximation, chacune peut être affichée tout " "en respectant ``eval(repr(x)) == x``." @@ -163,10 +164,10 @@ msgid "" "shortest of these and simply display ``0.1``." msgstr "" "Historiquement, le mode interactif de Python et la primitive :func:`repr` " -"auraient choisi la version avec 17 décimales significatives, " +"choisissaient la version avec 17 décimales significatives, " "``0.10000000000000001``. Python, depuis la version 3.1 (sur la majorité des " "systèmes) est maintenant capable de choisir la plus courte représentation et " -"n'afficher que ``0.1``." +"n'affiche que ``0.1``." #: ../Doc/tutorial/floatingpoint.rst:93 msgid "" @@ -176,12 +177,13 @@ msgid "" "arithmetic (although some languages may not *display* the difference by " "default, or in all output modes)." msgstr "" -"Ce comportement est inhérent au comportement des nombres à virgule " -"flottante : ce n'est pas un bug dans Python, et ce n'est pas non plus un bug " -"dans votre code. Vous verrez le même type de comportement dans tous les " -"autres langages utilisant le support matériel pour le calcul des nombres à " -"virgules flottante (bien que certains langages ne rendent pas visible la " -"différence par défaut, ou pas dans tous les modes d'affichage)." +"Ce comportement est inhérent à la nature même de la représentation des " +"nombres à virgule flottante dans la machine : ce n'est pas un bogue dans " +"Python et ce n'est pas non plus un bogue dans votre code. Vous pouvez " +"observer le même type de comportement dans tous les autres langages " +"utilisant le support matériel pour le calcul des nombres à virgule flottante " +"(bien que certains langages ne rendent pas visible la différence par défaut, " +"ou pas dans tous les modes d'affichage)." #: ../Doc/tutorial/floatingpoint.rst:99 msgid "" @@ -197,8 +199,9 @@ msgid "" "It's important to realize that this is, in a real sense, an illusion: you're " "simply rounding the *display* of the true machine value." msgstr "" -"Il est important de comprendre qu'en réalité, c'est une illusion : Python " -"arrondit simplement, la vraie valeur stockée, à *l'affichage*." +"Il est important de comprendre que tout cela n'est, au sens propre, qu'une " +"illusion : vous demandez simplement à Python d'arrondir la valeur stockée " +"réellement dans la machine à *l'affichage*." #: ../Doc/tutorial/floatingpoint.rst:114 msgid "" @@ -216,8 +219,8 @@ msgid "" msgstr "" "Aussi, puisque 0,1 ne peut pas être stocké avec une représentation plus " "proche de sa valeur exacte 1/10, comme 0,3 qui ne peut pas être plus proche " -"de sa valeur exacte 3/10, arrondir avec la fonction :func:`round` n'aide en " -"rien : ::" +"de sa valeur exacte 3/10, arrondir au préalable avec la fonction :func:" +"`round` n'aide en rien : ::" #: ../Doc/tutorial/floatingpoint.rst:127 msgid "" @@ -225,9 +228,9 @@ msgid "" "the :func:`round` function can be useful for post-rounding so that results " "with inexact values become comparable to one another::" msgstr "" -"Bien que les nombres ne peuvent se rapprocher plus de la valeur qu'on attend " -"qu'ils aient, la fonction :func:`round` peut être utile à posteriori pour " -"arrondir deux valeurs inexactes et les rendre comparables : ::" +"Bien que les nombres ne peuvent se rapprocher plus de la valeur qu’on attend " +"qu’ils aient, la fonction :func:`round` peut être utile à postériori pour " +"arrondir deux valeurs inexactes et pouvoir les comparer : ::" #: ../Doc/tutorial/floatingpoint.rst:134 msgid "" @@ -239,7 +242,7 @@ msgid "" msgstr "" "L'arithmétique des nombres binaires à virgule flottante réserve beaucoup de " "surprises de ce genre. Le problème avec \"0.1\" est expliqué en détails ci-" -"desous, dans la section \"Représentation d'Erreur\". Voir `The Perils of " +"dessous, dans la section \"Erreurs de représentation\". Voir `The Perils of " "Floating Point `_ pour une liste plus " "complète de ce genre de surprises." @@ -253,14 +256,14 @@ msgid "" "decimal arithmetic and that every float operation can suffer a new rounding " "error." msgstr "" -"Il est vrai qu'il n'existe pas de réponse simple, cependant ne vous méfiez " -"pas trop des nombres à virtule flottante ! Les erreurs, en Python, dans les " -"opérations de nombres à virgule flottante sont dues au matériel sous-jacent, " -"et sur la plupart des machines ne sont pas plus importantes que 1 sur 2\\*" -"\\*53 par opération. C'est plus que nécessaire pour la plupart des tâches, " -"mais vous devez garder à l'esprit que ce ne sont pas des opérations " -"décimales, et que chaque opération sur des nombres à virgule flottante peut " -"souffrir d'une nouvelle erreur." +"Même s'il est vrai qu'il n'existe pas de réponse simple, ce n'est pas la " +"peine de vous méfier outre mesure des nombres à virgule flottante ! Les " +"erreurs, en Python, dans les opérations de nombres à virgule flottante sont " +"dues au matériel sous-jacent et, sur la plupart des machines, sont de " +"l'ordre de 1 sur 2\\*\\*53 par opération. C'est plus que suffisant pour la " +"plupart des tâches, mais vous devez garder à l'esprit que ce ne sont pas des " +"opérations décimales et que chaque opération sur des nombres à virgule " +"flottante peut souffrir d'une nouvelle erreur." #: ../Doc/tutorial/floatingpoint.rst:146 msgid "" @@ -271,7 +274,7 @@ msgid "" "`str.format` method's format specifiers in :ref:`formatstrings`." msgstr "" "Bien que des cas pathologiques existent, pour la plupart des cas " -"d'utilisations courants vous obtiendrez le résultat attendu à la fin et en " +"d'utilisations courants vous obtiendrez le résultat attendu à la fin en " "arrondissant simplement au nombre de décimales désirées à l'affichage avec :" "func:`str`. Pour un contrôle fin sur la manière dont les décimales sont " "affichées, consultez dans :ref:`formatstrings` les spécifications de " @@ -284,7 +287,7 @@ msgid "" "applications and high-precision applications." msgstr "" "Pour les cas requérant une représentation décimale exacte, le module :mod:" -"`decimal` peut être utile, il implémente l'arithmétique décimale et peut " +"`decimal` peut être utile : il implémente l'arithmétique décimale et peut " "donc être un choix adapté pour des applications nécessitant une grande " "précision." @@ -295,7 +298,7 @@ msgid "" "1/3 can be represented exactly)." msgstr "" "Une autre forme d'arithmétique exacte est implémentée dans le module :mod:" -"`fractions` qui se base sur les nombre rationnels (donc 1/3 peut y être " +"`fractions` qui se base sur les nombres rationnels (donc 1/3 peut y être " "représenté exactement)." #: ../Doc/tutorial/floatingpoint.rst:160 @@ -306,9 +309,9 @@ msgid "" "org>." msgstr "" "Si vous êtes un utilisateur intensif des opérations sur les nombres à " -"virgule flottante, vous devriez regarder le paquet *Numerical Python* et une " -"série d'autres paquets pour les opérations statistiques et mathématiques " -"fournis par le projet SciPy. Voir ." +"virgule flottante, nous vous conseillons de considérer le paquet *Numerical " +"Python* ainsi que les paquets pour les opérations statistiques et " +"mathématiques fournis par le projet SciPy. Consultez ." #: ../Doc/tutorial/floatingpoint.rst:164 msgid "" @@ -316,8 +319,8 @@ msgid "" "*do* want to know the exact value of a float. The :meth:`float." "as_integer_ratio` method expresses the value of a float as a fraction::" msgstr "" -"Python fournit des outils qui peuvent être utils dans les rares occasions ou " -"vous voulez réellement connaître la valeur exacte d'un nombre à virgule " +"Python fournit des outils qui peuvent être utiles dans les rares occasions " +"où vous voulez réellement connaître la valeur exacte d'un nombre à virgule " "flottante. La méthode :meth:`float.as_integer_ratio` donne la valeur du " "nombre sous forme de fraction : ::" @@ -327,7 +330,7 @@ msgid "" "value::" msgstr "" "Puisque le ratio est exact, il peut être utilisé pour recréer la valeur " -"originale dans perte : ::" +"originale sans perte : ::" #: ../Doc/tutorial/floatingpoint.rst:179 msgid "" @@ -343,7 +346,7 @@ msgid "" "value exactly::" msgstr "" "Cette représentation hexadécimale petit être utilisée pour reconstruire, " -"sans approximation, le *float* ::" +"sans approximation, le *float* : ::" #: ../Doc/tutorial/floatingpoint.rst:191 msgid "" @@ -353,8 +356,8 @@ msgid "" "C99)." msgstr "" "Puisque cette représentation est exacte, elle est pratique pour échanger des " -"valeurs entre différentes version de Python (indépendamment de la machine) " -"ou d'autres langages qui comprennent ce format (tel que Java et C99)." +"valeurs entre différentes versions de Python (indépendamment de la machine) " +"ou d'autres langages qui comprennent ce format (tels que Java et C99)." #: ../Doc/tutorial/floatingpoint.rst:195 msgid "" @@ -364,11 +367,11 @@ msgid "" "so that the errors do not accumulate to the point where they affect the " "final total:" msgstr "" -"Une autre fonction utile est :func:`math.fsum`, qui aide à diminuer les " +"Une autre fonction utile est :func:`math.fsum`, elle aide à diminuer les " "pertes de précision lors des additions. Elle surveille les *décimales " "perdues* au fur et à mesure que les valeurs sont ajoutées au total. Cela " -"peut faire une différence au niveau de la précision globale car cela empêche " -"les erreurs de s'accumuler jusqu'au point ou le résultat final est affecté:" +"peut faire une différence au niveau de la précision globale en empêchant les " +"erreurs de s'accumuler jusqu'à affecter le résultat final :" #: ../Doc/tutorial/floatingpoint.rst:209 msgid "Representation Error" @@ -380,10 +383,10 @@ msgid "" "perform an exact analysis of cases like this yourself. Basic familiarity " "with binary floating-point representation is assumed." msgstr "" -"Cette section explique en détail l'exemple du \"0.1\", et montre comment " -"vous pouvez effectuer une analyse exacte de ce type de cas par vous-même. Il " -"est supposé que vous êtes déjà familier de la représentation binaire des " -"nombres flottants." +"Cette section explique en détail l'exemple du \"0.1\" et montre comment vous " +"pouvez effectuer une analyse exacte de ce type de cas par vous-même. Nous " +"supposons que la représentation binaire des nombres flottants vous est " +"familière." #: ../Doc/tutorial/floatingpoint.rst:215 msgid "" @@ -393,10 +396,11 @@ msgid "" "Fortran, and many others) often won't display the exact decimal number you " "expect." msgstr "" -"Le terme :dfn:`Representation error` signifie que la plupart des fractions " -"décimales ne peuvent être représentées exactement en binaire. C'est la " -"principale raison pour laquelle Python (ou Perl, C, C++, Java, Fortran, et " -"beuacoup d'autres) n'affiche habituellement pas le résultat exact en décimal." +"Le terme :dfn:`Erreur de représentation` (*representation error* en anglais) " +"signifie que la plupart des fractions décimales ne peuvent être représentées " +"exactement en binaire. C'est la principale raison pour laquelle Python (ou " +"Perl, C, C++, Java, Fortran et beaucoup d'autres) n'affiche habituellement " +"pas le résultat exact en décimal." #: ../Doc/tutorial/floatingpoint.rst:220 msgid "" @@ -407,15 +411,15 @@ msgid "" "strives to convert 0.1 to the closest fraction it can of the form *J*/2**\\ " "*N* where *J* is an integer containing exactly 53 bits. Rewriting ::" msgstr "" -"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fractions " -"binaires. Cependant, toutes les machines d'aujourd'hui (Juillet 2010) " +"Pourquoi ? 1/10 n'est pas représentable de manière exacte en fraction " +"binaire. Cependant, toutes les machines d'aujourd'hui (novembre 2000) " "suivent la norme IEEE-754 en ce qui concerne l'arithmétique des nombres à " -"virgule flottante. et la plupart des plateformes utilisent un \"IEEE-754 " -"double precision\" pour représenter les floats de Python. Les \"IEEE-754 " -"double precision\" utilisent 53 bits de précision, donc a la lecture " +"virgule flottante et la plupart des plateformes utilisent un \"IEEE-754 " +"double précision\" pour représenter les floats de Python. Les \"IEEE-754 " +"double précision\" utilisent 53 bits de précision donc, à la lecture, " "l'ordinateur essaie de convertir 0,1 dans la fraction la plus proche " "possible de la forme *J*/2**\\ *N* avec *J* un nombre entier d'exactement 53 " -"bits. Réecrire : ::" +"bits. Pour réécrire : ::" #: ../Doc/tutorial/floatingpoint.rst:229 msgid "as ::" @@ -427,7 +431,7 @@ msgid "" "2**53``), the best value for *N* is 56::" msgstr "" "en se rappelant que *J* fait exactement 53 bits (donc ``>= 2**52`` mais ``< " -"2**53``), la meilleur valeur possible pour *N* est 56::" +"2**53``), la meilleure valeur possible pour *N* est 56 : ::" #: ../Doc/tutorial/floatingpoint.rst:239 msgid "" @@ -436,7 +440,7 @@ msgid "" msgstr "" "Donc 56 est la seule valeur possible pour *N* qui laisse exactement 53 bits " "pour *J*. La meilleure valeur possible pour *J* est donc ce quotient, " -"arrondi::" +"arrondi : ::" #: ../Doc/tutorial/floatingpoint.rst:246 msgid "" @@ -444,7 +448,7 @@ msgid "" "obtained by rounding up::" msgstr "" "Puisque la retenue est plus grande que la moitié de 10, la meilleure " -"approximation est obtenue en arrondissant par le haut:" +"approximation est obtenue en arrondissant par le haut : ::" #: ../Doc/tutorial/floatingpoint.rst:252 msgid "" @@ -452,7 +456,7 @@ msgid "" "is::" msgstr "" "Par conséquent la meilleure approximation possible pour 1/10 en \"IEEE-754 " -"double precision\" est cette au desus de 2\\*\\*56, soit : ::" +"double précision\" est celle au-dessus de 2\\*\\*56, soit : ::" #: ../Doc/tutorial/floatingpoint.rst:256 msgid "" @@ -467,7 +471,7 @@ msgid "" "smaller than 1/10. But in no case can it be *exactly* 1/10!" msgstr "" "Notez que puisque l'arrondi a été fait vers le haut, le résultat est en " -"réalité légèrement plus grand que 1/10; si nous n'avions pas arrondi par le " +"réalité légèrement plus grand que 1/10 ; si nous n'avions pas arrondi par le " "haut, le quotient aurait été légèrement plus petit que 1/10. Mais dans aucun " "cas il ne vaut *exactement* 1/10 !" @@ -476,17 +480,17 @@ msgid "" "So the computer never \"sees\" 1/10: what it sees is the exact fraction " "given above, the best 754 double approximation it can get::" msgstr "" -"Donc l'ordinateur ne \"voit\" jamais 1/10: ce qu'il voit est la fraction " +"Donc l'ordinateur ne \"voit\" jamais 1/10 : ce qu'il voit est la fraction " "exacte donnée ci-dessus, la meilleure approximation utilisant les nombres à " -"virgule flottante double précision de l'\"IEEE-754\"" +"virgule flottante double précision de l'\"IEEE-754\" : ::" #: ../Doc/tutorial/floatingpoint.rst:270 msgid "" "If we multiply that fraction by 10\\*\\*55, we can see the value out to 55 " "decimal digits::" msgstr "" -"Si on multiplie cette fraction par 10\\*\\*30, on peut observer les valeurs " -"de ses 55 décimales de poid fort::" +"Si nous multiplions cette fraction par 10\\*\\*30, nous pouvons observer les " +"valeurs de ses 55 décimales de poids fort : ::" #: ../Doc/tutorial/floatingpoint.rst:276 msgid "" @@ -495,11 +499,11 @@ msgid "" "displaying the full decimal value, many languages (including older versions " "of Python), round the result to 17 significant digits::" msgstr "" -"la valeur stockée dans l'ordinateur est donc égale à " +"La valeur stockée dans l'ordinateur est donc égale à " "0,1000000000000000055511151231257827021181583404541015625. Au lieu " "d'afficher toutes les décimales, beaucoup de langages (dont les vieilles " -"version de Python) arrondissent le résultat à la 17eme décimale " -"significative." +"versions de Python) arrondissent le résultat à la 17eme décimale " +"significative : ::" #: ../Doc/tutorial/floatingpoint.rst:284 msgid "" From 2416cecac0ee48f443d6ea4f82a3a226a6ea46ac Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sat, 10 Mar 2018 14:47:28 +0100 Subject: [PATCH 021/115] 'Tutorial Appendix' Review. --- tutorial/appendix.po | 95 ++++++++++++++++++++++---------------------- 1 file changed, 48 insertions(+), 47 deletions(-) diff --git a/tutorial/appendix.po b/tutorial/appendix.po index 8eb16e735..e49545a8e 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -9,13 +9,13 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-02-15 00:58+0100\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2018-03-10 14:36+0100\n" +"Last-Translator: Christophe Nanteuil \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/tutorial/appendix.rst:5 msgid "Appendix" @@ -41,17 +41,18 @@ msgid "" "messages are written to the standard error stream; normal output from " "executed commands is written to standard output." msgstr "" -"Quand une erreur se produit, l'interpréteur affiche un message d'erreur et " -"le suivit de la pile. En mode interactif, il revient à l'invite de commande " -"primaire; si l'entrée provient d'un fichier, l'interpréteur se termine avec " -"un état de sortie non nul après avoir affiché le suivit de la pile. (Les " -"exceptions gérées par une clause :keyword:`except` dans une instruction :" -"keyword:`try` ne sont pas des erreurs dans ce contexte.) Certaines erreurs " -"sont inconditionnellement fatales et cause une sortie avec un état non nul; " -"les incohérences internes et, dans certains cas, les pénuries de mémoires, " -"sont traitées de la sorte. Tous les messages d'erreur sont écrits sur la " -"sortie d'erreur standard; les sorties normales issues des commandes " -"exécutées sont écrites sur la sortie standard." +"Quand une erreur se produit, l'interpréteur affiche un message d'erreur et la " +"trace d'appels. En mode interactif, il revient à l'invite de commande " +"primaire ; si l'entrée provient d'un fichier, l'interpréteur se termine avec " +"un code de sortie non nul après avoir affiché la trace d'appels (les " +"exceptions gérées par une clause :keyword:`except` dans une instruction " +":keyword:`try` ne sont pas considérées comme des erreurs dans ce contexte). " +"Certaines erreurs sont inconditionnellement fatales et provoquent la fin du " +"programme avec un code de sortie non nul ; " +"les incohérences internes et, dans certains cas, les pénuries de mémoire " +"sont traitées de la sorte. Tous les messages d'erreur sont écrits sur le flux " +"d'erreur standard ; l'affichage normal des commandes " +"exécutées est écrit sur la sortie standard." #: ../Doc/tutorial/appendix.rst:28 msgid "" @@ -63,7 +64,7 @@ msgid "" msgstr "" "Taper le caractère d'interruption (généralement :kbd:`Ctrl+C` ou :kbd:" "`Supprimer`) au niveau de l'invite de commande primaire annule l'entrée et " -"revient à l'invite. [#]_ Saisir une interruption tandis qu'une commande " +"revient à l'invite [#]_. Saisir une interruption tandis qu'une commande " "s'exécute lève une exception :exc:`KeyboardInterrupt` qui peut être gérée " "par une instruction :keyword:`try`." @@ -77,7 +78,7 @@ msgid "" "like shell scripts, by putting the line ::" msgstr "" "Sur les systèmes Unix, un script Python peut être rendu directement " -"exécutable comme un script shell en ajoutant la ligne : ::" +"exécutable, comme un script shell, en ajoutant la ligne : ::" #: ../Doc/tutorial/appendix.rst:45 msgid "" @@ -89,7 +90,7 @@ msgid "" "``'#'``, is used to start a comment in Python." msgstr "" "(en supposant que l'interpréteur est dans le :envvar:`PATH` de " -"l'utilisateur) au début du script et en rendant le fichier exécutable. ``#!" +"l'utilisateur) au début du script et en rendant le fichier exécutable. ``'#!'" "`` doivent être les deux premiers caractères du fichier. Sur certaines " "plateformes, cette première ligne doit finir avec une fin de ligne de type " "Unix (``'\\n'``) et pas de type Windows (``'\\r\\n'``). Notez que le " @@ -100,7 +101,7 @@ msgid "" "The script can be given an executable mode, or permission, using the :" "program:`chmod` command." msgstr "" -"Un script peut être rendu utilisable en utilisant la commande :program:" +"Un script peut être rendu exécutable en utilisant la commande :program:" "`chmod`." #: ../Doc/tutorial/appendix.rst:59 @@ -111,15 +112,15 @@ msgid "" "extension can also be ``.pyw``, in that case, the console window that " "normally appears is suppressed." msgstr "" -"Sur les système windows il n'y a pas de \"mode executable\". L'installateur " -"Python associe automatiquement les fichier en ``.py`` avec ``python.exe`` de " +"Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " +"Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` de " "telle sorte qu'un double clic sur un fichier Python le lance comme un " -"script. L'extension peut aussi être ``.pyw``, dans ce cas, la console " +"script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " "n'apparait pas." #: ../Doc/tutorial/appendix.rst:69 msgid "The Interactive Startup File" -msgstr "La configuration du mode interactif" +msgstr "Configuration du mode interactif" #: ../Doc/tutorial/appendix.rst:71 msgid "" @@ -130,10 +131,10 @@ msgid "" "the :file:`.profile` feature of the Unix shells." msgstr "" "En mode interactif, il peut être pratique de faire exécuter quelques " -"commandes au lancement de l'interprète. C'est possible en configurant la " -"variable d'environnement :envvar:`PYTHONSTARTUP`\" avec le nom d'un fichier " +"commandes au lancement de l’interpréteur. Configurez la " +"variable d'environnement :envvar:`PYTHONSTARTUP` avec le nom d'un fichier " "contenant les instructions à exécuter, à la même manière du :file:`.profile` " -"dans un shell Unix." +"pour un shell Unix." #: ../Doc/tutorial/appendix.rst:77 msgid "" @@ -145,14 +146,14 @@ msgid "" "qualification in the interactive session. You can also change the prompts " "``sys.ps1`` and ``sys.ps2`` in this file." msgstr "" -"Ce fichier n'est lu qu'en mode interactif, pas quand Python lis les " +"Ce fichier n'est lu qu'en mode interactif, pas quand Python lit les " "instructions depuis un fichier, ni quand :file:`/dev/tty` est donné " -"explicitement comme fichier source (qui d'ailleurs se compterait comme une " -"session interactive). Les instructions de ce fichier, sont exécutées dans le " -"même espace de noms que vos commandes, donc les objets définis et modules " -"importés peuvent être utilisées directement dans la session interactive. " -"Dans ce fichier il est aussi possible de changer les prompts ``sys.ps1`` et " -"``sys.ps2``." +"explicitement comme fichier source (pour tout le reste, Python se comporte " +"alors comme dans une session interactive). Les instructions de ce fichier sont " +"exécutées dans le même espace de noms que vos commandes, donc les objets " +"définis et modules importés peuvent être utilisés directement dans la session " +"interactive. Dans ce fichier, il est aussi possible de changer les invites de " +"commande ``sys.ps1`` et ``sys.ps2``." #: ../Doc/tutorial/appendix.rst:85 msgid "" @@ -162,15 +163,15 @@ msgid "" "want to use the startup file in a script, you must do this explicitly in the " "script::" msgstr "" -"Si vous voulez exécuter d'autres fichiers dans le dossier courant, vous " -"pouvez le programmer dans le fichier global, par exemple: ``if os.\"\"path." -"isfile('.pythonrc.py'): exec(open('.pythonrc.py').read())``. Et si vous " -"voulez exécuter le fichier depuis un script, vous devez le faire " -"explicitement." +"Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, vous " +"pouvez le programmer dans le fichier de démarrage global, par exemple avec le " +"code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('.pythonrc." +"py').read())``. Et si vous voulez exécuter le fichier de démarrage depuis un " +"script, vous devez le faire explicitement dans le script : ::" #: ../Doc/tutorial/appendix.rst:102 msgid "The Customization Modules" -msgstr "Les modules de personnalisation" +msgstr "Modules de personnalisation" #: ../Doc/tutorial/appendix.rst:104 msgid "" @@ -179,10 +180,10 @@ msgid "" "location of your user site-packages directory. Start Python and run this " "code::" msgstr "" -"Python peut être personnalisé via les modules :mod:`sitecustomize` et :mod:" -"`usercustomize`. Pour découvrir comment ils fonctionnent vous devez d'abord " -"les trouver, ils sont dans un dossier appelé user site-packages. Démarrez " -"Python et exécutez : code::" +"Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" +"`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " +"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. Démarrez " +"Python et exécutez ce code : ::" #: ../Doc/tutorial/appendix.rst:112 msgid "" @@ -191,10 +192,10 @@ msgid "" "unless it is started with the :option:`-s` option to disable the automatic " "import." msgstr "" -"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` \" et y " -"écrire ce que vous voulez. Il sera toujours pris en compte par Python peut " -"importe le mode, sauf si il est démarré avec l'option :option:`-s`, qui " -"désactive l'import automatique." +"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y écrire " +"ce que vous voulez. Il est toujours pris en compte par Python, peu importe le " +"mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui désactive " +"l'import automatique." #: ../Doc/tutorial/appendix.rst:116 msgid "" @@ -203,7 +204,7 @@ msgid "" "imported before :mod:`usercustomize`. See the documentation of the :mod:" "`site` module for more details." msgstr "" -":mod:`sitecustomize` fonctionne de la même manière, mais plus typiquement " +":mod:`sitecustomize` fonctionne de la même manière mais est généralement " "créé par un administrateur et stocké dans le dossier site-packages global. " "Il est importé avant :mod:`usercustomize`. Pour plus de détails, consultez " "la documentation de :mod:`site`." From e50f6b6b15deca0b624a9904ed512a1186235964 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Mon, 12 Mar 2018 23:27:55 +0100 Subject: [PATCH 022/115] Makefile enhancement: - add a rule that upgrades virtual env - add a JOBS parameter to Sphinx to specify the number of jobs (commands) to run simultaneously --- Makefile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 1b5bbf09b..885be439f 100644 --- a/Makefile +++ b/Makefile @@ -7,6 +7,7 @@ # - make merge # To merge pot from upstream # - make fuzzy # To find fuzzy strings # - make progress # To compute current progression +# - make upgrade_venv # To upgrade the venv that compiles the doc # # Modes are: autobuild-stable, autobuild-dev, and autobuild-html, # documented in gen/src/3.6/Doc/Makefile as we're only delegating the @@ -19,13 +20,14 @@ VENV := ~/.venvs/python-docs-i18n/ PYTHON := $(shell which python3) MODE := autobuild-dev-html BRANCH = $(shell git describe --contains --all HEAD) +JOBS = 1 .PHONY: all all: $(VENV)/bin/sphinx-build $(VENV)/bin/blurb $(SPHINX_CONF) mkdir -p $(CPYTHON_CLONE)/Doc/locales/$(LANGUAGE)/ ln -nfs $(shell readlink -f .) $(CPYTHON_CLONE)/Doc/locales/$(LANGUAGE)/LC_MESSAGES - . $(VENV)/bin/activate; $(MAKE) -C $(CPYTHON_CLONE)/Doc/ SPHINXOPTS='-D locale_dirs=locales -D language=$(LANGUAGE) -D gettext_compact=0' $(MODE) + . $(VENV)/bin/activate; $(MAKE) -C $(CPYTHON_CLONE)/Doc/ SPHINXOPTS='-j$(JOBS) -D locale_dirs=locales -D language=$(LANGUAGE) -D gettext_compact=0' $(MODE) $(SPHINX_CONF): @@ -45,6 +47,11 @@ $(VENV)/bin/blurb: $(VENV)/bin/activate . $(VENV)/bin/activate; python3 -m pip install blurb +.PHONY: upgrade_venv +upgrade_venv: $(VENV)/bin/activate + . $(VENV)/bin/activate; python3 -m pip install --upgrade sphinx blurb + + .PHONY: progress progress: @python3 -c 'import sys; print("{:.1%}".format(int(sys.argv[1]) / int(sys.argv[2])))' \ From 14bb7dd731fe61d83d68cd06c18b52d24d34a91e Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Fri, 16 Mar 2018 21:32:26 +0100 Subject: [PATCH 023/115] "Using CommandLine" Review and Translation. --- using/cmdline.po | 413 ++++++++++++++++++++++++++++++++++++----------- 1 file changed, 320 insertions(+), 93 deletions(-) diff --git a/using/cmdline.po b/using/cmdline.po index 07b02a5e1..3068c9961 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -8,14 +8,14 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-12-01 07:43+0100\n" -"PO-Revision-Date: 2017-08-10 00:54+0200\n" +"PO-Revision-Date: 2018-03-16 21:46+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/using/cmdline.rst:9 msgid "Command line and environment" @@ -27,15 +27,15 @@ msgid "" "various settings." msgstr "" "L'interpréteur CPython analyse la ligne de commande et l'environnement à la " -"recherche de différents paramètres/" +"recherche de différents paramètres." #: ../Doc/using/cmdline.rst:16 msgid "" "Other implementations' command line schemes may differ. See :ref:" "`implementations` for further resources." msgstr "" -"Le format des lignes de commandes utilisées par d'autres implémentations " -"peut être différent. Voir :ref:`implementations` pour plus d'informations." +"Le format des lignes de commande utilisé par d'autres implémentations peut " +"s'avérer différent. Voir :ref:`implementations` pour plus d'informations." #: ../Doc/using/cmdline.rst:23 msgid "Command line" @@ -63,7 +63,7 @@ msgid "" "The interpreter interface resembles that of the UNIX shell, but provides " "some additional methods of invocation:" msgstr "" -"L'interface de l’interpréteur ressemble à celle du shell UNIX, mais fournit " +"L'interface de l’interpréteur ressemble à celle du shell UNIX mais fournit " "quelques méthodes d'invocation supplémentaires :" #: ../Doc/using/cmdline.rst:42 @@ -75,7 +75,7 @@ msgid "" msgstr "" "Quand l'interpréteur est appelé avec l'entrée standard connectée à un " "périphérique tty, il lit les lignes de commande et les exécute jusqu'à ce " -"qu'un caractère EOF (un caractère fin de fichier, que vous pouvez produire " +"qu'un caractère EOF (caractère fin de fichier, que vous pouvez produire " "avec :kbd:`Ctrl-D` sous UNIX ou :kbd:`Ctrl-Z, Enter` sous Windows) soit lu." #: ../Doc/using/cmdline.rst:45 @@ -83,7 +83,7 @@ msgid "" "When called with a file name argument or with a file as standard input, it " "reads and executes a script from that file." msgstr "" -"Quand l'interpréteur est appelé avec argument correspondant à un nom de " +"Quand l'interpréteur est appelé avec un argument correspondant à un nom de " "fichier ou avec un fichier comme entrée standard, il lit et exécute le " "script contenu dans ce fichier." @@ -93,8 +93,7 @@ msgid "" "appropriately named script from that directory." msgstr "" "Quand l'interpréteur est appelé avec un argument correspondant à un " -"répertoire, il lit et exécute un script nommé d’une certaine façon depuis ce " -"répertoire." +"répertoire, il lit et exécute un script d’un certain nom dans ce répertoire." #: ../Doc/using/cmdline.rst:49 msgid "" @@ -129,10 +128,10 @@ msgid "" "note that the first element, subscript zero (``sys.argv[0]``), is a string " "reflecting the program's source." msgstr "" -"Une option d'interface termine la listes des options consommées par " -"l'interpréteur ; tous les arguments échoueront dans :data:`sys.argv` — notez " -"que le premier élément, à l'indice zéro (``sys.argv|0]``), est une chaîne de " -"caractères indiquant la source du programme." +"Une option d'interface termine la liste des options consommées par " +"l'interpréteur ; tous les arguments atterrissent dans :data:`sys.argv` " +"— notez que le premier élément, à l'indice zéro (``sys.argv|0]``), est une " +"chaîne de caractères indiquant la source du programme." #: ../Doc/using/cmdline.rst:64 msgid "" @@ -141,8 +140,8 @@ msgid "" "normal module code." msgstr "" "Exécute le code Python dans *command*. *command* peut être une ou plusieurs " -"instructions, séparées par des fins de ligne, dont les espaces en debut de " -"ligne sont significatifs, comme dans le code d’un module." +"instructions, séparées par des fins de ligne, dont les espaces en début de " +"ligne sont significatives, comme dans le code d’un module." #: ../Doc/using/cmdline.rst:68 msgid "" @@ -151,17 +150,17 @@ msgid "" "path` (allowing modules in that directory to be imported as top level " "modules)." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera ``\"-" -"c\"`` et le répertoire courant sera ajouté au début de :data:`sys.path` " -"(permettant aux modules de ce répertoire d'être importé comme des modules de " -"premier niveau)." +"Si cette option est donnée, le premier élément de :data:`sys.argv` est ``\"-c" +"\"`` et le répertoire courant est ajouté au début de :data:`sys.path` " +"(permettant aux modules de ce répertoire d'être importés comme des modules " +"de premier niveau)." #: ../Doc/using/cmdline.rst:76 msgid "" "Search :data:`sys.path` for the named module and execute its contents as " "the :mod:`__main__` module." msgstr "" -"Parcourir :data:`sys.path` à la recherche du module donné et exécuter son " +"Parcourt :data:`sys.path` à la recherche du module donné et exécute son " "contenu en tant que module :mod:`__main__`." #: ../Doc/using/cmdline.rst:79 @@ -184,11 +183,12 @@ msgid "" "deliberately similar to the handling of directories and zipfiles that are " "passed to the interpreter as the script argument." msgstr "" -"Les noms de paquets sont aussi autorisés (ainsi que les *namespace " -"packages*). Quand un nom de paquet est donné à la place d'un module " -"habituel, l'interpréteur exécutera ``.__main__`` comme module " -"principal. Ce comportement est délibérement identique à un dossier on un " -"fichier zip donné à en argument à l'interpréteur comme script." +"Les noms de paquets sont aussi autorisés (ainsi que les paquets-espace de " +"noms, *namespace packages* en anglais). Quand un nom de paquet est donné à " +"la place d'un simple module, l'interpréteur exécute ``.__main__`` comme " +"module principal. Ce comportement est délibérément identique au traitement " +"d'un dossier ou d'un fichier zip donné en argument à l'interpréteur comme " +"script." #: ../Doc/using/cmdline.rst:93 msgid "" @@ -197,10 +197,10 @@ msgid "" "still be used for precompiled modules, even if the original source file is " "not available." msgstr "" -"Cette option ne peut pas être utilisée avec les modules intégrés et les " +"cette option ne peut pas être utilisée avec les modules intégrés et les " "modules d'extension écrits en C, étant donné qu'il ne possèdent pas de " -"fichiers modules en Python. Cependant, elle peut toujours être utilisées " -"pour les modules pré-complilés, même si le fichier source original n'est pas " +"fichiers modules en Python. Cependant, elle peut toujours être utilisée pour " +"les modules précompilés, même si le fichier source original n'est pas " "disponible." #: ../Doc/using/cmdline.rst:98 @@ -210,10 +210,10 @@ msgid "" "first element will be set to ``\"-m\"``). As with the :option:`-c` option, " "the current directory will be added to the start of :data:`sys.path`." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera le " +"Si cette option est donnée, le premier élément de :data:`sys.argv` est le " "chemin complet d'accès au fichier du module (pendant que le fichier est " -"recherché, le premier élément sera mis à ``\"-m\"``). Comme avec l'option :" -"option:`-c`, le dossier courant sera ajouté au début de :data:`sys.path`." +"recherché, le premier élément est mis à ``\"-m\"``). Comme avec l'option :" +"option:`-c`, le dossier courant est ajouté au début de :data:`sys.path`." #: ../Doc/using/cmdline.rst:103 msgid "" @@ -230,19 +230,19 @@ msgstr "" #: ../Doc/using/cmdline.rst:111 ../Doc/using/cmdline.rst:153 msgid "Equivalent functionality directly available to Python code" -msgstr "" +msgstr "Fonctionnalité équivalente directement disponible en code Python" #: ../Doc/using/cmdline.rst:113 msgid ":pep:`338` -- Executing modules as scripts" -msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" +msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" #: ../Doc/using/cmdline.rst:116 msgid "Supply the package name to run a ``__main__`` submodule." -msgstr "" +msgstr "Fournir le nom d'un paquet pour exécuter un sous-module ``__main__``." #: ../Doc/using/cmdline.rst:119 msgid "namespace packages are also supported" -msgstr "" +msgstr "Les paquets-espaces de noms sont supportés." #: ../Doc/using/cmdline.rst:125 msgid "" @@ -250,7 +250,7 @@ msgid "" "a terminal, :option:`-i` is implied." msgstr "" "Lit les commandes depuis l'entrée standard (:data:`sys.stdin`). Si l'entrée " -"standard est un terminal, l':option:`-i` est activée implicitement." +"standard est un terminal, l'option :option:`-i` est activée implicitement." #: ../Doc/using/cmdline.rst:128 msgid "" @@ -258,8 +258,8 @@ msgid "" "\"`` and the current directory will be added to the start of :data:`sys." "path`." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera ``\"-" -"\"`` et le dossier courant sera ajouté au début de :data:`sys.path`." +"Si cette option est donnée, le premier élément de :data:`sys.argv` est ``\"-" +"\"`` et le dossier courant est ajouté au début de :data:`sys.path`." #: ../Doc/using/cmdline.rst:135 msgid "" @@ -269,17 +269,17 @@ msgid "" "file." msgstr "" "Exécute le code Python contenu dans *script*, qui doit être un chemin " -"d'accès au fichier (absolu ou relatif), se référant à un fichier Python, à " -"un répertoire contenant un fichier ``__main__.py`` ou à un fichier zip " -"contenant un fichier ``__main__.py``." +"d'accès (absolu ou relatif) à un fichier, faisant référence à un fichier " +"Python, à un répertoire contenant un fichier ``__main__.py`` ou à un fichier " +"zip contenant un fichier ``__main__.py``." #: ../Doc/using/cmdline.rst:140 msgid "" "If this option is given, the first element of :data:`sys.argv` will be the " "script name as given on the command line." msgstr "" -"Si cette option est donnée, le premier élément de :data:`sys.argv` sera le " -"nom du script comme donné sur la ligne de commande." +"Si cette option est donnée, le premier élément de :data:`sys.argv` est le " +"nom du script tel que donné sur la ligne de commande." #: ../Doc/using/cmdline.rst:143 msgid "" @@ -288,7 +288,7 @@ msgid "" "is executed as the :mod:`__main__` module." msgstr "" "Si le nom du script se réfère directement à un fichier Python, le répertoire " -"contenant ce fichier est ajouté au début de :data:`sys.path`, et le fichier " +"contenant ce fichier est ajouté au début de :data:`sys.path` et le fichier " "est exécuté en tant que module :mod:`__main__`." #: ../Doc/using/cmdline.rst:147 @@ -313,11 +313,11 @@ msgid "" "automatically enabled, if available on your platform (see :ref:`rlcompleter-" "config`)." msgstr "" -"Si aucune option d'interface n'est donnée, :option:`-i` est implicite, ``sys." -"argv[0]`` est une chaine vide (``\"\"``) et le dossier courant sera ajouté " -"au début de :data:`sys.path`. Aussi, la complétion des tabulations et " -"l'édition de l'historique seront automatiquement activés, s'ils sont " -"disponnibles sur votre système (voir :ref:`rlcompleter-config`)." +"Si aucune option d'interface n'est donnée, l'option :option:`-i` est activée " +"implicitement, ``sys.argv[0]`` est une chaine vide (``\"\"``) et le dossier " +"courant est ajouté au début de :data:`sys.path`. Aussi, la complétion par " +"tabulation et l'édition de l'historique sont automatiquement activés, s'ils " +"sont disponibles sur votre système (voir :ref:`rlcompleter-config`)." #: ../Doc/using/cmdline.rst:162 msgid ":ref:`tut-invoking`" @@ -326,6 +326,8 @@ msgstr "" #: ../Doc/using/cmdline.rst:164 msgid "Automatic enabling of tab-completion and history editing." msgstr "" +"activation automatique de la complétion par tabulation et édition de " +"l'historique." #: ../Doc/using/cmdline.rst:169 msgid "Generic options" @@ -334,19 +336,21 @@ msgstr "Options génériques" #: ../Doc/using/cmdline.rst:175 msgid "Print a short description of all command line options." msgstr "" -"Affiche une brève description de toutes les options de ligne de commande." +"Affiche une brève description de toutes les options de la ligne de commande." #: ../Doc/using/cmdline.rst:181 msgid "Print the Python version number and exit. Example output could be::" -msgstr "Affiche seulement la version de Python. Par exemple : ::" +msgstr "Affiche la version de Python et termine. Par exemple : ::" #: ../Doc/using/cmdline.rst:185 msgid "When given twice, print more information about the build, like::" msgstr "" +"Lorsque l'option est doublée, affiche davantage d'informations sur la " +"manière dont Python a été compilé, comme ::" #: ../Doc/using/cmdline.rst:190 msgid "The ``-VV`` option." -msgstr "" +msgstr "option ``-VV``." #: ../Doc/using/cmdline.rst:196 msgid "Miscellaneous options" @@ -358,17 +362,21 @@ msgid "" "class:`str` or :class:`bytes` with :class:`int`. Issue an error when the " "option is given twice (:option:`!-bb`)." msgstr "" +"Affiche un avertissement (*warning* en anglais) lors d'une comparaison d'un " +"objet de type :class:`bytes` ou :class:`bytearray` avec un objet de type :" +"class:`str` ou un objet de type :class:`bytes` avec un objet de type :class:" +"`int`. Lève une erreur si cette option est doublée (:option:`!-bb`)." #: ../Doc/using/cmdline.rst:204 msgid "Affects comparisons of :class:`bytes` with :class:`int`." -msgstr "" +msgstr "Concerne les comparaisons de :class:`bytes` avec :class:`int`." #: ../Doc/using/cmdline.rst:209 msgid "" "If given, Python won't try to write ``.pyc`` files on the import of source " "modules. See also :envvar:`PYTHONDONTWRITEBYTECODE`." msgstr "" -"S'il est donné, Python ne tentera pas d'écrire de fichier ``.pyc``` ou ``." +"S'il est donné, Python ne tente pas d'écrire de fichier ``.pyc``` ou ``." "pyo`` à l'importation des modules source. Voir aussi :envvar:" "`PYTHONDONTWRITEBYTECODE`." @@ -377,17 +385,17 @@ msgid "" "Turn on parser debugging output (for wizards only, depending on compilation " "options). See also :envvar:`PYTHONDEBUG`." msgstr "" -"Activer la sortie de l'analyseur de débogage (pour les magiciens uniquement, " -"en fonction des options de compilation). Voir aussi :envvar:`PYTHONDEBUG`." +"Active la sortie de l'analyseur en mode débogage (pour les experts " +"uniquement, en fonction des options de compilation). Voir aussi :envvar:" +"`PYTHONDEBUG`." #: ../Doc/using/cmdline.rst:221 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." msgstr "" -"Ignorer toutes les variables d'environnement :envvar:`PYTHON*`, par " -"exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`, qui pourraient être " -"définies." +"Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui pourraient " +"être définies. Par exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`." #: ../Doc/using/cmdline.rst:227 msgid "" @@ -397,7 +405,7 @@ msgid "" "`PYTHONSTARTUP` file is not read." msgstr "" "Quand un script est passé comme premier argument ou que l'option :option:`-" -"c` est utilisée, entrer en mode interactif après avoir exécuté le script ou " +"c` est utilisée, entre en mode interactif après avoir exécuté le script ou " "la commande, même lorsque :data:`sys.stdin` ne semble pas être un terminal. " "Le fichier :envvar:`PYTHONSTARTUP` n'est pas lu." @@ -418,26 +426,34 @@ msgid "" "too. Further restrictions may be imposed to prevent the user from injecting " "malicious code." msgstr "" +"Lance Python en mode isolé. Cela implique aussi -E et -s. En mode isolé, :" +"data:`sys.path` ne contient ni le répertoire du script ni le répertoire " +"*site-packages* de l'utilisateur. Toutes les variables d'environnement :" +"envvar:`PYTHON*` sont aussi ignorées. Davantage de restrictions peuvent être " +"imposées pour éviter que l'utilisateur n'injecte du code malicieux." #: ../Doc/using/cmdline.rst:249 msgid "Turn on basic optimizations. See also :envvar:`PYTHONOPTIMIZE`." msgstr "" +"Active les optimisations basiques. Voir aussi :envvar:`PYTHONOPTIMIZE`." #: ../Doc/using/cmdline.rst:254 msgid "Discard docstrings in addition to the :option:`-O` optimizations." msgstr "" -"Supprimer les docstrings en plus des optimisations réalisés par :option:`-O`." +"Supprime les docstrings en plus des optimisations réalisées par :option:`-O`." #: ../Doc/using/cmdline.rst:259 msgid "" "Don't display the copyright and version messages even in interactive mode." -msgstr "" +msgstr "N'affiche pas le copyright et la version, même en mode interactif." #: ../Doc/using/cmdline.rst:266 msgid "" "Kept for compatibility. On Python 3.3 and greater, hash randomization is " "turned on by default." msgstr "" +"Conservé pour compatibilité ascendante. Sur Python 3.3 ou supérieur, la " +"randomisation des empreintes (*hash* en anglais) est activée par défaut." #: ../Doc/using/cmdline.rst:269 msgid "" @@ -447,6 +463,12 @@ msgid "" "individual Python process, they are not predictable between repeated " "invocations of Python." msgstr "" +"Sur les versions précédentes de Python, cette option activait la " +"randomisation des empreintes de manière à ce que les :meth:`__hash__` de " +"chaînes, bytes et datetime soient \"salés\" avec une valeur aléatoire non " +"prévisible. Bien que ce sel soit constant durant le déroulement d'un " +"processus Python, il n'est pas prévisible pour des invocations répétées de " +"code Python." #: ../Doc/using/cmdline.rst:275 msgid "" @@ -455,25 +477,32 @@ msgid "" "performance of a dict construction, O(n^2) complexity. See http://www.ocert." "org/advisories/ocert-2011-003.html for details." msgstr "" +"La randomisation des empreintes a pour objectif de se protéger contre les " +"dénis de service qui utiliseraient des valeurs d'entrée judicieusement " +"choisies afin de forcer la construction des dictionnaires dans le pire cas, " +"c'est-à-dire avec une complexité en O(n^2). Voir http://www.ocert.org/" +"advisories/ocert-2011-003.html pour obtenir les détails." #: ../Doc/using/cmdline.rst:280 msgid "" ":envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash seed " "secret." msgstr "" +":envvar:`PYTHONHASHSEED` vous permet de définir vous-même la valeur du sel " +"pour l'algorithme de calcul des empreintes." #: ../Doc/using/cmdline.rst:288 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." msgstr "" -"Ne pas ajouter le :data:`user site-packages directory ` à :" -"data:`sys.path`." +"N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." #: ../Doc/using/cmdline.rst:293 ../Doc/using/cmdline.rst:582 #: ../Doc/using/cmdline.rst:594 msgid ":pep:`370` -- Per user site-packages directory" -msgstr ":pep:`370` -- Per user site-packages directory" +msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." #: ../Doc/using/cmdline.rst:298 msgid "" @@ -482,10 +511,10 @@ msgid "" "manipulations if :mod:`site` is explicitly imported later (call :func:`site." "main` if you want them to be triggered)." msgstr "" -"Désactiver l’importation du module :mod:`site` et les modifications locales " +"Désactive l’importation du module :mod:`site` et les modifications locales " "de :data:`sys.path` qu’il implique. Désactive aussi ces manipulations si :" -"mod:`site` est importé explicitement pluis tard (appellez :func:`site.main` " -"si vous voulez les déclencher)." +"mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " +"vous voulez les déclencher)." #: ../Doc/using/cmdline.rst:306 msgid "" @@ -494,9 +523,10 @@ msgid "" "still be line-buffered if writing to the console, or block-buffered if " "redirected to a non-interactive file." msgstr "" -"Désactive les buffers de la couche binaire des flux stdout and stderr " -"(disponible comme leur attribut ``buffer``). La couche d’entrée-sortie sera " -"mise en buffer ligne par ligne lors de l'écriture sur la console, ou par " +"Désactive les mémoires tampons de la couche binaire des flux de la sortie " +"standard (stdout) et de la sortie d'erreurs (stderr) (ils restent " +"accessibles *via* leur attribut ``buffer``). La couche d’entrée-sortie est " +"mise en tampon ligne par ligne lors de l'écriture sur la console, ou par " "blocs si elle est redirigée sur un fichier non-interactif." #: ../Doc/using/cmdline.rst:311 @@ -511,6 +541,12 @@ msgid "" "searching for a module. Also provides information on module cleanup at " "exit. See also :envvar:`PYTHONVERBOSE`." msgstr "" +"Affiche un message chaque fois qu'un module est initialisé, montrant " +"l'emplacement (nom du fichier ou module natif) à partir duquel il est " +"chargé. Lorsque l'option est doublée (:option:`!-vv`), affiche un message " +"pour chaque fichier vérifié lors de la recherche du module. Fournit aussi " +"des informations sur le nettoyage du module à la fin. Voir aussi :envvar:" +"`PYTHONVERBOSE`." #: ../Doc/using/cmdline.rst:326 msgid "" @@ -518,15 +554,18 @@ msgid "" "messages to :data:`sys.stderr`. A typical warning message has the following " "form::" msgstr "" +"Contrôle des avertissements. Le mécanisme d'avertissement de Python, par " +"défaut, affiche les messages d'avertissement sur :data:`sys.stderr`. Un " +"message d'avertissement type est de la forme suivante : ::" #: ../Doc/using/cmdline.rst:332 msgid "" "By default, each warning is printed once for each source line where it " "occurs. This option controls how often warnings are printed." msgstr "" -"Par défaut, chaque avertissement est affiché une fois pour chaque ligne de " -"source où il se trouve. Cette option définit à quelle fréquence afficher ces " -"avertissements." +"Par défaut, chaque avertissement est affiché une seule fois pour chaque " +"ligne de source où il se trouve. Cette option définit à quelle fréquence " +"afficher ces avertissements." #: ../Doc/using/cmdline.rst:335 msgid "" @@ -535,20 +574,27 @@ msgid "" "option:`-W` options are ignored (though, a warning message is printed about " "invalid options when the first warning is issued)." msgstr "" +"L'option :option:`-W` peut être répétée ; lorsqu'un avertissement correspond " +"à plus d'une option, l'action associée à la dernière correspondance est " +"effectuée. Les options :option:`-W` invalides sont ignorées (cependant, un " +"message d'avertissement est affiché sur les options invalides au moment où " +"le premier avertissement est généré). " #: ../Doc/using/cmdline.rst:340 msgid "" "Warnings can also be controlled from within a Python program using the :mod:" "`warnings` module." msgstr "" +"Les avertissements peuvent aussi être contrôlés dans le programme Python en " +"utilisant le module :mod:`warnings`." #: ../Doc/using/cmdline.rst:343 msgid "" "The simplest form of argument is one of the following action strings (or a " "unique abbreviation):" msgstr "" -"La forme la plus simple de l'argument est l'une des chaînes d'action " -"suivante (ou une abréviation unique) :" +"La forme la plus simple de l'argument est l'une des chaînes d'actions " +"suivantes (ou une abréviation unique) :" #: ../Doc/using/cmdline.rst:346 msgid "``ignore``" @@ -556,7 +602,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:347 msgid "Ignore all warnings." -msgstr "Ignorer tous les avertissements." +msgstr "Ignore tous les avertissements." #: ../Doc/using/cmdline.rst:349 msgid "``default``" @@ -567,6 +613,8 @@ msgid "" "Explicitly request the default behavior (printing each warning once per " "source line)." msgstr "" +"Demande explicitement le comportement par défaut (affiche chaque " +"avertissement une fois par ligne de code source)." #: ../Doc/using/cmdline.rst:353 msgid "``all``" @@ -634,7 +682,7 @@ msgstr "" "affiché, cette expression est insensible à la casse. Le champ *category* " "correspond à la catégorie d'avertissement. Ce nom doit être un nom complet " "de classe ; La règle s'applique à tous les messages d'alertes construits " -"avec une classe héritante de celle spécifiée. Le nom de la classe complète " +"avec une classe qui hérite de celle spécifiée. Le nom de la classe complète " "doit être donnée. Le champ *module* correspond au nom (pleinement qualifié) " "du module, cette correspondance est sensible à la casse. Le champ *line* " "correspond au numéro de ligne, où zéro correspond à n'importe quel numéro de " @@ -642,7 +690,7 @@ msgstr "" #: ../Doc/using/cmdline.rst:378 msgid ":mod:`warnings` -- the warnings module" -msgstr "" +msgstr ":mod:`warnings` -- le module qui gère les avertissements." #: ../Doc/using/cmdline.rst:380 msgid ":pep:`230` -- Warning framework" @@ -657,16 +705,21 @@ msgid "" "Skip the first line of the source, allowing use of non-Unix forms of ``#!" "cmd``. This is intended for a DOS specific hack only." msgstr "" +"Saute la première ligne du code source, autorisant ainsi les directives de " +"type ``#!cmd`` non conformes au standard Unix. L'objectif est de proposer " +"une astuce spécifique pour le DOS." #: ../Doc/using/cmdline.rst:393 msgid "" "Reserved for various implementation-specific options. CPython currently " "defines the following possible values:" msgstr "" +"Réservée pour les options spécifiques aux différentes implémentations. " +"CPython reconnaît actuellement les valeurs suivantes :" #: ../Doc/using/cmdline.rst:396 msgid "``-X faulthandler`` to enable :mod:`faulthandler`;" -msgstr "" +msgstr "``-X faulthandler`` pour activer :mod:`faulthandler` ;" #: ../Doc/using/cmdline.rst:397 msgid "" @@ -674,6 +727,10 @@ msgid "" "memory blocks when the program finishes or after each statement in the " "interactive interpreter. This only works on debug builds." msgstr "" +"``-X showrefcount`` pour afficher le compteur des références et le nombre de " +"blocs mémoire utilisés lorsque le programme se termine ou après chaque " +"entrée de l'interpréteur interactif. Ceci ne fonctionne que sur les versions " +"compilées en mode débogage." #: ../Doc/using/cmdline.rst:400 msgid "" @@ -683,6 +740,12 @@ msgid "" "traceback limit of *NFRAME* frames. See the :func:`tracemalloc.start` for " "more information." msgstr "" +"``-X tracemalloc`` pour lancer le suivi des allocations mémoire par Python " +"en utilisant le module :mod:`tracemalloc`. Par défaut, seul l'appel (la " +"*frame* en anglais) le plus récent est stocké dans la trace de la pile " +"d'appels. Utilisez ``-X tracemalloc=NFRAME`` pour lancer le suivi avec une " +"limite des traces à *NFRAME* appels. Voir :func:`tracemalloc.start` pour " +"plus d'informations." #: ../Doc/using/cmdline.rst:405 msgid "" @@ -690,32 +753,37 @@ msgid "" "each type when the program finishes. This only works when Python was built " "with ``COUNT_ALLOCS`` defined." msgstr "" +"``-X showalloccount`` pour afficher à la fin de l'exécution du programme le " +"total des objets alloués pour chaque type. Ceci ne fonctionne que si Python " +"a été compilé avec l'option ``COUNT_ALLOCS``." #: ../Doc/using/cmdline.rst:409 msgid "" "It also allows passing arbitrary values and retrieving them through the :" "data:`sys._xoptions` dictionary." msgstr "" +"Il est aussi possible de passer des valeurs arbitraires et de les récupérer " +"par le dictionnaire :data:`sys._xoptions`." #: ../Doc/using/cmdline.rst:412 msgid "The :option:`-X` option was added." -msgstr "" +msgstr "L'option :option:`-X` a été ajoutée." #: ../Doc/using/cmdline.rst:415 msgid "The ``-X faulthandler`` option." -msgstr "" +msgstr "option ``-X faulthandler``." #: ../Doc/using/cmdline.rst:418 msgid "The ``-X showrefcount`` and ``-X tracemalloc`` options." -msgstr "" +msgstr "options ``-X showrefcount`` et ``-X tracemalloc`` ." #: ../Doc/using/cmdline.rst:421 msgid "The ``-X showalloccount`` option." -msgstr "" +msgstr "option ``-X showalloccount``." #: ../Doc/using/cmdline.rst:426 msgid "Options you shouldn't use" -msgstr "Options que vous ne devriez pas utiliser" +msgstr "Options à ne pas utiliser" #: ../Doc/using/cmdline.rst:430 msgid "Reserved for use by Jython_." @@ -732,6 +800,10 @@ msgid "" "command-line switches override environmental variables where there is a " "conflict." msgstr "" +"Ces variables d'environnement modifient le comportement de Python. Elles " +"sont analysées avant les options de la ligne de commande, autres que -E ou -" +"I. Il est d'usage que les options de la ligne de commande prennent le pas " +"sur les variables d'environnement en cas de conflit." #: ../Doc/using/cmdline.rst:447 msgid "" @@ -741,6 +813,11 @@ msgid "" "`{exec_prefix}` are installation-dependent directories, both defaulting to :" "file:`/usr/local`." msgstr "" +"Modifie l'emplacement des bibliothèques standards de Python. Par défaut, les " +"bibliothèques sont recherchées dans :file:`{préfixe}/lib/python{version}` " +"et :file:`{préfixe_exec}/lib/python{version}` où :file:`{préfixe}` et :file:" +"`{préfixe_exec}` sont des répertoires qui dépendent de l'installation (leur " +"valeur par défaut étant :file:`/usr/local`)." #: ../Doc/using/cmdline.rst:453 msgid "" @@ -748,6 +825,10 @@ msgid "" "both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different " "values for these, set :envvar:`PYTHONHOME` to :file:`{prefix}:{exec_prefix}`." msgstr "" +"Quand :envvar:`PYTHONHOME` est défini à un simple répertoire, sa valeur " +"remplace à la fois :file:`{préfixe}` et :file:`{préfixe_exec}`. Pour " +"spécifier des valeurs différentes à ces variables, définissez :envvar:" +"`PYTHONHOME` à :file:`{prefix}:{exec_prefix}`." #: ../Doc/using/cmdline.rst:460 msgid "" @@ -756,6 +837,11 @@ msgid "" "data:`os.pathsep` (e.g. colons on Unix or semicolons on Windows). Non-" "existent directories are silently ignored." msgstr "" +"Augmente le chemin de recherche par défaut des fichiers de modules. Le " +"format est le même que pour :envvar:`PATH` du shell : un ou plusieurs " +"chemins de répertoires séparés par :data:`os.pathsep` (par exemple, deux " +"points sous Unix et point-virgule sous Windows). Les répertoires qui " +"n'existent pas sont ignorés silencieusement." #: ../Doc/using/cmdline.rst:465 msgid "" @@ -763,6 +849,11 @@ msgid "" "may refer to zipfiles containing pure Python modules (in either source or " "compiled form). Extension modules cannot be imported from zipfiles." msgstr "" +"En plus des répertoires normaux, des entrées individuelles de :envvar:" +"`PYTHONPATH` peuvent faire référence à des fichiers zip contenant des " +"modules en pur Python (soit sous forme de code source, soit sous forme " +"compilée). Les modules d'extensions ne peuvent pas être importés à partir de " +"fichiers zip." #: ../Doc/using/cmdline.rst:469 msgid "" @@ -770,6 +861,9 @@ msgid "" "with :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). " "It is *always* appended to :envvar:`PYTHONPATH`." msgstr "" +"Le chemin de recherche par défaut dépend de l'installation mais commence " +"généralement par :file:`{préfixe}/lib/python{version}` (voir :envvar:" +"`PYTHONHOME` ci-dessus). Il est *toujours* ajouté à :envvar:`PYTHONPATH`." #: ../Doc/using/cmdline.rst:473 msgid "" @@ -778,6 +872,10 @@ msgid "" "options`. The search path can be manipulated from within a Python program as " "the variable :data:`sys.path`." msgstr "" +"Comme indiqué ci-dessus dans :ref:`using-on-interface-options`, un " +"répertoire supplémentaire est inséré dans le chemin de recherche devant :" +"envvar:`PYTHONPATH`. Le chemin de recherche peut être manipulé depuis un " +"programme Python avec la variable :data:`sys.path`." #: ../Doc/using/cmdline.rst:481 msgid "" @@ -789,6 +887,14 @@ msgid "" "and :data:`sys.ps2` and the hook :data:`sys.__interactivehook__` in this " "file." msgstr "" +"S'il s'agit d'un nom de fichier accessible en lecture, les commandes Python " +"de ce fichier sont exécutées avant que la première invite ne soit affichée " +"en mode interactif. Le fichier est exécuté dans le même espace de noms que " +"les commandes interactives, de manière à ce que les objets définis ou " +"importés puissent être utilisés sans qualificatif dans la session " +"interactive. Vous pouvez aussi changer les invites :data:`sys.ps1` et :data:" +"`sys.ps2` ainsi que la fonction automatique (*hook* en anglais) :data:`sys." +"__interactivehook__` dans ce fichier." #: ../Doc/using/cmdline.rst:491 msgid "" @@ -796,6 +902,9 @@ msgid "" "option:`-O` option. If set to an integer, it is equivalent to specifying :" "option:`-O` multiple times." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-O`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-O` plusieurs fois." #: ../Doc/using/cmdline.rst:498 msgid "" @@ -803,24 +912,33 @@ msgid "" "option:`-d` option. If set to an integer, it is equivalent to specifying :" "option:`-d` multiple times." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-d`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-d` plusieurs fois." #: ../Doc/using/cmdline.rst:505 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." msgstr "" +"Si elle est définie à une chaîne non vide, C'est équivalent à spécifier " +"l'option :option:`-i`." #: ../Doc/using/cmdline.rst:508 msgid "" "This variable can also be modified by Python code using :data:`os.environ` " "to force inspect mode on program termination." msgstr "" +"Cette variable peut aussi être modifiée par du code Python en utilisant :" +"data:`os.environ` pour forcer le mode introspectif à la fin du programme." #: ../Doc/using/cmdline.rst:514 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-u` option." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-u`." #: ../Doc/using/cmdline.rst:520 msgid "" @@ -828,12 +946,17 @@ msgid "" "option:`-v` option. If set to an integer, it is equivalent to specifying :" "option:`-v` multiple times." msgstr "" +"Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " +"l'option :option:`-v`. Si elle est définie à un entier, c'est équivalent à " +"spécifier l'option :option:`-v` plusieurs fois." #: ../Doc/using/cmdline.rst:527 msgid "" "If this is set, Python ignores case in :keyword:`import` statements. This " "only works on Windows and OS X." msgstr "" +"Si elle est définie, Python ignore la casse dans les instructions :keyword:" +"`import`. Ceci ne fonctionne que sous Windows et OS X. " #: ../Doc/using/cmdline.rst:533 msgid "" @@ -841,15 +964,18 @@ msgid "" "files on the import of source modules. This is equivalent to specifying " "the :option:`-B` option." msgstr "" -"S'il est donné, et n'est pas une chaîne vide, Python ne tentera pas d'écrire " -"de fichier ``.pyc``` à l'importation des modules source. C'est équivalent à " -"donner l'option :option:`-B`." +"Si elle est définie et n'est pas une chaîne vide, Python n'écrit pas de " +"fichier ``.pyc`` à l'importation des modules sources. C'est équivalent à " +"spécifier l'option :option:`-B`." #: ../Doc/using/cmdline.rst:540 msgid "" "If this variable is not set or set to ``random``, a random value is used to " "seed the hashes of str, bytes and datetime objects." msgstr "" +"Si cette variable n'est pas définie ou définie à ``random``, une valeur " +"aléatoire est utilisée pour saler les empreintes des objets chaines, bytes " +"et datetime." #: ../Doc/using/cmdline.rst:543 msgid "" @@ -857,6 +983,9 @@ msgid "" "fixed seed for generating the hash() of the types covered by the hash " "randomization." msgstr "" +"Si :envvar:`PYTHONHASHSEED` est définie à une valeur entiere, elle est " +"utilisée comme valeur de salage pour générer les empreintes des types " +"utilisant la randomisation du hachage." #: ../Doc/using/cmdline.rst:547 msgid "" @@ -864,12 +993,18 @@ msgid "" "interpreter itself, or to allow a cluster of python processes to share hash " "values." msgstr "" +"L'objectif est d'avoir des empreintes reproductibles, pour des tests de " +"l'interpréteur lui-même ou pour qu'un groupe de processus Python puisse " +"partager des empreintes." #: ../Doc/using/cmdline.rst:551 msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." msgstr "" +"Le nombre entier doit être écrit en base 10 et compris entre 0 et " +"4 294 967 295. Spécifier la valeur 0 désactive la randomisation des " +"empreintes." #: ../Doc/using/cmdline.rst:559 msgid "" @@ -878,16 +1013,24 @@ msgid "" "Both the ``encodingname`` and the ``:errorhandler`` parts are optional and " "have the same meaning as in :func:`str.encode`." msgstr "" +"Si la variable est définie sous la forme ``nom_encodage:" +"gestionnaire_erreur`` avant le lancement de l'interpréteur, cela prend le " +"pas sur l'encodage utilisé pour l'entrée standard, la sortie standard ou la " +"sortie d'erreur. ``nom_encodage`` et ``:gestionnaire_erreur`` sont " +"facultatifs tous les deux et possèdent la même signification que dans :func:" +"`str.encode`." #: ../Doc/using/cmdline.rst:564 msgid "" "For stderr, the ``:errorhandler`` part is ignored; the handler will always " "be ``'backslashreplace'``." msgstr "" +"Pour la sortie d'erreur, la partie ``:gestionnaire_erreur`` est ignorée : le " +"gestionnaire est toujours ``'backslashreplace'``." #: ../Doc/using/cmdline.rst:567 msgid "The ``encodingname`` part is now optional." -msgstr "" +msgstr "la partie ``nom_encodage`` est maintenant optionnelle." #: ../Doc/using/cmdline.rst:570 msgid "" @@ -896,12 +1039,18 @@ msgid "" "also specified. Files and pipes redirected through the standard streams are " "not affected." msgstr "" +"Sous Windows, l'encodage spécifié par cette variable est ignoré pour le " +"tampon des consoles interactives à moins que :envvar:" +"`PYTHONLEGACYWINDOWSSTDIO` ne soit aussi spécifié. Les fichiers et tubes " +"(*pipes* en anglais) redirigés vers les flux standards ne sont pas concernés." #: ../Doc/using/cmdline.rst:577 msgid "" "If this is set, Python won't add the :data:`user site-packages directory " "` to :data:`sys.path`." msgstr "" +"Si elle est définie, Python n'ajoute pas le répertoire :data:`site-packages " +"utilisateur ` à :data:`sys.path`." #: ../Doc/using/cmdline.rst:587 msgid "" @@ -910,6 +1059,10 @@ msgid "" "USER_SITE>` and :ref:`Distutils installation paths ` " "for ``python setup.py install --user``." msgstr "" +"Définit le répertoire :data:`base utilisateur `. Celui-ci " +"est utilisé pour déterminer le chemin du répertoire utilisateur :data:`site-" +"packages ` et :ref:`Installation alternative : le schéma " +"user ` pour ``python setup.py install --user``." #: ../Doc/using/cmdline.rst:599 msgid "" @@ -917,12 +1070,18 @@ msgid "" "value instead of the value got through the C runtime. Only works on Mac OS " "X." msgstr "" +"Si cette variable d'environnement est définie, ``sys.argv[0]`` est définie à " +"la même valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " +"que sur Mac OS X." #: ../Doc/using/cmdline.rst:605 msgid "" "This is equivalent to the :option:`-W` option. If set to a comma separated " "string, it is equivalent to specifying :option:`-W` multiple times." msgstr "" +"C'est équivalent à spécifier l'option :option:`-W`. Si la valeur est une " +"chaîne séparée par des virgules, c'est équivalent à spécifier l'option :" +"option:`-W` plusieurs fois." #: ../Doc/using/cmdline.rst:611 msgid "" @@ -932,6 +1091,11 @@ msgid "" "`SIGILL` signals to dump the Python traceback. This is equivalent to :" "option:`-X` ``faulthandler`` option." msgstr "" +"Si elle est définie à une chaîne non vide, :func:`faulthandler.enable` est " +"appelée au démarrage : ceci installe un gestionnaire pour les signaux :const:" +"`SIGSEGV`, :const:`SIGFPE`, :const:`SIGABRT`, :const:`SIGBUS` et :const:" +"`SIGILL` afin de générer une trace de la pile d'appels. C'est équivalent à " +"spécifier l'option :option:`-X` ``faulthandler``." #: ../Doc/using/cmdline.rst:622 msgid "" @@ -941,20 +1105,30 @@ msgid "" "trace. For example, ``PYTHONTRACEMALLOC=1`` stores only the most recent " "frame. See the :func:`tracemalloc.start` for more information." msgstr "" +"Si elle est définie à une chaîne non vide, lance le suivi des allocations " +"mémoire par Python en utilisant le module :mod:`tracemalloc`. La valeur de " +"la variable définit le nombre maximum d'appels (les *frames* en anglais) " +"stockés dans la trace de pile d'appels. Par exemple, ``PYTHONTRACEMALLOC=1`` " +"ne stocke que l'appel le plus récent. Voir :func:`tracemalloc.start` pour " +"davantage d'informations." #: ../Doc/using/cmdline.rst:633 msgid "" "If this environment variable is set to a non-empty string, enable the :ref:" "`debug mode ` of the :mod:`asyncio` module." msgstr "" +"Si elle est définie à une chaîne non vide, active le :ref:`mode debogage " +"` du module :mod:`asyncio`." #: ../Doc/using/cmdline.rst:641 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" +"Définit l'allocateur mémoire de Python ou installe des fonctions " +"automatiques de débogage." #: ../Doc/using/cmdline.rst:643 msgid "Set the family of memory allocators used by Python:" -msgstr "" +msgstr "Définit la famille d'allocateurs mémoire utilisés par Python :" #: ../Doc/using/cmdline.rst:645 msgid "" @@ -962,6 +1136,9 @@ msgid "" "domains (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, :c:data:" "`PYMEM_DOMAIN_OBJ`)." msgstr "" +"``malloc`` : utilise la fonction :c:func:`malloc` de la bibliothèque C " +"standard pour tous les domaines (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:" +"`PYMEM_DOMAIN_MEM`, :c:data:`PYMEM_DOMAIN_OBJ`)." #: ../Doc/using/cmdline.rst:648 msgid "" @@ -969,22 +1146,32 @@ msgid "" "`PYMEM_DOMAIN_MEM` and :c:data:`PYMEM_DOMAIN_OBJ` domains and use the :c:" "func:`malloc` function for the :c:data:`PYMEM_DOMAIN_RAW` domain." msgstr "" +"``pymalloc`` : utilise l’:ref:`allocateur pymalloc ` pour les " +"domaines :c:data:`PYMEM_DOMAIN_MEM` ainsi que :c:data:`PYMEM_DOMAIN_OBJ` et " +"utilise la fonction :c:func:`malloc` pour le domaine :c:data:" +"`PYMEM_DOMAIN_RAW`." #: ../Doc/using/cmdline.rst:652 msgid "Install debug hooks:" -msgstr "" +msgstr "Installe des fonctions automatiques de débogage :" #: ../Doc/using/cmdline.rst:654 msgid "``debug``: install debug hooks on top of the default memory allocator" msgstr "" +"``debug`` : installe des fonctions automatiques de débogage au-dessus de " +"l'allocateur mémoire par défaut." #: ../Doc/using/cmdline.rst:655 msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks" msgstr "" +"``malloc_debug``: identique à ``malloc`` mais installe aussi des fonctions " +"automatiques de débogage." #: ../Doc/using/cmdline.rst:656 msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks" msgstr "" +"``pymalloc_debug``: identique à ``pymalloc`` mais installe aussi des " +"fonctions automatiques de débogage." #: ../Doc/using/cmdline.rst:658 msgid "" @@ -992,6 +1179,10 @@ msgid "" "compiled in debug mode, the default is ``pymalloc_debug`` and the debug " "hooks are used automatically." msgstr "" +"Quand Python est compilé en mode \"release\", la valeur par défaut est " +"``pymalloc``. Quand il est compilé en mode débogage, la valeur par défaut " +"est ``pymalloc_debug`` et les fonctions automatiques de débogage sont " +"utilisées automatiquement." #: ../Doc/using/cmdline.rst:662 msgid "" @@ -999,12 +1190,18 @@ msgid "" "``pymalloc_debug`` are not available, the default is ``malloc`` in release " "mode and ``malloc_debug`` in debug mode." msgstr "" +"Si Python est configuré sans le support de ``pymalloc``, ``pymalloc`` et " +"``pymalloc_debug`` ne sont pas disponibles. Les valeurs par défaut sont " +"``malloc`` en mode \"release\" et ``malloc_debug`` en mode débogage." #: ../Doc/using/cmdline.rst:666 msgid "" "See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " "memory allocators." msgstr "" +"Reportez-vous à la fonction :c:func:`PyMem_SetupDebugHooks` pour ce qui " +"concerne les fonctions automatiques de débogage de l'allocateur mémoire de " +"Python." #: ../Doc/using/cmdline.rst:674 msgid "" @@ -1012,6 +1209,10 @@ msgid "" "`pymalloc memory allocator ` every time a new pymalloc object " "arena is created, and on shutdown." msgstr "" +"Si elle est définie à une chaîne non vide, Python affiche des statistiques " +"relatives à l’:ref:`allocateur mémoire pymalloc ` chaque fois " +"qu'un objet est créé par ce gestionnaire, ainsi qu'à la fin de l'exécution " +"du programme." #: ../Doc/using/cmdline.rst:678 msgid "" @@ -1019,12 +1220,18 @@ msgid "" "is used to force the :c:func:`malloc` allocator of the C library, or if " "Python is configured without ``pymalloc`` support." msgstr "" +"Cette variable est ignorée si la variable d'environnement :envvar:" +"`PYTHONMALLOC` est utilisée pour forcer l'allocateur :c:func:`malloc` de la " +"bibliothèque C standard ou si Python est configuré sans le support de " +"``pymalloc``." #: ../Doc/using/cmdline.rst:682 msgid "" "This variable can now also be used on Python compiled in release mode. It " "now has no effect if set to an empty string." msgstr "" +"Cette variable peut maintenant être utilisée avec Python compilé en mode " +"\"release\". Elle n'a pas d'effet si elle est définie à une chaine vide. " #: ../Doc/using/cmdline.rst:689 msgid "" @@ -1033,12 +1240,18 @@ msgid "" "respectively. Otherwise, the new defaults 'utf-8' and 'surrogatepass' are " "used." msgstr "" +"Si elle est définie et n’est pas une chaîne vide, l'encodage par défaut " +"respectivement du système de fichiers et des erreurs reviennent à leur " +"valeur pré-3.6, respectivement 'mbcs' et 'replace'. Sinon, les nouvelles " +"valeurs par défaut 'utf-8' et 'surrogatepass' sont utilisées." #: ../Doc/using/cmdline.rst:693 msgid "" "This may also be enabled at runtime with :func:`sys." "_enablelegacywindowsfsencoding()`." msgstr "" +"Vous pouvez aussi activer ceci à l'exécution avec :func:`sys." +"_enablelegacywindowsfsencoding()`." #: ../Doc/using/cmdline.rst:696 ../Doc/using/cmdline.rst:710 msgid "Availability: Windows" @@ -1054,32 +1267,46 @@ msgid "" "writer. This means that Unicode characters will be encoded according to the " "active console code page, rather than using utf-8." msgstr "" +"Si elle est définie et n’est pas une chaîne vide, n'utilise pas les lecteur " +"et écrivain de la nouvelle console. Cela signifie que les caractères Unicode " +"sont encodés avec l'encodage de la console active plutôt qu'en utf-8. " #: ../Doc/using/cmdline.rst:707 msgid "" "This variable is ignored if the standard streams are redirected (to files or " "pipes) rather than referring to console buffers." msgstr "" +"Cette variable est ignorée si les flux standards sont redirigés (vers des " +"fichiers ou des tubes) plutôt que pointant vers des mémoires tampons de " +"console." #: ../Doc/using/cmdline.rst:715 msgid "Debug-mode variables" -msgstr "" +msgstr "Variables en mode débogage" #: ../Doc/using/cmdline.rst:717 msgid "" "Setting these variables only has an effect in a debug build of Python, that " "is, if Python was configured with the ``--with-pydebug`` build option." msgstr "" +"Définir ces variables n'a d'effet que si Python a été compilé en mode " +"débogage, c'est-à-dire que l'option de compilation ``--with-pydebug`` a été " +"spécifiée." #: ../Doc/using/cmdline.rst:722 msgid "If set, Python will print threading debug info." msgstr "" +"Si elle est définie, Python affiche des informations de débogage relatives " +"aux différents fils d'exécution." #: ../Doc/using/cmdline.rst:727 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." msgstr "" +"Si elle est définie, Python affiche (de manière brute) les objets et les " +"compteurs de références toujours existant après la fermeture de " +"l'interpréteur." #~ msgid "The line numbers in error messages will be off by one." #~ msgstr "" From 71d6553682e862da5ff652312efe025053d4a886 Mon Sep 17 00:00:00 2001 From: Fred Z Date: Tue, 9 Jan 2018 22:12:56 +0100 Subject: [PATCH 024/115] Translate library/distutils.po --- library/distutils.po | 37 ++++++++++++++++++++++++++++++++----- 1 file changed, 32 insertions(+), 5 deletions(-) diff --git a/library/distutils.po b/library/distutils.po index 8eac9ff0c..3aed01c53 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -3,23 +3,23 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2018-01-09 21:37+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" #: ../Doc/library/distutils.rst:2 msgid ":mod:`distutils` --- Building and installing Python modules" -msgstr "" +msgstr ":mod:`distutils` --- Construction et installation des modules Python" #: ../Doc/library/distutils.rst:12 msgid "" @@ -29,6 +29,11 @@ msgid "" "collections of Python packages which include modules coded in both Python " "and C." msgstr "" +"Le package :mod:`distutils`fournit le support pour la construction et " +"l'installation de modules supplémentaires dans une installation Python. Les " +"nouveaux modules peuvent être soit Python pur à 100%, soit des modules " +"d'extension écrits en C, soit des collections de paquetages Python qui " +"incluent des modules codés en C et en Python." #: ../Doc/library/distutils.rst:17 msgid "" @@ -37,32 +42,45 @@ msgid "" "particular, `setuptools `__ is " "an enhanced alternative to :mod:`distutils` that provides:" msgstr "" +"La plupart des utilisateurs de Python ne voudront *pas* utiliser ce module " +"directement, mais plutôt utiliser les outils cross-version maintenus par la " +"Python Packaging Authority. En particulier,`setuptools `__ est une alternative améliorée à: mod: " +"`distutils` qui fournit:" #: ../Doc/library/distutils.rst:23 msgid "support for declaring project dependencies" -msgstr "" +msgstr "support pour la déclaration des dépendances de projets" #: ../Doc/library/distutils.rst:24 msgid "" "additional mechanisms for configuring which files to include in source " "releases (including plugins for integration with version control systems)" msgstr "" +"mécanismes supplémentaires pour configurer quels fichiers inclure dans les " +"versions source (y compris les plugins pour l'intégration avec les systèmes " +"de contrôle de version)" #: ../Doc/library/distutils.rst:26 msgid "" "the ability to declare project \"entry points\", which can be used as the " "basis for application plugin systems" msgstr "" +"la possibilité de déclarer les \"points d'entrée\" du projet, qui peuvent " +"être utilisés comme base pour les systèmes de plugins applicatifs" #: ../Doc/library/distutils.rst:28 msgid "" "the ability to automatically generate Windows command line executables at " "installation time rather than needing to prebuild them" msgstr "" +"la possibilité de générer automatiquement des exécutables en ligne de " +"commande Windows au moment de l'installation plutôt que de devoir les pré-" +"construire" #: ../Doc/library/distutils.rst:30 msgid "consistent behaviour across all supported Python versions" -msgstr "" +msgstr "comportement cohérent dans toutes les versions Python supportées" #: ../Doc/library/distutils.rst:32 msgid "" @@ -71,6 +89,11 @@ msgid "" "``distutils``. Refer to the `Python Packaging User Guide `_ for more information." msgstr "" +"Le programme d'installation recommandé `pip `__ " +"exécute tous les scripts ``setup. py`` avec ``setuptools``, même si le " +"script lui-même n'importe que ``distutils``. Pour plus d'informations, " +"reportez-vous au `Python Packaging User Guide `_." #: ../Doc/library/distutils.rst:38 msgid "" @@ -79,6 +102,10 @@ msgid "" "system, the legacy :mod:`distutils` based user documentation and API " "reference remain available:" msgstr "" +"Aux bénéfices des auteurs et utilisateurs d'outils d'empaquetage recherchant " +"une compréhension plus approfondie des détails du système actuel " +"d'empaquetage et de distribution, la documentation utilisateur historique :" +"mod: `distutils`et API de référence restent disponibles:" #: ../Doc/library/distutils.rst:43 msgid ":ref:`install-index`" From f21753a9fa82ed5bfa3ec895e92762f715e6661b Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 20 Mar 2018 22:46:29 +0100 Subject: [PATCH 025/115] Reviewing distutils. --- library/distutils.po | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/library/distutils.po b/library/distutils.po index 3aed01c53..f38b14dee 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-01-09 21:37+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2018-03-20 22:45+0100\n" +"Last-Translator: Julien Palard \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/distutils.rst:2 msgid ":mod:`distutils` --- Building and installing Python modules" -msgstr ":mod:`distutils` --- Construction et installation des modules Python" +msgstr ":mod:`distutils` --- Création et installation des modules Python" #: ../Doc/library/distutils.rst:12 msgid "" @@ -29,11 +29,11 @@ msgid "" "collections of Python packages which include modules coded in both Python " "and C." msgstr "" -"Le package :mod:`distutils`fournit le support pour la construction et " +"Le package :mod:`distutils` fournit le support pour la création et " "l'installation de modules supplémentaires dans une installation Python. Les " -"nouveaux modules peuvent être soit Python pur à 100%, soit des modules " -"d'extension écrits en C, soit des collections de paquetages Python qui " -"incluent des modules codés en C et en Python." +"nouveaux modules peuvent être soit en Python pur à 100%, soit des modules " +"d'extension écrits en C, soit des collections de paquets Python qui incluent " +"des modules codés en C et en Python." #: ../Doc/library/distutils.rst:17 msgid "" @@ -43,10 +43,10 @@ msgid "" "an enhanced alternative to :mod:`distutils` that provides:" msgstr "" "La plupart des utilisateurs de Python ne voudront *pas* utiliser ce module " -"directement, mais plutôt utiliser les outils cross-version maintenus par la " -"Python Packaging Authority. En particulier,`setuptools `__ est une alternative améliorée à: mod: " -"`distutils` qui fournit:" +"directement, mais plutôt les outils cross-version maintenus par la *Python " +"Packaging Authority*. En particulier, `setuptools `__ est une alternative améliorée à :mod:" +"`distutils` qui fournit :" #: ../Doc/library/distutils.rst:23 msgid "support for declaring project dependencies" @@ -58,8 +58,8 @@ msgid "" "releases (including plugins for integration with version control systems)" msgstr "" "mécanismes supplémentaires pour configurer quels fichiers inclure dans les " -"versions source (y compris les plugins pour l'intégration avec les systèmes " -"de contrôle de version)" +"distributions source (y compris les plugins pour l'intégration avec les " +"systèmes de contrôle de version)" #: ../Doc/library/distutils.rst:26 msgid "" @@ -80,7 +80,7 @@ msgstr "" #: ../Doc/library/distutils.rst:30 msgid "consistent behaviour across all supported Python versions" -msgstr "comportement cohérent dans toutes les versions Python supportées" +msgstr "comportement cohérent entre toutes les versions Python supportées" #: ../Doc/library/distutils.rst:32 msgid "" @@ -102,10 +102,10 @@ msgid "" "system, the legacy :mod:`distutils` based user documentation and API " "reference remain available:" msgstr "" -"Aux bénéfices des auteurs et utilisateurs d'outils d'empaquetage recherchant " -"une compréhension plus approfondie des détails du système actuel " -"d'empaquetage et de distribution, la documentation utilisateur historique :" -"mod: `distutils`et API de référence restent disponibles:" +"À destination des auteurs et utilisateurs d'outils d'empaquetage cherchant " +"une compréhension plus approfondie des détails du système actuel de création " +"de paquets et de leur distribution, la documentation utilisateur historique " +"de :mod:`distutils` la référence de son API restent disponibles :" #: ../Doc/library/distutils.rst:43 msgid ":ref:`install-index`" From c7d71d9d8a307ea33db86b6de70d70db11fc9203 Mon Sep 17 00:00:00 2001 From: Fred Z Date: Tue, 9 Jan 2018 22:15:06 +0100 Subject: [PATCH 026/115] Translate library/colorsys.po --- library/colorsys.po | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/library/colorsys.po b/library/colorsys.po index f64b0b0a4..591a43401 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -3,23 +3,23 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2018-01-09 20:36+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.6.10\n" #: ../Doc/library/colorsys.rst:2 msgid ":mod:`colorsys` --- Conversions between color systems" -msgstr "" +msgstr ":mod:`colorsys` --- Conversions entre les systèmes de couleurs" #: ../Doc/library/colorsys.rst:9 msgid "**Source code:** :source:`Lib/colorsys.py`" @@ -35,6 +35,15 @@ msgid "" "coordinate is between 0 and 1, but the I and Q coordinates can be positive " "or negative. In all other spaces, the coordinates are all between 0 and 1." msgstr "" +"Le module: mod:`colorsys` définit les conversions bidirectionnelles des " +"valeurs de couleur entre les couleurs exprimées dans l'espace colorimétrique " +"RVB (Rouge Vert Bleu) utilisé dans les écrans d'ordinateur et trois autres " +"systèmes de coordonnées: YIQ, HLS (Hue Lightness Saturation) et HSV (Hue " +"Saturation Value). Les coordonnées dans tous ces espaces colorimétriques " +"sont des valeurs en virgule flottante. Dans l'espace YIQ, la coordonnée Y " +"est comprise entre 0 et 1, mais les coordonnées I et Q peuvent être " +"positives ou négatives. Dans tous les autres espaces, les coordonnées sont " +"toutes comprises entre 0 et 1." #: ../Doc/library/colorsys.rst:23 msgid "" @@ -42,34 +51,47 @@ msgid "" "ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-spaces." "htm." msgstr "" +"Plus d'information concernant les espaces colorimétrique pet être trouvé sur " +"http://www.poynton.com/ColorFAQ.html et https://www.cambridgeincolour.com/" +"tutorials/color-spaces.htm." #: ../Doc/library/colorsys.rst:27 msgid "The :mod:`colorsys` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`colorsys`définit les fonctions suivantes:" #: ../Doc/library/colorsys.rst:32 msgid "Convert the color from RGB coordinates to YIQ coordinates." msgstr "" +"Convertit la couleur des coordonnées RGB (RVB)vers les coordonnées YIQ." #: ../Doc/library/colorsys.rst:37 msgid "Convert the color from YIQ coordinates to RGB coordinates." msgstr "" +"Convertit la couleur des coordonnées YIQ vers les coordonnées RGB (RVB)." #: ../Doc/library/colorsys.rst:42 msgid "Convert the color from RGB coordinates to HLS coordinates." msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HLS " +"(TSV)." #: ../Doc/library/colorsys.rst:47 msgid "Convert the color from HLS coordinates to RGB coordinates." msgstr "" +"Convertit la couleur des coordonnées HLS (TSV) vers les coordonnées RGB " +"(RVB)." #: ../Doc/library/colorsys.rst:52 msgid "Convert the color from RGB coordinates to HSV coordinates." msgstr "" +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HSV " +"(TSV)." #: ../Doc/library/colorsys.rst:57 msgid "Convert the color from HSV coordinates to RGB coordinates." msgstr "" +"Convertit la couleur des coordonnées HSV (TSV) vers les coordonnées RGB " +"(RVB)." #: ../Doc/library/colorsys.rst:59 msgid "Example::" From 1f261d43f4695f70af5025ade8ca4c1cd9afe811 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 20 Mar 2018 22:57:18 +0100 Subject: [PATCH 027/115] Proofreading colorsys.po --- library/colorsys.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/library/colorsys.po b/library/colorsys.po index 591a43401..25cd901dd 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -8,8 +8,8 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-01-09 20:36+0100\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2018-03-20 22:57+0100\n" +"Last-Translator: Julien Palard \n" "Language-Team: LANGUAGE \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -23,7 +23,7 @@ msgstr ":mod:`colorsys` --- Conversions entre les systèmes de couleurs" #: ../Doc/library/colorsys.rst:9 msgid "**Source code:** :source:`Lib/colorsys.py`" -msgstr "**Code source :** :source:`Lib/colorsys.py`" +msgstr "**Code source :** :source:`Lib/colorsys.py`" #: ../Doc/library/colorsys.rst:13 msgid "" @@ -35,11 +35,11 @@ msgid "" "coordinate is between 0 and 1, but the I and Q coordinates can be positive " "or negative. In all other spaces, the coordinates are all between 0 and 1." msgstr "" -"Le module: mod:`colorsys` définit les conversions bidirectionnelles des " +"Le module :mod:`colorsys` définit les conversions bidirectionnelles des " "valeurs de couleur entre les couleurs exprimées dans l'espace colorimétrique " -"RVB (Rouge Vert Bleu) utilisé dans les écrans d'ordinateur et trois autres " -"systèmes de coordonnées: YIQ, HLS (Hue Lightness Saturation) et HSV (Hue " -"Saturation Value). Les coordonnées dans tous ces espaces colorimétriques " +"RVB (Rouge Vert Bleu) utilisé par les écrans d'ordinateur et trois autres " +"systèmes de coordonnées : YIQ, HLS (Hue Lightness Saturation) et HSV (Hue " +"Saturation Value). Les coordonnées dans tous ces espaces colorimétriques " "sont des valeurs en virgule flottante. Dans l'espace YIQ, la coordonnée Y " "est comprise entre 0 et 1, mais les coordonnées I et Q peuvent être " "positives ou négatives. Dans tous les autres espaces, les coordonnées sont " @@ -51,18 +51,18 @@ msgid "" "ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-spaces." "htm." msgstr "" -"Plus d'information concernant les espaces colorimétrique pet être trouvé sur " -"http://www.poynton.com/ColorFAQ.html et https://www.cambridgeincolour.com/" -"tutorials/color-spaces.htm." +"Consultez http://www.poynton.com/ColorFAQ.html et https://www." +"cambridgeincolour.com/tutorials/color-spaces.htm pour plus d'informations " +"concernant les espaces colorimétrique." #: ../Doc/library/colorsys.rst:27 msgid "The :mod:`colorsys` module defines the following functions:" -msgstr "Le module :mod:`colorsys`définit les fonctions suivantes:" +msgstr "Le module :mod:`colorsys` définit les fonctions suivantes :" #: ../Doc/library/colorsys.rst:32 msgid "Convert the color from RGB coordinates to YIQ coordinates." msgstr "" -"Convertit la couleur des coordonnées RGB (RVB)vers les coordonnées YIQ." +"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées YIQ." #: ../Doc/library/colorsys.rst:37 msgid "Convert the color from YIQ coordinates to RGB coordinates." @@ -95,4 +95,4 @@ msgstr "" #: ../Doc/library/colorsys.rst:59 msgid "Example::" -msgstr "Exemples ::" +msgstr "Exemple ::" From 2a4be3dd024a33d782a4ec640021197f7de35418 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Tue, 20 Mar 2018 23:55:56 +0100 Subject: [PATCH 028/115] Automatically review columns. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Checked using and some manual proofreading: def check_entry(po_file, entry): if entry.msgid.endswith(' ::'): return if entry.msgid.endswith('::'): if entry.msgstr.endswith(': ::'): return entry.msgstr = entry.msgstr.rstrip(' :. ') + ' ::' --- distutils/builtdist.po | 12 +++---- distutils/sourcedist.po | 4 +-- extending/embedding.po | 2 +- extending/extending.po | 12 +++---- extending/windows.po | 2 +- faq/design.po | 14 ++++---- faq/general.po | 2 +- faq/programming.po | 66 +++++++++++++++++++------------------- faq/windows.po | 4 +-- glossary.po | 4 +-- install/index.po | 2 +- installing/index.po | 6 ++-- library/2to3.po | 2 +- library/__main__.po | 2 +- library/_dummy_thread.po | 2 +- library/argparse.po | 2 +- library/ast.po | 2 +- library/asyncio-dev.po | 4 +-- library/asyncio-stream.po | 2 +- library/asyncio-task.po | 2 +- library/atexit.po | 2 +- library/cmd.po | 2 +- library/datetime.po | 4 +-- library/dummy_threading.po | 2 +- library/functions.po | 4 +-- library/functools.po | 22 ++++++------- library/json.po | 2 +- library/os.po | 2 +- library/pdb.po | 10 +++--- library/stdtypes.po | 34 ++++++++++---------- library/sys.po | 4 +-- library/tracemalloc.po | 2 +- license.po | 20 ++++++------ tutorial/classes.po | 8 ++--- tutorial/controlflow.po | 9 +++--- tutorial/errors.po | 2 +- tutorial/floatingpoint.po | 2 +- tutorial/interpreter.po | 4 +-- tutorial/introduction.po | 4 +-- tutorial/stdlib.po | 4 +-- tutorial/venv.po | 4 +-- using/cmdline.po | 2 +- whatsnew/2.0.po | 4 +-- whatsnew/2.3.po | 2 +- whatsnew/2.6.po | 2 +- whatsnew/3.0.po | 4 +-- 46 files changed, 155 insertions(+), 154 deletions(-) diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 1a885c18d..682fa5d6a 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -85,7 +85,7 @@ msgid "" "tree::" msgstr "" "Pour prendre un exemple simple, si je lance la commande suivante dans les " -"sources de Distutils ::" +"sources de Distutils ::" #: ../Doc/distutils/builtdist.rst:37 msgid "" @@ -408,7 +408,7 @@ msgid "" "command:`bdist_rpm` command::" msgstr "" "La manière habituelle de créer un RPM de votre module est d'utiliser la " -"commande :command:`bdist_rpm`::" +"commande :command:`bdist_rpm` ::" #: ../Doc/distutils/builtdist.rst:177 msgid "or the :command:`bdist` command with the :option:`!--format` option::" @@ -424,7 +424,7 @@ msgstr "" "La première vous permet de spécifier des options spécifique à RPM; la " "dernière vous permet de spécifier plusieurs format d'un seul coup. Si vous " "avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " -"plusieurs commande :command:`bdist_\\*` et leurs options." +"plusieurs commande :command:`bdist_\\*` et leurs options ::" #: ../Doc/distutils/builtdist.rst:188 msgid "" @@ -717,7 +717,7 @@ msgid "" "installers is usually as easy as running::" msgstr "" "Etant donné que les métadonnées sont tirées du script de préparation, créer " -"un installateur Windows est généralement facile, il suffit de lancer::" +"un installateur Windows est généralement facile, il suffit de lancer ::" #: ../Doc/distutils/builtdist.rst:310 msgid "or the :command:`bdist` command with the :option:`!--formats` option::" @@ -810,7 +810,7 @@ msgid "" "support this option, so the command::" msgstr "" "Pour construire une version 64 bits de votre module. L'installateur Windows " -"supporte aussi cette option, donc la commande::" +"supporte aussi cette option, donc la commande ::" #: ../Doc/distutils/builtdist.rst:364 msgid "" @@ -913,7 +913,7 @@ msgstr "" "Cette fonction peut être utilisée pour extraire des localisations de " "fichiers spéciaux sous Windows comme un menu démarrer ou le Bureau. Cela " "renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des " -"chaines suivantes::" +"chaines suivantes ::" #: ../Doc/distutils/builtdist.rst:434 msgid "If the folder cannot be retrieved, :exc:`OSError` is raised." diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po index 420c1f321..ce92f3618 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -176,7 +176,7 @@ msgstr "" msgid "For example, if you want all files of the archive to be owned by root::" msgstr "" "Par exemple, si vous voulez que tous les fichiers de l'archive soient détenu " -"par *root*::" +"par *root* ::" #: ../Doc/distutils/sourcedist.rst:75 msgid "Specifying the files to distribute" @@ -541,7 +541,7 @@ msgid "" "source distribution::" msgstr "" "Deuxièmement, si vous voulez (ré)généré le manifeste, mais pas créer la " -"distribution source ::" +"distribution source ::" #: ../Doc/distutils/sourcedist.rst:236 msgid ":option:`!-o` is a shortcut for :option:`!--manifest-only`." diff --git a/extending/embedding.po b/extending/embedding.po index d95c34058..8968b116f 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -347,7 +347,7 @@ msgid "" msgstr "" "Insérez le code ci-dessus juste avant la fonction :c:func:`main`. Ajoutez " "aussi les deux instructions suivantes avant l'appel à :c:func:" -"`Py_Initialize` ::" +"`Py_Initialize` ::" #: ../Doc/extending/embedding.rst:251 msgid "" diff --git a/extending/extending.po b/extending/extending.po index 3d19eb2d9..cd45951de 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -159,7 +159,7 @@ msgstr "" "La prochaine chose que nous ajoutons à notre fichier de module est la " "fonction C qui sera appelée lorsque l'expression Python ``spam." "system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " -"être appelée) ::" +"être appelée) ::" #: ../Doc/extending/extending.rst:92 msgid "" @@ -434,7 +434,7 @@ msgid "" msgstr "" "et initialisez-la dans la fonction d'initialisation de votre module (:c:func:" "`PyInit_spam`) avec un objet exception (Passons, pour le moment, la " -"vérification des codes d'erreur) ::" +"vérification des codes d'erreur) ::" #: ../Doc/extending/extending.rst:222 msgid "" @@ -480,7 +480,7 @@ msgid "" "a call to :c:func:`PyErr_SetString` as shown below::" msgstr "" "L'exception :exc:`spam.error` peut être levée dans votre module d'extension " -"en appelant :c:func:`PyErr_SetString` comme montré ci-dessous::" +"en appelant :c:func:`PyErr_SetString` comme montré ci-dessous ::" #: ../Doc/extending/extending.rst:260 msgid "Back to the Example" @@ -492,7 +492,7 @@ msgid "" "this statement::" msgstr "" "En revenant vers notre fonction exemple, vous devriez maintenant être " -"capable de comprendre cette affirmation::" +"capable de comprendre cette affirmation ::" #: ../Doc/extending/extending.rst:268 msgid "" @@ -520,7 +520,7 @@ msgid "" msgstr "" "La prochaine instruction est un appel à la fonction Unix :c:func:`system`, " "en lui passant la chaîne que nous venons d'obtenir à partir de :c:func:" -"`PyArg_ParseTuple`::" +"`PyArg_ParseTuple` ::" #: ../Doc/extending/extending.rst:281 msgid "" @@ -549,7 +549,7 @@ msgstr "" "Si vous avez une fonction C qui ne renvoie aucun argument utile (une " "fonction renvoiant :c:type:`void`), la fonction Python correspondante doit " "renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " -"implémentée par la macro :c:macro:`Py_RETURN_NONE`)::" +"implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" #: ../Doc/extending/extending.rst:297 msgid "" diff --git a/extending/windows.po b/extending/windows.po index fd4f5f6f1..eac6c3127 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -234,7 +234,7 @@ msgid "" msgstr "" "Lorsque vous créez des DLL sur Windows, vous devez transmettre :file:" "`pythonXY.lib` au lieur. Pour construire deux DLL, spam et ni (qui utilisent " -"des fonctions C trouvées dans spam), vous pouvez utiliser ces commandes::" +"des fonctions C trouvées dans spam), vous pouvez utiliser ces commandes ::" #: ../Doc/extending/windows.rst:119 msgid "" diff --git a/faq/design.po b/faq/design.po index 76ddd83bd..1d3d5ada0 100644 --- a/faq/design.po +++ b/faq/design.po @@ -370,7 +370,7 @@ msgid "" "generally less robust than the \"while True\" solution::" msgstr "" "Il y a une manière alternative de faire ça qui semble attrayante mais elle " -"est généralement moins robuste que la solution ``while True`` ::" +"est généralement moins robuste que la solution ``while True`` ::" #: ../Doc/faq/design.rst:196 msgid "" @@ -537,7 +537,7 @@ msgstr "" "Un bloc try/except est extrêmement efficient tant qu'aucune exception ne " "sont levée. En effet, intercepter une exception s'avère coûteux. Dans les " "versions de précédant Python 2.0, il était courant d'utiliser cette " -"pratique::" +"pratique ::" #: ../Doc/faq/design.rst:286 msgid "" @@ -733,7 +733,7 @@ msgid "" msgstr "" "Dans certaines implémentations de Python, le code suivant (qui marche " "parfaitement avec *CPython*) aurait probablement manqué de descripteurs de " -"fichiers::" +"fichiers ::" #: ../Doc/faq/design.rst:400 msgid "" @@ -757,7 +757,7 @@ msgstr "" "Si vous souhaitez écrire du code qui fonctionne avec n'importe quelle " "implémentation de Python, vous devez explicitement fermer le fichier ou " "utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du " -"système de gestion de la mémoire::" +"système de gestion de la mémoire ::" #: ../Doc/faq/design.rst:415 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" @@ -1016,7 +1016,7 @@ msgid "" msgstr "" "Les listes de hachage par leur adresse (*ID* de l'objet). Cela ne " "fonctionne pas parce que si vous créez une nouvelle liste avec la même " -"valeur, elle ne sera pas retrouvée; par exemple.::" +"valeur, elle ne sera pas retrouvée; par exemple ::" #: ../Doc/faq/design.rst:529 msgid "" @@ -1190,7 +1190,7 @@ msgstr "" "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::" +"Fortran ou autres langages de programmation. Par exemple ::" #: ../Doc/faq/design.rst:665 msgid "" @@ -1247,7 +1247,7 @@ msgid "" msgstr "" "Python a une instruction \"with\" qui encapsule l'exécution d'un bloc, en " "appelant le code sur l'entrée et la sortie du bloc. Certains langages " -"possèdent une construction qui ressemble à ceci::" +"possèdent une construction qui ressemble à ceci ::" #: ../Doc/faq/design.rst:706 msgid "In Python, such a construct would be ambiguous." diff --git a/faq/general.po b/faq/general.po index d1829c6f8..ca6abbd65 100644 --- a/faq/general.po +++ b/faq/general.po @@ -900,7 +900,7 @@ msgstr "" "une fenêtre avec l'interpréteur en fonctionnement pendant qu'ils rentrent la " "source de leur programme dans une autre fenêtre. S'ils ne peuvent pas se " "souvenir des méthodes pour une listen, ils peuvent faire quelque chose comme " -"ça :" +"ça ::" #: ../Doc/faq/general.rst:441 msgid "" diff --git a/faq/programming.po b/faq/programming.po index 19712f6ce..bf188c0ab 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -651,7 +651,7 @@ msgstr "" #: ../Doc/faq/programming.rst:526 msgid "By passing a mutable (changeable in-place) object::" -msgstr "En passant un objet muable (modifiable sur place) ::" +msgstr "En passant un objet muable (modifiable sur place) ::" #: ../Doc/faq/programming.rst:536 msgid "By passing in a dictionary that gets mutated::" @@ -659,7 +659,7 @@ msgstr "En passant un dictionnaire, qui sera modifié : ::" #: ../Doc/faq/programming.rst:546 msgid "Or bundle up values in a class instance::" -msgstr "Ou regrouper les valeurs dans une instance de classe::" +msgstr "Ou regrouper les valeurs dans une instance de classe ::" #: ../Doc/faq/programming.rst:562 msgid "There's almost never a good reason to get this complicated." @@ -714,7 +714,7 @@ msgstr "" #: ../Doc/faq/programming.rst:604 msgid "Object can encapsulate state for several methods::" -msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes::" +msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" #: ../Doc/faq/programming.rst:622 msgid "" @@ -743,11 +743,11 @@ msgid "" "copy` method::" msgstr "" "Certains objects peuvent être copiés plus facilement. Les Dictionnaires ont " -"une méthode :meth:`~dict.copy` ::" +"une méthode :meth:`~dict.copy` ::" #: ../Doc/faq/programming.rst:637 msgid "Sequences can be copied by slicing::" -msgstr "Les séquences peuvent être copiées via la syntaxe des tranches::" +msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" #: ../Doc/faq/programming.rst:643 msgid "How can I find the methods or attributes of an object?" @@ -840,7 +840,7 @@ msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" #: ../Doc/faq/programming.rst:694 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" -"La virgule n'est pas un opérateur en Python. Observez la session suivante::" +"La virgule n'est pas un opérateur en Python. Observez la session suivante ::" #: ../Doc/faq/programming.rst:699 msgid "" @@ -849,11 +849,11 @@ msgid "" msgstr "" "Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " "expression, l'expression ci dessus, est évaluée de la même façon que si vous " -"aviez écrit::" +"aviez écrit ::" #: ../Doc/faq/programming.rst:704 msgid "not::" -msgstr "et non::" +msgstr "et non ::" #: ../Doc/faq/programming.rst:708 msgid "" @@ -899,7 +899,7 @@ msgid "" msgstr "" "Oui. Cela est généralement réalisé en imbriquant les :keyword:`lambda` dans " "des :keyword:`lambda`. Observez les trois exemples suivants, contribués par " -"Ulf Bartelt::" +"Ulf Bartelt ::" #: ../Doc/faq/programming.rst:762 msgid "Don't try this at home, kids!" @@ -921,7 +921,7 @@ msgid "" msgstr "" "Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " "puis un \"o\" majuscule ou minuscule. Par exemple assigner la valeur octale " -"\"10\" (8 en décimal) à la variable \"a\", tapez::" +"\"10\" (8 en décimal) à la variable \"a\", tapez ::" #: ../Doc/faq/programming.rst:779 msgid "" @@ -932,7 +932,7 @@ msgstr "" "L'hexadécimal est tout aussi simple, faîtes précéder le nombre hexadécimal " "par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " "peuvent être écrit en majuscules ou en minuscules. Par exemple, dans " -"l'interpréteur Python::" +"l'interpréteur Python ::" #: ../Doc/faq/programming.rst:792 msgid "Why does -22 // 10 return -3?" @@ -1076,11 +1076,11 @@ msgstr "" "chaines de caractères à des fonctions. Le principal avantage de cette " "technique est que les chaines n'ont pas besoin d'être égales aux noms de " "fonctions. C'est aussi la principale façon d'imiter la construction \"case" -"\"::" +"\" ::" #: ../Doc/faq/programming.rst:898 msgid "Use the built-in function :func:`getattr`::" -msgstr "Utiliser la fonction :func:`getattr`::" +msgstr "Utiliser la fonction :func:`getattr` ::" #: ../Doc/faq/programming.rst:903 msgid "" @@ -1094,12 +1094,12 @@ msgstr "" msgid "This is used in several places in the standard library, like this::" msgstr "" "Ceci est utilisé dans plusieurs endroit de la bibliothèque standard, de " -"cette façon::" +"cette façon ::" #: ../Doc/faq/programming.rst:919 msgid "Use :func:`locals` or :func:`eval` to resolve the function name::" msgstr "" -"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction::" +"Utilisez :func:`locals` ou :func:`eval` pour résoudre le nom de fonction ::" #: ../Doc/faq/programming.rst:932 msgid "" @@ -1397,7 +1397,7 @@ msgid "" "Use the :func:`reversed` built-in function, which is new in Python 2.4::" msgstr "" "Utilisez la fonction embarquée :func:`reversed`, qui est apparue en Python " -"2.4::" +"2.4 ::" #: ../Doc/faq/programming.rst:1104 msgid "" @@ -1409,7 +1409,7 @@ msgstr "" #: ../Doc/faq/programming.rst:1107 msgid "With Python 2.3, you can use an extended slice syntax::" -msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches::" +msgstr "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::" #: ../Doc/faq/programming.rst:1114 msgid "How do you remove duplicates from a list?" @@ -1432,7 +1432,7 @@ msgid "" msgstr "" "Si changer l'ordre de la liste ne vous dérange pas, commencez par trier " "celle ci, puis parcourez la d'un bout à l'autre, en supprimant les doublons " -"trouvés en chemin::" +"trouvés en chemin ::" #: ../Doc/faq/programming.rst:1132 msgid "" @@ -1457,7 +1457,7 @@ msgstr "Comment construire un tableau en Python?" #: ../Doc/faq/programming.rst:1144 msgid "Use a list::" -msgstr "Utilisez une liste::" +msgstr "Utilisez une liste ::" #: ../Doc/faq/programming.rst:1148 msgid "" @@ -1487,7 +1487,7 @@ msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" "Pour obtenir des listes chainées de type Lisp, vous pouvez émuler les \"cons " -"cells\" en utilisant des tuples::" +"cells\" en utilisant des tuples ::" #: ../Doc/faq/programming.rst:1160 msgid "" @@ -1510,7 +1510,7 @@ msgstr "Comment puis-je créer une liste à plusieurs dimensions?" msgid "You probably tried to make a multidimensional array like this::" msgstr "" "Vous avez probablement essayé de créer une liste à plusieurs dimensions de " -"cette façon::" +"cette façon ::" #: ../Doc/faq/programming.rst:1175 msgid "This looks correct if you print it:" @@ -1540,7 +1540,7 @@ msgid "" "then fill in each element with a newly created list::" msgstr "" "L'approche suggérée est de créer une liste de la longueur désiré d'abords, " -"puis de remplir tous les éléments avec une chaîne nouvellement créée." +"puis de remplir tous les éléments avec une chaîne nouvellement créée ::" #: ../Doc/faq/programming.rst:1210 msgid "" @@ -1548,7 +1548,7 @@ msgid "" "also use a list comprehension::" msgstr "" "Cette liste générée contient trois listes différentes de longueur deux. Vous " -"pouvez aussi utilisez la notation de compréhension de listes." +"pouvez aussi utilisez la notation de compréhension de listes ::" #: ../Doc/faq/programming.rst:1216 msgid "" @@ -1562,7 +1562,7 @@ msgstr "Comment appliquer une méthode à une séquence d'objets?" #: ../Doc/faq/programming.rst:1223 msgid "Use a list comprehension::" -msgstr "Utilisez une compréhension de liste::" +msgstr "Utilisez une compréhension de liste ::" #: ../Doc/faq/programming.rst:1230 msgid "" @@ -1769,7 +1769,7 @@ msgid "" msgstr "" "Une méthode est une fonction sur un objet ``x`` appelez normalement comme " "``x.name(arguments…)``. Les méthodes sont définies comme des fonctions à " -"l'intérieur de la définition de classe::" +"l'intérieur de la définition de classe ::" #: ../Doc/faq/programming.rst:1396 msgid "What is self?" @@ -1838,7 +1838,7 @@ msgid "" "just call it::" msgstr "" "Une meilleure approche est de définir une méthode ``search()`` sur toutes " -"les classes et qu'il suffit d'appeler::" +"les classes et qu'il suffit d'appeler ::" #: ../Doc/faq/programming.rst:1444 msgid "What is delegation?" @@ -1867,7 +1867,7 @@ msgid "" msgstr "" "Les programmeurs Python peuvent facilement mettre en œuvre la délégation. " "Par exemple, la classe suivante implémente une classe qui se comporte comme " -"un fichier, mais convertit toutes les données écrites en majuscules:" +"un fichier, mais convertit toutes les données écrites en majuscules ::" #: ../Doc/faq/programming.rst:1467 msgid "" @@ -1897,7 +1897,7 @@ msgstr "" "peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien " "que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, " "et il doit le faire avec soin. La mise en œuvre basique de la méthode :meth:" -"`__setattr__` est à peu près équivalent à ce qui suit:" +"`__setattr__` est à peu près équivalent à ce qui suit ::" #: ../Doc/faq/programming.rst:1485 msgid "" @@ -1955,7 +1955,7 @@ msgstr "" "votre classe. Ensuite, tout ce que vous devez changer est la valeur " "attribuée à l'alias. Incidemment, cette astuce est également utile si vous " "voulez décider dynamiquement (par exemple en fonction de la disponibilité " -"des ressources) la classe de base à utiliser. Exemple::" +"des ressources) la classe de base à utiliser. Exemple ::" #: ../Doc/faq/programming.rst:1523 msgid "How do I create static class data and static class methods?" @@ -1978,7 +1978,7 @@ msgid "" msgstr "" "Pour les données statiques, il suffit de définir un attribut de classe. Pour " "attribuer une nouvelle valeur à l'attribut, vous devez explicitement " -"utiliser le nom de classe dans l'affectation:" +"utiliser le nom de classe dans l'affectation ::" #: ../Doc/faq/programming.rst:1540 msgid "" @@ -2002,7 +2002,7 @@ msgstr "" "crée une nouvelle instance et sans rapport avec le nom \"count\" dans dans " "le dictionnaire de données de ``self``. La redéfinition d'une donnée " "statique de classe doit toujours spécifier la classe que l'on soit à " -"l'intérieur d'une méthode ou non:" +"l'intérieur d'une méthode ou non ::" #: ../Doc/faq/programming.rst:1551 msgid "Static methods are possible::" @@ -2014,7 +2014,7 @@ msgid "" "is via a simple module-level function::" msgstr "" "Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " -"méthode statique se fait par une simple fonction au niveau du module::" +"méthode statique se fait par une simple fonction au niveau du module ::" #: ../Doc/faq/programming.rst:1565 msgid "" @@ -2047,7 +2047,7 @@ msgid "" "using default arguments. For example::" msgstr "" "En Python, vous devez écrire un constructeur unique qui considère tous les " -"cas en utilisant des arguments par défaut. Par exemple::" +"cas en utilisant des arguments par défaut. Par exemple ::" #: ../Doc/faq/programming.rst:1594 msgid "This is not entirely equivalent, but close enough in practice." diff --git a/faq/windows.po b/faq/windows.po index e8d1ed84b..32570ee27 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -67,7 +67,7 @@ msgstr "" "ouvrir cette fenêtre depuis le menu Démarrer; sous windows 7, allez dans :" "Démarrer --> Programmes --> Accessoires --> Invite de commande. Vous serez " "dans la bonne fenêtre quand vous verrez une fenêtre invite de commande qui " -"ressemble normalement à ça ::" +"ressemble normalement à ça ::" #: ../Doc/faq/windows.rst:46 msgid "" @@ -110,7 +110,7 @@ msgstr "" "Tout d'abord, vous devez vous assurer que votre fenêtre d'invite de commande " "reconnaît le mot \"python\" comme une instruction pour démarrer " "l'interpréteur. Si vous avez ouvert une fenêtre de commande, entrez la " -"commande ``python``, puis appuyez sur la touche entrée.::" +"commande ``python``, puis appuyez sur la touche entrée ::" #: ../Doc/faq/windows.rst:67 msgid "You should then see something like::" diff --git a/glossary.po b/glossary.po index 1b3410479..4aad98b07 100644 --- a/glossary.po +++ b/glossary.po @@ -583,7 +583,7 @@ msgid "" "definitions are semantically equivalent::" msgstr "" "La syntaxe des décorateurs est simplement du sucre syntaxique, les " -"définitions des deux fonctions suivantes sont sémantiquement équivalentes :" +"définitions des deux fonctions suivantes sont sémantiquement équivalentes ::" #: ../Doc/glossary.rst:253 msgid "" @@ -2131,7 +2131,7 @@ msgstr "" "Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " "(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " "par des points) vers le module, incluant tous les paquets parents. Par " -"exemple : ``email.mime.text`` ::" +"exemple : ``email.mime.text`` ::" #: ../Doc/glossary.rst:906 msgid "reference count" diff --git a/install/index.po b/install/index.po index beebd01df..1e7b64234 100644 --- a/install/index.po +++ b/install/index.po @@ -550,7 +550,7 @@ msgstr "" "Python (ligne de commande)`. Un fois l'interpréteur démarré, vous taper du " "code Python à l'invite de commande. Par exemple, sur mon système Linux, je " "tape les trois instructions ci-dessous et obtient la sortie comme indiqué " -"pour trouver mes :file:`{prefix}` et :file:`{exec-prefix}`::" +"pour trouver mes :file:`{prefix}` et :file:`{exec-prefix}` ::" #: ../Doc/install/index.rst:296 msgid "" diff --git a/installing/index.po b/installing/index.po index 5c923b535..fb6a27af3 100644 --- a/installing/index.po +++ b/installing/index.po @@ -206,7 +206,7 @@ msgid "" "dependencies from the Python Packaging Index::" msgstr "" "La commande suivante va installer la dernière version d'un module et ses " -"dépendances depuis le *Python Package Index* ::" +"dépendances depuis le *Python Package Index* ::" #: ../Doc/installing/index.rst:92 msgid "" @@ -236,7 +236,7 @@ msgstr "" "Il est aussi possible de préciser une version minimum exacte directement " "depuis la ligne de commande. Utiliser des caractères de comparaison tel que " "``>``, ``<`` ou d'autres caractères spéciaux qui sont interprétés par le " -"shell, le nom du paquet et la version doivent être mis entre guillemets::" +"shell, le nom du paquet et la version doivent être mis entre guillemets ::" #: ../Doc/installing/index.rst:107 msgid "" @@ -375,7 +375,7 @@ msgid "" "switch::" msgstr "" "Sous Windows, utilisez le lanceur Python ``py`` en combinaison avec l'option " -"``-m`` ::" +"``-m`` ::" #: ../Doc/installing/index.rst:199 msgid "Common installation issues" diff --git a/library/2to3.po b/library/2to3.po index 0b3fd8e5c..5d307b431 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -53,7 +53,7 @@ msgstr "" #: ../Doc/library/2to3.rst:28 msgid "Here is a sample Python 2.x source file, :file:`example.py`::" -msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py`::" +msgstr "Voici un exemple de fichier source Python 2.x, :file:`example.py` ::" #: ../Doc/library/2to3.rst:36 msgid "It can be converted to Python 3.x code via 2to3 on the command line:" diff --git a/library/__main__.po b/library/__main__.po index 626326c29..888dec70a 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -42,7 +42,7 @@ msgstr "" "Un module peut découvrir s'il est exécuté dans le *scope* principal en " "vérifiant son ``__name__``, ce qui permet typiquement d'exécuter du code " "lorsque le module est exécuté avec ``python -m`` mais pas lorsqu'il est " -"importé." +"importé ::" #: ../Doc/library/__main__.rst:23 msgid "" diff --git a/library/_dummy_thread.po b/library/_dummy_thread.po index 937507ef4..26c78663d 100644 --- a/library/_dummy_thread.po +++ b/library/_dummy_thread.po @@ -39,7 +39,7 @@ msgstr "" #: ../Doc/library/_dummy_thread.rst:15 msgid "Suggested usage is::" -msgstr "Utilisation suggérée : " +msgstr "Utilisation suggérée ::" #: ../Doc/library/_dummy_thread.rst:22 msgid "" diff --git a/library/argparse.po b/library/argparse.po index cae87b160..25b43b529 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -58,7 +58,7 @@ msgid "" "produces either the sum or the max::" msgstr "" "Le code suivant est un programme Python acceptant une liste de nombre " -"entiers et en donnant soit la somme, soit le maximum::" +"entiers et en donnant soit la somme, soit le maximum ::" #: ../Doc/library/argparse.rst:47 msgid "" diff --git a/library/ast.po b/library/ast.po index e1d950638..9b8780bc3 100644 --- a/library/ast.po +++ b/library/ast.po @@ -290,7 +290,7 @@ msgstr "" #: ../Doc/library/ast.rst:240 msgid "Usually you use the transformer like this::" -msgstr "Utilisation typique du *transformer* ::" +msgstr "Utilisation typique du *transformer* ::" #: ../Doc/library/ast.rst:247 msgid "" diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index 870d063b6..c42b79fac 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -301,7 +301,7 @@ msgstr "" #: ../Doc/library/asyncio-dev.rst:231 msgid "Output::" -msgstr "Sortie::" +msgstr "Sortie ::" #: ../Doc/library/asyncio-dev.rst:244 msgid "" @@ -363,7 +363,7 @@ msgstr "" #: ../Doc/library/asyncio-dev.rst:365 msgid "Or without ``asyncio.ensure_future()``::" -msgstr "Ou sans ``asyncio.ensure_future()`` ::" +msgstr "Ou sans ``asyncio.ensure_future()`` ::" #: ../Doc/library/asyncio-dev.rst:379 msgid "Pending task destroyed" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 88493d6b3..f11699896 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -398,7 +398,7 @@ msgstr "" #: ../Doc/library/asyncio-stream.rst:416 msgid "or with HTTPS::" -msgstr "ou avec HTTPS ::" +msgstr "ou avec HTTPS ::" #: ../Doc/library/asyncio-stream.rst:423 msgid "Register an open socket to wait for data using streams" diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 386021b72..5cda8662f 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -553,7 +553,7 @@ msgstr "Exemple d'exécution de trois tâches (A, B, C) en parallèle : ::" #: ../Doc/library/asyncio-task.rst:482 msgid "Output::" -msgstr "Sortie::" +msgstr "Sortie ::" #: ../Doc/library/asyncio-task.rst:494 msgid "" diff --git a/library/atexit.po b/library/atexit.po index 09a267c18..4d70f882c 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -107,7 +107,7 @@ msgstr "" #: ../Doc/library/atexit.rst:101 msgid "Usage as a :term:`decorator`::" -msgstr "Utilisation en temps que :term:`decorator` ::" +msgstr "Utilisation en temps que :term:`decorator` ::" #: ../Doc/library/atexit.rst:109 msgid "This only works with functions that can be called without arguments." diff --git a/library/cmd.po b/library/cmd.po index 2a48efb74..46edb774f 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -434,7 +434,7 @@ msgstr "" "implémenté avec la méthode :meth:`~Cmd.precmd`, qui est responsable du " "passage de l'entrée en minuscules ainsi que d'écrire les commandes dans un " "fichier. La méthode :meth:`do_playback` lit le fichier et ajoute les " -"commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement::" +"commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement ::" #: ../Doc/library/cmd.rst:316 msgid "" diff --git a/library/datetime.po b/library/datetime.po index 4245025f1..4b1ef057a 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -245,7 +245,7 @@ msgstr "" #: ../Doc/library/datetime.rst:141 msgid "Subclass relationships::" -msgstr "Relations entre les sous-classes :" +msgstr "Relations entre les sous-classes ::" #: ../Doc/library/datetime.rst:155 msgid ":class:`timedelta` Objects" @@ -1095,7 +1095,7 @@ msgstr "" #: ../Doc/library/datetime.rst:619 msgid "Example of counting days to an event::" -msgstr "Exemple de décompte des jours avant un évènement :" +msgstr "Exemple de décompte des jours avant un évènement ::" #: ../Doc/library/datetime.rst:637 msgid "Example of working with :class:`date`:" diff --git a/library/dummy_threading.po b/library/dummy_threading.po index ea14b7f07..c0e11a42c 100644 --- a/library/dummy_threading.po +++ b/library/dummy_threading.po @@ -40,7 +40,7 @@ msgstr "" #: ../Doc/library/dummy_threading.rst:15 msgid "Suggested usage is::" -msgstr "Utilisation suggérée : " +msgstr "Utilisation suggérée ::" #: ../Doc/library/dummy_threading.rst:22 msgid "" diff --git a/library/functions.po b/library/functions.po index 624b547ba..9e78722ae 100644 --- a/library/functions.po +++ b/library/functions.po @@ -2069,7 +2069,7 @@ msgid "" "`os.open` function to open a file relative to a given directory::" msgstr "" "L'exemple suivant utilise le paramètre :ref:`dir_fd ` de la " -"fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" +"fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" #: ../Doc/library/functions.rst:1088 msgid "" @@ -2596,7 +2596,7 @@ msgstr "" "comme une simple fonction, et faire quelque chose de son résultat. Ça peut " "être nécessaire dans le cas où vous voudriez une référence à la fonction " "depuis le corps d'une classe, et souhaiteriez éviter sa transformation en " -"méthode d'instance. Pour ces cas, faites comme suit :" +"méthode d'instance. Pour ces cas, faites comme suit ::" #: ../Doc/library/functions.rst:1417 msgid "" diff --git a/library/functools.po b/library/functools.po index 1f16ad4ba..03da1bc69 100644 --- a/library/functools.po +++ b/library/functools.po @@ -173,7 +173,7 @@ msgstr "" #: ../Doc/library/functools.rst:83 msgid "Example of an LRU cache for static web content::" -msgstr "Exemple d'un cache LRU pour du contenu web statique ::" +msgstr "Exemple d'un cache LRU pour du contenu web statique ::" #: ../Doc/library/functools.rst:102 msgid "" @@ -184,7 +184,7 @@ msgstr "" "Exemple de calcul efficace de `la suite de Fibonacci `_ en utilisant un cache pour implémenter la " "technique de `programmation dynamique `_ ::" +"Programmation_dynamique>`_ ::" #: ../Doc/library/functools.rst:122 msgid "Added the *typed* option." @@ -249,7 +249,7 @@ msgstr "" "fonctionne comme *func* appelée avec les arguments positionels *args* et les " "arguments nommés *keywords*. Si plus d'arguments sont fournis à l'appel, ils " "sont ajoutés à *args*. Si plus d'arguments nommés sont fournis, ils étendent " -"et surchargent *keywords*. A peu près équivalent à ::" +"et surchargent *keywords*. A peu près équivalent à ::" #: ../Doc/library/functools.rst:186 msgid "" @@ -353,7 +353,7 @@ msgid "" msgstr "" "Pour définir une fonction générique, il faut la décorer avec le décorateur " "``@singledispatch``. Noter que la distribution est effectuée sur le type du " -"premier argument, donc la fonction doit être créée en conséquence ::" +"premier argument, donc la fonction doit être créée en conséquence ::" #: ../Doc/library/functools.rst:283 msgid "" @@ -365,7 +365,7 @@ msgstr "" "Pour ajouter des surcharges d'implémentation à la fonction, utiliser " "l'attribut :func:`register` de la fonction générique. C'est un décorateur, " "prenant un type en paramètre et décorant une fonction implémentant " -"l'opération pour ce type ::" +"l'opération pour ce type ::" #: ../Doc/library/functools.rst:301 msgid "" @@ -373,7 +373,7 @@ msgid "" "`register` attribute can be used in a functional form::" msgstr "" "Pour permettre l'enregistrement de lambdas et de fonctions pré-existantes, " -"l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" +"l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" #: ../Doc/library/functools.rst:309 msgid "" @@ -383,7 +383,7 @@ msgid "" msgstr "" "L'attribut :func:`register` renvoie la fonction non décorée ce qui permet " "d'empiler les décorateurs, la sérialisation, et la création de tests " -"unitaires pour chaque variante indépendamment ::" +"unitaires pour chaque variante indépendamment ::" #: ../Doc/library/functools.rst:323 msgid "" @@ -391,7 +391,7 @@ msgid "" "argument::" msgstr "" "Quand elle est appelée, la fonction générique distribue sur le type du " -"premier argument ::" +"premier argument ::" #: ../Doc/library/functools.rst:343 msgid "" @@ -412,7 +412,7 @@ msgid "" "type, use the ``dispatch()`` attribute::" msgstr "" "Pour vérifier quelle implémentation la fonction générique choisira pour un " -"type donné, utiliser l'attribut ``dispatch()`` ::" +"type donné, utiliser l'attribut ``dispatch()`` ::" #: ../Doc/library/functools.rst:357 msgid "" @@ -420,7 +420,7 @@ msgid "" "attribute::" msgstr "" "Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " -"en lecture seule ``registry`` ::" +"en lecture seule ``registry`` ::" #: ../Doc/library/functools.rst:374 msgid "" @@ -520,7 +520,7 @@ msgstr "" "Ceci est une fonction d'aide pour appeler :func:`update_wrapper` comme " "décorateur de fonction lors de la définition d'une fonction englobante. " "C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " -"assigned=assigned, updated=updated)``. Par exemple ::" +"assigned=assigned, updated=updated)``. Par exemple ::" #: ../Doc/library/functools.rst:444 msgid "" diff --git a/library/json.po b/library/json.po index 3f4d4d1dd..df4364c75 100644 --- a/library/json.po +++ b/library/json.po @@ -862,7 +862,7 @@ msgstr "" "La RFC ne permet pas la représentation des nombres infinis ou des *NaN*. " "Néanmoins, par défaut, ce module accepte et retranscrit ``Infinity``, ``-" "Infinity`` et ``NaN`` comme s'ils étaient des valeurs numériques littérales " -"JSON valides." +"JSON valides ::" #: ../Doc/library/json.rst:599 msgid "" diff --git a/library/os.po b/library/os.po index d34528b69..12b1b665b 100644 --- a/library/os.po +++ b/library/os.po @@ -3734,7 +3734,7 @@ msgstr "" "descripteur de fichier ouvert pour son paramètre *path*, utilisez " "l'opérateur ``in`` sur ``supports_fd``. Par exemple, cette expression " "détermine si :func:`os.chdir` accepte un descripteur de fichier ouvert quand " -"appelée sur votre plate-forme actuelle." +"appelée sur votre plate-forme actuelle ::" #: ../Doc/library/os.rst:2554 msgid "" diff --git a/library/pdb.po b/library/pdb.po index 49706ad7e..01a3d3113 100644 --- a/library/pdb.po +++ b/library/pdb.po @@ -77,7 +77,7 @@ msgid "" "example::" msgstr "" "Le fichier :file:`pdb.py` peut aussi être invoqué comme un script pour " -"déboguer d'autres scripts. Par exemple::" +"déboguer d'autres scripts. Par exemple ::" #: ../Doc/library/pdb.rst:54 msgid "" @@ -262,7 +262,7 @@ msgstr "" #: ../Doc/library/pdb.rst:166 msgid "Example call to enable tracing with *skip*::" -msgstr "Exemple d'appel pour activer le traçage avec *skip*::" +msgstr "Exemple d'appel pour activer le traçage avec *skip* ::" #: ../Doc/library/pdb.rst:170 msgid "The *skip* argument." @@ -530,7 +530,7 @@ msgid "" msgstr "" "Spécifie une liste de commandes pour le numéro du point d'arrêt *bpnumber*. " "Les commandes elles-mêmes apparaissent sur les lignes suivantes. Tapez une " -"ligne contenant juste ``end`` pour terminer les commandes. Un exemple::" +"ligne contenant juste ``end`` pour terminer les commandes. Un exemple ::" #: ../Doc/library/pdb.rst:325 msgid "" @@ -801,7 +801,7 @@ msgid "" "file:`.pdbrc` file)::" msgstr "" "Comme un exemple, voici deux alias utiles (spécialement quand il est placé " -"dane le fichier :file:`.pdbrc`)::" +"dane le fichier :file:`.pdbrc`) ::" #: ../Doc/library/pdb.rst:490 msgid "Delete the specified alias." @@ -819,7 +819,7 @@ msgstr "" "de la pile courante. Le point d'exclamation peut être omis à moins que le " "premier mot de l'instruction ne ressemble à une commande de débogueur. Pour " "définir une variable globale, vous pouvez préfixer la commande d'assignation " -"avec une instruction :keyword:`global` sur la même ligne, par exemple::" +"avec une instruction :keyword:`global` sur la même ligne, par exemple ::" #: ../Doc/library/pdb.rst:506 msgid "" diff --git a/library/stdtypes.po b/library/stdtypes.po index 354813012..ad44a2cac 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -1080,7 +1080,7 @@ msgstr "" "Notez que l'exposant est écrit en décimal plutôt qu'en hexadécimal, et qu'il " "donne la puissance de 2 par lequel multiplier le coefficient. Par exemple, " "la chaîne hexadécimale ``0x3.a7p10`` représente le nombre à virgule " -"flottante ``(3 + 10./16 + 7./16**2) *2.0**10``, ou ``3740.0`` ::" +"flottante ``(3 + 10./16 + 7./16**2) *2.0**10``, ou ``3740.0`` ::" #: ../Doc/library/stdtypes.rst:614 msgid "" @@ -1088,7 +1088,7 @@ msgid "" "string representing the same number::" msgstr "" "L'application de la conversion inverse à ``3740.0`` donne une chaîne " -"hexadécimale différente représentant le même nombre ::" +"hexadécimale différente représentant le même nombre ::" #: ../Doc/library/stdtypes.rst:624 msgid "Hashing of numeric types" @@ -1200,7 +1200,7 @@ msgid "" msgstr "" "Afin de clarifier les règles ci-dessus, voici quelques exemples de code " "Python, équivalent à la fonction de hachage native, pour calculer le hachage " -"d'un nombre rationnel, d'un :class:`float`, ou d'un :class:`complex` ::" +"d'un nombre rationnel, d'un :class:`float`, ou d'un :class:`complex` ::" #: ../Doc/library/stdtypes.rst:727 msgid "Iterator Types" @@ -2247,7 +2247,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:1281 msgid "Range examples::" -msgstr "Exemples avec *range* ::" +msgstr "Exemples avec *range* ::" #: ../Doc/library/stdtypes.rst:1298 msgid "" @@ -2706,7 +2706,7 @@ msgid "" msgstr "" "La méthode :meth:`~str.find` ne doit être utilisée que si vous avez besoin " "de connaître la position de *sub*. Pour vérifier si *sub* est une sous " -"chaine ou non, utilisez l'opérateur :keyword:`in` ::" +"chaine ou non, utilisez l'opérateur :keyword:`in` ::" #: ../Doc/library/stdtypes.rst:1589 msgid "" @@ -2974,7 +2974,7 @@ msgstr "" "*chars* est une chaîne spécifiant le jeu de caractères à supprimer. En cas " "d'omission ou ``None``, la valeur par défaut de *chars* permet de supprimer " "des espaces. L'argument *chars* n'est pas un préfixe, toutes les " -"combinaisons de ses valeurs sont supprimées ::" +"combinaisons de ses valeurs sont supprimées ::" #: ../Doc/library/stdtypes.rst:1770 msgid "" @@ -4216,7 +4216,7 @@ msgid "" msgstr "" "Les méthodes sur les *bytes* et les *bytearray* n'acceptent pas les chaînes " "comme arguments, tout comme les méthodes sur les chaînes n'acceptent pas les " -"*bytes* comme arguments. Par exemple, vous devez écrire ::" +"*bytes* comme arguments. Par exemple, vous devez écrire ::" #: ../Doc/library/stdtypes.rst:2456 msgid "and::" @@ -4347,7 +4347,7 @@ msgid "" msgstr "" "La méthode :meth:`~bytes.find` ne doit être utilisée que si vous avez besoin " "de connaître la position de *sub*. Pour vérifier si *sub* est présent ou " -"non, utilisez l'opérateur :keyword:`in` ::" +"non, utilisez l'opérateur :keyword:`in` ::" #: ../Doc/library/stdtypes.rst:2545 msgid "" @@ -4572,7 +4572,7 @@ msgstr "" "utilisée avec des caractères ASCII. En cas d’omission ou ``None``, la valeur " "par défaut de *chars* permet de supprimer des espaces ASCII. L’argument " "*chars* n’est pas un préfixe, toutes les combinaisons de ses valeurs sont " -"supprimées ::" +"supprimées ::" #: ../Doc/library/stdtypes.rst:2728 ../Doc/library/stdtypes.rst:2777 #: ../Doc/library/stdtypes.rst:2847 @@ -5095,7 +5095,7 @@ msgid "" "dimensional slicing will result in a subview::" msgstr "" "Une :class:`memoryview` autorise le découpage et l'indicage de ses données. " -"Découper sur une dimension donnera une sous-vue::" +"Découper sur une dimension donnera une sous-vue ::" #: ../Doc/library/stdtypes.rst:3407 msgid "" @@ -5118,7 +5118,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3416 msgid "Here is an example with a non-byte format::" -msgstr "Voici un exemple avec un autre format que *byte*::" +msgstr "Voici un exemple avec un autre format que *byte* ::" #: ../Doc/library/stdtypes.rst:3428 msgid "" @@ -5127,7 +5127,7 @@ msgid "" msgstr "" "Si l'objet sous-jacent est accessible en écriture, la *memoryview* " "autorisera les assignations de tranches à une dimension. Redimensionner " -"n'est cependant pas autorisé::" +"n'est cependant pas autorisé ::" #: ../Doc/library/stdtypes.rst:3449 msgid "" @@ -5137,7 +5137,7 @@ msgid "" msgstr "" "Les *memoryviews* à une dimension de types hachables (lecture seule) avec " "les formats 'B', 'b', ou 'c' sont aussi hachables. La fonction de hachage " -"est définie tel que ``hash(m) == hash(m.tobytes())``::" +"est définie tel que ``hash(m) == hash(m.tobytes())`` ::" #: ../Doc/library/stdtypes.rst:3461 msgid "" @@ -5182,7 +5182,7 @@ msgid "" "`tolist`, ``v`` and ``w`` are equal if ``v.tolist() == w.tolist()``::" msgstr "" "Pour le sous-ensemble des formats de :mod:`struct` supportés par :meth:" -"`tolist`, ``v`` et ``w`` sont égaux si ``v.tolist() ==w.tolist()`` ::" +"`tolist`, ``v`` et ``w`` sont égaux si ``v.tolist() ==w.tolist()`` ::" #: ../Doc/library/stdtypes.rst:3499 msgid "" @@ -5379,7 +5379,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:3757 msgid "The size in bytes of each element of the memoryview::" -msgstr "La taille en octets de chaque élément d'une *memoryview*::" +msgstr "La taille en octets de chaque élément d'une *memoryview* ::" #: ../Doc/library/stdtypes.rst:3770 msgid "" @@ -5899,7 +5899,7 @@ msgstr "" "autre opération ni méthode n'appellent :meth:`__missing__`. If :meth:" "`__missing__` n'est pas définie, une exception :exc:`KeyError` est levée. :" "meth:`__missing__` doit être une méthode; ça ne peut être une variable " -"d'instance." +"d'instance ::" #: ../Doc/library/stdtypes.rst:4108 msgid "" @@ -6460,7 +6460,7 @@ msgstr "" "attributs à des objets *bound method* est interdit. Toute tentative " "d'affecter un attribut sur un objet *bound method* lèvera une :exc:" "`AttributeError`. Pour affecter l'attribut, vous devrez explicitement " -"l'affecter à sa fonction sous-jascente::" +"l'affecter à sa fonction sous-jascente ::" #: ../Doc/library/stdtypes.rst:4460 ../Doc/library/stdtypes.rst:4488 msgid "See :ref:`types` for more information." diff --git a/library/sys.po b/library/sys.po index 78dc4a055..bf5ade816 100644 --- a/library/sys.po +++ b/library/sys.po @@ -240,7 +240,7 @@ msgstr "" #: ../Doc/library/sys.rst:145 msgid "Pseudo-code::" -msgstr "Pseudo-code::" +msgstr "Pseudo-code ::" #: ../Doc/library/sys.rst:165 msgid "Use ``'backslashreplace'`` error handler on :exc:`UnicodeEncodeError`." @@ -762,7 +762,7 @@ msgstr "" "L'attribut :attr:`sys.float_info.dig` nécessite plus d'explications : Si " "``s`` est une chaîne représentant un nombre décimal avec au plus :attr:`sys." "float_info.dig` chiffres significatifs, alors, convertir ``s`` en un nombre " -"à virgule flottante puis à nouveau en chaîne redonnera la même valeure." +"à virgule flottante puis à nouveau en chaîne redonnera la même valeure ::" #: ../Doc/library/sys.rst:372 msgid "" diff --git a/library/tracemalloc.po b/library/tracemalloc.po index 16b18c55e..15b16e86b 100644 --- a/library/tracemalloc.po +++ b/library/tracemalloc.po @@ -703,4 +703,4 @@ msgstr "Exemples ::" #: ../Doc/library/tracemalloc.rst:668 msgid "Output::" -msgstr "Sortie::" +msgstr "Sortie ::" diff --git a/license.po b/license.po index 381d7b2a9..27c3ee9d4 100644 --- a/license.po +++ b/license.po @@ -288,7 +288,7 @@ msgid "" msgstr "" "Le module :mod:`_random` inclu du code construit à partir d'un " "téléchargement depuis http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/MT2002/" -"emt19937ar.html. Voici mot pour mot les commentaires du code original::" +"emt19937ar.html. Voici mot pour mot les commentaires du code original ::" #: ../Doc/license.rst:318 msgid "Sockets" @@ -310,7 +310,7 @@ msgstr "Virgule flottante et contrôle d'exception" #: ../Doc/license.rst:355 msgid "The source for the :mod:`fpectl` module includes the following notice::" -msgstr "Le code source pour le module :mod:`fpectl` inclu la note suivante::" +msgstr "Le code source pour le module :mod:`fpectl` inclu la note suivante ::" #: ../Doc/license.rst:395 msgid "Asynchronous socket services" @@ -346,7 +346,7 @@ msgstr "Les fonctions UUencode et UUdecode" #: ../Doc/license.rst:485 msgid "The :mod:`uu` module contains the following notice::" -msgstr "Le module :mod:`uu` contient la note suivante:" +msgstr "Le module :mod:`uu` contient la note suivante ::" #: ../Doc/license.rst:513 msgid "XML Remote Procedure Calls" @@ -355,7 +355,7 @@ msgstr "" #: ../Doc/license.rst:515 msgid "The :mod:`xmlrpc.client` module contains the following notice::" -msgstr "Le module :mod:`xmlrpc.client` contient la note suivante::" +msgstr "Le module :mod:`xmlrpc.client` contient la note suivante ::" #: ../Doc/license.rst:546 msgid "test_epoll" @@ -427,7 +427,7 @@ msgstr "" "est disponible via le système d'exploitation. Aussi les outils " "d'installation sur Windows et Mac OS X peuvent inclure une copie des " "bibliothèques d'OpenSSL, donc on colle une copie de la licence d'OpenSSL " -"ici::" +"ici ::" #: ../Doc/license.rst:799 msgid "expat" @@ -439,7 +439,7 @@ msgid "" "sources unless the build is configured ``--with-system-expat``::" msgstr "" "Le module :mod:`pyexpat` est compilé avec une copie des sources d'*expat*, " -"sauf si la compilation est configurée avec ``--with-system-expat``::" +"sauf si la compilation est configurée avec ``--with-system-expat`` ::" #: ../Doc/license.rst:828 msgid "libffi" @@ -452,7 +452,7 @@ msgid "" msgstr "" "Le module :mod:`_ctypes` est compilé en utilisant une copie des sources de " "la *libffi*, sauf si la compilation est configurée avec ``--with-system-" -"libffi``::" +"libffi`` ::" #: ../Doc/license.rst:857 msgid "zlib" @@ -466,7 +466,7 @@ msgid "" msgstr "" "Le module :mod:`zlib` est compilé en utilisant une copie du code source de " "*zlib* si la version de *zlib* trouvée sur le système est trop vieille pour " -"être utilisée::" +"être utilisée ::" #: ../Doc/license.rst:888 msgid "cfuhash" @@ -478,7 +478,7 @@ msgid "" "on the cfuhash project::" msgstr "" "L'implémentation des dictionnaires, utilisée par le module :mod:" -"`tracemalloc` est basée sur le projet *cfuhash*::" +"`tracemalloc` est basée sur le projet *cfuhash* ::" #: ../Doc/license.rst:929 msgid "libmpdec" @@ -492,4 +492,4 @@ msgid "" msgstr "" "Le module :mod:`_decimal` est construit en incluant une copie de la " "bibliothèque *libmpdec*, sauf si elle est compilée avec ``--with-system-" -"libmpdec``::" +"libmpdec`` ::" diff --git a/tutorial/classes.po b/tutorial/classes.po index 6fb74600d..381219bc0 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -673,7 +673,7 @@ msgstr "Objets méthode" #: ../Doc/tutorial/classes.rst:362 msgid "Usually, a method is called right after it is bound::" -msgstr "Le plus souvent, une méthode est appelée juste après avoir été liée::" +msgstr "Le plus souvent, une méthode est appelée juste après avoir été liée ::" #: ../Doc/tutorial/classes.rst:366 msgid "" @@ -685,7 +685,7 @@ msgstr "" "Dans l'exemple de la classe :class:`MyClass`, cela renvoie la chaîne de " "caractères ``hello world``. Toutefois, il n'est pas nécessaire d'appeler la " "méthode directement: ``x.f`` est un objet méthode, il peut être gardé de " -"coté et être appelé plus tard. Par exemple::" +"coté et être appelé plus tard. Par exemple ::" #: ../Doc/tutorial/classes.rst:374 msgid "will continue to print ``hello world`` until the end of time." @@ -1253,7 +1253,7 @@ msgid "" "over using a :keyword:`for` statement::" msgstr "" "Vous avez maintenant certainement remarqué que l'on peut itérer sur la " -"plupart des objets conteneurs en utilisant une instruction :keyword:`for` ::" +"plupart des objets conteneurs en utilisant une instruction :keyword:`for` ::" #: ../Doc/tutorial/classes.rst:772 msgid "" @@ -1410,7 +1410,7 @@ msgstr "" #~ "statement::" #~ msgstr "" #~ "Il y a deux nouvelles formes (sémantiques) pour l'instruction :keyword:" -#~ "`raise` ::" +#~ "`raise` ::" #~ msgid "" #~ "In the first form, ``Class`` must be an instance of :class:`type` or of a " diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index fc515702a..796eb0eda 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -386,7 +386,7 @@ msgstr "" "d'une primitive). Écrire la valeur ``None`` est normalement supprimé par " "l'interpréteur lorsqu'il s'agit de la seule valeur qui doit être écrite. " "Vous pouvez le constater, si vous y tenez vraiment, en utilisant :func:" -"`print` ::" +"`print` ::" #: ../Doc/tutorial/controlflow.rst:315 msgid "" @@ -600,7 +600,7 @@ msgstr "" "dans la section suivante) qui lui reçoit un tuple contenant les arguments " "positionnés au-delà de la liste des paramètres formels (``*name`` doit être " "présent avant ``**name``). Par exemple, si vous définissez une fonction " -"comme ceci :" +"comme ceci ::" #: ../Doc/tutorial/controlflow.rst:498 msgid "It could be called like this::" @@ -674,7 +674,7 @@ msgid "" "``**``\\ -operator::" msgstr "" "De la même façon, les dictionnaires peuvent fournir des arguments nommés en " -"utilisant l'opérateur ``**`` ::" +"utilisant l'opérateur ``**`` ::" #: ../Doc/tutorial/controlflow.rst:591 msgid "Lambda Expressions" @@ -706,7 +706,7 @@ msgid "" msgstr "" "L'exemple précédent utilise une fonction anonyme pour renvoyer une fonction. " "Une autre utilisation classique est de donner une fonction minimaliste " -"directement en temps que paramètre::" +"directement en temps que paramètre ::" #: ../Doc/tutorial/controlflow.rst:622 msgid "Documentation Strings" @@ -872,6 +872,7 @@ msgstr "" "Vous facilitez ainsi la lecture pour les utilisateurs qui n'ont qu'un petit " "écran et, pour les autres, cela leur permet de visualiser plusieurs fichiers " "côte à côte." + #: ../Doc/tutorial/controlflow.rst:733 msgid "" "Use blank lines to separate functions and classes, and larger blocks of code " diff --git a/tutorial/errors.po b/tutorial/errors.po index 855ab45c1..c80f60bac 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -249,7 +249,7 @@ msgstr "" "précautions car il est facile de masquer une vraie erreur de programmation " "par ce biais. Elle peut aussi être utilisée pour afficher un message " "d'erreur avant de propager l'exception (en permettant à un appelant de gérer " -"également l'exception) ::" +"également l'exception) ::" #: ../Doc/tutorial/errors.rst:169 msgid "" diff --git a/tutorial/floatingpoint.po b/tutorial/floatingpoint.po index 9af9c5d6d..d81009be3 100644 --- a/tutorial/floatingpoint.po +++ b/tutorial/floatingpoint.po @@ -192,7 +192,7 @@ msgid "" msgstr "" "Pour obtenir un affichage plus plaisant, les fonctions de formatage de " "chaînes de caractères peuvent limiter le nombre de décimales significatives " -"affichées::" +"affichées ::" #: ../Doc/tutorial/floatingpoint.rst:111 msgid "" diff --git a/tutorial/interpreter.po b/tutorial/interpreter.po index 7090d1e67..ef63c40d4 100644 --- a/tutorial/interpreter.po +++ b/tutorial/interpreter.po @@ -209,7 +209,7 @@ msgid "" "example, take a look at this :keyword:`if` statement::" msgstr "" "Les lignes de continuation sont nécessaires pour entrer une construction " -"multi-lignes. Par exemple, regardez cette instruction :keyword:`if` ::" +"multi-lignes. Par exemple, regardez cette instruction :keyword:`if` ::" #: ../Doc/tutorial/interpreter.rst:119 msgid "For more on interactive mode, see :ref:`tut-interac`." @@ -298,7 +298,7 @@ msgstr "" #~ "Il est possible d'utiliser un autre encodage dans un fichier source " #~ "Python. La meilleure façon de faire est de placer un commentaire spécial " #~ "supplémentaire juste après le ``#!`` pour définir l'encodage du fichier " -#~ "source::" +#~ "source ::" #~ msgid "" #~ "With that declaration, everything in the source file will be treated as " diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 3e7137f33..4b3aee9e3 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -259,7 +259,7 @@ msgid "" "repeated with ``*``::" msgstr "" "Les chaînes peuvent être concaténées (collées ensemble) avec l'opérateur ``" -"+`` et répétées avec l'opérateur ``*``::" +"+`` et répétées avec l'opérateur ``*`` ::" #: ../Doc/tutorial/introduction.rst:209 msgid "" @@ -299,7 +299,7 @@ msgstr "" "Les chaînes de caractères peuvent être indexées (i.e. on peut accéder aux " "caractères par leur position), le premier caractère d'une chaîne étant à la " "position 0. Il n'existe pas de type distinct pour les caractères, un " -"caractère est simplement une chaîne de longueur 1.::" +"caractère est simplement une chaîne de longueur 1 ::" #: ../Doc/tutorial/introduction.rst:247 msgid "" diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index a9350f9b8..b9cfa41da 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -219,8 +219,8 @@ msgid "" "`zipfile` and :mod:`tarfile`. ::" msgstr "" "Les formats d'archivage et de compression les plus communs sont directement " -"gérés par les modules :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :mod:" -"`zipfile` et :mod:`tarfile` ::" +"gérés par les modules :mod:`zlib`, :mod:`gzip`, :mod:`bz2`, :mod:`lzma`, :" +"mod:`zipfile` et :mod:`tarfile` ::" #: ../Doc/tutorial/stdlib.rst:240 msgid "Performance Measurement" diff --git a/tutorial/venv.po b/tutorial/venv.po index 953bf38ec..1e64e4eb9 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -9,11 +9,11 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2016-10-30 10:40+0100\n" "PO-Revision-Date: 2018-02-17 14:54+0100\n" +"Last-Translator: \n" +"Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" -"Language-Team: \n" "X-Generator: Poedit 2.0.2\n" #: ../Doc/tutorial/venv.rst:6 diff --git a/using/cmdline.po b/using/cmdline.po index 3068c9961..dbc631a84 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -45,7 +45,7 @@ msgstr "Ligne de commande" msgid "When invoking Python, you may specify any of these options::" msgstr "" "Quand vous invoquez Python, vous pouvez spécifier n’importe laquelle de ces " -"options :" +"options ::" #: ../Doc/using/cmdline.rst:29 msgid "" diff --git a/whatsnew/2.0.po b/whatsnew/2.0.po index 927f4de2d..da74a4c85 100644 --- a/whatsnew/2.0.po +++ b/whatsnew/2.0.po @@ -9,12 +9,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-21 09:15+0200\n" "PO-Revision-Date: 2017-09-22 10:11+0200\n" +"Last-Translator: \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" -"Language-Team: \n" "X-Generator: Poedit 2.0.4\n" #: ../Doc/whatsnew/2.0.rst:3 diff --git a/whatsnew/2.3.po b/whatsnew/2.3.po index 6b112f24b..305c5bf0d 100644 --- a/whatsnew/2.3.po +++ b/whatsnew/2.3.po @@ -499,7 +499,7 @@ msgstr "" #: ../Doc/whatsnew/2.3.rst:475 ../Doc/whatsnew/2.3.rst:500 msgid "This produces the following output::" -msgstr "Ceci produit l’affichage suivant :" +msgstr "Ceci produit l’affichage suivant ::" #: ../Doc/whatsnew/2.3.rst:481 msgid "" diff --git a/whatsnew/2.6.po b/whatsnew/2.6.po index 6f4738b6e..e0d1dbae1 100644 --- a/whatsnew/2.6.po +++ b/whatsnew/2.6.po @@ -689,7 +689,7 @@ msgstr "" #: ../Doc/whatsnew/2.6.rst:642 msgid "This produces the following output::" -msgstr "Ceci produit l’affichage suivant :" +msgstr "Ceci produit l’affichage suivant ::" #: ../Doc/whatsnew/2.6.rst:651 msgid "" diff --git a/whatsnew/3.0.po b/whatsnew/3.0.po index c9094e32a..88c2c1ee6 100644 --- a/whatsnew/3.0.po +++ b/whatsnew/3.0.po @@ -9,12 +9,12 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-21 09:15+0200\n" "PO-Revision-Date: 2017-09-22 10:11+0200\n" +"Last-Translator: \n" +"Language-Team: \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" -"Language-Team: \n" "X-Generator: Poedit 2.0.4\n" #: ../Doc/whatsnew/3.0.rst:3 From e878d342940affbc980f8eb9509fdc8b579f3cb5 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Wed, 21 Mar 2018 00:00:20 +0100 Subject: [PATCH 029/115] Reindenting po files. --- glossary.po | 7 ++-- tutorial/appendix.po | 65 +++++++++++++++--------------- tutorial/datastructures.po | 4 +- tutorial/errors.po | 18 ++++----- tutorial/modules.po | 44 ++++++++++---------- tutorial/stdlib.po | 82 ++++++++++++++++++++------------------ tutorial/whatnow.po | 4 +- 7 files changed, 113 insertions(+), 111 deletions(-) diff --git a/glossary.po b/glossary.po index 4aad98b07..b452382db 100644 --- a/glossary.po +++ b/glossary.po @@ -98,10 +98,9 @@ msgstr "" "même reconnues par :func:`isinstance` ou :func:`issubclass` (voir la " "documentation du module :mod:`abc`). Python contient de nombreuses ABC pour " "les structures de données (dans le module :mod:`collections.abc`), les " -"nombres (dans le module :mod:`numbers`), les flux (dans le module :mod:" -"`io`) et les chercheurs / chargeurs d'import (dans le module :mod:" -"`importlib.abc`). Vous pouvez créer vos propres ABC avec le module :mod:" -"`abc`." +"nombres (dans le module :mod:`numbers`), les flux (dans le module :mod:`io`) " +"et les chercheurs / chargeurs d'import (dans le module :mod:`importlib." +"abc`). Vous pouvez créer vos propres ABC avec le module :mod:`abc`." #: ../Doc/glossary.rst:41 msgid "argument" diff --git a/tutorial/appendix.po b/tutorial/appendix.po index e49545a8e..d2b44b836 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -41,18 +41,17 @@ msgid "" "messages are written to the standard error stream; normal output from " "executed commands is written to standard output." msgstr "" -"Quand une erreur se produit, l'interpréteur affiche un message d'erreur et la " -"trace d'appels. En mode interactif, il revient à l'invite de commande " +"Quand une erreur se produit, l'interpréteur affiche un message d'erreur et " +"la trace d'appels. En mode interactif, il revient à l'invite de commande " "primaire ; si l'entrée provient d'un fichier, l'interpréteur se termine avec " "un code de sortie non nul après avoir affiché la trace d'appels (les " -"exceptions gérées par une clause :keyword:`except` dans une instruction " -":keyword:`try` ne sont pas considérées comme des erreurs dans ce contexte). " +"exceptions gérées par une clause :keyword:`except` dans une instruction :" +"keyword:`try` ne sont pas considérées comme des erreurs dans ce contexte). " "Certaines erreurs sont inconditionnellement fatales et provoquent la fin du " -"programme avec un code de sortie non nul ; " -"les incohérences internes et, dans certains cas, les pénuries de mémoire " -"sont traitées de la sorte. Tous les messages d'erreur sont écrits sur le flux " -"d'erreur standard ; l'affichage normal des commandes " -"exécutées est écrit sur la sortie standard." +"programme avec un code de sortie non nul ; les incohérences internes et, " +"dans certains cas, les pénuries de mémoire sont traitées de la sorte. Tous " +"les messages d'erreur sont écrits sur le flux d'erreur standard ; " +"l'affichage normal des commandes exécutées est écrit sur la sortie standard." #: ../Doc/tutorial/appendix.rst:28 msgid "" @@ -90,8 +89,8 @@ msgid "" "``'#'``, is used to start a comment in Python." msgstr "" "(en supposant que l'interpréteur est dans le :envvar:`PATH` de " -"l'utilisateur) au début du script et en rendant le fichier exécutable. ``'#!'" -"`` doivent être les deux premiers caractères du fichier. Sur certaines " +"l'utilisateur) au début du script et en rendant le fichier exécutable. " +"``'#!'`` doivent être les deux premiers caractères du fichier. Sur certaines " "plateformes, cette première ligne doit finir avec une fin de ligne de type " "Unix (``'\\n'``) et pas de type Windows (``'\\r\\n'``). Notez que le " "caractère dièse, ``'#'``, est utilisé pour initier un commentaire en Python." @@ -113,8 +112,8 @@ msgid "" "normally appears is suppressed." msgstr "" "Sur les système Windows il n'y a pas de \"mode exécutable\". L'installateur " -"Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` de " -"telle sorte qu'un double clic sur un fichier Python le lance comme un " +"Python associe automatiquement les fichiers en ``.py`` avec ``python.exe`` " +"de telle sorte qu'un double clic sur un fichier Python le lance comme un " "script. L'extension peut aussi être ``.pyw``. Dans ce cas, la console " "n'apparait pas." @@ -131,10 +130,10 @@ msgid "" "the :file:`.profile` feature of the Unix shells." msgstr "" "En mode interactif, il peut être pratique de faire exécuter quelques " -"commandes au lancement de l’interpréteur. Configurez la " -"variable d'environnement :envvar:`PYTHONSTARTUP` avec le nom d'un fichier " -"contenant les instructions à exécuter, à la même manière du :file:`.profile` " -"pour un shell Unix." +"commandes au lancement de l’interpréteur. Configurez la variable " +"d'environnement :envvar:`PYTHONSTARTUP` avec le nom d'un fichier contenant " +"les instructions à exécuter, à la même manière du :file:`.profile` pour un " +"shell Unix." #: ../Doc/tutorial/appendix.rst:77 msgid "" @@ -149,11 +148,11 @@ msgstr "" "Ce fichier n'est lu qu'en mode interactif, pas quand Python lit les " "instructions depuis un fichier, ni quand :file:`/dev/tty` est donné " "explicitement comme fichier source (pour tout le reste, Python se comporte " -"alors comme dans une session interactive). Les instructions de ce fichier sont " -"exécutées dans le même espace de noms que vos commandes, donc les objets " -"définis et modules importés peuvent être utilisés directement dans la session " -"interactive. Dans ce fichier, il est aussi possible de changer les invites de " -"commande ``sys.ps1`` et ``sys.ps2``." +"alors comme dans une session interactive). Les instructions de ce fichier " +"sont exécutées dans le même espace de noms que vos commandes, donc les " +"objets définis et modules importés peuvent être utilisés directement dans la " +"session interactive. Dans ce fichier, il est aussi possible de changer les " +"invites de commande ``sys.ps1`` et ``sys.ps2``." #: ../Doc/tutorial/appendix.rst:85 msgid "" @@ -163,11 +162,11 @@ msgid "" "want to use the startup file in a script, you must do this explicitly in the " "script::" msgstr "" -"Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, vous " -"pouvez le programmer dans le fichier de démarrage global, par exemple avec le " -"code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('.pythonrc." -"py').read())``. Et si vous voulez exécuter le fichier de démarrage depuis un " -"script, vous devez le faire explicitement dans le script : ::" +"Si vous voulez exécuter d'autres fichiers du dossier courant au démarrage, " +"vous pouvez le programmer dans le fichier de démarrage global, par exemple " +"avec le code suivant : ``if os.\"\"path.isfile('.pythonrc.py'): exec(open('." +"pythonrc.py').read())``. Et si vous voulez exécuter le fichier de démarrage " +"depuis un script, vous devez le faire explicitement dans le script : ::" #: ../Doc/tutorial/appendix.rst:102 msgid "The Customization Modules" @@ -182,8 +181,8 @@ msgid "" msgstr "" "Python peut être personnalisé *via* les modules :mod:`sitecustomize` et :mod:" "`usercustomize`. Pour découvrir comment ils fonctionnent, vous devez d'abord " -"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. Démarrez " -"Python et exécutez ce code : ::" +"trouver l'emplacement de votre dossier \"site-packages\" utilisateur. " +"Démarrez Python et exécutez ce code : ::" #: ../Doc/tutorial/appendix.rst:112 msgid "" @@ -192,10 +191,10 @@ msgid "" "unless it is started with the :option:`-s` option to disable the automatic " "import." msgstr "" -"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y écrire " -"ce que vous voulez. Il est toujours pris en compte par Python, peu importe le " -"mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui désactive " -"l'import automatique." +"Vous pouvez maintenant y créer un fichier :file:`usercustomize.py` et y " +"écrire ce que vous voulez. Il est toujours pris en compte par Python, peu " +"importe le mode, sauf lorsque vous démarrez avec l'option :option:`-s` qui " +"désactive l'import automatique." #: ../Doc/tutorial/appendix.rst:116 msgid "" diff --git a/tutorial/datastructures.po b/tutorial/datastructures.po index 53fe9d42b..784f2f8f6 100644 --- a/tutorial/datastructures.po +++ b/tutorial/datastructures.po @@ -68,8 +68,8 @@ msgstr "" #: ../Doc/tutorial/datastructures.rst:43 msgid "" -"Remove the first item from the list whose value is *x*. It is an " -"error if there is no such item." +"Remove the first item from the list whose value is *x*. It is an error if " +"there is no such item." msgstr "" "Supprime de la liste le premier élément dont la valeur est égale à *x*. Une " "exception est levée s'il n'existe aucun élément avec cette valeur." diff --git a/tutorial/errors.po b/tutorial/errors.po index c80f60bac..10e4f372a 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -179,9 +179,9 @@ msgid "" "keyword:`except` keyword, the except clause is executed, and then execution " "continues after the :keyword:`try` statement." msgstr "" -"si une exception intervient pendant l'exécution de la clause ``try``, le reste " -"de cette clause est sauté. Si le type d'exception levée correspond à un nom " -"indiqué après le mot-clé :keyword:`except`, la clause ``except`` " +"si une exception intervient pendant l'exécution de la clause ``try``, le " +"reste de cette clause est sauté. Si le type d'exception levée correspond à " +"un nom indiqué après le mot-clé :keyword:`except`, la clause ``except`` " "correspondante est exécutée, puis l'exécution continue après l'instruction :" "keyword:`try` ;" @@ -211,8 +211,8 @@ msgstr "" "gestionnaire, au plus, sera exécuté. Les gestionnaires ne prennent en charge " "que les exceptions qui interviennent dans la clause `try` correspondante, " "pas dans d'autres gestionnaires de la même instruction :keyword:`try`. Mais " -"une même clause ``except`` peut citer plusieurs exceptions sous la forme d'un " -"tuple entre parenthèses, comme dans cet exemple : ::" +"une même clause ``except`` peut citer plusieurs exceptions sous la forme " +"d'un tuple entre parenthèses, comme dans cet exemple : ::" #: ../Doc/tutorial/errors.rst:123 msgid "" @@ -512,7 +512,7 @@ msgid "" "files, provide predefined clean-up actions will indicate this in their " "documentation." msgstr "" -"Après l'exécution du bloc, le fichier *f* est toujours fermé, " -"même si un problème est survenu pendant l'exécution de ces lignes. D'autres " -"objets qui, comme pour les fichiers, fournissent des actions de nettoyage " -"prédéfinies l'indiquent dans leur documentation." +"Après l'exécution du bloc, le fichier *f* est toujours fermé, même si un " +"problème est survenu pendant l'exécution de ces lignes. D'autres objets qui, " +"comme pour les fichiers, fournissent des actions de nettoyage prédéfinies " +"l'indiquent dans leur documentation." diff --git a/tutorial/modules.po b/tutorial/modules.po index c16569b01..284265944 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -163,8 +163,8 @@ msgstr "" #: ../Doc/tutorial/modules.rst:100 msgid "There is even a variant to import all names that a module defines::" msgstr "" -"Il existe même une variante permettant d'importer tous les noms qu'un " -"module définit : ::" +"Il existe même une variante permettant d'importer tous les noms qu'un module " +"définit : ::" #: ../Doc/tutorial/modules.rst:106 msgid "" @@ -199,9 +199,9 @@ msgstr "" "pour des raisons de performance, chaque module n'est importé qu'une fois par " "session. Si vous changez le code d'un module vous devez donc redémarrer " "l'interpréteur afin d'en voir l'impact ; ou, s'il s'agit simplement d'un " -"seul module que vous voulez tester en mode interactif, vous pouvez le " -"ré-importer explicitement en utilisant :func:`importlib.reload`, par " -"exemple : ``import importlib; importlib.reload(nommodule)``." +"seul module que vous voulez tester en mode interactif, vous pouvez le ré-" +"importer explicitement en utilisant :func:`importlib.reload`, par exemple : " +"``import importlib; importlib.reload(nommodule)``." #: ../Doc/tutorial/modules.rst:127 msgid "Executing modules as scripts" @@ -218,8 +218,8 @@ msgid "" "this code at the end of your module::" msgstr "" "le code du module est exécuté comme si vous l'aviez importé mais son " -"``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin " -"du module : ::" +"``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin du " +"module : ::" #: ../Doc/tutorial/modules.rst:141 msgid "" @@ -259,8 +259,8 @@ msgstr "" "Lorsqu'un module nommé par exemple :mod:`spam` est importé, il est d'abord " "recherché parmi les modules natifs puis, s'il n'est pas trouvé, " "l'interpréteur cherche un fichier nommé :file:`spam.py` dans une liste de " -"dossiers donnée par la variable :data:`sys.path`. Par défaut, " -":data:`sys.path` est initialisée à : ::" +"dossiers donnée par la variable :data:`sys.path`. Par défaut, :data:`sys." +"path` est initialisée à : ::" #: ../Doc/tutorial/modules.rst:171 msgid "" @@ -494,8 +494,8 @@ msgid "" "`builtins`::" msgstr "" ":func:`dir` ne liste ni les fonctions primitives, ni les variables internes. " -"Si vous voulez les lister, elles sont définies dans le module " -":mod:`builtins` : ::" +"Si vous voulez les lister, elles sont définies dans le module :mod:" +"`builtins` : ::" #: ../Doc/tutorial/modules.rst:359 msgid "Packages" @@ -512,10 +512,10 @@ msgid "" "from having to worry about each other's module names." msgstr "" "Les paquets sont un moyen de structurer les espaces de noms des modules " -"Python en utilisant une notation \"pointée\". Par exemple, le nom de " -"module :mod:`A.B` désigne le sous-module ``B`` du paquet ``A``. De la même " -"manière que l'utilisation des modules évite aux auteurs de différents " -"modules d'avoir à se soucier des noms de variables globales des autres, " +"Python en utilisant une notation \"pointée\". Par exemple, le nom de module :" +"mod:`A.B` désigne le sous-module ``B`` du paquet ``A``. De la même manière " +"que l'utilisation des modules évite aux auteurs de différents modules " +"d'avoir à se soucier des noms de variables globales des autres, " "l'utilisation des noms de modules avec des points évite aux auteurs de " "paquets contenant plusieurs modules tel que NumPy ou \"Python Image Library" "\" d'avoir à se soucier des noms des modules des autres." @@ -659,11 +659,11 @@ msgid "" "effects that should only happen when the sub-module is explicitly imported." msgstr "" "Qu'arrive-il lorsqu'un utilisateur écrit ``from sound.effects import *`` ? " -"Idéalement, on pourrait espérer que Python aille chercher tous les sous-modules " -"du paquet sur le système de fichiers et qu'ils seraient tous importés. Cela " -"pourrait être long et importer certains sous-modules pourrait avoir des " -"effets secondaires indésirables ou, du moins, désirés seulement lorsque le " -"sous-module est importé explicitement." +"Idéalement, on pourrait espérer que Python aille chercher tous les sous-" +"modules du paquet sur le système de fichiers et qu'ils seraient tous " +"importés. Cela pourrait être long et importer certains sous-modules pourrait " +"avoir des effets secondaires indésirables ou, du moins, désirés seulement " +"lorsque le sous-module est importé explicitement." #: ../Doc/tutorial/modules.rst:470 msgid "" @@ -809,8 +809,8 @@ msgid "" msgstr "" "Les paquets possèdent un attribut supplémentaire, :attr:`__path__`, qui est " "une liste initialisée avant l'exécution du fichier :file:`__init__.py`, " -"contenant le nom de son dossier dans le système de fichiers. Cette liste peut " -"être modifiée, altérant ainsi les futures recherches de modules et sous-" +"contenant le nom de son dossier dans le système de fichiers. Cette liste " +"peut être modifiée, altérant ainsi les futures recherches de modules et sous-" "paquets contenus dans le paquet." #: ../Doc/tutorial/modules.rst:545 diff --git a/tutorial/stdlib.po b/tutorial/stdlib.po index b9cfa41da..4daafef30 100644 --- a/tutorial/stdlib.po +++ b/tutorial/stdlib.po @@ -35,16 +35,17 @@ msgid "" "This will keep :func:`os.open` from shadowing the built-in :func:`open` " "function which operates much differently." msgstr "" -"Veillez bien à utiliser ``import os`` plutôt que ``from os import *``, sinon :" -"func:`os.open` cache la primitive :func:`open` qui fonctionne différemment." +"Veillez bien à utiliser ``import os`` plutôt que ``from os import *``, " +"sinon :func:`os.open` cache la primitive :func:`open` qui fonctionne " +"différemment." #: ../Doc/tutorial/stdlib.rst:29 msgid "" "The built-in :func:`dir` and :func:`help` functions are useful as " "interactive aids for working with large modules like :mod:`os`::" msgstr "" -"Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque vous " -"travaillez en mode interactif avez des gros modules comme :mod:`os` : ::" +"Les primitives :func:`dir` et :func:`help` sont des aides utiles lorsque " +"vous travaillez en mode interactif avez des gros modules comme :mod:`os` : ::" #: ../Doc/tutorial/stdlib.rst:38 msgid "" @@ -78,10 +79,10 @@ msgid "" "two three`` at the command line::" msgstr "" "Typiquement, les outils en ligne de commande ont besoin de lire les " -"paramètres qui leur sont donnés. Ces paramètres sont stockés dans la variable " -"``argv`` du module :mod:`sys` sous la forme d'une liste. Par exemple, " -"l'affichage suivant vient de l'exécution de ``python demo.py one two three`` " -"depuis la ligne de commande : ::" +"paramètres qui leur sont donnés. Ces paramètres sont stockés dans la " +"variable ``argv`` du module :mod:`sys` sous la forme d'une liste. Par " +"exemple, l'affichage suivant vient de l'exécution de ``python demo.py one " +"two three`` depuis la ligne de commande : ::" #: ../Doc/tutorial/stdlib.rst:75 msgid "" @@ -91,8 +92,8 @@ msgid "" msgstr "" "Le module :mod:`getopt` analyse *sys.argv* en utilisant les conventions " "habituelles de la fonction Unix :func:`getopt`. Des outils d'analyse des " -"paramètres de la ligne de commande plus flexibles et avancés sont disponibles " -"dans le module :mod:`argparse`." +"paramètres de la ligne de commande plus flexibles et avancés sont " +"disponibles dans le module :mod:`argparse`." #: ../Doc/tutorial/stdlib.rst:83 msgid "Error Output Redirection and Program Termination" @@ -123,10 +124,11 @@ msgid "" "processing. For complex matching and manipulation, regular expressions offer " "succinct, optimized solutions::" msgstr "" -"Le module :mod:`re` fournit des outils basés sur les expressions rationnelles " -"permettant des opérations complexes sur les chaînes. C'est une solution " -"optimisée, utilisant une syntaxe concise, pour rechercher des motifs " -"complexes ou effectuer des remplacements complexes dans les chaînes : ::" +"Le module :mod:`re` fournit des outils basés sur les expressions " +"rationnelles permettant des opérations complexes sur les chaînes. C'est une " +"solution optimisée, utilisant une syntaxe concise, pour rechercher des " +"motifs complexes ou effectuer des remplacements complexes dans les " +"chaînes : ::" #: ../Doc/tutorial/stdlib.rst:110 msgid "" @@ -134,7 +136,8 @@ msgid "" "because they are easier to read and debug::" msgstr "" "Lorsque les opérations sont simples, il est préférable d'utiliser les " -"méthodes des chaînes. Elles sont plus lisibles et plus faciles à déboguer : ::" +"méthodes des chaînes. Elles sont plus lisibles et plus faciles à " +"déboguer : ::" #: ../Doc/tutorial/stdlib.rst:120 msgid "Mathematics" @@ -167,8 +170,8 @@ msgid "" "The SciPy project has many other modules for numerical " "computations." msgstr "" -"Le projet SciPy contient beaucoup d'autres modules dédiés " -"aux calculs numériques." +"Le projet SciPy contient beaucoup d'autres modules " +"dédiés aux calculs numériques." #: ../Doc/tutorial/stdlib.rst:161 msgid "Internet Access" @@ -202,11 +205,12 @@ msgid "" "for output formatting and manipulation. The module also supports objects " "that are timezone aware. ::" msgstr "" -"Le module :mod:`datetime` propose des classes pour manipuler les dates et les " -"heures de manière simple ou plus complexe. Bien que faire des calculs de " -"dates et d'heures soit possible, la priorité de l'implémentation est mise sur " -"l'extraction efficace des attributs pour le formatage et la manipulation. Le " -"module gère aussi les objets dépendant des fuseaux horaires : ::" +"Le module :mod:`datetime` propose des classes pour manipuler les dates et " +"les heures de manière simple ou plus complexe. Bien que faire des calculs de " +"dates et d'heures soit possible, la priorité de l'implémentation est mise " +"sur l'extraction efficace des attributs pour le formatage et la " +"manipulation. Le module gère aussi les objets dépendant des fuseaux " +"horaires : ::" #: ../Doc/tutorial/stdlib.rst:218 msgid "Data Compression" @@ -281,10 +285,10 @@ msgid "" "example and it allows the doctest module to make sure the code remains true " "to the documentation::" msgstr "" -"Le module :mod:`doctest` cherche des tests dans les chaînes de documentation. " -"Un test ressemble à un simple copier-coller d'un appel et son résultat depuis " -"le mode interactif. Cela améliore la documentation en fournissant des " -"exemples tout en prouvant qu'ils sont justes : ::" +"Le module :mod:`doctest` cherche des tests dans les chaînes de " +"documentation. Un test ressemble à un simple copier-coller d'un appel et son " +"résultat depuis le mode interactif. Cela améliore la documentation en " +"fournissant des exemples tout en prouvant qu'ils sont justes : ::" #: ../Doc/tutorial/stdlib.rst:288 msgid "" @@ -306,9 +310,9 @@ msgid "" "the sophisticated and robust capabilities of its larger packages. For " "example:" msgstr "" -"Python adopte le principe des \"piles fournies\". Vous pouvez le constater au " -"travers des fonctionnalités évoluées et solides fournies par ses plus gros " -"paquets. Par exemple :" +"Python adopte le principe des \"piles fournies\". Vous pouvez le constater " +"au travers des fonctionnalités évoluées et solides fournies par ses plus " +"gros paquets. Par exemple :" #: ../Doc/tutorial/stdlib.rst:315 msgid "" @@ -316,9 +320,9 @@ msgid "" "remote procedure calls into an almost trivial task. Despite the modules " "names, no direct knowledge or handling of XML is needed." msgstr "" -"Les modules :mod:`xmlrpc.client` et :mod:`xmlrpc.server` permettent d'appeler " -"des fonctions à distance quasiment sans effort. En dépit du nom des modules, " -"aucune connaissance du XML n'est nécessaire." +"Les modules :mod:`xmlrpc.client` et :mod:`xmlrpc.server` permettent " +"d'appeler des fonctions à distance quasiment sans effort. En dépit du nom " +"des modules, aucune connaissance du XML n'est nécessaire." #: ../Doc/tutorial/stdlib.rst:319 msgid "" @@ -331,9 +335,9 @@ msgid "" msgstr "" "Le paquet :mod:`email` est une bibliothèque pour gérer les messages " "électroniques, incluant les MIME et autres encodages basés sur la RFC 2822. " -"Contrairement à :mod:`smtplib` et :mod:`poplib` qui envoient et reçoivent des " -"messages, le paquet email est une boite à outils pour construire, lire des " -"structures de messages complexes (comprenant des pièces jointes) ou " +"Contrairement à :mod:`smtplib` et :mod:`poplib` qui envoient et reçoivent " +"des messages, le paquet email est une boite à outils pour construire, lire " +"des structures de messages complexes (comprenant des pièces jointes) ou " "implémenter des encodages et protocoles." #: ../Doc/tutorial/stdlib.rst:326 @@ -363,13 +367,13 @@ msgid "" "slightly nonstandard SQL syntax." msgstr "" "Le module :mod:`sqlite3` est une abstraction de la bibliothèque SQLite, " -"permettant de manipuler une base de données persistante, accédée et manipulée " -"en utilisant une syntaxe SQL quasi standard." +"permettant de manipuler une base de données persistante, accédée et " +"manipulée en utilisant une syntaxe SQL quasi standard." #: ../Doc/tutorial/stdlib.rst:339 msgid "" "Internationalization is supported by a number of modules including :mod:" "`gettext`, :mod:`locale`, and the :mod:`codecs` package." msgstr "" -"L'internationalisation est possible grâce à de nombreux paquets tels que :mod:" -"`gettext`, :mod:`locale` ou :mod:`codecs`." +"L'internationalisation est possible grâce à de nombreux paquets tels que :" +"mod:`gettext`, :mod:`locale` ou :mod:`codecs`." diff --git a/tutorial/whatnow.po b/tutorial/whatnow.po index 549f0acd6..981b27ed8 100644 --- a/tutorial/whatnow.po +++ b/tutorial/whatnow.po @@ -182,5 +182,5 @@ msgid "" msgstr "" "Avant de publier un message, assurez-vous d'avoir lu la liste de la :ref:" "`Foire Aux Questions ` (aussi appelée FAQ). La FAQ répond à " -"beaucoup de questions fréquentes et contient probablement une solution à votre " -"problème." +"beaucoup de questions fréquentes et contient probablement une solution à " +"votre problème." From a5c7846ef1404d8a4c75b50da7485d57fe809d48 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Wed, 21 Mar 2018 00:16:43 +0100 Subject: [PATCH 030/115] Fixing some end of lines. --- c-api/arg.po | 6 +++--- c-api/exceptions.po | 4 ++-- c-api/gen.po | 4 ++-- distributing/index.po | 2 +- distutils/apiref.po | 6 +++--- distutils/builtdist.po | 14 +++++++------- distutils/commandref.po | 7 ++++--- distutils/setupscript.po | 2 +- distutils/sourcedist.po | 10 +++++----- extending/extending.po | 2 +- faq/programming.po | 4 ++-- howto/clinic.po | 2 +- install/index.po | 2 +- library/2to3.po | 4 ++-- library/archiving.po | 2 +- library/argparse.po | 2 +- library/array.po | 2 +- library/bisect.po | 2 +- library/datetime.po | 6 +++--- library/getpass.po | 2 +- library/html.po | 2 +- library/itertools.po | 2 +- library/json.po | 2 +- library/os.po | 10 +++++----- library/pipes.po | 2 +- library/stdtypes.po | 8 ++++---- library/string.po | 4 ++-- library/struct.po | 2 +- library/subprocess.po | 2 +- library/sys.po | 9 +++++---- library/time.po | 2 +- library/tk.po | 2 +- library/tkinter.po | 2 +- library/tkinter.ttk.po | 2 +- library/webbrowser.po | 2 +- library/xml.dom.po | 4 ++-- library/xml.po | 6 +++--- reference/lexical_analysis.po | 2 +- sphinx.po | 4 ++-- tutorial/classes.po | 2 +- tutorial/controlflow.po | 4 ++-- tutorial/errors.po | 2 +- using/cmdline.po | 10 +++++----- whatsnew/3.1.po | 4 ++-- whatsnew/3.2.po | 2 +- 45 files changed, 90 insertions(+), 88 deletions(-) diff --git a/c-api/arg.po b/c-api/arg.po index e1e8f61bb..d97d4f7c4 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -741,7 +741,7 @@ msgstr "" "L'objet doit être une séquence Python dont la longueur est le nombre " "d'unités de formats dans *articles*. Les arguments C doivent correspondre à " "chaque unité de format particulière dans *articles*. Les unités de formats " -"pour les séquences peuvent être imbriquées. " +"pour les séquences peuvent être imbriquées." #: ../Doc/c-api/arg.rst:352 msgid "" @@ -808,7 +808,7 @@ msgid "" msgstr "" "La liste des unités de format s'arrête ici ; la chaîne après le point-" "virgule est utilise comme message d'erreur *au lieu* du message d'erreur par " -"défaut. ``:`` et ``;`` sont mutuellement exclusifs. " +"défaut. ``:`` et ``;`` sont mutuellement exclusifs." #: ../Doc/c-api/arg.rst:387 msgid "" @@ -817,7 +817,7 @@ msgid "" msgstr "" "Notez que n'importe quelles références sur un objet Python qui sont données " "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " -"compteur de références ! " +"compteur de références !" #: ../Doc/c-api/arg.rst:390 msgid "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index bd87df3b1..832d6aeea 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -1273,11 +1273,11 @@ msgstr "" #: ../Doc/c-api/exceptions.rst:949 ../Doc/c-api/exceptions.rst:1013 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/c-api/exceptions.rst:952 msgid "This is a base class for other standard exceptions." -msgstr "C'est la classe de base pour les autres exceptions standards" +msgstr "C'est la classe de base pour les autres exceptions standards." #: ../Doc/c-api/exceptions.rst:955 msgid "This is the same as :exc:`weakref.ReferenceError`." diff --git a/c-api/gen.po b/c-api/gen.po index 8b111f531..8a07ed753 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -35,7 +35,7 @@ msgstr "" #: ../Doc/c-api/gen.rst:15 msgid "The C structure used for generator objects." -msgstr "La structure C utilisée pour les objets générateurs" +msgstr "La structure C utilisée pour les objets générateurs." #: ../Doc/c-api/gen.rst:20 msgid "The type object corresponding to generator objects." @@ -61,7 +61,7 @@ msgid "" msgstr "" "Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*. Une " "référence à *frame* est volée par cette fonction. L'argument ne doit pas " -"être *NULL*" +"être *NULL*." #: ../Doc/c-api/gen.rst:41 msgid "" diff --git a/distributing/index.po b/distributing/index.po index 70c7cb2fd..12930de1b 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -251,7 +251,7 @@ msgid "" "The Python Packaging User Guide includes more details on the `currently " "recommended tools`_." msgstr "" -" Le *Python Packaging User Guide* contient plus de détails sur les `(en) " +"Le *Python Packaging User Guide* contient plus de détails sur les `(en) " "outils actuellement recommandés `_." #: ../Doc/distributing/index.rst:117 diff --git a/distutils/apiref.po b/distutils/apiref.po index 3ff493dae..5c9e1aaa5 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -459,7 +459,7 @@ msgstr "" "des slashs) dans un souci de portabilité. Les fichiers de code source " "peuvent être du C, C++, SWIG (.i), des fichiers de ressources spécifiques à " "la plateforme ou tout autre reconnu par la commande :command:`build_ext` " -"comme source d'une extension Python" +"comme source d'une extension Python." #: ../Doc/distutils/apiref.rst:196 msgid "*include_dirs*" @@ -666,7 +666,7 @@ msgstr "" #: ../Doc/distutils/apiref.rst:334 msgid "Determine the default compiler to use for the given platform." msgstr "" -"Détermine le compilateur par défaut a utiliser par une plateforme donnée" +"Détermine le compilateur par défaut a utiliser par une plateforme donnée." #: ../Doc/distutils/apiref.rst:336 msgid "" @@ -1343,7 +1343,7 @@ msgstr "" #: ../Doc/distutils/apiref.rst:879 msgid "Added support for the ``xztar`` format." -msgstr "Ajout du support des fichiers ``xztar``" +msgstr "Ajout du support des fichiers ``xztar``." #: ../Doc/distutils/apiref.rst:885 msgid "" diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 682fa5d6a..23a21cd64 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -35,7 +35,7 @@ msgstr "" "cependant pas forcément un binaire, il peut ne contenir que des sources " "Python et/ou du byte-code; et nous n'appelons pas ça un *package* parce que " "ce mot est déjà utiliseé dans Python (et \"installateur\" est un terme " -"spécifique au monde des systèmes de bureau). " +"spécifique au monde des systèmes de bureau)." #: ../Doc/distutils/builtdist.rst:14 msgid "" @@ -282,15 +282,15 @@ msgstr "``msi``" #: ../Doc/distutils/builtdist.rst:100 msgid "Microsoft Installer." -msgstr "Installateur Microsoft" +msgstr "Installateur Microsoft." #: ../Doc/distutils/builtdist.rst:103 msgid "Added support for the ``xztar`` format." -msgstr "Ajout du support des fichiers ``xztar``" +msgstr "Ajout du support des fichiers ``xztar``." #: ../Doc/distutils/builtdist.rst:107 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/distutils/builtdist.rst:110 msgid "default on Unix" @@ -378,7 +378,7 @@ msgid "" "commands." msgstr "" "Le chapitre suivant donne des détails individuel sur les commandes :command:" -"`bdist_\\*` " +"`bdist_\\*`." #: ../Doc/distutils/builtdist.rst:163 msgid "Creating RPM packages" @@ -523,7 +523,7 @@ msgstr "" #: ../Doc/distutils/builtdist.rst:220 msgid ":command:`bdist_rpm` option" -msgstr "Option de :command:`bdist_rpm` " +msgstr "Option de :command:`bdist_rpm`" #: ../Doc/distutils/builtdist.rst:220 msgid "default value" @@ -818,7 +818,7 @@ msgid "" "Windows." msgstr "" "créera un installateur executable 64 bits depuis votre version 32 bits de " -"Windows. " +"Windows." #: ../Doc/distutils/builtdist.rst:366 msgid "" diff --git a/distutils/commandref.po b/distutils/commandref.po index 5638b174f..6beedc6fc 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.po @@ -41,7 +41,7 @@ msgstr ":command:`install_data`" #: ../Doc/distutils/commandref.rst:37 msgid "This command installs all data files provided with the distribution." -msgstr "Cette commande installe tout les fichier fournit avec la distribution" +msgstr "Cette commande installe tout les fichier fournit avec la distribution." #: ../Doc/distutils/commandref.rst:43 msgid ":command:`install_scripts`" @@ -49,11 +49,12 @@ msgstr ":command:`install_scripts`" #: ../Doc/distutils/commandref.rst:45 msgid "This command installs all (Python) scripts in the distribution." -msgstr "Cette commande installe tout les scripts (Python) dans la distribution" +msgstr "" +"Cette commande installe tout les scripts (Python) dans la distribution." #: ../Doc/distutils/commandref.rst:54 msgid "Creating a source distribution: the :command:`sdist` command" -msgstr "Créer une distribution source: la commande :command:`sdist` " +msgstr "Créer une distribution source: la commande :command:`sdist`" #: ../Doc/distutils/commandref.rst:58 msgid "The manifest template commands are:" diff --git a/distutils/setupscript.po b/distutils/setupscript.po index b1f5cd38f..5abc69933 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -868,7 +868,7 @@ msgstr "\\(6)" #: ../Doc/distutils/setupscript.rst:597 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/distutils/setupscript.rst:600 msgid "These fields are required." diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po index ce92f3618..cee1002b6 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -131,11 +131,11 @@ msgstr "Fichier tar (:file:`.tar`)" #: ../Doc/distutils/sourcedist.rst:44 msgid "Added support for the ``xztar`` format." -msgstr "Ajout du support des fichiers ``xztar``" +msgstr "Ajout du support des fichiers ``xztar``." #: ../Doc/distutils/sourcedist.rst:47 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/distutils/sourcedist.rst:50 msgid "default on Windows" @@ -283,7 +283,7 @@ msgstr "" "un nom de fichier par ligne, uniquement des fichiers normaux (ou leur lien " "symbolique). Si vous fournissez votre propre :file:`MANIFEST`, vous devez " "tout spécifier: le groupe de fichier par défaut décrit au dessus ne sera pas " -"inclu automatiquement dans ce cas" +"inclu automatiquement dans ce cas." #: ../Doc/distutils/sourcedist.rst:120 msgid "" @@ -301,7 +301,7 @@ msgid "" msgstr "" "Les fichiers :file:`MANIFEST` commence avec un commentaire indiquant qu'ils " "sont générés. Les fichiers sans ce commentaire ne sont pas réécrits ou " -"supprimés" +"supprimés." #: ../Doc/distutils/sourcedist.rst:129 msgid "" @@ -477,7 +477,7 @@ msgstr "" "dans le modèle manifeste doivent toujours être séparés par des slash; " "Distutils s'occupera de les convertir a la représentation standard de votre " "plateforme. De cette manière, le modèle manifeste est portable sur tout " -"système d'exploitation" +"système d'exploitation." #: ../Doc/distutils/sourcedist.rst:210 msgid "Manifest-related options" diff --git a/extending/extending.po b/extending/extending.po index cd45951de..60dbfeb5d 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -851,7 +851,7 @@ msgid "" msgstr "" "Notez que n'importe quelles références sur un objet Python qui sont données " "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " -"compteur de références ! " +"compteur de références !" #: ../Doc/extending/extending.rst:626 msgid "Some example calls::" diff --git a/faq/programming.po b/faq/programming.po index bf188c0ab..cc2843b0a 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -823,7 +823,7 @@ msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte: Le " "chat (objet) ne peux pas vous dire lui même son nom, et il s'en moque un peu " "-- alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (namespaces) si c'est leur chat (objet)…" +"tous vos voisins (namespaces) si c'est leur chat (objet)…." #: ../Doc/faq/programming.rst:687 msgid "" @@ -1331,7 +1331,7 @@ msgid "" "iterable) into a tuple with the same items in the same order." msgstr "" "Le constructeur de type ``tuple(seq)`` convertit toute séquence (en fait " -"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…" +"tout itérable) en un tuple avec les mêmes éléments dans le même ordre…." #: ../Doc/faq/programming.rst:1072 msgid "" diff --git a/howto/clinic.po b/howto/clinic.po index de939fcef..2e2b5c4e4 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -750,7 +750,7 @@ msgstr "" #: ../Doc/howto/clinic.rst:696 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/howto/clinic.rst:698 msgid "" diff --git a/install/index.po b/install/index.po index 1e7b64234..e22ddd92b 100644 --- a/install/index.po +++ b/install/index.po @@ -501,7 +501,7 @@ msgstr "\\(2)" #: ../Doc/install/index.rst:264 ../Doc/install/index.rst:797 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/install/index.rst:267 msgid "" diff --git a/library/2to3.po b/library/2to3.po index 5d307b431..dfd9ffe78 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -191,7 +191,7 @@ msgstr "" #: ../Doc/library/2to3.rst:147 msgid "Fixers" -msgstr " Correcteurs" +msgstr "Correcteurs" #: ../Doc/library/2to3.rst:149 msgid "" @@ -614,7 +614,7 @@ msgid "" "package." msgstr "" "Gère le renommage des paquets :mod:`urllib` et :mod:`urllib2` en :mod:" -"`urllib`" +"`urllib`." #: ../Doc/library/2to3.rst:437 msgid "" diff --git a/library/archiving.po b/library/archiving.po index 5735b7e42..ef424afa6 100644 --- a/library/archiving.po +++ b/library/archiving.po @@ -31,4 +31,4 @@ msgstr "" "Les modules documentés dans ce chapitre implémentent les algorithmes de " "compression zlib, gzip, bzip2 et lzma, ainsi que la création d'archives ZIP " "et tar. Voir aussi :ref:`archiving-operations` fourni par le module :mod:" -"`shutil`" +"`shutil`." diff --git a/library/argparse.po b/library/argparse.po index 25b43b529..b01b7a678 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -1624,7 +1624,7 @@ msgstr "" #: ../Doc/library/argparse.rst:2005 msgid "Handling positional arguments." -msgstr "Gérer les arguments positionnels" +msgstr "Gérer les arguments positionnels." #: ../Doc/library/argparse.rst:2006 msgid "Supporting sub-commands." diff --git a/library/array.po b/library/array.po index 6bc3e369b..47861b8ef 100644 --- a/library/array.po +++ b/library/array.po @@ -204,7 +204,7 @@ msgstr "double" #: ../Doc/library/array.rst:48 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/array.rst:51 msgid "" diff --git a/library/bisect.po b/library/bisect.po index 7686f5102..a6eb05edf 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -89,7 +89,7 @@ msgid "" msgstr "" "Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " "que, pour la moitié de gauche : ``all(val <= x for val in a[lo:i])`` et pour " -"la moitié de droite : ``all(val > x for val in a[i:hi])``.\n" +"la moitié de droite : ``all(val > x for val in a[i:hi])``." #: ../Doc/library/bisect.rst:49 msgid "" diff --git a/library/datetime.po b/library/datetime.po index 4b1ef057a..e05e4f50e 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -593,11 +593,11 @@ msgstr "" #: ../Doc/library/datetime.rst:295 ../Doc/library/datetime.rst:490 #: ../Doc/library/datetime.rst:2092 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/datetime.rst:298 msgid "This is exact, but may overflow." -msgstr "Ceci est exact, mais peut provoquer un débordement" +msgstr "Ceci est exact, mais peut provoquer un débordement." #: ../Doc/library/datetime.rst:301 msgid "This is exact, and cannot overflow." @@ -1335,7 +1335,7 @@ msgstr "" "Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si le " "*timestamp* est en dehors de l'intervalle de valeurs supportées par la " "fonction C :c:func:`gmtime` de la plateforme. Lève une :exc:`OSError` plutôt " -"qu'une :exc:`ValueError` en cas d'échec de :c:func:`gmtime`" +"qu'une :exc:`ValueError` en cas d'échec de :c:func:`gmtime`." #: ../Doc/library/datetime.rst:797 msgid "" diff --git a/library/getpass.po b/library/getpass.po index a929805cc..92411a979 100644 --- a/library/getpass.po +++ b/library/getpass.po @@ -70,7 +70,7 @@ msgstr "" #: ../Doc/library/getpass.rst:42 msgid "Return the \"login name\" of the user." -msgstr "Renvoie le \"login name\" de l'utilisateur " +msgstr "Renvoie le \"login name\" de l'utilisateur." #: ../Doc/library/getpass.rst:44 msgid "" diff --git a/library/html.po b/library/html.po index 331a52075..88e0cdb97 100644 --- a/library/html.po +++ b/library/html.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/html.rst:2 msgid ":mod:`html` --- HyperText Markup Language support" -msgstr ":mod:`html` --- Support du HyperText Markup Language " +msgstr ":mod:`html` --- Support du HyperText Markup Language" #: ../Doc/library/html.rst:7 msgid "**Source code:** :source:`Lib/html/__init__.py`" diff --git a/library/itertools.po b/library/itertools.po index 4b67eb6bc..0aa3db04b 100644 --- a/library/itertools.po +++ b/library/itertools.po @@ -227,7 +227,7 @@ msgstr ":func:`filterfalse`" #: ../Doc/library/itertools.rst:55 msgid "elements of seq where pred(elem) is false" -msgstr " éléments de *seq* quand *pred(elem)* est faux" +msgstr "éléments de *seq* quand *pred(elem)* est faux" #: ../Doc/library/itertools.rst:55 msgid "``filterfalse(lambda x: x%2, range(10)) --> 0 2 4 6 8``" diff --git a/library/json.po b/library/json.po index df4364c75..1e9ce4b68 100644 --- a/library/json.po +++ b/library/json.po @@ -612,7 +612,7 @@ msgstr "*number*" #: ../Doc/library/json.rst:406 msgid "Added support for int- and float-derived Enum classes." -msgstr "Ajout du support des classes *Enum* dérivées d'*int* ou de *float*" +msgstr "Ajout du support des classes *Enum* dérivées d'*int* ou de *float*." #: ../Doc/library/json.rst:409 msgid "" diff --git a/library/os.po b/library/os.po index 12b1b665b..5d96880a4 100644 --- a/library/os.po +++ b/library/os.po @@ -1744,7 +1744,7 @@ msgstr "Longueur du terminal en caractères." #: ../Doc/library/os.rst:1289 msgid "Height of the terminal window in characters." -msgstr "Hauteur du terminal en caractères" +msgstr "Hauteur du terminal en caractères." #: ../Doc/library/os.rst:1295 msgid "Inheritance of File Descriptors" @@ -2206,7 +2206,7 @@ msgid "" msgstr "" "Change l'id du propriétaire et du groupe de *path* par les valeurs " "numériques *uid* et *gid*. Pour laisser l'un de ces ids inchangé, le définir " -"à -1. " +"à -1." #: ../Doc/library/os.rst:1549 msgid "" @@ -2712,7 +2712,7 @@ msgstr "" "peut échouer sur certaines distributions Unix si *src* et *dst* sont sur des " "systèmes de fichiers séparés. Si le renommage est effectué avec succès, il " "est une opération atomique (nécessité POSIX). Sur Window, si *dst* existe " -"déjà, une :exc:`OSError` est levée même s'il est un fichier. " +"déjà, une :exc:`OSError` est levée même s'il est un fichier." #: ../Doc/library/os.rst:1942 ../Doc/library/os.rst:1978 msgid "" @@ -3121,7 +3121,7 @@ msgid "" msgstr "" "Renvoie ``True`` si l'entrée est un lien symbolique (même cassé). Renvoie " "``False`` si l'entrée pinte vers un répertoire ou tout autre type de " -"fichier, ou s'il n'existe plus" +"fichier, ou s'il n'existe plus." #: ../Doc/library/os.rst:2171 msgid "" @@ -3428,7 +3428,7 @@ msgstr "" #: ../Doc/library/os.rst:2370 msgid "File generation number." -msgstr "Nombre de génération de fichier" +msgstr "Nombre de génération de fichier." #: ../Doc/library/os.rst:2374 msgid "Time of file creation." diff --git a/library/pipes.po b/library/pipes.po index 0a9314048..5a4bb0f64 100644 --- a/library/pipes.po +++ b/library/pipes.po @@ -48,7 +48,7 @@ msgstr "Le module :mod:`pipes` définit la classe suivante :" #: ../Doc/library/pipes.rst:25 msgid "An abstraction of a pipeline." -msgstr "Une abstraction d'un *pipeline*" +msgstr "Une abstraction d'un *pipeline*." #: ../Doc/library/pipes.rst:27 msgid "Example::" diff --git a/library/stdtypes.po b/library/stdtypes.po index ad44a2cac..d33bb0e51 100644 --- a/library/stdtypes.po +++ b/library/stdtypes.po @@ -201,7 +201,7 @@ msgstr "\\(3)" #: ../Doc/library/stdtypes.rst:1091 ../Doc/library/stdtypes.rst:2214 #: ../Doc/library/stdtypes.rst:3322 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/stdtypes.rst:105 msgid "" @@ -2993,7 +2993,7 @@ msgid "" msgstr "" "Si un seul argument est fourni, ce soit être un dictionnaire faisant " "correspondre des points de code Unicode (nombres entiers) ou des caractères " -"(chaînes de longueur 1) à des points de code Unicode" +"(chaînes de longueur 1) à des points de code Unicode." #: ../Doc/library/stdtypes.rst:1777 msgid "" @@ -4517,7 +4517,7 @@ msgstr "" #: ../Doc/library/stdtypes.rst:2675 msgid "*delete* is now supported as a keyword argument." -msgstr "*delete* est maintenant accepté comme argument nommé" +msgstr "*delete* est maintenant accepté comme argument nommé." #: ../Doc/library/stdtypes.rst:2679 msgid "" @@ -6693,7 +6693,7 @@ msgid "" "Reference Manual (:ref:`customization`)." msgstr "" "Plus d'informations sur ces méthodes spéciales peuvent être trouvées dans le " -"*Python Reference Manual* (:ref:`customization`)" +"*Python Reference Manual* (:ref:`customization`)." #: ../Doc/library/stdtypes.rst:4644 msgid "" diff --git a/library/string.po b/library/string.po index aeebaed56..a3fa7e753 100644 --- a/library/string.po +++ b/library/string.po @@ -1113,7 +1113,7 @@ msgstr "Utiliser un formatage propre au type : ::" #: ../Doc/library/string.rst:624 msgid "Nesting arguments and more complex examples::" -msgstr " Arguments imbriqués et des exemples plus complexes : ::" +msgstr "Arguments imbriqués et des exemples plus complexes : ::" #: ../Doc/library/string.rst:658 msgid "Template strings" @@ -1376,7 +1376,7 @@ msgid "" "trailing whitespace are removed, otherwise *sep* is used to split and join " "the words." msgstr "" -" Divise l'argument en mots en utilisant :meth:`str.split`, capitalise chaque " +"Divise l'argument en mots en utilisant :meth:`str.split`, capitalise chaque " "mot en utilisant :meth:`str.capitalize` et assemble les mots capitalisés en " "utilisant :meth:`str.join`. Si le second argument optionnel *sep* est absent " "ou vaut ``None``, les séquences de caractères blancs sont remplacées par un " diff --git a/library/struct.po b/library/struct.po index cd614711e..810831418 100644 --- a/library/struct.po +++ b/library/struct.po @@ -258,7 +258,7 @@ msgstr "" #: ../Doc/library/struct.rst:160 ../Doc/library/struct.rst:239 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/struct.rst:162 msgid "" diff --git a/library/subprocess.po b/library/subprocess.po index a4c8bdc13..4c2e82bde 100644 --- a/library/subprocess.po +++ b/library/subprocess.po @@ -1649,7 +1649,7 @@ msgstr "Remplacer :func:`os.system`" #: ../Doc/library/subprocess.rst:1033 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/subprocess.rst:1035 msgid "Calling the program through the shell is usually not required." diff --git a/library/sys.po b/library/sys.po index bf5ade816..052f0e57b 100644 --- a/library/sys.po +++ b/library/sys.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" -"PO-Revision-Date: 2017-12-14 08:41+0100\n" +"PO-Revision-Date: 2018-03-21 00:09+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -209,7 +209,9 @@ msgstr "" #: ../Doc/library/sys.rst:130 msgid "Integer specifying the handle of the Python DLL. Availability: Windows." -msgstr "Nombre entier spécifiant le descripteur de la DLL Python sur Windows," +msgstr "" +"Nombre entier spécifiant le descripteur de la DLL Python. Disponnibilité : " +"Windows." #: ../Doc/library/sys.rst:135 msgid "" @@ -1292,8 +1294,7 @@ msgid "" msgstr "" "Un objet contenant des informations sur l'implémentation de la version " "actuelle de l'interpréteur Python. Les attributs suivants existent " -"obligatoirement sur toutes les implémentations Python.\n" -"\n" +"obligatoirement sur toutes les implémentations Python." #: ../Doc/library/sys.rst:689 msgid "" diff --git a/library/time.po b/library/time.po index 35076ed54..75671ead7 100644 --- a/library/time.po +++ b/library/time.po @@ -633,7 +633,7 @@ msgstr "Un caractère ``'%'`` littéral." #: ../Doc/library/time.rst:409 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/time.rst:412 msgid "" diff --git a/library/tk.po b/library/tk.po index 078900c38..fbe37af1a 100644 --- a/library/tk.po +++ b/library/tk.po @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/tk.rst:5 msgid "Graphical User Interfaces with Tk" -msgstr "Interfaces Utilisateur Graphiques avec Tk " +msgstr "Interfaces Utilisateur Graphiques avec Tk" #: ../Doc/library/tk.rst:13 msgid "" diff --git a/library/tkinter.po b/library/tkinter.po index 28c56d19b..a9e670423 100644 --- a/library/tkinter.po +++ b/library/tkinter.po @@ -376,7 +376,7 @@ msgstr "" #: ../Doc/library/tkinter.rst:231 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/tkinter.rst:233 msgid "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index e90316725..9b67a7857 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -1281,7 +1281,7 @@ msgstr "" #: ../Doc/library/tkinter.ttk.rst:831 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/tkinter.ttk.rst:833 msgid "" diff --git a/library/webbrowser.po b/library/webbrowser.po index 64e9304c8..135027fa9 100644 --- a/library/webbrowser.po +++ b/library/webbrowser.po @@ -339,7 +339,7 @@ msgstr ":class:`Chromium('chromium-browser')`" #: ../Doc/library/webbrowser.rst:152 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/library/webbrowser.rst:155 msgid "" diff --git a/library/xml.dom.po b/library/xml.dom.po index 5be1c555f..55334c19e 100644 --- a/library/xml.dom.po +++ b/library/xml.dom.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-08-10 00:49+0200\n" -"PO-Revision-Date: 2017-11-07 23:01+0100\n" +"PO-Revision-Date: 2018-03-21 00:09+0100\n" "Last-Translator: Cyprien Le Pannérer \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -1357,7 +1357,7 @@ msgstr "" "Levée quand un intervalle spécifique de texte ne rentre pas dans une chaîne. " "Cette exception n'est pas réputée être utilisée par les implémentations DOM " "de Python mais elle peur être levée par des implémentations de DOM qui ne " -"sont pas écrite en Python. " +"sont pas écrite en Python." #: ../Doc/library/xml.dom.rst:838 msgid "" diff --git a/library/xml.po b/library/xml.po index 03b3cc002..d481876fb 100644 --- a/library/xml.po +++ b/library/xml.po @@ -117,7 +117,7 @@ msgid "" "various modules are vulnerable to them." msgstr "" "Le tableau suivant donne une vue d'ensemble des attaques connues et indique " -"si les différents modules y sont vulnérables" +"si les différents modules y sont vulnérables." #: ../Doc/library/xml.rst:64 msgid "kind" @@ -175,7 +175,7 @@ msgstr "Sûr (3)" #: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:102 msgid "`DTD`_ retrieval" -msgstr "Récupération de `DTD`_ " +msgstr "Récupération de `DTD`_" #: ../Doc/library/xml.rst:69 ../Doc/library/xml.rst:70 msgid "Safe" @@ -288,7 +288,7 @@ msgstr "" #: ../Doc/library/xml.rst:117 msgid "The :mod:`defusedxml` and :mod:`defusedexpat` Packages" -msgstr "Les paquets :mod:`defusedxml` et :mod:`defusedexpat` " +msgstr "Les paquets :mod:`defusedxml` et :mod:`defusedexpat`" #: ../Doc/library/xml.rst:119 msgid "" diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 716045119..3ff28777d 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -726,7 +726,7 @@ msgstr "\\(6)" #: ../Doc/reference/lexical_analysis.rst:526 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes :" #: ../Doc/reference/lexical_analysis.rst:529 msgid "As in Standard C, up to three octal digits are accepted." diff --git a/sphinx.po b/sphinx.po index be4b46c72..f24fbb4b2 100644 --- a/sphinx.po +++ b/sphinx.po @@ -137,7 +137,7 @@ msgstr "La documentation :" #: ../Doc/tools/templates/indexcontent.html:13 msgid "What's new in Python %(version)s?" -msgstr "Les nouveautés de Python %(version)s " +msgstr "Les nouveautés de Python %(version)s" #: ../Doc/tools/templates/indexcontent.html:14 msgid "" @@ -251,7 +251,7 @@ msgstr "Glossaire" #: ../Doc/tools/templates/indexcontent.html:47 msgid "the most important terms explained" -msgstr "Explication des mots les plus importants " +msgstr "Explication des mots les plus importants" #: ../Doc/tools/templates/indexcontent.html:49 msgid "Search page" diff --git a/tutorial/classes.po b/tutorial/classes.po index 381219bc0..fe5d94320 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -740,7 +740,7 @@ msgstr "" "Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " "d'œil à l'implémentation vous aidera peut être. Lorsque un attribut d'une " "instance est référencé et que ce n'est pas un attribut 'données', sa classe " -"est recherchée. Si le nom correspond à un attribut valide et que c'est " +"est recherchée. Si le nom correspond à un attribut valide et que c'est." #: ../Doc/tutorial/classes.rst:403 msgid "Class and Instance Variables" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 796eb0eda..0e5293fc6 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -316,7 +316,7 @@ msgstr "" "qui utilisent ces chaînes de documentation pour générer automatiquement une " "documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " "naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " -"bonne pratique que de documenter le code que vous écrivez !" +"bonne pratique que de documenter le code que vous écrivez !." #: ../Doc/tutorial/controlflow.rst:277 msgid "" @@ -888,7 +888,7 @@ msgstr "" #: ../Doc/tutorial/controlflow.rst:738 msgid "Use docstrings." -msgstr "Utilisez les chaînes de documentation" +msgstr "Utilisez les chaînes de documentation." #: ../Doc/tutorial/controlflow.rst:740 msgid "" diff --git a/tutorial/errors.po b/tutorial/errors.po index 10e4f372a..da14288f6 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -154,7 +154,7 @@ msgstr "" #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." -msgstr "L'instruction :keyword:`try` fonctionne comme ceci :" +msgstr "L'instruction :keyword:`try` fonctionne comme ceci :." #: ../Doc/tutorial/errors.rst:98 msgid "" diff --git a/using/cmdline.po b/using/cmdline.po index dbc631a84..0c0e42b22 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -119,7 +119,7 @@ msgstr "" msgid "" "In non-interactive mode, the entire input is parsed before it is executed." msgstr "" -"En mode non-interactif, toute l’entrée est analysée avant d’être exécutée. " +"En mode non-interactif, toute l’entrée est analysée avant d’être exécutée." #: ../Doc/using/cmdline.rst:57 msgid "" @@ -578,7 +578,7 @@ msgstr "" "à plus d'une option, l'action associée à la dernière correspondance est " "effectuée. Les options :option:`-W` invalides sont ignorées (cependant, un " "message d'avertissement est affiché sur les options invalides au moment où " -"le premier avertissement est généré). " +"le premier avertissement est généré)." #: ../Doc/using/cmdline.rst:340 msgid "" @@ -956,7 +956,7 @@ msgid "" "only works on Windows and OS X." msgstr "" "Si elle est définie, Python ignore la casse dans les instructions :keyword:" -"`import`. Ceci ne fonctionne que sous Windows et OS X. " +"`import`. Ceci ne fonctionne que sous Windows et OS X." #: ../Doc/using/cmdline.rst:533 msgid "" @@ -1231,7 +1231,7 @@ msgid "" "now has no effect if set to an empty string." msgstr "" "Cette variable peut maintenant être utilisée avec Python compilé en mode " -"\"release\". Elle n'a pas d'effet si elle est définie à une chaine vide. " +"\"release\". Elle n'a pas d'effet si elle est définie à une chaine vide." #: ../Doc/using/cmdline.rst:689 msgid "" @@ -1269,7 +1269,7 @@ msgid "" msgstr "" "Si elle est définie et n’est pas une chaîne vide, n'utilise pas les lecteur " "et écrivain de la nouvelle console. Cela signifie que les caractères Unicode " -"sont encodés avec l'encodage de la console active plutôt qu'en utf-8. " +"sont encodés avec l'encodage de la console active plutôt qu'en utf-8." #: ../Doc/using/cmdline.rst:707 msgid "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 5014dbed9..921825a09 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -354,7 +354,7 @@ msgstr "" #: ../Doc/whatsnew/3.1.rst:315 msgid "(Contributed by Vinay Sajip; :issue:`4384`)." -msgstr "(Contribution par Vinay Sajip; :issue:`4384`.)" +msgstr "(Contribution par Vinay Sajip; :issue:`4384`.)." #: ../Doc/whatsnew/3.1.rst:317 msgid "" @@ -534,7 +534,7 @@ msgid "" "issue:`4753`)." msgstr "" "(Contribution par Antoine Pitrou ainsi qu’un certain nombre d’autres " -"participants; :issue:`4753`.)" +"participants; :issue:`4753`.)." #: ../Doc/whatsnew/3.1.rst:445 msgid "" diff --git a/whatsnew/3.2.po b/whatsnew/3.2.po index 79304fc47..b494f8864 100644 --- a/whatsnew/3.2.po +++ b/whatsnew/3.2.po @@ -481,7 +481,7 @@ msgstr "" #: ../Doc/whatsnew/3.2.rst:493 msgid "(Contributed by Marcin Wojdyr in :issue:`1772833`)." -msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)" +msgstr "(Contribution par Marcin Wojdyr; :issue:`1772833`)." #: ../Doc/whatsnew/3.2.rst:495 msgid "" From 228b3c0b2a952a27eae0d4800c4a16f6272ad38f Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Wed, 21 Mar 2018 00:55:50 +0100 Subject: [PATCH 031/115] Reviewing various typical errors. --- distutils/commandref.po | 4 ++-- distutils/sourcedist.po | 2 +- extending/building.po | 2 +- extending/embedding.po | 6 +++--- faq/windows.po | 4 ++-- install/index.po | 6 +++--- installing/index.po | 2 +- library/2to3.po | 2 +- library/cmd.po | 2 +- library/runpy.po | 2 +- library/sys.po | 6 +++--- tutorial/inputoutput.po | 2 +- 12 files changed, 20 insertions(+), 20 deletions(-) diff --git a/distutils/commandref.po b/distutils/commandref.po index 6beedc6fc..f926fcc68 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"PO-Revision-Date: 2018-03-21 00:48+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: fr\n" @@ -41,7 +41,7 @@ msgstr ":command:`install_data`" #: ../Doc/distutils/commandref.rst:37 msgid "This command installs all data files provided with the distribution." -msgstr "Cette commande installe tout les fichier fournit avec la distribution." +msgstr "Cette commande installe tous les fichiers fournis avec la distribution." #: ../Doc/distutils/commandref.rst:43 msgid ":command:`install_scripts`" diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po index cee1002b6..f48bc2ea9 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -408,7 +408,7 @@ msgid "" "two directories were mentioned in the ``packages`` option in the setup " "script---see section :ref:`setup-script`)" msgstr "" -"inclure tous les fichier source Python dans les sous-dossiers :file:" +"inclure tous les fichiers source Python dans les sous-dossiers :file:" "`distutils` et :file:`distutils/command` (parce que des packages " "correspondant à ces deux dossiers ont été mentionnés dans l'argument " "``packages`` du script d'installation ---voir le chapitre :ref:`setup-" diff --git a/extending/building.po b/extending/building.po index 98be80505..d539029b2 100644 --- a/extending/building.po +++ b/extending/building.po @@ -27,7 +27,7 @@ msgid "" "``.pyd`` on Windows), which exports an *initialization function*." msgstr "" "Une extension C pour CPython est une bibliothèque partagée (Un ``.so`` sur " -"Linux, un ``.pyd`` sur windows), qui expose une *fonction d'initialisation*." +"Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*." #: ../Doc/extending/building.rst:12 msgid "" diff --git a/extending/embedding.po b/extending/embedding.po index 8968b116f..7951a1102 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -55,7 +55,7 @@ msgstr "" "est qu'en étendant Python, le programme principal reste l'interpréteur " "Python, alors qu'en intégrant Python le programme principal peut ne rien à " "voir avec Python. C'est simplement quelques parties du programme qui " -"appellent l'interprète Python pour exécuter un peu de code Python." +"appellent l'interpréteur Python pour exécuter un peu de code Python." #: ../Doc/extending/embedding.rst:26 msgid "" @@ -261,7 +261,7 @@ msgstr "" "Ce code charge un script Python en utilisant ``argv[1]``, et appelle une " "fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les " "autres valeurs de ``argv``. Si vous :ref:`compilez et liez ` ce " -"programme (appelons l'exécutable :program:`call`), et l'appellez pour " +"programme (appelons l'exécutable :program:`call`), et l'appelez pour " "exécuter un script Python, tel que :" #: ../Doc/extending/embedding.rst:160 @@ -356,7 +356,7 @@ msgid "" "extensions, the Python script can do things like" msgstr "" "Ces deux lignes initialisent la variable ``numarg``, et rend la fonction :" -"func:`emb.numargs` accessible à l'interprète intégré. Avec ces ajouts, le " +"func:`emb.numargs` accessible à l'interpréteur intégré. Avec ces ajouts, le " "script Python petit maintenant faire des choses comme" #: ../Doc/extending/embedding.rst:260 diff --git a/faq/windows.po b/faq/windows.po index 32570ee27..3770f6a74 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -63,8 +63,8 @@ msgid "" msgstr "" "A moins que vous n'utilisiez quelque environnement de développement, vous " "devrez entrer des commandes Windows dans ce qui est diversement référé comme " -"\"DOS windows\" ou \"invite de commande windows\". En général vous pouvez " -"ouvrir cette fenêtre depuis le menu Démarrer; sous windows 7, allez dans :" +"\"DOS Windows\" ou \"invite de commande Windows\". En général vous pouvez " +"ouvrir cette fenêtre depuis le menu Démarrer; sous Windows 7, allez dans :" "Démarrer --> Programmes --> Accessoires --> Invite de commande. Vous serez " "dans la bonne fenêtre quand vous verrez une fenêtre invite de commande qui " "ressemble normalement à ça ::" diff --git a/install/index.po b/install/index.po index e22ddd92b..bdc41e51b 100644 --- a/install/index.po +++ b/install/index.po @@ -889,7 +889,7 @@ msgid "" msgstr "" "Une autre possibilité est un système de fichier réseau où le nom est utilisé " "pour écrire dans un dossier distant qui est différent du nom utilisé pour le " -"lire : par exemple, l’interprète Python appelé est :file:`/usr/local/bin/" +"lire : par exemple, l’interpréteur Python appelé est :file:`/usr/local/bin/" "python` et cherche les modules dans :file:`/usr/local/lib/python2.{X}`, mais " "ces modules doivent être installé dans, par exemple, :file:`/mnt/{@server}/" "export/lib/python2.{X}`.Ça peut être fait avec : ::" @@ -976,9 +976,9 @@ msgstr "" "Notez qu’installer des extensions à une installation Python alternative n’a " "aucun effet sur la façon dont ces extensions sont construites. En " "particulier, les fichers en-tête de Python (:file:`Python.h` et ses amis) " -"installés avec l’interprète Python utilisé pour exécuter le script *setup* " +"installés avec l’interpréteur Python utilisé pour exécuter le script *setup* " "sera utilisé pour compiler les extensions. Il est de votre responsabilité de " -"vous assurer que l’interprète utilisé pour pour exécuter les extensions " +"vous assurer que l’interpréteur utilisé pour pour exécuter les extensions " "installées de cette façon est compatible avec celui utilisé pour les " "compiler. La meilleure façon pour cela est de s’assurer qu’ils sont " "exactement la même version de Python (possiblement des compilations " diff --git a/installing/index.po b/installing/index.po index fb6a27af3..305897a96 100644 --- a/installing/index.po +++ b/installing/index.po @@ -456,7 +456,7 @@ msgstr "" "publier des *wheels*, pour, au moins Windows et Mac OS X, via le *Python " "Package Index*, ce problème devrait diminuer au fil du temps, car les " "utilisateurs sont plus régulièrement en mesure d'installer des extensions " -"pré-compilées plutôt que de devoir les compiler eux-mêmes." +"précompilées plutôt que de devoir les compiler eux-mêmes." #: ../Doc/installing/index.rst:238 msgid "" diff --git a/library/2to3.po b/library/2to3.po index dfd9ffe78..fc1a1054d 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -466,7 +466,7 @@ msgstr "Renomme :meth:`__nonzero__` en :meth:`~object.__bool__`." #: ../Doc/library/2to3.rst:342 msgid "Converts octal literals into the new syntax." msgstr "" -"Convertit les nombre écrits littéralement en octal dans leur nouvelle " +"Convertit les nombres écrits littéralement en octal dans leur nouvelle " "syntaxe." #: ../Doc/library/2to3.rst:346 diff --git a/library/cmd.po b/library/cmd.po index 46edb774f..d72f4e5d5 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -384,7 +384,7 @@ msgstr "" "utilise :func:`input` pour afficher une invite de commande et lire la " "prochaine commande; si il est faux, :meth:`sys.stdout.write` et :meth:`sys." "stdin.readline` sont utilisées. (Cela signifie qu'en important :mod:" -"`readline` sur les systèmes qui le supportent, l'interprète va " +"`readline` sur les systèmes qui le supportent, l'interpréteur va " "automatiquement supporter une édition de ligne similaire à :program:`Emacs` " "ainsi que des touches d'historique de commande)." diff --git a/library/runpy.po b/library/runpy.po index a851a9982..b62dbc1db 100644 --- a/library/runpy.po +++ b/library/runpy.po @@ -233,7 +233,7 @@ msgstr "" #: ../Doc/library/runpy.rst:169 msgid ":pep:`338` -- Executing modules as scripts" -msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" +msgstr ":pep:`338` -- Exécuter des modules en tant que scripts" #: ../Doc/library/runpy.rst:169 ../Doc/library/runpy.rst:172 msgid "PEP written and implemented by Nick Coghlan." diff --git a/library/sys.po b/library/sys.po index 052f0e57b..1f017717b 100644 --- a/library/sys.po +++ b/library/sys.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" -"PO-Revision-Date: 2018-03-21 00:09+0100\n" +"PO-Revision-Date: 2018-03-21 00:52+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -886,7 +886,7 @@ msgid "" "On Windows, the encoding may be ``'utf-8'`` or ``'mbcs'``, depending on user " "configuration." msgstr "" -"Sur windows, l'encodage peut être ``'utf-8'`` ou ``'mbcs'``, en fonction des " +"Sur Windows, l'encodage peut être ``'utf-8'`` ou ``'mbcs'``, en fonction des " "paramètres de l'utilisateur." #: ../Doc/library/sys.rst:450 @@ -898,7 +898,7 @@ msgid "" "Windows is no longer guaranteed to return ``'mbcs'``. See :pep:`529` and :" "func:`_enablelegacywindowsfsencoding` for more information." msgstr "" -"Sur windows, on est plus assurés d'obtenir ``'mbcs'``. Voir la :pep:`529` " +"Sur Windows, on est plus assurés d'obtenir ``'mbcs'``. Voir la :pep:`529` " "et :func:`_enablelegacywindowsfsencoding` pour plus d'informations." #: ../Doc/library/sys.rst:459 diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index b3734b1e3..d5aa8baea 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -339,7 +339,7 @@ msgid "" msgstr "" "En mode texte, le comportement par défaut, à la lecture, est de convertir " "les fin de lignes spécifiques à la plateforme (``\\n`` sur Unix, ``\\r\\n`` " -"sur windows etc...) en simples ``\\n``. Lors de l'écriture, le comportement " +"sur Windows etc...) en simples ``\\n``. Lors de l'écriture, le comportement " "par défaut est d'appliquer l'opération inverse : les ``\\n`` sont convertis " "dans leur équivalent sur la plateforme courante. Ces modifications " "effectuées automatiquement sont normales pour du texte mais détérioreraient " From edd64de035f76257b06f6e80f25834e2e106d0f5 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Thu, 22 Mar 2018 21:37:12 +0100 Subject: [PATCH 032/115] 'Reference Lexical Analysis' Translation --- reference/lexical_analysis.po | 512 +++++++++++++++++++++++++++++----- 1 file changed, 447 insertions(+), 65 deletions(-) diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 716045119..f0b8b6611 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -3,19 +3,19 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-04 15:51+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2018-03-22 21:35+0100\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/reference/lexical_analysis.rst:6 msgid "Lexical analysis" @@ -27,6 +27,10 @@ msgid "" "*tokens*, generated by the *lexical analyzer*. This chapter describes how " "the lexical analyzer breaks a file into tokens." msgstr "" +"Un programme Python est lu par un analyseur syntaxique (*parser* en " +"anglais). En entrée de cet analyseur syntaxique, nous trouvons des lexèmes " +"(*tokens* en anglais), produits par un analyseur lexical. Ce chapitre décrit " +"comment l'analyseur lexical découpe le fichier en lexèmes. " #: ../Doc/reference/lexical_analysis.rst:14 msgid "" @@ -35,10 +39,15 @@ msgid "" "`3120` for details. If the source file cannot be decoded, a :exc:" "`SyntaxError` is raised." msgstr "" +"Python lit le texte du programme comme des suites de caractères Unicode ; " +"l'encodage du fichier source peut être spécifié par une déclaration " +"d'encodage et vaut par défaut UTF-8, voir la :pep:`3120` pour les détails. " +"Si le fichier source ne peut pas être décodé, une exception :exc:" +"`SyntaxError` (erreur de syntaxe) est levée." #: ../Doc/reference/lexical_analysis.rst:23 msgid "Line structure" -msgstr "" +msgstr "Structure des lignes" #: ../Doc/reference/lexical_analysis.rst:27 msgid "A Python program is divided into a number of *logical lines*." @@ -56,10 +65,16 @@ msgid "" "constructed from one or more *physical lines* by following the explicit or " "implicit *line joining* rules." msgstr "" +"La fin d'une ligne logique est représentée par le lexème NEWLINE. Les " +"instructions ne peuvent pas traverser les limites des lignes logiques, sauf " +"quand NEWLINE est autorisé par la syntaxe (par exemple, entre les " +"instructions des instructions composées). Une ligne logique est constituée " +"d'une ou plusieurs *lignes physiques* en fonction des règles, explicites ou " +"implicites, de *continuation de ligne*." #: ../Doc/reference/lexical_analysis.rst:47 msgid "Physical lines" -msgstr "" +msgstr "Lignes physiques" #: ../Doc/reference/lexical_analysis.rst:49 msgid "" @@ -70,6 +85,13 @@ msgid "" "old Macintosh form using the ASCII CR (return) character. All of these " "forms can be used equally, regardless of platform." msgstr "" +"Une ligne physique est une suite de caractères terminée par une séquence de " +"fin de ligne. Dans les fichiers sources, n'importe quelle séquence de fin de " +"ligne des plateformes standards peut être utilisée ; Unix utilise le " +"caractère ASCII LF (pour *linefeed*, saut de ligne en français), Windows " +"utilise la séquence CR LF (*carriage return* suivi de *linefeed*) et " +"Macintosh utilisait le caractère ASCII CR. Toutes ces séquences peuvent être " +"utilisées, quelle que soit la plateforme." #: ../Doc/reference/lexical_analysis.rst:56 msgid "" @@ -77,6 +99,9 @@ msgid "" "using the standard C conventions for newline characters (the ``\\n`` " "character, representing ASCII LF, is the line terminator)." msgstr "" +"Lorsque vous encapsulez Python, les chaînes de code source doivent être " +"passées à l'API Python en utilisant les conventions du C standard pour les " +"caractères de fin de ligne : le caractère ``\\n``, dont le code ASCII est LF." #: ../Doc/reference/lexical_analysis.rst:64 msgid "Comments" @@ -89,10 +114,15 @@ msgid "" "end of the logical line unless the implicit line joining rules are invoked. " "Comments are ignored by the syntax; they are not tokens." msgstr "" +"Un commentaire commence par le caractère dièse (``#``, *hash* en anglais) " +"situé en dehors d'une chaine de caractères littérale et se termine à la fin " +"de la ligne physique. Un commentaire signifie la fin de la ligne logique à " +"moins qu'une règle de continuation de ligne implicite ne s'applique. Les " +"commentaires sont ignorés au niveau syntaxique, ce ne sont pas des lexèmes." #: ../Doc/reference/lexical_analysis.rst:77 msgid "Encoding declarations" -msgstr "" +msgstr "Déclaration d'encodage" #: ../Doc/reference/lexical_analysis.rst:81 msgid "" @@ -103,14 +133,21 @@ msgid "" "line of its own. If it is the second line, the first line must also be a " "comment-only line. The recommended forms of an encoding expression are ::" msgstr "" +"Si un commentaire placé sur la première ou deuxième ligne du script Python " +"correspond à l'expression rationnelle ``coding[=:]\\s*([-\\w.]+)``, ce " +"commentaire est analysé comme une déclaration d'encodage ; le premier groupe " +"de cette expression désigne l'encodage du fichier source. Cette déclaration " +"d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " +"ligne, la première ligne doit aussi être une ligne composée uniquement d'un " +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" #: ../Doc/reference/lexical_analysis.rst:90 msgid "which is recognized also by GNU Emacs, and ::" -msgstr "" +msgstr "qui est reconnue aussi par GNU Emacs et ::" #: ../Doc/reference/lexical_analysis.rst:94 msgid "which is recognized by Bram Moolenaar's VIM." -msgstr "" +msgstr "qui est reconnue par VIM de Bram Moolenaar." #: ../Doc/reference/lexical_analysis.rst:96 msgid "" @@ -119,6 +156,12 @@ msgid "" "(``b'\\xef\\xbb\\xbf'``), the declared file encoding is UTF-8 (this is " "supported, among others, by Microsoft's :program:`notepad`)." msgstr "" +"Si aucune déclaration d'encodage n'est trouvée, l'encodage par défaut est " +"utilisé : UTF-8. En plus, si les premiers octets du fichier sont " +"l'indicateur d'ordre des octets UTF-8 (``b'\\xef\\xbb\\xbf'``, *BOM* en " +"anglais pour *byte order mark*), le fichier est considéré comme étant en " +"UTF-8 (cette convention est reconnue, entre autres, par :program:`notepad` " +"de Microsoft)." #: ../Doc/reference/lexical_analysis.rst:101 msgid "" @@ -126,10 +169,13 @@ msgid "" "The encoding is used for all lexical analysis, including string literals, " "comments and identifiers." msgstr "" +"Si un encodage est déclaré, le nom de l'encodage doit être reconnu par " +"Python. L'encodage est utilisé pour toute l'analyse lexicale, y compris les " +"chaînes de caractères, les commentaires et les identifiants." #: ../Doc/reference/lexical_analysis.rst:111 msgid "Explicit line joining" -msgstr "" +msgstr "Continuation de ligne explicite" #: ../Doc/reference/lexical_analysis.rst:115 msgid "" @@ -139,6 +185,13 @@ msgid "" "following forming a single logical line, deleting the backslash and the " "following end-of-line character. For example::" msgstr "" +"Deux lignes physiques, ou plus, peuvent être jointes pour former une seule " +"ligne logique en utilisant la barre oblique inversée (``\\``) selon la règle " +"suivante : quand la ligne physique se termine par une barre oblique inversée " +"qui ne fait pas partie d'une chaine de caractères ou d'un commentaire, la " +"ligne immédiatement suivante lui est adjointe pour former une seule ligne " +"logique, en supprimant la barre oblique inversée et le caractère de fin de " +"ligne. Par exemple ::" #: ../Doc/reference/lexical_analysis.rst:126 msgid "" @@ -148,16 +201,27 @@ msgid "" "physical lines using a backslash). A backslash is illegal elsewhere on a " "line outside a string literal." msgstr "" +"Une ligne que se termine par une barre oblique inversée ne peut pas avoir de " +"commentaire. La barre oblique inversée ne permet pas de continuer un " +"commentaire. La barre oblique inversée ne permet pas de continuer un lexème, " +"sauf s'il s'agit d'une chaîne de caractères (par exemple, les lexèmes autres " +"que les chaînes de caractères ne peuvent pas être répartis sur plusieurs " +"lignes en utilisant une barre oblique inversée). La barre oblique inversée " +"n'est pas autorisée ailleurs sur la ligne, en dehors d'une chaîne de " +"caractères." #: ../Doc/reference/lexical_analysis.rst:136 msgid "Implicit line joining" -msgstr "" +msgstr "Continuation de ligne implicite" #: ../Doc/reference/lexical_analysis.rst:138 msgid "" "Expressions in parentheses, square brackets or curly braces can be split " "over more than one physical line without using backslashes. For example::" msgstr "" +"Les expressions entre parenthèses, crochets ou accolades peuvent être " +"réparties sur plusieurs lignes sans utiliser de barre oblique inversée. Par " +"exemple ::" #: ../Doc/reference/lexical_analysis.rst:146 msgid "" @@ -167,6 +231,13 @@ msgid "" "continued lines can also occur within triple-quoted strings (see below); in " "that case they cannot carry comments." msgstr "" +"Les lignes continuées implicitement peuvent avoir des commentaires. " +"L'indentation des lignes de continuation n'est pas importante. Une ligne " +"blanche est autorisée comme ligne de continuation. Il ne doit pas y avoir de " +"lexème NEWLINE entre des lignes implicitement continuées. Les lignes " +"continuées implicitement peuvent être utilisées dans des chaînes entre " +"triples guillemets (voir ci-dessous) ; dans ce cas, elles ne peuvent pas " +"avoir de commentaires." #: ../Doc/reference/lexical_analysis.rst:156 msgid "Blank lines" @@ -182,6 +253,13 @@ msgid "" "containing not even whitespace or a comment) terminates a multi-line " "statement." msgstr "" +"Une ligne logique qui ne contient que des espaces, tabulations, caractères " +"de saut de page (*formfeed* en anglais) ou commentaires est ignorée (c'est-à-" +"dire que le lexème NEWLINE n'est pas produit). Pendant l'édition interactive " +"d'instructions, la gestion des lignes vierges peut différer en fonction de " +"l'implémentation de la boucle REPL. Dans l'interpréteur standard, une ligne " +"complètement vierge (c'est-à-dire ne contenant strictement rien, même pas " +"une espace ou un commentaire) termine une instruction multi-lignes." #: ../Doc/reference/lexical_analysis.rst:171 msgid "Indentation" @@ -193,9 +271,9 @@ msgid "" "used to compute the indentation level of the line, which in turn is used to " "determine the grouping of statements." msgstr "" -"Des espaces ou tabulations au début d’une ligne logique sont utilisés pour " +"Des espaces ou tabulations au début d’une ligne logique sont utilisées pour " "connaître le niveau d’indentation de la ligne, qui est ensuite utilisé pour " -"définir l’ordre des déclarations." +"déterminer comment les instructions sont groupées." #: ../Doc/reference/lexical_analysis.rst:179 msgid "" @@ -207,6 +285,14 @@ msgid "" "lines using backslashes; the whitespace up to the first backslash determines " "the indentation." msgstr "" +"Les tabulations sont remplacées (de la gauche vers la droite) par une à huit " +"espaces de manière à ce que le nombre de caractères remplacés soit un " +"multiple de huit (nous avons ainsi la même règle que celle d'Unix). Le " +"nombre total d'espaces précédant le premier caractère non blanc détermine " +"alors le niveau d'indentation de la ligne. L'indentation ne peut pas être " +"répartie sur plusieurs lignes physiques à l'aide de barres obliques " +"inversées ; les espaces jusqu'à la première barre oblique inversée " +"déterminent l'indentation." #: ../Doc/reference/lexical_analysis.rst:187 msgid "" @@ -214,6 +300,10 @@ msgid "" "spaces in a way that makes the meaning dependent on the worth of a tab in " "spaces; a :exc:`TabError` is raised in that case." msgstr "" +"L'indentation est déclarée inconsistante et rejetée si, dans un même fichier " +"source, le mélange des tabulations et des espaces est tel que la " +"signification dépend du nombre d'espaces que représente une tabulation. Une " +"exception :exc:`TabError` est levée dans ce cas." #: ../Doc/reference/lexical_analysis.rst:191 msgid "" @@ -222,6 +312,11 @@ msgid "" "the indentation in a single source file. It should also be noted that " "different platforms may explicitly limit the maximum indentation level." msgstr "" +"**Note de compatibilité entre les plateformes :** en raison de la nature des " +"éditeurs de texte sur les plateformes non Unix, il n'est pas judicieux " +"d'utiliser un mélange d'espaces et de tabulations pour l'indentation dans un " +"seul fichier source. Il convient également de noter que des plateformes " +"peuvent explicitement limiter le niveau d'indentation maximal." #: ../Doc/reference/lexical_analysis.rst:196 msgid "" @@ -230,12 +325,18 @@ msgid "" "occurring elsewhere in the leading whitespace have an undefined effect (for " "instance, they may reset the space count to zero)." msgstr "" +"Un caractère de saut de page peut être présent au début de la ligne ; il est " +"ignoré pour les calculs d'indentation ci-dessus. Les caractères de saut de " +"page se trouvant ailleurs avec les espaces en tête de ligne ont un effet " +"indéfini (par exemple, ils peuvent remettre à zéro le nombre d'espaces)." #: ../Doc/reference/lexical_analysis.rst:203 msgid "" "The indentation levels of consecutive lines are used to generate INDENT and " "DEDENT tokens, using a stack, as follows." msgstr "" +"Les niveaux d'indentation de lignes consécutives sont utilisés pour générer " +"les lexèmes INDENT et DEDENT, en utilisant une pile, de cette façon ::" #: ../Doc/reference/lexical_analysis.rst:206 msgid "" @@ -250,16 +351,28 @@ msgid "" "generated. At the end of the file, a DEDENT token is generated for each " "number remaining on the stack that is larger than zero." msgstr "" +"Avant que la première ligne du fichier ne soit lue, un \"zéro\" est posé sur " +"la pile ; il ne sera plus jamais enlevé. Les nombres empilés sont toujours " +"strictement croissants de bas en haut. Au début de chaque ligne logique, le " +"niveau d'indentation de la ligne est comparé au sommet de la pile. S'ils " +"sont égaux, il ne se passe rien. S'il est plus grand, il est empilé et un " +"lexème INDENT est produit. S'il est plus petit, il *doit* être l'un des " +"nombres présents dans la pile ; tous les nombres de la pile qui sont plus " +"grands sont retirés et, pour chaque nombre retiré, un lexème DEDENT est " +"produit. À la fin du fichier, un lexème DEDENT est produit pour chaque " +"nombre supérieur à zéro restant sur la pile." #: ../Doc/reference/lexical_analysis.rst:217 msgid "" "Here is an example of a correctly (though confusingly) indented piece of " "Python code::" msgstr "" +"Voici un exemple de code Python correctement indenté (bien que très " +"confus) ::" #: ../Doc/reference/lexical_analysis.rst:232 msgid "The following example shows various indentation errors::" -msgstr "" +msgstr "L'exemple suivant montre plusieurs erreurs d'indentation ::" #: ../Doc/reference/lexical_analysis.rst:242 msgid "" @@ -267,10 +380,13 @@ msgid "" "error is found by the lexical analyzer --- the indentation of ``return r`` " "does not match a level popped off the stack.)" msgstr "" +"En fait, les trois premières erreurs sont détectées par l'analyseur " +"syntaxique ; seule la dernière erreur est trouvée par l'analyseur lexical " +"(l'indentation de ``return r`` ne correspond à aucun niveau dans la pile)." #: ../Doc/reference/lexical_analysis.rst:250 msgid "Whitespace between tokens" -msgstr "" +msgstr "Espaces entre lexèmes" #: ../Doc/reference/lexical_analysis.rst:252 msgid "" @@ -280,10 +396,16 @@ msgid "" "concatenation could otherwise be interpreted as a different token (e.g., ab " "is one token, but a b is two tokens)." msgstr "" +"Sauf au début d'une ligne logique ou dans les chaînes de caractères, les " +"caractères \"blancs\" espace, tabulation et saut de page peuvent être " +"utilisés de manière interchangeable pour séparer les lexèmes. Un blanc n'est " +"nécessaire entre deux lexèmes que si leur concaténation pourrait être " +"interprétée comme un lexème différent (par exemple, ab est un lexème, mais a " +"b comporte deux lexèmes)." #: ../Doc/reference/lexical_analysis.rst:262 msgid "Other tokens" -msgstr "" +msgstr "Autres lexèmes" #: ../Doc/reference/lexical_analysis.rst:264 msgid "" @@ -294,16 +416,24 @@ msgid "" "comprises the longest possible string that forms a legal token, when read " "from left to right." msgstr "" +"Outre NEWLINE, INDENT et DEDENT, il existe les catégories de lexèmes " +"suivantes : *identifiants*, *mots clés*, *littéraux*, *opérateurs* et " +"*délimiteurs*. Les blancs (autres que les fins de lignes, vus auparavant) ne " +"sont pas des lexèmes mais servent à délimiter les lexèmes. Quand une " +"ambiguïté existe, le lexème correspond à la plus grande chaîne possible qui " +"forme un lexème licite, en lisant de la gauche vers la droite." #: ../Doc/reference/lexical_analysis.rst:274 msgid "Identifiers and keywords" -msgstr "" +msgstr "Identifiants et mots-clés" #: ../Doc/reference/lexical_analysis.rst:278 msgid "" "Identifiers (also referred to as *names*) are described by the following " "lexical definitions." msgstr "" +"Les identifiants (aussi appelés *noms*) sont décrits par les définitions " +"lexicales suivantes." #: ../Doc/reference/lexical_analysis.rst:281 msgid "" @@ -311,6 +441,9 @@ msgid "" "UAX-31, with elaboration and changes as defined below; see also :pep:`3131` " "for further details." msgstr "" +"La syntaxe des identifiants en Python est basée sur l'annexe UAX-31 du " +"standard Unicode avec les modifications définies ci-dessous ; consultez la :" +"pep:`3131` pour plus de détails." #: ../Doc/reference/lexical_analysis.rst:285 msgid "" @@ -319,6 +452,10 @@ msgid "" "letters ``A`` through ``Z``, the underscore ``_`` and, except for the first " "character, the digits ``0`` through ``9``." msgstr "" +"Dans l'intervalle ASCII (U+0001..U+007F), les caractères licites pour les " +"identifiants sont les mêmes que pour Python 2.x : les lettres minuscules et " +"majuscules de ``A`` à ``Z``, le souligné (ou *underscore*) ``_`` et, sauf " +"pour le premier caractère, les chiffres de ``0`` à ``9``." #: ../Doc/reference/lexical_analysis.rst:290 msgid "" @@ -327,54 +464,65 @@ msgid "" "version of the Unicode Character Database as included in the :mod:" "`unicodedata` module." msgstr "" +"Python 3.0 introduit des caractères supplémentaires en dehors de " +"l'intervalle ASCII (voir la :pep:`3131`). Pour ces caractères, la " +"classification utilise la version de la \"base de données des caractères " +"Unicode\" telle qu'incluse dans le module :mod:`unicodedata`." #: ../Doc/reference/lexical_analysis.rst:294 msgid "Identifiers are unlimited in length. Case is significant." msgstr "" +"Les identifiants n'ont pas de limite de longueur. La casse est prise en " +"compte." #: ../Doc/reference/lexical_analysis.rst:303 msgid "The Unicode category codes mentioned above stand for:" -msgstr "" +msgstr "Les codes de catégories Unicode cités ci-dessus signifient ::" #: ../Doc/reference/lexical_analysis.rst:305 msgid "*Lu* - uppercase letters" -msgstr "" +msgstr "*Lu* -- lettre majuscules" #: ../Doc/reference/lexical_analysis.rst:306 msgid "*Ll* - lowercase letters" -msgstr "" +msgstr "*Ll* -- lettres minuscules" #: ../Doc/reference/lexical_analysis.rst:307 msgid "*Lt* - titlecase letters" msgstr "" +"*Lt* -- lettres majuscules particulières (catégorie *titlecase* de l'Unicode)" #: ../Doc/reference/lexical_analysis.rst:308 msgid "*Lm* - modifier letters" -msgstr "" +msgstr "*Lm* -- lettres modificatives avec chasse" #: ../Doc/reference/lexical_analysis.rst:309 msgid "*Lo* - other letters" -msgstr "" +msgstr "*Lo* -- autres lettres" #: ../Doc/reference/lexical_analysis.rst:310 msgid "*Nl* - letter numbers" -msgstr "" +msgstr "*Nl* -- nombres lettres (par exemple, les nombres romains)" #: ../Doc/reference/lexical_analysis.rst:311 msgid "*Mn* - nonspacing marks" msgstr "" +"*Mn* -- symboles que l'on combine avec d'autres (accents ou autres) sans " +"générer d'espace (*nonspacing marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:312 msgid "*Mc* - spacing combining marks" msgstr "" +"*Mc* -- symboles que l'on combine avec d'autres en générant une espace " +"(*spacing combining marks* en anglais)" #: ../Doc/reference/lexical_analysis.rst:313 msgid "*Nd* - decimal numbers" -msgstr "" +msgstr "*Nd* -- chiffres (arabes et autres)" #: ../Doc/reference/lexical_analysis.rst:314 msgid "*Pc* - connector punctuations" -msgstr "" +msgstr "*Pc* -- connecteurs (tirets et autres lignes)" #: ../Doc/reference/lexical_analysis.rst:315 msgid "" @@ -382,16 +530,22 @@ msgid "" "unicode.org/Public/9.0.0/ucd/PropList.txt>`_ to support backwards " "compatibility" msgstr "" +"*Other_ID_Start* -- liste explicite des caractères de `PropList.txt `_ pour la compatibilité " +"descendante." #: ../Doc/reference/lexical_analysis.rst:318 msgid "*Other_ID_Continue* - likewise" -msgstr "" +msgstr "*Other_ID_Continue* -- pareillement" #: ../Doc/reference/lexical_analysis.rst:320 msgid "" "All identifiers are converted into the normal form NFKC while parsing; " "comparison of identifiers is based on NFKC." msgstr "" +"Tous les identifiants sont convertis dans la forme normale NFKC pendant " +"l'analyse syntaxique : la comparaison des identifiants se base sur leur " +"forme NFKC." #: ../Doc/reference/lexical_analysis.rst:323 msgid "" @@ -399,6 +553,9 @@ msgid "" "Unicode 4.1 can be found at https://www.dcl.hpi.uni-potsdam.de/home/loewis/" "table-3131.html." msgstr "" +"Un fichier HTML, ne faisant pas référence, listant tous les caractères " +"valides pour Unicode 4.1 se trouve à https://www.dcl.hpi.uni-potsdam.de/home/" +"loewis/table-3131.html." #: ../Doc/reference/lexical_analysis.rst:331 msgid "Keywords" @@ -410,10 +567,13 @@ msgid "" "language, and cannot be used as ordinary identifiers. They must be spelled " "exactly as written here:" msgstr "" +"Les identifiants suivants sont des mots réservés par le langage et ne " +"peuvent pas être utilisés en tant qu'identifiants normaux. Ils doivent être " +"écrits exactement comme ci-dessous ::" #: ../Doc/reference/lexical_analysis.rst:354 msgid "Reserved classes of identifiers" -msgstr "" +msgstr "Classes réservées pour les identifiants" #: ../Doc/reference/lexical_analysis.rst:356 msgid "" @@ -421,10 +581,13 @@ msgid "" "These classes are identified by the patterns of leading and trailing " "underscore characters:" msgstr "" +"Certaines classes d'identifiants (outre les mots-clés) ont une signification " +"particulière. Ces classes se reconnaissent par des caractères de " +"soulignement en tête et en queue d'identifiant :" #: ../Doc/reference/lexical_analysis.rst:370 msgid "``_*``" -msgstr "" +msgstr "``_*``" #: ../Doc/reference/lexical_analysis.rst:361 msgid "" @@ -434,6 +597,11 @@ msgid "" "interactive mode, ``_`` has no special meaning and is not defined. See " "section :ref:`import`." msgstr "" +"L'identifiant spécial ``_`` n'est pas importé par ``from module import *``. " +"Il est utilisé dans l'interpréteur interactif pour stocker le résultat de la " +"dernière évaluation ; il est stocké dans le module :mod:`builtins`. Lorsque " +"vous n'êtes pas en mode interactif, ``_`` n'a pas de signification " +"particulière et n'est pas défini. Voir la section :ref:`import`." #: ../Doc/reference/lexical_analysis.rst:368 msgid "" @@ -441,10 +609,13 @@ msgid "" "to the documentation for the :mod:`gettext` module for more information on " "this convention." msgstr "" +"Le nom ``_`` est souvent utilisé pour internationaliser l'affichage ; " +"reportez-vous à la documentation du module :mod:`gettext` pour plus " +"d'informations sur cette convention." #: ../Doc/reference/lexical_analysis.rst:378 msgid "``__*__``" -msgstr "" +msgstr "``__*__``" #: ../Doc/reference/lexical_analysis.rst:373 msgid "" @@ -455,10 +626,18 @@ msgid "" "names, in any context, that does not follow explicitly documented use, is " "subject to breakage without warning." msgstr "" +"Noms définis par le système. Ces noms sont définis par l'interpréteur et son " +"implémentation (y compris la bibliothèque standard). Les noms actuels " +"définis par le système sont abordés dans la section :ref:`specialnames`, " +"mais aussi ailleurs. D'autres noms seront probablement définis dans les " +"futures versions de Python. Toute utilisation de noms de la forme ``__*__``, " +"dans n'importe quel contexte, qui n'est pas conforme à ce qu'indique " +"explicitement la documentation, est sujette à des mauvaises surprises sans " +"avertissement." #: ../Doc/reference/lexical_analysis.rst:385 msgid "``__*``" -msgstr "" +msgstr "``__*``" #: ../Doc/reference/lexical_analysis.rst:381 msgid "" @@ -467,22 +646,31 @@ msgid "" "name clashes between \"private\" attributes of base and derived classes. See " "section :ref:`atom-identifiers`." msgstr "" +"Noms privés pour une classe. Les noms de cette forme, lorsqu'ils sont " +"utilisés dans le contexte d'une définition de classe, sont réécrits sous une " +"forme modifiée pour éviter les conflits de noms entre les attributs \"privés" +"\" des classes de base et les classes dérivées. Voir la section :ref:`atom-" +"identifiers`." #: ../Doc/reference/lexical_analysis.rst:390 msgid "Literals" -msgstr "" +msgstr "Littéraux" #: ../Doc/reference/lexical_analysis.rst:394 msgid "Literals are notations for constant values of some built-in types." msgstr "" +"Les littéraux sont des notations pour indiquer des valeurs constantes de " +"certains types natifs." #: ../Doc/reference/lexical_analysis.rst:400 msgid "String and Bytes literals" -msgstr "" +msgstr "Littéraux de chaînes de caractères et de suites d'octets" #: ../Doc/reference/lexical_analysis.rst:404 msgid "String literals are described by the following lexical definitions:" msgstr "" +"Les chaînes de caractères littérales sont définies par les définitions " +"lexicales suivantes ::" #: ../Doc/reference/lexical_analysis.rst:429 msgid "" @@ -492,6 +680,11 @@ msgid "" "defined by the encoding declaration; it is UTF-8 if no encoding declaration " "is given in the source file; see section :ref:`encodings`." msgstr "" +"Une restriction syntaxique non indiquée par ces règles est qu'aucun blanc " +"n'est autorisé entre le :token:`stringprefix` ou :token:`bytesprefix` et le " +"reste du littéral. Le jeu de caractères source est défini par la déclaration " +"d'encodage ; il vaut UTF-8 si aucune déclaration d'encodage n'est donnée " +"dans le fichier source ; voir la section :ref:`encodings`." #: ../Doc/reference/lexical_analysis.rst:437 msgid "" @@ -502,6 +695,14 @@ msgid "" "is used to escape characters that otherwise have a special meaning, such as " "newline, backslash itself, or the quote character." msgstr "" +"Description en français : les deux types de littéraux peuvent être encadrés " +"par une paire de guillemets simples (``'``) ou doubles (``\"``). Ils " +"peuvent aussi être encadrés par une paire de trois guillemets simples ou une " +"paire de trois guillemets doubles (on appelle alors généralement ces chaînes " +"*entre triples guillemets*). La barre oblique inversée peut être utilisée " +"pour échapper des caractères qui auraient sinon une signification spéciale, " +"tels que le retour à la ligne, la barre oblique inversée elle-même ou le " +"guillemet utilisé pour délimiter la chaîne." #: ../Doc/reference/lexical_analysis.rst:444 msgid "" @@ -510,6 +711,11 @@ msgid "" "may only contain ASCII characters; bytes with a numeric value of 128 or " "greater must be expressed with escapes." msgstr "" +"Les littéraux de suites d'octets sont toujours préfixés par ``'b'`` ou " +"``'B'`` ; cela crée une instance de type :class:`bytes` au lieu du type :" +"class:`str`. Ils ne peuvent contenir que des caractères ASCII ; les octets " +"dont la valeur est supérieure ou égale à 128 doivent être exprimés à l'aide " +"d'échappements." #: ../Doc/reference/lexical_analysis.rst:449 msgid "" @@ -520,12 +726,21 @@ msgid "" "Given that Python 2.x's raw unicode literals behave differently than Python " "3.x's the ``'ur'`` syntax is not supported." msgstr "" +"Les chaînes et suites d'octets littérales peuvent être préfixées par la " +"lettre ``'r'`` ou ``'R'`` ; de telles chaînes sont appelées :dfn:`chaines " +"brutes` (*raw strings* en anglais) et traitent la barre oblique inversée " +"comme un caractère normal. En conséquence, les chaînes littérales ``'\\U'`` " +"et ``'\\u'`` ne sont pas considérées comme spéciales. Comme les littéraux " +"Unicode de Python 2.x se comportent différemment, la syntaxe ``'ur'`` n'est " +"pas reconnue en Python 3.x." #: ../Doc/reference/lexical_analysis.rst:456 msgid "" "The ``'rb'`` prefix of raw bytes literals has been added as a synonym of " "``'br'``." msgstr "" +"le préfixe ``'rb'`` a été ajouté comme synonyme de ``'br'`` pour les " +"littéraux de suites d'octets." #: ../Doc/reference/lexical_analysis.rst:460 msgid "" @@ -533,6 +748,9 @@ msgid "" "simplify the maintenance of dual Python 2.x and 3.x codebases. See :pep:" "`414` for more information." msgstr "" +"le support du préfixe historique pour les chaînes Unicode a été réintroduit " +"afin de simplifier la maintenance de code compatible Python 2.x et 3.x. Voir " +"la :pep:`414` pour davantage d'informations." #: ../Doc/reference/lexical_analysis.rst:465 msgid "" @@ -541,6 +759,11 @@ msgid "" "``'r'``, but not with ``'b'`` or ``'u'``, therefore raw formatted strings " "are possible, but formatted bytes literals are not." msgstr "" +"Une chaîne littérale qui contient ``'f'`` ou ``'F'`` dans le préfixe est " +"une :dfn:`chaîne de caractères littérale formatée` ; lisez :ref:`f-strings`. " +"Le ``'f'`` peut être combiné avec ``'r'`` mais pas avec ``'b'`` ou ``'u'``, " +"donc les chaînes de caractères formatées sont possibles mais les littéraux " +"de suites d'octets ne peuvent pas l'être." #: ../Doc/reference/lexical_analysis.rst:470 msgid "" @@ -549,6 +772,11 @@ msgid "" "literal. (A \"quote\" is the character used to open the literal, i.e. " "either ``'`` or ``\"``.)" msgstr "" +"Dans les chaînes entre triples guillemets, les sauts de ligne et guillemets " +"peuvent ne pas être échappés (et sont donc pris en compte), mais trois " +"guillemets non échappés à la suite terminent le littéral (on entend par " +"guillemet le caractère utilisé pour commencer le littéral, c'est-à-dire " +"``'`` ou ``\"``)." #: ../Doc/reference/lexical_analysis.rst:476 msgid "" @@ -556,11 +784,15 @@ msgid "" "and bytes literals are interpreted according to rules similar to those used " "by Standard C. The recognized escape sequences are:" msgstr "" +"À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " +"d'échappement dans les littéraux de chaînes et suites d'octets sont " +"interprétées comme elles le seraient par le C Standard. Les séquences " +"d'échappement reconnues sont ::" #: ../Doc/reference/lexical_analysis.rst:481 #: ../Doc/reference/lexical_analysis.rst:514 msgid "Escape Sequence" -msgstr "" +msgstr "Séquence d'échappement" #: ../Doc/reference/lexical_analysis.rst:481 #: ../Doc/reference/lexical_analysis.rst:514 @@ -578,7 +810,7 @@ msgstr "``\\newline``" #: ../Doc/reference/lexical_analysis.rst:483 msgid "Backslash and newline ignored" -msgstr "" +msgstr "barre oblique inversée et retour à la ligne ignorés" #: ../Doc/reference/lexical_analysis.rst:485 msgid "``\\\\``" @@ -586,7 +818,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:485 msgid "Backslash (``\\``)" -msgstr "" +msgstr "barre oblique inversée (``\\``)" #: ../Doc/reference/lexical_analysis.rst:487 msgid "``\\'``" @@ -594,7 +826,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:487 msgid "Single quote (``'``)" -msgstr "" +msgstr "guillemet simple (``'``)" #: ../Doc/reference/lexical_analysis.rst:489 msgid "``\\\"``" @@ -602,7 +834,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:489 msgid "Double quote (``\"``)" -msgstr "" +msgstr "guillemet double (``\"``)" #: ../Doc/reference/lexical_analysis.rst:491 msgid "``\\a``" @@ -610,7 +842,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:491 msgid "ASCII Bell (BEL)" -msgstr "" +msgstr "cloche ASCII (BEL)" #: ../Doc/reference/lexical_analysis.rst:493 msgid "``\\b``" @@ -618,7 +850,7 @@ msgstr "``\\b``" #: ../Doc/reference/lexical_analysis.rst:493 msgid "ASCII Backspace (BS)" -msgstr "" +msgstr "retour arrière ASCII (BS)" #: ../Doc/reference/lexical_analysis.rst:495 msgid "``\\f``" @@ -626,7 +858,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:495 msgid "ASCII Formfeed (FF)" -msgstr "" +msgstr "saut de page ASCII (FF)" #: ../Doc/reference/lexical_analysis.rst:497 msgid "``\\n``" @@ -634,7 +866,7 @@ msgstr "``\\n``" #: ../Doc/reference/lexical_analysis.rst:497 msgid "ASCII Linefeed (LF)" -msgstr "" +msgstr "saut de ligne ASCII (LF)" #: ../Doc/reference/lexical_analysis.rst:499 msgid "``\\r``" @@ -642,7 +874,7 @@ msgstr "``\\r``" #: ../Doc/reference/lexical_analysis.rst:499 msgid "ASCII Carriage Return (CR)" -msgstr "" +msgstr "retour à la ligne ASCII (CR)" #: ../Doc/reference/lexical_analysis.rst:501 msgid "``\\t``" @@ -650,7 +882,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:501 msgid "ASCII Horizontal Tab (TAB)" -msgstr "" +msgstr "tabulation horizontale ASCII (TAB)" #: ../Doc/reference/lexical_analysis.rst:503 msgid "``\\v``" @@ -658,7 +890,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:503 msgid "ASCII Vertical Tab (VT)" -msgstr "" +msgstr "tabulation verticale ASCII (VT)" #: ../Doc/reference/lexical_analysis.rst:505 msgid "``\\ooo``" @@ -666,7 +898,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:505 msgid "Character with octal value *ooo*" -msgstr "" +msgstr "caractère dont le code est *ooo* en octal" #: ../Doc/reference/lexical_analysis.rst:505 msgid "(1,3)" @@ -678,7 +910,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:508 msgid "Character with hex value *hh*" -msgstr "" +msgstr "caractère dont le code est *ooo* en hexadécimal" #: ../Doc/reference/lexical_analysis.rst:508 msgid "(2,3)" @@ -687,6 +919,8 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:511 msgid "Escape sequences only recognized in string literals are:" msgstr "" +"Les séquences d'échappement reconnues seulement dans les chaînes littérales " +"sont ::" #: ../Doc/reference/lexical_analysis.rst:516 msgid "``\\N{name}``" @@ -694,7 +928,7 @@ msgstr "``\\N{name}``" #: ../Doc/reference/lexical_analysis.rst:516 msgid "Character named *name* in the Unicode database" -msgstr "" +msgstr "caractère dont le nom est *name* dans la base de données Unicode" #: ../Doc/reference/lexical_analysis.rst:516 msgid "\\(4)" @@ -706,7 +940,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:519 msgid "Character with 16-bit hex value *xxxx*" -msgstr "" +msgstr "caractère dont le code est *xxxx* en hexadécimal" #: ../Doc/reference/lexical_analysis.rst:519 msgid "\\(5)" @@ -718,7 +952,7 @@ msgstr "``\\Uxxxxxxxx``" #: ../Doc/reference/lexical_analysis.rst:522 msgid "Character with 32-bit hex value *xxxxxxxx*" -msgstr "" +msgstr "caractère dont le code est *xxxxxxxx* en hexadécimal sur 32 bits" #: ../Doc/reference/lexical_analysis.rst:522 msgid "\\(6)" @@ -726,15 +960,18 @@ msgstr "\\(6)" #: ../Doc/reference/lexical_analysis.rst:526 msgid "Notes:" -msgstr "Notes : " +msgstr "Notes ::" #: ../Doc/reference/lexical_analysis.rst:529 msgid "As in Standard C, up to three octal digits are accepted." msgstr "" +"Comme dans le C Standard, jusqu'à trois chiffres en base huit sont acceptés." #: ../Doc/reference/lexical_analysis.rst:532 msgid "Unlike in Standard C, exactly two hex digits are required." msgstr "" +"Contrairement au C Standard, il est obligatoire de fournir deux chiffres " +"hexadécimaux." #: ../Doc/reference/lexical_analysis.rst:535 msgid "" @@ -742,20 +979,25 @@ msgid "" "given value. In a string literal, these escapes denote a Unicode character " "with the given value." msgstr "" +"Dans un littéral de suite d'octets, un échappement hexadécimal ou octal est " +"un octet dont la valeur est donnée. Dans une chaîne littérale, un " +"échappement est un caractère Unicode dont le code est donné." #: ../Doc/reference/lexical_analysis.rst:540 msgid "Support for name aliases [#]_ has been added." -msgstr "" +msgstr "Ajout du support pour les alias de noms [#]_." #: ../Doc/reference/lexical_analysis.rst:544 msgid "Exactly four hex digits are required." -msgstr "" +msgstr "Exactement quatre chiffres hexadécimaux sont requis." #: ../Doc/reference/lexical_analysis.rst:547 msgid "" "Any Unicode character can be encoded this way. Exactly eight hex digits are " "required." msgstr "" +"N'importe quel caractère Unicode peut être encodé de cette façon. Exactement " +"huit chiffres hexadécimaux sont requis." #: ../Doc/reference/lexical_analysis.rst:553 msgid "" @@ -766,12 +1008,23 @@ msgid "" "that the escape sequences only recognized in string literals fall into the " "category of unrecognized escapes for bytes literals." msgstr "" +"Contrairement au C standard, toutes les séquences d'échappement non " +"reconnues sont laissées inchangées dans la chaîne, c'est-à-dire que *la " +"barre oblique inversée est laissée dans le résultat* (ce comportement est " +"utile en cas de débogage : si une séquence d'échappement est mal tapée, la " +"sortie résultante est plus facilement reconnue comme source de l'erreur). " +"Notez bien également que les séquences d'échappement reconnues uniquement " +"dans les littéraux de chaînes de caractères ne sont pas reconnues pour les " +"littéraux de suites d'octets." #: ../Doc/reference/lexical_analysis.rst:560 msgid "" "Unrecognized escape sequences produce a DeprecationWarning. In some future " "version of Python they will be a SyntaxError." msgstr "" +"Les séquences d'échappement non reconnues produisent un avertissement " +"DeprecationWarning. Dans les futures versions de Python, elles génèreront " +"une erreur de syntaxe." #: ../Doc/reference/lexical_analysis.rst:564 msgid "" @@ -785,10 +1038,22 @@ msgid "" "interpreted as those two characters as part of the literal, *not* as a line " "continuation." msgstr "" +"Même dans une chaîne littérale brute, les guillemets peuvent être échappés " +"avec une barre oblique inversée mais la barre oblique inversée reste dans le " +"résultat ; par exemple, ``r\"\\\"\"`` est une chaîne de caractères valide " +"composée de deux caractères : une barre oblique inversée et un guillemet " +"double ; ``r\"\\\"`` n'est pas une chaîne de caractères valide (même une " +"chaîne de caractères brute ne peut pas se terminer par un nombre impair de " +"barres obliques inversées). Plus précisément, *une chaîne littérale brute ne " +"peut pas se terminer par une seule barre oblique inversée* (puisque la barre " +"oblique inversée échappe le guillemet suivant). Notez également qu'une " +"simple barre oblique inversée suivie d'un saut de ligne est interprétée " +"comme deux caractères faisant partie du littéral et *non* comme une " +"continuation de ligne." #: ../Doc/reference/lexical_analysis.rst:577 msgid "String literal concatenation" -msgstr "" +msgstr "Concaténation de chaînes de caractères" #: ../Doc/reference/lexical_analysis.rst:579 msgid "" @@ -799,6 +1064,14 @@ msgid "" "number of backslashes needed, to split long strings conveniently across long " "lines, or even to add comments to parts of strings, for example::" msgstr "" +"Plusieurs chaînes de caractères ou suites d'octets adjacentes (séparées par " +"des blancs), utilisant éventuellement des conventions de guillemets " +"différentes, sont autorisées. La signification est la même que leur " +"concaténation. Ainsi, ``\"hello\" 'world'`` est l'équivalent de ``" +"\"helloworld\"``. Cette fonctionnalité peut être utilisée pour réduire le " +"nombre de barres obliques inverses, pour diviser de longues chaînes de " +"caractères sur plusieurs lignes ou même pour ajouter des commentaires à des " +"portions de chaînes de caractères. Par exemple ::" #: ../Doc/reference/lexical_analysis.rst:590 msgid "" @@ -809,10 +1082,18 @@ msgid "" "triple quoted strings), and formatted string literals may be concatenated " "with plain string literals." msgstr "" +"Notez que cette fonctionnalité agit au niveau syntaxique mais est " +"implémentée au moment de la compilation. Pour concaténer les expressions des " +"chaînes de caractères au moment de l'exécution, vous devez utiliser " +"l'opérateur '+'. Notez également que la concaténation littérale peut " +"utiliser un style différent de guillemets pour chaque composant (et même " +"mélanger des chaînes de caractères brutes et des chaînes de caractères entre " +"triples guillemets). Enfin, les chaînes de caractères formatées peuvent être " +"concaténées avec des chaînes de caractères ordinaires." #: ../Doc/reference/lexical_analysis.rst:606 msgid "Formatted string literals" -msgstr "" +msgstr "Chaînes de caractères formatées littérales" #: ../Doc/reference/lexical_analysis.rst:610 msgid "" @@ -822,6 +1103,12 @@ msgid "" "While other string literals always have a constant value, formatted strings " "are really expressions evaluated at run time." msgstr "" +"Une :dfn:`chaine de caractères formatée littérale` ou :dfn:`f-string` est " +"une chaine de caractères littérale préfixée par ``'f'`` ou ``'F'``. Ces " +"chaines peuvent contenir des champs à remplacer, c'est-à-dire des " +"expressions délimitées par des accolades ``{}``. Alors que les autres " +"littéraux de chaines ont des valeurs constantes, les chaines formatées sont " +"de vraies expressions évaluées à l'exécution." #: ../Doc/reference/lexical_analysis.rst:616 msgid "" @@ -829,6 +1116,10 @@ msgid "" "literal is also marked as a raw string). After decoding, the grammar for " "the contents of the string is:" msgstr "" +"Les séquences d'échappement sont décodées comme à l'intérieur des chaînes de " +"caractères ordinaires (sauf lorsqu'une chaîne de caractères est également " +"marquée comme une chaîne brute). Après décodage, la grammaire s'appliquant " +"au contenu de la chaîne de caractères est :" #: ../Doc/reference/lexical_analysis.rst:630 msgid "" @@ -841,6 +1132,14 @@ msgid "" "colon ``':'``. A replacement field ends with a closing curly bracket " "``'}'``." msgstr "" +"Les portions qui sont en dehors des accolades sont traitées comme les " +"littéraux, sauf les doubles accolades ``'{{'`` ou ``'}}'`` qui sont " +"remplacées par la simple accolade correspondante. Une simple accolade " +"ouvrante ``'{'`` marque le début du champ à remplacer, qui commence par une " +"expression Python. Après l'expression, il peut y avoir un champ de " +"conversion, introduit par un point d'exclamation ``'!'``. La spécification " +"de format peut aussi être ajouté, introduite par le caractère deux-points " +"``':'``. Le champ à remplacer se termine par une accolade fermante ``'}'``." #: ../Doc/reference/lexical_analysis.rst:639 msgid "" @@ -852,6 +1151,15 @@ msgid "" "comments. Each expression is evaluated in the context where the formatted " "string literal appears, in order from left to right." msgstr "" +"Les expressions dans les chaînes de caractères formatées littérales sont " +"traitées comme des expressions Python normales entourées de parenthèses, à " +"quelques exceptions près. Une expression vide n'est pas autorisée et une " +"expression :keyword:`lambda` doit être explicitement entourée de " +"parenthèses. Les expressions de remplacement peuvent contenir des sauts de " +"ligne (par exemple dans les chaînes de caractères entre triples guillemets) " +"mais elles ne peuvent pas contenir de commentaire. Chaque expression est " +"évaluée dans le contexte où la chaîne de caractères formatée apparaît, de " +"gauche à droite." #: ../Doc/reference/lexical_analysis.rst:647 msgid "" @@ -859,6 +1167,10 @@ msgid "" "converted before formatting. Conversion ``'!s'`` calls :func:`str` on the " "result, ``'!r'`` calls :func:`repr`, and ``'!a'`` calls :func:`ascii`." msgstr "" +"Si une conversion est spécifiée, le résultat de l'évaluation de l'expression " +"est converti avant d'être formaté. La conversion ``'!s'`` appelle :func:" +"`str` sur le résultat, ``'!r'`` appelle :func:`repr` et ``'!a'`` appelle :" +"func:`ascii`." #: ../Doc/reference/lexical_analysis.rst:651 msgid "" @@ -868,6 +1180,11 @@ msgid "" "omitted. The formatted result is then included in the final value of the " "whole string." msgstr "" +"Le résultat est ensuite formaté en utilisant le protocole de :func:`format`. " +"La spécification du format est passée à la méthode :meth:`__format__` de " +"l'expression ou du résultat de la conversion. Une chaîne vide est passée " +"lorsque la spécification de format est omise. Le résultat formaté est alors " +"inclus dans la valeur finale de la chaîne complète." #: ../Doc/reference/lexical_analysis.rst:657 msgid "" @@ -877,16 +1194,24 @@ msgid "" "fields. The :ref:`format specifier mini-language ` is the same " "as that used by the string .format() method." msgstr "" +"Les spécifications de format peuvent inclure des champs de remplacement " +"imbriqués. Ces champs imbriqués peuvent inclure leurs propres champs de " +"conversion et :ref:`spécifications de format ` mais " +"l'imbrication ne doit pas aller plus profond. Le :ref:`mini-langage de " +"spécification de format ` est le même que celui utilisé par la " +"méthode string.format()." #: ../Doc/reference/lexical_analysis.rst:663 msgid "" "Formatted string literals may be concatenated, but replacement fields cannot " "be split across literals." msgstr "" +"Les chaînes formatées littérales peuvent être concaténées mais les champs à " +"remplacer ne peuvent pas être divisés entre les littéraux." #: ../Doc/reference/lexical_analysis.rst:666 msgid "Some examples of formatted string literals::" -msgstr "" +msgstr "Quelques exemples de chaines formatées littérales ::" #: ../Doc/reference/lexical_analysis.rst:685 msgid "" @@ -894,33 +1219,46 @@ msgid "" "characters in the replacement fields must not conflict with the quoting used " "in the outer formatted string literal::" msgstr "" +"Une conséquence de partager la même syntaxe avec les chaînes littérales " +"normales est que les caractères dans les champs à remplacer ne doivent pas " +"entrer en conflit avec le guillemet utilisé pour encadrer la chaine formatée " +"littérale ::" #: ../Doc/reference/lexical_analysis.rst:692 msgid "" "Backslashes are not allowed in format expressions and will raise an error::" msgstr "" +"La barre oblique inversée n'est pas autorisée dans les expressions des " +"champs à remplacer et son utilisation génère une erreur ::" #: ../Doc/reference/lexical_analysis.rst:697 msgid "" "To include a value in which a backslash escape is required, create a " "temporary variable." msgstr "" +"Pour inclure une valeur où l'échappement par barre oblique inversée est " +"nécessaire, vous devez créer une variable temporaire." #: ../Doc/reference/lexical_analysis.rst:704 msgid "" "Formatted string literals cannot be used as docstrings, even if they do not " "include expressions." msgstr "" +"Une chaine formatée littérale ne peut pas être utilisée en tant que " +"docstring, même si elle ne comporte pas d'expression." #: ../Doc/reference/lexical_analysis.rst:715 msgid "" "See also :pep:`498` for the proposal that added formatted string literals, " "and :meth:`str.format`, which uses a related format string mechanism." msgstr "" +"Consultez aussi la :pep:`498` qui propose l'ajout des chaines formatées " +"littérales et :meth:`str.format` qui utilise un mécanisme similaire pour " +"formater les chaînes de caractères." #: ../Doc/reference/lexical_analysis.rst:722 msgid "Numeric literals" -msgstr "" +msgstr "Littéraux numériques" #: ../Doc/reference/lexical_analysis.rst:728 msgid "" @@ -928,6 +1266,10 @@ msgid "" "and imaginary numbers. There are no complex literals (complex numbers can " "be formed by adding a real number and an imaginary number)." msgstr "" +"Il existe trois types de littéraux numériques : les entiers, les nombres à " +"virgule flottante et les nombres imaginaires. Il n'y a pas de littéraux " +"complexes (les nombres complexes peuvent être construits en ajoutant un " +"nombre réel et un nombre imaginaire)." #: ../Doc/reference/lexical_analysis.rst:732 msgid "" @@ -935,20 +1277,26 @@ msgid "" "actually an expression composed of the unary operator '``-``' and the " "literal ``1``." msgstr "" +"Notez que les littéraux numériques ne comportent pas de signe ; une phrase " +"telle que ``-1`` est en fait une expression composée de l'opérateur unitaire " +"'``-``' et du littéral ``1``." #: ../Doc/reference/lexical_analysis.rst:740 msgid "Integer literals" -msgstr "" +msgstr "Entiers littéraux " #: ../Doc/reference/lexical_analysis.rst:742 msgid "Integer literals are described by the following lexical definitions:" msgstr "" +"Les entiers littéraux sont décrits par les définitions lexicales suivantes ::" #: ../Doc/reference/lexical_analysis.rst:756 msgid "" "There is no limit for the length of integer literals apart from what can be " "stored in available memory." msgstr "" +"Il n'y a pas de limite pour la longueur des entiers littéraux, sauf celle " +"relative à la capacité mémoire." #: ../Doc/reference/lexical_analysis.rst:759 msgid "" @@ -956,6 +1304,10 @@ msgid "" "They can be used to group digits for enhanced readability. One underscore " "can occur between digits, and after base specifiers like ``0x``." msgstr "" +"Les soulignés sont ignorés pour déterminer la valeur numérique du littéral. " +"Ils peuvent être utilisés pour grouper les chiffres afin de faciliter la " +"lecture. Un souligné peut être placé entre des chiffres ou après la " +"spécification de la base telle que `0x``." #: ../Doc/reference/lexical_analysis.rst:763 msgid "" @@ -963,24 +1315,30 @@ msgid "" "is for disambiguation with C-style octal literals, which Python used before " "version 3.0." msgstr "" +"Notez que placer des zéros en tête de nombre pour un nombre décimal " +"différent de zéro n'est pas autorisé. Cela permet d'éviter l’ambigüité avec " +"les littéraux en base octale selon le style C que Python utilisait avant la " +"version 3.0." #: ../Doc/reference/lexical_analysis.rst:767 msgid "Some examples of integer literals::" -msgstr "" +msgstr "Quelques exemples d'entiers littéraux ::" #: ../Doc/reference/lexical_analysis.rst:773 #: ../Doc/reference/lexical_analysis.rst:801 msgid "Underscores are now allowed for grouping purposes in literals." -msgstr "" +msgstr "Les soulignés ne sont pas autorisés pour grouper les littéraux." #: ../Doc/reference/lexical_analysis.rst:780 msgid "Floating point literals" -msgstr "" +msgstr "Nombres à virgule flottante littéraux" #: ../Doc/reference/lexical_analysis.rst:782 msgid "" "Floating point literals are described by the following lexical definitions:" msgstr "" +"Les nombres à virgule flottante littéraux sont décrits par les définitions " +"lexicales suivantes ::" #: ../Doc/reference/lexical_analysis.rst:792 msgid "" @@ -990,18 +1348,25 @@ msgid "" "dependent. As in integer literals, underscores are supported for digit " "grouping." msgstr "" +"Notez que la partie entière et l'exposant sont toujours interprétés comme " +"étant en base 10. Par exemple, ``077e010`` est licite et désigne le même " +"nombre que ``77e10``. La plage autorisée pour les littéraux de nombres à " +"virgule flottante dépend de l'implémentation. Comme pour les entiers " +"littéraux, les soulignés permettent de grouper des chiffres." #: ../Doc/reference/lexical_analysis.rst:797 msgid "Some examples of floating point literals::" -msgstr "" +msgstr "Quelques exemples de nombres à virgule flottante littéraux ::" #: ../Doc/reference/lexical_analysis.rst:808 msgid "Imaginary literals" -msgstr "" +msgstr "Imaginaires littéraux" #: ../Doc/reference/lexical_analysis.rst:810 msgid "Imaginary literals are described by the following lexical definitions:" msgstr "" +"Les nombres imaginaires sont décrits par les définitions lexicales " +"suivantes ::" #: ../Doc/reference/lexical_analysis.rst:815 msgid "" @@ -1011,6 +1376,12 @@ msgid "" "nonzero real part, add a floating point number to it, e.g., ``(3+4j)``. " "Some examples of imaginary literals::" msgstr "" +"Un littéral imaginaire produit un nombre complexe dont la partie réelle est " +"0.0. Les nombres complexes sont représentés comme une paire de nombres à " +"virgule flottante et possèdent les mêmes restrictions concernant les plages " +"autorisées. Pour créer un nombre complexe dont la partie réelle est non " +"nulle, ajoutez un nombre à virgule flottante à votre littéral imaginaire. " +"Par exemple ``(3+4j)``. Voici d'autres exemples de littéraux imaginaires ::" #: ../Doc/reference/lexical_analysis.rst:827 msgid "Operators" @@ -1018,15 +1389,15 @@ msgstr "Opérateurs" #: ../Doc/reference/lexical_analysis.rst:831 msgid "The following tokens are operators:" -msgstr "" +msgstr "Les lexèmes suivants sont des opérateurs ::" #: ../Doc/reference/lexical_analysis.rst:844 msgid "Delimiters" -msgstr "" +msgstr "Délimiteurs" #: ../Doc/reference/lexical_analysis.rst:848 msgid "The following tokens serve as delimiters in the grammar:" -msgstr "" +msgstr "Les lexèmes suivants servent de délimiteurs dans la grammaire ::" #: ../Doc/reference/lexical_analysis.rst:857 msgid "" @@ -1035,18 +1406,29 @@ msgid "" "second half of the list, the augmented assignment operators, serve lexically " "as delimiters, but also perform an operation." msgstr "" +"Le point peut aussi apparaître dans les littéraux de nombres à virgule " +"flottante et imaginaires. Une suite de trois points possède une " +"signification spéciale : c'est une ellipse littérale. La deuxième partie de " +"la liste, les opérateurs d'assignation augmentés, servent de délimiteurs " +"pour l'analyseur lexical mais sont aussi des opérateurs." #: ../Doc/reference/lexical_analysis.rst:862 msgid "" "The following printing ASCII characters have special meaning as part of " "other tokens or are otherwise significant to the lexical analyzer:" msgstr "" +"Les caractères ASCII suivants ont une signification spéciale en tant que " +"partie d'autres lexèmes ou ont une signification particulière pour " +"l'analyseur lexical :" #: ../Doc/reference/lexical_analysis.rst:869 msgid "" "The following printing ASCII characters are not used in Python. Their " "occurrence outside string literals and comments is an unconditional error:" msgstr "" +"Les caractères ASCII suivants ne sont pas utilisés en Python. S'ils " +"apparaissent en dehors de chaines littérales ou de commentaires, ils " +"produisent une erreur." #: ../Doc/reference/lexical_analysis.rst:878 msgid "Footnotes" From 06da6148b6c92f8f2442f09937ee60ad0bf4334a Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Thu, 22 Mar 2018 23:26:39 +0100 Subject: [PATCH 033/115] Tutorial Review after automatic replacements. --- tutorial/classes.po | 8 +++++++- tutorial/controlflow.po | 2 +- tutorial/errors.po | 2 +- whatsnew/3.1.po | 4 ++-- 4 files changed, 11 insertions(+), 5 deletions(-) diff --git a/tutorial/classes.po b/tutorial/classes.po index fe5d94320..0c67d52e8 100644 --- a/tutorial/classes.po +++ b/tutorial/classes.po @@ -740,7 +740,13 @@ msgstr "" "Si vous ne comprenez toujours pas comment les méthodes fonctionnent, un coup " "d'œil à l'implémentation vous aidera peut être. Lorsque un attribut d'une " "instance est référencé et que ce n'est pas un attribut 'données', sa classe " -"est recherchée. Si le nom correspond à un attribut valide et que c'est." +"est recherchée. Si le nom correspond à un attribut valide et que c'est un " +"objet fonction, un objet méthode est créé en générant un objet abstrait qui " +"regroupe (des pointeurs vers) l'objet instance et l'objet fonction qui vient " +"d'être trouvé : c'est l'objet méthode. Quand l'objet méthode est appelé avec " +"une liste d'arguments, une nouvelle liste d'arguments est construite à " +"partir de l'objet instance et de la liste des arguments. L'objet fonction " +"est alors appelé avec cette nouvelle liste d'arguments." #: ../Doc/tutorial/classes.rst:403 msgid "Class and Instance Variables" diff --git a/tutorial/controlflow.po b/tutorial/controlflow.po index 0e5293fc6..c66f9fd96 100644 --- a/tutorial/controlflow.po +++ b/tutorial/controlflow.po @@ -316,7 +316,7 @@ msgstr "" "qui utilisent ces chaînes de documentation pour générer automatiquement une " "documentation en ligne ou imprimée, ou pour permettre à l'utilisateur de " "naviguer de façon interactive dans le code ; prenez-en l'habitude, c'est une " -"bonne pratique que de documenter le code que vous écrivez !." +"bonne pratique que de documenter le code que vous écrivez !" #: ../Doc/tutorial/controlflow.rst:277 msgid "" diff --git a/tutorial/errors.po b/tutorial/errors.po index da14288f6..68cc86d31 100644 --- a/tutorial/errors.po +++ b/tutorial/errors.po @@ -154,7 +154,7 @@ msgstr "" #: ../Doc/tutorial/errors.rst:96 msgid "The :keyword:`try` statement works as follows." -msgstr "L'instruction :keyword:`try` fonctionne comme ceci :." +msgstr "L'instruction :keyword:`try` fonctionne comme ceci :" #: ../Doc/tutorial/errors.rst:98 msgid "" diff --git a/whatsnew/3.1.po b/whatsnew/3.1.po index 921825a09..13bad446f 100644 --- a/whatsnew/3.1.po +++ b/whatsnew/3.1.po @@ -354,7 +354,7 @@ msgstr "" #: ../Doc/whatsnew/3.1.rst:315 msgid "(Contributed by Vinay Sajip; :issue:`4384`)." -msgstr "(Contribution par Vinay Sajip; :issue:`4384`.)." +msgstr "(Contribution par Vinay Sajip ; :issue:`4384`)." #: ../Doc/whatsnew/3.1.rst:317 msgid "" @@ -534,7 +534,7 @@ msgid "" "issue:`4753`)." msgstr "" "(Contribution par Antoine Pitrou ainsi qu’un certain nombre d’autres " -"participants; :issue:`4753`.)." +"participants ; :issue:`4753`)." #: ../Doc/whatsnew/3.1.rst:445 msgid "" From 2641e7edf4da17e67ed0c884e1d235590b8414bc Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Fri, 23 Mar 2018 09:57:03 +0100 Subject: [PATCH 034/115] merge pot files. --- c-api/init.po | 6 +- c-api/long.po | 15 +- c-api/module.po | 116 ++++---- c-api/sequence.po | 49 ++- c-api/unicode.po | 96 +----- extending/newtypes.po | 4 +- faq/extending.po | 6 +- library/abc.po | 71 ++--- library/array.po | 6 +- library/ast.po | 56 ++-- library/base64.po | 35 +-- library/constants.po | 15 +- library/dbm.po | 8 +- library/fileinput.po | 8 +- library/functions.po | 494 ++++++++++++++++--------------- library/importlib.po | 4 +- library/ipaddress.po | 331 ++++++++++++--------- library/math.po | 6 +- library/platform.po | 6 +- library/re.po | 23 +- library/socket.po | 392 ++++++++++++------------ library/ssl.po | 69 +++-- library/test.po | 9 +- library/tkinter.ttk.po | 9 +- library/unittest.po | 4 +- library/venv.po | 69 +++-- library/xml.etree.elementtree.po | 6 +- library/zipapp.po | 201 ++++++++++++- library/zlib.po | 150 +++++----- reference/datamodel.po | 353 +++++++++++----------- sphinx.po | 119 ++++---- tutorial/inputoutput.po | 6 +- tutorial/modules.po | 143 +++++---- tutorial/venv.po | 3 +- using/cmdline.po | 236 ++++++++------- using/unix.po | 58 ++-- 36 files changed, 1698 insertions(+), 1484 deletions(-) diff --git a/c-api/init.po b/c-api/init.po index f3c458fbe..9d3b57823 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -67,8 +67,8 @@ msgid "" "last call to :c:func:`Py_Initialize`. Ideally, this frees all memory " "allocated by the Python interpreter. This is a no-op when called for a " "second time (without calling :c:func:`Py_Initialize` again first). Normally " -"the return value is 0. If there were errors during finalization (flushing " -"buffered data), -1 is returned." +"the return value is ``0``. If there were errors during finalization " +"(flushing buffered data), ``-1`` is returned." msgstr "" #: ../Doc/c-api/init.rst:70 diff --git a/c-api/long.po b/c-api/long.po index 09b097e67..808c8c6f8 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -126,12 +126,6 @@ msgid "" "`PyLong_FromString`." msgstr "" -#: ../Doc/c-api/long.rst:107 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyLong_FromUnicodeObject()." -msgstr "" - #: ../Doc/c-api/long.rst:107 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -169,7 +163,7 @@ msgstr "" #: ../Doc/c-api/long.rst:169 ../Doc/c-api/long.rst:183 #: ../Doc/c-api/long.rst:200 ../Doc/c-api/long.rst:262 #: ../Doc/c-api/long.rst:274 -msgid "Returns -1 on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" #: ../Doc/c-api/long.rst:149 @@ -305,7 +299,8 @@ msgid "" msgstr "" #: ../Doc/c-api/long.rst:285 -msgid "Returns -1.0 on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgid "" +"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" #: ../Doc/c-api/long.rst:290 @@ -317,5 +312,5 @@ msgid "" msgstr "" #: ../Doc/c-api/long.rst:295 -msgid "Returns NULL on error. Use :c:func:`PyErr_Occurred` to disambiguate." +msgid "Returns *NULL* on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" diff --git a/c-api/module.po b/c-api/module.po index e89ad7bea..2ab3f3988 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-01 13:21+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -211,64 +211,70 @@ msgstr "" #: ../Doc/c-api/module.rst:198 msgid "" "A traversal function to call during GC traversal of the module object, or " -"*NULL* if not needed." +"*NULL* if not needed. This function may be called before module state is " +"allocated (:c:func:`PyModule_GetState()` may return `NULL`), and before the :" +"c:member:`Py_mod_exec` function is executed." msgstr "" -#: ../Doc/c-api/module.rst:203 +#: ../Doc/c-api/module.rst:205 msgid "" "A clear function to call during GC clearing of the module object, or *NULL* " -"if not needed." +"if not needed. This function may be called before module state is allocated " +"(:c:func:`PyModule_GetState()` may return `NULL`), and before the :c:member:" +"`Py_mod_exec` function is executed." msgstr "" -#: ../Doc/c-api/module.rst:208 +#: ../Doc/c-api/module.rst:212 msgid "" "A function to call during deallocation of the module object, or *NULL* if " -"not needed." +"not needed. This function may be called before module state is allocated (:c:" +"func:`PyModule_GetState()` may return `NULL`), and before the :c:member:" +"`Py_mod_exec` function is executed." msgstr "" -#: ../Doc/c-api/module.rst:212 +#: ../Doc/c-api/module.rst:218 msgid "Single-phase initialization" msgstr "" -#: ../Doc/c-api/module.rst:214 +#: ../Doc/c-api/module.rst:220 msgid "" "The module initialization function may create and return the module object " "directly. This is referred to as \"single-phase initialization\", and uses " "one of the following two module creation functions:" msgstr "" -#: ../Doc/c-api/module.rst:220 +#: ../Doc/c-api/module.rst:226 msgid "" "Create a new module object, given the definition in *def*. This behaves " "like :c:func:`PyModule_Create2` with *module_api_version* set to :const:" "`PYTHON_API_VERSION`." msgstr "" -#: ../Doc/c-api/module.rst:227 +#: ../Doc/c-api/module.rst:233 msgid "" "Create a new module object, given the definition in *def*, assuming the API " "version *module_api_version*. If that version does not match the version of " "the running interpreter, a :exc:`RuntimeWarning` is emitted." msgstr "" -#: ../Doc/c-api/module.rst:233 +#: ../Doc/c-api/module.rst:239 msgid "" "Most uses of this function should be using :c:func:`PyModule_Create` " "instead; only use this if you are sure you need it." msgstr "" -#: ../Doc/c-api/module.rst:236 +#: ../Doc/c-api/module.rst:242 msgid "" "Before it is returned from in the initialization function, the resulting " "module object is typically populated using functions like :c:func:" "`PyModule_AddObject`." msgstr "" -#: ../Doc/c-api/module.rst:242 +#: ../Doc/c-api/module.rst:248 msgid "Multi-phase initialization" msgstr "" -#: ../Doc/c-api/module.rst:244 +#: ../Doc/c-api/module.rst:250 msgid "" "An alternate way to specify extensions is to request \"multi-phase " "initialization\". Extension modules created this way behave more like Python " @@ -278,7 +284,7 @@ msgid "" "methods of classes." msgstr "" -#: ../Doc/c-api/module.rst:251 +#: ../Doc/c-api/module.rst:257 msgid "" "Unlike modules created using single-phase initialization, these modules are " "not singletons: if the *sys.modules* entry is removed and the module is re-" @@ -291,14 +297,14 @@ msgid "" "or individual classes created with :c:func:`PyType_FromSpec`)." msgstr "" -#: ../Doc/c-api/module.rst:261 +#: ../Doc/c-api/module.rst:267 msgid "" "All modules created using multi-phase initialization are expected to " "support :ref:`sub-interpreters `. Making sure " "multiple modules are independent is typically enough to achieve this." msgstr "" -#: ../Doc/c-api/module.rst:265 +#: ../Doc/c-api/module.rst:271 msgid "" "To request multi-phase initialization, the initialization function " "(PyInit_modulename) returns a :c:type:`PyModuleDef` instance with non-empty :" @@ -306,65 +312,65 @@ msgid "" "instance must be initialized with the following function:" msgstr "" -#: ../Doc/c-api/module.rst:272 +#: ../Doc/c-api/module.rst:278 msgid "" "Ensures a module definition is a properly initialized Python object that " "correctly reports its type and reference count." msgstr "" -#: ../Doc/c-api/module.rst:275 +#: ../Doc/c-api/module.rst:281 msgid "Returns *def* cast to ``PyObject*``, or *NULL* if an error occurred." msgstr "" -#: ../Doc/c-api/module.rst:279 +#: ../Doc/c-api/module.rst:285 msgid "" "The *m_slots* member of the module definition must point to an array of " "``PyModuleDef_Slot`` structures:" msgstr "" -#: ../Doc/c-api/module.rst:286 +#: ../Doc/c-api/module.rst:292 msgid "A slot ID, chosen from the available values explained below." msgstr "" -#: ../Doc/c-api/module.rst:290 +#: ../Doc/c-api/module.rst:296 msgid "Value of the slot, whose meaning depends on the slot ID." msgstr "" -#: ../Doc/c-api/module.rst:294 +#: ../Doc/c-api/module.rst:300 msgid "The *m_slots* array must be terminated by a slot with id 0." msgstr "" -#: ../Doc/c-api/module.rst:296 +#: ../Doc/c-api/module.rst:302 msgid "The available slot types are:" msgstr "" -#: ../Doc/c-api/module.rst:300 +#: ../Doc/c-api/module.rst:306 msgid "" "Specifies a function that is called to create the module object itself. The " "*value* pointer of this slot must point to a function of the signature:" msgstr "" -#: ../Doc/c-api/module.rst:305 +#: ../Doc/c-api/module.rst:311 msgid "" "The function receives a :py:class:`~importlib.machinery.ModuleSpec` " "instance, as defined in :PEP:`451`, and the module definition. It should " "return a new module object, or set an error and return *NULL*." msgstr "" -#: ../Doc/c-api/module.rst:310 +#: ../Doc/c-api/module.rst:316 msgid "" "This function should be kept minimal. In particular, it should not call " "arbitrary Python code, as trying to import the same module again may result " "in an infinite loop." msgstr "" -#: ../Doc/c-api/module.rst:314 +#: ../Doc/c-api/module.rst:320 msgid "" "Multiple ``Py_mod_create`` slots may not be specified in one module " "definition." msgstr "" -#: ../Doc/c-api/module.rst:317 +#: ../Doc/c-api/module.rst:323 msgid "" "If ``Py_mod_create`` is not specified, the import machinery will create a " "normal module object using :c:func:`PyModule_New`. The name is taken from " @@ -373,7 +379,7 @@ msgid "" "through symlinks, all while sharing a single module definition." msgstr "" -#: ../Doc/c-api/module.rst:323 +#: ../Doc/c-api/module.rst:329 msgid "" "There is no requirement for the returned object to be an instance of :c:type:" "`PyModule_Type`. Any type can be used, as long as it supports setting and " @@ -383,7 +389,7 @@ msgid "" "``Py_mod_create``." msgstr "" -#: ../Doc/c-api/module.rst:332 +#: ../Doc/c-api/module.rst:338 msgid "" "Specifies a function that is called to *execute* the module. This is " "equivalent to executing the code of a Python module: typically, this " @@ -391,21 +397,21 @@ msgid "" "function is:" msgstr "" -#: ../Doc/c-api/module.rst:339 +#: ../Doc/c-api/module.rst:345 msgid "" "If multiple ``Py_mod_exec`` slots are specified, they are processed in the " "order they appear in the *m_slots* array." msgstr "" -#: ../Doc/c-api/module.rst:342 +#: ../Doc/c-api/module.rst:348 msgid "See :PEP:`489` for more details on multi-phase initialization." msgstr "" -#: ../Doc/c-api/module.rst:345 +#: ../Doc/c-api/module.rst:351 msgid "Low-level module creation functions" msgstr "" -#: ../Doc/c-api/module.rst:347 +#: ../Doc/c-api/module.rst:353 msgid "" "The following functions are called under the hood when using multi-phase " "initialization. They can be used directly, for example when creating module " @@ -413,14 +419,14 @@ msgid "" "``PyModule_ExecDef`` must be called to fully initialize a module." msgstr "" -#: ../Doc/c-api/module.rst:354 +#: ../Doc/c-api/module.rst:360 msgid "" "Create a new module object, given the definition in *module* and the " "ModuleSpec *spec*. This behaves like :c:func:`PyModule_FromDefAndSpec2` " "with *module_api_version* set to :const:`PYTHON_API_VERSION`." msgstr "" -#: ../Doc/c-api/module.rst:362 +#: ../Doc/c-api/module.rst:368 msgid "" "Create a new module object, given the definition in *module* and the " "ModuleSpec *spec*, assuming the API version *module_api_version*. If that " @@ -428,24 +434,24 @@ msgid "" "`RuntimeWarning` is emitted." msgstr "" -#: ../Doc/c-api/module.rst:369 +#: ../Doc/c-api/module.rst:375 msgid "" "Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` " "instead; only use this if you are sure you need it." msgstr "" -#: ../Doc/c-api/module.rst:376 +#: ../Doc/c-api/module.rst:382 msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." msgstr "" -#: ../Doc/c-api/module.rst:382 +#: ../Doc/c-api/module.rst:388 msgid "" "Set the docstring for *module* to *docstring*. This function is called " "automatically when creating a module from ``PyModuleDef``, using either " "``PyModule_Create`` or ``PyModule_FromDefAndSpec``." msgstr "" -#: ../Doc/c-api/module.rst:391 +#: ../Doc/c-api/module.rst:397 msgid "" "Add the functions from the *NULL* terminated *functions* array to *module*. " "Refer to the :c:type:`PyMethodDef` documentation for details on individual " @@ -457,11 +463,11 @@ msgid "" "``PyModule_FromDefAndSpec``." msgstr "" -#: ../Doc/c-api/module.rst:403 +#: ../Doc/c-api/module.rst:409 msgid "Support functions" msgstr "" -#: ../Doc/c-api/module.rst:405 +#: ../Doc/c-api/module.rst:411 msgid "" "The module initialization function (if using single phase initialization) or " "a function called from a module execution slot (if using multi-phase " @@ -469,28 +475,28 @@ msgid "" "module state:" msgstr "" -#: ../Doc/c-api/module.rst:412 +#: ../Doc/c-api/module.rst:418 msgid "" "Add an object to *module* as *name*. This is a convenience function which " "can be used from the module's initialization function. This steals a " "reference to *value*. Return ``-1`` on error, ``0`` on success." msgstr "" -#: ../Doc/c-api/module.rst:418 +#: ../Doc/c-api/module.rst:424 msgid "" "Add an integer constant to *module* as *name*. This convenience function " "can be used from the module's initialization function. Return ``-1`` on " "error, ``0`` on success." msgstr "" -#: ../Doc/c-api/module.rst:425 +#: ../Doc/c-api/module.rst:431 msgid "" "Add a string constant to *module* as *name*. This convenience function can " "be used from the module's initialization function. The string *value* must " "be *NULL*-terminated. Return ``-1`` on error, ``0`` on success." msgstr "" -#: ../Doc/c-api/module.rst:432 +#: ../Doc/c-api/module.rst:438 msgid "" "Add an int constant to *module*. The name and the value are taken from " "*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int " @@ -498,29 +504,29 @@ msgid "" "error, ``0`` on success." msgstr "" -#: ../Doc/c-api/module.rst:440 +#: ../Doc/c-api/module.rst:446 msgid "Add a string constant to *module*." msgstr "" -#: ../Doc/c-api/module.rst:444 +#: ../Doc/c-api/module.rst:450 msgid "Module lookup" msgstr "" -#: ../Doc/c-api/module.rst:446 +#: ../Doc/c-api/module.rst:452 msgid "" "Single-phase initialization creates singleton modules that can be looked up " "in the context of the current interpreter. This allows the module object to " "be retrieved later with only a reference to the module definition." msgstr "" -#: ../Doc/c-api/module.rst:450 +#: ../Doc/c-api/module.rst:456 msgid "" "These functions will not work on modules created using multi-phase " "initialization, since multiple such modules can be created from a single " "definition." msgstr "" -#: ../Doc/c-api/module.rst:455 +#: ../Doc/c-api/module.rst:461 msgid "" "Returns the module object that was created from *def* for the current " "interpreter. This method requires that the module object has been attached " @@ -529,18 +535,18 @@ msgid "" "to the interpreter state yet, it returns *NULL*." msgstr "" -#: ../Doc/c-api/module.rst:462 +#: ../Doc/c-api/module.rst:468 msgid "" "Attaches the module object passed to the function to the interpreter state. " "This allows the module object to be accessible via :c:func:" "`PyState_FindModule`." msgstr "" -#: ../Doc/c-api/module.rst:465 +#: ../Doc/c-api/module.rst:471 msgid "Only effective on modules created using single-phase initialization." msgstr "" -#: ../Doc/c-api/module.rst:471 +#: ../Doc/c-api/module.rst:477 msgid "" "Removes the module object created from *def* from the interpreter state." msgstr "" diff --git a/c-api/sequence.po b/c-api/sequence.po index d5667bf17..6c5b5cd36 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -30,49 +30,48 @@ msgstr "" #: ../Doc/c-api/sequence.rst:20 msgid "" "Returns the number of objects in sequence *o* on success, and ``-1`` on " -"failure. For objects that do not provide sequence protocol, this is " -"equivalent to the Python expression ``len(o)``." +"failure. This is equivalent to the Python expression ``len(o)``." msgstr "" -#: ../Doc/c-api/sequence.rst:27 +#: ../Doc/c-api/sequence.rst:26 msgid "" "Return the concatenation of *o1* and *o2* on success, and *NULL* on failure. " "This is the equivalent of the Python expression ``o1 + o2``." msgstr "" -#: ../Doc/c-api/sequence.rst:33 +#: ../Doc/c-api/sequence.rst:32 msgid "" "Return the result of repeating sequence object *o* *count* times, or *NULL* " "on failure. This is the equivalent of the Python expression ``o * count``." msgstr "" -#: ../Doc/c-api/sequence.rst:39 +#: ../Doc/c-api/sequence.rst:38 msgid "" "Return the concatenation of *o1* and *o2* on success, and *NULL* on failure. " "The operation is done *in-place* when *o1* supports it. This is the " "equivalent of the Python expression ``o1 += o2``." msgstr "" -#: ../Doc/c-api/sequence.rst:46 +#: ../Doc/c-api/sequence.rst:45 msgid "" "Return the result of repeating sequence object *o* *count* times, or *NULL* " "on failure. The operation is done *in-place* when *o* supports it. This is " "the equivalent of the Python expression ``o *= count``." msgstr "" -#: ../Doc/c-api/sequence.rst:53 +#: ../Doc/c-api/sequence.rst:52 msgid "" "Return the *i*\\ th element of *o*, or *NULL* on failure. This is the " "equivalent of the Python expression ``o[i]``." msgstr "" -#: ../Doc/c-api/sequence.rst:59 +#: ../Doc/c-api/sequence.rst:58 msgid "" "Return the slice of sequence object *o* between *i1* and *i2*, or *NULL* on " "failure. This is the equivalent of the Python expression ``o[i1:i2]``." msgstr "" -#: ../Doc/c-api/sequence.rst:65 +#: ../Doc/c-api/sequence.rst:64 msgid "" "Assign object *v* to the *i*\\ th element of *o*. Raise an exception and " "return ``-1`` on failure; return ``0`` on success. This is the equivalent " @@ -80,58 +79,58 @@ msgid "" "reference to *v*." msgstr "" -#: ../Doc/c-api/sequence.rst:70 +#: ../Doc/c-api/sequence.rst:69 msgid "" "If *v* is *NULL*, the element is deleted, however this feature is deprecated " "in favour of using :c:func:`PySequence_DelItem`." msgstr "" -#: ../Doc/c-api/sequence.rst:76 +#: ../Doc/c-api/sequence.rst:75 msgid "" "Delete the *i*\\ th element of object *o*. Returns ``-1`` on failure. This " "is the equivalent of the Python statement ``del o[i]``." msgstr "" -#: ../Doc/c-api/sequence.rst:82 +#: ../Doc/c-api/sequence.rst:81 msgid "" "Assign the sequence object *v* to the slice in sequence object *o* from *i1* " "to *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``." msgstr "" -#: ../Doc/c-api/sequence.rst:88 +#: ../Doc/c-api/sequence.rst:87 msgid "" "Delete the slice in sequence object *o* from *i1* to *i2*. Returns ``-1`` " "on failure. This is the equivalent of the Python statement ``del o[i1:i2]``." msgstr "" -#: ../Doc/c-api/sequence.rst:94 +#: ../Doc/c-api/sequence.rst:93 msgid "" "Return the number of occurrences of *value* in *o*, that is, return the " "number of keys for which ``o[key] == value``. On failure, return ``-1``. " "This is equivalent to the Python expression ``o.count(value)``." msgstr "" -#: ../Doc/c-api/sequence.rst:101 +#: ../Doc/c-api/sequence.rst:100 msgid "" "Determine if *o* contains *value*. If an item in *o* is equal to *value*, " "return ``1``, otherwise return ``0``. On error, return ``-1``. This is " "equivalent to the Python expression ``value in o``." msgstr "" -#: ../Doc/c-api/sequence.rst:108 +#: ../Doc/c-api/sequence.rst:107 msgid "" "Return the first index *i* for which ``o[i] == value``. On error, return " "``-1``. This is equivalent to the Python expression ``o.index(value)``." msgstr "" -#: ../Doc/c-api/sequence.rst:114 +#: ../Doc/c-api/sequence.rst:113 msgid "" "Return a list object with the same contents as the sequence or iterable *o*, " "or *NULL* on failure. The returned list is guaranteed to be new. This is " "equivalent to the Python expression ``list(o)``." msgstr "" -#: ../Doc/c-api/sequence.rst:123 +#: ../Doc/c-api/sequence.rst:122 msgid "" "Return a tuple object with the same contents as the arbitrary sequence *o* " "or *NULL* on failure. If *o* is a tuple, a new reference will be returned, " @@ -139,7 +138,7 @@ msgid "" "is equivalent to the Python expression ``tuple(o)``." msgstr "" -#: ../Doc/c-api/sequence.rst:131 +#: ../Doc/c-api/sequence.rst:130 msgid "" "Return the sequence *o* as a list, unless it is already a tuple or list, in " "which case *o* is returned. Use :c:func:`PySequence_Fast_GET_ITEM` to " @@ -147,26 +146,26 @@ msgid "" "is not a sequence, raises :exc:`TypeError` with *m* as the message text." msgstr "" -#: ../Doc/c-api/sequence.rst:139 +#: ../Doc/c-api/sequence.rst:138 msgid "" "Return the *i*\\ th element of *o*, assuming that *o* was returned by :c:" "func:`PySequence_Fast`, *o* is not *NULL*, and that *i* is within bounds." msgstr "" -#: ../Doc/c-api/sequence.rst:145 +#: ../Doc/c-api/sequence.rst:144 msgid "" "Return the underlying array of PyObject pointers. Assumes that *o* was " "returned by :c:func:`PySequence_Fast` and *o* is not *NULL*." msgstr "" -#: ../Doc/c-api/sequence.rst:148 +#: ../Doc/c-api/sequence.rst:147 msgid "" "Note, if a list gets resized, the reallocation may relocate the items array. " "So, only use the underlying array pointer in contexts where the sequence " "cannot change." msgstr "" -#: ../Doc/c-api/sequence.rst:155 +#: ../Doc/c-api/sequence.rst:154 msgid "" "Return the *i*\\ th element of *o* or *NULL* on failure. Macro form of :c:" "func:`PySequence_GetItem` but without checking that :c:func:" @@ -174,7 +173,7 @@ msgid "" "indices." msgstr "" -#: ../Doc/c-api/sequence.rst:163 +#: ../Doc/c-api/sequence.rst:162 msgid "" "Returns the length of *o*, assuming that *o* was returned by :c:func:" "`PySequence_Fast` and that *o* is not *NULL*. The size can also be gotten " diff --git a/c-api/unicode.po b/c-api/unicode.po index 6845990de..fa04561cd 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -210,12 +210,6 @@ msgid "" "Unicode object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:213 ../Doc/c-api/unicode.rst:223 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Unicode API, please migrate to using PyUnicode_GET_LENGTH()." -msgstr "" - #: ../Doc/c-api/unicode.rst:213 ../Doc/c-api/unicode.rst:223 msgid "" "Part of the old-style Unicode API, please migrate to using :c:func:" @@ -247,13 +241,6 @@ msgid "" "`PyUnicode_WRITE` or :c:func:`PyUnicode_READ`." msgstr "" -#: ../Doc/c-api/unicode.rst:245 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Unicode API, please migrate to using the PyUnicode_nBYTE_DATA() " -"family of macros." -msgstr "" - #: ../Doc/c-api/unicode.rst:245 msgid "" "Part of the old-style Unicode API, please migrate to using the :c:func:" @@ -834,10 +821,6 @@ msgstr "" msgid "Deprecated Py_UNICODE APIs" msgstr "" -#: ../Doc/c-api/unicode.rst:661 -msgid "Deprecated since version 3.3, will be removed in version 4.0." -msgstr "" - #: ../Doc/c-api/unicode.rst:662 msgid "" "These API functions are deprecated with the implementation of :pep:`393`. " @@ -1229,13 +1212,6 @@ msgid "" "*NULL* if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1022 ../Doc/c-api/unicode.rst:1273 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using " -"PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1022 ../Doc/c-api/unicode.rst:1273 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1304,13 +1280,6 @@ msgid "" "by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1087 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_AsUTF8String(), " -"PyUnicode_AsUTF8AndSize() or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1087 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1396,13 +1365,6 @@ msgid "" "single code point." msgstr "" -#: ../Doc/c-api/unicode.rst:1160 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_AsUTF32String() " -"or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1160 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1463,13 +1425,6 @@ msgid "" "`Py_UNICODE` values is interpreted as a UCS-2 character." msgstr "" -#: ../Doc/c-api/unicode.rst:1235 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_AsUTF16String() " -"or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1235 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1541,13 +1496,6 @@ msgid "" "by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1303 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using " -"PyUnicode_AsUnicodeEscapeString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1303 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1582,13 +1530,6 @@ msgid "" "by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1335 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using " -"PyUnicode_AsRawUnicodeEscapeString() or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1335 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1626,13 +1567,6 @@ msgid "" "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1367 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_AsLatin1String() " -"or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1367 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1669,13 +1603,6 @@ msgid "" "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1399 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_AsASCIIString() " -"or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1399 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1739,13 +1666,6 @@ msgid "" "an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1451 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using " -"PyUnicode_AsCharmapString() or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1451 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1778,13 +1698,6 @@ msgid "" "Return *NULL* when an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1479 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_Translate(). or " -"generic codec based API" -msgstr "" - #: ../Doc/c-api/unicode.rst:1479 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" @@ -1839,13 +1752,6 @@ msgid "" "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1530 -msgid "" -"Deprecated since version 3.3, will be removed in version 4.0: Part of the " -"old-style Py_UNICODE API; please migrate to using PyUnicode_AsMBCSString(), " -"PyUnicode_EncodeCodePage() or PyUnicode_AsEncodedString()." -msgstr "" - #: ../Doc/c-api/unicode.rst:1530 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" diff --git a/extending/newtypes.po b/extending/newtypes.po index 8918bfb05..f2c7ed209 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -390,7 +390,7 @@ msgid "" "The initializer isn't called when unpickling objects and it can be " "overridden. Our initializer accepts arguments to provide initial values for " "our instance. Initializers always accept positional and keyword arguments. " -"Initializers should return either 0 on success or -1 on error." +"Initializers should return either ``0`` on success or ``-1`` on error." msgstr "" #: ../Doc/extending/newtypes.rst:397 diff --git a/faq/extending.po b/faq/extending.po index 20913afd1..3c66407da 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-04 15:51+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-15 00:37+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -93,8 +93,8 @@ msgstr "" msgid "" "The highest-level function to do this is :c:func:`PyRun_SimpleString` which " "takes a single string argument to be executed in the context of the module " -"``__main__`` and returns 0 for success and -1 when an exception occurred " -"(including ``SyntaxError``). If you want more control, use :c:func:" +"``__main__`` and returns ``0`` for success and ``-1`` when an exception " +"occurred (including ``SyntaxError``). If you want more control, use :c:func:" "`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` in ``Python/" "pythonrun.c``." msgstr "" diff --git a/library/abc.po b/library/abc.po index f64f8b851..afeefa8b3 100644 --- a/library/abc.po +++ b/library/abc.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-12 13:37+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -159,8 +159,9 @@ msgid "" msgstr "" #: ../Doc/library/abc.rst:163 -msgid "The :mod:`abc` module also provides the following decorators:" -msgstr "" +#, fuzzy +msgid "The :mod:`abc` module also provides the following decorator:" +msgstr "Le module fournit les classes suivantes :" #: ../Doc/library/abc.rst:167 msgid "A decorator indicating abstract methods." @@ -210,106 +211,98 @@ msgid "" "inheritance." msgstr "" -#: ../Doc/library/abc.rst:241 +#: ../Doc/library/abc.rst:239 +msgid "The :mod:`abc` module also supports the following legacy decorators:" +msgstr "" + +#: ../Doc/library/abc.rst:244 +msgid "" +"It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " +"making this decorator redundant." +msgstr "" + +#: ../Doc/library/abc.rst:248 msgid "" "A subclass of the built-in :func:`classmethod`, indicating an abstract " "classmethod. Otherwise it is similar to :func:`abstractmethod`." msgstr "" -#: ../Doc/library/abc.rst:244 +#: ../Doc/library/abc.rst:251 msgid "" "This special case is deprecated, as the :func:`classmethod` decorator is now " "correctly identified as abstract when applied to an abstract method::" msgstr "" -#: ../Doc/library/abc.rst:255 +#: ../Doc/library/abc.rst:265 msgid "" -"It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " +"It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " "making this decorator redundant." msgstr "" -#: ../Doc/library/abc.rst:262 +#: ../Doc/library/abc.rst:269 msgid "" "A subclass of the built-in :func:`staticmethod`, indicating an abstract " "staticmethod. Otherwise it is similar to :func:`abstractmethod`." msgstr "" -#: ../Doc/library/abc.rst:265 +#: ../Doc/library/abc.rst:272 msgid "" "This special case is deprecated, as the :func:`staticmethod` decorator is " "now correctly identified as abstract when applied to an abstract method::" msgstr "" -#: ../Doc/library/abc.rst:276 +#: ../Doc/library/abc.rst:285 msgid "" -"It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " +"It is now possible to use :class:`property`, :meth:`property.getter`, :meth:" +"`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, " "making this decorator redundant." msgstr "" -#: ../Doc/library/abc.rst:283 +#: ../Doc/library/abc.rst:290 msgid "" "A subclass of the built-in :func:`property`, indicating an abstract property." msgstr "" -#: ../Doc/library/abc.rst:286 -msgid "" -"Using this function requires that the class's metaclass is :class:`ABCMeta` " -"or is derived from it. A class that has a metaclass derived from :class:" -"`ABCMeta` cannot be instantiated unless all of its abstract methods and " -"properties are overridden. The abstract properties can be called using any " -"of the normal 'super' call mechanisms." -msgstr "" - -#: ../Doc/library/abc.rst:292 +#: ../Doc/library/abc.rst:293 msgid "" "This special case is deprecated, as the :func:`property` decorator is now " "correctly identified as abstract when applied to an abstract method::" msgstr "" -#: ../Doc/library/abc.rst:302 +#: ../Doc/library/abc.rst:303 msgid "" "The above example defines a read-only property; you can also define a read-" "write abstract property by appropriately marking one or more of the " "underlying methods as abstract::" msgstr "" -#: ../Doc/library/abc.rst:316 +#: ../Doc/library/abc.rst:317 msgid "" "If only some components are abstract, only those components need to be " "updated to create a concrete property in a subclass::" msgstr "" -#: ../Doc/library/abc.rst:325 -msgid "" -"It is now possible to use :class:`property`, :meth:`property.getter`, :meth:" -"`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, " -"making this decorator redundant." -msgstr "" - -#: ../Doc/library/abc.rst:331 +#: ../Doc/library/abc.rst:326 msgid "The :mod:`abc` module also provides the following functions:" msgstr "" -#: ../Doc/library/abc.rst:335 +#: ../Doc/library/abc.rst:330 msgid "Returns the current abstract base class cache token." msgstr "" -#: ../Doc/library/abc.rst:337 +#: ../Doc/library/abc.rst:332 msgid "" "The token is an opaque object (that supports equality testing) identifying " "the current version of the abstract base class cache for virtual subclasses. " "The token changes with every call to :meth:`ABCMeta.register` on any ABC." msgstr "" -#: ../Doc/library/abc.rst:345 +#: ../Doc/library/abc.rst:340 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/abc.rst:346 +#: ../Doc/library/abc.rst:341 msgid "" "C++ programmers should note that Python's virtual base class concept is not " "the same as C++'s." msgstr "" - -#~ msgid "This module provides the following classes:" -#~ msgstr "Le module fournit les classes suivantes :" diff --git a/library/array.po b/library/array.po index 47861b8ef..d3084c55a 100644 --- a/library/array.po +++ b/library/array.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-01-21 23:14+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -219,10 +219,6 @@ msgid "" "API." msgstr "" -#: ../Doc/library/array.rst:59 -msgid "Deprecated since version 3.3, will be removed in version 4.0." -msgstr "" - #: ../Doc/library/array.rst:61 msgid "" "The ``'q'`` and ``'Q'`` type codes are available only if the platform C " diff --git a/library/ast.po b/library/ast.po index 9b8780bc3..d30c68530 100644 --- a/library/ast.po +++ b/library/ast.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-15 00:41+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -148,7 +148,13 @@ msgid "" "filename, mode, ast.PyCF_ONLY_AST)``." msgstr "" -#: ../Doc/library/ast.rst:119 +#: ../Doc/library/ast.rst:117 ../Doc/library/ast.rst:135 +msgid "" +"It is possible to crash the Python interpreter with a sufficiently large/" +"complex string due to stack depth limitations in Python's AST compiler." +msgstr "" + +#: ../Doc/library/ast.rst:124 msgid "" "Safely evaluate an expression node or a string containing a Python literal " "or container display. The string or node provided may only consist of the " @@ -156,7 +162,7 @@ msgid "" "dicts, sets, booleans, and ``None``." msgstr "" -#: ../Doc/library/ast.rst:124 +#: ../Doc/library/ast.rst:129 msgid "" "This can be used for safely evaluating strings containing Python values from " "untrusted sources without the need to parse the values oneself. It is not " @@ -164,11 +170,11 @@ msgid "" "operators or indexing." msgstr "" -#: ../Doc/library/ast.rst:129 +#: ../Doc/library/ast.rst:139 msgid "Now allows bytes and set literals." msgstr "Accepte maintenant les *bytes* et *sets* écrits littéralement." -#: ../Doc/library/ast.rst:135 +#: ../Doc/library/ast.rst:145 msgid "" "Return the docstring of the given *node* (which must be a :class:" "`FunctionDef`, :class:`ClassDef` or :class:`Module` node), or ``None`` if it " @@ -176,7 +182,7 @@ msgid "" "with :func:`inspect.cleandoc`." msgstr "" -#: ../Doc/library/ast.rst:143 +#: ../Doc/library/ast.rst:153 msgid "" "When you compile a node tree with :func:`compile`, the compiler expects :" "attr:`lineno` and :attr:`col_offset` attributes for every node that supports " @@ -185,81 +191,81 @@ msgid "" "the values of the parent node. It works recursively starting at *node*." msgstr "" -#: ../Doc/library/ast.rst:152 +#: ../Doc/library/ast.rst:162 msgid "" "Increment the 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 "" -#: ../Doc/library/ast.rst:158 +#: ../Doc/library/ast.rst:168 msgid "" "Copy source location (:attr:`lineno` and :attr:`col_offset`) from *old_node* " "to *new_node* if possible, and return *new_node*." msgstr "" -#: ../Doc/library/ast.rst:164 +#: ../Doc/library/ast.rst:174 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." msgstr "" -#: ../Doc/library/ast.rst:170 +#: ../Doc/library/ast.rst:180 msgid "" "Yield all direct child nodes of *node*, that is, all fields that are nodes " "and all items of fields that are lists of nodes." msgstr "" -#: ../Doc/library/ast.rst:176 +#: ../Doc/library/ast.rst:186 msgid "" "Recursively yield all descendant nodes in the tree starting at *node* " "(including *node* itself), in no specified order. This is useful if you " "only want to modify nodes in place and don't care about the context." msgstr "" -#: ../Doc/library/ast.rst:183 +#: ../Doc/library/ast.rst:193 msgid "" "A node visitor base class that walks the abstract syntax tree and calls a " "visitor function for every node found. This function may return a value " "which is forwarded by the :meth:`visit` method." msgstr "" -#: ../Doc/library/ast.rst:187 +#: ../Doc/library/ast.rst:197 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." msgstr "" -#: ../Doc/library/ast.rst:192 +#: ../Doc/library/ast.rst:202 msgid "" "Visit a node. The default implementation calls the method called :samp:" "`self.visit_{classname}` where *classname* is the name of the node class, " "or :meth:`generic_visit` if that method doesn't exist." msgstr "" -#: ../Doc/library/ast.rst:198 +#: ../Doc/library/ast.rst:208 msgid "This visitor calls :meth:`visit` on all children of the node." msgstr "" -#: ../Doc/library/ast.rst:200 +#: ../Doc/library/ast.rst:210 msgid "" "Note that child nodes of nodes that have a custom visitor method won't be " "visited unless the visitor calls :meth:`generic_visit` or visits them itself." msgstr "" -#: ../Doc/library/ast.rst:204 +#: ../Doc/library/ast.rst:214 msgid "" "Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " "during traversal. For this a special visitor exists (:class:" "`NodeTransformer`) that allows modifications." msgstr "" -#: ../Doc/library/ast.rst:211 +#: ../Doc/library/ast.rst:221 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." msgstr "" -#: ../Doc/library/ast.rst:214 +#: ../Doc/library/ast.rst:224 msgid "" "The :class:`NodeTransformer` will walk the AST and use the return value of " "the visitor methods to replace or remove the old node. If the return value " @@ -268,31 +274,31 @@ msgid "" "may be the original node in which case no replacement takes place." msgstr "" -#: ../Doc/library/ast.rst:220 +#: ../Doc/library/ast.rst:230 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" msgstr "" -#: ../Doc/library/ast.rst:232 +#: ../Doc/library/ast.rst:242 msgid "" "Keep in mind that if the node you're operating on has child nodes you must " "either transform the child nodes yourself or call the :meth:`generic_visit` " "method for the node first." msgstr "" -#: ../Doc/library/ast.rst:236 +#: ../Doc/library/ast.rst:246 msgid "" "For nodes that were part of a collection of statements (that applies to all " "statement nodes), the visitor may also return a list of nodes rather than " "just a single node." msgstr "" -#: ../Doc/library/ast.rst:240 +#: ../Doc/library/ast.rst:250 msgid "Usually you use the transformer like this::" msgstr "Utilisation typique du *transformer* ::" -#: ../Doc/library/ast.rst:247 +#: ../Doc/library/ast.rst:257 msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. The returned string will show the names and the values " @@ -302,7 +308,7 @@ msgid "" "*include_attributes* can be set to ``True``." msgstr "" -#: ../Doc/library/ast.rst:256 +#: ../Doc/library/ast.rst:266 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." diff --git a/library/base64.po b/library/base64.po index 347c72517..c1a1c212a 100644 --- a/library/base64.po +++ b/library/base64.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2017-08-10 00:59+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -272,20 +272,11 @@ msgid "" "necessary." msgstr "" -#: ../Doc/library/base64.rst:222 -msgid "" -"Both Base85 and Ascii85 have an expansion factor of 5 to 4 (5 Base85 or " -"Ascii85 characters can encode 4 binary bytes), while the better-known Base64 " -"has an expansion factor of 6 to 4. They are therefore more efficient when " -"space expensive. They differ by details such as the character map used for " -"encoding." -msgstr "" - -#: ../Doc/library/base64.rst:229 +#: ../Doc/library/base64.rst:221 msgid "The legacy interface:" msgstr "L'interface historique :" -#: ../Doc/library/base64.rst:233 +#: ../Doc/library/base64.rst:225 msgid "" "Decode the contents of the binary *input* file and write the resulting " "binary data to the *output* file. *input* and *output* must be :term:`file " @@ -293,17 +284,17 @@ msgid "" "returns an empty bytes object." msgstr "" -#: ../Doc/library/base64.rst:241 +#: ../Doc/library/base64.rst:233 msgid "" "Decode the :term:`bytes-like object` *s*, which must contain one or more " "lines of base64 encoded data, and return the decoded :class:`bytes`." msgstr "" -#: ../Doc/library/base64.rst:248 +#: ../Doc/library/base64.rst:240 msgid "Deprecated alias of :func:`decodebytes`." msgstr "" -#: ../Doc/library/base64.rst:255 +#: ../Doc/library/base64.rst:247 msgid "" "Encode the contents of the binary *input* file and write the resulting " "base64 encoded data to the *output* file. *input* and *output* must be :term:" @@ -313,7 +304,7 @@ msgid "" "the output always ends with a newline, as per :rfc:`2045` (MIME)." msgstr "" -#: ../Doc/library/base64.rst:265 +#: ../Doc/library/base64.rst:257 msgid "" "Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary " "data, and return :class:`bytes` containing the base64-encoded data, with " @@ -321,33 +312,33 @@ msgid "" "that there is a trailing newline, as per :rfc:`2045` (MIME)." msgstr "" -#: ../Doc/library/base64.rst:274 +#: ../Doc/library/base64.rst:266 msgid "Deprecated alias of :func:`encodebytes`." msgstr "" -#: ../Doc/library/base64.rst:279 +#: ../Doc/library/base64.rst:271 msgid "An example usage of the module:" msgstr "Un exemple d'utilisation du module :" -#: ../Doc/library/base64.rst:293 +#: ../Doc/library/base64.rst:285 msgid "Module :mod:`binascii`" msgstr "Module :mod:`binascii`" -#: ../Doc/library/base64.rst:293 +#: ../Doc/library/base64.rst:285 msgid "" "Support module containing ASCII-to-binary and binary-to-ASCII conversions." msgstr "" "Module secondaire contenant les conversions ASCII-à-binaire et binaire-à-" "ASCII." -#: ../Doc/library/base64.rst:296 +#: ../Doc/library/base64.rst:288 msgid "" ":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: " "Mechanisms for Specifying and Describing the Format of Internet Message " "Bodies" msgstr "" -#: ../Doc/library/base64.rst:296 +#: ../Doc/library/base64.rst:288 msgid "" "Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " "of the base64 encoding." diff --git a/library/constants.po b/library/constants.po index 922fbd8fa..b0c9079ee 100644 --- a/library/constants.po +++ b/library/constants.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-21 09:15+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2017-09-24 23:11+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -157,10 +157,17 @@ msgstr "" "quit() or Ctrl-D (i.e. EOF) to exit\", et lorsqu'ils sont appelés, lèvent " "un :exc:`SystemExit` avec le code de retour spécifié." -#: ../Doc/library/constants.rst:92 +#: ../Doc/library/constants.rst:91 msgid "" -"Objects that when printed, print a message like \"Type license() to see the " -"full license text\", and when called, display the corresponding text in a " +"Objects that when printed or called, print the text of copyright or credits, " +"respectively." +msgstr "" + +#: ../Doc/library/constants.rst:96 +#, fuzzy +msgid "" +"Object that when printed, prints the message \"Type license() to see the " +"full license text\", and when called, displays the full license text in a " "pager-like fashion (one screen at a time)." msgstr "" "Objets qui, lorsqu'ils sont représentés, affichent un message comme \"Type " diff --git a/library/dbm.po b/library/dbm.po index 74525372e..846740da1 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -417,12 +417,6 @@ msgid "" "``'n'``." msgstr "" -#: ../Doc/library/dbm.rst:357 -msgid "" -"Deprecated since version 3.6, will be removed in version 3.8: Creating " -"database in 'r' and 'w' modes. Modifying database in 'r' mode." -msgstr "" - #: ../Doc/library/dbm.rst:357 msgid "" "Creating database in ``'r'`` and ``'w'`` modes. Modifying database in " diff --git a/library/fileinput.po b/library/fileinput.po index 1b72efda5..f81625236 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -109,12 +109,6 @@ msgstr "" msgid "Can be used as a context manager." msgstr "" -#: ../Doc/library/fileinput.rst:76 ../Doc/library/fileinput.rst:170 -msgid "" -"Deprecated since version 3.6, will be removed in version 3.8: The bufsize " -"parameter." -msgstr "" - #: ../Doc/library/fileinput.rst:76 ../Doc/library/fileinput.rst:170 msgid "The *bufsize* parameter." msgstr "" diff --git a/library/functions.po b/library/functions.po index 9e78722ae..12270ba7c 100644 --- a/library/functions.po +++ b/library/functions.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-15 00:43+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -360,8 +360,8 @@ msgstr "" "Que le préfixe \"0b\" soit souhaité ou non, vous pouvez utiliser les moyens " "suivants." -#: ../Doc/library/functions.rst:101 ../Doc/library/functions.rst:672 -#: ../Doc/library/functions.rst:926 +#: ../Doc/library/functions.rst:101 ../Doc/library/functions.rst:678 +#: ../Doc/library/functions.rst:935 msgid "See also :func:`format` for more information." msgstr "Voir aussi :func:`format` pour plus d'information." @@ -687,7 +687,14 @@ msgstr "" "retour à la ligne. Cela permet de faciliter la distinction entre les " "instructions complètes et incomplètes dans le module :mod:`code`." -#: ../Doc/library/functions.rst:263 +#: ../Doc/library/functions.rst:265 +msgid "" +"It is possible to crash the Python interpreter with a sufficiently large/" +"complex string when compiling to an AST object due to stack depth " +"limitations in Python's AST compiler." +msgstr "" + +#: ../Doc/library/functions.rst:269 msgid "" "Allowed use of Windows and Mac newlines. Also input in ``'exec'`` mode does " "not have to end in a newline anymore. Added the *optimize* parameter." @@ -696,7 +703,7 @@ msgstr "" "chaîne donnée à ``'exec'`` n'a plus besoin de terminer par un retour à la " "ligne. Ajout du paramètre *optimize*." -#: ../Doc/library/functions.rst:267 +#: ../Doc/library/functions.rst:273 msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -704,7 +711,7 @@ msgstr "" "Précédemment, l'exception :exc:`TypeError` était levée quand un caractère " "nul était rencontré dans *source*." -#: ../Doc/library/functions.rst:274 +#: ../Doc/library/functions.rst:280 msgid "" "Return a complex number with the value *real* + *imag*\\*1j or convert a " "string or number to a complex number. If the first parameter is a string, " @@ -724,7 +731,7 @@ msgstr "" "constructeur effectue alors une simple conversion numérique comme le font :" "class:`int` ou :class:`float`. Si aucun argument n'est fourni, donne ``0j``." -#: ../Doc/library/functions.rst:285 +#: ../Doc/library/functions.rst:291 msgid "" "When converting from a string, the string must not contain whitespace around " "the central ``+`` or ``-`` operator. For example, ``complex('1+2j')`` is " @@ -735,18 +742,18 @@ msgstr "" "``complex('1+2j')`` est bon, mais ``complex('1 + 2j')`` lève une :exc:" "`ValueError`." -#: ../Doc/library/functions.rst:290 +#: ../Doc/library/functions.rst:296 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "Le type complexe est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:292 ../Doc/library/functions.rst:555 -#: ../Doc/library/functions.rst:739 +#: ../Doc/library/functions.rst:298 ../Doc/library/functions.rst:561 +#: ../Doc/library/functions.rst:748 msgid "Grouping digits with underscores as in code literals is allowed." msgstr "" "Les chiffres peuvent être groupés avec des tirets bas comme dans les " "expressions littérales." -#: ../Doc/library/functions.rst:298 +#: ../Doc/library/functions.rst:304 msgid "" "This is a relative of :func:`setattr`. The arguments are an object and a " "string. The string must be the name of one of the object's attributes. The " @@ -758,7 +765,7 @@ msgstr "" "fonction supprime l'attribut nommé, si l'objet l'y autorise. Par exemple " "``delattr(x, 'foobar')`` est l'équivalent de ``del x.foobar``." -#: ../Doc/library/functions.rst:310 +#: ../Doc/library/functions.rst:316 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -767,7 +774,7 @@ msgstr "" "dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " "sur cette classe." -#: ../Doc/library/functions.rst:313 +#: ../Doc/library/functions.rst:319 msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." @@ -775,7 +782,7 @@ msgstr "" "Pour les autres conteneurs, voir les classes natives :class:`list`, :class:" "`set`, et :class:`typle`. ainsi que le module :mod:`collections`." -#: ../Doc/library/functions.rst:319 +#: ../Doc/library/functions.rst:325 msgid "" "Without arguments, return the list of names in the current local scope. " "With an argument, attempt to return a list of valid attributes for that " @@ -785,7 +792,7 @@ msgstr "" "Avec un argument, elle essaye de donner une liste d'attributs valides pour " "cet objet." -#: ../Doc/library/functions.rst:322 +#: ../Doc/library/functions.rst:328 msgid "" "If the object has a method named :meth:`__dir__`, this method will be called " "and must return the list of attributes. This allows objects that implement a " @@ -797,7 +804,7 @@ msgstr "" "`__getattr__` ou :func:`__getattribute__` de personnaliser ce que donnera :" "func:`dir`." -#: ../Doc/library/functions.rst:327 +#: ../Doc/library/functions.rst:333 msgid "" "If the object does not provide :meth:`__dir__`, the function tries its best " "to gather information from the object's :attr:`~object.__dict__` attribute, " @@ -811,7 +818,7 @@ msgstr "" "n'est pas nécessairement complète, et peut être inadaptée quand l'objet a " "un :func:`__getattr__` personnalisé." -#: ../Doc/library/functions.rst:332 +#: ../Doc/library/functions.rst:338 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -821,7 +828,7 @@ msgstr "" "différents types d'objets, car elle préfère donner une information " "pertinente plutôt qu'exhaustive :" -#: ../Doc/library/functions.rst:336 +#: ../Doc/library/functions.rst:342 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -829,7 +836,7 @@ msgstr "" "Si l'objet est un module, la liste contiendra les noms des attributs du " "module." -#: ../Doc/library/functions.rst:339 +#: ../Doc/library/functions.rst:345 msgid "" "If the object is a type or class object, the list contains the names of its " "attributes, and recursively of the attributes of its bases." @@ -837,7 +844,7 @@ msgstr "" "Si l'objet est un type ou une classe, la liste contiendra les noms de ses " "attributs, et récursivement, des attributs de ses parents." -#: ../Doc/library/functions.rst:342 +#: ../Doc/library/functions.rst:348 msgid "" "Otherwise, the list contains the object's attributes' names, the names of " "its class's attributes, and recursively of the attributes of its class's " @@ -847,11 +854,11 @@ msgstr "" "attributs de la classe, et récursivement des attributs des parents de la " "classe." -#: ../Doc/library/functions.rst:346 +#: ../Doc/library/functions.rst:352 msgid "The resulting list is sorted alphabetically. For example:" msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" -#: ../Doc/library/functions.rst:365 +#: ../Doc/library/functions.rst:371 msgid "" "Because :func:`dir` is supplied primarily as a convenience for use at an " "interactive prompt, it tries to supply an interesting set of names more than " @@ -865,7 +872,7 @@ msgstr "" "aussi changer d'une version à l'autre. Par exemple, les attributs de méta-" "classes ne sont pas données lorsque l'argument est une classe." -#: ../Doc/library/functions.rst:375 +#: ../Doc/library/functions.rst:381 msgid "" "Take two (non complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -885,7 +892,7 @@ msgstr "" "b + a % b`` est très proche de *a*. Si ``a % b`` est différent de zéro, il a " "le même signe que *b*, et ``0 <= abs(a % b) < abs(b)``." -#: ../Doc/library/functions.rst:387 +#: ../Doc/library/functions.rst:393 msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" "`iterator`, or some other object which supports iteration. The :meth:" @@ -899,11 +906,11 @@ msgstr "" "tuple contenant un compte (démarrant à *start*, 0 par défaut) et les valeurs " "obtenues de l'itération sur *iterable*." -#: ../Doc/library/functions.rst:399 +#: ../Doc/library/functions.rst:405 msgid "Equivalent to::" msgstr "Équivalent à : ::" -#: ../Doc/library/functions.rst:410 +#: ../Doc/library/functions.rst:416 msgid "" "The arguments are a string and optional globals and locals. If provided, " "*globals* must be a dictionary. If provided, *locals* can be any mapping " @@ -913,7 +920,7 @@ msgstr "" "globales. S'il est fourni, *globals* doit être un dictionnaire. S'il est " "fourni, *locals* peut être n'importe quel objet *mapping*." -#: ../Doc/library/functions.rst:414 +#: ../Doc/library/functions.rst:420 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -940,7 +947,7 @@ msgstr "" "donnée par *eval* est le résultat de l'exressipn évaluée. Les erreurs de " "syntaxe sont rapportées via des exceptions. Exemple :" -#: ../Doc/library/functions.rst:429 +#: ../Doc/library/functions.rst:435 msgid "" "This function can also be used to execute arbitrary code objects (such as " "those created by :func:`compile`). In this case pass a code object instead " @@ -952,7 +959,7 @@ msgstr "" "code plutôt qu'une chaîne. Si l'objet code à été compilé avec ``'exec'`` en " "argument pour *mode*, :func:`eval` donnera ``None``." -#: ../Doc/library/functions.rst:434 +#: ../Doc/library/functions.rst:440 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions returns the " @@ -964,7 +971,7 @@ msgstr "" "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "lors de l'usage de :func:`eval` et :func:`exec`." -#: ../Doc/library/functions.rst:439 +#: ../Doc/library/functions.rst:445 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -973,7 +980,7 @@ msgstr "" "peut évaluer en toute sécurité des chaînes avec des expressions ne contenant " "que des valeurs littérales." -#: ../Doc/library/functions.rst:446 +#: ../Doc/library/functions.rst:452 msgid "" "This function supports dynamic execution of Python code. *object* must be " "either a string or a code object. If it is a string, the string is parsed " @@ -995,7 +1002,7 @@ msgstr "" "`return` et :keyword:`yield` ne peuvent pas être utilisés en dehors d'une " "fonction, même dans du code passé à :func:`exec`. La fonction donne ``None``." -#: ../Doc/library/functions.rst:456 +#: ../Doc/library/functions.rst:462 msgid "" "In all cases, if the optional parts are omitted, the code is executed in the " "current scope. If only *globals* is provided, it must be a dictionary, " @@ -1016,7 +1023,7 @@ msgstr "" "*globals* et *locals*, le code sera exécuté comme s'il était inclus dans une " "définition de classe." -#: ../Doc/library/functions.rst:465 +#: ../Doc/library/functions.rst:471 msgid "" "If the *globals* dictionary does not contain a value for the key " "``__builtins__``, a reference to the dictionary of the built-in module :mod:" @@ -1030,7 +1037,7 @@ msgstr "" "exposées au code exécuté en insérant votre propre dictionnaire " "``__builtins__`` dans *globals* avant de le donner à :func:`exec`." -#: ../Doc/library/functions.rst:473 +#: ../Doc/library/functions.rst:479 msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local dictionary, respectively, which may be useful to pass " @@ -1040,7 +1047,7 @@ msgstr "" "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "en deuxième et troisième argument de :func:`exec`." -#: ../Doc/library/functions.rst:479 +#: ../Doc/library/functions.rst:485 msgid "" "The default *locals* act as described for function :func:`locals` below: " "modifications to the default *locals* dictionary should not be attempted. " @@ -1053,7 +1060,7 @@ msgstr "" "observer l'effet du code sur les variables locales, après que :func:`exec` " "soit terminée." -#: ../Doc/library/functions.rst:487 +#: ../Doc/library/functions.rst:493 msgid "" "Construct an iterator from those elements of *iterable* for which *function* " "returns true. *iterable* may be either a sequence, a container which " @@ -1067,7 +1074,7 @@ msgstr "" "``None``, la fonction identité est prise, c'est à dire que tous les éléments " "faux d'*iterable* sont supprimés." -#: ../Doc/library/functions.rst:493 +#: ../Doc/library/functions.rst:499 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " @@ -1079,7 +1086,7 @@ msgstr "" "``None`` et de ``(item for item in iterable if item)`` si *function* est " "``None``." -#: ../Doc/library/functions.rst:498 +#: ../Doc/library/functions.rst:504 msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* returns false." @@ -1087,12 +1094,12 @@ msgstr "" "Voir :func:`itertools.filterfalse` pour la fonction complémentaire qui donne " "les éléments d'*iterable* pour lesquels *fonction* donne ``False``." -#: ../Doc/library/functions.rst:508 +#: ../Doc/library/functions.rst:514 msgid "Return a floating point number constructed from a number or string *x*." msgstr "" "Donne un nombre a virgule flottante depuis un nombre ou une chaîne *x*." -#: ../Doc/library/functions.rst:510 +#: ../Doc/library/functions.rst:516 msgid "" "If the argument is a string, it should contain a decimal number, optionally " "preceded by a sign, and optionally embedded in whitespace. The optional " @@ -1110,7 +1117,7 @@ msgstr "" "Plus précisément, l'argument doit se conformer à la grammaire suivante, " "après que les espaces en début et fin de chaîne aient été retirés :" -#: ../Doc/library/functions.rst:525 +#: ../Doc/library/functions.rst:531 msgid "" "Here ``floatnumber`` is the form of a Python floating-point literal, " "described in :ref:`floating`. Case is not significant, so, for example, " @@ -1122,7 +1129,7 @@ msgstr "" "exemple, \"inf\", \" Inf\", \"INFINITY\", et \" iNfiNity\" sont tous des " "orthographes valides pour un infini positif." -#: ../Doc/library/functions.rst:530 +#: ../Doc/library/functions.rst:536 msgid "" "Otherwise, if the argument is an integer or a floating point number, a " "floating point number with the same value (within Python's floating point " @@ -1135,26 +1142,26 @@ msgstr "" "dehors de l'intervalle d'un nombre a virgule flottante pour Python, :exc:" "`OverflowError` est levée." -#: ../Doc/library/functions.rst:535 +#: ../Doc/library/functions.rst:541 msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." "__float__()``." msgstr "" "Pour un objet Python ``x``, ``float(x)`` est délégué à ``x.__float__()``." -#: ../Doc/library/functions.rst:538 +#: ../Doc/library/functions.rst:544 msgid "If no argument is given, ``0.0`` is returned." msgstr "Dans argument, ``0.0`` est donné." -#: ../Doc/library/functions.rst:540 +#: ../Doc/library/functions.rst:546 msgid "Examples::" msgstr "Exemples : ::" -#: ../Doc/library/functions.rst:553 +#: ../Doc/library/functions.rst:559 msgid "The float type is described in :ref:`typesnumeric`." msgstr "Le type *float* est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:565 +#: ../Doc/library/functions.rst:571 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1166,7 +1173,7 @@ msgstr "" "valeur, cependant il existe une syntaxe standard utilisée par la plupart des " "types natifs : :ref:`formatspec`." -#: ../Doc/library/functions.rst:570 +#: ../Doc/library/functions.rst:576 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1174,7 +1181,7 @@ msgstr "" "Par défaut, *format_spec* est une chaîne vide qui généralement donne le même " "effet qu'appeler :func:`str(value) `." -#: ../Doc/library/functions.rst:573 +#: ../Doc/library/functions.rst:579 msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." "__format__(value, format_spec)`` which bypasses the instance dictionary when " @@ -1190,7 +1197,7 @@ msgstr "" "mod:`object` et que *format_spec* n'est pas vide, ou si soit *format_spec* " "soit la le résultat ne sont pas des chaînes." -#: ../Doc/library/functions.rst:580 +#: ../Doc/library/functions.rst:586 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1198,7 +1205,7 @@ msgstr "" "``object().__format__(format_spec)`` lève :exc:`TypeError` si *format_spec* " "n'est pas une chaîne vide." -#: ../Doc/library/functions.rst:589 +#: ../Doc/library/functions.rst:595 msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" @@ -1208,7 +1215,7 @@ msgstr "" "tirés d'*iterable*. ``frozenset`` est une classe native. Voir :class:" "`frozenset` et :ref:`types-set` pour leurs documentation." -#: ../Doc/library/functions.rst:593 +#: ../Doc/library/functions.rst:599 msgid "" "For other containers see the built-in :class:`set`, :class:`list`, :class:" "`tuple`, and :class:`dict` classes, as well as the :mod:`collections` module." @@ -1217,7 +1224,7 @@ msgstr "" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:600 +#: ../Doc/library/functions.rst:606 msgid "" "Return the value of the named attribute of *object*. *name* must be a " "string. If the string is the name of one of the object's attributes, the " @@ -1233,7 +1240,7 @@ msgstr "" "que *default* est fourni, il est renvoyé, sinon l'exception :exc:" "`AttributeError` est levée." -#: ../Doc/library/functions.rst:609 +#: ../Doc/library/functions.rst:615 msgid "" "Return a dictionary representing the current global symbol table. This is " "always the dictionary of the current module (inside a function or method, " @@ -1245,7 +1252,7 @@ msgstr "" "fonction ou méthode, c'est le module où elle est définie, et non le module " "d'où elle est appelée)." -#: ../Doc/library/functions.rst:616 +#: ../Doc/library/functions.rst:622 msgid "" "The arguments are an object and a string. The result is ``True`` if the " "string is the name of one of the object's attributes, ``False`` if not. " @@ -1257,7 +1264,7 @@ msgstr "" "(L'implémentation appelle ``getattr(object, name)`` et regarde si une " "exception :exc:`AttributeError` à été levée.)" -#: ../Doc/library/functions.rst:624 +#: ../Doc/library/functions.rst:630 msgid "" "Return the hash value of the object (if it has one). Hash values are " "integers. They are used to quickly compare dictionary keys during a " @@ -1270,7 +1277,7 @@ msgstr "" "même *hash* (même si leurs types sont différents, comme pour ``1`` et " "``1.0``)." -#: ../Doc/library/functions.rst:631 +#: ../Doc/library/functions.rst:637 msgid "" "For objects with custom :meth:`__hash__` methods, note that :func:`hash` " "truncates the return value based on the bit width of the host machine. See :" @@ -1280,7 +1287,7 @@ msgstr "" "func:`hash` tronque la valeur donnée en fonction du nombre de bits de la " "machine hôte. Voir :meth:`__hash__` pour plus d'informations." -#: ../Doc/library/functions.rst:637 +#: ../Doc/library/functions.rst:643 msgid "" "Invoke the built-in help system. (This function is intended for interactive " "use.) If no argument is given, the interactive help system starts on the " @@ -1296,14 +1303,14 @@ msgstr "" "ce nom est recherché, et une page d'aide est affichée sur la console. Si " "l'argument est d'un autre type, une page d'aide sur cet objet est générée." -#: ../Doc/library/functions.rst:644 +#: ../Doc/library/functions.rst:650 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" "Cette fonction est ajoutée à l'espace de noms natif par le module :mod:" "`site`." -#: ../Doc/library/functions.rst:646 +#: ../Doc/library/functions.rst:652 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." @@ -1311,7 +1318,7 @@ msgstr "" "Les changements aux modules :mod:`pydoc` et :mod:`inspect` rendent les " "signatures des appelables plus compréhensible et cohérente." -#: ../Doc/library/functions.rst:653 +#: ../Doc/library/functions.rst:659 msgid "" "Convert an integer number to a lowercase hexadecimal string prefixed with " "\"0x\". If x is not a Python :class:`int` object, it has to define an " @@ -1321,7 +1328,7 @@ msgstr "" "pas un :class:`int`, il doit définir une méthode __index__() qui donne un " "entier. Quelques exemples :" -#: ../Doc/library/functions.rst:662 +#: ../Doc/library/functions.rst:668 msgid "" "If you want to convert an integer number to an uppercase or lower " "hexadecimal string with prefix or not, you can use either of the following " @@ -1330,7 +1337,7 @@ msgstr "" "Si vous voulez convertir un nombre entier en chaîne hexadécimale, en " "majuscule ou non, préfixée ou non, vous pouvez utiliser les moyens suivants :" -#: ../Doc/library/functions.rst:674 +#: ../Doc/library/functions.rst:680 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1338,7 +1345,7 @@ msgstr "" "Voir aussi :func:`int` pour convertir une chaîne hexadécimale en un entier " "en lui spécifiant 16 comme base." -#: ../Doc/library/functions.rst:679 +#: ../Doc/library/functions.rst:685 msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." @@ -1346,7 +1353,7 @@ msgstr "" "Pour obtenir une représentation hexadécimale sous forme de chaîne d'un " "nombre à virgule flottante, utilisez la méthode :meth:`float.hex`." -#: ../Doc/library/functions.rst:685 +#: ../Doc/library/functions.rst:691 msgid "" "Return the \"identity\" of an object. This is an integer which is " "guaranteed to be unique and constant for this object during its lifetime. " @@ -1357,7 +1364,7 @@ msgstr "" "constant pour cet objet durant sa durée de vie. Deux objets sont les durées " "de vie ne se chevauchent pas peuvent partager le même :func:`id`." -#: ../Doc/library/functions.rst:695 +#: ../Doc/library/functions.rst:701 msgid "" "If the *prompt* argument is present, it is written to standard output " "without a trailing newline. The function then reads a line from input, " @@ -1369,7 +1376,7 @@ msgstr "" "standard et la convertit en chaîne (supprimant le retour à la ligne final) " "quelle donne. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple : ::" -#: ../Doc/library/functions.rst:705 +#: ../Doc/library/functions.rst:711 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1377,19 +1384,22 @@ msgstr "" "Si le module :mod:`readline` est chargé, :func:`input` l'utilisera pour " "fournir des fonctionnalités d'édition et d'historique élaborées." -#: ../Doc/library/functions.rst:712 +#: ../Doc/library/functions.rst:718 +#, fuzzy msgid "" "Return an integer object constructed from a number or string *x*, or return " "``0`` if no arguments are given. If *x* is a number, return :meth:`x." -"__int__() `. For floating point numbers, this truncates " -"towards zero." +"__int__() `. If *x* defines :meth:`x.__trunc__() ` but not :meth:`x.__int__() `, then return if :" +"meth:`x.__trunc__() `. For floating point numbers, this " +"truncates towards zero." msgstr "" "Donne un entier construit depuis un nombre ou une chaîne *x*, ou ``0`` si " "aucun argument n'est fourni. Si *x* est un nombre, :meth:`__int__() ` est donné. Les nombres à virgule flottante sont tronquées vers " "zéro." -#: ../Doc/library/functions.rst:717 +#: ../Doc/library/functions.rst:726 msgid "" "If *x* is not a number or if *base* is given, then *x* must be a string, :" "class:`bytes`, or :class:`bytearray` instance representing an :ref:`integer " @@ -1418,11 +1428,11 @@ msgstr "" "0)`` n'est pas légal, alors que ``int('010')`` l'est tout comme ``int('010', " "8)``." -#: ../Doc/library/functions.rst:730 +#: ../Doc/library/functions.rst:739 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "Le type des entiers est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:732 +#: ../Doc/library/functions.rst:741 msgid "" "If *base* is not an instance of :class:`int` and the *base* object has a :" "meth:`base.__index__ ` method, that method is called to " @@ -1435,7 +1445,7 @@ msgstr "" "meth:`base.__int__ ` au lieu de :meth:`base.__index__ " "`." -#: ../Doc/library/functions.rst:745 +#: ../Doc/library/functions.rst:754 msgid "" "Return true if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect or :term:`virtual `) of *classinfo*. A class is considered a subclass of " @@ -1468,7 +1478,7 @@ msgstr "" "cas la vérification sera faite pour chaque classe de *classinfo*. Dans tous " "les autres cas, :exc:`TypeError` est levée." -#: ../Doc/library/functions.rst:766 +#: ../Doc/library/functions.rst:775 msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " @@ -1494,11 +1504,11 @@ msgstr "" "est égale à *sentinel* :exc:`StopIteration` est levée, autrement la valeur " "est donnée." -#: ../Doc/library/functions.rst:779 +#: ../Doc/library/functions.rst:788 msgid "See also :ref:`typeiter`." msgstr "Voir aussi :ref:`typeiter`." -#: ../Doc/library/functions.rst:781 +#: ../Doc/library/functions.rst:790 msgid "" "One useful application of the second form of :func:`iter` is to read lines " "of a file until a certain line is reached. The following example reads a " @@ -1510,7 +1520,7 @@ msgstr "" "L'exemple suivant lis un fichier jusqu'à ce que :meth:`~io.TextIOBase." "readline` donne une ligne vide : ::" -#: ../Doc/library/functions.rst:792 +#: ../Doc/library/functions.rst:801 msgid "" "Return the length (the number of items) of an object. The argument may be a " "sequence (such as a string, bytes, tuple, list, or range) or a collection " @@ -1520,7 +1530,7 @@ msgstr "" "séquence (tel qu'une chaîne, un objet ``bytes``, ``tuple``, ``list`` ou " "``range``) ou une collection (tel qu'un ``dict``, ``set`` ou ``frozenset``)." -#: ../Doc/library/functions.rst:801 +#: ../Doc/library/functions.rst:810 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -1528,7 +1538,7 @@ msgstr "" "Plutôt qu'être une fonction, :class:`list` est en fait un type de séquence " "variable, tel que documenté dans :ref:`typesseq-list` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:807 +#: ../Doc/library/functions.rst:816 msgid "" "Update and return a dictionary representing the current local symbol table. " "Free variables are returned by :func:`locals` when it is called in function " @@ -1538,7 +1548,7 @@ msgstr "" "locaux. Les variables libres sont données par :func:`locals` lorsqu'elle est " "appelée dans le corps d'une fonction, mais pas dans le corps d'une classe." -#: ../Doc/library/functions.rst:812 +#: ../Doc/library/functions.rst:821 msgid "" "The contents of this dictionary should not be modified; changes may not " "affect the values of local and free variables used by the interpreter." @@ -1547,7 +1557,7 @@ msgstr "" "peuvent ne pas affecter les valeurs des variables locales ou libres " "utilisées par l'interpréteur." -#: ../Doc/library/functions.rst:817 +#: ../Doc/library/functions.rst:826 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterable* arguments are passed, " @@ -1564,7 +1574,7 @@ msgstr "" "où les arguments seraient déjà rangés sous forme de tuples, voir :func:" "`itertools.starmap`." -#: ../Doc/library/functions.rst:828 +#: ../Doc/library/functions.rst:837 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." @@ -1572,7 +1582,7 @@ msgstr "" "Donne l'élément le plus grand dans un iterable, ou l'argument le plus grand " "parmi au moins deux arguments." -#: ../Doc/library/functions.rst:831 +#: ../Doc/library/functions.rst:840 msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The largest item in the iterable is returned. If two or more positional " @@ -1582,7 +1592,7 @@ msgstr "" "Le plus grand élément de l'itérable est donné. Si au moins deux arguments " "positionnels sont fournis, l'argument le plus grand sera donné." -#: ../Doc/library/functions.rst:836 ../Doc/library/functions.rst:870 +#: ../Doc/library/functions.rst:845 ../Doc/library/functions.rst:879 msgid "" "There are two optional keyword-only arguments. The *key* argument specifies " "a one-argument ordering function like that used for :meth:`list.sort`. The " @@ -1596,7 +1606,7 @@ msgstr "" "l'itérable fourni est vide. Si l'itérable est vide et que *default* n'est " "pas fourni, :exc:`ValueError` est levée." -#: ../Doc/library/functions.rst:842 +#: ../Doc/library/functions.rst:851 msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -1608,11 +1618,11 @@ msgstr "" "stabilité lors du tri, tel que ``sorted(iterable, key=keyfunc, reverse=True)" "[0]`` et ``heapq.nlargest(1, iterable, key=keyfunc)``." -#: ../Doc/library/functions.rst:847 ../Doc/library/functions.rst:881 +#: ../Doc/library/functions.rst:856 ../Doc/library/functions.rst:890 msgid "The *default* keyword-only argument." msgstr "L'argument exclusivement par mot clef *default*." -#: ../Doc/library/functions.rst:855 +#: ../Doc/library/functions.rst:864 msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." @@ -1620,7 +1630,7 @@ msgstr "" "Donne une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :ref:" "`typememoryview` pour plus d'informations." -#: ../Doc/library/functions.rst:862 +#: ../Doc/library/functions.rst:871 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." @@ -1628,7 +1638,7 @@ msgstr "" "Donne le plus petit élément d'un itérable ou le plus petit d'au moins deux " "arguments." -#: ../Doc/library/functions.rst:865 +#: ../Doc/library/functions.rst:874 msgid "" "If one positional argument is provided, it should be an :term:`iterable`. " "The smallest item in the iterable is returned. If two or more positional " @@ -1638,7 +1648,7 @@ msgstr "" "élément de l'itérable est donné. Si au moins deux arguments positionnels " "sont fournis le plus petit argument positionnel est donné." -#: ../Doc/library/functions.rst:876 +#: ../Doc/library/functions.rst:885 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -1650,7 +1660,7 @@ msgstr "" "``sorted(iterable, key=keyfunc)[0]`` et ``heapq.nsmallest(1, iterable, " "key=keyfunc)``." -#: ../Doc/library/functions.rst:887 +#: ../Doc/library/functions.rst:896 msgid "" "Retrieve the next item from the *iterator* by calling its :meth:`~iterator." "__next__` method. If *default* is given, it is returned if the iterator is " @@ -1660,7 +1670,7 @@ msgstr "" "__next__`. Si *default* est fourni, il sera donné si l'itérateur est épousé, " "sinon :exc:`StopIteration` est levée." -#: ../Doc/library/functions.rst:894 +#: ../Doc/library/functions.rst:903 msgid "" "Return a new featureless object. :class:`object` is a base for all classes. " "It has the methods that are common to all instances of Python classes. This " @@ -1670,7 +1680,7 @@ msgstr "" "classes. C'est elle qui porte les méthodes communes à toutes les instances " "de classes en Python. Cette fonction n'accepte aucun argument." -#: ../Doc/library/functions.rst:900 +#: ../Doc/library/functions.rst:909 msgid "" ":class:`object` does *not* have a :attr:`~object.__dict__`, so you can't " "assign arbitrary attributes to an instance of the :class:`object` class." @@ -1679,7 +1689,7 @@ msgstr "" "pouvez donc pas assigner d'attributs arbitraire à une instance d':class:" "`object`." -#: ../Doc/library/functions.rst:906 +#: ../Doc/library/functions.rst:915 msgid "" "Convert an integer number to an octal string prefixed with \"0o\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " @@ -1691,7 +1701,7 @@ msgstr "" "objet :class:`int`, il doit définir une méthode :meth:`__index__` qui donne " "un entier, par exemple :" -#: ../Doc/library/functions.rst:916 +#: ../Doc/library/functions.rst:925 msgid "" "If you want to convert an integer number to octal string either with prefix " "\"0o\" or not, you can use either of the following ways." @@ -1699,7 +1709,7 @@ msgstr "" "Si vous voulez convertir un nombre entier en chaîne octale, avec ou sans le " "préfixe \"0o\", vous pouvez utiliser les moyens suivants." -#: ../Doc/library/functions.rst:933 +#: ../Doc/library/functions.rst:942 msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " "cannot be opened, an :exc:`OSError` is raised." @@ -1707,7 +1717,7 @@ msgstr "" "Ouvre *file* et donne un :term:`file object` correspondant. Si le fichier ne " "peut pas être ouvert, une :exc:`OSError` est levée." -#: ../Doc/library/functions.rst:936 +#: ../Doc/library/functions.rst:945 msgid "" "*file* is a :term:`path-like object` giving the pathname (absolute or " "relative to the current working directory) of the file to be opened or an " @@ -1721,7 +1731,7 @@ msgstr "" "donné, il sera fermé en même temps que l'objet *I/O* renvoyé, sauf si " "*closefd* est mis à ``False``.)" -#: ../Doc/library/functions.rst:942 +#: ../Doc/library/functions.rst:951 msgid "" "*mode* is an optional string that specifies the mode in which the file is " "opened. It defaults to ``'r'`` which means open for reading in text mode. " @@ -1747,79 +1757,79 @@ msgstr "" "utilisez le mode binaire en laissant *encoding* non spécifié.) Les modes " "disponibles sont :" -#: ../Doc/library/functions.rst:954 +#: ../Doc/library/functions.rst:963 msgid "Character" msgstr "Caractère" -#: ../Doc/library/functions.rst:954 +#: ../Doc/library/functions.rst:963 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/functions.rst:956 +#: ../Doc/library/functions.rst:965 msgid "``'r'``" msgstr "``'r'``" -#: ../Doc/library/functions.rst:956 +#: ../Doc/library/functions.rst:965 msgid "open for reading (default)" msgstr "ouvre en lecture (par défaut)" -#: ../Doc/library/functions.rst:957 +#: ../Doc/library/functions.rst:966 msgid "``'w'``" msgstr "``'w'``" -#: ../Doc/library/functions.rst:957 +#: ../Doc/library/functions.rst:966 msgid "open for writing, truncating the file first" msgstr "ouvre en écriture, tronquant le fichier" -#: ../Doc/library/functions.rst:958 +#: ../Doc/library/functions.rst:967 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/functions.rst:958 +#: ../Doc/library/functions.rst:967 msgid "open for exclusive creation, failing if the file already exists" msgstr "ouvre pour une création exclusive, échouant si le fichier existe déjà" -#: ../Doc/library/functions.rst:959 +#: ../Doc/library/functions.rst:968 msgid "``'a'``" msgstr "``'a'``" -#: ../Doc/library/functions.rst:959 +#: ../Doc/library/functions.rst:968 msgid "open for writing, appending to the end of the file if it exists" msgstr "ouvre en écriture, ajoutant à la fin du fichier s'il existe" -#: ../Doc/library/functions.rst:960 +#: ../Doc/library/functions.rst:969 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/functions.rst:960 +#: ../Doc/library/functions.rst:969 msgid "binary mode" msgstr "mode binaire" -#: ../Doc/library/functions.rst:961 +#: ../Doc/library/functions.rst:970 msgid "``'t'``" msgstr "``'t'``" -#: ../Doc/library/functions.rst:961 +#: ../Doc/library/functions.rst:970 msgid "text mode (default)" msgstr "mode texte (par défaut)" -#: ../Doc/library/functions.rst:962 +#: ../Doc/library/functions.rst:971 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/functions.rst:962 +#: ../Doc/library/functions.rst:971 msgid "open a disk file for updating (reading and writing)" msgstr "ouvre un fichier pour le modifier (lire et écrire)" -#: ../Doc/library/functions.rst:963 +#: ../Doc/library/functions.rst:972 msgid "``'U'``" msgstr "``'U'``" -#: ../Doc/library/functions.rst:963 +#: ../Doc/library/functions.rst:972 msgid ":term:`universal newlines` mode (deprecated)" msgstr "mode :term:`universal newlines` (déprécié)" -#: ../Doc/library/functions.rst:966 +#: ../Doc/library/functions.rst:975 msgid "" "The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``). " "For binary read-write access, the mode ``'w+b'`` opens and truncates the " @@ -1829,7 +1839,7 @@ msgstr "" "``'rt'``). Pour un accès en lecture écriture binaire, le mode ``'w+b'`` " "ouvre et vide le fichier. ``'r+b'`` ouvre le fichier sans le vider." -#: ../Doc/library/functions.rst:970 +#: ../Doc/library/functions.rst:979 msgid "" "As mentioned in the :ref:`io-overview`, Python distinguishes between binary " "and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " @@ -1847,7 +1857,7 @@ msgstr "" "été décodés au préalable en utilisant un encodage deduit de l'environnement " "ou *encoding* s'il est donné." -#: ../Doc/library/functions.rst:980 +#: ../Doc/library/functions.rst:989 msgid "" "Python doesn't depend on the underlying operating system's notion of text " "files; all the processing is done by Python itself, and is therefore " @@ -1857,7 +1867,7 @@ msgstr "" "jacent, tout est effectué par Python lui même, et ainsi indépendant de la " "plateforme." -#: ../Doc/library/functions.rst:984 +#: ../Doc/library/functions.rst:993 msgid "" "*buffering* is an optional integer used to set the buffering policy. Pass 0 " "to switch buffering off (only allowed in binary mode), 1 to select line " @@ -1872,7 +1882,7 @@ msgstr "" "en octets d'un tampon de taille fixe. Sans l'argument *buffering*, les " "comportements par défaut sont les suivants :" -#: ../Doc/library/functions.rst:990 +#: ../Doc/library/functions.rst:999 msgid "" "Binary files are buffered in fixed-size chunks; the size of the buffer is " "chosen using a heuristic trying to determine the underlying device's \"block " @@ -1885,7 +1895,7 @@ msgstr "" "DEFAULT_BUFFER_SIZE`. Sur de nombreux systèmes, le tampon sera de 4096 ou " "8192 octets." -#: ../Doc/library/functions.rst:995 +#: ../Doc/library/functions.rst:1004 msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " @@ -1895,7 +1905,7 @@ msgstr "" "isatty` donne ``True``) utilisent un tampon par lignes. Les autres fichiers " "texte sont traités comme les fichiers binaires." -#: ../Doc/library/functions.rst:999 +#: ../Doc/library/functions.rst:1008 msgid "" "*encoding* is the name of the encoding used to decode or encode the file. " "This should only be used in text mode. The default encoding is platform " @@ -1909,7 +1919,7 @@ msgstr "" "mais n'importe quel :term:`text encoding` supporté par Python peut être " "utilisé. Voir :mod:`codecs` pour une liste des encodages supportés." -#: ../Doc/library/functions.rst:1006 +#: ../Doc/library/functions.rst:1015 msgid "" "*errors* is an optional string that specifies how encoding and decoding " "errors are to be handled—this cannot be used in binary mode. A variety of " @@ -1924,7 +1934,7 @@ msgstr "" "enregistré avec :func:`codecs.register_error` est aussi un argument valide. " "Les noms standards sont :" -#: ../Doc/library/functions.rst:1014 +#: ../Doc/library/functions.rst:1023 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -1932,7 +1942,7 @@ msgstr "" "``'strict'`` pour lever une :exc:`ValueError` si une erreur d'encodage est " "rencontrée. La valeur par défaut, ``None``, a le même effet." -#: ../Doc/library/functions.rst:1018 +#: ../Doc/library/functions.rst:1027 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -1940,7 +1950,7 @@ msgstr "" "``'ignore'`` ignore les erreures. Notez qu'ignorer les erreurs d'encodage " "peut mener à des pertes de données." -#: ../Doc/library/functions.rst:1021 +#: ../Doc/library/functions.rst:1030 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -1948,7 +1958,7 @@ msgstr "" "``'replace'`` insère un marqueur de substitution (tel que ``'?'``) en place " "des données malformées." -#: ../Doc/library/functions.rst:1024 +#: ../Doc/library/functions.rst:1033 msgid "" "``'surrogateescape'`` will represent any incorrect bytes as code points in " "the Unicode Private Use Area ranging from U+DC80 to U+DCFF. These private " @@ -1963,7 +1973,7 @@ msgstr "" "l'écriture de la donnée. C'est utile pour traiter des fichiers d'un encodage " "inconnu." -#: ../Doc/library/functions.rst:1031 +#: ../Doc/library/functions.rst:1040 msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " @@ -1973,7 +1983,7 @@ msgstr "" "Les caractères non gérés par l'encodage sont remplacés par une référence de " "caractère XML ``&#nnn;``." -#: ../Doc/library/functions.rst:1035 +#: ../Doc/library/functions.rst:1044 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -1981,7 +1991,7 @@ msgstr "" "``'backslashreplace'`` remplace les données malformée par des séquences " "d'échappement Python (utilisant des *backslash*)." -#: ../Doc/library/functions.rst:1038 +#: ../Doc/library/functions.rst:1047 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -1989,7 +1999,7 @@ msgstr "" "``'namereplace'`` (aussi supporté lors de l'écriture) remplace les " "caractères non supportés par des séquences d'échappement ``\\N{...}``." -#: ../Doc/library/functions.rst:1044 +#: ../Doc/library/functions.rst:1053 msgid "" "*newline* controls how :term:`universal newlines` mode works (it only " "applies to text mode). It can be ``None``, ``''``, ``'\\n'``, ``'\\r'``, " @@ -1999,7 +2009,7 @@ msgstr "" "(seulement en mode texte). Il eut être ``None``, ``''``, ``'\\n'``, " "``'\\r'``, and ``'\\r\\n'``. Il fonctionne comme suit :" -#: ../Doc/library/functions.rst:1048 +#: ../Doc/library/functions.rst:1057 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2017,7 +2027,7 @@ msgstr "" "autorisée, les lignes sont seulement terminées par la chaîne donnée, qui est " "rendue tel qu'elle." -#: ../Doc/library/functions.rst:1056 +#: ../Doc/library/functions.rst:1065 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -2031,7 +2041,7 @@ msgstr "" "*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " "la chaîne donnée." -#: ../Doc/library/functions.rst:1062 +#: ../Doc/library/functions.rst:1071 msgid "" "If *closefd* is ``False`` and a file descriptor rather than a filename was " "given, the underlying file descriptor will be kept open when the file is " @@ -2043,7 +2053,7 @@ msgstr "" "le fichier sera fermé. Si un nom de fichier est donné, *closefd* doit rester " "``True`` (la valeur par défaut) sans quoi une erreur est levée." -#: ../Doc/library/functions.rst:1067 +#: ../Doc/library/functions.rst:1076 msgid "" "A custom opener can be used by passing a callable as *opener*. The " "underlying file descriptor for the file object is then obtained by calling " @@ -2057,13 +2067,13 @@ msgstr "" "descripteur de fichier ouvert (fournir :mod:`os.open` en temps qu'*opener* " "aura le même effet que donner ``None``)." -#: ../Doc/library/functions.rst:1073 +#: ../Doc/library/functions.rst:1082 msgid "The newly created file is :ref:`non-inheritable `." msgstr "" "Il n'est :ref:`pas possible d'hériter du fichier ` " "nouvellement créé." -#: ../Doc/library/functions.rst:1075 +#: ../Doc/library/functions.rst:1084 msgid "" "The following example uses the :ref:`dir_fd ` parameter of the :func:" "`os.open` function to open a file relative to a given directory::" @@ -2071,7 +2081,7 @@ msgstr "" "L'exemple suivant utilise le paramètre :ref:`dir_fd ` de la " "fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" -#: ../Doc/library/functions.rst:1088 +#: ../Doc/library/functions.rst:1097 msgid "" "The type of :term:`file object` returned by the :func:`open` function " "depends on the mode. When :func:`open` is used to open a file in a text " @@ -2097,7 +2107,7 @@ msgstr "" "désactivé, le flux brut, une classe fille de :class:`io.RawIOBase`, :class:" "`io.FileIO` est donnée." -#: ../Doc/library/functions.rst:1109 +#: ../Doc/library/functions.rst:1118 msgid "" "See also the file handling modules, such as, :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" @@ -2107,21 +2117,21 @@ msgstr "" "`fileinput`, :mod:`io` (où :func:`open` est déclarée), :mod:`os`, :mod:`os." "path`, :mod:`tmpfile`, et :mod:`shutil`." -#: ../Doc/library/functions.rst:1116 +#: ../Doc/library/functions.rst:1125 msgid "The *opener* parameter was added." msgstr "Le paramètre *opener* a été ajouté." -#: ../Doc/library/functions.rst:1117 +#: ../Doc/library/functions.rst:1126 msgid "The ``'x'`` mode was added." msgstr "Le mode ``'x'`` a été ajouté." -#: ../Doc/library/functions.rst:1118 +#: ../Doc/library/functions.rst:1127 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:" "`OSError`." -#: ../Doc/library/functions.rst:1119 +#: ../Doc/library/functions.rst:1128 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -2129,21 +2139,15 @@ msgstr "" ":exc:`FileExistsError` est maintenant levée si le fichier ouvert en mode " "création exclusive (``'x'``) existe déjà." -#: ../Doc/library/functions.rst:1125 +#: ../Doc/library/functions.rst:1134 msgid "The file is now non-inheritable." msgstr "Il n'est plus possible d'hériter de *file*." -#: ../Doc/library/functions.rst:None -msgid "" -"Deprecated since version 3.4, will be removed in version 4.0: The 'U' mode." -msgstr "" -"Déprécié depuis la version 3.4, sera supprimé dans la 4.0 : Le mode 'U'." - -#: ../Doc/library/functions.rst:1129 +#: ../Doc/library/functions.rst:1138 msgid "The ``'U'`` mode." msgstr "Le mode '``U'``." -#: ../Doc/library/functions.rst:1134 +#: ../Doc/library/functions.rst:1143 msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the function now retries the system call instead of raising an :" @@ -2153,15 +2157,15 @@ msgstr "" "aucune exception, la fonction réessaye l'appel système au lieu de lever une :" "exc:`InterruptedError` (voir la :pep:`475` à propos du raisonnement)." -#: ../Doc/library/functions.rst:1137 +#: ../Doc/library/functions.rst:1146 msgid "The ``'namereplace'`` error handler was added." msgstr "Le gestionnaire d'erreurs ``'namereplace'`` a été ajouté." -#: ../Doc/library/functions.rst:1142 +#: ../Doc/library/functions.rst:1151 msgid "Support added to accept objects implementing :class:`os.PathLike`." msgstr "Ajout du support des objets implémentant :class:`os.PathLike`." -#: ../Doc/library/functions.rst:1143 +#: ../Doc/library/functions.rst:1152 msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." @@ -2169,7 +2173,7 @@ msgstr "" "Sous Windows, ouvrir un *buffer* du terminal peut renvoyer une sous-classe " "de :class:`io.RawIOBase` autre que :class:`io.FileIO`." -#: ../Doc/library/functions.rst:1148 +#: ../Doc/library/functions.rst:1157 msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " @@ -2181,7 +2185,7 @@ msgstr "" "nombre entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il " "s'agit de l'inverse de :func:`chr`." -#: ../Doc/library/functions.rst:1156 +#: ../Doc/library/functions.rst:1165 msgid "" "Return *x* to the power *y*; if *z* is present, return *x* to the power *y*, " "modulo *z* (computed more efficiently than ``pow(x, y) % z``). The two-" @@ -2192,7 +2196,7 @@ msgstr "" "modulo *z* (calculé de manière plus efficiente que ``pow(x, y) % z``). La " "forme à deux arguments est équivalent à ``x**y``." -#: ../Doc/library/functions.rst:1160 +#: ../Doc/library/functions.rst:1169 msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -2213,7 +2217,7 @@ msgstr "" "argument est négatif, le troisième doit être omis. Si *z* est fourni, *x* et " "*y* doivent être des entiers et *y* positif." -#: ../Doc/library/functions.rst:1172 +#: ../Doc/library/functions.rst:1181 msgid "" "Print *objects* to the text stream *file*, separated by *sep* and followed " "by *end*. *sep*, *end*, *file* and *flush*, if present, must be given as " @@ -2223,7 +2227,7 @@ msgstr "" "*end*. *sep*, *end*, *file*, et *flush*, s'ils sont présents, doivent être " "données par mot clef." -#: ../Doc/library/functions.rst:1176 +#: ../Doc/library/functions.rst:1185 msgid "" "All non-keyword arguments are converted to strings like :func:`str` does and " "written to the stream, separated by *sep* and followed by *end*. Both *sep* " @@ -2237,7 +2241,7 @@ msgstr "" "les valeurs par défaut. Si aucun *objects* n'est donné :func:`print` écris " "seulement *end*." -#: ../Doc/library/functions.rst:1182 +#: ../Doc/library/functions.rst:1191 msgid "" "The *file* argument must be an object with a ``write(string)`` method; if it " "is not present or ``None``, :data:`sys.stdout` will be used. Since printed " @@ -2250,7 +2254,7 @@ msgstr "" "peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux " "ci utilisez plutôt ``file.write(...)``." -#: ../Doc/library/functions.rst:1187 +#: ../Doc/library/functions.rst:1196 msgid "" "Whether output is buffered is usually determined by *file*, but if the " "*flush* keyword argument is true, the stream is forcibly flushed." @@ -2258,15 +2262,15 @@ msgstr "" "Que la sortie utilise un *buffer* ou non est souvent décidé par *file*, mais " "si l'argument *flush* est vrai, le tampon du flux est vidé explicitement." -#: ../Doc/library/functions.rst:1190 +#: ../Doc/library/functions.rst:1199 msgid "Added the *flush* keyword argument." msgstr "Ajout de l'argument par mot clef *flush*." -#: ../Doc/library/functions.rst:1196 +#: ../Doc/library/functions.rst:1205 msgid "Return a property attribute." msgstr "Donne un attribut propriété." -#: ../Doc/library/functions.rst:1198 +#: ../Doc/library/functions.rst:1207 msgid "" "*fget* is a function for getting an attribute value. *fset* is a function " "for setting an attribute value. *fdel* is a function for deleting an " @@ -2277,11 +2281,11 @@ msgstr "" "supprimer la valeur d'un attribut, et *doc* créé une *docstring* pour " "l'attribut." -#: ../Doc/library/functions.rst:1202 +#: ../Doc/library/functions.rst:1211 msgid "A typical use is to define a managed attribute ``x``::" msgstr "Une utilisation typique : définir un attribut managé ``x`` : ::" -#: ../Doc/library/functions.rst:1219 +#: ../Doc/library/functions.rst:1228 msgid "" "If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " "value`` will invoke the setter and ``del c.x`` the deleter." @@ -2289,7 +2293,7 @@ msgstr "" "Si *c* est une instance de *C*, ``c.x`` appellera le *getter*, ``c.x = " "value`` invoquera le *setter*, et ``del x`` le *deleter*." -#: ../Doc/library/functions.rst:1222 +#: ../Doc/library/functions.rst:1231 msgid "" "If given, *doc* will be the docstring of the property attribute. Otherwise, " "the property will copy *fget*'s docstring (if it exists). This makes it " @@ -2301,7 +2305,7 @@ msgstr "" "création de propriétés en lecture seule en utilisant simplement :func:" "`property` comme un :term:`decorator` : ::" -#: ../Doc/library/functions.rst:1235 +#: ../Doc/library/functions.rst:1244 msgid "" "The ``@property`` decorator turns the :meth:`voltage` method into a \"getter" "\" for a read-only attribute with the same name, and it sets the docstring " @@ -2311,7 +2315,7 @@ msgstr "" "*getter* d'un attribut du même nom, et donne \"Get the current voltage\" " "comme *docstring* de *voltage*." -#: ../Doc/library/functions.rst:1239 +#: ../Doc/library/functions.rst:1248 msgid "" "A property object has :attr:`~property.getter`, :attr:`~property.setter`, " "and :attr:`~property.deleter` methods usable as decorators that create a " @@ -2323,7 +2327,7 @@ msgstr "" "une copie de la propriété avec les accesseurs correspondants définis par la " "fonction de décoration. C'est plus clair avec un exemple : ::" -#: ../Doc/library/functions.rst:1261 +#: ../Doc/library/functions.rst:1270 msgid "" "This code is exactly equivalent to the first example. Be sure to give the " "additional functions the same name as the original property (``x`` in this " @@ -2333,7 +2337,7 @@ msgstr "" "donner aux fonctions additionnelles le même nom que la propriété (``x`` dans " "ce cas.)" -#: ../Doc/library/functions.rst:1265 +#: ../Doc/library/functions.rst:1274 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." @@ -2341,11 +2345,11 @@ msgstr "" "L'objet propriété donné à aussi les attributs ``fget``, ``fset`` et ``fdel`` " "correspondant correspondants aux arguments du constructeur." -#: ../Doc/library/functions.rst:1268 +#: ../Doc/library/functions.rst:1277 msgid "The docstrings of property objects are now writeable." msgstr "Les *docstrings* des objets propriété peuvent maintenant être écrits." -#: ../Doc/library/functions.rst:1277 +#: ../Doc/library/functions.rst:1286 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -2353,7 +2357,7 @@ msgstr "" "Plutôt qu'être une fonction, :class:`range` est en fait une séquence " "immuable, tel que documenté dans :ref:`typesseq-range` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:1283 +#: ../Doc/library/functions.rst:1292 msgid "" "Return a string containing a printable representation of an object. For " "many types, this function makes an attempt to return a string that would " @@ -2371,7 +2375,7 @@ msgstr "" "l'objet. Une classe peut contrôler ce que cette fonction donne pour ses " "instances en définissant une méthode :meth:`_repr__`." -#: ../Doc/library/functions.rst:1294 +#: ../Doc/library/functions.rst:1303 msgid "" "Return a reverse :term:`iterator`. *seq* must be an object which has a :" "meth:`__reversed__` method or supports the sequence protocol (the :meth:" @@ -2383,7 +2387,7 @@ msgstr "" "meth:`__len__` et la méthode :meth:`__getitem__` avec des arguments entiers " "commençant à zéro)." -#: ../Doc/library/functions.rst:1302 +#: ../Doc/library/functions.rst:1311 msgid "" "Return *number* rounded to *ndigits* precision after the decimal point. If " "*ndigits* is omitted or is ``None``, it returns the nearest integer to its " @@ -2393,7 +2397,7 @@ msgstr "" "virgule. Si *ndigits* est omis ou est ``None``, l'entier le plus proche est " "renvoyé." -#: ../Doc/library/functions.rst:1306 +#: ../Doc/library/functions.rst:1315 msgid "" "For the built-in types supporting :func:`round`, values are rounded to the " "closest multiple of 10 to the power minus *ndigits*; if two multiples are " @@ -2411,7 +2415,7 @@ msgstr "" "(positif, zéro, ou négatif). La valeur rendue est un entier si elle *round* " "est appelée avec un seul argument, sinon elle sera du même type que *number*." -#: ../Doc/library/functions.rst:1314 +#: ../Doc/library/functions.rst:1323 msgid "" "For a general Python object ``number``, ``round(number, ndigits)`` delegates " "to ``number.__round__(ndigits)``." @@ -2419,7 +2423,7 @@ msgstr "" "Pour un objet Python ``number``, ``round(number, ndigits)`` est délégué à " "``number.__round__(ndigits)``." -#: ../Doc/library/functions.rst:1319 +#: ../Doc/library/functions.rst:1328 msgid "" "The behavior of :func:`round` for floats can be surprising: for example, " "``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " @@ -2433,7 +2437,7 @@ msgstr "" "de décimaux ne peuvent pas être représentés exactement en nombre a virgule " "flottante. Voir :ref:`tut-fp-issues` pour plus d'information." -#: ../Doc/library/functions.rst:1330 +#: ../Doc/library/functions.rst:1339 msgid "" "Return a new :class:`set` object, optionally with elements taken from " "*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" @@ -2443,7 +2447,7 @@ msgstr "" "d'*iterable*. ``set`` est une classe native. Voir :class:`set` et :ref:" "`types-set` pour la documentation de cette classe." -#: ../Doc/library/functions.rst:1334 +#: ../Doc/library/functions.rst:1343 msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " @@ -2453,7 +2457,7 @@ msgstr "" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:1341 +#: ../Doc/library/functions.rst:1350 msgid "" "This is the counterpart of :func:`getattr`. The arguments are an object, a " "string and an arbitrary value. The string may name an existing attribute or " @@ -2467,7 +2471,7 @@ msgstr "" "si l'objet l'autorise. Par exemple, ``setattr(x, 'foobar', 123)`` équivaut à " "``x.foobar = 123``." -#: ../Doc/library/functions.rst:1353 +#: ../Doc/library/functions.rst:1362 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -2491,16 +2495,16 @@ msgstr "" "étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. Voir :" "func:`itertools.islice` pour une version alternative donnant un itérateur." -#: ../Doc/library/functions.rst:1366 +#: ../Doc/library/functions.rst:1375 msgid "Return a new sorted list from the items in *iterable*." msgstr "Donne une nouvelle liste triée depuis les éléments d'*iterable*." -#: ../Doc/library/functions.rst:1368 +#: ../Doc/library/functions.rst:1377 msgid "" "Has two optional arguments which must be specified as keyword arguments." msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." -#: ../Doc/library/functions.rst:1370 +#: ../Doc/library/functions.rst:1379 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each list element: ``key=str.lower``. The default value " @@ -2510,7 +2514,7 @@ msgstr "" "comparaison de chaque élément de la liste : ``key=str.lower``. La valeur par " "défaut est ``None`` (compare les éléments directement)." -#: ../Doc/library/functions.rst:1374 +#: ../Doc/library/functions.rst:1383 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2518,7 +2522,7 @@ msgstr "" "*reverse*, une valeur booléenne. Si elle est ``True``, la liste d'éléments " "est triée comme si toutes les comparaisons étaient inversées." -#: ../Doc/library/functions.rst:1377 +#: ../Doc/library/functions.rst:1386 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -2526,7 +2530,7 @@ msgstr "" "Utilisez :func:`functools.cmp_to_key` pour convertir l'ancienne notation " "*cmp* en une fonction *key*." -#: ../Doc/library/functions.rst:1380 +#: ../Doc/library/functions.rst:1389 msgid "" "The built-in :func:`sorted` function is guaranteed to be stable. A sort is " "stable if it guarantees not to change the relative order of elements that " @@ -2538,17 +2542,17 @@ msgstr "" "eux. C'est util pour trier en plusieurs passes, par exemple par département " "puis par salaire)." -#: ../Doc/library/functions.rst:1385 +#: ../Doc/library/functions.rst:1394 msgid "" "For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." msgstr "" "Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." -#: ../Doc/library/functions.rst:1389 +#: ../Doc/library/functions.rst:1398 msgid "Transform a method into a static method." msgstr "Transforme une méthode en méthode statique." -#: ../Doc/library/functions.rst:1391 +#: ../Doc/library/functions.rst:1400 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -2556,7 +2560,7 @@ msgstr "" "Une méthode statique ne reçoit pas de premier argument implicitement. Voilà " "comment déclarer une méthode statique : ::" -#: ../Doc/library/functions.rst:1398 +#: ../Doc/library/functions.rst:1407 msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see the " "description of function definitions in :ref:`function` for details." @@ -2565,7 +2569,7 @@ msgstr "" "description des définitions de fonction dans :ref:`function` pour plus de " "détails." -#: ../Doc/library/functions.rst:1401 +#: ../Doc/library/functions.rst:1410 msgid "" "It can be called either on the class (such as ``C.f()``) or on an instance " "(such as ``C().f()``). The instance is ignored except for its class." @@ -2573,7 +2577,7 @@ msgstr "" "Elle peut être appelée soit sur une classe (tel que ``C.f()``) ou sur une " "instance (tel que ``C().f()``). L'instance est ignorée, sauf pour sa classe." -#: ../Doc/library/functions.rst:1404 +#: ../Doc/library/functions.rst:1413 msgid "" "Static methods in Python are similar to those found in Java or C++. Also " "see :func:`classmethod` for a variant that is useful for creating alternate " @@ -2583,7 +2587,7 @@ msgstr "" "ou en C++. Consultez :func:`classmethod` pour une variante utile pour créer " "des constructeurs alternatifs." -#: ../Doc/library/functions.rst:1408 +#: ../Doc/library/functions.rst:1417 #, fuzzy msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " @@ -2598,7 +2602,7 @@ msgstr "" "depuis le corps d'une classe, et souhaiteriez éviter sa transformation en " "méthode d'instance. Pour ces cas, faites comme suit ::" -#: ../Doc/library/functions.rst:1417 +#: ../Doc/library/functions.rst:1426 msgid "" "For more information on static methods, consult the documentation on the " "standard type hierarchy in :ref:`types`." @@ -2606,14 +2610,14 @@ msgstr "" "Pour plus d'informations sur les méthodes statiques, consultez la " "documentation de la hiérarchie des types standards dans :ref:`types`." -#: ../Doc/library/functions.rst:1429 +#: ../Doc/library/functions.rst:1438 msgid "" "Return a :class:`str` version of *object*. See :func:`str` for details." msgstr "" "Donne une version sous forme de :class:`str` d'*object*. Voir :func:`str` " "pour plus de détails." -#: ../Doc/library/functions.rst:1431 +#: ../Doc/library/functions.rst:1440 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." @@ -2621,7 +2625,7 @@ msgstr "" "``str`` est la :term:`class` native des chaînes de caractères. Pour des " "informations générales à propos des chaînes, consultez :ref:`textseq`." -#: ../Doc/library/functions.rst:1437 +#: ../Doc/library/functions.rst:1446 msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. *start* defaults to ``0``. The *iterable*'s items are normally " @@ -2632,7 +2636,7 @@ msgstr "" "sont normalement des nombres, et la valeur de *start* ne peut pas être une " "chaîne." -#: ../Doc/library/functions.rst:1441 +#: ../Doc/library/functions.rst:1450 msgid "" "For some use cases, there are good alternatives to :func:`sum`. The " "preferred, fast way to concatenate a sequence of strings is by calling ``''." @@ -2646,7 +2650,7 @@ msgstr "" "meilleure précision, voir :func:`math.fsum`. Pour concaténer une série " "d'itérables, utilisez plutôt :func:`itertools.chain`." -#: ../Doc/library/functions.rst:1449 +#: ../Doc/library/functions.rst:1458 msgid "" "Return a proxy object that delegates method calls to a parent or sibling " "class of *type*. This is useful for accessing inherited methods that have " @@ -2659,7 +2663,7 @@ msgstr "" "même que celui utilisé par :func:`getattr` sauf que *type* lui même est " "sauté." -#: ../Doc/library/functions.rst:1454 +#: ../Doc/library/functions.rst:1463 msgid "" "The :attr:`~class.__mro__` attribute of the *type* lists the method " "resolution search order used by both :func:`getattr` and :func:`super`. The " @@ -2671,7 +2675,7 @@ msgstr "" "L'attribut est dynamique et peut changer lorsque la hiérarchie d'héritage " "est modifiée." -#: ../Doc/library/functions.rst:1459 +#: ../Doc/library/functions.rst:1468 msgid "" "If the second argument is omitted, the super object returned is unbound. If " "the second argument is an object, ``isinstance(obj, type)`` must be true. " @@ -2683,7 +2687,7 @@ msgstr "" "le second argument est un type, ``issubclass(type2, type)`` doit être vrai " "(c'est utile pour les méthodes de classe)." -#: ../Doc/library/functions.rst:1464 +#: ../Doc/library/functions.rst:1473 msgid "" "There are two typical use cases for *super*. In a class hierarchy with " "single inheritance, *super* can be used to refer to parent classes without " @@ -2696,7 +2700,7 @@ msgstr "" "maintenable. Cet usage se rapproche de l'usage de *super* dans d'autres " "langages de programmation." -#: ../Doc/library/functions.rst:1469 +#: ../Doc/library/functions.rst:1478 msgid "" "The second use case is to support cooperative multiple inheritance in a " "dynamic execution environment. This use case is unique to Python and is not " @@ -2719,12 +2723,12 @@ msgstr "" "changements dans la hiérarchie, et parce que l'ordre peut inclure des " "classes soeur inconnues avant l'exécution)." -#: ../Doc/library/functions.rst:1479 +#: ../Doc/library/functions.rst:1488 msgid "For both use cases, a typical superclass call looks like this::" msgstr "" "Dans tous les cas, un appel typique à une classe parente ressemble à : ::" -#: ../Doc/library/functions.rst:1486 +#: ../Doc/library/functions.rst:1495 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -2741,7 +2745,7 @@ msgstr "" "n'est pas défini pour les recherches implicites via des instructions ou des " "opérateurs tel que ``super()[name]``." -#: ../Doc/library/functions.rst:1493 +#: ../Doc/library/functions.rst:1502 msgid "" "Also note that, aside from the zero argument form, :func:`super` is not " "limited to use inside methods. The two argument form specifies the " @@ -2758,7 +2762,7 @@ msgstr "" "propos de la classe en cours de définition, ainsi qu'accéder à l'instance " "courante pour les méthodes ordinaires." -#: ../Doc/library/functions.rst:1500 +#: ../Doc/library/functions.rst:1509 msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." -#: ../Doc/library/functions.rst:1509 +#: ../Doc/library/functions.rst:1518 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -2776,7 +2780,7 @@ msgstr "" "Plutôt qu'être une fonction, :class:`tuple` est en fait un type de séquence " "immuable, tel que documenté dans :ref:`typesseq-tuple` et :ref:`typesseq`." -#: ../Doc/library/functions.rst:1518 +#: ../Doc/library/functions.rst:1527 msgid "" "With one argument, return the type of an *object*. The return value is a " "type object and generally the same object as returned by :attr:`object." @@ -2786,7 +2790,7 @@ msgstr "" "type et généralement la même que la valeur de l'attribut :attr:`object." "__class__ `." -#: ../Doc/library/functions.rst:1522 +#: ../Doc/library/functions.rst:1531 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." @@ -2794,7 +2798,7 @@ msgstr "" "La fonction native :func:`isinstance` est recommandée pour tester le type " "d'un objet car elle prend en compte l'héritage." -#: ../Doc/library/functions.rst:1526 +#: ../Doc/library/functions.rst:1535 msgid "" "With three arguments, return a new type object. This is essentially a " "dynamic form of the :keyword:`class` statement. The *name* string is the " @@ -2815,11 +2819,11 @@ msgstr "" "exemple, les deux instructions suivantes créent deux instances identiques " "de :class:`type`." -#: ../Doc/library/functions.rst:1540 +#: ../Doc/library/functions.rst:1549 msgid "See also :ref:`bltin-type-objects`." msgstr "Voir aussi :ref:`bltin-type-objects`." -#: ../Doc/library/functions.rst:1542 +#: ../Doc/library/functions.rst:1551 msgid "" "Subclasses of :class:`type` which don't override ``type.__new__`` may no " "longer use the one-argument form to get the type of an object." @@ -2828,7 +2832,7 @@ msgstr "" "ne devraient plus utiliser la forme à un argument pour récupérer le type " "d'un objet." -#: ../Doc/library/functions.rst:1548 +#: ../Doc/library/functions.rst:1557 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`~object.__dict__` attribute." @@ -2837,7 +2841,7 @@ msgstr "" "instance ou de n'importe quel objet avec un attribut :attr:`~object." "__dict__`." -#: ../Doc/library/functions.rst:1551 +#: ../Doc/library/functions.rst:1560 msgid "" "Objects such as modules and instances have an updateable :attr:`~object." "__dict__` attribute; however, other objects may have write restrictions on " @@ -2850,7 +2854,7 @@ msgstr "" "exemple, les classes utilisent un :class:`types.MappingProxyType` pour " "éviter les modifications directes du dictionnaire)." -#: ../Doc/library/functions.rst:1556 +#: ../Doc/library/functions.rst:1565 msgid "" "Without an argument, :func:`vars` acts like :func:`locals`. Note, the " "locals dictionary is only useful for reads since updates to the locals " @@ -2860,11 +2864,11 @@ msgstr "" "dictionnaire des variables locales n'est utile qu'en lecture, car ses " "écritures sont ignorées." -#: ../Doc/library/functions.rst:1563 +#: ../Doc/library/functions.rst:1572 msgid "Make an iterator that aggregates elements from each of the iterables." msgstr "Construit un itérateur agrégeant les éléments de tous les itérables." -#: ../Doc/library/functions.rst:1565 +#: ../Doc/library/functions.rst:1574 msgid "" "Returns an iterator of tuples, where the *i*-th tuple contains the *i*-th " "element from each of the argument sequences or iterables. The iterator " @@ -2878,7 +2882,7 @@ msgstr "" "elle donne un itérateur sur des *tuples* d'un élément. Sans arguments, elle " "donne un itérateur vide. Équivalent à : ::" -#: ../Doc/library/functions.rst:1584 +#: ../Doc/library/functions.rst:1593 msgid "" "The left-to-right evaluation order of the iterables is guaranteed. This " "makes possible an idiom for clustering a data series into n-length groups " @@ -2892,7 +2896,7 @@ msgstr "" "que le tuple obtenu contient le résultat de ``n`` appels à l'itérateur. Cela " "a pour effet de diviser la séquence en morceaux de taille *n*." -#: ../Doc/library/functions.rst:1590 +#: ../Doc/library/functions.rst:1599 msgid "" ":func:`zip` should only be used with unequal length inputs when you don't " "care about trailing, unmatched values from the longer iterables. If those " @@ -2903,7 +2907,7 @@ msgstr "" "peuvent être ignorées. Si c'est valeurs sont importantes, utilisez plutôt :" "func:`itertools.zip_longest`." -#: ../Doc/library/functions.rst:1594 +#: ../Doc/library/functions.rst:1603 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -2911,7 +2915,7 @@ msgstr "" ":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour de-" "*zip*-per une liste : ::" -#: ../Doc/library/functions.rst:1615 +#: ../Doc/library/functions.rst:1624 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -2919,7 +2923,7 @@ msgstr "" "C'est une fonction avancée qui n'est pas fréquemment nécessaire, " "contrairement à :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1618 +#: ../Doc/library/functions.rst:1627 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -2939,7 +2943,7 @@ msgstr "" "L'usage direct de :func:`__import__` est aussi déconseillé en faveur de :" "func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1627 +#: ../Doc/library/functions.rst:1636 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -2955,7 +2959,7 @@ msgstr "" "l'argument *locals* et n'utilise *globals* que pour déterminer le contexte " "du paquet de l'instruction :keyword:`import`." -#: ../Doc/library/functions.rst:1634 +#: ../Doc/library/functions.rst:1643 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -2968,7 +2972,7 @@ msgstr "" "le nombre de dossiers parents relatifvement au dossier du module appelant :" "func:`__import__` (voir la :pep:`328`)." -#: ../Doc/library/functions.rst:1640 +#: ../Doc/library/functions.rst:1649 msgid "" "When the *name* variable is of the form ``package.module``, normally, the " "top-level package (the name up till the first dot) is returned, *not* the " @@ -2980,7 +2984,7 @@ msgstr "" "le module nommé par *name*. Cependant, lorsqu'un argument *fromlist* est " "fourni, le module nommé par *name* est donné." -#: ../Doc/library/functions.rst:1645 +#: ../Doc/library/functions.rst:1654 msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" @@ -2988,11 +2992,11 @@ msgstr "" "Par exemple, l'instruction ``import spam`` donne un bytecode ressemblant ai " "code suivant : ::" -#: ../Doc/library/functions.rst:1650 +#: ../Doc/library/functions.rst:1659 msgid "The statement ``import spam.ham`` results in this call::" msgstr "L'instruction ``import ham.ham`` appelle : ::" -#: ../Doc/library/functions.rst:1654 +#: ../Doc/library/functions.rst:1663 msgid "" "Note how :func:`__import__` returns the toplevel module here because this is " "the object that is bound to a name by the :keyword:`import` statement." @@ -3000,7 +3004,7 @@ msgstr "" "Notez comment :func:`__import__` donne le module le plus haut ici parce que " "c'est l'objet lié à un nom par l'nstruction :keyword:`import`." -#: ../Doc/library/functions.rst:1657 +#: ../Doc/library/functions.rst:1666 msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" @@ -3008,7 +3012,7 @@ msgstr "" "En revanche, l'instruction ``from spam.ham import eggs, saucage as saus`` " "donne : ::" -#: ../Doc/library/functions.rst:1664 +#: ../Doc/library/functions.rst:1673 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " @@ -3017,7 +3021,7 @@ msgstr "" "Ici le module ``spam.ham`` est donné par :func:`__import__`. De cet objet, " "les noms à importer sont récupérés et assignés à leurs noms respectifs." -#: ../Doc/library/functions.rst:1668 +#: ../Doc/library/functions.rst:1677 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -3025,7 +3029,7 @@ msgstr "" "Si vous voulez simplement importer un module (potentiellement dans un " "paquet) par son nom, utilisez :func:`importlib.import_module`." -#: ../Doc/library/functions.rst:1671 +#: ../Doc/library/functions.rst:1680 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -3033,11 +3037,11 @@ msgstr "" "Des valeurs négatives pour *level* ne sont plus gérées (ce qui change la " "valeur par défaut pour 0)." -#: ../Doc/library/functions.rst:1677 +#: ../Doc/library/functions.rst:1686 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/functions.rst:1678 +#: ../Doc/library/functions.rst:1687 msgid "" "Note that the parser only accepts the Unix-style end of line convention. If " "you are reading the code from a file, make sure to use newline conversion " @@ -3047,6 +3051,12 @@ msgstr "" "lisez le code depuis un fichier, assurez-vous d'utiliser la conversion de " "retours à la ligne pour convertir les fin de lignes Windows et Mac." +#~ msgid "" +#~ "Deprecated since version 3.4, will be removed in version 4.0: The 'U' " +#~ "mode." +#~ msgstr "" +#~ "Déprécié depuis la version 3.4, sera supprimé dans la 4.0 : Le mode 'U'." + #~ msgid "class C:" #~ msgstr "class C:" diff --git a/library/importlib.po b/library/importlib.po index 56cfd26f5..967cc645c 100644 --- a/library/importlib.po +++ b/library/importlib.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2017-08-10 01:00+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -1257,7 +1257,7 @@ msgid "" "Name of the place from which the module is loaded, e.g. \"builtin\" for " "built-in modules and the filename for modules loaded from source. Normally " "\"origin\" should be set, but it may be ``None`` (the default) which " -"indicates it is unspecified (e.g. for namespace packages)." +"indicates it is unspecified." msgstr "" #: ../Doc/library/importlib.rst:1084 diff --git a/library/ipaddress.po b/library/ipaddress.po index b32be376e..669cb3aa5 100644 --- a/library/ipaddress.po +++ b/library/ipaddress.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -108,20 +108,22 @@ msgid "" "The :class:`IPv4Address` and :class:`IPv6Address` objects share a lot of " "common attributes. Some attributes that are only meaningful for IPv6 " "addresses are also implemented by :class:`IPv4Address` objects, in order to " -"make it easier to write code that handles both IP versions correctly." +"make it easier to write code that handles both IP versions correctly. " +"Address objects are :term:`hashable`, so they can be used as keys in " +"dictionaries." msgstr "" -#: ../Doc/library/ipaddress.rst:96 +#: ../Doc/library/ipaddress.rst:97 msgid "" "Construct an IPv4 address. An :exc:`AddressValueError` is raised if " "*address* is not a valid IPv4 address." msgstr "" -#: ../Doc/library/ipaddress.rst:99 +#: ../Doc/library/ipaddress.rst:100 msgid "The following constitutes a valid IPv4 address:" msgstr "" -#: ../Doc/library/ipaddress.rst:101 +#: ../Doc/library/ipaddress.rst:102 msgid "" "A string in decimal-dot notation, consisting of four decimal integers in the " "inclusive range 0--255, separated by dots (e.g. ``192.168.0.1``). Each " @@ -130,39 +132,39 @@ msgid "" "decimal and octal interpretations of such strings)." msgstr "" -#: ../Doc/library/ipaddress.rst:106 +#: ../Doc/library/ipaddress.rst:107 msgid "An integer that fits into 32 bits." msgstr "" -#: ../Doc/library/ipaddress.rst:107 +#: ../Doc/library/ipaddress.rst:108 msgid "" "An integer packed into a :class:`bytes` object of length 4 (most significant " "octet first)." msgstr "" -#: ../Doc/library/ipaddress.rst:119 +#: ../Doc/library/ipaddress.rst:120 msgid "The appropriate version number: ``4`` for IPv4, ``6`` for IPv6." msgstr "" -#: ../Doc/library/ipaddress.rst:123 +#: ../Doc/library/ipaddress.rst:124 msgid "" "The total number of bits in the address representation for this version: " "``32`` for IPv4, ``128`` for IPv6." msgstr "" -#: ../Doc/library/ipaddress.rst:126 +#: ../Doc/library/ipaddress.rst:127 msgid "" "The prefix defines the number of leading bits in an address that are " "compared to determine whether or not an address is part of a network." msgstr "" -#: ../Doc/library/ipaddress.rst:133 +#: ../Doc/library/ipaddress.rst:134 msgid "" "The string representation in dotted decimal notation. Leading zeroes are " "never included in the representation." msgstr "" -#: ../Doc/library/ipaddress.rst:136 +#: ../Doc/library/ipaddress.rst:137 msgid "" "As IPv4 does not define a shorthand notation for addresses with octets set " "to zero, these two attributes are always the same as ``str(addr)`` for IPv4 " @@ -170,73 +172,73 @@ msgid "" "that can handle both IPv4 and IPv6 addresses." msgstr "" -#: ../Doc/library/ipaddress.rst:143 +#: ../Doc/library/ipaddress.rst:144 msgid "" "The binary representation of this address - a :class:`bytes` object of the " "appropriate length (most significant octet first). This is 4 bytes for IPv4 " "and 16 bytes for IPv6." msgstr "" -#: ../Doc/library/ipaddress.rst:149 +#: ../Doc/library/ipaddress.rst:150 msgid "The name of the reverse DNS PTR record for the IP address, e.g.::" msgstr "" -#: ../Doc/library/ipaddress.rst:156 +#: ../Doc/library/ipaddress.rst:157 msgid "" "This is the name that could be used for performing a PTR lookup, not the " "resolved hostname itself." msgstr "" -#: ../Doc/library/ipaddress.rst:163 +#: ../Doc/library/ipaddress.rst:164 msgid "" "``True`` if the address is reserved for multicast use. See :RFC:`3171` (for " "IPv4) or :RFC:`2373` (for IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:168 +#: ../Doc/library/ipaddress.rst:169 msgid "" "``True`` if the address is allocated for private networks. See iana-ipv4-" "special-registry_ (for IPv4) or iana-ipv6-special-registry_ (for IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:174 +#: ../Doc/library/ipaddress.rst:175 msgid "" "``True`` if the address is allocated for public networks. See iana-ipv4-" "special-registry_ (for IPv4) or iana-ipv6-special-registry_ (for IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:182 +#: ../Doc/library/ipaddress.rst:183 msgid "" "``True`` if the address is unspecified. See :RFC:`5735` (for IPv4) or :RFC:" "`2373` (for IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:187 +#: ../Doc/library/ipaddress.rst:188 msgid "``True`` if the address is otherwise IETF reserved." msgstr "" -#: ../Doc/library/ipaddress.rst:191 +#: ../Doc/library/ipaddress.rst:192 msgid "" "``True`` if this is a loopback address. See :RFC:`3330` (for IPv4) or :RFC:" "`2373` (for IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:196 +#: ../Doc/library/ipaddress.rst:197 msgid "" "``True`` if the address is reserved for link-local usage. See :RFC:`3927`." msgstr "" -#: ../Doc/library/ipaddress.rst:205 +#: ../Doc/library/ipaddress.rst:206 msgid "" "Construct an IPv6 address. An :exc:`AddressValueError` is raised if " "*address* is not a valid IPv6 address." msgstr "" -#: ../Doc/library/ipaddress.rst:208 +#: ../Doc/library/ipaddress.rst:209 msgid "The following constitutes a valid IPv6 address:" msgstr "" -#: ../Doc/library/ipaddress.rst:210 +#: ../Doc/library/ipaddress.rst:211 msgid "" "A string consisting of eight groups of four hexadecimal digits, each group " "representing 16 bits. The groups are separated by colons. This describes an " @@ -246,43 +248,43 @@ msgid "" "to ``\"::abc:7:def\"``." msgstr "" -#: ../Doc/library/ipaddress.rst:217 +#: ../Doc/library/ipaddress.rst:218 msgid "An integer that fits into 128 bits." msgstr "" -#: ../Doc/library/ipaddress.rst:218 +#: ../Doc/library/ipaddress.rst:219 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian." msgstr "" -#: ../Doc/library/ipaddress.rst:225 +#: ../Doc/library/ipaddress.rst:226 msgid "" "The short form of the address representation, with leading zeroes in groups " "omitted and the longest sequence of groups consisting entirely of zeroes " "collapsed to a single empty group." msgstr "" -#: ../Doc/library/ipaddress.rst:229 +#: ../Doc/library/ipaddress.rst:230 msgid "This is also the value returned by ``str(addr)`` for IPv6 addresses." msgstr "" -#: ../Doc/library/ipaddress.rst:233 +#: ../Doc/library/ipaddress.rst:234 msgid "" "The long form of the address representation, with all leading zeroes and " "groups consisting entirely of zeroes included." msgstr "" -#: ../Doc/library/ipaddress.rst:237 +#: ../Doc/library/ipaddress.rst:238 msgid "" -"For the following attributes, see the corresponding documention of the :" +"For the following attributes, see the corresponding documentation of the :" "class:`IPv4Address` class:" msgstr "" -#: ../Doc/library/ipaddress.rst:252 +#: ../Doc/library/ipaddress.rst:253 msgid "is_global" msgstr "" -#: ../Doc/library/ipaddress.rst:257 +#: ../Doc/library/ipaddress.rst:258 msgid "" "``True`` if the address is reserved for site-local usage. Note that the " "site-local address space has been deprecated by :RFC:`3879`. Use :attr:" @@ -290,14 +292,14 @@ msgid "" "local addresses as defined by :RFC:`4193`." msgstr "" -#: ../Doc/library/ipaddress.rst:264 +#: ../Doc/library/ipaddress.rst:265 msgid "" "For addresses that appear to be IPv4 mapped addresses (starting with ``::" "FFFF/96``), this property will report the embedded IPv4 address. For any " "other address, this property will be ``None``." msgstr "" -#: ../Doc/library/ipaddress.rst:270 +#: ../Doc/library/ipaddress.rst:271 msgid "" "For addresses that appear to be 6to4 addresses (starting with " "``2002::/16``) as defined by :RFC:`3056`, this property will report the " @@ -305,7 +307,7 @@ msgid "" "``None``." msgstr "" -#: ../Doc/library/ipaddress.rst:277 +#: ../Doc/library/ipaddress.rst:278 msgid "" "For addresses that appear to be Teredo addresses (starting with " "``2001::/32``) as defined by :RFC:`4380`, this property will report the " @@ -313,52 +315,53 @@ msgid "" "property will be ``None``." msgstr "" -#: ../Doc/library/ipaddress.rst:284 +#: ../Doc/library/ipaddress.rst:285 msgid "Conversion to Strings and Integers" msgstr "" -#: ../Doc/library/ipaddress.rst:286 +#: ../Doc/library/ipaddress.rst:287 msgid "" "To interoperate with networking interfaces such as the socket module, " "addresses must be converted to strings or integers. This is handled using " "the :func:`str` and :func:`int` builtin functions::" msgstr "" -#: ../Doc/library/ipaddress.rst:301 ../Doc/library/ipaddress.rst:631 +#: ../Doc/library/ipaddress.rst:302 ../Doc/library/ipaddress.rst:649 +#: ../Doc/library/ipaddress.rst:785 msgid "Operators" msgstr "Opérateurs" -#: ../Doc/library/ipaddress.rst:303 +#: ../Doc/library/ipaddress.rst:304 msgid "" "Address objects support some operators. Unless stated otherwise, operators " "can only be applied between compatible objects (i.e. IPv4 with IPv4, IPv6 " "with IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:309 +#: ../Doc/library/ipaddress.rst:310 msgid "Comparison operators" msgstr "" -#: ../Doc/library/ipaddress.rst:311 +#: ../Doc/library/ipaddress.rst:312 msgid "" "Address objects can be compared with the usual set of comparison operators. " "Some examples::" msgstr "" -#: ../Doc/library/ipaddress.rst:323 +#: ../Doc/library/ipaddress.rst:324 msgid "Arithmetic operators" msgstr "" -#: ../Doc/library/ipaddress.rst:325 +#: ../Doc/library/ipaddress.rst:326 msgid "" "Integers can be added to or subtracted from address objects. Some examples::" msgstr "" -#: ../Doc/library/ipaddress.rst:338 +#: ../Doc/library/ipaddress.rst:339 msgid "IP Network definitions" msgstr "" -#: ../Doc/library/ipaddress.rst:340 +#: ../Doc/library/ipaddress.rst:341 msgid "" "The :class:`IPv4Network` and :class:`IPv6Network` objects provide a " "mechanism for defining and inspecting IP network definitions. A network " @@ -369,11 +372,11 @@ msgid "" "addresses in the inclusive range ``192.168.1.0`` to ``192.168.1.255``." msgstr "" -#: ../Doc/library/ipaddress.rst:350 +#: ../Doc/library/ipaddress.rst:351 msgid "Prefix, net mask and host mask" msgstr "" -#: ../Doc/library/ipaddress.rst:352 +#: ../Doc/library/ipaddress.rst:353 msgid "" "There are several equivalent ways to specify IP network masks. A *prefix* " "``/`` is a notation that denotes how many high-order bits are set in " @@ -385,55 +388,57 @@ msgid "" "mask equivalent to ``/24`` in IPv4 is ``0.0.0.255``." msgstr "" -#: ../Doc/library/ipaddress.rst:363 +#: ../Doc/library/ipaddress.rst:364 msgid "Network objects" msgstr "" -#: ../Doc/library/ipaddress.rst:365 +#: ../Doc/library/ipaddress.rst:366 msgid "" "All attributes implemented by address objects are implemented by network " "objects as well. In addition, network objects implement additional " "attributes. All of these are common between :class:`IPv4Network` and :class:" "`IPv6Network`, so to avoid duplication they are only documented for :class:" -"`IPv4Network`." +"`IPv4Network`. Network objects are :term:`hashable`, so they can be used as " +"keys in dictionaries." msgstr "" -#: ../Doc/library/ipaddress.rst:372 +#: ../Doc/library/ipaddress.rst:375 msgid "" "Construct an IPv4 network definition. *address* can be one of the following:" msgstr "" -#: ../Doc/library/ipaddress.rst:374 +#: ../Doc/library/ipaddress.rst:377 msgid "" "A string consisting of an IP address and an optional mask, separated by a " "slash (``/``). The IP address is the network address, and the mask can be " "either a single number, which means it's a *prefix*, or a string " "representation of an IPv4 address. If it's the latter, the mask is " "interpreted as a *net mask* if it starts with a non-zero field, or as a " -"*host mask* if it starts with a zero field. If no mask is provided, it's " -"considered to be ``/32``." +"*host mask* if it starts with a zero field, with the single exception of an " +"all-zero mask which is treated as a *net mask*. If no mask is provided, " +"it's considered to be ``/32``." msgstr "" -#: ../Doc/library/ipaddress.rst:382 +#: ../Doc/library/ipaddress.rst:386 msgid "" "For example, the following *address* specifications are equivalent: " "``192.168.1.0/24``, ``192.168.1.0/255.255.255.0`` and " "``192.168.1.0/0.0.0.255``." msgstr "" -#: ../Doc/library/ipaddress.rst:386 +#: ../Doc/library/ipaddress.rst:390 msgid "" "An integer that fits into 32 bits. This is equivalent to a single-address " "network, with the network address being *address* and the mask being ``/32``." msgstr "" -#: ../Doc/library/ipaddress.rst:390 +#: ../Doc/library/ipaddress.rst:394 msgid "" "An integer packed into a :class:`bytes` object of length 4, big-endian. The " "interpretation is similar to an integer *address*." msgstr "" -#: ../Doc/library/ipaddress.rst:393 +#: ../Doc/library/ipaddress.rst:397 msgid "" "A two-tuple of an address description and a netmask, where the address " "description is either a string, a 32-bits integer, a 4-bytes packed integer, " @@ -442,108 +447,114 @@ msgid "" "prefix mask (e.g. ``255.255.255.0``)." msgstr "" -#: ../Doc/library/ipaddress.rst:399 +#: ../Doc/library/ipaddress.rst:403 msgid "" "An :exc:`AddressValueError` is raised if *address* is not a valid IPv4 " "address. A :exc:`NetmaskValueError` is raised if the mask is not valid for " "an IPv4 address." msgstr "" -#: ../Doc/library/ipaddress.rst:403 ../Doc/library/ipaddress.rst:588 +#: ../Doc/library/ipaddress.rst:407 ../Doc/library/ipaddress.rst:599 msgid "" "If *strict* is ``True`` and host bits are set in the supplied address, then :" "exc:`ValueError` is raised. Otherwise, the host bits are masked out to " "determine the appropriate network address." msgstr "" -#: ../Doc/library/ipaddress.rst:407 +#: ../Doc/library/ipaddress.rst:411 msgid "" "Unless stated otherwise, all network methods accepting other network/address " "objects will raise :exc:`TypeError` if the argument's IP version is " -"incompatible to ``self``" +"incompatible to ``self``." msgstr "" -#: ../Doc/library/ipaddress.rst:413 ../Doc/library/ipaddress.rst:594 +#: ../Doc/library/ipaddress.rst:417 ../Doc/library/ipaddress.rst:605 msgid "Added the two-tuple form for the *address* constructor parameter." msgstr "" -#: ../Doc/library/ipaddress.rst:418 +#: ../Doc/library/ipaddress.rst:422 msgid "" -"Refer to the corresponding attribute documentation in :class:`IPv4Address`" +"Refer to the corresponding attribute documentation in :class:`IPv4Address`." msgstr "" -#: ../Doc/library/ipaddress.rst:428 +#: ../Doc/library/ipaddress.rst:432 msgid "" "These attributes are true for the network as a whole if they are true for " -"both the network address and the broadcast address" +"both the network address and the broadcast address." msgstr "" -#: ../Doc/library/ipaddress.rst:433 +#: ../Doc/library/ipaddress.rst:437 msgid "" "The network address for the network. The network address and the prefix " "length together uniquely define a network." msgstr "" -#: ../Doc/library/ipaddress.rst:438 +#: ../Doc/library/ipaddress.rst:442 msgid "" "The broadcast address for the network. Packets sent to the broadcast address " "should be received by every host on the network." msgstr "" -#: ../Doc/library/ipaddress.rst:443 -msgid "The host mask, as a string." +#: ../Doc/library/ipaddress.rst:447 +msgid "The host mask, as an :class:`IPv4Address` object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:451 +msgid "The net mask, as an :class:`IPv4Address` object." msgstr "" -#: ../Doc/library/ipaddress.rst:449 +#: ../Doc/library/ipaddress.rst:457 msgid "" "A string representation of the network, with the mask in prefix notation." msgstr "" -#: ../Doc/library/ipaddress.rst:452 +#: ../Doc/library/ipaddress.rst:460 msgid "" "``with_prefixlen`` and ``compressed`` are always the same as " "``str(network)``. ``exploded`` uses the exploded form the network address." msgstr "" -#: ../Doc/library/ipaddress.rst:458 +#: ../Doc/library/ipaddress.rst:466 msgid "" "A string representation of the network, with the mask in net mask notation." msgstr "" -#: ../Doc/library/ipaddress.rst:463 +#: ../Doc/library/ipaddress.rst:471 msgid "" "A string representation of the network, with the mask in host mask notation." msgstr "" -#: ../Doc/library/ipaddress.rst:468 +#: ../Doc/library/ipaddress.rst:476 msgid "The total number of addresses in the network." msgstr "" -#: ../Doc/library/ipaddress.rst:472 +#: ../Doc/library/ipaddress.rst:480 msgid "Length of the network prefix, in bits." msgstr "" -#: ../Doc/library/ipaddress.rst:476 +#: ../Doc/library/ipaddress.rst:484 msgid "" "Returns an iterator over the usable hosts in the network. The usable hosts " "are all the IP addresses that belong to the network, except the network " -"address itself and the network broadcast address." +"address itself and the network broadcast address. For networks with a mask " +"length of 31, the network address and network broadcast address are also " +"included in the result." msgstr "" -#: ../Doc/library/ipaddress.rst:487 +#: ../Doc/library/ipaddress.rst:499 msgid "" "``True`` if this network is partly or wholly contained in *other* or *other* " "is wholly contained in this network." msgstr "" -#: ../Doc/library/ipaddress.rst:492 +#: ../Doc/library/ipaddress.rst:504 msgid "" "Computes the network definitions resulting from removing the given *network* " "from this one. Returns an iterator of network objects. Raises :exc:" "`ValueError` if *network* is not completely contained in this network." msgstr "" -#: ../Doc/library/ipaddress.rst:505 +#: ../Doc/library/ipaddress.rst:517 msgid "" "The subnets that join to make the current network definition, depending on " "the argument values. *prefixlen_diff* is the amount our prefix length " @@ -553,7 +564,7 @@ msgid "" "network objects." msgstr "" -#: ../Doc/library/ipaddress.rst:530 +#: ../Doc/library/ipaddress.rst:542 msgid "" "The supernet containing this network definition, depending on the argument " "values. *prefixlen_diff* is the amount our prefix length should be " @@ -562,48 +573,46 @@ msgid "" "*new_prefix* must be set. Returns a single network object." msgstr "" -#: ../Doc/library/ipaddress.rst:546 +#: ../Doc/library/ipaddress.rst:558 msgid "" "Compare this network to *other*. In this comparison only the network " "addresses are considered; host bits aren't. Returns either ``-1``, ``0`` or " "``1``." msgstr "" -#: ../Doc/library/ipaddress.rst:560 +#: ../Doc/library/ipaddress.rst:572 msgid "" "Construct an IPv6 network definition. *address* can be one of the following:" msgstr "" -#: ../Doc/library/ipaddress.rst:562 +#: ../Doc/library/ipaddress.rst:574 msgid "" -"A string consisting of an IP address and an optional mask, separated by a " -"slash (``/``). The IP address is the network address, and the mask can be " -"either a single number, which means it's a *prefix*, or a string " -"representation of an IPv6 address. If it's the latter, the mask is " -"interpreted as a *net mask*. If no mask is provided, it's considered to be " -"``/128``." +"A string consisting of an IP address and an optional prefix length, " +"separated by a slash (``/``). The IP address is the network address, and " +"the prefix length must be a single number, the *prefix*. If no prefix " +"length is provided, it's considered to be ``/128``." msgstr "" -#: ../Doc/library/ipaddress.rst:569 +#: ../Doc/library/ipaddress.rst:579 msgid "" -"For example, the following *address* specifications are equivalent: ``2001:" -"db00::0/24`` and ``2001:db00::0/ffff:ff00::``." +"Note that currently expanded netmasks are not supported. That means ``2001:" +"db00::0/24`` is a valid argument while ``2001:db00::0/ffff:ff00::`` not." msgstr "" -#: ../Doc/library/ipaddress.rst:572 +#: ../Doc/library/ipaddress.rst:583 msgid "" "An integer that fits into 128 bits. This is equivalent to a single-address " "network, with the network address being *address* and the mask being " "``/128``." msgstr "" -#: ../Doc/library/ipaddress.rst:576 +#: ../Doc/library/ipaddress.rst:587 msgid "" "An integer packed into a :class:`bytes` object of length 16, big-endian. The " "interpretation is similar to an integer *address*." msgstr "" -#: ../Doc/library/ipaddress.rst:579 +#: ../Doc/library/ipaddress.rst:590 msgid "" "A two-tuple of an address description and a netmask, where the address " "description is either a string, a 128-bits integer, a 16-bytes packed " @@ -611,129 +620,171 @@ msgid "" "representing the prefix length." msgstr "" -#: ../Doc/library/ipaddress.rst:584 +#: ../Doc/library/ipaddress.rst:595 msgid "" "An :exc:`AddressValueError` is raised if *address* is not a valid IPv6 " "address. A :exc:`NetmaskValueError` is raised if the mask is not valid for " "an IPv6 address." msgstr "" -#: ../Doc/library/ipaddress.rst:621 +#: ../Doc/library/ipaddress.rst:628 +msgid "" +"Returns an iterator over the usable hosts in the network. The usable hosts " +"are all the IP addresses that belong to the network, except the Subnet-" +"Router anycast address. For networks with a mask length of 127, the Subnet-" +"Router anycast address is also included in the result." +msgstr "" + +#: ../Doc/library/ipaddress.rst:639 msgid "" -"Refer to the corresponding attribute documentation in :class:`IPv4Network`" +"Refer to the corresponding attribute documentation in :class:`IPv4Network`." msgstr "" -#: ../Doc/library/ipaddress.rst:626 +#: ../Doc/library/ipaddress.rst:644 msgid "" "These attribute is true for the network as a whole if it is true for both " -"the network address and the broadcast address" +"the network address and the broadcast address." msgstr "" -#: ../Doc/library/ipaddress.rst:633 +#: ../Doc/library/ipaddress.rst:651 msgid "" "Network objects support some operators. Unless stated otherwise, operators " "can only be applied between compatible objects (i.e. IPv4 with IPv4, IPv6 " "with IPv6)." msgstr "" -#: ../Doc/library/ipaddress.rst:639 +#: ../Doc/library/ipaddress.rst:657 ../Doc/library/ipaddress.rst:793 msgid "Logical operators" msgstr "" -#: ../Doc/library/ipaddress.rst:641 +#: ../Doc/library/ipaddress.rst:659 msgid "" -"Network objects can be compared with the usual set of logical operators, " -"similarly to address objects." +"Network objects can be compared with the usual set of logical operators. " +"Network objects are ordered first by network address, then by net mask." msgstr "" -#: ../Doc/library/ipaddress.rst:646 +#: ../Doc/library/ipaddress.rst:664 msgid "Iteration" msgstr "" -#: ../Doc/library/ipaddress.rst:648 +#: ../Doc/library/ipaddress.rst:666 msgid "" "Network objects can be iterated to list all the addresses belonging to the " "network. For iteration, *all* hosts are returned, including unusable hosts " "(for usable hosts, use the :meth:`~IPv4Network.hosts` method). An example::" msgstr "" -#: ../Doc/library/ipaddress.rst:675 +#: ../Doc/library/ipaddress.rst:693 msgid "Networks as containers of addresses" msgstr "" -#: ../Doc/library/ipaddress.rst:677 +#: ../Doc/library/ipaddress.rst:695 msgid "Network objects can act as containers of addresses. Some examples::" msgstr "" -#: ../Doc/library/ipaddress.rst:690 +#: ../Doc/library/ipaddress.rst:708 msgid "Interface objects" msgstr "" -#: ../Doc/library/ipaddress.rst:694 +#: ../Doc/library/ipaddress.rst:710 +msgid "" +"Interface objects are :term:`hashable`, so they can be used as keys in " +"dictionaries." +msgstr "" + +#: ../Doc/library/ipaddress.rst:715 msgid "" "Construct an IPv4 interface. The meaning of *address* is as in the " "constructor of :class:`IPv4Network`, except that arbitrary host addresses " "are always accepted." msgstr "" -#: ../Doc/library/ipaddress.rst:698 +#: ../Doc/library/ipaddress.rst:719 msgid "" ":class:`IPv4Interface` is a subclass of :class:`IPv4Address`, so it inherits " "all the attributes from that class. In addition, the following attributes " "are available:" msgstr "" -#: ../Doc/library/ipaddress.rst:704 +#: ../Doc/library/ipaddress.rst:725 msgid "The address (:class:`IPv4Address`) without network information." msgstr "" -#: ../Doc/library/ipaddress.rst:712 +#: ../Doc/library/ipaddress.rst:733 msgid "The network (:class:`IPv4Network`) this interface belongs to." msgstr "" -#: ../Doc/library/ipaddress.rst:720 +#: ../Doc/library/ipaddress.rst:741 msgid "" "A string representation of the interface with the mask in prefix notation." msgstr "" -#: ../Doc/library/ipaddress.rst:728 +#: ../Doc/library/ipaddress.rst:749 msgid "" "A string representation of the interface with the network as a net mask." msgstr "" -#: ../Doc/library/ipaddress.rst:736 +#: ../Doc/library/ipaddress.rst:757 msgid "" "A string representation of the interface with the network as a host mask." msgstr "" -#: ../Doc/library/ipaddress.rst:745 +#: ../Doc/library/ipaddress.rst:766 msgid "" "Construct an IPv6 interface. The meaning of *address* is as in the " "constructor of :class:`IPv6Network`, except that arbitrary host addresses " "are always accepted." msgstr "" -#: ../Doc/library/ipaddress.rst:749 +#: ../Doc/library/ipaddress.rst:770 msgid "" ":class:`IPv6Interface` is a subclass of :class:`IPv6Address`, so it inherits " "all the attributes from that class. In addition, the following attributes " "are available:" msgstr "" -#: ../Doc/library/ipaddress.rst:759 +#: ../Doc/library/ipaddress.rst:780 msgid "" "Refer to the corresponding attribute documentation in :class:`IPv4Interface`." msgstr "" -#: ../Doc/library/ipaddress.rst:764 +#: ../Doc/library/ipaddress.rst:787 +msgid "" +"Interface objects support some operators. Unless stated otherwise, " +"operators can only be applied between compatible objects (i.e. IPv4 with " +"IPv4, IPv6 with IPv6)." +msgstr "" + +#: ../Doc/library/ipaddress.rst:795 +msgid "" +"Interface objects can be compared with the usual set of logical operators." +msgstr "" + +#: ../Doc/library/ipaddress.rst:797 +msgid "" +"For equality comparison (``==`` and ``!=``), both the IP address and network " +"must be the same for the objects to be equal. An interface will not compare " +"equal to any address or network object." +msgstr "" + +#: ../Doc/library/ipaddress.rst:801 +msgid "" +"For ordering (``<``, ``>``, etc) the rules are different. Interface and " +"address objects with the same IP version can be compared, and the address " +"objects will always sort before the interface objects. Two interface " +"objects are first compared by their networks and, if those are the same, " +"then by their IP addresses." +msgstr "" + +#: ../Doc/library/ipaddress.rst:809 msgid "Other Module Level Functions" msgstr "" -#: ../Doc/library/ipaddress.rst:766 +#: ../Doc/library/ipaddress.rst:811 msgid "The module also provides the following module level functions:" msgstr "" -#: ../Doc/library/ipaddress.rst:770 +#: ../Doc/library/ipaddress.rst:815 msgid "" "Represent an address as 4 packed bytes in network (big-endian) order. " "*address* is an integer representation of an IPv4 IP address. A :exc:" @@ -741,7 +792,7 @@ msgid "" "IP address." msgstr "" -#: ../Doc/library/ipaddress.rst:783 +#: ../Doc/library/ipaddress.rst:828 msgid "" "Represent an address as 16 packed bytes in network (big-endian) order. " "*address* is an integer representation of an IPv6 IP address. A :exc:" @@ -749,7 +800,7 @@ msgid "" "IP address." msgstr "" -#: ../Doc/library/ipaddress.rst:791 +#: ../Doc/library/ipaddress.rst:836 msgid "" "Return an iterator of the summarized network range given the first and last " "IP addresses. *first* is the first :class:`IPv4Address` or :class:" @@ -760,7 +811,7 @@ msgid "" "address version is not 4 or 6." msgstr "" -#: ../Doc/library/ipaddress.rst:807 +#: ../Doc/library/ipaddress.rst:852 msgid "" "Return an iterator of the collapsed :class:`IPv4Network` or :class:" "`IPv6Network` objects. *addresses* is an iterator of :class:`IPv4Network` " @@ -768,38 +819,38 @@ msgid "" "*addresses* contains mixed version objects." msgstr "" -#: ../Doc/library/ipaddress.rst:820 +#: ../Doc/library/ipaddress.rst:865 msgid "" "Return a key suitable for sorting between networks and addresses. Address " "and Network objects are not sortable by default; they're fundamentally " "different, so the expression::" msgstr "" -#: ../Doc/library/ipaddress.rst:826 +#: ../Doc/library/ipaddress.rst:871 msgid "" "doesn't make sense. There are some times however, where you may wish to " "have :mod:`ipaddress` sort these anyway. If you need to do this, you can " -"use this function as the ``key`` argument to :func:`sorted()`." +"use this function as the *key* argument to :func:`sorted()`." msgstr "" -#: ../Doc/library/ipaddress.rst:830 +#: ../Doc/library/ipaddress.rst:875 msgid "*obj* is either a network or address object." msgstr "" -#: ../Doc/library/ipaddress.rst:834 +#: ../Doc/library/ipaddress.rst:879 msgid "Custom Exceptions" msgstr "" -#: ../Doc/library/ipaddress.rst:836 +#: ../Doc/library/ipaddress.rst:881 msgid "" "To support more specific error reporting from class constructors, the module " "defines the following exceptions:" msgstr "" -#: ../Doc/library/ipaddress.rst:841 +#: ../Doc/library/ipaddress.rst:886 msgid "Any value error related to the address." msgstr "" -#: ../Doc/library/ipaddress.rst:846 -msgid "Any value error related to the netmask." +#: ../Doc/library/ipaddress.rst:891 +msgid "Any value error related to the net mask." msgstr "" diff --git a/library/math.po b/library/math.po index 344c342b8..6a0559aac 100644 --- a/library/math.po +++ b/library/math.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2017-09-24 20:20+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -291,9 +291,11 @@ msgstr "" "le signe de *x* et sont flottants." #: ../Doc/library/math.rst:180 +#, fuzzy msgid "" "Return the :class:`~numbers.Real` value *x* truncated to an :class:`~numbers." -"Integral` (usually an integer). Delegates to ``x.__trunc__()``." +"Integral` (usually an integer). Delegates to :meth:`x.__trunc__() `." msgstr "" "Renvoie la valeur :class:`~numbers.Real` *x* tronquée en un :class:`~numbers." "Integral` (habituellement un entier). Délègue à ``x.__trunc()__``." diff --git a/library/platform.po b/library/platform.po index 15bb06f4b..2bcbb6d4c 100644 --- a/library/platform.po +++ b/library/platform.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -304,10 +304,6 @@ msgstr "" msgid "This is another name for :func:`linux_distribution`." msgstr "" -#: ../Doc/library/platform.rst:251 ../Doc/library/platform.rst:269 -msgid "Deprecated since version 3.5, will be removed in version 3.7." -msgstr "" - #: ../Doc/library/platform.rst:255 msgid "Tries to determine the name of the Linux OS distribution name." msgstr "" diff --git a/library/re.po b/library/re.po index 1bfc66a7b..526da2b9f 100644 --- a/library/re.po +++ b/library/re.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-04 15:51+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-15 00:47+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -1644,17 +1644,6 @@ msgstr "" "Les séquences d'échappement inconnues dans *pattern* formées par ``'\\'`` et " "une lettre ASCII sont maintenant des erreurs." -#: ../Doc/library/re.rst:805 -msgid "" -"Deprecated since version 3.5, will be removed in version 3.7: Unknown " -"escapes in repl consisting of '\\' and an ASCII letter now raise a " -"deprecation warning and will be forbidden in Python 3.7." -msgstr "" -"Déprécié depuis la version 3.5, sera supprimé dans la 3.7 : Les séquences " -"d'échappement dans *repl* formées d'un '\\' et d'une lettre ASCII lèvent " -"maintenant un avertissement de dépréciation et seront interdites en Python " -"3.7." - #: ../Doc/library/re.rst:805 msgid "" "Unknown escapes in *repl* consisting of ``'\\'`` and an ASCII letter now " @@ -2488,6 +2477,16 @@ msgstr "" msgid "The tokenizer produces the following output::" msgstr "L'analyseur produit la sortie suivante : ::" +#~ msgid "" +#~ "Deprecated since version 3.5, will be removed in version 3.7: Unknown " +#~ "escapes in repl consisting of '\\' and an ASCII letter now raise a " +#~ "deprecation warning and will be forbidden in Python 3.7." +#~ msgstr "" +#~ "Déprécié depuis la version 3.5, sera supprimé dans la 3.7 : Les séquences " +#~ "d'échappement dans *repl* formées d'un '\\' et d'une lettre ASCII lèvent " +#~ "maintenant un avertissement de dépréciation et seront interdites en " +#~ "Python 3.7." + #~ msgid "``'.'``" #~ msgstr "``'.'``" diff --git a/library/socket.po b/library/socket.po index 6903e8d4b..34ad15f05 100644 --- a/library/socket.po +++ b/library/socket.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-13 22:28+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -99,8 +99,8 @@ msgid "" "Previously, :const:`AF_UNIX` socket paths were assumed to use UTF-8 encoding." msgstr "" -#: ../Doc/library/socket.rst:63 ../Doc/library/socket.rst:715 -#: ../Doc/library/socket.rst:757 ../Doc/library/socket.rst:1399 +#: ../Doc/library/socket.rst:63 ../Doc/library/socket.rst:719 +#: ../Doc/library/socket.rst:761 ../Doc/library/socket.rst:1403 msgid "Writable :term:`bytes-like object` is now accepted." msgstr "N'importe quel :term:`bytes-like object` est maintenant accepté." @@ -400,104 +400,110 @@ msgid "" "``TCP_USER_TIMEOUT``, ``TCP_CONGESTION`` were added." msgstr "" -#: ../Doc/library/socket.rst:311 ../Doc/library/socket.rst:346 +#: ../Doc/library/socket.rst:306 +msgid "" +"On Windows, ``TCP_FASTOPEN``, ``TCP_KEEPCNT`` appear if run-time Windows " +"supports." +msgstr "" + +#: ../Doc/library/socket.rst:315 ../Doc/library/socket.rst:350 msgid "" "Many constants of these forms, documented in the Linux documentation, are " "also defined in the socket module." msgstr "" -#: ../Doc/library/socket.rst:314 ../Doc/library/socket.rst:325 +#: ../Doc/library/socket.rst:318 ../Doc/library/socket.rst:329 msgid "Availability: Linux >= 2.6.25." msgstr "" -#: ../Doc/library/socket.rst:321 +#: ../Doc/library/socket.rst:325 msgid "" "CAN_BCM, in the CAN protocol family, is the broadcast manager (BCM) " "protocol. Broadcast manager constants, documented in the Linux " "documentation, are also defined in the socket module." msgstr "" -#: ../Doc/library/socket.rst:331 +#: ../Doc/library/socket.rst:335 msgid "" "Enables CAN FD support in a CAN_RAW socket. This is disabled by default. " "This allows your application to send both CAN and CAN FD frames; however, " "you one must accept both CAN and CAN FD frames when reading from the socket." msgstr "" -#: ../Doc/library/socket.rst:335 +#: ../Doc/library/socket.rst:339 msgid "This constant is documented in the Linux documentation." msgstr "" -#: ../Doc/library/socket.rst:337 +#: ../Doc/library/socket.rst:341 msgid "Availability: Linux >= 3.6." msgstr "" -#: ../Doc/library/socket.rst:349 +#: ../Doc/library/socket.rst:353 msgid "Availability: Linux >= 2.6.30." msgstr "" -#: ../Doc/library/socket.rst:359 +#: ../Doc/library/socket.rst:363 msgid "" "Constants for Windows' WSAIoctl(). The constants are used as arguments to " "the :meth:`~socket.socket.ioctl` method of socket objects." msgstr "" -#: ../Doc/library/socket.rst:362 ../Doc/library/socket.rst:1039 +#: ../Doc/library/socket.rst:366 ../Doc/library/socket.rst:1043 msgid "``SIO_LOOPBACK_FAST_PATH`` was added." msgstr "" -#: ../Doc/library/socket.rst:368 +#: ../Doc/library/socket.rst:372 msgid "" "TIPC related constants, matching the ones exported by the C socket API. See " "the TIPC documentation for more information." msgstr "" -#: ../Doc/library/socket.rst:375 +#: ../Doc/library/socket.rst:379 msgid "Constants for Linux Kernel cryptography." msgstr "" -#: ../Doc/library/socket.rst:377 +#: ../Doc/library/socket.rst:381 msgid "Availability: Linux >= 2.6.38." msgstr "" -#: ../Doc/library/socket.rst:383 +#: ../Doc/library/socket.rst:387 msgid "Availability: BSD, OSX." msgstr "" -#: ../Doc/library/socket.rst:389 +#: ../Doc/library/socket.rst:393 msgid "" "This constant contains a boolean value which indicates if IPv6 is supported " "on this platform." msgstr "" -#: ../Doc/library/socket.rst:395 +#: ../Doc/library/socket.rst:399 msgid "" "These are string constants containing Bluetooth addresses with special " "meanings. For example, :const:`BDADDR_ANY` can be used to indicate any " "address when specifying the binding socket with :const:`BTPROTO_RFCOMM`." msgstr "" -#: ../Doc/library/socket.rst:404 +#: ../Doc/library/socket.rst:408 msgid "" "For use with :const:`BTPROTO_HCI`. :const:`HCI_FILTER` is not available for " "NetBSD or DragonFlyBSD. :const:`HCI_TIME_STAMP` and :const:`HCI_DATA_DIR` " "are not available for FreeBSD, NetBSD, or DragonFlyBSD." msgstr "" -#: ../Doc/library/socket.rst:410 +#: ../Doc/library/socket.rst:414 msgid "Functions" msgstr "Fonctions" -#: ../Doc/library/socket.rst:413 +#: ../Doc/library/socket.rst:417 msgid "Creating sockets" msgstr "" -#: ../Doc/library/socket.rst:415 +#: ../Doc/library/socket.rst:419 msgid "" "The following functions all create :ref:`socket objects `." msgstr "" -#: ../Doc/library/socket.rst:420 +#: ../Doc/library/socket.rst:424 msgid "" "Create a new socket using the given address family, socket type and protocol " "number. The address family should be :const:`AF_INET` (the default), :const:" @@ -513,26 +519,26 @@ msgid "" "meth:`socket.close()`." msgstr "" -#: ../Doc/library/socket.rst:433 ../Doc/library/socket.rst:500 -#: ../Doc/library/socket.rst:883 ../Doc/library/socket.rst:966 +#: ../Doc/library/socket.rst:437 ../Doc/library/socket.rst:504 +#: ../Doc/library/socket.rst:887 ../Doc/library/socket.rst:970 msgid "The newly created socket is :ref:`non-inheritable `." msgstr "" "Il n'est :ref:`pas possible d'hériter ` de la *socket* " "nouvellement créé." -#: ../Doc/library/socket.rst:435 +#: ../Doc/library/socket.rst:439 msgid "The AF_CAN family was added. The AF_RDS family was added." msgstr "" -#: ../Doc/library/socket.rst:439 +#: ../Doc/library/socket.rst:443 msgid "The CAN_BCM protocol was added." msgstr "" -#: ../Doc/library/socket.rst:442 ../Doc/library/socket.rst:502 +#: ../Doc/library/socket.rst:446 ../Doc/library/socket.rst:506 msgid "The returned socket is now non-inheritable." msgstr "" -#: ../Doc/library/socket.rst:448 +#: ../Doc/library/socket.rst:452 msgid "" "Build a pair of connected socket objects using the given address family, " "socket type, and protocol number. Address family, socket type, and protocol " @@ -541,25 +547,25 @@ msgid "" "`AF_INET`." msgstr "" -#: ../Doc/library/socket.rst:453 +#: ../Doc/library/socket.rst:457 msgid "The newly created sockets are :ref:`non-inheritable `." msgstr "" -#: ../Doc/library/socket.rst:455 +#: ../Doc/library/socket.rst:459 msgid "" "The returned socket objects now support the whole socket API, rather than a " "subset." msgstr "" -#: ../Doc/library/socket.rst:459 +#: ../Doc/library/socket.rst:463 msgid "The returned sockets are now non-inheritable." msgstr "" -#: ../Doc/library/socket.rst:462 +#: ../Doc/library/socket.rst:466 msgid "Windows support added." msgstr "" -#: ../Doc/library/socket.rst:468 +#: ../Doc/library/socket.rst:472 msgid "" "Connect to a TCP service listening on the Internet *address* (a 2-tuple " "``(host, port)``), and return the socket object. This is a higher-level " @@ -570,25 +576,25 @@ msgid "" "IPv4 and IPv6." msgstr "" -#: ../Doc/library/socket.rst:476 +#: ../Doc/library/socket.rst:480 msgid "" "Passing the optional *timeout* parameter will set the timeout on the socket " "instance before attempting to connect. If no *timeout* is supplied, the " "global default timeout setting returned by :func:`getdefaulttimeout` is used." msgstr "" -#: ../Doc/library/socket.rst:481 +#: ../Doc/library/socket.rst:485 msgid "" "If supplied, *source_address* must be a 2-tuple ``(host, port)`` for the " "socket to bind to as its source address before connecting. If host or port " "are '' or 0 respectively the OS default behavior will be used." msgstr "" -#: ../Doc/library/socket.rst:485 +#: ../Doc/library/socket.rst:489 msgid "*source_address* was added." msgstr "" -#: ../Doc/library/socket.rst:491 +#: ../Doc/library/socket.rst:495 msgid "" "Duplicate the file descriptor *fd* (an integer as returned by a file " "object's :meth:`fileno` method) and build a socket object from the result. " @@ -601,31 +607,31 @@ msgid "" "socket is assumed to be in blocking mode." msgstr "" -#: ../Doc/library/socket.rst:508 +#: ../Doc/library/socket.rst:512 msgid "" "Instantiate a socket from data obtained from the :meth:`socket.share` " "method. The socket is assumed to be in blocking mode." msgstr "" -#: ../Doc/library/socket.rst:511 ../Doc/library/socket.rst:1423 +#: ../Doc/library/socket.rst:515 ../Doc/library/socket.rst:1427 msgid "Availability: Windows." msgstr "Disponibilité : Windows." -#: ../Doc/library/socket.rst:518 +#: ../Doc/library/socket.rst:522 msgid "" "This is a Python type object that represents the socket object type. It is " "the same as ``type(socket(...))``." msgstr "" -#: ../Doc/library/socket.rst:523 +#: ../Doc/library/socket.rst:527 msgid "Other functions" msgstr "" -#: ../Doc/library/socket.rst:525 +#: ../Doc/library/socket.rst:529 msgid "The :mod:`socket` module also offers various network-related services:" msgstr "" -#: ../Doc/library/socket.rst:530 +#: ../Doc/library/socket.rst:534 msgid "" "Translate the *host*/*port* argument into a sequence of 5-tuples that " "contain all the necessary arguments for creating a socket connected to that " @@ -635,7 +641,7 @@ msgid "" "and *port*, you can pass ``NULL`` to the underlying C API." msgstr "" -#: ../Doc/library/socket.rst:537 +#: ../Doc/library/socket.rst:541 msgid "" "The *family*, *type* and *proto* arguments can be optionally specified in " "order to narrow the list of addresses returned. Passing zero as a value for " @@ -646,15 +652,15 @@ msgid "" "domain name." msgstr "" -#: ../Doc/library/socket.rst:545 +#: ../Doc/library/socket.rst:549 msgid "The function returns a list of 5-tuples with the following structure:" msgstr "" -#: ../Doc/library/socket.rst:547 +#: ../Doc/library/socket.rst:551 msgid "``(family, type, proto, canonname, sockaddr)``" msgstr "" -#: ../Doc/library/socket.rst:549 +#: ../Doc/library/socket.rst:553 msgid "" "In these tuples, *family*, *type*, *proto* are all integers and are meant to " "be passed to the :func:`.socket` function. *canonname* will be a string " @@ -666,18 +672,18 @@ msgid "" "be passed to the :meth:`socket.connect` method." msgstr "" -#: ../Doc/library/socket.rst:559 +#: ../Doc/library/socket.rst:563 msgid "" "The following example fetches address information for a hypothetical TCP " "connection to ``example.org`` on port 80 (results may differ on your system " "if IPv6 isn't enabled)::" msgstr "" -#: ../Doc/library/socket.rst:569 +#: ../Doc/library/socket.rst:573 msgid "parameters can now be passed using keyword arguments." msgstr "" -#: ../Doc/library/socket.rst:574 +#: ../Doc/library/socket.rst:578 msgid "" "Return a fully qualified domain name for *name*. If *name* is omitted or " "empty, it is interpreted as the local host. To find the fully qualified " @@ -687,7 +693,7 @@ msgid "" "hostname as returned by :func:`gethostname` is returned." msgstr "" -#: ../Doc/library/socket.rst:584 +#: ../Doc/library/socket.rst:588 msgid "" "Translate a host name to IPv4 address format. The IPv4 address is returned " "as a string, such as ``'100.50.200.5'``. If the host name is an IPv4 " @@ -697,7 +703,7 @@ msgid "" "stack support." msgstr "" -#: ../Doc/library/socket.rst:593 +#: ../Doc/library/socket.rst:597 msgid "" "Translate a host name to IPv4 address format, extended interface. Return a " "triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is the primary " @@ -709,19 +715,19 @@ msgid "" "IPv4/v6 dual stack support." msgstr "" -#: ../Doc/library/socket.rst:605 +#: ../Doc/library/socket.rst:609 msgid "" "Return a string containing the hostname of the machine where the Python " "interpreter is currently executing." msgstr "" -#: ../Doc/library/socket.rst:608 +#: ../Doc/library/socket.rst:612 msgid "" "Note: :func:`gethostname` doesn't always return the fully qualified domain " "name; use :func:`getfqdn` for that." msgstr "" -#: ../Doc/library/socket.rst:614 +#: ../Doc/library/socket.rst:618 msgid "" "Return a triple ``(hostname, aliaslist, ipaddrlist)`` where *hostname* is " "the primary host name responding to the given *ip_address*, *aliaslist* is a " @@ -732,7 +738,7 @@ msgid "" "`gethostbyaddr` supports both IPv4 and IPv6." msgstr "" -#: ../Doc/library/socket.rst:625 +#: ../Doc/library/socket.rst:629 msgid "" "Translate a socket address *sockaddr* into a 2-tuple ``(host, port)``. " "Depending on the settings of *flags*, the result can contain a fully-" @@ -740,7 +746,7 @@ msgid "" "Similarly, *port* can contain a string port name or a numeric port number." msgstr "" -#: ../Doc/library/socket.rst:633 +#: ../Doc/library/socket.rst:637 msgid "" "Translate an Internet protocol name (for example, ``'icmp'``) to a constant " "suitable for passing as the (optional) third argument to the :func:`.socket` " @@ -749,49 +755,49 @@ msgid "" "chosen automatically if the protocol is omitted or zero." msgstr "" -#: ../Doc/library/socket.rst:642 +#: ../Doc/library/socket.rst:646 msgid "" "Translate an Internet service name and protocol name to a port number for " "that service. The optional protocol name, if given, should be ``'tcp'`` or " "``'udp'``, otherwise any protocol will match." msgstr "" -#: ../Doc/library/socket.rst:649 +#: ../Doc/library/socket.rst:653 msgid "" "Translate an Internet port number and protocol name to a service name for " "that service. The optional protocol name, if given, should be ``'tcp'`` or " "``'udp'``, otherwise any protocol will match." msgstr "" -#: ../Doc/library/socket.rst:656 +#: ../Doc/library/socket.rst:660 msgid "" "Convert 32-bit positive integers from network to host byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 4-byte swap operation." msgstr "" -#: ../Doc/library/socket.rst:663 +#: ../Doc/library/socket.rst:667 msgid "" "Convert 16-bit positive integers from network to host byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 2-byte swap operation." msgstr "" -#: ../Doc/library/socket.rst:670 +#: ../Doc/library/socket.rst:674 msgid "" "Convert 32-bit positive integers from host to network byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 4-byte swap operation." msgstr "" -#: ../Doc/library/socket.rst:677 +#: ../Doc/library/socket.rst:681 msgid "" "Convert 16-bit positive integers from host to network byte order. On " "machines where the host byte order is the same as network byte order, this " "is a no-op; otherwise, it performs a 2-byte swap operation." msgstr "" -#: ../Doc/library/socket.rst:684 +#: ../Doc/library/socket.rst:688 msgid "" "Convert an IPv4 address from dotted-quad string format (for example, " "'123.45.67.89') to 32-bit packed binary format, as a bytes object four " @@ -801,26 +807,26 @@ msgid "" "returns." msgstr "" -#: ../Doc/library/socket.rst:690 +#: ../Doc/library/socket.rst:694 msgid "" ":func:`inet_aton` also accepts strings with less than three dots; see the " "Unix manual page :manpage:`inet(3)` for details." msgstr "" -#: ../Doc/library/socket.rst:693 +#: ../Doc/library/socket.rst:697 msgid "" "If the IPv4 address string passed to this function is invalid, :exc:" "`OSError` will be raised. Note that exactly what is valid depends on the " "underlying C implementation of :c:func:`inet_aton`." msgstr "" -#: ../Doc/library/socket.rst:697 +#: ../Doc/library/socket.rst:701 msgid "" ":func:`inet_aton` does not support IPv6, and :func:`inet_pton` should be " "used instead for IPv4/v6 dual stack support." msgstr "" -#: ../Doc/library/socket.rst:703 +#: ../Doc/library/socket.rst:707 msgid "" "Convert a 32-bit packed IPv4 address (a :term:`bytes-like object` four bytes " "in length) to its standard dotted-quad string representation (for example, " @@ -830,7 +836,7 @@ msgid "" "an argument." msgstr "" -#: ../Doc/library/socket.rst:710 +#: ../Doc/library/socket.rst:714 msgid "" "If the byte sequence passed to this function is not exactly 4 bytes in " "length, :exc:`OSError` will be raised. :func:`inet_ntoa` does not support " @@ -838,7 +844,7 @@ msgid "" "support." msgstr "" -#: ../Doc/library/socket.rst:721 +#: ../Doc/library/socket.rst:725 msgid "" "Convert an IP address from its family-specific string format to a packed, " "binary format. :func:`inet_pton` is useful when a library or network " @@ -846,7 +852,7 @@ msgid "" "func:`inet_aton`) or :c:type:`struct in6_addr`." msgstr "" -#: ../Doc/library/socket.rst:726 +#: ../Doc/library/socket.rst:730 msgid "" "Supported values for *address_family* are currently :const:`AF_INET` and :" "const:`AF_INET6`. If the IP address string *ip_string* is invalid, :exc:" @@ -855,15 +861,15 @@ msgid "" "`inet_pton`." msgstr "" -#: ../Doc/library/socket.rst:732 ../Doc/library/socket.rst:752 +#: ../Doc/library/socket.rst:736 ../Doc/library/socket.rst:756 msgid "Availability: Unix (maybe not all platforms), Windows." msgstr "" -#: ../Doc/library/socket.rst:734 ../Doc/library/socket.rst:754 +#: ../Doc/library/socket.rst:738 ../Doc/library/socket.rst:758 msgid "Windows support added" msgstr "Ajout du support Windows." -#: ../Doc/library/socket.rst:740 +#: ../Doc/library/socket.rst:744 msgid "" "Convert a packed IP address (a :term:`bytes-like object` of some number of " "bytes) to its standard, family-specific string representation (for example, " @@ -872,7 +878,7 @@ msgid "" "in_addr` (similar to :func:`inet_ntoa`) or :c:type:`struct in6_addr`." msgstr "" -#: ../Doc/library/socket.rst:747 +#: ../Doc/library/socket.rst:751 msgid "" "Supported values for *address_family* are currently :const:`AF_INET` and :" "const:`AF_INET6`. If the bytes object *packed_ip* is not the correct length " @@ -880,7 +886,7 @@ msgid "" "`OSError` is raised for errors from the call to :func:`inet_ntop`." msgstr "" -#: ../Doc/library/socket.rst:769 +#: ../Doc/library/socket.rst:773 msgid "" "Return the total length, without trailing padding, of an ancillary data item " "with associated data of the given *length*. This value can often be used as " @@ -891,13 +897,13 @@ msgid "" "the permissible range of values." msgstr "" -#: ../Doc/library/socket.rst:778 ../Doc/library/socket.rst:799 -#: ../Doc/library/socket.rst:1170 ../Doc/library/socket.rst:1212 -#: ../Doc/library/socket.rst:1316 +#: ../Doc/library/socket.rst:782 ../Doc/library/socket.rst:803 +#: ../Doc/library/socket.rst:1174 ../Doc/library/socket.rst:1216 +#: ../Doc/library/socket.rst:1320 msgid "Availability: most Unix platforms, possibly others." msgstr "" -#: ../Doc/library/socket.rst:785 +#: ../Doc/library/socket.rst:789 msgid "" "Return the buffer size needed for :meth:`~socket.recvmsg` to receive an " "ancillary data item with associated data of the given *length*, along with " @@ -907,7 +913,7 @@ msgid "" "values." msgstr "" -#: ../Doc/library/socket.rst:793 +#: ../Doc/library/socket.rst:797 msgid "" "Note that some systems might support ancillary data without providing this " "function. Also note that setting the buffer size using the results of this " @@ -915,66 +921,66 @@ msgid "" "received, since additional data may be able to fit into the padding area." msgstr "" -#: ../Doc/library/socket.rst:806 +#: ../Doc/library/socket.rst:810 msgid "" "Return the default timeout in seconds (float) for new socket objects. A " "value of ``None`` indicates that new socket objects have no timeout. When " "the socket module is first imported, the default is ``None``." msgstr "" -#: ../Doc/library/socket.rst:813 +#: ../Doc/library/socket.rst:817 msgid "" "Set the default timeout in seconds (float) for new socket objects. When the " "socket module is first imported, the default is ``None``. See :meth:" "`~socket.settimeout` for possible values and their respective meanings." msgstr "" -#: ../Doc/library/socket.rst:821 +#: ../Doc/library/socket.rst:825 msgid "" "Set the machine's hostname to *name*. This will raise an :exc:`OSError` if " "you don't have enough rights." msgstr "" -#: ../Doc/library/socket.rst:824 ../Doc/library/socket.rst:835 -#: ../Doc/library/socket.rst:846 ../Doc/library/socket.rst:857 +#: ../Doc/library/socket.rst:828 ../Doc/library/socket.rst:839 +#: ../Doc/library/socket.rst:850 ../Doc/library/socket.rst:861 msgid "Availability: Unix." msgstr "Disponibilité : Unix." -#: ../Doc/library/socket.rst:831 +#: ../Doc/library/socket.rst:835 msgid "" "Return a list of network interface information (index int, name string) " "tuples. :exc:`OSError` if the system call fails." msgstr "" -#: ../Doc/library/socket.rst:842 +#: ../Doc/library/socket.rst:846 msgid "" "Return a network interface index number corresponding to an interface name. :" "exc:`OSError` if no interface with the given name exists." msgstr "" -#: ../Doc/library/socket.rst:853 +#: ../Doc/library/socket.rst:857 msgid "" "Return a network interface name corresponding to an interface index number. :" "exc:`OSError` if no interface with the given index exists." msgstr "" -#: ../Doc/library/socket.rst:865 +#: ../Doc/library/socket.rst:869 msgid "Socket Objects" msgstr "" -#: ../Doc/library/socket.rst:867 +#: ../Doc/library/socket.rst:871 msgid "" "Socket objects have the following methods. Except for :meth:`~socket." "makefile`, these correspond to Unix system calls applicable to sockets." msgstr "" -#: ../Doc/library/socket.rst:871 +#: ../Doc/library/socket.rst:875 msgid "" "Support for the :term:`context manager` protocol was added. Exiting the " "context manager is equivalent to calling :meth:`~socket.close`." msgstr "" -#: ../Doc/library/socket.rst:878 +#: ../Doc/library/socket.rst:882 msgid "" "Accept a connection. The socket must be bound to an address and listening " "for connections. The return value is a pair ``(conn, address)`` where *conn* " @@ -983,14 +989,14 @@ msgid "" "connection." msgstr "" -#: ../Doc/library/socket.rst:885 ../Doc/library/socket.rst:968 +#: ../Doc/library/socket.rst:889 ../Doc/library/socket.rst:972 msgid "The socket is now non-inheritable." msgstr "" -#: ../Doc/library/socket.rst:888 ../Doc/library/socket.rst:1089 -#: ../Doc/library/socket.rst:1103 ../Doc/library/socket.rst:1174 -#: ../Doc/library/socket.rst:1245 ../Doc/library/socket.rst:1264 -#: ../Doc/library/socket.rst:1279 ../Doc/library/socket.rst:1320 +#: ../Doc/library/socket.rst:892 ../Doc/library/socket.rst:1093 +#: ../Doc/library/socket.rst:1107 ../Doc/library/socket.rst:1178 +#: ../Doc/library/socket.rst:1249 ../Doc/library/socket.rst:1268 +#: ../Doc/library/socket.rst:1283 ../Doc/library/socket.rst:1324 msgid "" "If the system call is interrupted and the signal handler does not raise an " "exception, the method now retries the system call instead of raising an :exc:" @@ -1000,13 +1006,13 @@ msgstr "" "aucune exception, la fonction réessaye l'appel système au lieu de lever une :" "exc:`InterruptedError` (voir la :pep:`475` à propos du raisonnement)." -#: ../Doc/library/socket.rst:896 +#: ../Doc/library/socket.rst:900 msgid "" "Bind the socket to *address*. The socket must not already be bound. (The " "format of *address* depends on the address family --- see above.)" msgstr "" -#: ../Doc/library/socket.rst:902 +#: ../Doc/library/socket.rst:906 msgid "" "Mark the socket closed. The underlying system resource (e.g. a file " "descriptor) is also closed when all file objects from :meth:`makefile()` are " @@ -1015,20 +1021,20 @@ msgid "" "flushed)." msgstr "" -#: ../Doc/library/socket.rst:908 +#: ../Doc/library/socket.rst:912 msgid "" "Sockets are automatically closed when they are garbage-collected, but it is " "recommended to :meth:`close` them explicitly, or to use a :keyword:`with` " "statement around them." msgstr "" -#: ../Doc/library/socket.rst:912 +#: ../Doc/library/socket.rst:916 msgid "" ":exc:`OSError` is now raised if an error occurs when the underlying :c:func:" "`close` call is made." msgstr "" -#: ../Doc/library/socket.rst:918 +#: ../Doc/library/socket.rst:922 msgid "" ":meth:`close()` releases the resource associated with a connection but does " "not necessarily close the connection immediately. If you want to close the " @@ -1036,13 +1042,13 @@ msgid "" "`close()`." msgstr "" -#: ../Doc/library/socket.rst:926 +#: ../Doc/library/socket.rst:930 msgid "" "Connect to a remote socket at *address*. (The format of *address* depends on " "the address family --- see above.)" msgstr "" -#: ../Doc/library/socket.rst:929 +#: ../Doc/library/socket.rst:933 msgid "" "If the connection is interrupted by a signal, the method waits until the " "connection completes, or raise a :exc:`socket.timeout` on timeout, if the " @@ -1052,7 +1058,7 @@ msgid "" "(or the exception raised by the signal handler)." msgstr "" -#: ../Doc/library/socket.rst:936 +#: ../Doc/library/socket.rst:940 msgid "" "The method now waits until the connection completes instead of raising an :" "exc:`InterruptedError` exception if the connection is interrupted by a " @@ -1060,7 +1066,7 @@ msgid "" "blocking or has a timeout (see the :pep:`475` for the rationale)." msgstr "" -#: ../Doc/library/socket.rst:945 +#: ../Doc/library/socket.rst:949 msgid "" "Like ``connect(address)``, but return an error indicator instead of raising " "an exception for errors returned by the C-level :c:func:`connect` call " @@ -1070,38 +1076,38 @@ msgid "" "asynchronous connects." msgstr "" -#: ../Doc/library/socket.rst:955 +#: ../Doc/library/socket.rst:959 msgid "" "Put the socket object into closed state without actually closing the " "underlying file descriptor. The file descriptor is returned, and can be " "reused for other purposes." msgstr "" -#: ../Doc/library/socket.rst:964 +#: ../Doc/library/socket.rst:968 msgid "Duplicate the socket." msgstr "" -#: ../Doc/library/socket.rst:974 +#: ../Doc/library/socket.rst:978 msgid "" "Return the socket's file descriptor (a small integer), or -1 on failure. " "This is useful with :func:`select.select`." msgstr "" -#: ../Doc/library/socket.rst:977 +#: ../Doc/library/socket.rst:981 msgid "" "Under Windows the small integer returned by this method cannot be used where " "a file descriptor can be used (such as :func:`os.fdopen`). Unix does not " "have this limitation." msgstr "" -#: ../Doc/library/socket.rst:983 +#: ../Doc/library/socket.rst:987 msgid "" "Get the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle: ``True`` if the socket can be inherited in " "child processes, ``False`` if it cannot." msgstr "" -#: ../Doc/library/socket.rst:992 +#: ../Doc/library/socket.rst:996 msgid "" "Return the remote address to which the socket is connected. This is useful " "to find out the port number of a remote IPv4/v6 socket, for instance. (The " @@ -1109,14 +1115,14 @@ msgid "" "above.) On some systems this function is not supported." msgstr "" -#: ../Doc/library/socket.rst:1000 +#: ../Doc/library/socket.rst:1004 msgid "" "Return the socket's own address. This is useful to find out the port number " "of an IPv4/v6 socket, for instance. (The format of the address returned " "depends on the address family --- see above.)" msgstr "" -#: ../Doc/library/socket.rst:1007 +#: ../Doc/library/socket.rst:1011 msgid "" "Return the value of the given socket option (see the Unix man page :manpage:" "`getsockopt(2)`). The needed symbolic constants (:const:`SO_\\*` etc.) are " @@ -1128,7 +1134,7 @@ msgid "" "`struct` for a way to decode C structures encoded as byte strings)." msgstr "" -#: ../Doc/library/socket.rst:1019 +#: ../Doc/library/socket.rst:1023 msgid "" "Return the timeout in seconds (float) associated with socket operations, or " "``None`` if no timeout is set. This reflects the last call to :meth:" @@ -1139,30 +1145,30 @@ msgstr "" msgid "platform" msgstr "" -#: ../Doc/library/socket.rst:1026 +#: ../Doc/library/socket.rst:1030 msgid "Windows" msgstr "Windows" -#: ../Doc/library/socket.rst:1028 +#: ../Doc/library/socket.rst:1032 msgid "" "The :meth:`ioctl` method is a limited interface to the WSAIoctl system " "interface. Please refer to the `Win32 documentation `_ for more information." msgstr "" -#: ../Doc/library/socket.rst:1033 +#: ../Doc/library/socket.rst:1037 msgid "" "On other platforms, the generic :func:`fcntl.fcntl` and :func:`fcntl.ioctl` " "functions may be used; they accept a socket object as their first argument." msgstr "" -#: ../Doc/library/socket.rst:1036 +#: ../Doc/library/socket.rst:1040 msgid "" "Currently only the following control codes are supported: ``SIO_RCVALL``, " "``SIO_KEEPALIVE_VALS``, and ``SIO_LOOPBACK_FAST_PATH``." msgstr "" -#: ../Doc/library/socket.rst:1044 +#: ../Doc/library/socket.rst:1048 msgid "" "Enable a server to accept connections. If *backlog* is specified, it must " "be at least 0 (if it is lower, it is set to 0); it specifies the number of " @@ -1170,11 +1176,11 @@ msgid "" "connections. If not specified, a default reasonable value is chosen." msgstr "" -#: ../Doc/library/socket.rst:1049 +#: ../Doc/library/socket.rst:1053 msgid "The *backlog* parameter is now optional." msgstr "" -#: ../Doc/library/socket.rst:1057 +#: ../Doc/library/socket.rst:1061 msgid "" "Return a :term:`file object` associated with the socket. The exact returned " "type depends on the arguments given to :meth:`makefile`. These arguments " @@ -1183,28 +1189,28 @@ msgid "" "``'b'``." msgstr "" -#: ../Doc/library/socket.rst:1062 +#: ../Doc/library/socket.rst:1066 msgid "" "The socket must be in blocking mode; it can have a timeout, but the file " "object's internal buffer may end up in an inconsistent state if a timeout " "occurs." msgstr "" -#: ../Doc/library/socket.rst:1066 +#: ../Doc/library/socket.rst:1070 msgid "" "Closing the file object returned by :meth:`makefile` won't close the " "original socket unless all other file objects have been closed and :meth:" "`socket.close` has been called on the socket object." msgstr "" -#: ../Doc/library/socket.rst:1072 +#: ../Doc/library/socket.rst:1076 msgid "" "On Windows, the file-like object created by :meth:`makefile` cannot be used " "where a file object with a file descriptor is expected, such as the stream " "arguments of :meth:`subprocess.Popen`." msgstr "" -#: ../Doc/library/socket.rst:1079 +#: ../Doc/library/socket.rst:1083 msgid "" "Receive data from the socket. The return value is a bytes object " "representing the data received. The maximum amount of data to be received " @@ -1213,13 +1219,13 @@ msgid "" "zero." msgstr "" -#: ../Doc/library/socket.rst:1086 +#: ../Doc/library/socket.rst:1090 msgid "" "For best match with hardware and network realities, the value of *bufsize* " "should be a relatively small power of 2, for example, 4096." msgstr "" -#: ../Doc/library/socket.rst:1097 +#: ../Doc/library/socket.rst:1101 msgid "" "Receive data from the socket. The return value is a pair ``(bytes, " "address)`` where *bytes* is a bytes object representing the data received " @@ -1229,7 +1235,7 @@ msgid "" "address family --- see above.)" msgstr "" -#: ../Doc/library/socket.rst:1111 +#: ../Doc/library/socket.rst:1115 msgid "" "Receive normal data (up to *bufsize* bytes) and ancillary data from the " "socket. The *ancbufsize* argument sets the size in bytes of the internal " @@ -1240,7 +1246,7 @@ msgid "" "*flags* argument defaults to 0 and has the same meaning as for :meth:`recv`." msgstr "" -#: ../Doc/library/socket.rst:1121 +#: ../Doc/library/socket.rst:1125 msgid "" "The return value is a 4-tuple: ``(data, ancdata, msg_flags, address)``. The " "*data* item is a :class:`bytes` object holding the non-ancillary data " @@ -1255,7 +1261,7 @@ msgid "" "socket, if available; otherwise, its value is unspecified." msgstr "" -#: ../Doc/library/socket.rst:1135 +#: ../Doc/library/socket.rst:1139 msgid "" "On some systems, :meth:`sendmsg` and :meth:`recvmsg` can be used to pass " "file descriptors between processes over an :const:`AF_UNIX` socket. When " @@ -1268,7 +1274,7 @@ msgid "" "descriptors received via this mechanism." msgstr "" -#: ../Doc/library/socket.rst:1146 +#: ../Doc/library/socket.rst:1150 msgid "" "Some systems do not indicate the truncated length of ancillary data items " "which have been only partially received. If an item appears to extend " @@ -1277,7 +1283,7 @@ msgid "" "provided it has not been truncated before the start of its associated data." msgstr "" -#: ../Doc/library/socket.rst:1153 +#: ../Doc/library/socket.rst:1157 msgid "" "On systems which support the :const:`SCM_RIGHTS` mechanism, the following " "function will receive up to *maxfds* file descriptors, returning the message " @@ -1286,7 +1292,7 @@ msgid "" "meth:`sendmsg`. ::" msgstr "" -#: ../Doc/library/socket.rst:1182 +#: ../Doc/library/socket.rst:1186 msgid "" "Receive normal data and ancillary data from the socket, behaving as :meth:" "`recvmsg` would, but scatter the non-ancillary data into a series of buffers " @@ -1299,7 +1305,7 @@ msgid "" "arguments have the same meaning as for :meth:`recvmsg`." msgstr "" -#: ../Doc/library/socket.rst:1193 +#: ../Doc/library/socket.rst:1197 msgid "" "The return value is a 4-tuple: ``(nbytes, ancdata, msg_flags, address)``, " "where *nbytes* is the total number of bytes of non-ancillary data written " @@ -1307,11 +1313,11 @@ msgid "" "for :meth:`recvmsg`." msgstr "" -#: ../Doc/library/socket.rst:1198 +#: ../Doc/library/socket.rst:1202 msgid "Example::" msgstr "Exemples ::" -#: ../Doc/library/socket.rst:1219 +#: ../Doc/library/socket.rst:1223 msgid "" "Receive data from the socket, writing it into *buffer* instead of creating a " "new bytestring. The return value is a pair ``(nbytes, address)`` where " @@ -1321,7 +1327,7 @@ msgid "" "format of *address* depends on the address family --- see above.)" msgstr "" -#: ../Doc/library/socket.rst:1229 +#: ../Doc/library/socket.rst:1233 msgid "" "Receive up to *nbytes* bytes from the socket, storing the data into a buffer " "rather than creating a new bytestring. If *nbytes* is not specified (or 0), " @@ -1330,7 +1336,7 @@ msgid "" "of the optional argument *flags*; it defaults to zero." msgstr "" -#: ../Doc/library/socket.rst:1238 +#: ../Doc/library/socket.rst:1242 msgid "" "Send data to the socket. The socket must be connected to a remote socket. " "The optional *flags* argument has the same meaning as for :meth:`recv` " @@ -1340,7 +1346,7 @@ msgid "" "data. For further information on this topic, consult the :ref:`socket-howto`." msgstr "" -#: ../Doc/library/socket.rst:1253 +#: ../Doc/library/socket.rst:1257 msgid "" "Send data to the socket. The socket must be connected to a remote socket. " "The optional *flags* argument has the same meaning as for :meth:`recv` " @@ -1350,13 +1356,13 @@ msgid "" "to determine how much data, if any, was successfully sent." msgstr "" -#: ../Doc/library/socket.rst:1260 +#: ../Doc/library/socket.rst:1264 msgid "" "The socket timeout is no more reset each time data is sent successfully. The " "socket timeout is now the maximum total duration to send all data." msgstr "" -#: ../Doc/library/socket.rst:1273 +#: ../Doc/library/socket.rst:1277 msgid "" "Send data to the socket. The socket should not be connected to a remote " "socket, since the destination socket is specified by *address*. The " @@ -1365,7 +1371,7 @@ msgid "" "address family --- see above.)" msgstr "" -#: ../Doc/library/socket.rst:1287 +#: ../Doc/library/socket.rst:1291 msgid "" "Send normal and ancillary data to the socket, gathering the non-ancillary " "data from a series of buffers and concatenating it into a single message. " @@ -1385,25 +1391,25 @@ msgid "" "bytes of non-ancillary data sent." msgstr "" -#: ../Doc/library/socket.rst:1307 +#: ../Doc/library/socket.rst:1311 msgid "" "The following function sends the list of file descriptors *fds* over an :" "const:`AF_UNIX` socket, on systems which support the :const:`SCM_RIGHTS` " "mechanism. See also :meth:`recvmsg`. ::" msgstr "" -#: ../Doc/library/socket.rst:1327 +#: ../Doc/library/socket.rst:1331 msgid "" "Specialized version of :meth:`~socket.sendmsg` for :const:`AF_ALG` socket. " "Set mode, IV, AEAD associated data length and flags for :const:`AF_ALG` " "socket." msgstr "" -#: ../Doc/library/socket.rst:1330 +#: ../Doc/library/socket.rst:1334 msgid "Availability: Linux >= 2.6.38" msgstr "" -#: ../Doc/library/socket.rst:1336 +#: ../Doc/library/socket.rst:1340 msgid "" "Send a file until EOF is reached by using high-performance :mod:`os." "sendfile` and return the total number of bytes which were sent. *file* must " @@ -1417,32 +1423,32 @@ msgid "" "be of :const:`SOCK_STREAM` type. Non-blocking sockets are not supported." msgstr "" -#: ../Doc/library/socket.rst:1352 +#: ../Doc/library/socket.rst:1356 msgid "" "Set the :ref:`inheritable flag ` of the socket's file " "descriptor or socket's handle." msgstr "" -#: ../Doc/library/socket.rst:1360 +#: ../Doc/library/socket.rst:1364 msgid "" "Set blocking or non-blocking mode of the socket: if *flag* is false, the " "socket is set to non-blocking, else to blocking mode." msgstr "" -#: ../Doc/library/socket.rst:1363 +#: ../Doc/library/socket.rst:1367 msgid "" "This method is a shorthand for certain :meth:`~socket.settimeout` calls:" msgstr "" -#: ../Doc/library/socket.rst:1365 +#: ../Doc/library/socket.rst:1369 msgid "``sock.setblocking(True)`` is equivalent to ``sock.settimeout(None)``" msgstr "" -#: ../Doc/library/socket.rst:1367 +#: ../Doc/library/socket.rst:1371 msgid "``sock.setblocking(False)`` is equivalent to ``sock.settimeout(0.0)``" msgstr "" -#: ../Doc/library/socket.rst:1372 +#: ../Doc/library/socket.rst:1376 msgid "" "Set a timeout on blocking socket operations. The *value* argument can be a " "nonnegative floating point number expressing seconds, or ``None``. If a non-" @@ -1452,13 +1458,13 @@ msgid "" "blocking mode. If ``None`` is given, the socket is put in blocking mode." msgstr "" -#: ../Doc/library/socket.rst:1379 +#: ../Doc/library/socket.rst:1383 msgid "" "For further information, please consult the :ref:`notes on socket timeouts " "`." msgstr "" -#: ../Doc/library/socket.rst:1388 +#: ../Doc/library/socket.rst:1392 msgid "" "Set the value of the given socket option (see the Unix manual page :manpage:" "`setsockopt(2)`). The needed symbolic constants are defined in the :mod:" @@ -1471,11 +1477,11 @@ msgid "" "optval=NULL and optlen=optlen." msgstr "" -#: ../Doc/library/socket.rst:1402 +#: ../Doc/library/socket.rst:1406 msgid "setsockopt(level, optname, None, optlen: int) form added." msgstr "" -#: ../Doc/library/socket.rst:1408 +#: ../Doc/library/socket.rst:1412 msgid "" "Shut down one or both halves of the connection. If *how* is :const:" "`SHUT_RD`, further receives are disallowed. If *how* is :const:`SHUT_WR`, " @@ -1483,7 +1489,7 @@ msgid "" "and receives are disallowed." msgstr "" -#: ../Doc/library/socket.rst:1416 +#: ../Doc/library/socket.rst:1420 msgid "" "Duplicate a socket and prepare it for sharing with a target process. The " "target process must be provided with *process_id*. The resulting bytes " @@ -1494,48 +1500,48 @@ msgid "" "process." msgstr "" -#: ../Doc/library/socket.rst:1428 +#: ../Doc/library/socket.rst:1432 msgid "" "Note that there are no methods :meth:`read` or :meth:`write`; use :meth:" "`~socket.recv` and :meth:`~socket.send` without *flags* argument instead." msgstr "" -#: ../Doc/library/socket.rst:1431 +#: ../Doc/library/socket.rst:1435 msgid "" "Socket objects also have these (read-only) attributes that correspond to the " "values given to the :class:`~socket.socket` constructor." msgstr "" -#: ../Doc/library/socket.rst:1437 +#: ../Doc/library/socket.rst:1441 msgid "The socket family." msgstr "" -#: ../Doc/library/socket.rst:1442 +#: ../Doc/library/socket.rst:1446 msgid "The socket type." msgstr "" -#: ../Doc/library/socket.rst:1447 +#: ../Doc/library/socket.rst:1451 msgid "The socket protocol." msgstr "" -#: ../Doc/library/socket.rst:1454 +#: ../Doc/library/socket.rst:1458 msgid "Notes on socket timeouts" msgstr "" -#: ../Doc/library/socket.rst:1456 +#: ../Doc/library/socket.rst:1460 msgid "" "A socket object can be in one of three modes: blocking, non-blocking, or " "timeout. Sockets are by default always created in blocking mode, but this " "can be changed by calling :func:`setdefaulttimeout`." msgstr "" -#: ../Doc/library/socket.rst:1460 +#: ../Doc/library/socket.rst:1464 msgid "" "In *blocking mode*, operations block until complete or the system returns an " "error (such as connection timed out)." msgstr "" -#: ../Doc/library/socket.rst:1463 +#: ../Doc/library/socket.rst:1467 msgid "" "In *non-blocking mode*, operations fail (with an error that is unfortunately " "system-dependent) if they cannot be completed immediately: functions from " @@ -1543,14 +1549,14 @@ msgid "" "for reading or writing." msgstr "" -#: ../Doc/library/socket.rst:1468 +#: ../Doc/library/socket.rst:1472 msgid "" "In *timeout mode*, operations fail if they cannot be completed within the " "timeout specified for the socket (they raise a :exc:`timeout` exception) or " "if the system returns an error." msgstr "" -#: ../Doc/library/socket.rst:1473 +#: ../Doc/library/socket.rst:1477 msgid "" "At the operating system level, sockets in *timeout mode* are internally set " "in non-blocking mode. Also, the blocking and timeout modes are shared " @@ -1559,11 +1565,11 @@ msgid "" "you decide to use the :meth:`~socket.fileno()` of a socket." msgstr "" -#: ../Doc/library/socket.rst:1480 +#: ../Doc/library/socket.rst:1484 msgid "Timeouts and the ``connect`` method" msgstr "" -#: ../Doc/library/socket.rst:1482 +#: ../Doc/library/socket.rst:1486 msgid "" "The :meth:`~socket.connect` operation is also subject to the timeout " "setting, and in general it is recommended to call :meth:`~socket.settimeout` " @@ -1573,24 +1579,24 @@ msgid "" "setting." msgstr "" -#: ../Doc/library/socket.rst:1490 +#: ../Doc/library/socket.rst:1494 msgid "Timeouts and the ``accept`` method" msgstr "" -#: ../Doc/library/socket.rst:1492 +#: ../Doc/library/socket.rst:1496 msgid "" "If :func:`getdefaulttimeout` is not :const:`None`, sockets returned by the :" "meth:`~socket.accept` method inherit that timeout. Otherwise, the behaviour " "depends on settings of the listening socket:" msgstr "" -#: ../Doc/library/socket.rst:1496 +#: ../Doc/library/socket.rst:1500 msgid "" "if the listening socket is in *blocking mode* or in *timeout mode*, the " "socket returned by :meth:`~socket.accept` is in *blocking mode*;" msgstr "" -#: ../Doc/library/socket.rst:1499 +#: ../Doc/library/socket.rst:1503 msgid "" "if the listening socket is in *non-blocking mode*, whether the socket " "returned by :meth:`~socket.accept` is in blocking or non-blocking mode is " @@ -1598,11 +1604,11 @@ msgid "" "it is recommended you manually override this setting." msgstr "" -#: ../Doc/library/socket.rst:1508 +#: ../Doc/library/socket.rst:1512 msgid "Example" msgstr "Exemple" -#: ../Doc/library/socket.rst:1510 +#: ../Doc/library/socket.rst:1514 msgid "" "Here are four minimal example programs using the TCP/IP protocol: a server " "that echoes all data that it receives back (servicing only one client), and " @@ -1615,11 +1621,11 @@ msgid "" "new socket returned by :meth:`~socket.accept`." msgstr "" -#: ../Doc/library/socket.rst:1520 +#: ../Doc/library/socket.rst:1524 msgid "The first two examples support IPv4 only. ::" msgstr "" -#: ../Doc/library/socket.rst:1551 +#: ../Doc/library/socket.rst:1555 msgid "" "The next two examples are identical to the above two, but support both IPv4 " "and IPv6. The server side will listen to the first address family available " @@ -1629,73 +1635,73 @@ msgid "" "resolution, and sends traffic to the first one connected successfully. ::" msgstr "" -#: ../Doc/library/socket.rst:1624 +#: ../Doc/library/socket.rst:1628 msgid "" "The next example shows how to write a very simple network sniffer with raw " "sockets on Windows. The example requires administrator privileges to modify " "the interface::" msgstr "" -#: ../Doc/library/socket.rst:1649 +#: ../Doc/library/socket.rst:1653 msgid "" "The last example shows how to use the socket interface to communicate to a " "CAN network using the raw socket protocol. To use CAN with the broadcast " "manager protocol instead, open a socket with::" msgstr "" -#: ../Doc/library/socket.rst:1655 +#: ../Doc/library/socket.rst:1659 msgid "" "After binding (:const:`CAN_RAW`) or connecting (:const:`CAN_BCM`) the " "socket, you can use the :meth:`socket.send`, and the :meth:`socket.recv` " "operations (and their counterparts) on the socket object as usual." msgstr "" -#: ../Doc/library/socket.rst:1659 +#: ../Doc/library/socket.rst:1663 msgid "This example might require special privileges::" msgstr "" -#: ../Doc/library/socket.rst:1699 +#: ../Doc/library/socket.rst:1703 msgid "" "Running an example several times with too small delay between executions, " "could lead to this error::" msgstr "" -#: ../Doc/library/socket.rst:1704 +#: ../Doc/library/socket.rst:1708 msgid "" "This is because the previous execution has left the socket in a " "``TIME_WAIT`` state, and can't be immediately reused." msgstr "" -#: ../Doc/library/socket.rst:1707 +#: ../Doc/library/socket.rst:1711 msgid "" "There is a :mod:`socket` flag to set, in order to prevent this, :data:" "`socket.SO_REUSEADDR`::" msgstr "" -#: ../Doc/library/socket.rst:1714 +#: ../Doc/library/socket.rst:1718 msgid "" "the :data:`SO_REUSEADDR` flag tells the kernel to reuse a local socket in " "``TIME_WAIT`` state, without waiting for its natural timeout to expire." msgstr "" -#: ../Doc/library/socket.rst:1720 +#: ../Doc/library/socket.rst:1724 msgid "" "For an introduction to socket programming (in C), see the following papers:" msgstr "" -#: ../Doc/library/socket.rst:1722 +#: ../Doc/library/socket.rst:1726 msgid "" "*An Introductory 4.3BSD Interprocess Communication Tutorial*, by Stuart " "Sechrest" msgstr "" -#: ../Doc/library/socket.rst:1724 +#: ../Doc/library/socket.rst:1728 msgid "" "*An Advanced 4.3BSD Interprocess Communication Tutorial*, by Samuel J. " "Leffler et al," msgstr "" -#: ../Doc/library/socket.rst:1727 +#: ../Doc/library/socket.rst:1731 msgid "" "both in the UNIX Programmer's Manual, Supplementary Documents 1 (sections " "PS1:7 and PS1:8). The platform-specific reference material for the various " diff --git a/library/ssl.po b/library/ssl.po index 0d1b43e4e..b82cc7b19 100644 --- a/library/ssl.po +++ b/library/ssl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-01-04 15:51+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2017-09-12 13:41+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -1768,7 +1768,7 @@ msgstr "" #: ../Doc/library/ssl.rst:1542 msgid "" -"Load the key generation parameters for Diffie-Helman (DH) key exchange. " +"Load the key generation parameters for Diffie-Hellman (DH) key exchange. " "Using DH key exchange improves forward secrecy at the expense of " "computational resources (both on the server and on the client). The *dhfile* " "parameter should be the path to a file containing DH parameters in PEM " @@ -2589,101 +2589,126 @@ msgid "" msgstr "" #: ../Doc/library/ssl.rst:2326 +msgid "LibreSSL support" +msgstr "" + +#: ../Doc/library/ssl.rst:2328 +msgid "" +"LibreSSL is a fork of OpenSSL 1.0.1. The ssl module has limited support for " +"LibreSSL. Some features are not available when the ssl module is compiled " +"with LibreSSL." +msgstr "" + +#: ../Doc/library/ssl.rst:2332 +msgid "" +"LibreSSL >= 2.6.1 no longer supports NPN. The methods :meth:`SSLContext." +"set_npn_protocols` and :meth:`SSLSocket.selected_npn_protocol` are not " +"available." +msgstr "" + +#: ../Doc/library/ssl.rst:2335 +msgid "" +":meth:`SSLContext.set_default_verify_paths` ignores the env vars :envvar:" +"`SSL_CERT_FILE` and :envvar:`SSL_CERT_PATH` although :func:" +"`get_default_verify_paths` still reports them." +msgstr "" + +#: ../Doc/library/ssl.rst:2343 msgid "Class :class:`socket.socket`" msgstr "" -#: ../Doc/library/ssl.rst:2326 +#: ../Doc/library/ssl.rst:2343 msgid "Documentation of underlying :mod:`socket` class" msgstr "" -#: ../Doc/library/ssl.rst:2329 +#: ../Doc/library/ssl.rst:2346 msgid "" "`SSL/TLS Strong Encryption: An Introduction `_" msgstr "" -#: ../Doc/library/ssl.rst:2329 -msgid "Intro from the Apache webserver documentation" +#: ../Doc/library/ssl.rst:2346 +msgid "Intro from the Apache HTTP Server documentation" msgstr "" -#: ../Doc/library/ssl.rst:2332 +#: ../Doc/library/ssl.rst:2349 msgid "" "`RFC 1422: Privacy Enhancement for Internet Electronic Mail: Part II: " "Certificate-Based Key Management `_" msgstr "" -#: ../Doc/library/ssl.rst:2332 +#: ../Doc/library/ssl.rst:2349 msgid "Steve Kent" msgstr "" -#: ../Doc/library/ssl.rst:2335 +#: ../Doc/library/ssl.rst:2352 msgid "" "`RFC 4086: Randomness Requirements for Security `_" msgstr "" -#: ../Doc/library/ssl.rst:2335 +#: ../Doc/library/ssl.rst:2352 msgid "Donald E., Jeffrey I. Schiller" msgstr "" -#: ../Doc/library/ssl.rst:2338 +#: ../Doc/library/ssl.rst:2355 msgid "" "`RFC 5280: Internet X.509 Public Key Infrastructure Certificate and " "Certificate Revocation List (CRL) Profile `_" msgstr "" -#: ../Doc/library/ssl.rst:2338 +#: ../Doc/library/ssl.rst:2355 msgid "D. Cooper" msgstr "" -#: ../Doc/library/ssl.rst:2341 +#: ../Doc/library/ssl.rst:2358 msgid "" "`RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2 `_" msgstr "" -#: ../Doc/library/ssl.rst:2341 +#: ../Doc/library/ssl.rst:2358 msgid "T. Dierks et. al." msgstr "" -#: ../Doc/library/ssl.rst:2344 +#: ../Doc/library/ssl.rst:2361 msgid "" "`RFC 6066: Transport Layer Security (TLS) Extensions `_" msgstr "" -#: ../Doc/library/ssl.rst:2344 +#: ../Doc/library/ssl.rst:2361 msgid "D. Eastlake" msgstr "" -#: ../Doc/library/ssl.rst:2347 +#: ../Doc/library/ssl.rst:2364 msgid "" "`IANA TLS: Transport Layer Security (TLS) Parameters `_" msgstr "" -#: ../Doc/library/ssl.rst:2347 +#: ../Doc/library/ssl.rst:2364 msgid "IANA" msgstr "" -#: ../Doc/library/ssl.rst:2350 +#: ../Doc/library/ssl.rst:2367 msgid "" "`RFC 7525: Recommendations for Secure Use of Transport Layer Security (TLS) " "and Datagram Transport Layer Security (DTLS) `_" msgstr "" -#: ../Doc/library/ssl.rst:2350 +#: ../Doc/library/ssl.rst:2367 msgid "IETF" msgstr "" -#: ../Doc/library/ssl.rst:2352 +#: ../Doc/library/ssl.rst:2369 msgid "" "`Mozilla's Server Side TLS recommendations `_" msgstr "" -#: ../Doc/library/ssl.rst:2353 +#: ../Doc/library/ssl.rst:2370 msgid "Mozilla" msgstr "" diff --git a/library/test.po b/library/test.po index 1cb4c780a..fcb81b549 100644 --- a/library/test.po +++ b/library/test.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -724,3 +724,10 @@ msgid "" "Class used to record warnings for unit tests. See documentation of :func:" "`check_warnings` above for more details." msgstr "" + +#: ../Doc/library/test.rst:684 +msgid "" +"Simple :term:`path-like object`. It implements the :meth:`__fspath__` " +"method which just returns the *path* argument. If *path* is an exception, " +"it will be raised in :meth:`!__fspath__`." +msgstr "" diff --git a/library/tkinter.ttk.po b/library/tkinter.ttk.po index 9b67a7857..028878001 100644 --- a/library/tkinter.ttk.po +++ b/library/tkinter.ttk.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-13 22:28+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1685,13 +1685,6 @@ msgid "" "according to the following selection methods." msgstr "" -#: ../Doc/library/tkinter.ttk.rst:1104 -msgid "" -"Deprecated since version 3.6, will be removed in version 3.8: Using " -"selection() for changing the selection state is deprecated. Use the " -"following selection methods instead." -msgstr "" - #: ../Doc/library/tkinter.ttk.rst:1104 msgid "" "Using ``selection()`` for changing the selection state is deprecated. Use " diff --git a/library/unittest.po b/library/unittest.po index a2cf8b912..dfd74daba 100644 --- a/library/unittest.po +++ b/library/unittest.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2017-08-01 14:02+0200\n" "Last-Translator: \n" "Language-Team: \n" @@ -2793,5 +2793,5 @@ msgstr "" msgid "" "When called without arguments this function removes the control-c handler if " "it has been installed. This function can also be used as a test decorator to " -"temporarily remove the handler whilst the test is being executed::" +"temporarily remove the handler while the test is being executed::" msgstr "" diff --git a/library/venv.po b/library/venv.po index 94133b001..0eea2c246 100644 --- a/library/venv.po +++ b/library/venv.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,10 +64,11 @@ msgid "" "command was run. It also creates a ``bin`` (or ``Scripts`` on Windows) " "subdirectory containing a copy of the ``python`` binary (or binaries, in the " "case of Windows). It also creates an (initially empty) ``lib/pythonX.Y/site-" -"packages`` subdirectory (on Windows, this is ``Lib\\site-packages``)." +"packages`` subdirectory (on Windows, this is ``Lib\\site-packages``). If an " +"existing directory is specified, it will be re-used." msgstr "" -#: ../Doc/using/venv-create.inc:14 +#: ../Doc/using/venv-create.inc:15 msgid "" "``pyvenv`` was the recommended tool for creating virtual environments for " "Python 3.3 and 3.4, and is `deprecated in Python 3.6 `_." -#: ../Doc/using/venv-create.inc:19 +#: ../Doc/using/venv-create.inc:20 msgid "" "The use of ``venv`` is now recommended for creating virtual environments." msgstr "" "L'utilisation de ``venv`` est maintenant recommandée pour créer vos " "environnements virtuels." -#: ../Doc/using/venv-create.inc:24 +#: ../Doc/using/venv-create.inc:25 msgid "" "`Python Packaging User Guide: Creating and using virtual environments " "`__" @@ -93,122 +94,120 @@ msgstr "" "environnements virtuels `__" -#: ../Doc/using/venv-create.inc:29 +#: ../Doc/using/venv-create.inc:30 msgid "On Windows, invoke the ``venv`` command as follows::" msgstr "" -#: ../Doc/using/venv-create.inc:33 +#: ../Doc/using/venv-create.inc:34 msgid "" "Alternatively, if you configured the ``PATH`` and ``PATHEXT`` variables for " "your :ref:`Python installation `::" msgstr "" -#: ../Doc/using/venv-create.inc:38 +#: ../Doc/using/venv-create.inc:39 msgid "The command, if run with ``-h``, will show the available options::" msgstr "" -#: ../Doc/using/venv-create.inc:68 +#: ../Doc/using/venv-create.inc:69 msgid "" "Installs pip by default, added the ``--without-pip`` and ``--copies`` " "options" msgstr "" -#: ../Doc/using/venv-create.inc:72 +#: ../Doc/using/venv-create.inc:73 msgid "" "In earlier versions, if the target directory already existed, an error was " -"raised, unless the ``--clear`` or ``--upgrade`` option was provided. Now, if " -"an existing directory is specified, its contents are removed and the " -"directory is processed as if it had been newly created." +"raised, unless the ``--clear`` or ``--upgrade`` option was provided." msgstr "" -#: ../Doc/using/venv-create.inc:78 +#: ../Doc/using/venv-create.inc:77 msgid "" "The created ``pyvenv.cfg`` file also includes the ``include-system-site-" "packages`` key, set to ``true`` if ``venv`` is run with the ``--system-site-" "packages`` option, ``false`` otherwise." msgstr "" -#: ../Doc/using/venv-create.inc:82 +#: ../Doc/using/venv-create.inc:81 msgid "" "Unless the ``--without-pip`` option is given, :mod:`ensurepip` will be " "invoked to bootstrap ``pip`` into the virtual environment." msgstr "" -#: ../Doc/using/venv-create.inc:85 +#: ../Doc/using/venv-create.inc:84 msgid "" "Multiple paths can be given to ``venv``, in which case an identical virtual " "environment will be created, according to the given options, at each " "provided path." msgstr "" -#: ../Doc/using/venv-create.inc:89 +#: ../Doc/using/venv-create.inc:88 msgid "" "Once a virtual environment has been created, it can be \"activated\" using a " "script in the virtual environment's binary directory. The invocation of the " "script is platform-specific:" msgstr "" -#: ../Doc/using/venv-create.inc:94 +#: ../Doc/using/venv-create.inc:93 msgid "Platform" msgstr "Plateforme" -#: ../Doc/using/venv-create.inc:94 +#: ../Doc/using/venv-create.inc:93 msgid "Shell" msgstr "" -#: ../Doc/using/venv-create.inc:94 +#: ../Doc/using/venv-create.inc:93 msgid "Command to activate virtual environment" msgstr "Commande pour activer l'environnement virtuel" -#: ../Doc/using/venv-create.inc:96 +#: ../Doc/using/venv-create.inc:95 msgid "Posix" msgstr "Posix" -#: ../Doc/using/venv-create.inc:96 +#: ../Doc/using/venv-create.inc:95 msgid "bash/zsh" msgstr "bash/zsh" -#: ../Doc/using/venv-create.inc:96 +#: ../Doc/using/venv-create.inc:95 msgid "$ source /bin/activate" msgstr "$ source /bin/activate" -#: ../Doc/using/venv-create.inc:98 +#: ../Doc/using/venv-create.inc:97 msgid "fish" msgstr "fish" -#: ../Doc/using/venv-create.inc:98 +#: ../Doc/using/venv-create.inc:97 msgid "$ . /bin/activate.fish" msgstr "$ . /bin/activate.fish" -#: ../Doc/using/venv-create.inc:100 +#: ../Doc/using/venv-create.inc:99 msgid "csh/tcsh" msgstr "csh/tcsh" -#: ../Doc/using/venv-create.inc:100 +#: ../Doc/using/venv-create.inc:99 msgid "$ source /bin/activate.csh" msgstr "$ source /bin/activate.csh" -#: ../Doc/using/venv-create.inc:102 +#: ../Doc/using/venv-create.inc:101 msgid "Windows" msgstr "Windows" -#: ../Doc/using/venv-create.inc:102 +#: ../Doc/using/venv-create.inc:101 msgid "cmd.exe" msgstr "cmd.exe" -#: ../Doc/using/venv-create.inc:102 +#: ../Doc/using/venv-create.inc:101 msgid "C:\\\\> \\\\Scripts\\\\activate.bat" msgstr "" -#: ../Doc/using/venv-create.inc:104 +#: ../Doc/using/venv-create.inc:103 msgid "PowerShell" msgstr "PowerShell" -#: ../Doc/using/venv-create.inc:104 +#: ../Doc/using/venv-create.inc:103 msgid "PS C:\\\\> \\\\Scripts\\\\Activate.ps1" msgstr "" -#: ../Doc/using/venv-create.inc:107 +#: ../Doc/using/venv-create.inc:106 msgid "" "You don't specifically *need* to activate an environment; activation just " "prepends the virtual environment's binary directory to your path, so that " @@ -218,7 +217,7 @@ msgid "" "activating it, and run with the virtual environment's Python automatically." msgstr "" -#: ../Doc/using/venv-create.inc:114 +#: ../Doc/using/venv-create.inc:113 msgid "" "You can deactivate a virtual environment by typing \"deactivate\" in your " "shell. The exact mechanism is platform-specific: for example, the Bash " @@ -227,7 +226,7 @@ msgid "" "which are installed when the virtual environment is created." msgstr "" -#: ../Doc/using/venv-create.inc:120 +#: ../Doc/using/venv-create.inc:119 msgid "``fish`` and ``csh`` activation scripts." msgstr "" diff --git a/library/xml.etree.elementtree.po b/library/xml.etree.elementtree.po index 9c91b5401..6a770b334 100644 --- a/library/xml.etree.elementtree.po +++ b/library/xml.etree.elementtree.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -241,8 +241,8 @@ msgid "" "XML_namespace>`__, tags and attributes with prefixes in the form ``prefix:" "sometag`` get expanded to ``{uri}sometag`` where the *prefix* is replaced by " "the full *URI*. Also, if there is a `default namespace `__, that full URI gets prepended " -"to all of the non-prefixed tags." +"TR/xml-names/#defaulting>`__, that full URI gets prepended to all of the non-" +"prefixed tags." msgstr "" #: ../Doc/library/xml.etree.elementtree.rst:303 diff --git a/library/zipapp.po b/library/zipapp.po index f0c800d40..76770a147 100644 --- a/library/zipapp.po +++ b/library/zipapp.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -249,7 +249,11 @@ msgid "" "archive fits in memory::" msgstr "" -#: ../Doc/library/zipapp.rst:210 +#: ../Doc/library/zipapp.rst:214 +msgid "Specifying the Interpreter" +msgstr "" + +#: ../Doc/library/zipapp.rst:216 msgid "" "Note that if you specify an interpreter and then distribute your application " "archive, you need to ensure that the interpreter used is portable. The " @@ -257,7 +261,7 @@ msgid "" "but there are other issues to consider:" msgstr "" -#: ../Doc/library/zipapp.rst:215 +#: ../Doc/library/zipapp.rst:221 msgid "" "If you use \"/usr/bin/env python\" (or other forms of the \"python\" " "command, such as \"/usr/bin/python\"), you need to consider that your users " @@ -265,25 +269,196 @@ msgid "" "to work under both versions." msgstr "" -#: ../Doc/library/zipapp.rst:219 +#: ../Doc/library/zipapp.rst:225 msgid "" "If you use an explicit version, for example \"/usr/bin/env python3\" your " "application will not work for users who do not have that version. (This may " "be what you want if you have not made your code Python 2 compatible)." msgstr "" -#: ../Doc/library/zipapp.rst:222 +#: ../Doc/library/zipapp.rst:228 msgid "" "There is no way to say \"python X.Y or later\", so be careful of using an " "exact version like \"/usr/bin/env python3.4\" as you will need to change " "your shebang line for users of Python 3.5, for example." msgstr "" -#: ../Doc/library/zipapp.rst:227 +#: ../Doc/library/zipapp.rst:232 +msgid "" +"Typically, you should use an \"/usr/bin/env python2\" or \"/usr/bin/env " +"python3\", depending on whether your code is written for Python 2 or 3." +msgstr "" + +#: ../Doc/library/zipapp.rst:237 +msgid "Creating Standalone Applications with zipapp" +msgstr "" + +#: ../Doc/library/zipapp.rst:239 +msgid "" +"Using the :mod:`zipapp` module, it is possible to create self-contained " +"Python programs, which can be distributed to end users who only need to have " +"a suitable version of Python installed on their system. The key to doing " +"this is to bundle all of the application's dependencies into the archive, " +"along with the application code." +msgstr "" + +#: ../Doc/library/zipapp.rst:245 +msgid "The steps to create a standalone archive are as follows:" +msgstr "" + +#: ../Doc/library/zipapp.rst:247 +msgid "" +"Create your application in a directory as normal, so you have a ``myapp`` " +"directory containing a ``__main__.py`` file, and any supporting application " +"code." +msgstr "" + +#: ../Doc/library/zipapp.rst:251 +msgid "" +"Install all of your application's dependencies into the ``myapp`` directory, " +"using pip:" +msgstr "" + +#: ../Doc/library/zipapp.rst:258 +msgid "" +"(this assumes you have your project requirements in a ``requirements.txt`` " +"file - if not, you can just list the dependencies manually on the pip " +"command line)." +msgstr "" + +#: ../Doc/library/zipapp.rst:262 +msgid "" +"Optionally, delete the ``.dist-info`` directories created by pip in the " +"``myapp`` directory. These hold metadata for pip to manage the packages, and " +"as you won't be making any further use of pip they aren't required - " +"although it won't do any harm if you leave them." +msgstr "" + +#: ../Doc/library/zipapp.rst:267 +msgid "Package the application using:" +msgstr "" + +#: ../Doc/library/zipapp.rst:273 +msgid "" +"This will produce a standalone executable, which can be run on any machine " +"with the appropriate interpreter available. See :ref:`zipapp-specifying-the-" +"interpreter` for details. It can be shipped to users as a single file." +msgstr "" + +#: ../Doc/library/zipapp.rst:277 +msgid "" +"On Unix, the ``myapp.pyz`` file is executable as it stands. You can rename " +"the file to remove the ``.pyz`` extension if you prefer a \"plain\" command " +"name. On Windows, the ``myapp.pyz[w]`` file is executable by virtue of the " +"fact that the Python interpreter registers the ``.pyz`` and ``.pyzw`` file " +"extensions when installed." +msgstr "" + +#: ../Doc/library/zipapp.rst:285 +msgid "Making a Windows executable" +msgstr "" + +#: ../Doc/library/zipapp.rst:287 +msgid "" +"On Windows, registration of the ``.pyz`` extension is optional, and " +"furthermore, there are certain places that don't recognise registered " +"extensions \"transparently\" (the simplest example is that ``subprocess." +"run(['myapp'])`` won't find your application - you need to explicitly " +"specify the extension)." +msgstr "" + +#: ../Doc/library/zipapp.rst:293 +msgid "" +"On Windows, therefore, it is often preferable to create an executable from " +"the zipapp. This is relatively easy, although it does require a C " +"compiler. The basic approach relies on the fact that zipfiles can have " +"arbitrary data prepended, and Windows exe files can have arbitrary data " +"appended. So by creating a suitable launcher and tacking the ``.pyz`` file " +"onto the end of it, you end up with a single-file executable that runs your " +"application." +msgstr "" + +#: ../Doc/library/zipapp.rst:300 +msgid "A suitable launcher can be as simple as the following::" +msgstr "" + +#: ../Doc/library/zipapp.rst:325 +msgid "" +"If you define the ``WINDOWS`` preprocessor symbol, this will generate a GUI " +"executable, and without it, a console executable." +msgstr "" + +#: ../Doc/library/zipapp.rst:328 +msgid "" +"To compile the executable, you can either just use the standard MSVC command " +"line tools, or you can take advantage of the fact that distutils knows how " +"to compile Python source::" +msgstr "" + +#: ../Doc/library/zipapp.rst:355 +msgid "" +"The resulting launcher uses the \"Limited ABI\", so it will run unchanged " +"with any version of Python 3.x. All it needs is for Python (``python3." +"dll``) to be on the user's ``PATH``." +msgstr "" + +#: ../Doc/library/zipapp.rst:359 +msgid "" +"For a fully standalone distribution, you can distribute the launcher with " +"your application appended, bundled with the Python \"embedded\" " +"distribution. This will run on any PC with the appropriate architecture (32 " +"bit or 64 bit)." +msgstr "" + +#: ../Doc/library/zipapp.rst:365 +msgid "Caveats" +msgstr "" + +#: ../Doc/library/zipapp.rst:367 +msgid "" +"There are some limitations to the process of bundling your application into " +"a single file. In most, if not all, cases they can be addressed without " +"needing major changes to your application." +msgstr "" + +#: ../Doc/library/zipapp.rst:371 +msgid "" +"If your application depends on a package that includes a C extension, that " +"package cannot be run from a zip file (this is an OS limitation, as " +"executable code must be present in the filesystem for the OS loader to load " +"it). In this case, you can exclude that dependency from the zipfile, and " +"either require your users to have it installed, or ship it alongside your " +"zipfile and add code to your ``__main__.py`` to include the directory " +"containing the unzipped module in ``sys.path``. In this case, you will need " +"to make sure to ship appropriate binaries for your target architecture(s) " +"(and potentially pick the correct version to add to ``sys.path`` at runtime, " +"based on the user's machine)." +msgstr "" + +#: ../Doc/library/zipapp.rst:381 +msgid "" +"If you are shipping a Windows executable as described above, you either need " +"to ensure that your users have ``python3.dll`` on their PATH (which is not " +"the default behaviour of the installer) or you should bundle your " +"application with the embedded distribution." +msgstr "" + +#: ../Doc/library/zipapp.rst:386 +msgid "" +"The suggested launcher above uses the Python embedding API. This means that " +"in your application, ``sys.executable`` will be your application, and *not* " +"a conventional Python interpreter. Your code and its dependencies need to " +"be prepared for this possibility. For example, if your application uses " +"the :mod:`multiprocessing` module, it will need to call :func:" +"`multiprocessing.set_executable` to let the module know where to find the " +"standard Python interpreter." +msgstr "" + +#: ../Doc/library/zipapp.rst:396 msgid "The Python Zip Application Archive Format" msgstr "" -#: ../Doc/library/zipapp.rst:229 +#: ../Doc/library/zipapp.rst:398 msgid "" "Python has been able to execute zip files which contain a ``__main__.py`` " "file since version 2.6. In order to be executed by Python, an application " @@ -294,18 +469,18 @@ msgid "" "the zip file." msgstr "" -#: ../Doc/library/zipapp.rst:236 +#: ../Doc/library/zipapp.rst:405 msgid "" "The zip file format allows arbitrary data to be prepended to a zip file. " "The zip application format uses this ability to prepend a standard POSIX " "\"shebang\" line to the file (``#!/path/to/interpreter``)." msgstr "" -#: ../Doc/library/zipapp.rst:240 +#: ../Doc/library/zipapp.rst:409 msgid "Formally, the Python zip application format is therefore:" msgstr "" -#: ../Doc/library/zipapp.rst:242 +#: ../Doc/library/zipapp.rst:411 msgid "" "An optional shebang line, containing the characters ``b'#!'`` followed by an " "interpreter name, and then a newline (``b'\\n'``) character. The " @@ -315,7 +490,7 @@ msgid "" "POSIX." msgstr "" -#: ../Doc/library/zipapp.rst:247 +#: ../Doc/library/zipapp.rst:416 msgid "" "Standard zipfile data, as generated by the :mod:`zipfile` module. The " "zipfile content *must* include a file called ``__main__.py`` (which must be " @@ -323,13 +498,13 @@ msgid "" "zipfile data can be compressed or uncompressed." msgstr "" -#: ../Doc/library/zipapp.rst:252 +#: ../Doc/library/zipapp.rst:421 msgid "" "If an application archive has a shebang line, it may have the executable bit " "set on POSIX systems, to allow it to be executed directly." msgstr "" -#: ../Doc/library/zipapp.rst:255 +#: ../Doc/library/zipapp.rst:424 msgid "" "There is no requirement that the tools in this module are used to create " "application archives - the module is a convenience, but archives in the " diff --git a/library/zlib.po b/library/zlib.po index 3d847def4..76c4fa0ba 100644 --- a/library/zlib.po +++ b/library/zlib.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -74,12 +74,12 @@ msgstr "" msgid "" "Compresses the bytes in *data*, returning a bytes object containing " "compressed data. *level* is an integer from ``0`` to ``9`` or ``-1`` " -"controlling the level of compression; ``1`` is fastest and produces the " -"least compression, ``9`` is slowest and produces the most. ``0`` is no " -"compression. The default value is ``-1`` (Z_DEFAULT_COMPRESSION). " -"Z_DEFAULT_COMPRESSION represents a default compromise between speed and " -"compression (currently equivalent to level 6). Raises the :exc:`error` " -"exception if any error occurs." +"controlling the level of compression; ``1`` (Z_BEST_SPEED) is fastest and " +"produces the least compression, ``9`` (Z_BEST_COMPRESSION) is slowest and " +"produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default " +"value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a " +"default compromise between speed and compression (currently equivalent to " +"level 6). Raises the :exc:`error` exception if any error occurs." msgstr "" #: ../Doc/library/zlib.rst:60 @@ -95,27 +95,29 @@ msgstr "" #: ../Doc/library/zlib.rst:69 msgid "" "*level* is the compression level -- an integer from ``0`` to ``9`` or " -"``-1``. A value of ``1`` is fastest and produces the least compression, " -"while a value of ``9`` is slowest and produces the most. ``0`` is no " -"compression. The default value is ``-1`` (Z_DEFAULT_COMPRESSION). " -"Z_DEFAULT_COMPRESSION represents a default compromise between speed and " -"compression (currently equivalent to level 6)." +"``-1``. A value of ``1`` (Z_BEST_SPEED) is fastest and produces the least " +"compression, while a value of ``9`` (Z_BEST_COMPRESSION) is slowest and " +"produces the most. ``0`` (Z_NO_COMPRESSION) is no compression. The default " +"value is ``-1`` (Z_DEFAULT_COMPRESSION). Z_DEFAULT_COMPRESSION represents a " +"default compromise between speed and compression (currently equivalent to " +"level 6)." msgstr "" -#: ../Doc/library/zlib.rst:75 +#: ../Doc/library/zlib.rst:76 msgid "" "*method* is the compression algorithm. Currently, the only supported value " -"is ``DEFLATED``." +"is :const:`DEFLATED`." msgstr "" -#: ../Doc/library/zlib.rst:78 +#: ../Doc/library/zlib.rst:79 msgid "" "The *wbits* argument controls the size of the history buffer (or the " "\"window size\") used when compressing data, and whether a header and " -"trailer is included in the output. It can take several ranges of values:" +"trailer is included in the output. It can take several ranges of values, " +"defaulting to ``15`` (MAX_WBITS):" msgstr "" -#: ../Doc/library/zlib.rst:82 +#: ../Doc/library/zlib.rst:84 msgid "" "+9 to +15: The base-two logarithm of the window size, which therefore ranges " "between 512 and 32768. Larger values produce better compression at the " @@ -123,33 +125,34 @@ msgid "" "specific header and trailer." msgstr "" -#: ../Doc/library/zlib.rst:87 +#: ../Doc/library/zlib.rst:89 msgid "" "−9 to −15: Uses the absolute value of *wbits* as the window size logarithm, " "while producing a raw output stream with no header or trailing checksum." msgstr "" -#: ../Doc/library/zlib.rst:91 +#: ../Doc/library/zlib.rst:93 msgid "" "+25 to +31 = 16 + (9 to 15): Uses the low 4 bits of the value as the window " "size logarithm, while including a basic :program:`gzip` header and trailing " "checksum in the output." msgstr "" -#: ../Doc/library/zlib.rst:95 +#: ../Doc/library/zlib.rst:97 msgid "" "The *memLevel* argument controls the amount of memory used for the internal " "compression state. Valid values range from ``1`` to ``9``. Higher values use " "more memory, but are faster and produce smaller output." msgstr "" -#: ../Doc/library/zlib.rst:99 +#: ../Doc/library/zlib.rst:101 msgid "" -"*strategy* is used to tune the compression algorithm. Possible values are " -"``Z_DEFAULT_STRATEGY``, ``Z_FILTERED``, and ``Z_HUFFMAN_ONLY``." +"*strategy* is used to tune the compression algorithm. Possible values are :" +"const:`Z_DEFAULT_STRATEGY`, :const:`Z_FILTERED`, :const:`Z_HUFFMAN_ONLY`, :" +"const:`Z_RLE` (zlib 1.2.0.1) and :const:`Z_FIXED` (zlib 1.2.2.2)." msgstr "" -#: ../Doc/library/zlib.rst:102 +#: ../Doc/library/zlib.rst:105 msgid "" "*zdict* is a predefined compression dictionary. This is a sequence of bytes " "(such as a :class:`bytes` object) containing subsequences that are expected " @@ -157,11 +160,11 @@ msgid "" "that are expected to be most common should come at the end of the dictionary." msgstr "" -#: ../Doc/library/zlib.rst:107 +#: ../Doc/library/zlib.rst:110 msgid "Added the *zdict* parameter and keyword argument support." msgstr "" -#: ../Doc/library/zlib.rst:117 +#: ../Doc/library/zlib.rst:120 msgid "" "Computes a CRC (Cyclic Redundancy Check) checksum of *data*. The result is " "an unsigned 32-bit integer. If *value* is present, it is used as the " @@ -173,13 +176,13 @@ msgid "" "suitable for use as a general hash algorithm." msgstr "" -#: ../Doc/library/zlib.rst:126 +#: ../Doc/library/zlib.rst:129 msgid "" "Always returns an unsigned value. To generate the same numeric value across " "all Python versions and platforms, use ``crc32(data) & 0xffffffff``." msgstr "" -#: ../Doc/library/zlib.rst:134 +#: ../Doc/library/zlib.rst:137 msgid "" "Decompresses the bytes in *data*, returning a bytes object containing the " "uncompressed data. The *wbits* parameter depends on the format of *data*, " @@ -188,44 +191,44 @@ msgid "" "error occurs." msgstr "" -#: ../Doc/library/zlib.rst:142 +#: ../Doc/library/zlib.rst:145 msgid "" "The *wbits* parameter controls the size of the history buffer (or \"window " "size\"), and what header and trailer format is expected. It is similar to " "the parameter for :func:`compressobj`, but accepts more ranges of values:" msgstr "" -#: ../Doc/library/zlib.rst:147 +#: ../Doc/library/zlib.rst:150 msgid "" "+8 to +15: The base-two logarithm of the window size. The input must " "include a zlib header and trailer." msgstr "" -#: ../Doc/library/zlib.rst:150 +#: ../Doc/library/zlib.rst:153 msgid "" "0: Automatically determine the window size from the zlib header. Only " "supported since zlib 1.2.3.5." msgstr "" -#: ../Doc/library/zlib.rst:153 +#: ../Doc/library/zlib.rst:156 msgid "" "−8 to −15: Uses the absolute value of *wbits* as the window size logarithm. " "The input must be a raw stream with no header or trailer." msgstr "" -#: ../Doc/library/zlib.rst:156 +#: ../Doc/library/zlib.rst:159 msgid "" "+24 to +31 = 16 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm. The input must include a gzip header and trailer." msgstr "" -#: ../Doc/library/zlib.rst:160 +#: ../Doc/library/zlib.rst:163 msgid "" "+40 to +47 = 32 + (8 to 15): Uses the low 4 bits of the value as the window " "size logarithm, and automatically accepts either the zlib or gzip format." msgstr "" -#: ../Doc/library/zlib.rst:164 +#: ../Doc/library/zlib.rst:167 msgid "" "When decompressing a stream, the window size must not be smaller than the " "size originally used to compress the stream; using a too-small value may " @@ -234,7 +237,7 @@ msgid "" "included." msgstr "" -#: ../Doc/library/zlib.rst:170 +#: ../Doc/library/zlib.rst:173 msgid "" "*bufsize* is the initial size of the buffer used to hold decompressed data. " "If more space is required, the buffer size will be increased as needed, so " @@ -242,46 +245,46 @@ msgid "" "few calls to :c:func:`malloc`." msgstr "" -#: ../Doc/library/zlib.rst:175 +#: ../Doc/library/zlib.rst:178 msgid "*wbits* and *bufsize* can be used as keyword arguments." msgstr "" -#: ../Doc/library/zlib.rst:180 +#: ../Doc/library/zlib.rst:183 msgid "" "Returns a decompression object, to be used for decompressing data streams " "that won't fit into memory at once." msgstr "" -#: ../Doc/library/zlib.rst:183 +#: ../Doc/library/zlib.rst:186 msgid "" "The *wbits* parameter controls the size of the history buffer (or the " "\"window size\"), and what header and trailer format is expected. It has " "the same meaning as `described for decompress() <#decompress-wbits>`__." msgstr "" -#: ../Doc/library/zlib.rst:187 +#: ../Doc/library/zlib.rst:190 msgid "" "The *zdict* parameter specifies a predefined compression dictionary. If " "provided, this must be the same dictionary as was used by the compressor " "that produced the data that is to be decompressed." msgstr "" -#: ../Doc/library/zlib.rst:193 +#: ../Doc/library/zlib.rst:196 msgid "" "If *zdict* is a mutable object (such as a :class:`bytearray`), you must not " "modify its contents between the call to :func:`decompressobj` and the first " "call to the decompressor's ``decompress()`` method." msgstr "" -#: ../Doc/library/zlib.rst:197 +#: ../Doc/library/zlib.rst:200 msgid "Added the *zdict* parameter." msgstr "" -#: ../Doc/library/zlib.rst:201 +#: ../Doc/library/zlib.rst:204 msgid "Compression objects support the following methods:" msgstr "" -#: ../Doc/library/zlib.rst:206 +#: ../Doc/library/zlib.rst:209 msgid "" "Compress *data*, returning a bytes object containing compressed data for at " "least part of the data in *data*. This data should be concatenated to the " @@ -289,30 +292,31 @@ msgid "" "input may be kept in internal buffers for later processing." msgstr "" -#: ../Doc/library/zlib.rst:214 +#: ../Doc/library/zlib.rst:217 msgid "" "All pending input is processed, and a bytes object containing the remaining " "compressed output is returned. *mode* can be selected from the constants :" -"const:`Z_SYNC_FLUSH`, :const:`Z_FULL_FLUSH`, or :const:`Z_FINISH`, " -"defaulting to :const:`Z_FINISH`. :const:`Z_SYNC_FLUSH` and :const:" -"`Z_FULL_FLUSH` allow compressing further bytestrings of data, while :const:" -"`Z_FINISH` finishes the compressed stream and prevents compressing any more " -"data. After calling :meth:`flush` with *mode* set to :const:`Z_FINISH`, " -"the :meth:`compress` method cannot be called again; the only realistic " -"action is to delete the object." +"const:`Z_NO_FLUSH`, :const:`Z_PARTIAL_FLUSH`, :const:`Z_SYNC_FLUSH`, :const:" +"`Z_FULL_FLUSH`, :const:`Z_BLOCK` (zlib 1.2.3.4), or :const:`Z_FINISH`, " +"defaulting to :const:`Z_FINISH`. Except :const:`Z_FINISH`, all constants " +"allow compressing further bytestrings of data, while :const:`Z_FINISH` " +"finishes the compressed stream and prevents compressing any more data. " +"After calling :meth:`flush` with *mode* set to :const:`Z_FINISH`, the :meth:" +"`compress` method cannot be called again; the only realistic action is to " +"delete the object." msgstr "" -#: ../Doc/library/zlib.rst:227 +#: ../Doc/library/zlib.rst:230 msgid "" "Returns a copy of the compression object. This can be used to efficiently " "compress a set of data that share a common initial prefix." msgstr "" -#: ../Doc/library/zlib.rst:231 +#: ../Doc/library/zlib.rst:234 msgid "Decompression objects support the following methods and attributes:" msgstr "" -#: ../Doc/library/zlib.rst:236 +#: ../Doc/library/zlib.rst:239 msgid "" "A bytes object which contains any bytes past the end of the compressed data. " "That is, this remains ``b\"\"`` until the last byte that contains " @@ -320,7 +324,7 @@ msgid "" "contain compressed data, this is ``b\"\"``, an empty bytes object." msgstr "" -#: ../Doc/library/zlib.rst:244 +#: ../Doc/library/zlib.rst:247 msgid "" "A bytes object that contains any data that was not consumed by the last :" "meth:`decompress` call because it exceeded the limit for the uncompressed " @@ -329,19 +333,19 @@ msgid "" "subsequent :meth:`decompress` method call in order to get correct output." msgstr "" -#: ../Doc/library/zlib.rst:253 +#: ../Doc/library/zlib.rst:256 msgid "" "A boolean indicating whether the end of the compressed data stream has been " "reached." msgstr "" -#: ../Doc/library/zlib.rst:256 +#: ../Doc/library/zlib.rst:259 msgid "" "This makes it possible to distinguish between a properly-formed compressed " "stream, and an incomplete or truncated one." msgstr "" -#: ../Doc/library/zlib.rst:264 +#: ../Doc/library/zlib.rst:267 msgid "" "Decompress *data*, returning a bytes object containing the uncompressed data " "corresponding to at least part of the data in *string*. This data should be " @@ -350,7 +354,7 @@ msgid "" "buffers for later processing." msgstr "" -#: ../Doc/library/zlib.rst:270 +#: ../Doc/library/zlib.rst:273 msgid "" "If the optional parameter *max_length* is non-zero then the return value " "will be no longer than *max_length*. This may mean that not all of the " @@ -361,11 +365,11 @@ msgid "" "`unconsumed_tail` is empty." msgstr "" -#: ../Doc/library/zlib.rst:277 +#: ../Doc/library/zlib.rst:280 msgid "*max_length* can be used as a keyword argument." msgstr "" -#: ../Doc/library/zlib.rst:283 +#: ../Doc/library/zlib.rst:286 msgid "" "All pending input is processed, and a bytes object containing the remaining " "uncompressed output is returned. After calling :meth:`flush`, the :meth:" @@ -373,57 +377,57 @@ msgid "" "delete the object." msgstr "" -#: ../Doc/library/zlib.rst:288 +#: ../Doc/library/zlib.rst:291 msgid "" "The optional parameter *length* sets the initial size of the output buffer." msgstr "" -#: ../Doc/library/zlib.rst:293 +#: ../Doc/library/zlib.rst:296 msgid "" "Returns a copy of the decompression object. This can be used to save the " "state of the decompressor midway through the data stream in order to speed " "up random seeks into the stream at a future point." msgstr "" -#: ../Doc/library/zlib.rst:298 +#: ../Doc/library/zlib.rst:301 msgid "" "Information about the version of the zlib library in use is available " "through the following constants:" msgstr "" -#: ../Doc/library/zlib.rst:304 +#: ../Doc/library/zlib.rst:307 msgid "" "The version string of the zlib library that was used for building the " "module. This may be different from the zlib library actually used at " "runtime, which is available as :const:`ZLIB_RUNTIME_VERSION`." msgstr "" -#: ../Doc/library/zlib.rst:311 +#: ../Doc/library/zlib.rst:314 msgid "" "The version string of the zlib library actually loaded by the interpreter." msgstr "" -#: ../Doc/library/zlib.rst:319 +#: ../Doc/library/zlib.rst:322 msgid "Module :mod:`gzip`" msgstr "" -#: ../Doc/library/zlib.rst:319 +#: ../Doc/library/zlib.rst:322 msgid "Reading and writing :program:`gzip`\\ -format files." msgstr "" -#: ../Doc/library/zlib.rst:322 +#: ../Doc/library/zlib.rst:325 msgid "http://www.zlib.net" msgstr "" -#: ../Doc/library/zlib.rst:322 +#: ../Doc/library/zlib.rst:325 msgid "The zlib library home page." msgstr "" -#: ../Doc/library/zlib.rst:325 +#: ../Doc/library/zlib.rst:328 msgid "http://www.zlib.net/manual.html" msgstr "" -#: ../Doc/library/zlib.rst:325 +#: ../Doc/library/zlib.rst:328 msgid "" "The zlib manual explains the semantics and usage of the library's many " "functions." diff --git a/reference/datamodel.po b/reference/datamodel.po index 7c0aacf67..cbe6be7aa 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-15 00:51+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -1920,21 +1920,16 @@ msgstr "__slots__" #: ../Doc/reference/datamodel.rst:1656 msgid "" -"By default, instances of classes have a dictionary for attribute storage. " -"This wastes space for objects having very few instance variables. The space " -"consumption can become acute when creating large numbers of instances." +"*__slots__* allow us to explicitly declare data members (like properties) " +"and deny the creation of *__dict__* and *__weakref__* (unless explicitly " +"declared in *__slots__* or available in a parent.)" msgstr "" #: ../Doc/reference/datamodel.rst:1660 -msgid "" -"The default can be overridden by defining *__slots__* in a class definition. " -"The *__slots__* declaration takes a sequence of instance variables and " -"reserves just enough space in each instance to hold a value for each " -"variable. Space is saved because *__dict__* is not created for each " -"instance." +msgid "The space saved over using *__dict__* can be significant." msgstr "" -#: ../Doc/reference/datamodel.rst:1668 +#: ../Doc/reference/datamodel.rst:1664 msgid "" "This class variable can be assigned a string, iterable, or sequence of " "strings with variable names used by instances. *__slots__* reserves space " @@ -1942,18 +1937,17 @@ msgid "" "and *__weakref__* for each instance." msgstr "" -#: ../Doc/reference/datamodel.rst:1675 +#: ../Doc/reference/datamodel.rst:1671 msgid "Notes on using *__slots__*" msgstr "" -#: ../Doc/reference/datamodel.rst:1677 +#: ../Doc/reference/datamodel.rst:1673 msgid "" -"When inheriting from a class without *__slots__*, the *__dict__* attribute " -"of that class will always be accessible, so a *__slots__* definition in the " -"subclass is meaningless." +"When inheriting from a class without *__slots__*, the *__dict__* and " +"*__weakref__* attribute of the instances will always be accessible." msgstr "" -#: ../Doc/reference/datamodel.rst:1681 +#: ../Doc/reference/datamodel.rst:1676 msgid "" "Without a *__dict__* variable, instances cannot be assigned new variables " "not listed in the *__slots__* definition. Attempts to assign to an unlisted " @@ -1962,7 +1956,7 @@ msgid "" "the *__slots__* declaration." msgstr "" -#: ../Doc/reference/datamodel.rst:1687 +#: ../Doc/reference/datamodel.rst:1682 msgid "" "Without a *__weakref__* variable for each instance, classes defining " "*__slots__* do not support weak references to its instances. If weak " @@ -1970,7 +1964,7 @@ msgid "" "strings in the *__slots__* declaration." msgstr "" -#: ../Doc/reference/datamodel.rst:1692 +#: ../Doc/reference/datamodel.rst:1687 msgid "" "*__slots__* are implemented at the class level by creating descriptors (:ref:" "`descriptors`) for each variable name. As a result, class attributes cannot " @@ -1978,14 +1972,16 @@ msgid "" "otherwise, the class attribute would overwrite the descriptor assignment." msgstr "" -#: ../Doc/reference/datamodel.rst:1698 +#: ../Doc/reference/datamodel.rst:1693 msgid "" -"The action of a *__slots__* declaration is limited to the class where it is " -"defined. As a result, subclasses will have a *__dict__* unless they also " -"define *__slots__* (which must only contain names of any *additional* slots)." +"The action of a *__slots__* declaration is not limited to the class where it " +"is defined. *__slots__* declared in parents are available in child classes. " +"However, child subclasses will get a *__dict__* and *__weakref__* unless " +"they also define *__slots__* (which should only contain names of any " +"*additional* slots)." msgstr "" -#: ../Doc/reference/datamodel.rst:1702 +#: ../Doc/reference/datamodel.rst:1699 msgid "" "If a class defines a slot also defined in a base class, the instance " "variable defined by the base class slot is inaccessible (except by " @@ -1994,29 +1990,36 @@ msgid "" "prevent this." msgstr "" -#: ../Doc/reference/datamodel.rst:1707 +#: ../Doc/reference/datamodel.rst:1704 msgid "" "Nonempty *__slots__* does not work for classes derived from \"variable-length" "\" built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`." msgstr "" -#: ../Doc/reference/datamodel.rst:1710 +#: ../Doc/reference/datamodel.rst:1707 msgid "" "Any non-string iterable may be assigned to *__slots__*. Mappings may also be " "used; however, in the future, special meaning may be assigned to the values " "corresponding to each key." msgstr "" -#: ../Doc/reference/datamodel.rst:1714 +#: ../Doc/reference/datamodel.rst:1711 msgid "" "*__class__* assignment works only if both classes have the same *__slots__*." msgstr "" -#: ../Doc/reference/datamodel.rst:1720 +#: ../Doc/reference/datamodel.rst:1713 +msgid "" +"Multiple inheritance with multiple slotted parent classes can be used, but " +"only one parent is allowed to have attributes created by slots (the other " +"bases must have empty slot layouts) - violations raise :exc:`TypeError`." +msgstr "" + +#: ../Doc/reference/datamodel.rst:1721 msgid "Customizing class creation" msgstr "" -#: ../Doc/reference/datamodel.rst:1722 +#: ../Doc/reference/datamodel.rst:1723 msgid "" "Whenever a class inherits from another class, *__init_subclass__* is called " "on that class. This way, it is possible to write classes which change the " @@ -2026,14 +2029,14 @@ msgid "" "defining the method." msgstr "" -#: ../Doc/reference/datamodel.rst:1731 +#: ../Doc/reference/datamodel.rst:1732 msgid "" "This method is called whenever the containing class is subclassed. *cls* is " "then the new subclass. If defined as a normal instance method, this method " "is implicitly converted to a class method." msgstr "" -#: ../Doc/reference/datamodel.rst:1735 +#: ../Doc/reference/datamodel.rst:1736 msgid "" "Keyword arguments which are given to a new class are passed to the parent's " "class ``__init_subclass__``. For compatibility with other classes using " @@ -2041,13 +2044,13 @@ msgid "" "pass the others over to the base class, as in::" msgstr "" -#: ../Doc/reference/datamodel.rst:1749 +#: ../Doc/reference/datamodel.rst:1750 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." msgstr "" -#: ../Doc/reference/datamodel.rst:1754 +#: ../Doc/reference/datamodel.rst:1755 msgid "" "The metaclass hint ``metaclass`` is consumed by the rest of the type " "machinery, and is never passed to ``__init_subclass__`` implementations. The " @@ -2055,18 +2058,18 @@ msgid "" "``type(cls)``." msgstr "" -#: ../Doc/reference/datamodel.rst:1765 +#: ../Doc/reference/datamodel.rst:1766 msgid "Metaclasses" msgstr "" -#: ../Doc/reference/datamodel.rst:1771 +#: ../Doc/reference/datamodel.rst:1772 msgid "" "By default, classes are constructed using :func:`type`. The class body is " "executed in a new namespace and the class name is bound locally to the " "result of ``type(name, bases, namespace)``." msgstr "" -#: ../Doc/reference/datamodel.rst:1775 +#: ../Doc/reference/datamodel.rst:1776 msgid "" "The class creation process can be customized by passing the ``metaclass`` " "keyword argument in the class definition line, or by inheriting from an " @@ -2074,59 +2077,59 @@ msgid "" "both ``MyClass`` and ``MySubclass`` are instances of ``Meta``::" msgstr "" -#: ../Doc/reference/datamodel.rst:1789 +#: ../Doc/reference/datamodel.rst:1790 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." msgstr "" -#: ../Doc/reference/datamodel.rst:1792 +#: ../Doc/reference/datamodel.rst:1793 msgid "When a class definition is executed, the following steps occur:" msgstr "" -#: ../Doc/reference/datamodel.rst:1794 +#: ../Doc/reference/datamodel.rst:1795 msgid "the appropriate metaclass is determined" msgstr "" -#: ../Doc/reference/datamodel.rst:1795 +#: ../Doc/reference/datamodel.rst:1796 msgid "the class namespace is prepared" msgstr "" -#: ../Doc/reference/datamodel.rst:1796 +#: ../Doc/reference/datamodel.rst:1797 msgid "the class body is executed" msgstr "" -#: ../Doc/reference/datamodel.rst:1797 +#: ../Doc/reference/datamodel.rst:1798 msgid "the class object is created" msgstr "" -#: ../Doc/reference/datamodel.rst:1800 +#: ../Doc/reference/datamodel.rst:1801 msgid "Determining the appropriate metaclass" msgstr "" -#: ../Doc/reference/datamodel.rst:1804 +#: ../Doc/reference/datamodel.rst:1805 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "" -#: ../Doc/reference/datamodel.rst:1806 +#: ../Doc/reference/datamodel.rst:1807 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used" msgstr "" -#: ../Doc/reference/datamodel.rst:1807 +#: ../Doc/reference/datamodel.rst:1808 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" "`type`, then it is used directly as the metaclass" msgstr "" -#: ../Doc/reference/datamodel.rst:1809 +#: ../Doc/reference/datamodel.rst:1810 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used" msgstr "" -#: ../Doc/reference/datamodel.rst:1812 +#: ../Doc/reference/datamodel.rst:1813 msgid "" "The most derived metaclass is selected from the explicitly specified " "metaclass (if any) and the metaclasses (i.e. ``type(cls)``) of all specified " @@ -2135,11 +2138,11 @@ msgid "" "that criterion, then the class definition will fail with ``TypeError``." msgstr "" -#: ../Doc/reference/datamodel.rst:1822 +#: ../Doc/reference/datamodel.rst:1823 msgid "Preparing the class namespace" msgstr "" -#: ../Doc/reference/datamodel.rst:1827 +#: ../Doc/reference/datamodel.rst:1828 msgid "" "Once the appropriate metaclass has been identified, then the class namespace " "is prepared. If the metaclass has a ``__prepare__`` attribute, it is called " @@ -2147,25 +2150,25 @@ msgid "" "additional keyword arguments, if any, come from the class definition)." msgstr "" -#: ../Doc/reference/datamodel.rst:1832 +#: ../Doc/reference/datamodel.rst:1833 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." msgstr "" -#: ../Doc/reference/datamodel.rst:1837 +#: ../Doc/reference/datamodel.rst:1838 msgid ":pep:`3115` - Metaclasses in Python 3000" msgstr "" -#: ../Doc/reference/datamodel.rst:1838 +#: ../Doc/reference/datamodel.rst:1839 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" -#: ../Doc/reference/datamodel.rst:1842 +#: ../Doc/reference/datamodel.rst:1843 msgid "Executing the class body" msgstr "" -#: ../Doc/reference/datamodel.rst:1847 +#: ../Doc/reference/datamodel.rst:1848 msgid "" "The class body is executed (approximately) as ``exec(body, globals(), " "namespace)``. The key difference from a normal call to :func:`exec` is that " @@ -2174,7 +2177,7 @@ msgid "" "inside a function." msgstr "" -#: ../Doc/reference/datamodel.rst:1853 +#: ../Doc/reference/datamodel.rst:1854 msgid "" "However, even when the class definition occurs inside the function, methods " "defined inside the class still cannot see names defined at the class scope. " @@ -2183,11 +2186,11 @@ msgid "" "reference described in the next section." msgstr "" -#: ../Doc/reference/datamodel.rst:1862 +#: ../Doc/reference/datamodel.rst:1863 msgid "Creating the class object" msgstr "" -#: ../Doc/reference/datamodel.rst:1869 +#: ../Doc/reference/datamodel.rst:1870 msgid "" "Once the class namespace has been populated by executing the class body, the " "class object is created by calling ``metaclass(name, bases, namespace, " @@ -2195,7 +2198,7 @@ msgid "" "to ``__prepare__``)." msgstr "" -#: ../Doc/reference/datamodel.rst:1874 +#: ../Doc/reference/datamodel.rst:1875 msgid "" "This class object is the one that will be referenced by the zero-argument " "form of :func:`super`. ``__class__`` is an implicit closure reference " @@ -2206,7 +2209,7 @@ msgid "" "is identified based on the first argument passed to the method." msgstr "" -#: ../Doc/reference/datamodel.rst:1884 +#: ../Doc/reference/datamodel.rst:1885 msgid "" "In CPython 3.6 and later, the ``__class__`` cell is passed to the metaclass " "as a ``__classcell__`` entry in the class namespace. If present, this must " @@ -2216,39 +2219,39 @@ msgid "" "future." msgstr "" -#: ../Doc/reference/datamodel.rst:1891 +#: ../Doc/reference/datamodel.rst:1892 msgid "" "When using the default metaclass :class:`type`, or any metaclass that " "ultimately calls ``type.__new__``, the following additional customisation " "steps are invoked after creating the class object:" msgstr "" -#: ../Doc/reference/datamodel.rst:1895 +#: ../Doc/reference/datamodel.rst:1896 msgid "" "first, ``type.__new__`` collects all of the descriptors in the class " "namespace that define a :meth:`~object.__set_name__` method;" msgstr "" -#: ../Doc/reference/datamodel.rst:1897 +#: ../Doc/reference/datamodel.rst:1898 msgid "" "second, all of these ``__set_name__`` methods are called with the class " "being defined and the assigned name of that particular descriptor; and" msgstr "" -#: ../Doc/reference/datamodel.rst:1899 +#: ../Doc/reference/datamodel.rst:1900 msgid "" "finally, the :meth:`~object.__init_subclass__` hook is called on the " "immediate parent of the new class in its method resolution order." msgstr "" -#: ../Doc/reference/datamodel.rst:1902 +#: ../Doc/reference/datamodel.rst:1903 msgid "" "After the class object is created, it is passed to the class decorators " "included in the class definition (if any) and the resulting object is bound " "in the local namespace as the defined class." msgstr "" -#: ../Doc/reference/datamodel.rst:1906 +#: ../Doc/reference/datamodel.rst:1907 msgid "" "When a new class is created by ``type.__new__``, the object provided as the " "namespace parameter is copied to a new ordered mapping and the original " @@ -2256,19 +2259,19 @@ msgid "" "becomes the :attr:`~object.__dict__` attribute of the class object." msgstr "" -#: ../Doc/reference/datamodel.rst:1913 +#: ../Doc/reference/datamodel.rst:1914 msgid ":pep:`3135` - New super" msgstr "" -#: ../Doc/reference/datamodel.rst:1914 +#: ../Doc/reference/datamodel.rst:1915 msgid "Describes the implicit ``__class__`` closure reference" msgstr "" -#: ../Doc/reference/datamodel.rst:1918 +#: ../Doc/reference/datamodel.rst:1919 msgid "Metaclass example" msgstr "" -#: ../Doc/reference/datamodel.rst:1920 +#: ../Doc/reference/datamodel.rst:1921 msgid "" "The potential uses for metaclasses are boundless. Some ideas that have been " "explored include enum, logging, interface checking, automatic delegation, " @@ -2276,13 +2279,13 @@ msgid "" "locking/synchronization." msgstr "" -#: ../Doc/reference/datamodel.rst:1925 +#: ../Doc/reference/datamodel.rst:1926 msgid "" "Here is an example of a metaclass that uses an :class:`collections." "OrderedDict` to remember the order that class variables are defined::" msgstr "" -#: ../Doc/reference/datamodel.rst:1948 +#: ../Doc/reference/datamodel.rst:1949 msgid "" "When the class definition for *A* gets executed, the process begins with " "calling the metaclass's :meth:`__prepare__` method which returns an empty :" @@ -2294,17 +2297,17 @@ msgid "" "an attribute called ``members``." msgstr "" -#: ../Doc/reference/datamodel.rst:1959 +#: ../Doc/reference/datamodel.rst:1960 msgid "Customizing instance and subclass checks" msgstr "" -#: ../Doc/reference/datamodel.rst:1961 +#: ../Doc/reference/datamodel.rst:1962 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." msgstr "" -#: ../Doc/reference/datamodel.rst:1964 +#: ../Doc/reference/datamodel.rst:1965 msgid "" "In particular, the metaclass :class:`abc.ABCMeta` implements these methods " "in order to allow the addition of Abstract Base Classes (ABCs) as \"virtual " @@ -2312,21 +2315,21 @@ msgid "" "other ABCs." msgstr "" -#: ../Doc/reference/datamodel.rst:1971 +#: ../Doc/reference/datamodel.rst:1972 msgid "" "Return true if *instance* should be considered a (direct or indirect) " "instance of *class*. If defined, called to implement ``isinstance(instance, " "class)``." msgstr "" -#: ../Doc/reference/datamodel.rst:1978 +#: ../Doc/reference/datamodel.rst:1979 msgid "" "Return true if *subclass* should be considered a (direct or indirect) " "subclass of *class*. If defined, called to implement ``issubclass(subclass, " "class)``." msgstr "" -#: ../Doc/reference/datamodel.rst:1983 +#: ../Doc/reference/datamodel.rst:1984 msgid "" "Note that these methods are looked up on the type (metaclass) of a class. " "They cannot be defined as class methods in the actual class. This is " @@ -2334,11 +2337,11 @@ msgid "" "only in this case the instance is itself a class." msgstr "" -#: ../Doc/reference/datamodel.rst:1994 +#: ../Doc/reference/datamodel.rst:1995 msgid ":pep:`3119` - Introducing Abstract Base Classes" msgstr "" -#: ../Doc/reference/datamodel.rst:1991 +#: ../Doc/reference/datamodel.rst:1992 msgid "" "Includes the specification for customizing :func:`isinstance` and :func:" "`issubclass` behavior through :meth:`~class.__instancecheck__` and :meth:" @@ -2347,22 +2350,22 @@ msgid "" "language." msgstr "" -#: ../Doc/reference/datamodel.rst:2001 +#: ../Doc/reference/datamodel.rst:2002 msgid "Emulating callable objects" msgstr "" -#: ../Doc/reference/datamodel.rst:2008 +#: ../Doc/reference/datamodel.rst:2009 msgid "" "Called when the instance is \"called\" as a function; if this method is " "defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " "arg2, ...)``." msgstr "" -#: ../Doc/reference/datamodel.rst:2015 +#: ../Doc/reference/datamodel.rst:2016 msgid "Emulating container types" msgstr "" -#: ../Doc/reference/datamodel.rst:2017 +#: ../Doc/reference/datamodel.rst:2018 msgid "" "The following methods can be defined to implement container objects. " "Containers usually are sequences (such as lists or tuples) or mappings (like " @@ -2395,7 +2398,7 @@ msgid "" "iterate through the values." msgstr "" -#: ../Doc/reference/datamodel.rst:2052 +#: ../Doc/reference/datamodel.rst:2053 msgid "" "Called to implement the built-in function :func:`len`. Should return the " "length of the object, an integer ``>=`` 0. Also, an object that doesn't " @@ -2403,7 +2406,7 @@ msgid "" "zero is considered to be false in a Boolean context." msgstr "" -#: ../Doc/reference/datamodel.rst:2059 +#: ../Doc/reference/datamodel.rst:2060 msgid "" "In CPython, the length is required to be at most :attr:`sys.maxsize`. If the " "length is larger than :attr:`!sys.maxsize` some features (such as :func:" @@ -2412,7 +2415,7 @@ msgid "" "`__bool__` method." msgstr "" -#: ../Doc/reference/datamodel.rst:2068 +#: ../Doc/reference/datamodel.rst:2069 msgid "" "Called to implement :func:`operator.length_hint`. Should return an estimated " "length for the object (which may be greater or less than the actual length). " @@ -2420,20 +2423,20 @@ msgid "" "optimization and is never required for correctness." msgstr "" -#: ../Doc/reference/datamodel.rst:2078 +#: ../Doc/reference/datamodel.rst:2079 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" -#: ../Doc/reference/datamodel.rst:2082 +#: ../Doc/reference/datamodel.rst:2083 msgid "is translated to ::" msgstr "" -#: ../Doc/reference/datamodel.rst:2086 +#: ../Doc/reference/datamodel.rst:2087 msgid "and so forth. Missing slice items are always filled in with ``None``." msgstr "" -#: ../Doc/reference/datamodel.rst:2093 +#: ../Doc/reference/datamodel.rst:2094 msgid "" "Called to implement evaluation of ``self[key]``. For sequence types, the " "accepted keys should be integers and slice objects. Note that the special " @@ -2445,19 +2448,19 @@ msgid "" "*key* is missing (not in the container), :exc:`KeyError` should be raised." msgstr "" -#: ../Doc/reference/datamodel.rst:2104 +#: ../Doc/reference/datamodel.rst:2105 msgid "" ":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " "illegal indexes to allow proper detection of the end of the sequence." msgstr "" -#: ../Doc/reference/datamodel.rst:2110 +#: ../Doc/reference/datamodel.rst:2111 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." msgstr "" -#: ../Doc/reference/datamodel.rst:2116 +#: ../Doc/reference/datamodel.rst:2117 msgid "" "Called to implement assignment to ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -2466,7 +2469,7 @@ msgid "" "for improper *key* values as for the :meth:`__getitem__` method." msgstr "" -#: ../Doc/reference/datamodel.rst:2125 +#: ../Doc/reference/datamodel.rst:2126 msgid "" "Called to implement deletion of ``self[key]``. Same note as for :meth:" "`__getitem__`. This should only be implemented for mappings if the objects " @@ -2475,7 +2478,7 @@ msgid "" "values as for the :meth:`__getitem__` method." msgstr "" -#: ../Doc/reference/datamodel.rst:2134 +#: ../Doc/reference/datamodel.rst:2135 msgid "" "This method is called when an iterator is required for a container. This " "method should return a new iterator object that can iterate over all the " @@ -2483,21 +2486,21 @@ msgid "" "the container." msgstr "" -#: ../Doc/reference/datamodel.rst:2138 +#: ../Doc/reference/datamodel.rst:2139 msgid "" "Iterator objects also need to implement this method; they are required to " "return themselves. For more information on iterator objects, see :ref:" "`typeiter`." msgstr "" -#: ../Doc/reference/datamodel.rst:2144 +#: ../Doc/reference/datamodel.rst:2145 msgid "" "Called (if present) by the :func:`reversed` built-in to implement reverse " "iteration. It should return a new iterator object that iterates over all " "the objects in the container in reverse order." msgstr "" -#: ../Doc/reference/datamodel.rst:2148 +#: ../Doc/reference/datamodel.rst:2149 msgid "" "If the :meth:`__reversed__` method is not provided, the :func:`reversed` " "built-in will fall back to using the sequence protocol (:meth:`__len__` and :" @@ -2506,7 +2509,7 @@ msgid "" "more efficient than the one provided by :func:`reversed`." msgstr "" -#: ../Doc/reference/datamodel.rst:2155 +#: ../Doc/reference/datamodel.rst:2156 msgid "" "The membership test operators (:keyword:`in` and :keyword:`not in`) are " "normally implemented as an iteration through a sequence. However, container " @@ -2514,14 +2517,14 @@ msgid "" "implementation, which also does not require the object be a sequence." msgstr "" -#: ../Doc/reference/datamodel.rst:2162 +#: ../Doc/reference/datamodel.rst:2163 msgid "" "Called to implement membership test operators. Should return true if *item* " "is in *self*, false otherwise. For mapping objects, this should consider " "the keys of the mapping rather than the values or the key-item pairs." msgstr "" -#: ../Doc/reference/datamodel.rst:2166 +#: ../Doc/reference/datamodel.rst:2167 msgid "" "For objects that don't define :meth:`__contains__`, the membership test " "first tries iteration via :meth:`__iter__`, then the old sequence iteration " @@ -2529,11 +2532,11 @@ msgid "" "reference `." msgstr "" -#: ../Doc/reference/datamodel.rst:2175 +#: ../Doc/reference/datamodel.rst:2176 msgid "Emulating numeric types" msgstr "" -#: ../Doc/reference/datamodel.rst:2177 +#: ../Doc/reference/datamodel.rst:2178 msgid "" "The following methods can be defined to emulate numeric objects. Methods " "corresponding to operations that are not supported by the particular kind of " @@ -2541,7 +2544,7 @@ msgid "" "should be left undefined." msgstr "" -#: ../Doc/reference/datamodel.rst:2203 +#: ../Doc/reference/datamodel.rst:2204 msgid "" "These methods are called to implement the binary arithmetic operations (``" "+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " @@ -2554,13 +2557,13 @@ msgid "" "version of the built-in :func:`pow` function is to be supported." msgstr "" -#: ../Doc/reference/datamodel.rst:2214 +#: ../Doc/reference/datamodel.rst:2215 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return ``NotImplemented``." msgstr "" -#: ../Doc/reference/datamodel.rst:2237 +#: ../Doc/reference/datamodel.rst:2238 msgid "" "These methods are called to implement the binary arithmetic operations (``" "+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :func:`pow`, " @@ -2572,13 +2575,13 @@ msgid "" "__rsub__(x)`` is called if ``x.__sub__(y)`` returns *NotImplemented*." msgstr "" -#: ../Doc/reference/datamodel.rst:2248 +#: ../Doc/reference/datamodel.rst:2249 msgid "" "Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " "coercion rules would become too complicated)." msgstr "" -#: ../Doc/reference/datamodel.rst:2253 +#: ../Doc/reference/datamodel.rst:2254 msgid "" "If the right operand's type is a subclass of the left operand's type and " "that subclass provides the reflected method for the operation, this method " @@ -2586,7 +2589,7 @@ msgid "" "behavior allows subclasses to override their ancestors' operations." msgstr "" -#: ../Doc/reference/datamodel.rst:2273 +#: ../Doc/reference/datamodel.rst:2274 msgid "" "These methods are called to implement the augmented arithmetic assignments " "(``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, ``**=``, ``<<=``, " @@ -2602,20 +2605,19 @@ msgid "" "fact part of the data model." msgstr "" -#: ../Doc/reference/datamodel.rst:2294 +#: ../Doc/reference/datamodel.rst:2295 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." msgstr "" -#: ../Doc/reference/datamodel.rst:2309 +#: ../Doc/reference/datamodel.rst:2308 msgid "" -"Called to implement the built-in functions :func:`complex`, :func:`int`, :" -"func:`float` and :func:`round`. Should return a value of the appropriate " -"type." +"Called to implement the built-in functions :func:`complex`, :func:`int` and :" +"func:`float`. Should return a value of the appropriate type." msgstr "" -#: ../Doc/reference/datamodel.rst:2316 +#: ../Doc/reference/datamodel.rst:2315 msgid "" "Called to implement :func:`operator.index`, and whenever Python needs to " "losslessly convert the numeric object to an integer object (such as in " @@ -2624,18 +2626,33 @@ msgid "" "integer type. Must return an integer." msgstr "" -#: ../Doc/reference/datamodel.rst:2324 +#: ../Doc/reference/datamodel.rst:2323 msgid "" "In order to have a coherent integer type class, when :meth:`__index__` is " "defined :meth:`__int__` should also be defined, and both should return the " "same value." msgstr "" -#: ../Doc/reference/datamodel.rst:2332 +#: ../Doc/reference/datamodel.rst:2335 +msgid "" +"Called to implement the built-in function :func:`round` and :mod:`math` " +"functions :func:`~math.trunc`, :func:`~math.floor` and :func:`~math.ceil`. " +"Unless *ndigits* is passed to :meth:`!__round__` all these methods should " +"return the value of the object truncated to an :class:`~numbers.Integral` " +"(typically an :class:`int`)." +msgstr "" + +#: ../Doc/reference/datamodel.rst:2341 +msgid "" +"If :meth:`__int__` is not defined then the built-in function :func:`int` " +"falls back to :meth:`__trunc__`." +msgstr "" + +#: ../Doc/reference/datamodel.rst:2348 msgid "With Statement Context Managers" msgstr "" -#: ../Doc/reference/datamodel.rst:2334 +#: ../Doc/reference/datamodel.rst:2350 msgid "" "A :dfn:`context manager` is an object that defines the runtime context to be " "established when executing a :keyword:`with` statement. The context manager " @@ -2645,32 +2662,32 @@ msgid "" "can also be used by directly invoking their methods." msgstr "" -#: ../Doc/reference/datamodel.rst:2345 +#: ../Doc/reference/datamodel.rst:2361 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." msgstr "" -#: ../Doc/reference/datamodel.rst:2348 +#: ../Doc/reference/datamodel.rst:2364 msgid "" "For more information on context managers, see :ref:`typecontextmanager`." msgstr "" -#: ../Doc/reference/datamodel.rst:2353 +#: ../Doc/reference/datamodel.rst:2369 msgid "" "Enter the runtime context related to this object. The :keyword:`with` " "statement will bind this method's return value to the target(s) specified in " "the :keyword:`as` clause of the statement, if any." msgstr "" -#: ../Doc/reference/datamodel.rst:2360 +#: ../Doc/reference/datamodel.rst:2376 msgid "" "Exit the runtime context related to this object. The parameters describe the " "exception that caused the context to be exited. If the context was exited " "without an exception, all three arguments will be :const:`None`." msgstr "" -#: ../Doc/reference/datamodel.rst:2364 +#: ../Doc/reference/datamodel.rst:2380 msgid "" "If an exception is supplied, and the method wishes to suppress the exception " "(i.e., prevent it from being propagated), it should return a true value. " @@ -2678,27 +2695,27 @@ msgid "" "method." msgstr "" -#: ../Doc/reference/datamodel.rst:2368 +#: ../Doc/reference/datamodel.rst:2384 msgid "" "Note that :meth:`__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." msgstr "" -#: ../Doc/reference/datamodel.rst:2375 +#: ../Doc/reference/datamodel.rst:2391 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - The \"with\" statement" -#: ../Doc/reference/datamodel.rst:2375 +#: ../Doc/reference/datamodel.rst:2391 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" -#: ../Doc/reference/datamodel.rst:2382 +#: ../Doc/reference/datamodel.rst:2398 msgid "Special method lookup" msgstr "" -#: ../Doc/reference/datamodel.rst:2384 +#: ../Doc/reference/datamodel.rst:2400 msgid "" "For custom classes, implicit invocations of special methods are only " "guaranteed to work correctly if defined on an object's type, not in the " @@ -2706,7 +2723,7 @@ msgid "" "following code raises an exception::" msgstr "" -#: ../Doc/reference/datamodel.rst:2399 +#: ../Doc/reference/datamodel.rst:2415 msgid "" "The rationale behind this behaviour lies with a number of special methods " "such as :meth:`__hash__` and :meth:`__repr__` that are implemented by all " @@ -2715,21 +2732,21 @@ msgid "" "type object itself::" msgstr "" -#: ../Doc/reference/datamodel.rst:2412 +#: ../Doc/reference/datamodel.rst:2428 msgid "" "Incorrectly attempting to invoke an unbound method of a class in this way is " "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " "the instance when looking up special methods::" msgstr "" -#: ../Doc/reference/datamodel.rst:2421 +#: ../Doc/reference/datamodel.rst:2437 msgid "" "In addition to bypassing any instance attributes in the interest of " "correctness, implicit special method lookup generally also bypasses the :" "meth:`__getattribute__` method even of the object's metaclass::" msgstr "" -#: ../Doc/reference/datamodel.rst:2447 +#: ../Doc/reference/datamodel.rst:2463 msgid "" "Bypassing the :meth:`__getattribute__` machinery in this fashion provides " "significant scope for speed optimisations within the interpreter, at the " @@ -2738,44 +2755,44 @@ msgid "" "invoked by the interpreter)." msgstr "" -#: ../Doc/reference/datamodel.rst:2458 +#: ../Doc/reference/datamodel.rst:2474 msgid "Coroutines" msgstr "Coroutines" -#: ../Doc/reference/datamodel.rst:2462 +#: ../Doc/reference/datamodel.rst:2478 msgid "Awaitable Objects" msgstr "" -#: ../Doc/reference/datamodel.rst:2464 +#: ../Doc/reference/datamodel.rst:2480 msgid "" "An :term:`awaitable` object generally implements an :meth:`__await__` " "method. :term:`Coroutine` objects returned from :keyword:`async def` " "functions are awaitable." msgstr "" -#: ../Doc/reference/datamodel.rst:2470 +#: ../Doc/reference/datamodel.rst:2486 msgid "" "The :term:`generator iterator` objects returned from generators decorated " "with :func:`types.coroutine` or :func:`asyncio.coroutine` are also " "awaitable, but they do not implement :meth:`__await__`." msgstr "" -#: ../Doc/reference/datamodel.rst:2476 +#: ../Doc/reference/datamodel.rst:2492 msgid "" "Must return an :term:`iterator`. Should be used to implement :term:" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " "method to be compatible with the :keyword:`await` expression." msgstr "" -#: ../Doc/reference/datamodel.rst:2482 +#: ../Doc/reference/datamodel.rst:2498 msgid ":pep:`492` for additional information about awaitable objects." msgstr "" -#: ../Doc/reference/datamodel.rst:2488 +#: ../Doc/reference/datamodel.rst:2504 msgid "Coroutine Objects" msgstr "Objets coroutines" -#: ../Doc/reference/datamodel.rst:2490 +#: ../Doc/reference/datamodel.rst:2506 msgid "" ":term:`Coroutine` objects are :term:`awaitable` objects. A coroutine's " "execution can be controlled by calling :meth:`__await__` and iterating over " @@ -2786,18 +2803,18 @@ msgid "" "not directly raise unhandled :exc:`StopIteration` exceptions." msgstr "" -#: ../Doc/reference/datamodel.rst:2498 +#: ../Doc/reference/datamodel.rst:2514 msgid "" "Coroutines also have the methods listed below, which are analogous to those " "of generators (see :ref:`generator-methods`). However, unlike generators, " "coroutines do not directly support iteration." msgstr "" -#: ../Doc/reference/datamodel.rst:2502 +#: ../Doc/reference/datamodel.rst:2518 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" -#: ../Doc/reference/datamodel.rst:2508 +#: ../Doc/reference/datamodel.rst:2524 msgid "" "Starts or resumes execution of the coroutine. If *value* is ``None``, this " "is equivalent to advancing the iterator returned by :meth:`__await__`. If " @@ -2807,7 +2824,7 @@ msgid "" "as when iterating over the :meth:`__await__` return value, described above." msgstr "" -#: ../Doc/reference/datamodel.rst:2518 +#: ../Doc/reference/datamodel.rst:2534 msgid "" "Raises the specified exception in the coroutine. This method delegates to " "the :meth:`~generator.throw` method of the iterator that caused the " @@ -2818,7 +2835,7 @@ msgid "" "caught in the coroutine, it propagates back to the caller." msgstr "" -#: ../Doc/reference/datamodel.rst:2529 +#: ../Doc/reference/datamodel.rst:2545 msgid "" "Causes the coroutine to clean itself up and exit. If the coroutine is " "suspended, this method first delegates to the :meth:`~generator.close` " @@ -2828,50 +2845,50 @@ msgid "" "is marked as having finished executing, even if it was never started." msgstr "" -#: ../Doc/reference/datamodel.rst:2537 +#: ../Doc/reference/datamodel.rst:2553 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." msgstr "" -#: ../Doc/reference/datamodel.rst:2543 +#: ../Doc/reference/datamodel.rst:2559 msgid "Asynchronous Iterators" msgstr "" -#: ../Doc/reference/datamodel.rst:2545 +#: ../Doc/reference/datamodel.rst:2561 msgid "" "An *asynchronous iterable* is able to call asynchronous code in its " "``__aiter__`` implementation, and an *asynchronous iterator* can call " "asynchronous code in its ``__anext__`` method." msgstr "" -#: ../Doc/reference/datamodel.rst:2549 +#: ../Doc/reference/datamodel.rst:2565 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" -#: ../Doc/reference/datamodel.rst:2553 +#: ../Doc/reference/datamodel.rst:2569 msgid "Must return an *asynchronous iterator* object." msgstr "" -#: ../Doc/reference/datamodel.rst:2557 +#: ../Doc/reference/datamodel.rst:2573 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." msgstr "" -#: ../Doc/reference/datamodel.rst:2560 +#: ../Doc/reference/datamodel.rst:2576 msgid "An example of an asynchronous iterable object::" msgstr "" -#: ../Doc/reference/datamodel.rst:2579 +#: ../Doc/reference/datamodel.rst:2595 msgid "" "Starting with CPython 3.5.2, ``__aiter__`` can directly return :term:" "`asynchronous iterators `. Returning an :term:" "`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" -#: ../Doc/reference/datamodel.rst:2585 +#: ../Doc/reference/datamodel.rst:2601 msgid "" "The recommended way of writing backwards compatible code in CPython 3.5.x is " "to continue returning awaitables from ``__aiter__``. If you want to avoid " @@ -2879,61 +2896,61 @@ msgid "" "following decorator can be used::" msgstr "" -#: ../Doc/reference/datamodel.rst:2604 +#: ../Doc/reference/datamodel.rst:2620 msgid "Example::" msgstr "Exemples ::" -#: ../Doc/reference/datamodel.rst:2615 +#: ../Doc/reference/datamodel.rst:2631 msgid "" "Starting with CPython 3.6, the :exc:`PendingDeprecationWarning` will be " "replaced with the :exc:`DeprecationWarning`. In CPython 3.7, returning an " "awaitable from ``__aiter__`` will result in a :exc:`RuntimeError`." msgstr "" -#: ../Doc/reference/datamodel.rst:2622 +#: ../Doc/reference/datamodel.rst:2638 msgid "Asynchronous Context Managers" msgstr "" -#: ../Doc/reference/datamodel.rst:2624 +#: ../Doc/reference/datamodel.rst:2640 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." msgstr "" -#: ../Doc/reference/datamodel.rst:2627 +#: ../Doc/reference/datamodel.rst:2643 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." msgstr "" -#: ../Doc/reference/datamodel.rst:2631 +#: ../Doc/reference/datamodel.rst:2647 msgid "" "This method is semantically similar to the :meth:`__enter__`, with only " "difference that it must return an *awaitable*." msgstr "" -#: ../Doc/reference/datamodel.rst:2636 +#: ../Doc/reference/datamodel.rst:2652 msgid "" "This method is semantically similar to the :meth:`__exit__`, with only " "difference that it must return an *awaitable*." msgstr "" -#: ../Doc/reference/datamodel.rst:2639 +#: ../Doc/reference/datamodel.rst:2655 msgid "An example of an asynchronous context manager class::" msgstr "" -#: ../Doc/reference/datamodel.rst:2652 +#: ../Doc/reference/datamodel.rst:2668 msgid "Footnotes" msgstr "Notes" -#: ../Doc/reference/datamodel.rst:2653 +#: ../Doc/reference/datamodel.rst:2669 msgid "" "It *is* possible in some cases to change an object's type, under certain " "controlled conditions. It generally isn't a good idea though, since it can " "lead to some very strange behaviour if it is handled incorrectly." msgstr "" -#: ../Doc/reference/datamodel.rst:2657 +#: ../Doc/reference/datamodel.rst:2673 msgid "" "The :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__`, and :meth:" "`__contains__` methods have special handling for this; others will still " @@ -2941,7 +2958,7 @@ msgid "" "``None`` is not callable." msgstr "" -#: ../Doc/reference/datamodel.rst:2662 +#: ../Doc/reference/datamodel.rst:2678 msgid "" "\"Does not support\" here means that the class has no such method, or the " "method returns ``NotImplemented``. Do not set the method to ``None`` if you " @@ -2949,7 +2966,7 @@ msgid "" "instead have the opposite effect of explicitly *blocking* such fallback." msgstr "" -#: ../Doc/reference/datamodel.rst:2668 +#: ../Doc/reference/datamodel.rst:2684 msgid "" "For operands of the same type, it is assumed that if the non-reflected " "method (such as :meth:`__add__`) fails the operation is not supported, which " diff --git a/sphinx.po b/sphinx.po index f24fbb4b2..a06a843d4 100644 --- a/sphinx.po +++ b/sphinx.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-02-08 09:58+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-15 00:58+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -17,50 +17,6 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/tools/templates/layout.html:10 -msgid "Documentation " -msgstr "Documentation" - -#: ../Doc/tools/templates/layout.html:21 -msgid "Quick search" -msgstr "Recherche rapide" - -#: ../Doc/tools/templates/layout.html:22 -msgid "Go" -msgstr "Go" - -#: ../Doc/tools/templates/layout.html:108 -#: ../Doc/tools/templates/indexcontent.html:63 -msgid "Copyright" -msgstr "Copyright" - -#: ../Doc/tools/templates/layout.html:110 -msgid "The Python Software Foundation is a non-profit corporation." -msgstr "La Python Software Foundation est une organisation à but non lucratif." - -#: ../Doc/tools/templates/layout.html:111 -msgid "Please donate." -msgstr "Les dons sont bienvenus." - -#: ../Doc/tools/templates/layout.html:113 -msgid "Last updated on %(last_updated)s." -msgstr "Dernière mise-à-jour le %(last_updated)s." - -#: ../Doc/tools/templates/layout.html:114 -msgid "Found a bug?" -msgstr "Vous avez trouvé un bug ?" - -#: ../Doc/tools/templates/layout.html:116 -msgid "" -"Created using Sphinx " -"%(sphinx_version)s." -msgstr "" -"Créé via Sphinx %(sphinx_version)s." - -#: ../Doc/tools/templates/dummy.html:6 -msgid "CPython implementation detail:" -msgstr "Particularité de l'implémentation CPython :" - #: ../Doc/tools/templates/indexsidebar.html:1 msgid "Download" msgstr "Téléchargement" @@ -115,18 +71,6 @@ msgstr "Liste de livres" msgid "Audio/Visual Talks" msgstr "Documents multimédia" -#: ../Doc/tools/templates/customsourcelink.html:3 -msgid "This Page" -msgstr "Cette page" - -#: ../Doc/tools/templates/customsourcelink.html:5 -msgid "Report a Bug" -msgstr "Signalement de bug" - -#: ../Doc/tools/templates/customsourcelink.html:8 -msgid "Show Source" -msgstr "Voir la source" - #: ../Doc/tools/templates/indexcontent.html:8 msgid "Welcome! This is the documentation for Python %(release)s." msgstr "Bienvenue sur la documentation de Python %(release)s." @@ -284,3 +228,64 @@ msgstr "À propos de la documentation" #: ../Doc/tools/templates/indexcontent.html:62 msgid "History and License of Python" msgstr "Histoire et licence de Python" + +#: ../Doc/tools/templates/indexcontent.html:63 +#: ../Doc/tools/templates/layout.html:108 +msgid "Copyright" +msgstr "Copyright" + +#: ../Doc/tools/templates/customsourcelink.html:3 +msgid "This Page" +msgstr "Cette page" + +#: ../Doc/tools/templates/customsourcelink.html:5 +msgid "Report a Bug" +msgstr "Signalement de bug" + +#: ../Doc/tools/templates/customsourcelink.html:8 +msgid "Show Source" +msgstr "Voir la source" + +#: ../Doc/tools/templates/layout.html:10 +msgid "Documentation " +msgstr "Documentation" + +#: ../Doc/tools/templates/layout.html:21 +msgid "Quick search" +msgstr "Recherche rapide" + +#: ../Doc/tools/templates/layout.html:22 +msgid "Go" +msgstr "Go" + +#: ../Doc/tools/templates/layout.html:110 +msgid "The Python Software Foundation is a non-profit corporation." +msgstr "La Python Software Foundation est une organisation à but non lucratif." + +#: ../Doc/tools/templates/layout.html:111 +msgid "Please donate." +msgstr "Les dons sont bienvenus." + +#: ../Doc/tools/templates/layout.html:113 +msgid "Last updated on %(last_updated)s." +msgstr "Dernière mise-à-jour le %(last_updated)s." + +#: ../Doc/tools/templates/layout.html:114 +msgid "Found a bug?" +msgstr "Vous avez trouvé un bug ?" + +#: ../Doc/tools/templates/layout.html:116 +msgid "" +"Created using Sphinx " +"%(sphinx_version)s." +msgstr "" +"Créé via Sphinx %(sphinx_version)s." + +#: ../Doc/tools/templates/dummy.html:6 +msgid "CPython implementation detail:" +msgstr "Particularité de l'implémentation CPython :" + +#: ../Doc/tools/templates/dummy.html:7 +msgid "" +"Deprecated since version {deprecated}, will be removed in version {removed}" +msgstr "" diff --git a/tutorial/inputoutput.po b/tutorial/inputoutput.po index d5aa8baea..36e8606c5 100644 --- a/tutorial/inputoutput.po +++ b/tutorial/inputoutput.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:20+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-09 23:13+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -119,9 +119,11 @@ msgid "Here are two ways to write a table of squares and cubes::" msgstr "Voici deux façons d'écrire une table de carrés et de cubes : ::" #: ../Doc/tutorial/inputoutput.rst:102 +#, fuzzy msgid "" "(Note that in the first example, one space between each column was added by " -"the way :func:`print` works: it always adds spaces between its arguments.)" +"the way :func:`print` works: by default it adds spaces between its " +"arguments.)" msgstr "" "Notez que dans ce premier exemple, une espace a été ajoutée entre chaque " "colonne . C'est le comportement de :func:`print`, elle ajoute toujours des " diff --git a/tutorial/modules.po b/tutorial/modules.po index 284265944..91577b8c9 100644 --- a/tutorial/modules.po +++ b/tutorial/modules.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-02-07 13:42+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -188,7 +188,24 @@ msgstr "" "déconseillé. Souvent, le code devient difficilement lisible. Son utilisation " "en mode interactif est acceptée pour gagner quelques secondes." -#: ../Doc/tutorial/modules.rst:117 +#: ../Doc/tutorial/modules.rst:115 +msgid "" +"If the module name is followed by :keyword:`as`, then the name following :" +"keyword:`as` is bound directly to the imported module." +msgstr "" + +#: ../Doc/tutorial/modules.rst:124 +msgid "" +"This is effectively importing the module in the same way that ``import " +"fibo`` will do, with the only difference of it being available as ``fib``." +msgstr "" + +#: ../Doc/tutorial/modules.rst:127 +msgid "" +"It can also be used when utilising :keyword:`from` with similar effects::" +msgstr "" + +#: ../Doc/tutorial/modules.rst:136 msgid "" "For efficiency reasons, each module is only imported once per interpreter " "session. Therefore, if you change your modules, you must restart the " @@ -203,15 +220,15 @@ msgstr "" "importer explicitement en utilisant :func:`importlib.reload`, par exemple : " "``import importlib; importlib.reload(nommodule)``." -#: ../Doc/tutorial/modules.rst:127 +#: ../Doc/tutorial/modules.rst:146 msgid "Executing modules as scripts" msgstr "Exécuter des modules comme des scripts" -#: ../Doc/tutorial/modules.rst:129 +#: ../Doc/tutorial/modules.rst:148 msgid "When you run a Python module with ::" msgstr "Lorsque vous exécutez un module Python avec : ::" -#: ../Doc/tutorial/modules.rst:133 +#: ../Doc/tutorial/modules.rst:152 msgid "" "the code in the module will be executed, just as if you imported it, but " "with the ``__name__`` set to ``\"__main__\"``. That means that by adding " @@ -221,7 +238,7 @@ msgstr "" "``__name__`` vaut ``\"__main__\"``. Donc, en ajoutant ces lignes à la fin du " "module : ::" -#: ../Doc/tutorial/modules.rst:141 +#: ../Doc/tutorial/modules.rst:160 msgid "" "you can make the file usable as a script as well as an importable module, " "because the code that parses the command line only runs if the module is " @@ -231,11 +248,11 @@ msgstr "" "module importable, car le code qui analyse la ligne de commande n'est lancé " "que si le module est exécuté comme fichier « main » :" -#: ../Doc/tutorial/modules.rst:150 +#: ../Doc/tutorial/modules.rst:169 msgid "If the module is imported, the code is not run::" msgstr "Si le fichier est importé, le code n'est pas exécuté : ::" -#: ../Doc/tutorial/modules.rst:155 +#: ../Doc/tutorial/modules.rst:174 msgid "" "This is often used either to provide a convenient user interface to a " "module, or for testing purposes (running the module as a script executes a " @@ -245,11 +262,11 @@ msgstr "" "un module, soit pour lancer les tests sur le module (exécuter le module en " "tant que script lance les tests)." -#: ../Doc/tutorial/modules.rst:162 +#: ../Doc/tutorial/modules.rst:181 msgid "The Module Search Path" msgstr "Les dossiers de recherche de modules" -#: ../Doc/tutorial/modules.rst:166 +#: ../Doc/tutorial/modules.rst:185 msgid "" "When a module named :mod:`spam` is imported, the interpreter first searches " "for a built-in module with that name. If not found, it then searches for a " @@ -262,7 +279,7 @@ msgstr "" "dossiers donnée par la variable :data:`sys.path`. Par défaut, :data:`sys." "path` est initialisée à : ::" -#: ../Doc/tutorial/modules.rst:171 +#: ../Doc/tutorial/modules.rst:190 msgid "" "The directory containing the input script (or the current directory when no " "file is specified)." @@ -270,7 +287,7 @@ msgstr "" "le dossier contenant le script courant (ou le dossier courant si aucun " "script n'est donné) ;" -#: ../Doc/tutorial/modules.rst:173 +#: ../Doc/tutorial/modules.rst:192 msgid "" ":envvar:`PYTHONPATH` (a list of directory names, with the same syntax as the " "shell variable :envvar:`PATH`)." @@ -278,11 +295,11 @@ msgstr "" ":envvar:`PYTHONPATH` (une liste de dossiers, utilisant la même syntaxe que " "la variable shell :envvar:`PATH`) ;" -#: ../Doc/tutorial/modules.rst:175 +#: ../Doc/tutorial/modules.rst:194 msgid "The installation-dependent default." msgstr "la valeur par défaut, dépendante de l'installation." -#: ../Doc/tutorial/modules.rst:178 +#: ../Doc/tutorial/modules.rst:197 msgid "" "On file systems which support symlinks, the directory containing the input " "script is calculated after the symlink is followed. In other words the " @@ -293,7 +310,7 @@ msgstr "" "Autrement dit, le dossier contenant le lien symbolique n'est **pas** ajouté " "aux dossiers de recherche de modules." -#: ../Doc/tutorial/modules.rst:182 +#: ../Doc/tutorial/modules.rst:201 msgid "" "After initialization, Python programs can modify :data:`sys.path`. The " "directory containing the script being run is placed at the beginning of the " @@ -309,11 +326,11 @@ msgstr "" "chargé à sa place. C'est une erreur typique, à moins que ce ne soit voulu. " "Voir :ref:`tut-standardmodules` pour plus d'informations." -#: ../Doc/tutorial/modules.rst:193 +#: ../Doc/tutorial/modules.rst:212 msgid "\"Compiled\" Python files" msgstr "Fichiers Python \"compilés\"" -#: ../Doc/tutorial/modules.rst:195 +#: ../Doc/tutorial/modules.rst:214 msgid "" "To speed up loading modules, Python caches the compiled version of each " "module in the ``__pycache__`` directory under the name :file:`module." @@ -331,7 +348,7 @@ msgstr "" "Cette règle de nommage permet à des versions compilées par des versions " "différentes de Python de coexister." -#: ../Doc/tutorial/modules.rst:203 +#: ../Doc/tutorial/modules.rst:222 msgid "" "Python checks the modification date of the source against the compiled " "version to see if it's out of date and needs to be recompiled. This is a " @@ -345,7 +362,7 @@ msgstr "" "indépendantes de la plateforme et peuvent donc être partagées entre des " "systèmes d'architectures différentes." -#: ../Doc/tutorial/modules.rst:208 +#: ../Doc/tutorial/modules.rst:227 msgid "" "Python does not check the cache in two circumstances. First, it always " "recompiles and does not store the result for the module that's loaded " @@ -361,11 +378,11 @@ msgstr "" "source (où seule la version compilée est fournie), le module compilé doit se " "trouver dans le dossier source et sa source ne doit pas être présente." -#: ../Doc/tutorial/modules.rst:215 +#: ../Doc/tutorial/modules.rst:234 msgid "Some tips for experts:" msgstr "Astuces pour les experts :" -#: ../Doc/tutorial/modules.rst:217 +#: ../Doc/tutorial/modules.rst:236 msgid "" "You can use the :option:`-O` or :option:`-OO` switches on the Python command " "to reduce the size of a compiled module. The ``-O`` switch removes assert " @@ -384,7 +401,7 @@ msgstr "" "`` et sont généralement plus petits. Les versions futures de Python " "pourraient changer les effets de l'optimisation ;" -#: ../Doc/tutorial/modules.rst:225 +#: ../Doc/tutorial/modules.rst:244 msgid "" "A program doesn't run any faster when it is read from a ``.pyc`` file than " "when it is read from a ``.py`` file; the only thing that's faster about ``." @@ -393,7 +410,7 @@ msgstr "" "un programme ne s'exécute pas plus vite lorsqu'il est lu depuis un ``.pyc``, " "il est juste chargé plus vite ;" -#: ../Doc/tutorial/modules.rst:229 +#: ../Doc/tutorial/modules.rst:248 msgid "" "The module :mod:`compileall` can create .pyc files for all modules in a " "directory." @@ -401,7 +418,7 @@ msgstr "" "le module :mod:`compileall` peut créer des fichiers ``.pyc`` pour tous les " "modules d'un dossier ;" -#: ../Doc/tutorial/modules.rst:232 +#: ../Doc/tutorial/modules.rst:251 msgid "" "There is more detail on this process, including a flow chart of the " "decisions, in PEP 3147." @@ -409,11 +426,11 @@ msgstr "" "vous trouvez plus de détails sur ce processus, ainsi qu'un organigramme des " "décisions, dans la PEP 3147." -#: ../Doc/tutorial/modules.rst:239 +#: ../Doc/tutorial/modules.rst:258 msgid "Standard Modules" msgstr "Modules standards" -#: ../Doc/tutorial/modules.rst:243 +#: ../Doc/tutorial/modules.rst:262 msgid "" "Python comes with a library of standard modules, described in a separate " "document, the Python Library Reference (\"Library Reference\" hereafter). " @@ -439,7 +456,7 @@ msgstr "" "les interpréteurs Python. Les variables ``sys.ps1`` et ``sys.ps2`` " "définissent les chaînes d'invites principales et secondaires : ::" -#: ../Doc/tutorial/modules.rst:266 +#: ../Doc/tutorial/modules.rst:285 msgid "" "These two variables are only defined if the interpreter is in interactive " "mode." @@ -447,7 +464,7 @@ msgstr "" "Ces deux variables ne sont définies que si l'interpréteur est en mode " "interactif." -#: ../Doc/tutorial/modules.rst:268 +#: ../Doc/tutorial/modules.rst:287 msgid "" "The variable ``sys.path`` is a list of strings that determines the " "interpreter's search path for modules. It is initialized to a default path " @@ -462,11 +479,11 @@ msgstr "" "définie. ``sys.path`` est modifiable en utilisant les opérations habituelles " "des listes : ::" -#: ../Doc/tutorial/modules.rst:281 +#: ../Doc/tutorial/modules.rst:300 msgid "The :func:`dir` Function" msgstr "La fonction :func:`dir`" -#: ../Doc/tutorial/modules.rst:283 +#: ../Doc/tutorial/modules.rst:302 msgid "" "The built-in function :func:`dir` is used to find out which names a module " "defines. It returns a sorted list of strings::" @@ -475,19 +492,19 @@ msgstr "" "définis par un module. Elle donne une liste de chaînes classées par ordre " "lexicographique : ::" -#: ../Doc/tutorial/modules.rst:308 +#: ../Doc/tutorial/modules.rst:327 msgid "" "Without arguments, :func:`dir` lists the names you have defined currently::" msgstr "Sans paramètre, :func:`dir` liste les noms actuellement définis : ::" -#: ../Doc/tutorial/modules.rst:316 +#: ../Doc/tutorial/modules.rst:335 msgid "" "Note that it lists all types of names: variables, modules, functions, etc." msgstr "" "Notez qu'elle liste tous les types de noms : les variables, fonctions, " "modules, etc." -#: ../Doc/tutorial/modules.rst:320 +#: ../Doc/tutorial/modules.rst:339 msgid "" ":func:`dir` does not list the names of built-in functions and variables. If " "you want a list of those, they are defined in the standard module :mod:" @@ -497,11 +514,11 @@ msgstr "" "Si vous voulez les lister, elles sont définies dans le module :mod:" "`builtins` : ::" -#: ../Doc/tutorial/modules.rst:359 +#: ../Doc/tutorial/modules.rst:378 msgid "Packages" msgstr "Les paquets" -#: ../Doc/tutorial/modules.rst:361 +#: ../Doc/tutorial/modules.rst:380 msgid "" "Packages are a way of structuring Python's module namespace by using " "\"dotted module names\". For example, the module name :mod:`A.B` designates " @@ -520,7 +537,7 @@ msgstr "" "paquets contenant plusieurs modules tel que NumPy ou \"Python Image Library" "\" d'avoir à se soucier des noms des modules des autres." -#: ../Doc/tutorial/modules.rst:369 +#: ../Doc/tutorial/modules.rst:388 msgid "" "Suppose you want to design a collection of modules (a \"package\") for the " "uniform handling of sound files and sound data. There are many different " @@ -547,7 +564,7 @@ msgstr "" "structure possible pour votre paquet (exprimée sous la forme d'une " "arborescence de fichiers :" -#: ../Doc/tutorial/modules.rst:406 +#: ../Doc/tutorial/modules.rst:425 msgid "" "When importing the package, Python searches through the directories on ``sys." "path`` looking for the package subdirectory." @@ -555,7 +572,7 @@ msgstr "" "Lorsqu'il importe des paquets, Python cherche dans chaque dossier de ``sys." "path`` un sous-dossier du nom du paquet." -#: ../Doc/tutorial/modules.rst:409 +#: ../Doc/tutorial/modules.rst:428 msgid "" "The :file:`__init__.py` files are required to make Python treat the " "directories as containing packages; this is done to prevent directories with " @@ -573,7 +590,7 @@ msgstr "" "d'initialisation pour son paquet ou configurer la variable ``__all__`` " "(documentée plus loin)." -#: ../Doc/tutorial/modules.rst:416 +#: ../Doc/tutorial/modules.rst:435 msgid "" "Users of the package can import individual modules from the package, for " "example::" @@ -581,7 +598,7 @@ msgstr "" "Les utilisateurs d'un module peuvent importer ses modules individuellement, " "par exemple : ::" -#: ../Doc/tutorial/modules.rst:421 +#: ../Doc/tutorial/modules.rst:440 msgid "" "This loads the submodule :mod:`sound.effects.echo`. It must be referenced " "with its full name. ::" @@ -589,11 +606,11 @@ msgstr "" "charge le sous-module :mod:`sound.effects.echo`. Il doit alors être " "référencé par son nom complet. ::" -#: ../Doc/tutorial/modules.rst:426 +#: ../Doc/tutorial/modules.rst:445 msgid "An alternative way of importing the submodule is::" msgstr "Une autre manière d'importer des sous-modules est : ::" -#: ../Doc/tutorial/modules.rst:430 +#: ../Doc/tutorial/modules.rst:449 msgid "" "This also loads the submodule :mod:`echo`, and makes it available without " "its package prefix, so it can be used as follows::" @@ -601,7 +618,7 @@ msgstr "" "charge aussi le sous-module :mod:`echo` et le rend disponible sans avoir à " "indiquer le préfixe du paquet. Il peut donc être utilisé comme ceci : ::" -#: ../Doc/tutorial/modules.rst:435 +#: ../Doc/tutorial/modules.rst:454 msgid "" "Yet another variation is to import the desired function or variable " "directly::" @@ -609,7 +626,7 @@ msgstr "" "Une autre méthode consiste à importer la fonction ou la variable désirée " "directement : ::" -#: ../Doc/tutorial/modules.rst:439 +#: ../Doc/tutorial/modules.rst:458 msgid "" "Again, this loads the submodule :mod:`echo`, but this makes its function :" "func:`echofilter` directly available::" @@ -617,7 +634,7 @@ msgstr "" "Le sous-module :mod:`echo` est toujours chargé mais ici la fonction :func:" "`echofilter` est disponible directement : ::" -#: ../Doc/tutorial/modules.rst:444 +#: ../Doc/tutorial/modules.rst:463 msgid "" "Note that when using ``from package import item``, the item can be either a " "submodule (or subpackage) of the package, or some other name defined in the " @@ -633,7 +650,7 @@ msgstr "" "le paquet ; s'il ne l'est pas, elle cherche à charger un module et, si elle " "n'en trouve pas, une exception :exc:`ImportError` est levée." -#: ../Doc/tutorial/modules.rst:451 +#: ../Doc/tutorial/modules.rst:470 msgid "" "Contrarily, when using syntax like ``import item.subitem.subsubitem``, each " "item except for the last must be a package; the last item can be a module or " @@ -646,11 +663,11 @@ msgstr "" "ni une fonction, ni une classe, ni une variable définie dans l'élément " "précédent." -#: ../Doc/tutorial/modules.rst:460 +#: ../Doc/tutorial/modules.rst:479 msgid "Importing \\* From a Package" msgstr "Importer \\* depuis un paquet" -#: ../Doc/tutorial/modules.rst:464 +#: ../Doc/tutorial/modules.rst:483 msgid "" "Now what happens when the user writes ``from sound.effects import *``? " "Ideally, one would hope that this somehow goes out to the filesystem, finds " @@ -665,7 +682,7 @@ msgstr "" "avoir des effets secondaires indésirables ou, du moins, désirés seulement " "lorsque le sous-module est importé explicitement." -#: ../Doc/tutorial/modules.rst:470 +#: ../Doc/tutorial/modules.rst:489 msgid "" "The only solution is for the package author to provide an explicit index of " "the package. The :keyword:`import` statement uses the following convention: " @@ -688,7 +705,7 @@ msgstr "" "pour son paquet. Par exemple, le fichier :file:`sound/effects/__init__.py` " "peut contenir le code suivant : ::" -#: ../Doc/tutorial/modules.rst:482 +#: ../Doc/tutorial/modules.rst:501 msgid "" "This would mean that ``from sound.effects import *`` would import the three " "named submodules of the :mod:`sound` package." @@ -696,7 +713,7 @@ msgstr "" "Cela signifie que ``from sound.effects import *`` importe les trois sous-" "modules explicitement désignés du paquet :mod:`sound`." -#: ../Doc/tutorial/modules.rst:485 +#: ../Doc/tutorial/modules.rst:504 msgid "" "If ``__all__`` is not defined, the statement ``from sound.effects import *`` " "does *not* import all submodules from the package :mod:`sound.effects` into " @@ -718,7 +735,7 @@ msgstr "" "modules du paquet ayant été chargés explicitement par une instruction :" "keyword:`import`. Typiquement : ::" -#: ../Doc/tutorial/modules.rst:498 +#: ../Doc/tutorial/modules.rst:517 msgid "" "In this example, the :mod:`echo` and :mod:`surround` modules are imported in " "the current namespace because they are defined in the :mod:`sound.effects` " @@ -730,7 +747,7 @@ msgstr "" "qu'ils sont définis dans le paquet :mod:`sound.effects` (cela fonctionne " "aussi lorsque ``__all__`` est définie)." -#: ../Doc/tutorial/modules.rst:503 +#: ../Doc/tutorial/modules.rst:522 msgid "" "Although certain modules are designed to export only names that follow " "certain patterns when you use ``import *``, it is still considered bad " @@ -741,7 +758,7 @@ msgstr "" "*`` reste considéré comme une mauvaise pratique dans du code à destination " "d'un environnement de production." -#: ../Doc/tutorial/modules.rst:507 +#: ../Doc/tutorial/modules.rst:526 msgid "" "Remember, there is nothing wrong with using ``from Package import " "specific_submodule``! In fact, this is the recommended notation unless the " @@ -753,11 +770,11 @@ msgstr "" "que le module qui fait les imports ait besoin de sous-modules ayant le même " "nom mais provenant de paquets différents." -#: ../Doc/tutorial/modules.rst:514 +#: ../Doc/tutorial/modules.rst:533 msgid "Intra-package References" msgstr "Références internes dans un paquet" -#: ../Doc/tutorial/modules.rst:516 +#: ../Doc/tutorial/modules.rst:535 msgid "" "When packages are structured into subpackages (as with the :mod:`sound` " "package in the example), you can use absolute imports to refer to submodules " @@ -771,7 +788,7 @@ msgstr "" "a besoin du module :mod:`echo` du paquet :mod:`sound.effects`, il peut " "utiliser ``from sound.effects import echo``." -#: ../Doc/tutorial/modules.rst:522 +#: ../Doc/tutorial/modules.rst:541 msgid "" "You can also write relative imports, with the ``from module import name`` " "form of import statement. These imports use leading dots to indicate the " @@ -783,7 +800,7 @@ msgstr "" "indiquer leur origine (paquet courant ou parent). Depuis le module :mod:" "`surround`, par exemple vous pouvez écrire : ::" -#: ../Doc/tutorial/modules.rst:531 +#: ../Doc/tutorial/modules.rst:550 msgid "" "Note that relative imports are based on the name of the current module. " "Since the name of the main module is always ``\"__main__\"``, modules " @@ -795,11 +812,11 @@ msgstr "" "par le module principal d'une application ne peuvent être importés que par " "des imports absolus." -#: ../Doc/tutorial/modules.rst:537 +#: ../Doc/tutorial/modules.rst:556 msgid "Packages in Multiple Directories" msgstr "Paquets dans plusieurs dossiers" -#: ../Doc/tutorial/modules.rst:539 +#: ../Doc/tutorial/modules.rst:558 msgid "" "Packages support one more special attribute, :attr:`__path__`. This is " "initialized to be a list containing the name of the directory holding the " @@ -813,7 +830,7 @@ msgstr "" "peut être modifiée, altérant ainsi les futures recherches de modules et sous-" "paquets contenus dans le paquet." -#: ../Doc/tutorial/modules.rst:545 +#: ../Doc/tutorial/modules.rst:564 msgid "" "While this feature is not often needed, it can be used to extend the set of " "modules found in a package." @@ -821,11 +838,11 @@ msgstr "" "Bien que cette fonctionnalité ne soit que rarement utile, elle peut servir à " "élargir la liste des modules trouvés dans un paquet." -#: ../Doc/tutorial/modules.rst:550 +#: ../Doc/tutorial/modules.rst:569 msgid "Footnotes" msgstr "Notes" -#: ../Doc/tutorial/modules.rst:551 +#: ../Doc/tutorial/modules.rst:570 msgid "" "In fact function definitions are also 'statements' that are 'executed'; the " "execution of a module-level function definition enters the function name in " diff --git a/tutorial/venv.po b/tutorial/venv.po index 1e64e4eb9..3370efb38 100644 --- a/tutorial/venv.po +++ b/tutorial/venv.po @@ -7,10 +7,11 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2016-10-30 10:40+0100\n" +"POT-Creation-Date: 2018-02-08 09:58+0100\n" "PO-Revision-Date: 2018-02-17 14:54+0100\n" "Last-Translator: \n" "Language-Team: \n" +"Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/using/cmdline.po b/using/cmdline.po index 0c0e42b22..ae9227f83 100644 --- a/using/cmdline.po +++ b/using/cmdline.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2018-03-16 21:46+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -433,21 +433,30 @@ msgstr "" "imposées pour éviter que l'utilisateur n'injecte du code malicieux." #: ../Doc/using/cmdline.rst:249 -msgid "Turn on basic optimizations. See also :envvar:`PYTHONOPTIMIZE`." +msgid "" +"Remove assert statements and any code conditional on the value of :const:" +"`__debug__`. Augment the filename for compiled (:term:`bytecode`) files by " +"adding ``.opt-1`` before the ``.pyc`` extension (see :pep:`488`). See also :" +"envvar:`PYTHONOPTIMIZE`." +msgstr "" + +#: ../Doc/using/cmdline.rst:254 ../Doc/using/cmdline.rst:264 +msgid "Modify ``.pyc`` filenames according to :pep:`488`." msgstr "" -"Active les optimisations basiques. Voir aussi :envvar:`PYTHONOPTIMIZE`." -#: ../Doc/using/cmdline.rst:254 -msgid "Discard docstrings in addition to the :option:`-O` optimizations." +#: ../Doc/using/cmdline.rst:260 +msgid "" +"Do :option:`-O` and also discard docstrings. Augment the filename for " +"compiled (:term:`bytecode`) files by adding ``.opt-2`` before the ``.pyc`` " +"extension (see :pep:`488`)." msgstr "" -"Supprime les docstrings en plus des optimisations réalisées par :option:`-O`." -#: ../Doc/using/cmdline.rst:259 +#: ../Doc/using/cmdline.rst:270 msgid "" "Don't display the copyright and version messages even in interactive mode." msgstr "N'affiche pas le copyright et la version, même en mode interactif." -#: ../Doc/using/cmdline.rst:266 +#: ../Doc/using/cmdline.rst:277 msgid "" "Kept for compatibility. On Python 3.3 and greater, hash randomization is " "turned on by default." @@ -455,7 +464,7 @@ msgstr "" "Conservé pour compatibilité ascendante. Sur Python 3.3 ou supérieur, la " "randomisation des empreintes (*hash* en anglais) est activée par défaut." -#: ../Doc/using/cmdline.rst:269 +#: ../Doc/using/cmdline.rst:280 msgid "" "On previous versions of Python, this option turns on hash randomization, so " "that the :meth:`__hash__` values of str, bytes and datetime are \"salted\" " @@ -470,7 +479,7 @@ msgstr "" "processus Python, il n'est pas prévisible pour des invocations répétées de " "code Python." -#: ../Doc/using/cmdline.rst:275 +#: ../Doc/using/cmdline.rst:286 msgid "" "Hash randomization is intended to provide protection against a denial-of-" "service caused by carefully-chosen inputs that exploit the worst case " @@ -483,7 +492,7 @@ msgstr "" "c'est-à-dire avec une complexité en O(n^2). Voir http://www.ocert.org/" "advisories/ocert-2011-003.html pour obtenir les détails." -#: ../Doc/using/cmdline.rst:280 +#: ../Doc/using/cmdline.rst:291 msgid "" ":envvar:`PYTHONHASHSEED` allows you to set a fixed value for the hash seed " "secret." @@ -491,7 +500,7 @@ msgstr "" ":envvar:`PYTHONHASHSEED` vous permet de définir vous-même la valeur du sel " "pour l'algorithme de calcul des empreintes." -#: ../Doc/using/cmdline.rst:288 +#: ../Doc/using/cmdline.rst:299 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." @@ -499,12 +508,12 @@ msgstr "" "N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." -#: ../Doc/using/cmdline.rst:293 ../Doc/using/cmdline.rst:582 -#: ../Doc/using/cmdline.rst:594 +#: ../Doc/using/cmdline.rst:304 ../Doc/using/cmdline.rst:593 +#: ../Doc/using/cmdline.rst:605 msgid ":pep:`370` -- Per user site-packages directory" msgstr ":pep:`370` -- Répertoire site-packages propre à l'utilisateur." -#: ../Doc/using/cmdline.rst:298 +#: ../Doc/using/cmdline.rst:309 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " @@ -516,7 +525,7 @@ msgstr "" "mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " "vous voulez les déclencher)." -#: ../Doc/using/cmdline.rst:306 +#: ../Doc/using/cmdline.rst:317 msgid "" "Force the binary layer of the stdout and stderr streams (which is available " "as their ``buffer`` attribute) to be unbuffered. The text I/O layer will " @@ -529,11 +538,11 @@ msgstr "" "mise en tampon ligne par ligne lors de l'écriture sur la console, ou par " "blocs si elle est redirigée sur un fichier non-interactif." -#: ../Doc/using/cmdline.rst:311 +#: ../Doc/using/cmdline.rst:322 msgid "See also :envvar:`PYTHONUNBUFFERED`." msgstr "Voir aussi :envvar:`PYTHONUNBUFFERED`." -#: ../Doc/using/cmdline.rst:316 +#: ../Doc/using/cmdline.rst:327 msgid "" "Print a message each time a module is initialized, showing the place " "(filename or built-in module) from which it is loaded. When given twice (:" @@ -548,7 +557,7 @@ msgstr "" "des informations sur le nettoyage du module à la fin. Voir aussi :envvar:" "`PYTHONVERBOSE`." -#: ../Doc/using/cmdline.rst:326 +#: ../Doc/using/cmdline.rst:337 msgid "" "Warning control. Python's warning machinery by default prints warning " "messages to :data:`sys.stderr`. A typical warning message has the following " @@ -558,7 +567,7 @@ msgstr "" "défaut, affiche les messages d'avertissement sur :data:`sys.stderr`. Un " "message d'avertissement type est de la forme suivante : ::" -#: ../Doc/using/cmdline.rst:332 +#: ../Doc/using/cmdline.rst:343 msgid "" "By default, each warning is printed once for each source line where it " "occurs. This option controls how often warnings are printed." @@ -567,7 +576,7 @@ msgstr "" "ligne de source où il se trouve. Cette option définit à quelle fréquence " "afficher ces avertissements." -#: ../Doc/using/cmdline.rst:335 +#: ../Doc/using/cmdline.rst:346 msgid "" "Multiple :option:`-W` options may be given; when a warning matches more than " "one option, the action for the last matching option is performed. Invalid :" @@ -580,7 +589,7 @@ msgstr "" "message d'avertissement est affiché sur les options invalides au moment où " "le premier avertissement est généré)." -#: ../Doc/using/cmdline.rst:340 +#: ../Doc/using/cmdline.rst:351 msgid "" "Warnings can also be controlled from within a Python program using the :mod:" "`warnings` module." @@ -588,7 +597,7 @@ msgstr "" "Les avertissements peuvent aussi être contrôlés dans le programme Python en " "utilisant le module :mod:`warnings`." -#: ../Doc/using/cmdline.rst:343 +#: ../Doc/using/cmdline.rst:354 msgid "" "The simplest form of argument is one of the following action strings (or a " "unique abbreviation):" @@ -596,19 +605,19 @@ msgstr "" "La forme la plus simple de l'argument est l'une des chaînes d'actions " "suivantes (ou une abréviation unique) :" -#: ../Doc/using/cmdline.rst:346 +#: ../Doc/using/cmdline.rst:357 msgid "``ignore``" msgstr "" -#: ../Doc/using/cmdline.rst:347 +#: ../Doc/using/cmdline.rst:358 msgid "Ignore all warnings." msgstr "Ignore tous les avertissements." -#: ../Doc/using/cmdline.rst:349 +#: ../Doc/using/cmdline.rst:360 msgid "``default``" msgstr "" -#: ../Doc/using/cmdline.rst:349 +#: ../Doc/using/cmdline.rst:360 msgid "" "Explicitly request the default behavior (printing each warning once per " "source line)." @@ -616,11 +625,11 @@ msgstr "" "Demande explicitement le comportement par défaut (affiche chaque " "avertissement une fois par ligne de code source)." -#: ../Doc/using/cmdline.rst:353 +#: ../Doc/using/cmdline.rst:364 msgid "``all``" msgstr "``all``" -#: ../Doc/using/cmdline.rst:352 +#: ../Doc/using/cmdline.rst:363 msgid "" "Print a warning each time it occurs (this may generate many messages if a " "warning is triggered repeatedly for the same source line, such as inside a " @@ -630,39 +639,39 @@ msgstr "" "beaucoup de messages si l'avertissement est déclenché à plusieurs reprises, " "comme à l'intérieur d'une boucle)." -#: ../Doc/using/cmdline.rst:355 +#: ../Doc/using/cmdline.rst:366 msgid "``module``" msgstr "``module``" -#: ../Doc/using/cmdline.rst:356 +#: ../Doc/using/cmdline.rst:367 msgid "Print each warning only the first time it occurs in each module." msgstr "" "Affiche chaque avertissement uniquement la première fois qu'il apparaît dans " "chaque module." -#: ../Doc/using/cmdline.rst:357 +#: ../Doc/using/cmdline.rst:368 msgid "``once``" msgstr "" -#: ../Doc/using/cmdline.rst:358 +#: ../Doc/using/cmdline.rst:369 msgid "Print each warning only the first time it occurs in the program." msgstr "" "Affiche chaque avertissement uniquement la première fois qu'il apparaît dans " "le programme." -#: ../Doc/using/cmdline.rst:360 +#: ../Doc/using/cmdline.rst:371 msgid "``error``" msgstr "" -#: ../Doc/using/cmdline.rst:360 +#: ../Doc/using/cmdline.rst:371 msgid "Raise an exception instead of printing a warning message." msgstr "Déclenche une exception au lieu d'afficher un message d'avertissement." -#: ../Doc/using/cmdline.rst:362 +#: ../Doc/using/cmdline.rst:373 msgid "The full form of argument is::" msgstr "La forme complète de l'argument est : ::" -#: ../Doc/using/cmdline.rst:366 +#: ../Doc/using/cmdline.rst:377 msgid "" "Here, *action* is as explained above but only applies to messages that match " "the remaining fields. Empty fields match all values; trailing empty fields " @@ -688,19 +697,19 @@ msgstr "" "correspond au numéro de ligne, où zéro correspond à n'importe quel numéro de " "ligne et correspond donc à l'option par défaut." -#: ../Doc/using/cmdline.rst:378 +#: ../Doc/using/cmdline.rst:389 msgid ":mod:`warnings` -- the warnings module" msgstr ":mod:`warnings` -- le module qui gère les avertissements." -#: ../Doc/using/cmdline.rst:380 +#: ../Doc/using/cmdline.rst:391 msgid ":pep:`230` -- Warning framework" msgstr ":pep:`230` -- Gestion des alertes" -#: ../Doc/using/cmdline.rst:382 +#: ../Doc/using/cmdline.rst:393 msgid ":envvar:`PYTHONWARNINGS`" msgstr "" -#: ../Doc/using/cmdline.rst:387 +#: ../Doc/using/cmdline.rst:398 msgid "" "Skip the first line of the source, allowing use of non-Unix forms of ``#!" "cmd``. This is intended for a DOS specific hack only." @@ -709,7 +718,7 @@ msgstr "" "type ``#!cmd`` non conformes au standard Unix. L'objectif est de proposer " "une astuce spécifique pour le DOS." -#: ../Doc/using/cmdline.rst:393 +#: ../Doc/using/cmdline.rst:404 msgid "" "Reserved for various implementation-specific options. CPython currently " "defines the following possible values:" @@ -717,11 +726,11 @@ msgstr "" "Réservée pour les options spécifiques aux différentes implémentations. " "CPython reconnaît actuellement les valeurs suivantes :" -#: ../Doc/using/cmdline.rst:396 +#: ../Doc/using/cmdline.rst:407 msgid "``-X faulthandler`` to enable :mod:`faulthandler`;" msgstr "``-X faulthandler`` pour activer :mod:`faulthandler` ;" -#: ../Doc/using/cmdline.rst:397 +#: ../Doc/using/cmdline.rst:408 msgid "" "``-X showrefcount`` to output the total reference count and number of used " "memory blocks when the program finishes or after each statement in the " @@ -732,7 +741,7 @@ msgstr "" "entrée de l'interpréteur interactif. Ceci ne fonctionne que sur les versions " "compilées en mode débogage." -#: ../Doc/using/cmdline.rst:400 +#: ../Doc/using/cmdline.rst:411 msgid "" "``-X tracemalloc`` to start tracing Python memory allocations using the :mod:" "`tracemalloc` module. By default, only the most recent frame is stored in a " @@ -747,7 +756,7 @@ msgstr "" "limite des traces à *NFRAME* appels. Voir :func:`tracemalloc.start` pour " "plus d'informations." -#: ../Doc/using/cmdline.rst:405 +#: ../Doc/using/cmdline.rst:416 msgid "" "``-X showalloccount`` to output the total count of allocated objects for " "each type when the program finishes. This only works when Python was built " @@ -757,7 +766,7 @@ msgstr "" "total des objets alloués pour chaque type. Ceci ne fonctionne que si Python " "a été compilé avec l'option ``COUNT_ALLOCS``." -#: ../Doc/using/cmdline.rst:409 +#: ../Doc/using/cmdline.rst:420 msgid "" "It also allows passing arbitrary values and retrieving them through the :" "data:`sys._xoptions` dictionary." @@ -765,35 +774,35 @@ msgstr "" "Il est aussi possible de passer des valeurs arbitraires et de les récupérer " "par le dictionnaire :data:`sys._xoptions`." -#: ../Doc/using/cmdline.rst:412 +#: ../Doc/using/cmdline.rst:423 msgid "The :option:`-X` option was added." msgstr "L'option :option:`-X` a été ajoutée." -#: ../Doc/using/cmdline.rst:415 +#: ../Doc/using/cmdline.rst:426 msgid "The ``-X faulthandler`` option." msgstr "option ``-X faulthandler``." -#: ../Doc/using/cmdline.rst:418 +#: ../Doc/using/cmdline.rst:429 msgid "The ``-X showrefcount`` and ``-X tracemalloc`` options." msgstr "options ``-X showrefcount`` et ``-X tracemalloc`` ." -#: ../Doc/using/cmdline.rst:421 +#: ../Doc/using/cmdline.rst:432 msgid "The ``-X showalloccount`` option." msgstr "option ``-X showalloccount``." -#: ../Doc/using/cmdline.rst:426 +#: ../Doc/using/cmdline.rst:437 msgid "Options you shouldn't use" msgstr "Options à ne pas utiliser" -#: ../Doc/using/cmdline.rst:430 +#: ../Doc/using/cmdline.rst:441 msgid "Reserved for use by Jython_." msgstr "Utilisation réservée à Jython_." -#: ../Doc/using/cmdline.rst:438 +#: ../Doc/using/cmdline.rst:449 msgid "Environment variables" msgstr "Variables d'environnement" -#: ../Doc/using/cmdline.rst:440 +#: ../Doc/using/cmdline.rst:451 msgid "" "These environment variables influence Python's behavior, they are processed " "before the command-line switches other than -E or -I. It is customary that " @@ -805,7 +814,7 @@ msgstr "" "I. Il est d'usage que les options de la ligne de commande prennent le pas " "sur les variables d'environnement en cas de conflit." -#: ../Doc/using/cmdline.rst:447 +#: ../Doc/using/cmdline.rst:458 msgid "" "Change the location of the standard Python libraries. By default, the " "libraries are searched in :file:`{prefix}/lib/python{version}` and :file:" @@ -819,7 +828,7 @@ msgstr "" "`{préfixe_exec}` sont des répertoires qui dépendent de l'installation (leur " "valeur par défaut étant :file:`/usr/local`)." -#: ../Doc/using/cmdline.rst:453 +#: ../Doc/using/cmdline.rst:464 msgid "" "When :envvar:`PYTHONHOME` is set to a single directory, its value replaces " "both :file:`{prefix}` and :file:`{exec_prefix}`. To specify different " @@ -830,7 +839,7 @@ msgstr "" "spécifier des valeurs différentes à ces variables, définissez :envvar:" "`PYTHONHOME` à :file:`{prefix}:{exec_prefix}`." -#: ../Doc/using/cmdline.rst:460 +#: ../Doc/using/cmdline.rst:471 msgid "" "Augment the default search path for module files. The format is the same as " "the shell's :envvar:`PATH`: one or more directory pathnames separated by :" @@ -843,7 +852,7 @@ msgstr "" "points sous Unix et point-virgule sous Windows). Les répertoires qui " "n'existent pas sont ignorés silencieusement." -#: ../Doc/using/cmdline.rst:465 +#: ../Doc/using/cmdline.rst:476 msgid "" "In addition to normal directories, individual :envvar:`PYTHONPATH` entries " "may refer to zipfiles containing pure Python modules (in either source or " @@ -855,7 +864,7 @@ msgstr "" "compilée). Les modules d'extensions ne peuvent pas être importés à partir de " "fichiers zip." -#: ../Doc/using/cmdline.rst:469 +#: ../Doc/using/cmdline.rst:480 msgid "" "The default search path is installation dependent, but generally begins " "with :file:`{prefix}/lib/python{version}` (see :envvar:`PYTHONHOME` above). " @@ -865,7 +874,7 @@ msgstr "" "généralement par :file:`{préfixe}/lib/python{version}` (voir :envvar:" "`PYTHONHOME` ci-dessus). Il est *toujours* ajouté à :envvar:`PYTHONPATH`." -#: ../Doc/using/cmdline.rst:473 +#: ../Doc/using/cmdline.rst:484 msgid "" "An additional directory will be inserted in the search path in front of :" "envvar:`PYTHONPATH` as described above under :ref:`using-on-interface-" @@ -877,7 +886,7 @@ msgstr "" "envvar:`PYTHONPATH`. Le chemin de recherche peut être manipulé depuis un " "programme Python avec la variable :data:`sys.path`." -#: ../Doc/using/cmdline.rst:481 +#: ../Doc/using/cmdline.rst:492 msgid "" "If this is the name of a readable file, the Python commands in that file are " "executed before the first prompt is displayed in interactive mode. The file " @@ -896,7 +905,7 @@ msgstr "" "`sys.ps2` ainsi que la fonction automatique (*hook* en anglais) :data:`sys." "__interactivehook__` dans ce fichier." -#: ../Doc/using/cmdline.rst:491 +#: ../Doc/using/cmdline.rst:502 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-O` option. If set to an integer, it is equivalent to specifying :" @@ -906,7 +915,7 @@ msgstr "" "l'option :option:`-O`. Si elle est définie à un entier, c'est équivalent à " "spécifier l'option :option:`-O` plusieurs fois." -#: ../Doc/using/cmdline.rst:498 +#: ../Doc/using/cmdline.rst:509 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-d` option. If set to an integer, it is equivalent to specifying :" @@ -916,7 +925,7 @@ msgstr "" "l'option :option:`-d`. Si elle est définie à un entier, c'est équivalent à " "spécifier l'option :option:`-d` plusieurs fois." -#: ../Doc/using/cmdline.rst:505 +#: ../Doc/using/cmdline.rst:516 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-i` option." @@ -924,7 +933,7 @@ msgstr "" "Si elle est définie à une chaîne non vide, C'est équivalent à spécifier " "l'option :option:`-i`." -#: ../Doc/using/cmdline.rst:508 +#: ../Doc/using/cmdline.rst:519 msgid "" "This variable can also be modified by Python code using :data:`os.environ` " "to force inspect mode on program termination." @@ -932,7 +941,7 @@ msgstr "" "Cette variable peut aussi être modifiée par du code Python en utilisant :" "data:`os.environ` pour forcer le mode introspectif à la fin du programme." -#: ../Doc/using/cmdline.rst:514 +#: ../Doc/using/cmdline.rst:525 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-u` option." @@ -940,7 +949,7 @@ msgstr "" "Si elle est définie à une chaîne non vide, c'est équivalent à spécifier " "l'option :option:`-u`." -#: ../Doc/using/cmdline.rst:520 +#: ../Doc/using/cmdline.rst:531 msgid "" "If this is set to a non-empty string it is equivalent to specifying the :" "option:`-v` option. If set to an integer, it is equivalent to specifying :" @@ -950,7 +959,7 @@ msgstr "" "l'option :option:`-v`. Si elle est définie à un entier, c'est équivalent à " "spécifier l'option :option:`-v` plusieurs fois." -#: ../Doc/using/cmdline.rst:527 +#: ../Doc/using/cmdline.rst:538 msgid "" "If this is set, Python ignores case in :keyword:`import` statements. This " "only works on Windows and OS X." @@ -958,7 +967,7 @@ msgstr "" "Si elle est définie, Python ignore la casse dans les instructions :keyword:" "`import`. Ceci ne fonctionne que sous Windows et OS X." -#: ../Doc/using/cmdline.rst:533 +#: ../Doc/using/cmdline.rst:544 msgid "" "If this is set to a non-empty string, Python won't try to write ``.pyc`` " "files on the import of source modules. This is equivalent to specifying " @@ -968,7 +977,7 @@ msgstr "" "fichier ``.pyc`` à l'importation des modules sources. C'est équivalent à " "spécifier l'option :option:`-B`." -#: ../Doc/using/cmdline.rst:540 +#: ../Doc/using/cmdline.rst:551 msgid "" "If this variable is not set or set to ``random``, a random value is used to " "seed the hashes of str, bytes and datetime objects." @@ -977,7 +986,7 @@ msgstr "" "aléatoire est utilisée pour saler les empreintes des objets chaines, bytes " "et datetime." -#: ../Doc/using/cmdline.rst:543 +#: ../Doc/using/cmdline.rst:554 msgid "" "If :envvar:`PYTHONHASHSEED` is set to an integer value, it is used as a " "fixed seed for generating the hash() of the types covered by the hash " @@ -987,7 +996,7 @@ msgstr "" "utilisée comme valeur de salage pour générer les empreintes des types " "utilisant la randomisation du hachage." -#: ../Doc/using/cmdline.rst:547 +#: ../Doc/using/cmdline.rst:558 msgid "" "Its purpose is to allow repeatable hashing, such as for selftests for the " "interpreter itself, or to allow a cluster of python processes to share hash " @@ -997,7 +1006,7 @@ msgstr "" "l'interpréteur lui-même ou pour qu'un groupe de processus Python puisse " "partager des empreintes." -#: ../Doc/using/cmdline.rst:551 +#: ../Doc/using/cmdline.rst:562 msgid "" "The integer must be a decimal number in the range [0,4294967295]. " "Specifying the value 0 will disable hash randomization." @@ -1006,7 +1015,7 @@ msgstr "" "4 294 967 295. Spécifier la valeur 0 désactive la randomisation des " "empreintes." -#: ../Doc/using/cmdline.rst:559 +#: ../Doc/using/cmdline.rst:570 msgid "" "If this is set before running the interpreter, it overrides the encoding " "used for stdin/stdout/stderr, in the syntax ``encodingname:errorhandler``. " @@ -1020,7 +1029,7 @@ msgstr "" "facultatifs tous les deux et possèdent la même signification que dans :func:" "`str.encode`." -#: ../Doc/using/cmdline.rst:564 +#: ../Doc/using/cmdline.rst:575 msgid "" "For stderr, the ``:errorhandler`` part is ignored; the handler will always " "be ``'backslashreplace'``." @@ -1028,11 +1037,11 @@ msgstr "" "Pour la sortie d'erreur, la partie ``:gestionnaire_erreur`` est ignorée : le " "gestionnaire est toujours ``'backslashreplace'``." -#: ../Doc/using/cmdline.rst:567 +#: ../Doc/using/cmdline.rst:578 msgid "The ``encodingname`` part is now optional." msgstr "la partie ``nom_encodage`` est maintenant optionnelle." -#: ../Doc/using/cmdline.rst:570 +#: ../Doc/using/cmdline.rst:581 msgid "" "On Windows, the encoding specified by this variable is ignored for " "interactive console buffers unless :envvar:`PYTHONLEGACYWINDOWSSTDIO` is " @@ -1044,7 +1053,7 @@ msgstr "" "`PYTHONLEGACYWINDOWSSTDIO` ne soit aussi spécifié. Les fichiers et tubes " "(*pipes* en anglais) redirigés vers les flux standards ne sont pas concernés." -#: ../Doc/using/cmdline.rst:577 +#: ../Doc/using/cmdline.rst:588 msgid "" "If this is set, Python won't add the :data:`user site-packages directory " "` to :data:`sys.path`." @@ -1052,7 +1061,7 @@ msgstr "" "Si elle est définie, Python n'ajoute pas le répertoire :data:`site-packages " "utilisateur ` à :data:`sys.path`." -#: ../Doc/using/cmdline.rst:587 +#: ../Doc/using/cmdline.rst:598 msgid "" "Defines the :data:`user base directory `, which is used to " "compute the path of the :data:`user site-packages directory ` et :ref:`Installation alternative : le schéma " "user ` pour ``python setup.py install --user``." -#: ../Doc/using/cmdline.rst:599 +#: ../Doc/using/cmdline.rst:610 msgid "" "If this environment variable is set, ``sys.argv[0]`` will be set to its " "value instead of the value got through the C runtime. Only works on Mac OS " @@ -1074,7 +1083,7 @@ msgstr "" "la même valeur au lieu de la valeur fournie par l'exécutable. Ne fonctionne " "que sur Mac OS X." -#: ../Doc/using/cmdline.rst:605 +#: ../Doc/using/cmdline.rst:616 msgid "" "This is equivalent to the :option:`-W` option. If set to a comma separated " "string, it is equivalent to specifying :option:`-W` multiple times." @@ -1083,7 +1092,7 @@ msgstr "" "chaîne séparée par des virgules, c'est équivalent à spécifier l'option :" "option:`-W` plusieurs fois." -#: ../Doc/using/cmdline.rst:611 +#: ../Doc/using/cmdline.rst:622 msgid "" "If this environment variable is set to a non-empty string, :func:" "`faulthandler.enable` is called at startup: install a handler for :const:" @@ -1097,7 +1106,7 @@ msgstr "" "`SIGILL` afin de générer une trace de la pile d'appels. C'est équivalent à " "spécifier l'option :option:`-X` ``faulthandler``." -#: ../Doc/using/cmdline.rst:622 +#: ../Doc/using/cmdline.rst:633 msgid "" "If this environment variable is set to a non-empty string, start tracing " "Python memory allocations using the :mod:`tracemalloc` module. The value of " @@ -1112,7 +1121,7 @@ msgstr "" "ne stocke que l'appel le plus récent. Voir :func:`tracemalloc.start` pour " "davantage d'informations." -#: ../Doc/using/cmdline.rst:633 +#: ../Doc/using/cmdline.rst:644 msgid "" "If this environment variable is set to a non-empty string, enable the :ref:" "`debug mode ` of the :mod:`asyncio` module." @@ -1120,17 +1129,17 @@ msgstr "" "Si elle est définie à une chaîne non vide, active le :ref:`mode debogage " "` du module :mod:`asyncio`." -#: ../Doc/using/cmdline.rst:641 +#: ../Doc/using/cmdline.rst:652 msgid "Set the Python memory allocators and/or install debug hooks." msgstr "" "Définit l'allocateur mémoire de Python ou installe des fonctions " "automatiques de débogage." -#: ../Doc/using/cmdline.rst:643 +#: ../Doc/using/cmdline.rst:654 msgid "Set the family of memory allocators used by Python:" msgstr "Définit la famille d'allocateurs mémoire utilisés par Python :" -#: ../Doc/using/cmdline.rst:645 +#: ../Doc/using/cmdline.rst:656 msgid "" "``malloc``: use the :c:func:`malloc` function of the C library for all " "domains (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:`PYMEM_DOMAIN_MEM`, :c:data:" @@ -1140,7 +1149,7 @@ msgstr "" "standard pour tous les domaines (:c:data:`PYMEM_DOMAIN_RAW`, :c:data:" "`PYMEM_DOMAIN_MEM`, :c:data:`PYMEM_DOMAIN_OBJ`)." -#: ../Doc/using/cmdline.rst:648 +#: ../Doc/using/cmdline.rst:659 msgid "" "``pymalloc``: use the :ref:`pymalloc allocator ` for :c:data:" "`PYMEM_DOMAIN_MEM` and :c:data:`PYMEM_DOMAIN_OBJ` domains and use the :c:" @@ -1151,29 +1160,29 @@ msgstr "" "utilise la fonction :c:func:`malloc` pour le domaine :c:data:" "`PYMEM_DOMAIN_RAW`." -#: ../Doc/using/cmdline.rst:652 +#: ../Doc/using/cmdline.rst:663 msgid "Install debug hooks:" msgstr "Installe des fonctions automatiques de débogage :" -#: ../Doc/using/cmdline.rst:654 +#: ../Doc/using/cmdline.rst:665 msgid "``debug``: install debug hooks on top of the default memory allocator" msgstr "" "``debug`` : installe des fonctions automatiques de débogage au-dessus de " "l'allocateur mémoire par défaut." -#: ../Doc/using/cmdline.rst:655 +#: ../Doc/using/cmdline.rst:666 msgid "``malloc_debug``: same as ``malloc`` but also install debug hooks" msgstr "" "``malloc_debug``: identique à ``malloc`` mais installe aussi des fonctions " "automatiques de débogage." -#: ../Doc/using/cmdline.rst:656 +#: ../Doc/using/cmdline.rst:667 msgid "``pymalloc_debug``: same as ``pymalloc`` but also install debug hooks" msgstr "" "``pymalloc_debug``: identique à ``pymalloc`` mais installe aussi des " "fonctions automatiques de débogage." -#: ../Doc/using/cmdline.rst:658 +#: ../Doc/using/cmdline.rst:669 msgid "" "When Python is compiled in release mode, the default is ``pymalloc``. When " "compiled in debug mode, the default is ``pymalloc_debug`` and the debug " @@ -1184,7 +1193,7 @@ msgstr "" "est ``pymalloc_debug`` et les fonctions automatiques de débogage sont " "utilisées automatiquement." -#: ../Doc/using/cmdline.rst:662 +#: ../Doc/using/cmdline.rst:673 msgid "" "If Python is configured without ``pymalloc`` support, ``pymalloc`` and " "``pymalloc_debug`` are not available, the default is ``malloc`` in release " @@ -1194,7 +1203,7 @@ msgstr "" "``pymalloc_debug`` ne sont pas disponibles. Les valeurs par défaut sont " "``malloc`` en mode \"release\" et ``malloc_debug`` en mode débogage." -#: ../Doc/using/cmdline.rst:666 +#: ../Doc/using/cmdline.rst:677 msgid "" "See the :c:func:`PyMem_SetupDebugHooks` function for debug hooks on Python " "memory allocators." @@ -1203,7 +1212,7 @@ msgstr "" "concerne les fonctions automatiques de débogage de l'allocateur mémoire de " "Python." -#: ../Doc/using/cmdline.rst:674 +#: ../Doc/using/cmdline.rst:685 msgid "" "If set to a non-empty string, Python will print statistics of the :ref:" "`pymalloc memory allocator ` every time a new pymalloc object " @@ -1214,7 +1223,7 @@ msgstr "" "qu'un objet est créé par ce gestionnaire, ainsi qu'à la fin de l'exécution " "du programme." -#: ../Doc/using/cmdline.rst:678 +#: ../Doc/using/cmdline.rst:689 msgid "" "This variable is ignored if the :envvar:`PYTHONMALLOC` environment variable " "is used to force the :c:func:`malloc` allocator of the C library, or if " @@ -1225,7 +1234,7 @@ msgstr "" "bibliothèque C standard ou si Python est configuré sans le support de " "``pymalloc``." -#: ../Doc/using/cmdline.rst:682 +#: ../Doc/using/cmdline.rst:693 msgid "" "This variable can now also be used on Python compiled in release mode. It " "now has no effect if set to an empty string." @@ -1233,7 +1242,7 @@ msgstr "" "Cette variable peut maintenant être utilisée avec Python compilé en mode " "\"release\". Elle n'a pas d'effet si elle est définie à une chaine vide." -#: ../Doc/using/cmdline.rst:689 +#: ../Doc/using/cmdline.rst:700 msgid "" "If set to a non-empty string, the default filesystem encoding and errors " "mode will revert to their pre-3.6 values of 'mbcs' and 'replace', " @@ -1245,7 +1254,7 @@ msgstr "" "valeur pré-3.6, respectivement 'mbcs' et 'replace'. Sinon, les nouvelles " "valeurs par défaut 'utf-8' et 'surrogatepass' sont utilisées." -#: ../Doc/using/cmdline.rst:693 +#: ../Doc/using/cmdline.rst:704 msgid "" "This may also be enabled at runtime with :func:`sys." "_enablelegacywindowsfsencoding()`." @@ -1253,15 +1262,15 @@ msgstr "" "Vous pouvez aussi activer ceci à l'exécution avec :func:`sys." "_enablelegacywindowsfsencoding()`." -#: ../Doc/using/cmdline.rst:696 ../Doc/using/cmdline.rst:710 +#: ../Doc/using/cmdline.rst:707 ../Doc/using/cmdline.rst:721 msgid "Availability: Windows" msgstr "Disponibilité : Windows" -#: ../Doc/using/cmdline.rst:698 +#: ../Doc/using/cmdline.rst:709 msgid "See :pep:`529` for more details." msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/using/cmdline.rst:703 +#: ../Doc/using/cmdline.rst:714 msgid "" "If set to a non-empty string, does not use the new console reader and " "writer. This means that Unicode characters will be encoded according to the " @@ -1271,7 +1280,7 @@ msgstr "" "et écrivain de la nouvelle console. Cela signifie que les caractères Unicode " "sont encodés avec l'encodage de la console active plutôt qu'en utf-8." -#: ../Doc/using/cmdline.rst:707 +#: ../Doc/using/cmdline.rst:718 msgid "" "This variable is ignored if the standard streams are redirected (to files or " "pipes) rather than referring to console buffers." @@ -1280,11 +1289,11 @@ msgstr "" "fichiers ou des tubes) plutôt que pointant vers des mémoires tampons de " "console." -#: ../Doc/using/cmdline.rst:715 +#: ../Doc/using/cmdline.rst:726 msgid "Debug-mode variables" msgstr "Variables en mode débogage" -#: ../Doc/using/cmdline.rst:717 +#: ../Doc/using/cmdline.rst:728 msgid "" "Setting these variables only has an effect in a debug build of Python, that " "is, if Python was configured with the ``--with-pydebug`` build option." @@ -1293,13 +1302,13 @@ msgstr "" "débogage, c'est-à-dire que l'option de compilation ``--with-pydebug`` a été " "spécifiée." -#: ../Doc/using/cmdline.rst:722 +#: ../Doc/using/cmdline.rst:733 msgid "If set, Python will print threading debug info." msgstr "" "Si elle est définie, Python affiche des informations de débogage relatives " "aux différents fils d'exécution." -#: ../Doc/using/cmdline.rst:727 +#: ../Doc/using/cmdline.rst:738 msgid "" "If set, Python will dump objects and reference counts still alive after " "shutting down the interpreter." @@ -1308,6 +1317,15 @@ msgstr "" "compteurs de références toujours existant après la fermeture de " "l'interpréteur." +#~ msgid "Turn on basic optimizations. See also :envvar:`PYTHONOPTIMIZE`." +#~ msgstr "" +#~ "Active les optimisations basiques. Voir aussi :envvar:`PYTHONOPTIMIZE`." + +#~ msgid "Discard docstrings in addition to the :option:`-O` optimizations." +#~ msgstr "" +#~ "Supprime les docstrings en plus des optimisations réalisées par :option:`-" +#~ "O`." + #~ msgid "The line numbers in error messages will be off by one." #~ msgstr "" #~ "Les numéros de ligne dans les messages d'erreur seront décalés de un." diff --git a/using/unix.po b/using/unix.po index 7c35d7b5a..a17d3094d 100644 --- a/using/unix.po +++ b/using/unix.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-09-12 13:37+0200\n" +"POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -87,29 +87,29 @@ msgid "FreeBSD users, to add the package use::" msgstr "" #: ../Doc/using/unix.rst:46 -msgid "OpenBSD users use::" +msgid "OpenBSD users, to add the package use::" msgstr "" -#: ../Doc/using/unix.rst:50 +#: ../Doc/using/unix.rst:52 msgid "For example i386 users get the 2.5.1 version of Python using::" msgstr "" -#: ../Doc/using/unix.rst:56 +#: ../Doc/using/unix.rst:58 msgid "On OpenSolaris" msgstr "" -#: ../Doc/using/unix.rst:58 +#: ../Doc/using/unix.rst:60 msgid "" "You can get Python from `OpenCSW `_. Various " "versions of Python are available and can be installed with e.g. ``pkgutil -i " "python27``." msgstr "" -#: ../Doc/using/unix.rst:65 +#: ../Doc/using/unix.rst:67 msgid "Building Python" msgstr "" -#: ../Doc/using/unix.rst:67 +#: ../Doc/using/unix.rst:69 msgid "" "If you want to compile CPython yourself, first thing you should do is get " "the `source `_. You can download " @@ -118,29 +118,29 @@ msgid "" "contribute patches, you will need a clone.)" msgstr "" -#: ../Doc/using/unix.rst:73 +#: ../Doc/using/unix.rst:75 msgid "The build process consists in the usual ::" msgstr "" -#: ../Doc/using/unix.rst:79 +#: ../Doc/using/unix.rst:81 msgid "" "invocations. Configuration options and caveats for specific Unix platforms " "are extensively documented in the :source:`README.rst` file in the root of " "the Python source tree." msgstr "" -#: ../Doc/using/unix.rst:85 +#: ../Doc/using/unix.rst:87 msgid "" "``make install`` can overwrite or masquerade the :file:`python3` binary. " "``make altinstall`` is therefore recommended instead of ``make install`` " "since it only installs :file:`{exec_prefix}/bin/python{version}`." msgstr "" -#: ../Doc/using/unix.rst:91 +#: ../Doc/using/unix.rst:93 msgid "Python-related paths and files" msgstr "" -#: ../Doc/using/unix.rst:93 +#: ../Doc/using/unix.rst:95 msgid "" "These are subject to difference depending on local installation " "conventions; :envvar:`prefix` (``${prefix}``) and :envvar:`exec_prefix` (``" @@ -148,91 +148,91 @@ msgid "" "for GNU software; they may be the same." msgstr "" -#: ../Doc/using/unix.rst:98 +#: ../Doc/using/unix.rst:100 msgid "" "For example, on most Linux systems, the default for both is :file:`/usr`." msgstr "" -#: ../Doc/using/unix.rst:101 +#: ../Doc/using/unix.rst:103 msgid "File/directory" msgstr "" -#: ../Doc/using/unix.rst:101 +#: ../Doc/using/unix.rst:103 msgid "Meaning" msgstr "Signification" -#: ../Doc/using/unix.rst:103 +#: ../Doc/using/unix.rst:105 msgid ":file:`{exec_prefix}/bin/python3`" msgstr "" -#: ../Doc/using/unix.rst:103 +#: ../Doc/using/unix.rst:105 msgid "Recommended location of the interpreter." msgstr "" -#: ../Doc/using/unix.rst:105 +#: ../Doc/using/unix.rst:107 msgid "" ":file:`{prefix}/lib/python{version}`, :file:`{exec_prefix}/lib/" "python{version}`" msgstr "" -#: ../Doc/using/unix.rst:105 +#: ../Doc/using/unix.rst:107 msgid "" "Recommended locations of the directories containing the standard modules." msgstr "" -#: ../Doc/using/unix.rst:108 +#: ../Doc/using/unix.rst:110 msgid "" ":file:`{prefix}/include/python{version}`, :file:`{exec_prefix}/include/" "python{version}`" msgstr "" -#: ../Doc/using/unix.rst:108 +#: ../Doc/using/unix.rst:110 msgid "" "Recommended locations of the directories containing the include files needed " "for developing Python extensions and embedding the interpreter." msgstr "" -#: ../Doc/using/unix.rst:116 +#: ../Doc/using/unix.rst:118 msgid "Miscellaneous" msgstr "" -#: ../Doc/using/unix.rst:118 +#: ../Doc/using/unix.rst:120 msgid "" "To easily use Python scripts on Unix, you need to make them executable, e.g. " "with ::" msgstr "" -#: ../Doc/using/unix.rst:123 +#: ../Doc/using/unix.rst:125 msgid "" "and put an appropriate Shebang line at the top of the script. A good choice " "is usually ::" msgstr "" -#: ../Doc/using/unix.rst:128 +#: ../Doc/using/unix.rst:130 msgid "" "which searches for the Python interpreter in the whole :envvar:`PATH`. " "However, some Unices may not have the :program:`env` command, so you may " "need to hardcode ``/usr/bin/python3`` as the interpreter path." msgstr "" -#: ../Doc/using/unix.rst:132 +#: ../Doc/using/unix.rst:134 msgid "" "To use shell commands in your Python scripts, look at the :mod:`subprocess` " "module." msgstr "" -#: ../Doc/using/unix.rst:136 +#: ../Doc/using/unix.rst:138 msgid "Editors and IDEs" msgstr "" -#: ../Doc/using/unix.rst:138 +#: ../Doc/using/unix.rst:140 msgid "" "There are a number of IDEs that support Python programming language. Many " "editors and IDEs provide syntax highlighting, debugging tools, and PEP-8 " "checks." msgstr "" -#: ../Doc/using/unix.rst:141 +#: ../Doc/using/unix.rst:143 msgid "" "Please go to `Python Editors `_ " "and `Integrated Development Environments Date: Fri, 23 Mar 2018 15:05:10 +0100 Subject: [PATCH 035/115] Let's use a git branch instead of pomerge and a subdirectory (see README on master). --- .tx/config | 932 ++++++++++++++++++++++++++--------------------------- 1 file changed, 466 insertions(+), 466 deletions(-) diff --git a/.tx/config b/.tx/config index 3eb456d8f..ad2c832c4 100644 --- a/.tx/config +++ b/.tx/config @@ -1,2332 +1,2332 @@ [main] host = https://www.transifex.com [python-36.glossary_] -trans.fr = .tx/glossary.po +trans.fr = glossary.po type = PO source_lang = en [python-36.license] -trans.fr = .tx/license.po +trans.fr = license.po type = PO source_lang = en [python-36.sphinx] -trans.fr = .tx/sphinx.po +trans.fr = sphinx.po type = PO source_lang = en [python-36.about] -trans.fr = .tx/about.po +trans.fr = about.po type = PO source_lang = en [python-36.bugs] -trans.fr = .tx/bugs.po +trans.fr = bugs.po type = PO source_lang = en [python-36.copyright] -trans.fr = .tx/copyright.po +trans.fr = copyright.po type = PO source_lang = en [python-36.contents] -trans.fr = .tx/contents.po +trans.fr = contents.po type = PO source_lang = en [python-36.library--re] -trans.fr = .tx/library/re.po +trans.fr = library/re.po type = PO source_lang = en [python-36.library--sysconfig] -trans.fr = .tx/library/sysconfig.po +trans.fr = library/sysconfig.po type = PO source_lang = en [python-36.library--getpass] -trans.fr = .tx/library/getpass.po +trans.fr = library/getpass.po type = PO source_lang = en [python-36.library--imghdr] -trans.fr = .tx/library/imghdr.po +trans.fr = library/imghdr.po type = PO source_lang = en [python-36.library--zipapp] -trans.fr = .tx/library/zipapp.po +trans.fr = library/zipapp.po type = PO source_lang = en [python-36.library--urllib_error] -trans.fr = .tx/library/urllib.error.po +trans.fr = library/urllib.error.po type = PO source_lang = en [python-36.library--urllib_parse] -trans.fr = .tx/library/urllib.parse.po +trans.fr = library/urllib.parse.po type = PO source_lang = en [python-36.library--xml_sax_utils] -trans.fr = .tx/library/xml.sax.utils.po +trans.fr = library/xml.sax.utils.po type = PO source_lang = en [python-36.library--mmap] -trans.fr = .tx/library/mmap.po +trans.fr = library/mmap.po type = PO source_lang = en [python-36.library--difflib] -trans.fr = .tx/library/difflib.po +trans.fr = library/difflib.po type = PO source_lang = en [python-36.library--tkinter_scrolledtext] -trans.fr = .tx/library/tkinter.scrolledtext.po +trans.fr = library/tkinter.scrolledtext.po type = PO source_lang = en [python-36.library--parser] -trans.fr = .tx/library/parser.po +trans.fr = library/parser.po type = PO source_lang = en [python-36.library--pyexpat] -trans.fr = .tx/library/pyexpat.po +trans.fr = library/pyexpat.po type = PO source_lang = en [python-36.library--curses_panel] -trans.fr = .tx/library/curses.panel.po +trans.fr = library/curses.panel.po type = PO source_lang = en [python-36.library--fractions] -trans.fr = .tx/library/fractions.po +trans.fr = library/fractions.po type = PO source_lang = en [python-36.library--asyncio-subprocess] -trans.fr = .tx/library/asyncio-subprocess.po +trans.fr = library/asyncio-subprocess.po type = PO source_lang = en [python-36.library--compileall] -trans.fr = .tx/library/compileall.po +trans.fr = library/compileall.po type = PO source_lang = en [python-36.library--optparse] -trans.fr = .tx/library/optparse.po +trans.fr = library/optparse.po type = PO source_lang = en [python-36.library--imp] -trans.fr = .tx/library/imp.po +trans.fr = library/imp.po type = PO source_lang = en [python-36.library--locale] -trans.fr = .tx/library/locale.po +trans.fr = library/locale.po type = PO source_lang = en [python-36.library--ctypes] -trans.fr = .tx/library/ctypes.po +trans.fr = library/ctypes.po type = PO source_lang = en [python-36.library--doctest] -trans.fr = .tx/library/doctest.po +trans.fr = library/doctest.po type = PO source_lang = en [python-36.library--distribution] -trans.fr = .tx/library/distribution.po +trans.fr = library/distribution.po type = PO source_lang = en [python-36.library--ipc] -trans.fr = .tx/library/ipc.po +trans.fr = library/ipc.po type = PO source_lang = en [python-36.library--numeric] -trans.fr = .tx/library/numeric.po +trans.fr = library/numeric.po type = PO source_lang = en [python-36.library--email_headerregistry] -trans.fr = .tx/library/email.headerregistry.po +trans.fr = library/email.headerregistry.po type = PO source_lang = en [python-36.library--wave] -trans.fr = .tx/library/wave.po +trans.fr = library/wave.po type = PO source_lang = en [python-36.library--email_errors] -trans.fr = .tx/library/email.errors.po +trans.fr = library/email.errors.po type = PO source_lang = en [python-36.library--sunau] -trans.fr = .tx/library/sunau.po +trans.fr = library/sunau.po type = PO source_lang = en [python-36.library--datetime] -trans.fr = .tx/library/datetime.po +trans.fr = library/datetime.po type = PO source_lang = en [python-36.library--macpath] -trans.fr = .tx/library/macpath.po +trans.fr = library/macpath.po type = PO source_lang = en [python-36.library--unix] -trans.fr = .tx/library/unix.po +trans.fr = library/unix.po type = PO source_lang = en [python-36.library--array] -trans.fr = .tx/library/array.po +trans.fr = library/array.po type = PO source_lang = en [python-36.library--email_policy] -trans.fr = .tx/library/email.policy.po +trans.fr = library/email.policy.po type = PO source_lang = en [python-36.library--sched] -trans.fr = .tx/library/sched.po +trans.fr = library/sched.po type = PO source_lang = en [python-36.library--http_cookies] -trans.fr = .tx/library/http.cookies.po +trans.fr = library/http.cookies.po type = PO source_lang = en [python-36.library--shutil] -trans.fr = .tx/library/shutil.po +trans.fr = library/shutil.po type = PO source_lang = en [python-36.library--symbol] -trans.fr = .tx/library/symbol.po +trans.fr = library/symbol.po type = PO source_lang = en [python-36.library--xml_dom_minidom] -trans.fr = .tx/library/xml.dom.minidom.po +trans.fr = library/xml.dom.minidom.po type = PO source_lang = en [python-36.library--modules] -trans.fr = .tx/library/modules.po +trans.fr = library/modules.po type = PO source_lang = en [python-36.library--unicodedata] -trans.fr = .tx/library/unicodedata.po +trans.fr = library/unicodedata.po type = PO source_lang = en [python-36.library--tkinter_ttk] -trans.fr = .tx/library/tkinter.ttk.po +trans.fr = library/tkinter.ttk.po type = PO source_lang = en [python-36.library--binascii] -trans.fr = .tx/library/binascii.po +trans.fr = library/binascii.po type = PO source_lang = en [python-36.library--linecache] -trans.fr = .tx/library/linecache.po +trans.fr = library/linecache.po type = PO source_lang = en [python-36.library--functools] -trans.fr = .tx/library/functools.po +trans.fr = library/functools.po type = PO source_lang = en [python-36.library--xml_sax_reader] -trans.fr = .tx/library/xml.sax.reader.po +trans.fr = library/xml.sax.reader.po type = PO source_lang = en [python-36.library--pydoc] -trans.fr = .tx/library/pydoc.po +trans.fr = library/pydoc.po type = PO source_lang = en [python-36.library--pwd] -trans.fr = .tx/library/pwd.po +trans.fr = library/pwd.po type = PO source_lang = en [python-36.library--selectors] -trans.fr = .tx/library/selectors.po +trans.fr = library/selectors.po type = PO source_lang = en [python-36.library--os_path] -trans.fr = .tx/library/os.path.po +trans.fr = library/os.path.po type = PO source_lang = en [python-36.library--asyncio-sync] -trans.fr = .tx/library/asyncio-sync.po +trans.fr = library/asyncio-sync.po type = PO source_lang = en [python-36.library--_dummy_thread] -trans.fr = .tx/library/_dummy_thread.po +trans.fr = library/_dummy_thread.po type = PO source_lang = en [python-36.library--fcntl] -trans.fr = .tx/library/fcntl.po +trans.fr = library/fcntl.po type = PO source_lang = en [python-36.library--constants] -trans.fr = .tx/library/constants.po +trans.fr = library/constants.po type = PO source_lang = en [python-36.library--statistics] -trans.fr = .tx/library/statistics.po +trans.fr = library/statistics.po type = PO source_lang = en [python-36.library--pty] -trans.fr = .tx/library/pty.po +trans.fr = library/pty.po type = PO source_lang = en [python-36.library--crypto] -trans.fr = .tx/library/crypto.po +trans.fr = library/crypto.po type = PO source_lang = en [python-36.library--xml] -trans.fr = .tx/library/xml.po +trans.fr = library/xml.po type = PO source_lang = en [python-36.library--imaplib] -trans.fr = .tx/library/imaplib.po +trans.fr = library/imaplib.po type = PO source_lang = en [python-36.library--text] -trans.fr = .tx/library/text.po +trans.fr = library/text.po type = PO source_lang = en [python-36.library--mm] -trans.fr = .tx/library/mm.po +trans.fr = library/mm.po type = PO source_lang = en [python-36.library--tempfile] -trans.fr = .tx/library/tempfile.po +trans.fr = library/tempfile.po type = PO source_lang = en [python-36.library--traceback] -trans.fr = .tx/library/traceback.po +trans.fr = library/traceback.po type = PO source_lang = en [python-36.library--itertools] -trans.fr = .tx/library/itertools.po +trans.fr = library/itertools.po type = PO source_lang = en [python-36.library--__future__] -trans.fr = .tx/library/__future__.po +trans.fr = library/__future__.po type = PO source_lang = en [python-36.library--csv] -trans.fr = .tx/library/csv.po +trans.fr = library/csv.po type = PO source_lang = en [python-36.library--stringprep] -trans.fr = .tx/library/stringprep.po +trans.fr = library/stringprep.po type = PO source_lang = en [python-36.library--development] -trans.fr = .tx/library/development.po +trans.fr = library/development.po type = PO source_lang = en [python-36.library--platform] -trans.fr = .tx/library/platform.po +trans.fr = library/platform.po type = PO source_lang = en [python-36.library--time] -trans.fr = .tx/library/time.po +trans.fr = library/time.po type = PO source_lang = en [python-36.library--pyclbr] -trans.fr = .tx/library/pyclbr.po +trans.fr = library/pyclbr.po type = PO source_lang = en [python-36.library--crypt] -trans.fr = .tx/library/crypt.po +trans.fr = library/crypt.po type = PO source_lang = en [python-36.library--token] -trans.fr = .tx/library/token.po +trans.fr = library/token.po type = PO source_lang = en [python-36.library--spwd] -trans.fr = .tx/library/spwd.po +trans.fr = library/spwd.po type = PO source_lang = en [python-36.library--modulefinder] -trans.fr = .tx/library/modulefinder.po +trans.fr = library/modulefinder.po type = PO source_lang = en [python-36.library--argparse] -trans.fr = .tx/library/argparse.po +trans.fr = library/argparse.po type = PO source_lang = en [python-36.library--collections] -trans.fr = .tx/library/collections.po +trans.fr = library/collections.po type = PO source_lang = en [python-36.library--http] -trans.fr = .tx/library/http.po +trans.fr = library/http.po type = PO source_lang = en [python-36.library--email] -trans.fr = .tx/library/email.po +trans.fr = library/email.po type = PO source_lang = en [python-36.library--http_cookiejar] -trans.fr = .tx/library/http.cookiejar.po +trans.fr = library/http.cookiejar.po type = PO source_lang = en [python-36.library--cmd] -trans.fr = .tx/library/cmd.po +trans.fr = library/cmd.po type = PO source_lang = en [python-36.library--xml_dom_pulldom] -trans.fr = .tx/library/xml.dom.pulldom.po +trans.fr = library/xml.dom.pulldom.po type = PO source_lang = en [python-36.library--glob] -trans.fr = .tx/library/glob.po +trans.fr = library/glob.po type = PO source_lang = en [python-36.library--keyword] -trans.fr = .tx/library/keyword.po +trans.fr = library/keyword.po type = PO source_lang = en [python-36.library--concurrency] -trans.fr = .tx/library/concurrency.po +trans.fr = library/concurrency.po type = PO source_lang = en [python-36.library--atexit] -trans.fr = .tx/library/atexit.po +trans.fr = library/atexit.po type = PO source_lang = en [python-36.library--py_compile] -trans.fr = .tx/library/py_compile.po +trans.fr = library/py_compile.po type = PO source_lang = en [python-36.library--email_encoders] -trans.fr = .tx/library/email.encoders.po +trans.fr = library/email.encoders.po type = PO source_lang = en [python-36.library--inspect] -trans.fr = .tx/library/inspect.po +trans.fr = library/inspect.po type = PO source_lang = en [python-36.library--unittest_mock] -trans.fr = .tx/library/unittest.mock.po +trans.fr = library/unittest.mock.po type = PO source_lang = en [python-36.library--asyncio-eventloops] -trans.fr = .tx/library/asyncio-eventloops.po +trans.fr = library/asyncio-eventloops.po type = PO source_lang = en [python-36.library--allos] -trans.fr = .tx/library/allos.po +trans.fr = library/allos.po type = PO source_lang = en [python-36.library--stat] -trans.fr = .tx/library/stat.po +trans.fr = library/stat.po type = PO source_lang = en [python-36.library--curses] -trans.fr = .tx/library/curses.po +trans.fr = library/curses.po type = PO source_lang = en [python-36.library--persistence] -trans.fr = .tx/library/persistence.po +trans.fr = library/persistence.po type = PO source_lang = en [python-36.library--trace] -trans.fr = .tx/library/trace.po +trans.fr = library/trace.po type = PO source_lang = en [python-36.library--zipfile] -trans.fr = .tx/library/zipfile.po +trans.fr = library/zipfile.po type = PO source_lang = en [python-36.library--mimetypes] -trans.fr = .tx/library/mimetypes.po +trans.fr = library/mimetypes.po type = PO source_lang = en [python-36.library--superseded] -trans.fr = .tx/library/superseded.po +trans.fr = library/superseded.po type = PO source_lang = en [python-36.library--internet] -trans.fr = .tx/library/internet.po +trans.fr = library/internet.po type = PO source_lang = en [python-36.library--poplib] -trans.fr = .tx/library/poplib.po +trans.fr = library/poplib.po type = PO source_lang = en [python-36.library--language] -trans.fr = .tx/library/language.po +trans.fr = library/language.po type = PO source_lang = en [python-36.library--string] -trans.fr = .tx/library/string.po +trans.fr = library/string.po type = PO source_lang = en [python-36.library--mailcap] -trans.fr = .tx/library/mailcap.po +trans.fr = library/mailcap.po type = PO source_lang = en [python-36.library--email_parser] -trans.fr = .tx/library/email.parser.po +trans.fr = library/email.parser.po type = PO source_lang = en [python-36.library--bz2] -trans.fr = .tx/library/bz2.po +trans.fr = library/bz2.po type = PO source_lang = en [python-36.library--builtins] -trans.fr = .tx/library/builtins.po +trans.fr = library/builtins.po type = PO source_lang = en [python-36.library--logging_config] -trans.fr = .tx/library/logging.config.po +trans.fr = library/logging.config.po type = PO source_lang = en [python-36.library--xml_sax_handler] -trans.fr = .tx/library/xml.sax.handler.po +trans.fr = library/xml.sax.handler.po type = PO source_lang = en [python-36.library--intro] -trans.fr = .tx/library/intro.po +trans.fr = library/intro.po type = PO source_lang = en [python-36.library--python] -trans.fr = .tx/library/python.po +trans.fr = library/python.po type = PO source_lang = en [python-36.library--tarfile] -trans.fr = .tx/library/tarfile.po +trans.fr = library/tarfile.po type = PO source_lang = en [python-36.library--fnmatch] -trans.fr = .tx/library/fnmatch.po +trans.fr = library/fnmatch.po type = PO source_lang = en [python-36.library--tty] -trans.fr = .tx/library/tty.po +trans.fr = library/tty.po type = PO source_lang = en [python-36.library--signal] -trans.fr = .tx/library/signal.po +trans.fr = library/signal.po type = PO source_lang = en [python-36.library--contextlib] -trans.fr = .tx/library/contextlib.po +trans.fr = library/contextlib.po type = PO source_lang = en [python-36.library--pkgutil] -trans.fr = .tx/library/pkgutil.po +trans.fr = library/pkgutil.po type = PO source_lang = en [python-36.library--codeop] -trans.fr = .tx/library/codeop.po +trans.fr = library/codeop.po type = PO source_lang = en [python-36.library--gettext] -trans.fr = .tx/library/gettext.po +trans.fr = library/gettext.po type = PO source_lang = en [python-36.library--enum] -trans.fr = .tx/library/enum.po +trans.fr = library/enum.po type = PO source_lang = en [python-36.library--decimal] -trans.fr = .tx/library/decimal.po +trans.fr = library/decimal.po type = PO source_lang = en [python-36.library--asyncio] -trans.fr = .tx/library/asyncio.po +trans.fr = library/asyncio.po type = PO source_lang = en [python-36.library--windows] -trans.fr = .tx/library/windows.po +trans.fr = library/windows.po type = PO source_lang = en [python-36.library--urllib_request] -trans.fr = .tx/library/urllib.request.po +trans.fr = library/urllib.request.po type = PO source_lang = en [python-36.library--socket] -trans.fr = .tx/library/socket.po +trans.fr = library/socket.po type = PO source_lang = en [python-36.library--mailbox] -trans.fr = .tx/library/mailbox.po +trans.fr = library/mailbox.po type = PO source_lang = en [python-36.library--rlcompleter] -trans.fr = .tx/library/rlcompleter.po +trans.fr = library/rlcompleter.po type = PO source_lang = en [python-36.library--gzip] -trans.fr = .tx/library/gzip.po +trans.fr = library/gzip.po type = PO source_lang = en [python-36.library--http_client] -trans.fr = .tx/library/http.client.po +trans.fr = library/http.client.po type = PO source_lang = en [python-36.library--pickle] -trans.fr = .tx/library/pickle.po +trans.fr = library/pickle.po type = PO source_lang = en [python-36.library--concurrent] -trans.fr = .tx/library/concurrent.po +trans.fr = library/concurrent.po type = PO source_lang = en [python-36.library--timeit] -trans.fr = .tx/library/timeit.po +trans.fr = library/timeit.po type = PO source_lang = en [python-36.library--tkinter_tix] -trans.fr = .tx/library/tkinter.tix.po +trans.fr = library/tkinter.tix.po type = PO source_lang = en [python-36.library--readline] -trans.fr = .tx/library/readline.po +trans.fr = library/readline.po type = PO source_lang = en [python-36.library--netrc] -trans.fr = .tx/library/netrc.po +trans.fr = library/netrc.po type = PO source_lang = en [python-36.library--asyncio-dev] -trans.fr = .tx/library/asyncio-dev.po +trans.fr = library/asyncio-dev.po type = PO source_lang = en [python-36.library--email_charset] -trans.fr = .tx/library/email.charset.po +trans.fr = library/email.charset.po type = PO source_lang = en [python-36.library--venv] -trans.fr = .tx/library/venv.po +trans.fr = library/venv.po type = PO source_lang = en [python-36.library--struct] -trans.fr = .tx/library/struct.po +trans.fr = library/struct.po type = PO source_lang = en [python-36.library--dbm] -trans.fr = .tx/library/dbm.po +trans.fr = library/dbm.po type = PO source_lang = en [python-36.library--xdrlib] -trans.fr = .tx/library/xdrlib.po +trans.fr = library/xdrlib.po type = PO source_lang = en [python-36.library--markup] -trans.fr = .tx/library/markup.po +trans.fr = library/markup.po type = PO source_lang = en [python-36.library--dummy_threading] -trans.fr = .tx/library/dummy_threading.po +trans.fr = library/dummy_threading.po type = PO source_lang = en [python-36.library--xml_dom] -trans.fr = .tx/library/xml.dom.po +trans.fr = library/xml.dom.po type = PO source_lang = en [python-36.library--smtpd] -trans.fr = .tx/library/smtpd.po +trans.fr = library/smtpd.po type = PO source_lang = en [python-36.library--idle] -trans.fr = .tx/library/idle.po +trans.fr = library/idle.po type = PO source_lang = en [python-36.library--pipes] -trans.fr = .tx/library/pipes.po +trans.fr = library/pipes.po type = PO source_lang = en [python-36.library--chunk] -trans.fr = .tx/library/chunk.po +trans.fr = library/chunk.po type = PO source_lang = en [python-36.library--telnetlib] -trans.fr = .tx/library/telnetlib.po +trans.fr = library/telnetlib.po type = PO source_lang = en [python-36.library--filesys] -trans.fr = .tx/library/filesys.po +trans.fr = library/filesys.po type = PO source_lang = en [python-36.library--asynchat] -trans.fr = .tx/library/asynchat.po +trans.fr = library/asynchat.po type = PO source_lang = en [python-36.library--numbers] -trans.fr = .tx/library/numbers.po +trans.fr = library/numbers.po type = PO source_lang = en [python-36.library--xmlrpc_server] -trans.fr = .tx/library/xmlrpc.server.po +trans.fr = library/xmlrpc.server.po type = PO source_lang = en [python-36.library--plistlib] -trans.fr = .tx/library/plistlib.po +trans.fr = library/plistlib.po type = PO source_lang = en [python-36.library--secrets] -trans.fr = .tx/library/secrets.po +trans.fr = library/secrets.po type = PO source_lang = en [python-36.library--marshal] -trans.fr = .tx/library/marshal.po +trans.fr = library/marshal.po type = PO source_lang = en [python-36.library--html_parser] -trans.fr = .tx/library/html.parser.po +trans.fr = library/html.parser.po type = PO source_lang = en [python-36.library--netdata] -trans.fr = .tx/library/netdata.po +trans.fr = library/netdata.po type = PO source_lang = en [python-36.library--gc] -trans.fr = .tx/library/gc.po +trans.fr = library/gc.po type = PO source_lang = en [python-36.library--fileformats] -trans.fr = .tx/library/fileformats.po +trans.fr = library/fileformats.po type = PO source_lang = en [python-36.library--bisect] -trans.fr = .tx/library/bisect.po +trans.fr = library/bisect.po type = PO source_lang = en [python-36.library--symtable] -trans.fr = .tx/library/symtable.po +trans.fr = library/symtable.po type = PO source_lang = en [python-36.library--nis] -trans.fr = .tx/library/nis.po +trans.fr = library/nis.po type = PO source_lang = en [python-36.library--html] -trans.fr = .tx/library/html.po +trans.fr = library/html.po type = PO source_lang = en [python-36.library--typing] -trans.fr = .tx/library/typing.po +trans.fr = library/typing.po type = PO source_lang = en [python-36.library--weakref] -trans.fr = .tx/library/weakref.po +trans.fr = library/weakref.po type = PO source_lang = en [python-36.library--shlex] -trans.fr = .tx/library/shlex.po +trans.fr = library/shlex.po type = PO source_lang = en [python-36.library--binary] -trans.fr = .tx/library/binary.po +trans.fr = library/binary.po type = PO source_lang = en [python-36.library--distutils] -trans.fr = .tx/library/distutils.po +trans.fr = library/distutils.po type = PO source_lang = en [python-36.library--email_generator] -trans.fr = .tx/library/email.generator.po +trans.fr = library/email.generator.po type = PO source_lang = en [python-36.library--ensurepip] -trans.fr = .tx/library/ensurepip.po +trans.fr = library/ensurepip.po type = PO source_lang = en [python-36.library--importlib] -trans.fr = .tx/library/importlib.po +trans.fr = library/importlib.po type = PO source_lang = en [python-36.library--warnings] -trans.fr = .tx/library/warnings.po +trans.fr = library/warnings.po type = PO source_lang = en [python-36.library--tabnanny] -trans.fr = .tx/library/tabnanny.po +trans.fr = library/tabnanny.po type = PO source_lang = en [python-36.library--json] -trans.fr = .tx/library/json.po +trans.fr = library/json.po type = PO source_lang = en [python-36.library--reprlib] -trans.fr = .tx/library/reprlib.po +trans.fr = library/reprlib.po type = PO source_lang = en [python-36.library--concurrent_futures] -trans.fr = .tx/library/concurrent.futures.po +trans.fr = library/concurrent.futures.po type = PO source_lang = en [python-36.library--tk] -trans.fr = .tx/library/tk.po +trans.fr = library/tk.po type = PO source_lang = en [python-36.library--abc] -trans.fr = .tx/library/abc.po +trans.fr = library/abc.po type = PO source_lang = en [python-36.library--filecmp] -trans.fr = .tx/library/filecmp.po +trans.fr = library/filecmp.po type = PO source_lang = en [python-36.library--undoc] -trans.fr = .tx/library/undoc.po +trans.fr = library/undoc.po type = PO source_lang = en [python-36.library--functions] -trans.fr = .tx/library/functions.po +trans.fr = library/functions.po type = PO source_lang = en [python-36.library--unittest_mock-examples] -trans.fr = .tx/library/unittest.mock-examples.po +trans.fr = library/unittest.mock-examples.po type = PO source_lang = en [python-36.library--heapq] -trans.fr = .tx/library/heapq.po +trans.fr = library/heapq.po type = PO source_lang = en [python-36.library--termios] -trans.fr = .tx/library/termios.po +trans.fr = library/termios.po type = PO source_lang = en [python-36.library--errno] -trans.fr = .tx/library/errno.po +trans.fr = library/errno.po type = PO source_lang = en [python-36.library--calendar] -trans.fr = .tx/library/calendar.po +trans.fr = library/calendar.po type = PO source_lang = en [python-36.library--configparser] -trans.fr = .tx/library/configparser.po +trans.fr = library/configparser.po type = PO source_lang = en [python-36.library--unittest] -trans.fr = .tx/library/unittest.po +trans.fr = library/unittest.po type = PO source_lang = en [python-36.library--socketserver] -trans.fr = .tx/library/socketserver.po +trans.fr = library/socketserver.po type = PO source_lang = en [python-36.library--tokenize] -trans.fr = .tx/library/tokenize.po +trans.fr = library/tokenize.po type = PO source_lang = en [python-36.library--random] -trans.fr = .tx/library/random.po +trans.fr = library/random.po type = PO source_lang = en [python-36.library--code] -trans.fr = .tx/library/code.po +trans.fr = library/code.po type = PO source_lang = en [python-36.library--sqlite3] -trans.fr = .tx/library/sqlite3.po +trans.fr = library/sqlite3.po type = PO source_lang = en [python-36.library--colorsys] -trans.fr = .tx/library/colorsys.po +trans.fr = library/colorsys.po type = PO source_lang = en [python-36.library--quopri] -trans.fr = .tx/library/quopri.po +trans.fr = library/quopri.po type = PO source_lang = en [python-36.library--dis] -trans.fr = .tx/library/dis.po +trans.fr = library/dis.po type = PO source_lang = en [python-36.library--stdtypes] -trans.fr = .tx/library/stdtypes.po +trans.fr = library/stdtypes.po type = PO source_lang = en [python-36.library--tracemalloc] -trans.fr = .tx/library/tracemalloc.po +trans.fr = library/tracemalloc.po type = PO source_lang = en [python-36.library--queue] -trans.fr = .tx/library/queue.po +trans.fr = library/queue.po type = PO source_lang = en [python-36.library--posix] -trans.fr = .tx/library/posix.po +trans.fr = library/posix.po type = PO source_lang = en [python-36.library--turtle] -trans.fr = .tx/library/turtle.po +trans.fr = library/turtle.po type = PO source_lang = en [python-36.library--faulthandler] -trans.fr = .tx/library/faulthandler.po +trans.fr = library/faulthandler.po type = PO source_lang = en [python-36.library--email_examples] -trans.fr = .tx/library/email.examples.po +trans.fr = library/email.examples.po type = PO source_lang = en [python-36.library--base64] -trans.fr = .tx/library/base64.po +trans.fr = library/base64.po type = PO source_lang = en [python-36.library--index] -trans.fr = .tx/library/index.po +trans.fr = library/index.po type = PO source_lang = en [python-36.library--email_message] -trans.fr = .tx/library/email.message.po +trans.fr = library/email.message.po type = PO source_lang = en [python-36.library--xml_etree_elementtree] -trans.fr = .tx/library/xml.etree.elementtree.po +trans.fr = library/xml.etree.elementtree.po type = PO source_lang = en [python-36.library--asyncio-task] -trans.fr = .tx/library/asyncio-task.po +trans.fr = library/asyncio-task.po type = PO source_lang = en [python-36.library--asyncore] -trans.fr = .tx/library/asyncore.po +trans.fr = library/asyncore.po type = PO source_lang = en [python-36.library--uu] -trans.fr = .tx/library/uu.po +trans.fr = library/uu.po type = PO source_lang = en [python-36.library--urllib_robotparser] -trans.fr = .tx/library/urllib.robotparser.po +trans.fr = library/urllib.robotparser.po type = PO source_lang = en [python-36.library--cgitb] -trans.fr = .tx/library/cgitb.po +trans.fr = library/cgitb.po type = PO source_lang = en [python-36.library--pathlib] -trans.fr = .tx/library/pathlib.po +trans.fr = library/pathlib.po type = PO source_lang = en [python-36.library--misc] -trans.fr = .tx/library/misc.po +trans.fr = library/misc.po type = PO source_lang = en [python-36.library--_thread] -trans.fr = .tx/library/_thread.po +trans.fr = library/_thread.po type = PO source_lang = en [python-36.library--email_header] -trans.fr = .tx/library/email.header.po +trans.fr = library/email.header.po type = PO source_lang = en [python-36.library--runpy] -trans.fr = .tx/library/runpy.po +trans.fr = library/runpy.po type = PO source_lang = en [python-36.library--asyncio-eventloop] -trans.fr = .tx/library/asyncio-eventloop.po +trans.fr = library/asyncio-eventloop.po type = PO source_lang = en [python-36.library--textwrap] -trans.fr = .tx/library/textwrap.po +trans.fr = library/textwrap.po type = PO source_lang = en [python-36.library--msilib] -trans.fr = .tx/library/msilib.po +trans.fr = library/msilib.po type = PO source_lang = en [python-36.library--debug] -trans.fr = .tx/library/debug.po +trans.fr = library/debug.po type = PO source_lang = en [python-36.library--nntplib] -trans.fr = .tx/library/nntplib.po +trans.fr = library/nntplib.po type = PO source_lang = en [python-36.library--ast] -trans.fr = .tx/library/ast.po +trans.fr = library/ast.po type = PO source_lang = en [python-36.library--site] -trans.fr = .tx/library/site.po +trans.fr = library/site.po type = PO source_lang = en [python-36.library--uuid] -trans.fr = .tx/library/uuid.po +trans.fr = library/uuid.po type = PO source_lang = en [python-36.library--email_iterators] -trans.fr = .tx/library/email.iterators.po +trans.fr = library/email.iterators.po type = PO source_lang = en [python-36.library--threading] -trans.fr = .tx/library/threading.po +trans.fr = library/threading.po type = PO source_lang = en [python-36.library--email_mime] -trans.fr = .tx/library/email.mime.po +trans.fr = library/email.mime.po type = PO source_lang = en [python-36.library--shelve] -trans.fr = .tx/library/shelve.po +trans.fr = library/shelve.po type = PO source_lang = en [python-36.library--profile] -trans.fr = .tx/library/profile.po +trans.fr = library/profile.po type = PO source_lang = en [python-36.library--math] -trans.fr = .tx/library/math.po +trans.fr = library/math.po type = PO source_lang = en [python-36.library--fileinput] -trans.fr = .tx/library/fileinput.po +trans.fr = library/fileinput.po type = PO source_lang = en [python-36.library--select] -trans.fr = .tx/library/select.po +trans.fr = library/select.po type = PO source_lang = en [python-36.library--pprint] -trans.fr = .tx/library/pprint.po +trans.fr = library/pprint.po type = PO source_lang = en [python-36.library--datatypes] -trans.fr = .tx/library/datatypes.po +trans.fr = library/datatypes.po type = PO source_lang = en [python-36.library--ssl] -trans.fr = .tx/library/ssl.po +trans.fr = library/ssl.po type = PO source_lang = en [python-36.library--asyncio-queue] -trans.fr = .tx/library/asyncio-queue.po +trans.fr = library/asyncio-queue.po type = PO source_lang = en [python-36.library--binhex] -trans.fr = .tx/library/binhex.po +trans.fr = library/binhex.po type = PO source_lang = en [python-36.library--io] -trans.fr = .tx/library/io.po +trans.fr = library/io.po type = PO source_lang = en [python-36.library--asyncio-protocol] -trans.fr = .tx/library/asyncio-protocol.po +trans.fr = library/asyncio-protocol.po type = PO source_lang = en [python-36.library--othergui] -trans.fr = .tx/library/othergui.po +trans.fr = library/othergui.po type = PO source_lang = en [python-36.library--webbrowser] -trans.fr = .tx/library/webbrowser.po +trans.fr = library/webbrowser.po type = PO source_lang = en [python-36.library--hmac] -trans.fr = .tx/library/hmac.po +trans.fr = library/hmac.po type = PO source_lang = en [python-36.library--collections_abc] -trans.fr = .tx/library/collections.abc.po +trans.fr = library/collections.abc.po type = PO source_lang = en [python-36.library--ftplib] -trans.fr = .tx/library/ftplib.po +trans.fr = library/ftplib.po type = PO source_lang = en [python-36.library--multiprocessing] -trans.fr = .tx/library/multiprocessing.po +trans.fr = library/multiprocessing.po type = PO source_lang = en [python-36.library--types] -trans.fr = .tx/library/types.po +trans.fr = library/types.po type = PO source_lang = en [python-36.library--ipaddress] -trans.fr = .tx/library/ipaddress.po +trans.fr = library/ipaddress.po type = PO source_lang = en [python-36.library--fpectl] -trans.fr = .tx/library/fpectl.po +trans.fr = library/fpectl.po type = PO source_lang = en [python-36.library--exceptions] -trans.fr = .tx/library/exceptions.po +trans.fr = library/exceptions.po type = PO source_lang = en [python-36.library--asyncio-stream] -trans.fr = .tx/library/asyncio-stream.po +trans.fr = library/asyncio-stream.po type = PO source_lang = en [python-36.library--custominterp] -trans.fr = .tx/library/custominterp.po +trans.fr = library/custominterp.po type = PO source_lang = en [python-36.library--codecs] -trans.fr = .tx/library/codecs.po +trans.fr = library/codecs.po type = PO source_lang = en [python-36.library--bdb] -trans.fr = .tx/library/bdb.po +trans.fr = library/bdb.po type = PO source_lang = en [python-36.library--archiving] -trans.fr = .tx/library/archiving.po +trans.fr = library/archiving.po type = PO source_lang = en [python-36.library--hashlib] -trans.fr = .tx/library/hashlib.po +trans.fr = library/hashlib.po type = PO source_lang = en [python-36.library--tkinter] -trans.fr = .tx/library/tkinter.po +trans.fr = library/tkinter.po type = PO source_lang = en [python-36.library--sys] -trans.fr = .tx/library/sys.po +trans.fr = library/sys.po type = PO source_lang = en [python-36.library--cmath] -trans.fr = .tx/library/cmath.po +trans.fr = library/cmath.po type = PO source_lang = en [python-36.library--functional] -trans.fr = .tx/library/functional.po +trans.fr = library/functional.po type = PO source_lang = en [python-36.library--html_entities] -trans.fr = .tx/library/html.entities.po +trans.fr = library/html.entities.po type = PO source_lang = en [python-36.library--resource] -trans.fr = .tx/library/resource.po +trans.fr = library/resource.po type = PO source_lang = en [python-36.library--pickletools] -trans.fr = .tx/library/pickletools.po +trans.fr = library/pickletools.po type = PO source_lang = en [python-36.library--email_util] -trans.fr = .tx/library/email.util.po +trans.fr = library/email.util.po type = PO source_lang = en [python-36.library--xmlrpc] -trans.fr = .tx/library/xmlrpc.po +trans.fr = library/xmlrpc.po type = PO source_lang = en [python-36.library--lzma] -trans.fr = .tx/library/lzma.po +trans.fr = library/lzma.po type = PO source_lang = en [python-36.library--syslog] -trans.fr = .tx/library/syslog.po +trans.fr = library/syslog.po type = PO source_lang = en [python-36.library--subprocess] -trans.fr = .tx/library/subprocess.po +trans.fr = library/subprocess.po type = PO source_lang = en [python-36.library--pdb] -trans.fr = .tx/library/pdb.po +trans.fr = library/pdb.po type = PO source_lang = en [python-36.library--wsgiref] -trans.fr = .tx/library/wsgiref.po +trans.fr = library/wsgiref.po type = PO source_lang = en [python-36.library--formatter] -trans.fr = .tx/library/formatter.po +trans.fr = library/formatter.po type = PO source_lang = en [python-36.library--getopt] -trans.fr = .tx/library/getopt.po +trans.fr = library/getopt.po type = PO source_lang = en [python-36.library--cgi] -trans.fr = .tx/library/cgi.po +trans.fr = library/cgi.po type = PO source_lang = en [python-36.library--winsound] -trans.fr = .tx/library/winsound.po +trans.fr = library/winsound.po type = PO source_lang = en [python-36.library--audioop] -trans.fr = .tx/library/audioop.po +trans.fr = library/audioop.po type = PO source_lang = en [python-36.library--__main__] -trans.fr = .tx/library/__main__.po +trans.fr = library/__main__.po type = PO source_lang = en [python-36.library--sndhdr] -trans.fr = .tx/library/sndhdr.po +trans.fr = library/sndhdr.po type = PO source_lang = en [python-36.library--copy] -trans.fr = .tx/library/copy.po +trans.fr = library/copy.po type = PO source_lang = en [python-36.library--email_contentmanager] -trans.fr = .tx/library/email.contentmanager.po +trans.fr = library/email.contentmanager.po type = PO source_lang = en [python-36.library--aifc] -trans.fr = .tx/library/aifc.po +trans.fr = library/aifc.po type = PO source_lang = en [python-36.library--msvcrt] -trans.fr = .tx/library/msvcrt.po +trans.fr = library/msvcrt.po type = PO source_lang = en [python-36.library--xmlrpc_client] -trans.fr = .tx/library/xmlrpc.client.po +trans.fr = library/xmlrpc.client.po type = PO source_lang = en [python-36.library--logging_handlers] -trans.fr = .tx/library/logging.handlers.po +trans.fr = library/logging.handlers.po type = PO source_lang = en [python-36.library--grp] -trans.fr = .tx/library/grp.po +trans.fr = library/grp.po type = PO source_lang = en [python-36.library--logging] -trans.fr = .tx/library/logging.po +trans.fr = library/logging.po type = PO source_lang = en [python-36.library--i18n] -trans.fr = .tx/library/i18n.po +trans.fr = library/i18n.po type = PO source_lang = en [python-36.library--zipimport] -trans.fr = .tx/library/zipimport.po +trans.fr = library/zipimport.po type = PO source_lang = en [python-36.library--curses_ascii] -trans.fr = .tx/library/curses.ascii.po +trans.fr = library/curses.ascii.po type = PO source_lang = en [python-36.library--operator] -trans.fr = .tx/library/operator.po +trans.fr = library/operator.po type = PO source_lang = en [python-36.library--winreg] -trans.fr = .tx/library/winreg.po +trans.fr = library/winreg.po type = PO source_lang = en [python-36.library--frameworks] -trans.fr = .tx/library/frameworks.po +trans.fr = library/frameworks.po type = PO source_lang = en [python-36.library--ossaudiodev] -trans.fr = .tx/library/ossaudiodev.po +trans.fr = library/ossaudiodev.po type = PO source_lang = en [python-36.library--urllib] -trans.fr = .tx/library/urllib.po +trans.fr = library/urllib.po type = PO source_lang = en [python-36.library--os] -trans.fr = .tx/library/os.po +trans.fr = library/os.po type = PO source_lang = en [python-36.library--smtplib] -trans.fr = .tx/library/smtplib.po +trans.fr = library/smtplib.po type = PO source_lang = en [python-36.library--copyreg] -trans.fr = .tx/library/copyreg.po +trans.fr = library/copyreg.po type = PO source_lang = en [python-36.library--test] -trans.fr = .tx/library/test.po +trans.fr = library/test.po type = PO source_lang = en [python-36.library--xml_sax] -trans.fr = .tx/library/xml.sax.po +trans.fr = library/xml.sax.po type = PO source_lang = en [python-36.library--2to3] -trans.fr = .tx/library/2to3.po +trans.fr = library/2to3.po type = PO source_lang = en [python-36.library--http_server] -trans.fr = .tx/library/http.server.po +trans.fr = library/http.server.po type = PO source_lang = en [python-36.library--email_compat32-message] -trans.fr = .tx/library/email.compat32-message.po +trans.fr = library/email.compat32-message.po type = PO source_lang = en [python-36.library--zlib] -trans.fr = .tx/library/zlib.po +trans.fr = library/zlib.po type = PO source_lang = en [python-36.distutils--configfile] -trans.fr = .tx/distutils/configfile.po +trans.fr = distutils/configfile.po type = PO source_lang = en [python-36.distutils--sourcedist] -trans.fr = .tx/distutils/sourcedist.po +trans.fr = distutils/sourcedist.po type = PO source_lang = en [python-36.distutils--extending] -trans.fr = .tx/distutils/extending.po +trans.fr = distutils/extending.po type = PO source_lang = en [python-36.distutils--setupscript] -trans.fr = .tx/distutils/setupscript.po +trans.fr = distutils/setupscript.po type = PO source_lang = en [python-36.distutils--commandref] -trans.fr = .tx/distutils/commandref.po +trans.fr = distutils/commandref.po type = PO source_lang = en [python-36.distutils--builtdist] -trans.fr = .tx/distutils/builtdist.po +trans.fr = distutils/builtdist.po type = PO source_lang = en [python-36.distutils--introduction] -trans.fr = .tx/distutils/introduction.po +trans.fr = distutils/introduction.po type = PO source_lang = en [python-36.distutils--index] -trans.fr = .tx/distutils/index.po +trans.fr = distutils/index.po type = PO source_lang = en [python-36.distutils--packageindex] -trans.fr = .tx/distutils/packageindex.po +trans.fr = distutils/packageindex.po type = PO source_lang = en [python-36.distutils--examples] -trans.fr = .tx/distutils/examples.po +trans.fr = distutils/examples.po type = PO source_lang = en [python-36.distutils--uploading] -trans.fr = .tx/distutils/uploading.po +trans.fr = distutils/uploading.po type = PO source_lang = en [python-36.distutils--apiref] -trans.fr = .tx/distutils/apiref.po +trans.fr = distutils/apiref.po type = PO source_lang = en [python-36.distributing--index] -trans.fr = .tx/distributing/index.po +trans.fr = distributing/index.po type = PO source_lang = en [python-36.faq--extending] -trans.fr = .tx/faq/extending.po +trans.fr = faq/extending.po type = PO source_lang = en [python-36.faq--windows] -trans.fr = .tx/faq/windows.po +trans.fr = faq/windows.po type = PO source_lang = en [python-36.faq--general] -trans.fr = .tx/faq/general.po +trans.fr = faq/general.po type = PO source_lang = en [python-36.faq--library] -trans.fr = .tx/faq/library.po +trans.fr = faq/library.po type = PO source_lang = en [python-36.faq--gui] -trans.fr = .tx/faq/gui.po +trans.fr = faq/gui.po type = PO source_lang = en [python-36.faq--installed] -trans.fr = .tx/faq/installed.po +trans.fr = faq/installed.po type = PO source_lang = en [python-36.faq--index] -trans.fr = .tx/faq/index.po +trans.fr = faq/index.po type = PO source_lang = en [python-36.faq--design] -trans.fr = .tx/faq/design.po +trans.fr = faq/design.po type = PO source_lang = en [python-36.faq--programming] -trans.fr = .tx/faq/programming.po +trans.fr = faq/programming.po type = PO source_lang = en [python-36.using--unix] -trans.fr = .tx/using/unix.po +trans.fr = using/unix.po type = PO source_lang = en [python-36.using--mac] -trans.fr = .tx/using/mac.po +trans.fr = using/mac.po type = PO source_lang = en [python-36.using--cmdline] -trans.fr = .tx/using/cmdline.po +trans.fr = using/cmdline.po type = PO source_lang = en [python-36.using--windows] -trans.fr = .tx/using/windows.po +trans.fr = using/windows.po type = PO source_lang = en [python-36.using--index] -trans.fr = .tx/using/index.po +trans.fr = using/index.po type = PO source_lang = en [python-36.howto--clinic] -trans.fr = .tx/howto/clinic.po +trans.fr = howto/clinic.po type = PO source_lang = en [python-36.howto--urllib2] -trans.fr = .tx/howto/urllib2.po +trans.fr = howto/urllib2.po type = PO source_lang = en [python-36.howto--argparse] -trans.fr = .tx/howto/argparse.po +trans.fr = howto/argparse.po type = PO source_lang = en [python-36.howto--curses] -trans.fr = .tx/howto/curses.po +trans.fr = howto/curses.po type = PO source_lang = en [python-36.howto--logging-cookbook] -trans.fr = .tx/howto/logging-cookbook.po +trans.fr = howto/logging-cookbook.po type = PO source_lang = en [python-36.howto--sockets] -trans.fr = .tx/howto/sockets.po +trans.fr = howto/sockets.po type = PO source_lang = en [python-36.howto--pyporting] -trans.fr = .tx/howto/pyporting.po +trans.fr = howto/pyporting.po type = PO source_lang = en [python-36.howto--index] -trans.fr = .tx/howto/index.po +trans.fr = howto/index.po type = PO source_lang = en [python-36.howto--unicode] -trans.fr = .tx/howto/unicode.po +trans.fr = howto/unicode.po type = PO source_lang = en [python-36.howto--instrumentation] -trans.fr = .tx/howto/instrumentation.po +trans.fr = howto/instrumentation.po type = PO source_lang = en [python-36.howto--cporting] -trans.fr = .tx/howto/cporting.po +trans.fr = howto/cporting.po type = PO source_lang = en [python-36.howto--ipaddress] -trans.fr = .tx/howto/ipaddress.po +trans.fr = howto/ipaddress.po type = PO source_lang = en [python-36.howto--sorting] -trans.fr = .tx/howto/sorting.po +trans.fr = howto/sorting.po type = PO source_lang = en [python-36.howto--functional] -trans.fr = .tx/howto/functional.po +trans.fr = howto/functional.po type = PO source_lang = en [python-36.howto--logging] -trans.fr = .tx/howto/logging.po +trans.fr = howto/logging.po type = PO source_lang = en [python-36.howto--regex] -trans.fr = .tx/howto/regex.po +trans.fr = howto/regex.po type = PO source_lang = en [python-36.howto--descriptor] -trans.fr = .tx/howto/descriptor.po +trans.fr = howto/descriptor.po type = PO source_lang = en [python-36.install--index] -trans.fr = .tx/install/index.po +trans.fr = install/index.po type = PO source_lang = en [python-36.reference--simple_stmts] -trans.fr = .tx/reference/simple_stmts.po +trans.fr = reference/simple_stmts.po type = PO source_lang = en [python-36.reference--expressions] -trans.fr = .tx/reference/expressions.po +trans.fr = reference/expressions.po type = PO source_lang = en [python-36.reference--compound_stmts] -trans.fr = .tx/reference/compound_stmts.po +trans.fr = reference/compound_stmts.po type = PO source_lang = en [python-36.reference--introduction] -trans.fr = .tx/reference/introduction.po +trans.fr = reference/introduction.po type = PO source_lang = en [python-36.reference--import] -trans.fr = .tx/reference/import.po +trans.fr = reference/import.po type = PO source_lang = en [python-36.reference--grammar] -trans.fr = .tx/reference/grammar.po +trans.fr = reference/grammar.po type = PO source_lang = en [python-36.reference--datamodel] -trans.fr = .tx/reference/datamodel.po +trans.fr = reference/datamodel.po type = PO source_lang = en [python-36.reference--index] -trans.fr = .tx/reference/index.po +trans.fr = reference/index.po type = PO source_lang = en [python-36.reference--toplevel_components] -trans.fr = .tx/reference/toplevel_components.po +trans.fr = reference/toplevel_components.po type = PO source_lang = en [python-36.reference--lexical_analysis] -trans.fr = .tx/reference/lexical_analysis.po +trans.fr = reference/lexical_analysis.po type = PO source_lang = en [python-36.reference--executionmodel] -trans.fr = .tx/reference/executionmodel.po +trans.fr = reference/executionmodel.po type = PO source_lang = en [python-36.whatsnew--2_6] -trans.fr = .tx/whatsnew/2.6.po +trans.fr = whatsnew/2.6.po type = PO source_lang = en [python-36.whatsnew--2_3] -trans.fr = .tx/whatsnew/2.3.po +trans.fr = whatsnew/2.3.po type = PO source_lang = en [python-36.whatsnew--changelog] -trans.fr = .tx/whatsnew/changelog.po +trans.fr = whatsnew/changelog.po type = PO source_lang = en [python-36.whatsnew--2_2] -trans.fr = .tx/whatsnew/2.2.po +trans.fr = whatsnew/2.2.po type = PO source_lang = en [python-36.whatsnew--3_3] -trans.fr = .tx/whatsnew/3.3.po +trans.fr = whatsnew/3.3.po type = PO source_lang = en [python-36.whatsnew--3_4] -trans.fr = .tx/whatsnew/3.4.po +trans.fr = whatsnew/3.4.po type = PO source_lang = en [python-36.whatsnew--3_2] -trans.fr = .tx/whatsnew/3.2.po +trans.fr = whatsnew/3.2.po type = PO source_lang = en [python-36.whatsnew--2_7] -trans.fr = .tx/whatsnew/2.7.po +trans.fr = whatsnew/2.7.po type = PO source_lang = en [python-36.whatsnew--3_1] -trans.fr = .tx/whatsnew/3.1.po +trans.fr = whatsnew/3.1.po type = PO source_lang = en [python-36.whatsnew--3_0] -trans.fr = .tx/whatsnew/3.0.po +trans.fr = whatsnew/3.0.po type = PO source_lang = en [python-36.whatsnew--index] -trans.fr = .tx/whatsnew/index.po +trans.fr = whatsnew/index.po type = PO source_lang = en [python-36.whatsnew--2_0] -trans.fr = .tx/whatsnew/2.0.po +trans.fr = whatsnew/2.0.po type = PO source_lang = en [python-36.whatsnew--2_4] -trans.fr = .tx/whatsnew/2.4.po +trans.fr = whatsnew/2.4.po type = PO source_lang = en [python-36.whatsnew--3_5] -trans.fr = .tx/whatsnew/3.5.po +trans.fr = whatsnew/3.5.po type = PO source_lang = en [python-36.whatsnew--2_5] -trans.fr = .tx/whatsnew/2.5.po +trans.fr = whatsnew/2.5.po type = PO source_lang = en [python-36.whatsnew--2_1] -trans.fr = .tx/whatsnew/2.1.po +trans.fr = whatsnew/2.1.po type = PO source_lang = en [python-36.whatsnew--3_6] -trans.fr = .tx/whatsnew/3.6.po +trans.fr = whatsnew/3.6.po type = PO source_lang = en [python-36.tutorial--modules] -trans.fr = .tx/tutorial/modules.po +trans.fr = tutorial/modules.po type = PO source_lang = en [python-36.tutorial--stdlib2] -trans.fr = .tx/tutorial/stdlib2.po +trans.fr = tutorial/stdlib2.po type = PO source_lang = en [python-36.tutorial--whatnow] -trans.fr = .tx/tutorial/whatnow.po +trans.fr = tutorial/whatnow.po type = PO source_lang = en [python-36.tutorial--floatingpoint] -trans.fr = .tx/tutorial/floatingpoint.po +trans.fr = tutorial/floatingpoint.po type = PO source_lang = en [python-36.tutorial--inputoutput] -trans.fr = .tx/tutorial/inputoutput.po +trans.fr = tutorial/inputoutput.po type = PO source_lang = en [python-36.tutorial--classes] -trans.fr = .tx/tutorial/classes.po +trans.fr = tutorial/classes.po type = PO source_lang = en [python-36.tutorial--appendix] -trans.fr = .tx/tutorial/appendix.po +trans.fr = tutorial/appendix.po type = PO source_lang = en [python-36.tutorial--interactive] -trans.fr = .tx/tutorial/interactive.po +trans.fr = tutorial/interactive.po type = PO source_lang = en [python-36.tutorial--venv] -trans.fr = .tx/tutorial/venv.po +trans.fr = tutorial/venv.po type = PO source_lang = en [python-36.tutorial--introduction] -trans.fr = .tx/tutorial/introduction.po +trans.fr = tutorial/introduction.po type = PO source_lang = en [python-36.tutorial--index] -trans.fr = .tx/tutorial/index.po +trans.fr = tutorial/index.po type = PO source_lang = en [python-36.tutorial--controlflow] -trans.fr = .tx/tutorial/controlflow.po +trans.fr = tutorial/controlflow.po type = PO source_lang = en [python-36.tutorial--appetite] -trans.fr = .tx/tutorial/appetite.po +trans.fr = tutorial/appetite.po type = PO source_lang = en [python-36.tutorial--errors] -trans.fr = .tx/tutorial/errors.po +trans.fr = tutorial/errors.po type = PO source_lang = en [python-36.tutorial--interpreter] -trans.fr = .tx/tutorial/interpreter.po +trans.fr = tutorial/interpreter.po type = PO source_lang = en [python-36.tutorial--datastructures] -trans.fr = .tx/tutorial/datastructures.po +trans.fr = tutorial/datastructures.po type = PO source_lang = en [python-36.tutorial--stdlib] -trans.fr = .tx/tutorial/stdlib.po +trans.fr = tutorial/stdlib.po type = PO source_lang = en [python-36.extending--building] -trans.fr = .tx/extending/building.po +trans.fr = extending/building.po type = PO source_lang = en [python-36.extending--extending] -trans.fr = .tx/extending/extending.po +trans.fr = extending/extending.po type = PO source_lang = en [python-36.extending--windows] -trans.fr = .tx/extending/windows.po +trans.fr = extending/windows.po type = PO source_lang = en [python-36.extending--index] -trans.fr = .tx/extending/index.po +trans.fr = extending/index.po type = PO source_lang = en [python-36.extending--embedding] -trans.fr = .tx/extending/embedding.po +trans.fr = extending/embedding.po type = PO source_lang = en [python-36.extending--newtypes] -trans.fr = .tx/extending/newtypes.po +trans.fr = extending/newtypes.po type = PO source_lang = en [python-36.installing--index] -trans.fr = .tx/installing/index.po +trans.fr = installing/index.po type = PO source_lang = en [python-36.c-api--conversion] -trans.fr = .tx/c-api/conversion.po +trans.fr = c-api/conversion.po type = PO source_lang = en [python-36.c-api--datetime] -trans.fr = .tx/c-api/datetime.po +trans.fr = c-api/datetime.po type = PO source_lang = en [python-36.c-api--memory] -trans.fr = .tx/c-api/memory.po +trans.fr = c-api/memory.po type = PO source_lang = en [python-36.c-api--coro] -trans.fr = .tx/c-api/coro.po +trans.fr = c-api/coro.po type = PO source_lang = en [python-36.c-api--file] -trans.fr = .tx/c-api/file.po +trans.fr = c-api/file.po type = PO source_lang = en [python-36.c-api--object] -trans.fr = .tx/c-api/object.po +trans.fr = c-api/object.po type = PO source_lang = en [python-36.c-api--capsule] -trans.fr = .tx/c-api/capsule.po +trans.fr = c-api/capsule.po type = PO source_lang = en [python-36.c-api--function] -trans.fr = .tx/c-api/function.po +trans.fr = c-api/function.po type = PO source_lang = en [python-36.c-api--refcounting] -trans.fr = .tx/c-api/refcounting.po +trans.fr = c-api/refcounting.po type = PO source_lang = en [python-36.c-api--cell] -trans.fr = .tx/c-api/cell.po +trans.fr = c-api/cell.po type = PO source_lang = en [python-36.c-api--none] -trans.fr = .tx/c-api/none.po +trans.fr = c-api/none.po type = PO source_lang = en [python-36.c-api--allocation] -trans.fr = .tx/c-api/allocation.po +trans.fr = c-api/allocation.po type = PO source_lang = en [python-36.c-api--intro] -trans.fr = .tx/c-api/intro.po +trans.fr = c-api/intro.po type = PO source_lang = en [python-36.c-api--number] -trans.fr = .tx/c-api/number.po +trans.fr = c-api/number.po type = PO source_lang = en [python-36.c-api--float] -trans.fr = .tx/c-api/float.po +trans.fr = c-api/float.po type = PO source_lang = en [python-36.c-api--list] -trans.fr = .tx/c-api/list.po +trans.fr = c-api/list.po type = PO source_lang = en [python-36.c-api--memoryview] -trans.fr = .tx/c-api/memoryview.po +trans.fr = c-api/memoryview.po type = PO source_lang = en [python-36.c-api--structures] -trans.fr = .tx/c-api/structures.po +trans.fr = c-api/structures.po type = PO source_lang = en [python-36.c-api--mapping] -trans.fr = .tx/c-api/mapping.po +trans.fr = c-api/mapping.po type = PO source_lang = en [python-36.c-api--iterator] -trans.fr = .tx/c-api/iterator.po +trans.fr = c-api/iterator.po type = PO source_lang = en [python-36.c-api--abstract] -trans.fr = .tx/c-api/abstract.po +trans.fr = c-api/abstract.po type = PO source_lang = en [python-36.c-api--gen] -trans.fr = .tx/c-api/gen.po +trans.fr = c-api/gen.po type = PO source_lang = en [python-36.c-api--arg] -trans.fr = .tx/c-api/arg.po +trans.fr = c-api/arg.po type = PO source_lang = en [python-36.c-api--method] -trans.fr = .tx/c-api/method.po +trans.fr = c-api/method.po type = PO source_lang = en [python-36.c-api--sequence] -trans.fr = .tx/c-api/sequence.po +trans.fr = c-api/sequence.po type = PO source_lang = en [python-36.c-api--marshal] -trans.fr = .tx/c-api/marshal.po +trans.fr = c-api/marshal.po type = PO source_lang = en [python-36.c-api--import] -trans.fr = .tx/c-api/import.po +trans.fr = c-api/import.po type = PO source_lang = en [python-36.c-api--weakref] -trans.fr = .tx/c-api/weakref.po +trans.fr = c-api/weakref.po type = PO source_lang = en [python-36.c-api--dict] -trans.fr = .tx/c-api/dict.po +trans.fr = c-api/dict.po type = PO source_lang = en [python-36.c-api--buffer] -trans.fr = .tx/c-api/buffer.po +trans.fr = c-api/buffer.po type = PO source_lang = en [python-36.c-api--code] -trans.fr = .tx/c-api/code.po +trans.fr = c-api/code.po type = PO source_lang = en [python-36.c-api--index] -trans.fr = .tx/c-api/index.po +trans.fr = c-api/index.po type = PO source_lang = en [python-36.c-api--concrete] -trans.fr = .tx/c-api/concrete.po +trans.fr = c-api/concrete.po type = PO source_lang = en [python-36.c-api--unicode] -trans.fr = .tx/c-api/unicode.po +trans.fr = c-api/unicode.po type = PO source_lang = en [python-36.c-api--bytes] -trans.fr = .tx/c-api/bytes.po +trans.fr = c-api/bytes.po type = PO source_lang = en [python-36.c-api--init] -trans.fr = .tx/c-api/init.po +trans.fr = c-api/init.po type = PO source_lang = en [python-36.c-api--bool] -trans.fr = .tx/c-api/bool.po +trans.fr = c-api/bool.po type = PO source_lang = en [python-36.c-api--reflection] -trans.fr = .tx/c-api/reflection.po +trans.fr = c-api/reflection.po type = PO source_lang = en [python-36.c-api--gcsupport] -trans.fr = .tx/c-api/gcsupport.po +trans.fr = c-api/gcsupport.po type = PO source_lang = en [python-36.c-api--module] -trans.fr = .tx/c-api/module.po +trans.fr = c-api/module.po type = PO source_lang = en [python-36.c-api--veryhigh] -trans.fr = .tx/c-api/veryhigh.po +trans.fr = c-api/veryhigh.po type = PO source_lang = en [python-36.c-api--exceptions] -trans.fr = .tx/c-api/exceptions.po +trans.fr = c-api/exceptions.po type = PO source_lang = en [python-36.c-api--objimpl] -trans.fr = .tx/c-api/objimpl.po +trans.fr = c-api/objimpl.po type = PO source_lang = en [python-36.c-api--type] -trans.fr = .tx/c-api/type.po +trans.fr = c-api/type.po type = PO source_lang = en [python-36.c-api--set] -trans.fr = .tx/c-api/set.po +trans.fr = c-api/set.po type = PO source_lang = en [python-36.c-api--codec] -trans.fr = .tx/c-api/codec.po +trans.fr = c-api/codec.po type = PO source_lang = en [python-36.c-api--typeobj] -trans.fr = .tx/c-api/typeobj.po +trans.fr = c-api/typeobj.po type = PO source_lang = en [python-36.c-api--sys] -trans.fr = .tx/c-api/sys.po +trans.fr = c-api/sys.po type = PO source_lang = en [python-36.c-api--bytearray] -trans.fr = .tx/c-api/bytearray.po +trans.fr = c-api/bytearray.po type = PO source_lang = en [python-36.c-api--tuple] -trans.fr = .tx/c-api/tuple.po +trans.fr = c-api/tuple.po type = PO source_lang = en [python-36.c-api--apiabiversion] -trans.fr = .tx/c-api/apiabiversion.po +trans.fr = c-api/apiabiversion.po type = PO source_lang = en [python-36.c-api--stable] -trans.fr = .tx/c-api/stable.po +trans.fr = c-api/stable.po type = PO source_lang = en [python-36.c-api--objbuffer] -trans.fr = .tx/c-api/objbuffer.po +trans.fr = c-api/objbuffer.po type = PO source_lang = en [python-36.c-api--slice] -trans.fr = .tx/c-api/slice.po +trans.fr = c-api/slice.po type = PO source_lang = en [python-36.c-api--long] -trans.fr = .tx/c-api/long.po +trans.fr = c-api/long.po type = PO source_lang = en [python-36.c-api--iter] -trans.fr = .tx/c-api/iter.po +trans.fr = c-api/iter.po type = PO source_lang = en [python-36.c-api--utilities] -trans.fr = .tx/c-api/utilities.po +trans.fr = c-api/utilities.po type = PO source_lang = en [python-36.c-api--complex] -trans.fr = .tx/c-api/complex.po +trans.fr = c-api/complex.po type = PO source_lang = en [python-36.c-api--descriptor] -trans.fr = .tx/c-api/descriptor.po +trans.fr = c-api/descriptor.po type = PO source_lang = en From 9beada2f92bf9bc55e1552de34a09d2b29cce91a Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Fri, 23 Mar 2018 23:07:44 +0100 Subject: [PATCH 036/115] Prise en compte des remarques de relecture de JulienPalard --- reference/lexical_analysis.po | 42 ++++++++++++++++++----------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 3561fcf51..34e4090c3 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-04 15:51+0100\n" -"PO-Revision-Date: 2018-03-22 21:35+0100\n" +"PO-Revision-Date: 2018-03-23 22:46+0100\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,7 +28,7 @@ msgstr "" "Un programme Python est lu par un analyseur syntaxique (*parser* en " "anglais). En entrée de cet analyseur syntaxique, nous trouvons des lexèmes " "(*tokens* en anglais), produits par un analyseur lexical. Ce chapitre décrit " -"comment l'analyseur lexical découpe le fichier en lexèmes. " +"comment l'analyseur lexical découpe le fichier en lexèmes." #: ../Doc/reference/lexical_analysis.rst:14 msgid "" @@ -99,7 +99,7 @@ msgid "" msgstr "" "Lorsque vous encapsulez Python, les chaînes de code source doivent être " "passées à l'API Python en utilisant les conventions du C standard pour les " -"caractères de fin de ligne : le caractère ``\\n``, dont le code ASCII est LF." +"caractères de fin de ligne : le caractère ``\\n``, dont le code ASCII est LF." #: ../Doc/reference/lexical_analysis.rst:64 msgid "Comments" @@ -112,11 +112,13 @@ msgid "" "end of the logical line unless the implicit line joining rules are invoked. " "Comments are ignored by the syntax; they are not tokens." msgstr "" -"Un commentaire commence par le caractère dièse (``#``, *hash* en anglais) " -"situé en dehors d'une chaine de caractères littérale et se termine à la fin " -"de la ligne physique. Un commentaire signifie la fin de la ligne logique à " -"moins qu'une règle de continuation de ligne implicite ne s'applique. Les " -"commentaires sont ignorés au niveau syntaxique, ce ne sont pas des lexèmes." +"Un commentaire commence par le caractère croisillon (``#``, *hash* en " +"anglais et qui ressemble au symbole musical dièse, c'est pourquoi il est " +"souvent improprement appelé caractère dièse) situé en dehors d'une chaine de " +"caractères littérale et se termine à la fin de la ligne physique. Un " +"commentaire signifie la fin de la ligne logique à moins qu'une règle de " +"continuation de ligne implicite ne s'applique. Les commentaires sont ignorés " +"au niveau syntaxique, ce ne sont pas des lexèmes." #: ../Doc/reference/lexical_analysis.rst:77 msgid "Encoding declarations" @@ -137,11 +139,11 @@ msgstr "" "de cette expression désigne l'encodage du fichier source. Cette déclaration " "d'encodage doit être seule sur sa ligne et, si elle est sur la deuxième " "ligne, la première ligne doit aussi être une ligne composée uniquement d'un " -"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" +"commentaire. Les formes recommandées pour l'expression de l'encodage sont ::" #: ../Doc/reference/lexical_analysis.rst:90 msgid "which is recognized also by GNU Emacs, and ::" -msgstr "qui est reconnue aussi par GNU Emacs et ::" +msgstr "qui est reconnue aussi par GNU Emacs et ::" #: ../Doc/reference/lexical_analysis.rst:94 msgid "which is recognized by Bram Moolenaar's VIM." @@ -155,7 +157,7 @@ msgid "" "supported, among others, by Microsoft's :program:`notepad`)." msgstr "" "Si aucune déclaration d'encodage n'est trouvée, l'encodage par défaut est " -"utilisé : UTF-8. En plus, si les premiers octets du fichier sont " +"utilisé : UTF-8. En plus, si les premiers octets du fichier sont " "l'indicateur d'ordre des octets UTF-8 (``b'\\xef\\xbb\\xbf'``, *BOM* en " "anglais pour *byte order mark*), le fichier est considéré comme étant en " "UTF-8 (cette convention est reconnue, entre autres, par :program:`notepad` " @@ -415,7 +417,7 @@ msgid "" "from left to right." msgstr "" "Outre NEWLINE, INDENT et DEDENT, il existe les catégories de lexèmes " -"suivantes : *identifiants*, *mots clés*, *littéraux*, *opérateurs* et " +"suivantes : *identifiants*, *mots clés*, *littéraux*, *opérateurs* et " "*délimiteurs*. Les blancs (autres que les fins de lignes, vus auparavant) ne " "sont pas des lexèmes mais servent à délimiter les lexèmes. Quand une " "ambiguïté existe, le lexème correspond à la plus grande chaîne possible qui " @@ -530,7 +532,7 @@ msgid "" msgstr "" "*Other_ID_Start* -- liste explicite des caractères de `PropList.txt `_ pour la compatibilité " -"descendante." +"descendante" #: ../Doc/reference/lexical_analysis.rst:318 msgid "*Other_ID_Continue* - likewise" @@ -581,7 +583,7 @@ msgid "" msgstr "" "Certaines classes d'identifiants (outre les mots-clés) ont une signification " "particulière. Ces classes se reconnaissent par des caractères de " -"soulignement en tête et en queue d'identifiant :" +"soulignement en tête et en queue d'identifiant :" #: ../Doc/reference/lexical_analysis.rst:370 msgid "``_*``" @@ -1197,7 +1199,7 @@ msgstr "" "conversion et :ref:`spécifications de format ` mais " "l'imbrication ne doit pas aller plus profond. Le :ref:`mini-langage de " "spécification de format ` est le même que celui utilisé par la " -"méthode string.format()." +"méthode .format() du type str." #: ../Doc/reference/lexical_analysis.rst:663 msgid "" @@ -1281,7 +1283,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:740 msgid "Integer literals" -msgstr "Entiers littéraux " +msgstr "Entiers littéraux" #: ../Doc/reference/lexical_analysis.rst:742 msgid "Integer literals are described by the following lexical definitions:" @@ -1305,7 +1307,7 @@ msgstr "" "Les soulignés sont ignorés pour déterminer la valeur numérique du littéral. " "Ils peuvent être utilisés pour grouper les chiffres afin de faciliter la " "lecture. Un souligné peut être placé entre des chiffres ou après la " -"spécification de la base telle que `0x``." +"spécification de la base telle que ``0x``." #: ../Doc/reference/lexical_analysis.rst:763 msgid "" @@ -1375,7 +1377,7 @@ msgid "" "Some examples of imaginary literals::" msgstr "" "Un littéral imaginaire produit un nombre complexe dont la partie réelle est " -"0.0. Les nombres complexes sont représentés comme une paire de nombres à " +"``0.0``. Les nombres complexes sont représentés comme une paire de nombres à " "virgule flottante et possèdent les mêmes restrictions concernant les plages " "autorisées. Pour créer un nombre complexe dont la partie réelle est non " "nulle, ajoutez un nombre à virgule flottante à votre littéral imaginaire. " @@ -1406,7 +1408,7 @@ msgid "" msgstr "" "Le point peut aussi apparaître dans les littéraux de nombres à virgule " "flottante et imaginaires. Une suite de trois points possède une " -"signification spéciale : c'est une ellipse littérale. La deuxième partie de " +"signification spéciale : c'est une ellipse littérale. La deuxième partie de " "la liste, les opérateurs d'assignation augmentés, servent de délimiteurs " "pour l'analyseur lexical mais sont aussi des opérateurs." @@ -1426,7 +1428,7 @@ msgid "" msgstr "" "Les caractères ASCII suivants ne sont pas utilisés en Python. S'ils " "apparaissent en dehors de chaines littérales ou de commentaires, ils " -"produisent une erreur." +"produisent une erreur ::" #: ../Doc/reference/lexical_analysis.rst:878 msgid "Footnotes" From 37932b5a6a8a47112e9843707b3f61c57f11b954 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Fri, 23 Mar 2018 23:17:29 +0100 Subject: [PATCH 037/115] =?UTF-8?q?Appellation=20correcte=20du=20caract?= =?UTF-8?q?=C3=A8re=20'#'=20:=20croisillon?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tutorial/appendix.po | 5 +++-- tutorial/introduction.po | 16 ++++++++-------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/tutorial/appendix.po b/tutorial/appendix.po index d2b44b836..5242b5892 100644 --- a/tutorial/appendix.po +++ b/tutorial/appendix.po @@ -9,7 +9,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" -"PO-Revision-Date: 2018-03-10 14:36+0100\n" +"PO-Revision-Date: 2018-03-23 23:14+0100\n" "Last-Translator: Christophe Nanteuil \n" "Language: fr\n" "MIME-Version: 1.0\n" @@ -93,7 +93,8 @@ msgstr "" "``'#!'`` doivent être les deux premiers caractères du fichier. Sur certaines " "plateformes, cette première ligne doit finir avec une fin de ligne de type " "Unix (``'\\n'``) et pas de type Windows (``'\\r\\n'``). Notez que le " -"caractère dièse, ``'#'``, est utilisé pour initier un commentaire en Python." +"caractère croisillon, ``'#'``, est utilisé pour initier un commentaire en " +"Python." #: ../Doc/tutorial/appendix.rst:52 msgid "" diff --git a/tutorial/introduction.po b/tutorial/introduction.po index 4b3aee9e3..e167cc187 100644 --- a/tutorial/introduction.po +++ b/tutorial/introduction.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-12-01 07:43+0100\n" -"PO-Revision-Date: 2018-02-01 21:53+0100\n" +"PO-Revision-Date: 2018-03-23 23:13+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -50,13 +50,13 @@ msgid "" msgstr "" "Beaucoup d'exemples de ce manuel, même ceux saisis à l'invite de " "l'interpréteur, incluent des commentaires. Les commentaires en Python " -"commencent avec un caractère dièse, ``#``, et s'étendent jusqu'à la fin de " -"la ligne. Un commentaire peut apparaître au début d'une ligne ou à la suite " -"d'un espace ou de code, mais pas à l'intérieur d'une chaîne de caractères " -"littérale. Un caractère dièse à l'intérieur d'une chaîne de caractères est " -"juste un caractère dièse. Comme les commentaires ne servent qu'à expliquer " -"le code et ne sont pas interprétés par Python, ils peuvent être ignorés " -"lorsque vous tapez les exemples." +"commencent avec un caractère croisillon, ``#``, et s'étendent jusqu'à la fin " +"de la ligne. Un commentaire peut apparaître au début d'une ligne ou à la " +"suite d'un espace ou de code, mais pas à l'intérieur d'une chaîne de " +"caractères littérale. Un caractère croisillon à l'intérieur d'une chaîne de " +"caractères est juste un caractère croisillon. Comme les commentaires ne " +"servent qu'à expliquer le code et ne sont pas interprétés par Python, ils " +"peuvent être ignorés lorsque vous tapez les exemples." #: ../Doc/tutorial/introduction.rst:22 msgid "Some examples::" From 4e5200daade61b4a528dd5f7c80162fea8692d02 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sat, 24 Mar 2018 12:16:48 +0100 Subject: [PATCH 038/115] =?UTF-8?q?Mise=20en=20coh=C3=A9rence=20des=20d?= =?UTF-8?q?=C3=A9limiteurs=20de=20blocs=20'::'=20entre=20la=20version=20or?= =?UTF-8?q?iginale=20et=20la=20traduction.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/lexical_analysis.po | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/reference/lexical_analysis.po b/reference/lexical_analysis.po index 34e4090c3..428f02c25 100644 --- a/reference/lexical_analysis.po +++ b/reference/lexical_analysis.po @@ -336,7 +336,7 @@ msgid "" "DEDENT tokens, using a stack, as follows." msgstr "" "Les niveaux d'indentation de lignes consécutives sont utilisés pour générer " -"les lexèmes INDENT et DEDENT, en utilisant une pile, de cette façon ::" +"les lexèmes INDENT et DEDENT, en utilisant une pile, de cette façon :" #: ../Doc/reference/lexical_analysis.rst:206 msgid "" @@ -477,7 +477,7 @@ msgstr "" #: ../Doc/reference/lexical_analysis.rst:303 msgid "The Unicode category codes mentioned above stand for:" -msgstr "Les codes de catégories Unicode cités ci-dessus signifient ::" +msgstr "Les codes de catégories Unicode cités ci-dessus signifient :" #: ../Doc/reference/lexical_analysis.rst:305 msgid "*Lu* - uppercase letters" @@ -569,7 +569,7 @@ msgid "" msgstr "" "Les identifiants suivants sont des mots réservés par le langage et ne " "peuvent pas être utilisés en tant qu'identifiants normaux. Ils doivent être " -"écrits exactement comme ci-dessous ::" +"écrits exactement comme ci-dessous :" #: ../Doc/reference/lexical_analysis.rst:354 msgid "Reserved classes of identifiers" @@ -670,7 +670,7 @@ msgstr "Littéraux de chaînes de caractères et de suites d'octets" msgid "String literals are described by the following lexical definitions:" msgstr "" "Les chaînes de caractères littérales sont définies par les définitions " -"lexicales suivantes ::" +"lexicales suivantes :" #: ../Doc/reference/lexical_analysis.rst:429 msgid "" @@ -787,7 +787,7 @@ msgstr "" "À moins que le préfixe ``'r'`` ou ``'R'`` ne soit présent, les séquences " "d'échappement dans les littéraux de chaînes et suites d'octets sont " "interprétées comme elles le seraient par le C Standard. Les séquences " -"d'échappement reconnues sont ::" +"d'échappement reconnues sont :" #: ../Doc/reference/lexical_analysis.rst:481 #: ../Doc/reference/lexical_analysis.rst:514 @@ -920,7 +920,7 @@ msgstr "" msgid "Escape sequences only recognized in string literals are:" msgstr "" "Les séquences d'échappement reconnues seulement dans les chaînes littérales " -"sont ::" +"sont :" #: ../Doc/reference/lexical_analysis.rst:516 msgid "``\\N{name}``" @@ -960,7 +960,7 @@ msgstr "\\(6)" #: ../Doc/reference/lexical_analysis.rst:526 msgid "Notes:" -msgstr "Notes ::" +msgstr "Notes :" #: ../Doc/reference/lexical_analysis.rst:529 msgid "As in Standard C, up to three octal digits are accepted." @@ -1288,7 +1288,7 @@ msgstr "Entiers littéraux" #: ../Doc/reference/lexical_analysis.rst:742 msgid "Integer literals are described by the following lexical definitions:" msgstr "" -"Les entiers littéraux sont décrits par les définitions lexicales suivantes ::" +"Les entiers littéraux sont décrits par les définitions lexicales suivantes :" #: ../Doc/reference/lexical_analysis.rst:756 msgid "" @@ -1338,7 +1338,7 @@ msgid "" "Floating point literals are described by the following lexical definitions:" msgstr "" "Les nombres à virgule flottante littéraux sont décrits par les définitions " -"lexicales suivantes ::" +"lexicales suivantes :" #: ../Doc/reference/lexical_analysis.rst:792 msgid "" @@ -1366,7 +1366,7 @@ msgstr "Imaginaires littéraux" msgid "Imaginary literals are described by the following lexical definitions:" msgstr "" "Les nombres imaginaires sont décrits par les définitions lexicales " -"suivantes ::" +"suivantes :" #: ../Doc/reference/lexical_analysis.rst:815 msgid "" @@ -1389,7 +1389,7 @@ msgstr "Opérateurs" #: ../Doc/reference/lexical_analysis.rst:831 msgid "The following tokens are operators:" -msgstr "Les lexèmes suivants sont des opérateurs ::" +msgstr "Les lexèmes suivants sont des opérateurs :" #: ../Doc/reference/lexical_analysis.rst:844 msgid "Delimiters" @@ -1397,7 +1397,7 @@ msgstr "Délimiteurs" #: ../Doc/reference/lexical_analysis.rst:848 msgid "The following tokens serve as delimiters in the grammar:" -msgstr "Les lexèmes suivants servent de délimiteurs dans la grammaire ::" +msgstr "Les lexèmes suivants servent de délimiteurs dans la grammaire :" #: ../Doc/reference/lexical_analysis.rst:857 msgid "" @@ -1428,7 +1428,7 @@ msgid "" msgstr "" "Les caractères ASCII suivants ne sont pas utilisés en Python. S'ils " "apparaissent en dehors de chaines littérales ou de commentaires, ils " -"produisent une erreur ::" +"produisent une erreur :" #: ../Doc/reference/lexical_analysis.rst:878 msgid "Footnotes" From d7bf0322054cde0831d62d5284da71253e9fe0d5 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Thu, 29 Mar 2018 23:02:55 +0200 Subject: [PATCH 039/115] Reference "Data Model" translation. work in progress, needs cross reading. --- reference/datamodel.po | 368 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 327 insertions(+), 41 deletions(-) diff --git a/reference/datamodel.po b/reference/datamodel.po index cbe6be7aa..bc1577bc7 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -3,27 +3,27 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-02-15 00:51+0100\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2018-03-29 23:02+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/reference/datamodel.rst:6 msgid "Data model" -msgstr "" +msgstr "Modèle de données" #: ../Doc/reference/datamodel.rst:12 msgid "Objects, values and types" -msgstr "" +msgstr "Objets, valeurs et types" #: ../Doc/reference/datamodel.rst:18 msgid "" @@ -32,6 +32,11 @@ msgid "" "sense, and in conformance to Von Neumann's model of a \"stored program " "computer,\" code is also represented by objects.)" msgstr "" +"En Python, les données sont représentées sous forme d':dfn:`objets`. Toutes " +"les données d'un programme Python sont représentées par des objets ou par " +"des relations entre les objets (dans un certain sens, et en conformité avec " +"le modèle de Von Neumann d'\"ordinateur à programme enregistré\", le code " +"est aussi représenté par des objets)." #: ../Doc/reference/datamodel.rst:35 msgid "" @@ -41,10 +46,15 @@ msgid "" "two objects; the :func:`id` function returns an integer representing its " "identity." msgstr "" +"Chaque objet possède un identifiant, un type et une valeur. L'*identifiant* " +"d'un objet ne change jamais après sa création ; vous pouvez vous le " +"représenter comme l'adresse de l'objet en mémoire. L'opérateur ':keyword:" +"`is`' compare les identifiants de deux objets ; la fonction :func:`id` " +"renvoie un entier représentant cet identifiant." #: ../Doc/reference/datamodel.rst:42 msgid "For CPython, ``id(x)`` is the memory address where ``x`` is stored." -msgstr "" +msgstr "en CPython, ``id(x)`` est l'adresse mémoire où est stocké ``x``." #: ../Doc/reference/datamodel.rst:44 msgid "" @@ -54,6 +64,11 @@ msgid "" "an object itself). Like its identity, an object's :dfn:`type` is also " "unchangeable. [#]_" msgstr "" +"Le type de l'objet détermine les opérations que l'on peut appliquer à " +"l'objet (par exemple, \"a-t-il une longueur ?\") et définit aussi les " +"valeurs possibles pour les objets de ce type. La fonction :func:`type` " +"renvoie le type de l'objet (qui est lui-même un objet). Comme l'identifiant, " +"le :dfn:`type` d'un objet ne peut pas être modifié [#]_." #: ../Doc/reference/datamodel.rst:50 msgid "" @@ -68,6 +83,18 @@ msgid "" "instance, numbers, strings and tuples are immutable, while dictionaries and " "lists are mutable." msgstr "" +"La *valeur* de certains objets peut changer. Les objets dont la valeur peut " +"changer sont dits *muables* (*mutable* en anglais) ; les objets dont la " +"valeur est définitivement fixée à leur création sont dits *immuables* " +"(*immutable* en anglais). La valeur d'un objet conteneur immuable qui " +"contient une référence vers un objet muable peut varier lorsque la valeur de " +"l'objet muable change ; cependant, le conteneur est quand même considéré " +"comme immuable parce que l'ensemble des objets qu'il contient ne peut pas " +"être modifié. Ainsi, l'immuabilité n'est pas strictement équivalente au fait " +"d'avoir une valeur non modifiable, c'est plus subtil. La muabilité d'un " +"objet est définie par son type ; par exemple, les nombres, chaines de " +"caractères et les tuples sont immuables alors que les dictionnaires et les " +"listes sont muables." #: ../Doc/reference/datamodel.rst:65 msgid "" @@ -77,6 +104,12 @@ msgid "" "implementation quality how garbage collection is implemented, as long as no " "objects are collected that are still reachable." msgstr "" +"Un objet n'est jamais explicitement détruit ; cependant, lorsqu'il ne peut " +"plus être atteint, il a vocation à être supprimé par le ramasse-miettes " +"(*garbage-collector* en anglais). L'implémentation peut retarder cette " +"opération ou même ne pas la faire du tout --- la façon dont fonctionne le " +"ramasse-miette est particulier à chaque implémentation, l'important étant " +"qu'il ne supprime pas d'objet qui peut encore être atteint." #: ../Doc/reference/datamodel.rst:73 msgid "" @@ -89,6 +122,15 @@ msgid "" "on immediate finalization of objects when they become unreachable (so you " "should always close files explicitly)." msgstr "" +"CPython utilise aujourd'hui un mécanisme de compteur de références avec une " +"détection, en temps différé et optionnelle, des cycles d'objets. Ce " +"mécanisme supprime la plupart des objets dès qu'ils ne sont plus accessibles " +"mais il ne garantit pas la suppression des objets où il existe des " +"références circulaires. Consultez la documentation du module :mod:`gc` pour " +"tout ce qui concerne la suppression des cycles. D'autres implémentations " +"agissent différemment et CPython pourrait évoluer. Ne vous reposez pas sur " +"la finalisation immédiate des objets devenus inaccessibles (ainsi, vous " +"devez toujours fermer les fichiers explicitement)." #: ../Doc/reference/datamodel.rst:82 msgid "" @@ -97,6 +139,11 @@ msgid "" "catching an exception with a ':keyword:`try`...\\ :keyword:`except`' " "statement may keep objects alive." msgstr "" +"Notez que si vous utilisez les fonctionnalités de débogage ou de trace de " +"l'implémentation, il est possible que des références qui seraient " +"normalement supprimées soient toujours présentes. Notez aussi que capturer " +"une exception avec l'instruction ':keyword:`try`...\\ :keyword:`except`' " +"peut conserver des objets en vie." #: ../Doc/reference/datamodel.rst:87 msgid "" @@ -109,6 +156,14 @@ msgid "" "`finally`' statement and the ':keyword:`with`' statement provide convenient " "ways to do this." msgstr "" +"Certains objets font référence à des ressources \"externes\" telles que des " +"fichiers ouverts ou des fenêtres. Ces objets libèrent ces ressources au " +"moment où ils sont supprimés, mais comme le ramasse-miettes ne garantit pas " +"qu'il supprime tous les objets, ces objets fournissent également un moyen " +"explicite de libérer la ressource externe, généralement sous la forme d'une " +"méthode :meth:`close`. Nous incitons fortement les programmeurs à fermer " +"explicitement de tels objets. Les instructions ':keyword:`try`...\\ :" +"keyword:`finally`' et ':keyword:`with`' sont très pratiques pour cela." #: ../Doc/reference/datamodel.rst:97 msgid "" @@ -121,6 +176,16 @@ msgid "" "implied. So, if an immutable container (like a tuple) contains a reference " "to a mutable object, its value changes if that mutable object is changed." msgstr "" +"Certains objets contiennent des références à d'autres objets ; on les " +"appelle *conteneurs*. Comme exemples de conteneurs, nous pouvons citer les " +"tuples, les listes et les dictionnaires. Les références sont parties " +"intégrantes de la valeur d'un conteneur. Dans la plupart des cas, lorsque " +"nous parlons de la valeur d'un conteneur, nous parlons des valeurs, pas les " +"identifiants des objets contenus ; cependant, lorsque nous parlons de la " +"mutabilité d'un conteneur, seuls les identifiants des objets immédiatement " +"contenus sont concernés. Ainsi, si un conteneur immuable (comme un tuple) " +"contient une référence à un objet muable, sa valeur change si cet objet " +"muable est modifié." #: ../Doc/reference/datamodel.rst:106 msgid "" @@ -134,10 +199,20 @@ msgid "" "different, unique, newly created empty lists. (Note that ``c = d = []`` " "assigns the same object to both ``c`` and ``d``.)" msgstr "" +"Presque tous les comportements d'un objet dépendent du type de l'objet. " +"Même son identifiant est concerné dans un certain sens : pour les types " +"immuables, les opérations qui calculent de nouvelles valeurs peuvent en fait " +"renvoyer une référence à n'importe quel objet existant avec le même type et " +"la même valeur, alors que pour les objets muables cela n'est pas autorisé. " +"Par exemple, après ``a = 1 ; b = 1``, ``a`` et ``b`` peuvent ou non se " +"référer au même objet avec la valeur un, en fonction de l'implémentation, " +"mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " +"référence à deux listes vides distinctes nouvellement créées. Notez que ``c " +"= d = []`` attribue le même objet à ``c`` et ``d``." #: ../Doc/reference/datamodel.rst:120 msgid "The standard type hierarchy" -msgstr "" +msgstr "Hiérarchie des types standards" #: ../Doc/reference/datamodel.rst:129 msgid "" @@ -148,6 +223,12 @@ msgid "" "integers, etc.), although such additions will often be provided via the " "standard library instead." msgstr "" +"Vous trouvez ci-dessous une liste des types natifs de Python. Des modules " +"d'extension (écrits en C, Java ou d'autres langages) peuvent définir des " +"types supplémentaires. Les futures versions de Python pourront ajouter des " +"types à cette hiérarchie (par exemple les nombres rationnels, des tableaux " +"d'entiers stockés efficacement, etc.), bien que de tels ajouts se trouvent " +"souvent plutôt dans la bibliothèque standard." #: ../Doc/reference/datamodel.rst:140 msgid "" @@ -156,10 +237,14 @@ msgid "" "and are not intended for general use. Their definition may change in the " "future." msgstr "" +"Quelques descriptions des types ci-dessous contiennent un paragraphe listant " +"des \"attributs spéciaux\". Ces attributs donnent accès à l'implémentation " +"et n'ont pas vocation à être utilisé en général. Leur définition peut " +"changer dans le futur." #: ../Doc/reference/datamodel.rst:150 msgid "None" -msgstr "*None*" +msgstr "" #: ../Doc/reference/datamodel.rst:147 msgid "" @@ -168,6 +253,11 @@ msgid "" "signify the absence of a value in many situations, e.g., it is returned from " "functions that don't explicitly return anything. Its truth value is false." msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le nom natif ``None``. Il est " +"utilisé pour signifier l'absence de valeur dans de nombreux cas, par exemple " +"pour des fonctions qui ne retournent rien explicitement. Sa valeur booléenne " +"est fausse." #: ../Doc/reference/datamodel.rst:165 msgid "NotImplemented" @@ -182,14 +272,23 @@ msgid "" "will then try the reflected operation, or some other fallback, depending on " "the operator.) Its truth value is true." msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le nom natif ``NotImplemented``. " +"Les méthodes numériques et les comparaisons riches doivent renvoyer cette " +"valeur si elles n'implémente pas l'opération pour les opérandes fournies " +"(l'interpréteur essaie alors l'opération en permutant les opérandes ou tout " +"autre stratégie de contournement, en fonction de l'opérateur). Sa valeur " +"booléenne est vraie." #: ../Doc/reference/datamodel.rst:162 msgid "See :ref:`implementing-the-arithmetic-operations` for more details." msgstr "" +"Consultez :ref:`implementing-the-arithmetic-operations` pour davantage de " +"details." #: ../Doc/reference/datamodel.rst:172 msgid "Ellipsis" -msgstr "" +msgstr "Ellipse" #: ../Doc/reference/datamodel.rst:170 msgid "" @@ -197,6 +296,9 @@ msgid "" "This object is accessed through the literal ``...`` or the built-in name " "``Ellipsis``. Its truth value is true." msgstr "" +"Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " +"cette valeur. Vous accédez à cet objet avec le littéral ``...`` ou le nom " +"natif ``Ellipsis``. Sa valeur booléenne est vraie." #: ../Doc/reference/datamodel.rst:242 msgid ":class:`numbers.Number`" @@ -210,12 +312,20 @@ msgid "" "strongly related to mathematical numbers, but subject to the limitations of " "numerical representation in computers." msgstr "" +"Ces objets sont créés par les littéraux numériques et renvoyés en tant que " +"résultats par les opérateurs et les fonctions arithmétiques natives. Les " +"objets numériques sont immuables ; une fois créés, leur valeur ne change " +"pas. Les nombres Python sont bien sûr très fortement corrélés aux nombres " +"mathématiques mais ils sont soumis aux limitations des représentations " +"numériques par les ordinateurs." #: ../Doc/reference/datamodel.rst:183 msgid "" "Python distinguishes between integers, floating point numbers, and complex " "numbers:" msgstr "" +"Python distingue les entiers, les nombres à virgule flottante et les nombres " +"complexes :" #: ../Doc/reference/datamodel.rst:217 msgid ":class:`numbers.Integral`" @@ -226,14 +336,16 @@ msgid "" "These represent elements from the mathematical set of integers (positive and " "negative)." msgstr "" +"Ils représentent des éléments de l'ensemble mathématique des entiers " +"(positifs ou négatifs)." #: ../Doc/reference/datamodel.rst:192 msgid "There are two types of integers:" -msgstr "" +msgstr "Il existe deux types d'entiers :" #: ../Doc/reference/datamodel.rst:194 msgid "Integers (:class:`int`)" -msgstr "" +msgstr "Entiers (:class:`int`)" #: ../Doc/reference/datamodel.rst:196 msgid "" @@ -243,10 +355,16 @@ msgid "" "variant of 2's complement which gives the illusion of an infinite string of " "sign bits extending to the left." msgstr "" +"Ils représentent les nombres, sans limite de taille, sous réserve de pouvoir " +"être stockés en mémoire (virtuelle). Afin de pouvoir effectuer des décalages " +"et appliquer des masques, on considère qu'ils ont une représentation " +"binaire. Les nombres négatifs sont représentés comme une variante du " +"complément à 2, qui donne l'illusion d'une chaine infinie de bits de signe " +"s'étendant vers la gauche." #: ../Doc/reference/datamodel.rst:212 msgid "Booleans (:class:`bool`)" -msgstr "" +msgstr "Booléens (:class:`bool`)" #: ../Doc/reference/datamodel.rst:208 msgid "" @@ -257,6 +375,12 @@ msgid "" "being that when converted to a string, the strings ``\"False\"`` or ``\"True" "\"`` are returned, respectively." msgstr "" +"ils représentent les valeurs vrai et faux. Deux objets, respectivement " +"``False`` et ``True``, sont les seuls objets booléens. Le type booléen est " +"un sous-type du type entier et les valeurs booléennes se comportent comme " +"les valeurs, respectivement, 0 et 1 dans presque tous les contextes. " +"L'exception concerne la conversion en chaîne de caractères où, " +"respectivement, ``\"False\"`` et ``True`` sont renvoyées " #: ../Doc/reference/datamodel.rst:216 msgid "" @@ -264,10 +388,13 @@ msgid "" "meaningful interpretation of shift and mask operations involving negative " "integers." msgstr "" +"Les règles pour la représentation des entiers ont pour objet de donner " +"l'interprétation la plus naturelle pour les opérations de décalage et " +"masquage qui impliquent des entiers négatifs." #: ../Doc/reference/datamodel.rst:232 msgid ":class:`numbers.Real` (:class:`float`)" -msgstr "" +msgstr "Nombres réels :class:`numbers.Real` (:class:`float`)" #: ../Doc/reference/datamodel.rst:226 msgid "" @@ -279,10 +406,19 @@ msgid "" "dwarfed by the overhead of using objects in Python, so there is no reason to " "complicate the language with two kinds of floating point numbers." msgstr "" +"Ils représentent les nombres à virgule flottante en double précision, tels " +"que manipulés directement par la machine. Vous dépendez donc de " +"l'architecture machine sous-jacente (et de l'implémentation C ou Java) pour " +"les intervalles gérés et le traitement des débordements. Python ne gère pas " +"les nombres à virgule flottante en précision simple ; les gains en puissance " +"de calcul et mémoire, qui sont généralement la raison de l'utilisation des " +"nombres en simple précision, sont annihilés par le fait que Python encapsule " +"de toute façon ces nombres dans des objets. Il n'y a donc aucune raison de " +"compliquer le langage avec deux types de nombres à virgule flottante." #: ../Doc/reference/datamodel.rst:242 msgid ":class:`numbers.Complex` (:class:`complex`)" -msgstr "" +msgstr "Nombres complexes :class:`numbers.Complex` (:class:`complex`)" #: ../Doc/reference/datamodel.rst:239 msgid "" @@ -291,10 +427,16 @@ msgid "" "numbers. The real and imaginary parts of a complex number ``z`` can be " "retrieved through the read-only attributes ``z.real`` and ``z.imag``." msgstr "" +"Ils représentent les nombres complexes, sous la forme d'un couple de nombres " +"à virgule flottante en double précision, tels que manipulés directement par " +"la machine. Les mêmes restrictions s'appliquent que pour les nombres à " +"virgule flottante. La partie réelle et la partie imaginaire d'un nombre " +"complexe ``z`` peuvent être demandées par les attributs en lecture seule ``z." +"real`` et ``z.imag``." #: ../Doc/reference/datamodel.rst:359 msgid "Sequences" -msgstr "" +msgstr "Séquences" #: ../Doc/reference/datamodel.rst:252 msgid "" @@ -303,6 +445,11 @@ msgid "" "When the length of a sequence is *n*, the index set contains the numbers 0, " "1, ..., *n*-1. Item *i* of sequence *a* is selected by ``a[i]``." msgstr "" +"Ils représentent des ensembles de taille finie indexés par des entiers " +"positifs ou nuls. La fonction native :func:`len` renvoie le nombre " +"d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " +"l'ensemble des index contient les entiers 0, 1, ... *n*-1. L'élément d'index " +"*i* de la séquence *a* est accédé par ``a[i]``." #: ../Doc/reference/datamodel.rst:259 msgid "" @@ -311,6 +458,11 @@ msgid "" "a sequence of the same type. This implies that the index set is renumbered " "so that it starts at 0." msgstr "" +"Les séquences gèrent le saucissonnage (*slicing* en anglais) : ``a[i:j]`` " +"sélectionne tous les éléments d'index *k* tel que *i* ``<=`` *k* ``<`` *j*. " +"Quand on l'utilise dans une expression, la tranche est du même type que la " +"séquence. Ceci veut dire que l'ensemble des index est renuméroté de manière " +"à partir de 0." #: ../Doc/reference/datamodel.rst:264 msgid "" @@ -318,14 +470,18 @@ msgid "" "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" +"Quelques séquences gèrent le \"saucissonnage étendu\" (*extended slicing* en " +"anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " +"éléments de *a* d'index *x* où ``x = i + n*k``, *n* ``>=`` ``0`` et *i* " +"``<=`` *x* ``<`` *j*." #: ../Doc/reference/datamodel.rst:268 msgid "Sequences are distinguished according to their mutability:" -msgstr "" +msgstr "Les séquences se différencient en fonction de leur mutabilité." #: ../Doc/reference/datamodel.rst:325 msgid "Immutable sequences" -msgstr "" +msgstr "Séquences immuables" #: ../Doc/reference/datamodel.rst:275 msgid "" @@ -334,14 +490,19 @@ msgid "" "be mutable and may be changed; however, the collection of objects directly " "referenced by an immutable object cannot change.)" msgstr "" +"Un objet de type de séquence immuable ne peut pas être modifié une fois " +"qu'il a été créé. Si l'objet contient des références à d'autres objets, ces " +"autres objets peuvent être muables et peuvent être modifiés ; cependant, les " +"objets directement référencés par un objet immuable ne peut pas être " +"modifiés." #: ../Doc/reference/datamodel.rst:280 msgid "The following types are immutable sequences:" -msgstr "" +msgstr "Les types suivants sont des séquences immuables :" #: ../Doc/reference/datamodel.rst:303 msgid "Strings" -msgstr "Les chaînes de caractères" +msgstr "Chaînes de caractères" #: ../Doc/reference/datamodel.rst:293 msgid "" @@ -356,6 +517,18 @@ msgid "" "`bytes` using the given text encoding, and :meth:`bytes.decode` can be used " "to achieve the opposite." msgstr "" +"Une chaîne de caractères (*string* en anglais) est une séquence de valeurs " +"qui représentent des caractères Unicode. Tous les caractères dont le code " +"est dans l'intervalle ``U+0000 - U+10FFFF`` peut être représenté dans une " +"chaîne. Python ne possède pas de type :c:type:`char` ; à la place, chaque " +"caractère Unicode dans la chaîne est représenté par un objet chaîne de " +"longueur ``1``. La fonction native :func:`ord` convertit un caractère " +"Unicode de la représentation en chaîne vers un entier dans l'intervalle ``0 " +"- 10FFFF`` ; la fonction :func:`chr` convertit un entier de l'intervalle ``0 " +"- 10FFFF`` vers l'objet chaîne de longueur ``1`` correspondant. :meth:`str." +"encode` peut être utilisée pour convertir un objet :class:`str` vers :class:" +"`bytes` selon l'encodage spécifié et :meth:`bytes.decode` effectue " +"l'opération inverse." #: ../Doc/reference/datamodel.rst:316 msgid "Tuples" @@ -370,6 +543,13 @@ msgid "" "usable for grouping of expressions). An empty tuple can be formed by an " "empty pair of parentheses." msgstr "" +"Les éléments d'un tuple sont n'importe quels objets Python. Les tuples de " +"deux ou plus éléments sont formés par une liste d'expressions dont les " +"éléments sont séparés par des virgules. Un tuple composé d'un seul élément " +"(un \"singleton\") est formé en suffixant une expression avec une virgule " +"(une expression en tant que telle ne crée pas un tuple car les parenthèses " +"doivent rester disponibles pour grouper les expressions). Un tuple vide peut " +"être formé à l'aide d'une paire de parenthèses vides." #: ../Doc/reference/datamodel.rst:325 msgid "Bytes" @@ -383,10 +563,16 @@ msgid "" "create bytes objects. Also, bytes objects can be decoded to strings via " "the :meth:`~bytes.decode` method." msgstr "" +"Les objets bytes sont des tableaux immuables. Les éléments sont des octets " +"(donc composés de 8 bits), représentés par des entiers dans l'intervalle 0 à " +"255 inclus. Les littéraux bytes (tels que ``b'abc'``) et la fonction native " +"constructeur :func:`bytes()` peuvent être utilisés pour créer des objets " +"bytes. Aussi, un objet bytes peut être décodé vers une chaîne *via* la " +"méthode :meth:`~bytes.decode`." #: ../Doc/reference/datamodel.rst:359 msgid "Mutable sequences" -msgstr "" +msgstr "Séquences muables" #: ../Doc/reference/datamodel.rst:335 msgid "" @@ -394,14 +580,17 @@ msgid "" "and slicing notations can be used as the target of assignment and :keyword:" "`del` (delete) statements." msgstr "" +"Les séquences muables peuvent être modifiées après leur création. Les " +"notations de tranches et de sous-ensemble peuvent être utilisées en tant que " +"cible d'une assignation et de l'instruction :keyword:`del` (suppression)." #: ../Doc/reference/datamodel.rst:339 msgid "There are currently two intrinsic mutable sequence types:" -msgstr "" +msgstr "Il existe aujourd'hui deux types intrinsèques de séquences muables :" #: ../Doc/reference/datamodel.rst:346 msgid "Lists" -msgstr "Les listes" +msgstr "Listes" #: ../Doc/reference/datamodel.rst:344 msgid "" @@ -409,10 +598,14 @@ msgid "" "placing a comma-separated list of expressions in square brackets. (Note that " "there are no special cases needed to form lists of length 0 or 1.)" msgstr "" +"N'importe quel objet Python peut être élément d'une liste. Les listes sont " +"créées en plaçant entre crochets une liste d'expressions dont les éléments " +"sont séparés par des virgules (notez qu'il n'est pas nécessaire de " +"particulariser la création de listes de longueur 0 ou 1)." #: ../Doc/reference/datamodel.rst:354 msgid "Byte Arrays" -msgstr "" +msgstr "Tableaux d'octets" #: ../Doc/reference/datamodel.rst:351 msgid "" @@ -421,16 +614,23 @@ msgid "" "unhashable), byte arrays otherwise provide the same interface and " "functionality as immutable :class:`bytes` objects." msgstr "" +"Un objet *bytearray* est un tableau muable. Il est créé par la fonction " +"native constructeur :func:`bytearray`. À part la propriété d'être muable (et " +"donc de ne pas pouvoir être haché), les tableaux d'octets possèdent la même " +"interface et les mêmes fonctionnalités que les objets immuables :class:" +"`bytes`." #: ../Doc/reference/datamodel.rst:358 msgid "" "The extension module :mod:`array` provides an additional example of a " "mutable sequence type, as does the :mod:`collections` module." msgstr "" +"Le module d'extension :mod:`array` possède un autre exemple de type de " +"séquence muable, de même que le module :mod:`collections`. " #: ../Doc/reference/datamodel.rst:393 msgid "Set types" -msgstr "" +msgstr "Ensembles" #: ../Doc/reference/datamodel.rst:366 msgid "" @@ -441,6 +641,13 @@ msgid "" "from a sequence, and computing mathematical operations such as intersection, " "union, difference, and symmetric difference." msgstr "" +"Ils représentent les ensembles d'objets, non ordonnés, finis et dont les " +"éléments sont uniques. Tels quels, on ne peut pas y accéder par un index. " +"Cependant, il est possible d'itérer dessus et la fonction native :func:`len` " +"renvoie le nombre d'éléments de l'ensemble. Les utilisations classiques des " +"ensembles sont les tests d'appartenance rapides, la suppression de doublons " +"dans une séquence et le calcul d'opérations mathématiques telles que " +"l'intersection, l'union, la différence et le complémentaire." #: ../Doc/reference/datamodel.rst:373 msgid "" @@ -449,14 +656,19 @@ msgid "" "numbers compare equal (e.g., ``1`` and ``1.0``), only one of them can be " "contained in a set." msgstr "" +"Pour les éléments des ensembles, les mêmes règles concernant l'immuabilité " +"s'appliquent que pour les clés de dictionnaires. Notez que les types " +"numériques obéissent aux règles normales pour les comparaisons numériques : " +"si deux nombres sont égaux (pour l'opération de comparaison, par exemple " +"``1`` et ``1.0``), un seul élément est conservé dans l'ensemble." #: ../Doc/reference/datamodel.rst:378 msgid "There are currently two intrinsic set types:" -msgstr "" +msgstr "Actuellement, il existe deux types d'ensembles natifs :" #: ../Doc/reference/datamodel.rst:385 msgid "Sets" -msgstr "Les ensembles" +msgstr "Ensembles" #: ../Doc/reference/datamodel.rst:383 msgid "" @@ -464,10 +676,13 @@ msgid "" "constructor and can be modified afterwards by several methods, such as :meth:" "`~set.add`." msgstr "" +"Ils représentent les ensembles muables. Un ensemble est créé par la fonction " +"native constructeur :func:`set` et peut être modifié par la suite à l'aide " +"de différentes méthodes, par exemple :meth:`~set.add`." #: ../Doc/reference/datamodel.rst:393 msgid "Frozen sets" -msgstr "" +msgstr "Ensembles gelés" #: ../Doc/reference/datamodel.rst:390 msgid "" @@ -475,10 +690,14 @@ msgid "" "`frozenset` constructor. As a frozenset is immutable and :term:`hashable`, " "it can be used again as an element of another set, or as a dictionary key." msgstr "" +"Ils représentent les ensembles immuables. Ils sont créés par la fonction " +"native constructeur :func:`frozenset`. Comme un ensemble gelé est immuable " +"et :term:`hachable`, il peut être utilisé comme élément d'un autre ensemble " +"ou comme clé de dictionnaire." #: ../Doc/reference/datamodel.rst:430 msgid "Mappings" -msgstr "" +msgstr "Tableaux de correspondance" #: ../Doc/reference/datamodel.rst:401 msgid "" @@ -488,10 +707,17 @@ msgid "" "assignments or :keyword:`del` statements. The built-in function :func:`len` " "returns the number of items in a mapping." msgstr "" +"Ils représentent les ensembles finis d'objets indexés par des ensembles " +"index arbitraires. La notation ``a[k]`` sélectionne l'élément indexé par " +"``k`` dans le tableau de correspondance ``a`` ; elle peut être utilisée dans " +"des expressions, comme cible d'une assignation ou avec l'instruction :" +"keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " +"dans le tableau de correspondance." #: ../Doc/reference/datamodel.rst:407 msgid "There is currently a single intrinsic mapping type:" msgstr "" +"Il n'existe actuellement qu'un seul type natif pour les correspondances :" #: ../Doc/reference/datamodel.rst:430 msgid "Dictionaries" @@ -508,32 +734,49 @@ msgid "" "numbers compare equal (e.g., ``1`` and ``1.0``) then they can be used " "interchangeably to index the same dictionary entry." msgstr "" +"Ils représentent les ensembles finis d'objets indexés par des valeurs " +"presqu'arbitraires. Les seuls types de valeurs non reconnus comme clés sont " +"les valeurs contenant des listes, des dictionnaires ou autre types muables " +"qui sont comparés par valeur plutôt que par l'identifiant de l'objet. La " +"raison de cette limitation est qu'une implémentation efficace de " +"dictionnaire requiert que l'empreinte par hachage des clés reste constante " +"dans le temps. Les types numériques obéissent aux règles normales pour les " +"comparaisons numériques : si deux nombres sont égaux (pour l'opération de " +"comparaison, par exemple ``1`` et ``1.0``), alors ces deux nombres peuvent " +"être utilisés indifféremment pour indexer la même entrée du dictionnaire." #: ../Doc/reference/datamodel.rst:421 msgid "" "Dictionaries are mutable; they can be created by the ``{...}`` notation (see " "section :ref:`dict`)." msgstr "" +"Les dictionnaires sont muables : ils peuvent être créés par la notation " +"``{...}`` (lisez la section :ref:`dict`)." #: ../Doc/reference/datamodel.rst:428 msgid "" "The extension modules :mod:`dbm.ndbm` and :mod:`dbm.gnu` provide additional " "examples of mapping types, as does the :mod:`collections` module." msgstr "" +"Les modules d'extensions :mod:`dbm.ndbm` et :mod:`dbm.gnu` apportent " +"d'autres exemples de types tableaux de correspondances, de même que le " +"module :mod:`collections`." #: ../Doc/reference/datamodel.rst:686 msgid "Callable types" -msgstr "" +msgstr "Types appelables" #: ../Doc/reference/datamodel.rst:439 msgid "" "These are the types to which the function call operation (see section :ref:" "`calls`) can be applied:" msgstr "" +"Ce sont les types sur lesquels on peut faire un appel de fonction (lisez la " +"section :ref:`calls`) :" #: ../Doc/reference/datamodel.rst:534 msgid "User-defined functions" -msgstr "" +msgstr "Fonctions définies par l'utilisateur" #: ../Doc/reference/datamodel.rst:448 msgid "" @@ -541,10 +784,14 @@ msgid "" "section :ref:`function`). It should be called with an argument list " "containing the same number of items as the function's formal parameter list." msgstr "" +"Un objet fonction définie par l'utilisateur est créé par la définition d'une " +"fonction (voir la section :ref:`function`). Il doit être appelé avec une " +"liste d'arguments contenant le même nombre d'éléments que la liste des " +"paramètres formels de la fonction." #: ../Doc/reference/datamodel.rst:453 msgid "Special attributes:" -msgstr "" +msgstr "Attributs spéciaux :" #: ../Doc/reference/datamodel.rst:471 msgid "Attribute" @@ -563,6 +810,8 @@ msgid "" "The function's documentation string, or ``None`` if unavailable; not " "inherited by subclasses" msgstr "" +"Chaine de documentation de la fonction ou ``None`` s'il n'en existe pas ; " +"n'est pas héritée par les sous-classes." #: ../Doc/reference/datamodel.rst:473 ../Doc/reference/datamodel.rst:478 #: ../Doc/reference/datamodel.rst:481 ../Doc/reference/datamodel.rst:486 @@ -570,7 +819,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:506 ../Doc/reference/datamodel.rst:514 #: ../Doc/reference/datamodel.rst:521 msgid "Writable" -msgstr "" +msgstr "Accessible en écriture" #: ../Doc/reference/datamodel.rst:478 msgid ":attr:`~definition.\\ __name__`" @@ -578,7 +827,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:478 msgid "The function's name" -msgstr "" +msgstr "Nom de la fonction" #: ../Doc/reference/datamodel.rst:481 msgid ":attr:`~definition.\\ __qualname__`" @@ -586,7 +835,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:481 msgid "The function's :term:`qualified name`" -msgstr "" +msgstr ":term:`qualified name` de la fonction" #: ../Doc/reference/datamodel.rst:486 msgid ":attr:`__module__`" @@ -597,6 +846,8 @@ msgid "" "The name of the module the function was defined in, or ``None`` if " "unavailable." msgstr "" +"Nom du module où la fonction est définie ou ``None`` si ce nom n'est pas " +"disponible." #: ../Doc/reference/datamodel.rst:490 msgid ":attr:`__defaults__`" @@ -607,6 +858,8 @@ msgid "" "A tuple containing default argument values for those arguments that have " "defaults, or ``None`` if no arguments have a default value" msgstr "" +"Tuple contenant les valeurs des arguments par défaut pour ceux qui en sont " +"dotés ou ``None`` si aucun argument n'a de valeur par défaut." #: ../Doc/reference/datamodel.rst:496 msgid ":attr:`__code__`" @@ -614,7 +867,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:496 msgid "The code object representing the compiled function body." -msgstr "" +msgstr "Objet code représentant le corps de la fonction compilée." #: ../Doc/reference/datamodel.rst:499 msgid ":attr:`__globals__`" @@ -625,10 +878,13 @@ msgid "" "A reference to the dictionary that holds the function's global variables --- " "the global namespace of the module in which the function was defined." msgstr "" +"Référence pointant vers le dictionnaire contenant les variables globales de " +"la fonction -- l'espace de noms global du module dans lequel la fonction est " +"définie." #: ../Doc/reference/datamodel.rst:499 ../Doc/reference/datamodel.rst:510 msgid "Read-only" -msgstr "" +msgstr "Accessible en lecture seule" #: ../Doc/reference/datamodel.rst:506 msgid ":attr:`~object.__dict__`" @@ -636,7 +892,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:506 msgid "The namespace supporting arbitrary function attributes." -msgstr "" +msgstr "Espace de noms accueillant les attributs de la fonction." #: ../Doc/reference/datamodel.rst:510 msgid ":attr:`__closure__`" @@ -646,7 +902,7 @@ msgstr "" msgid "" "``None`` or a tuple of cells that contain bindings for the function's free " "variables." -msgstr "" +msgstr "``None`` ou tuple XXX" #: ../Doc/reference/datamodel.rst:514 msgid ":attr:`__annotations__`" @@ -657,6 +913,9 @@ msgid "" "A dict containing annotations of parameters. The keys of the dict are the " "parameter names, and ``'return'`` for the return annotation, if provided." msgstr "" +"Dictionnaire contenant les annotations des paramètres. Les clés du " +"dictionnaires sont les noms des paramètres et ``return`` pour les " +"annotations de la valeur renvoyée, s'ils existent." #: ../Doc/reference/datamodel.rst:521 msgid ":attr:`__kwdefaults__`" @@ -665,12 +924,16 @@ msgstr "" #: ../Doc/reference/datamodel.rst:521 msgid "A dict containing defaults for keyword-only parameters." msgstr "" +"Dictionnaire contenant les valeurs par défaut pour les paramètres passés par " +"mot-clé." #: ../Doc/reference/datamodel.rst:525 msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." msgstr "" +"La plupart des attributs étiquetés \"Accessibles en écriture\" vérifient le " +"type de la valeur qu'on leur assigne." #: ../Doc/reference/datamodel.rst:527 msgid "" @@ -681,22 +944,33 @@ msgid "" "functions. Function attributes on built-in functions may be supported in the " "future.*" msgstr "" +"Les objets fonction acceptent également l'assignation et la lecture " +"d'attributs arbitraires. Vous pouvez utiliser ces fonctions pour, par " +"exemple, associer des métadonnées aux fonctions. La notation classique par " +"point est utilisée pour définir et lire de tels attributs. *Notez que " +"l'implémentation actuelle accepte seulement les attributs de fonction sur " +"les fonctions définies par l'utilisateur. Les attributs de fonction pour les " +"fonctions natives seront peut-être acceptés dans le futur.*" #: ../Doc/reference/datamodel.rst:533 msgid "" "Additional information about a function's definition can be retrieved from " "its code object; see the description of internal types below." msgstr "" +"Vous trouvez davantage d'informations sur la définition de fonctions dans le " +"code de cet objet ; regardez la description des types internes ci-dessous." #: ../Doc/reference/datamodel.rst:603 msgid "Instance methods" -msgstr "" +msgstr "Méthodes d'instances" #: ../Doc/reference/datamodel.rst:542 msgid "" "An instance method object combines a class, a class instance and any " "callable object (normally a user-defined function)." msgstr "" +"Un objet méthode d'instance combine une classe, une instance de classe et " +"tout objet appelable (normalement une fonction définie par l'utilisateur)." #: ../Doc/reference/datamodel.rst:552 msgid "" @@ -707,12 +981,20 @@ msgid "" "`__module__` is the name of the module the method was defined in, or " "``None`` if unavailable." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`__self__` est l'objet de " +"l'instance de classe, :attr:`__func__` est l'objet fonction ; :attr:" +"`__doc__` est la documentation de la méthode (comme ``__func__.__doc__``) ; :" +"attr:`~definition.__name__` est le nom de la méthode (comme ``__func__." +"__name__``) ; :attr:`__module__` est le nom du module où la méthode est " +"définie ou ``None`` s'il n'est pas disponible." #: ../Doc/reference/datamodel.rst:558 msgid "" "Methods also support accessing (but not setting) the arbitrary function " "attributes on the underlying function object." msgstr "" +"Les méthodes savent aussi accéder (mais pas modifier) les attributs de la " +"fonction de l'objet fonction sous-jacent." #: ../Doc/reference/datamodel.rst:561 msgid "" @@ -720,6 +1002,10 @@ msgid "" "class (perhaps via an instance of that class), if that attribute is a user-" "defined function object or a class method object." msgstr "" +"Les objets méthodes définies par l'utilisateur peuvent être créés quand vous " +"récupérez un attribut de classe (par exemple *via* une instance de cette " +"classe) si cet attribut est un objet fonction définie par l'utilisateur ou " +"un objet méthode de classe." #: ../Doc/reference/datamodel.rst:565 msgid "" @@ -934,7 +1220,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:795 msgid "Custom classes" -msgstr "" +msgstr "Classes particularisées" #: ../Doc/reference/datamodel.rst:739 msgid "" From d7c0713e77822c3c7b2cdf60095019516ed414f6 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sun, 1 Apr 2018 20:43:16 +0200 Subject: [PATCH 040/115] =?UTF-8?q?FIX:=20s/Para=C3=A8tres/Param=C3=A8tres?= =?UTF-8?q?/.=20Fixes=20#174.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- library/sys.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/library/sys.po b/library/sys.po index 1f017717b..21e0e5afa 100644 --- a/library/sys.po +++ b/library/sys.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" -"PO-Revision-Date: 2018-03-21 00:52+0100\n" +"PO-Revision-Date: 2018-04-01 20:42+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -19,7 +19,7 @@ msgstr "" #: ../Doc/library/sys.rst:2 msgid ":mod:`sys` --- System-specific parameters and functions" -msgstr ":mod:`sys` --- Paraètres et fonctions propres à des systèmes" +msgstr ":mod:`sys` --- Paramètres et fonctions propres à des systèmes" #: ../Doc/library/sys.rst:9 msgid "" From a288cd7d46e1acae57905409d7897f5fd0886626 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Mon, 9 Apr 2018 23:26:29 +0200 Subject: [PATCH 041/115] "Data Model" translation still in progress. --- reference/datamodel.po | 492 +++++++++++++++++++++++++++++++++-------- 1 file changed, 399 insertions(+), 93 deletions(-) diff --git a/reference/datamodel.po b/reference/datamodel.po index bc1577bc7..bb3226625 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-03-29 23:02+0200\n" +"PO-Revision-Date: 2018-04-09 23:05+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,10 +32,10 @@ msgid "" "sense, and in conformance to Von Neumann's model of a \"stored program " "computer,\" code is also represented by objects.)" msgstr "" -"En Python, les données sont représentées sous forme d':dfn:`objets`. Toutes " +"En Python, les données sont représentées sous forme :dfn:`d'objets`. Toutes " "les données d'un programme Python sont représentées par des objets ou par " "des relations entre les objets (dans un certain sens, et en conformité avec " -"le modèle de Von Neumann d'\"ordinateur à programme enregistré\", le code " +"le modèle de Von Neumann \"d'ordinateur à programme enregistré\", le code " "est aussi représenté par des objets)." #: ../Doc/reference/datamodel.rst:35 @@ -46,7 +46,7 @@ msgid "" "two objects; the :func:`id` function returns an integer representing its " "identity." msgstr "" -"Chaque objet possède un identifiant, un type et une valeur. L'*identifiant* " +"Chaque objet possède un identifiant, un type et une valeur. *L'identifiant* " "d'un objet ne change jamais après sa création ; vous pouvez vous le " "représenter comme l'adresse de l'objet en mémoire. L'opérateur ':keyword:" "`is`' compare les identifiants de deux objets ; la fonction :func:`id` " @@ -92,7 +92,7 @@ msgstr "" "comme immuable parce que l'ensemble des objets qu'il contient ne peut pas " "être modifié. Ainsi, l'immuabilité n'est pas strictement équivalente au fait " "d'avoir une valeur non modifiable, c'est plus subtil. La muabilité d'un " -"objet est définie par son type ; par exemple, les nombres, chaines de " +"objet est définie par son type ; par exemple, les nombres, les chaînes de " "caractères et les tuples sont immuables alors que les dictionnaires et les " "listes sont muables." @@ -108,7 +108,7 @@ msgstr "" "plus être atteint, il a vocation à être supprimé par le ramasse-miettes " "(*garbage-collector* en anglais). L'implémentation peut retarder cette " "opération ou même ne pas la faire du tout --- la façon dont fonctionne le " -"ramasse-miette est particulier à chaque implémentation, l'important étant " +"ramasse-miette est particulière à chaque implémentation, l'important étant " "qu'il ne supprime pas d'objet qui peut encore être atteint." #: ../Doc/reference/datamodel.rst:73 @@ -182,7 +182,7 @@ msgstr "" "intégrantes de la valeur d'un conteneur. Dans la plupart des cas, lorsque " "nous parlons de la valeur d'un conteneur, nous parlons des valeurs, pas les " "identifiants des objets contenus ; cependant, lorsque nous parlons de la " -"mutabilité d'un conteneur, seuls les identifiants des objets immédiatement " +"muabilité d'un conteneur, seuls les identifiants des objets immédiatement " "contenus sont concernés. Ainsi, si un conteneur immuable (comme un tuple) " "contient une référence à un objet muable, sa valeur change si cet objet " "muable est modifié." @@ -205,8 +205,8 @@ msgstr "" "renvoyer une référence à n'importe quel objet existant avec le même type et " "la même valeur, alors que pour les objets muables cela n'est pas autorisé. " "Par exemple, après ``a = 1 ; b = 1``, ``a`` et ``b`` peuvent ou non se " -"référer au même objet avec la valeur un, en fonction de l'implémentation, " -"mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " +"référer au même objet avec la valeur un, en fonction de l'implémentation. " +"Mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " "référence à deux listes vides distinctes nouvellement créées. Notez que ``c " "= d = []`` attribue le même objet à ``c`` et ``d``." @@ -239,12 +239,12 @@ msgid "" msgstr "" "Quelques descriptions des types ci-dessous contiennent un paragraphe listant " "des \"attributs spéciaux\". Ces attributs donnent accès à l'implémentation " -"et n'ont pas vocation à être utilisé en général. Leur définition peut " +"et n'ont, en général, pas vocation à être utilisés. Leur définition peut " "changer dans le futur." #: ../Doc/reference/datamodel.rst:150 msgid "None" -msgstr "" +msgstr "None" #: ../Doc/reference/datamodel.rst:147 msgid "" @@ -275,7 +275,7 @@ msgstr "" "Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " "cette valeur. Vous accédez à cet objet avec le nom natif ``NotImplemented``. " "Les méthodes numériques et les comparaisons riches doivent renvoyer cette " -"valeur si elles n'implémente pas l'opération pour les opérandes fournies " +"valeur si elles n'implémentent pas l'opération pour les opérandes fournies " "(l'interpréteur essaie alors l'opération en permutant les opérandes ou tout " "autre stratégie de contournement, en fonction de l'opérateur). Sa valeur " "booléenne est vraie." @@ -359,7 +359,7 @@ msgstr "" "être stockés en mémoire (virtuelle). Afin de pouvoir effectuer des décalages " "et appliquer des masques, on considère qu'ils ont une représentation " "binaire. Les nombres négatifs sont représentés comme une variante du " -"complément à 2, qui donne l'illusion d'une chaine infinie de bits de signe " +"complément à 2, qui donne l'illusion d'une chaîne infinie de bits de signe " "s'étendant vers la gauche." #: ../Doc/reference/datamodel.rst:212 @@ -375,12 +375,12 @@ msgid "" "being that when converted to a string, the strings ``\"False\"`` or ``\"True" "\"`` are returned, respectively." msgstr "" -"ils représentent les valeurs vrai et faux. Deux objets, respectivement " -"``False`` et ``True``, sont les seuls objets booléens. Le type booléen est " -"un sous-type du type entier et les valeurs booléennes se comportent comme " -"les valeurs, respectivement, 0 et 1 dans presque tous les contextes. " -"L'exception concerne la conversion en chaîne de caractères où, " -"respectivement, ``\"False\"`` et ``True`` sont renvoyées " +"Ils représentent les valeurs \"faux\" et \"vrai\". Deux objets, ``False`` et " +"``True``, sont les seuls objets booléens. Le type booléen est un sous-type " +"du type entier et les valeurs booléennes se comportent comme les valeurs 0 " +"(pour ``False``) et 1 (pour ``True``) dans presque tous les contextes. " +"L'exception concerne la conversion en chaîne de caractères où ``\"False\"`` " +"et ``\"True\"`` sont renvoyées." #: ../Doc/reference/datamodel.rst:216 msgid "" @@ -394,7 +394,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:232 msgid ":class:`numbers.Real` (:class:`float`)" -msgstr "Nombres réels :class:`numbers.Real` (:class:`float`)" +msgstr ":class:`numbers.Real` (:class:`float`)" #: ../Doc/reference/datamodel.rst:226 msgid "" @@ -418,7 +418,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:242 msgid ":class:`numbers.Complex` (:class:`complex`)" -msgstr "Nombres complexes :class:`numbers.Complex` (:class:`complex`)" +msgstr ":class:`numbers.Complex` (:class:`complex`)" #: ../Doc/reference/datamodel.rst:239 msgid "" @@ -445,11 +445,11 @@ msgid "" "When the length of a sequence is *n*, the index set contains the numbers 0, " "1, ..., *n*-1. Item *i* of sequence *a* is selected by ``a[i]``." msgstr "" -"Ils représentent des ensembles de taille finie indexés par des entiers " +"Ils représentent des ensembles de taille finie indicés par des entiers " "positifs ou nuls. La fonction native :func:`len` renvoie le nombre " "d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " -"l'ensemble des index contient les entiers 0, 1, ... *n*-1. L'élément d'index " -"*i* de la séquence *a* est accédé par ``a[i]``." +"l'ensemble des indices contient les entiers 0, 1 ..., *n*-1. L'élément " +"d'indice *i* de la séquence *a* est accédé par ``a[i]``." #: ../Doc/reference/datamodel.rst:259 msgid "" @@ -458,11 +458,11 @@ msgid "" "a sequence of the same type. This implies that the index set is renumbered " "so that it starts at 0." msgstr "" -"Les séquences gèrent le saucissonnage (*slicing* en anglais) : ``a[i:j]`` " -"sélectionne tous les éléments d'index *k* tel que *i* ``<=`` *k* ``<`` *j*. " -"Quand on l'utilise dans une expression, la tranche est du même type que la " -"séquence. Ceci veut dire que l'ensemble des index est renuméroté de manière " -"à partir de 0." +"Les séquences peuvent aussi être découpées (*slicing* en anglais) : ``a[i:" +"j]`` sélectionne tous les éléments d'indice *k* tel que *i* ``<=`` *k* ``<`` " +"*j*. Quand on l'utilise dans une expression, la tranche est du même type que " +"la séquence. Ceci veut dire que l'ensemble des indices est renuméroté de " +"manière à partir de 0." #: ../Doc/reference/datamodel.rst:264 msgid "" @@ -470,14 +470,14 @@ msgid "" "parameter: ``a[i:j:k]`` selects all items of *a* with index *x* where ``x = " "i + n*k``, *n* ``>=`` ``0`` and *i* ``<=`` *x* ``<`` *j*." msgstr "" -"Quelques séquences gèrent le \"saucissonnage étendu\" (*extended slicing* en " +"Quelques séquences gèrent le \"découpage étendu\" (*extended slicing* en " "anglais) avec un troisième paramètre : ``a[i:j:k]`` sélectionne tous les " -"éléments de *a* d'index *x* où ``x = i + n*k``, *n* ``>=`` ``0`` et *i* " -"``<=`` *x* ``<`` *j*." +"éléments de *a* d'indice *x* où ``x = i + n*k``, avec *n* ``>=`` ``0`` et " +"*i* ``<=`` *x* ``<`` *j*." #: ../Doc/reference/datamodel.rst:268 msgid "Sequences are distinguished according to their mutability:" -msgstr "Les séquences se différencient en fonction de leur mutabilité." +msgstr "Les séquences se différencient en fonction de leur muabilité :" #: ../Doc/reference/datamodel.rst:325 msgid "Immutable sequences" @@ -493,7 +493,7 @@ msgstr "" "Un objet de type de séquence immuable ne peut pas être modifié une fois " "qu'il a été créé. Si l'objet contient des références à d'autres objets, ces " "autres objets peuvent être muables et peuvent être modifiés ; cependant, les " -"objets directement référencés par un objet immuable ne peut pas être " +"objets directement référencés par un objet immuable ne peuvent pas être " "modifiés." #: ../Doc/reference/datamodel.rst:280 @@ -518,8 +518,8 @@ msgid "" "to achieve the opposite." msgstr "" "Une chaîne de caractères (*string* en anglais) est une séquence de valeurs " -"qui représentent des caractères Unicode. Tous les caractères dont le code " -"est dans l'intervalle ``U+0000 - U+10FFFF`` peut être représenté dans une " +"qui représentent des caractères Unicode. Tout caractère dont le code est " +"dans l'intervalle ``U+0000 - U+10FFFF`` peut être représenté dans une " "chaîne. Python ne possède pas de type :c:type:`char` ; à la place, chaque " "caractère Unicode dans la chaîne est représenté par un objet chaîne de " "longueur ``1``. La fonction native :func:`ord` convertit un caractère " @@ -563,12 +563,12 @@ msgid "" "create bytes objects. Also, bytes objects can be decoded to strings via " "the :meth:`~bytes.decode` method." msgstr "" -"Les objets bytes sont des tableaux immuables. Les éléments sont des octets " +"Les objets *bytes* sont des tableaux immuables. Les éléments sont des octets " "(donc composés de 8 bits), représentés par des entiers dans l'intervalle 0 à " -"255 inclus. Les littéraux bytes (tels que ``b'abc'``) et la fonction native " -"constructeur :func:`bytes()` peuvent être utilisés pour créer des objets " -"bytes. Aussi, un objet bytes peut être décodé vers une chaîne *via* la " -"méthode :meth:`~bytes.decode`." +"255 inclus. Les littéraux *bytes* (tels que ``b'abc'``) et la fonction " +"native constructeur :func:`bytes()` peuvent être utilisés pour créer des " +"objets *bytes*. Aussi, un objet *bytes* peut être décodé vers une chaîne " +"*via* la méthode :meth:`~bytes.decode`." #: ../Doc/reference/datamodel.rst:359 msgid "Mutable sequences" @@ -581,8 +581,9 @@ msgid "" "`del` (delete) statements." msgstr "" "Les séquences muables peuvent être modifiées après leur création. Les " -"notations de tranches et de sous-ensemble peuvent être utilisées en tant que " -"cible d'une assignation et de l'instruction :keyword:`del` (suppression)." +"notations de tranches et de sous-ensembles peuvent être utilisées en tant " +"que cibles d'une assignation ou de l'instruction :keyword:`del` " +"(suppression)." #: ../Doc/reference/datamodel.rst:339 msgid "There are currently two intrinsic mutable sequence types:" @@ -600,8 +601,8 @@ msgid "" msgstr "" "N'importe quel objet Python peut être élément d'une liste. Les listes sont " "créées en plaçant entre crochets une liste d'expressions dont les éléments " -"sont séparés par des virgules (notez qu'il n'est pas nécessaire de " -"particulariser la création de listes de longueur 0 ou 1)." +"sont séparés par des virgules (notez que les listes de longueur 0 ou 1 ne " +"sont pas des cas particuliers)." #: ../Doc/reference/datamodel.rst:354 msgid "Byte Arrays" @@ -616,17 +617,17 @@ msgid "" msgstr "" "Un objet *bytearray* est un tableau muable. Il est créé par la fonction " "native constructeur :func:`bytearray`. À part la propriété d'être muable (et " -"donc de ne pas pouvoir être haché), les tableaux d'octets possèdent la même " -"interface et les mêmes fonctionnalités que les objets immuables :class:" -"`bytes`." +"donc de ne pas pouvoir calculer une empreinte par hachage), les tableaux " +"d'octets possèdent la même interface et les mêmes fonctionnalités que les " +"objets immuables :class:`bytes`." #: ../Doc/reference/datamodel.rst:358 msgid "" "The extension module :mod:`array` provides an additional example of a " "mutable sequence type, as does the :mod:`collections` module." msgstr "" -"Le module d'extension :mod:`array` possède un autre exemple de type de " -"séquence muable, de même que le module :mod:`collections`. " +"Le module d'extension :mod:`array` fournit un autre exemple de type de " +"séquence muable, de même que le module :mod:`collections`." #: ../Doc/reference/datamodel.rst:393 msgid "Set types" @@ -642,7 +643,7 @@ msgid "" "union, difference, and symmetric difference." msgstr "" "Ils représentent les ensembles d'objets, non ordonnés, finis et dont les " -"éléments sont uniques. Tels quels, on ne peut pas y accéder par un index. " +"éléments sont uniques. Tels quels, ils ne peuvent pas être indicés. " "Cependant, il est possible d'itérer dessus et la fonction native :func:`len` " "renvoie le nombre d'éléments de l'ensemble. Les utilisations classiques des " "ensembles sont les tests d'appartenance rapides, la suppression de doublons " @@ -697,7 +698,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:430 msgid "Mappings" -msgstr "Tableaux de correspondance" +msgstr "Tableaux de correspondances" #: ../Doc/reference/datamodel.rst:401 msgid "" @@ -707,17 +708,18 @@ msgid "" "assignments or :keyword:`del` statements. The built-in function :func:`len` " "returns the number of items in a mapping." msgstr "" -"Ils représentent les ensembles finis d'objets indexés par des ensembles " -"index arbitraires. La notation ``a[k]`` sélectionne l'élément indexé par " +"Ils représentent les ensembles finis d'objets indicés par des ensembles " +"index arbitraires. La notation ``a[k]`` sélectionne l'élément indicé par " "``k`` dans le tableau de correspondance ``a`` ; elle peut être utilisée dans " "des expressions, comme cible d'une assignation ou avec l'instruction :" "keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " -"dans le tableau de correspondance." +"dans le tableau de correspondances." #: ../Doc/reference/datamodel.rst:407 msgid "There is currently a single intrinsic mapping type:" msgstr "" -"Il n'existe actuellement qu'un seul type natif pour les correspondances :" +"Il n'existe actuellement qu'un seul type natif pour les tableaux de " +"correspondances :" #: ../Doc/reference/datamodel.rst:430 msgid "Dictionaries" @@ -734,16 +736,16 @@ msgid "" "numbers compare equal (e.g., ``1`` and ``1.0``) then they can be used " "interchangeably to index the same dictionary entry." msgstr "" -"Ils représentent les ensembles finis d'objets indexés par des valeurs " +"Ils représentent les ensembles finis d'objets indicés par des valeurs " "presqu'arbitraires. Les seuls types de valeurs non reconnus comme clés sont " -"les valeurs contenant des listes, des dictionnaires ou autre types muables " -"qui sont comparés par valeur plutôt que par l'identifiant de l'objet. La " -"raison de cette limitation est qu'une implémentation efficace de " +"les valeurs contenant des listes, des dictionnaires ou les autres types " +"muables qui sont comparés par valeur plutôt que par l'identifiant de " +"l'objet. La raison de cette limitation est qu'une implémentation efficace de " "dictionnaire requiert que l'empreinte par hachage des clés reste constante " "dans le temps. Les types numériques obéissent aux règles normales pour les " -"comparaisons numériques : si deux nombres sont égaux (pour l'opération de " -"comparaison, par exemple ``1`` et ``1.0``), alors ces deux nombres peuvent " -"être utilisés indifféremment pour indexer la même entrée du dictionnaire." +"comparaisons numériques : si deux nombres sont égaux pour l'opération de " +"comparaison, par exemple ``1`` et ``1.0``, alors ces deux nombres peuvent " +"être utilisés indifféremment pour désigner la même entrée du dictionnaire." #: ../Doc/reference/datamodel.rst:421 msgid "" @@ -810,8 +812,8 @@ msgid "" "The function's documentation string, or ``None`` if unavailable; not " "inherited by subclasses" msgstr "" -"Chaine de documentation de la fonction ou ``None`` s'il n'en existe pas ; " -"n'est pas héritée par les sous-classes." +"Chaîne de documentation de la fonction ou ``None`` s'il n'en existe pas ; " +"n'est pas héritée par les sous-classes" #: ../Doc/reference/datamodel.rst:473 ../Doc/reference/datamodel.rst:478 #: ../Doc/reference/datamodel.rst:481 ../Doc/reference/datamodel.rst:486 @@ -902,7 +904,9 @@ msgstr "" msgid "" "``None`` or a tuple of cells that contain bindings for the function's free " "variables." -msgstr "``None`` ou tuple XXX" +msgstr "" +"``None`` ou tuple de cellules qui contient un lien pour chaque variable " +"libre de la fonction." #: ../Doc/reference/datamodel.rst:514 msgid ":attr:`__annotations__`" @@ -914,8 +918,10 @@ msgid "" "parameter names, and ``'return'`` for the return annotation, if provided." msgstr "" "Dictionnaire contenant les annotations des paramètres. Les clés du " -"dictionnaires sont les noms des paramètres et ``return`` pour les " -"annotations de la valeur renvoyée, s'ils existent." +"dictionnaire sont les noms des paramètres et la clé ``\"return\"`` est " +"utilisée pour les annotations de la valeur renvoyée. Les entrées du " +"dictionnaire ne sont présentes que si les paramètres sont effectivement " +"annotés." #: ../Doc/reference/datamodel.rst:521 msgid ":attr:`__kwdefaults__`" @@ -944,8 +950,8 @@ msgid "" "functions. Function attributes on built-in functions may be supported in the " "future.*" msgstr "" -"Les objets fonction acceptent également l'assignation et la lecture " -"d'attributs arbitraires. Vous pouvez utiliser ces fonctions pour, par " +"Les objets fonctions acceptent également l'assignation et la lecture " +"d'attributs arbitraires. Vous pouvez utiliser cette fonctionnalité pour, par " "exemple, associer des métadonnées aux fonctions. La notation classique par " "point est utilisée pour définir et lire de tels attributs. *Notez que " "l'implémentation actuelle accepte seulement les attributs de fonction sur " @@ -958,7 +964,7 @@ msgid "" "its code object; see the description of internal types below." msgstr "" "Vous trouvez davantage d'informations sur la définition de fonctions dans le " -"code de cet objet ; regardez la description des types internes ci-dessous." +"code de cet objet ; la description des types internes est donnée plus bas." #: ../Doc/reference/datamodel.rst:603 msgid "Instance methods" @@ -981,10 +987,10 @@ msgid "" "`__module__` is the name of the module the method was defined in, or " "``None`` if unavailable." msgstr "" -"Attributs spéciaux en lecture seule : :attr:`__self__` est l'objet de " -"l'instance de classe, :attr:`__func__` est l'objet fonction ; :attr:" -"`__doc__` est la documentation de la méthode (comme ``__func__.__doc__``) ; :" -"attr:`~definition.__name__` est le nom de la méthode (comme ``__func__." +"Attributs spéciaux en lecture seule : :attr:`__self__` est l'objet instance " +"de classe, :attr:`__func__` est l'objet fonction ; :attr:`__doc__` est la " +"documentation de la méthode (comme ``__func__.__doc__``) ; :attr:" +"`~definition.__name__` est le nom de la méthode (comme ``__func__." "__name__``) ; :attr:`__module__` est le nom du module où la méthode est " "définie ou ``None`` s'il n'est pas disponible." @@ -1014,6 +1020,10 @@ msgid "" "attribute is the instance, and the method object is said to be bound. The " "new method's :attr:`__func__` attribute is the original function object." msgstr "" +"Quand un objet méthode d'instance est créé à partir d'un objet fonction " +"défini par l'utilisateur *via* une des instances, son attribut :attr:" +"`__self__` est l'instance et l'objet méthode est réputé lié. Le nouvel " +"attribut de la méthode :attr:`__func__` est l'objet fonction original." #: ../Doc/reference/datamodel.rst:571 msgid "" @@ -1022,6 +1032,11 @@ msgid "" "object, except that the :attr:`__func__` attribute of the new instance is " "not the original method object but its :attr:`__func__` attribute." msgstr "" +"Quand un objet méthode définie par l'utilisateur est créé à partir d'un " +"autre objet méthode de la classe ou de l'instance, son comportement est " +"identique à l'objet fonction sauf pour l'attribut :attr:`__func__` de la " +"nouvelle instance qui n'est pas l'objet méthode original mais son attribut :" +"attr:`__func__`." #: ../Doc/reference/datamodel.rst:577 msgid "" @@ -1030,6 +1045,10 @@ msgid "" "itself, and its :attr:`__func__` attribute is the function object underlying " "the class method." msgstr "" +"Quand un objet méthode d'instance est créé à partir d'un autre objet méthode " +"de la classe ou de l'instance, son attribut :attr:`__self__` est la classe " +"elle-même et son attribut :attr:`__func__` est l'objet fonction sous-jacent " +"la méthode de classe." #: ../Doc/reference/datamodel.rst:582 msgid "" @@ -1039,6 +1058,12 @@ msgid "" "contains a definition for a function :meth:`f`, and ``x`` is an instance of :" "class:`C`, calling ``x.f(1)`` is equivalent to calling ``C.f(x, 1)``." msgstr "" +"Quand un objet méthode d'instance est appelé, la fonction sous-jacente (:" +"attr:`__func__`) est appelée et l'objet instance de la classe (:attr:" +"`__self__`) est inséré en tête de liste des arguments. Par exemple, si :" +"class:`C` est une classe qui contient la définition d'une fonction :meth:`f` " +"et que ``x`` est une instance de :class:`C`, alors appeler ``x.f(1)`` est " +"équivalent à appeler ``C.f(x, 1)``." #: ../Doc/reference/datamodel.rst:589 msgid "" @@ -1047,6 +1072,10 @@ msgid "" "itself, so that calling either ``x.f(1)`` or ``C.f(1)`` is equivalent to " "calling ``f(C,1)`` where ``f`` is the underlying function." msgstr "" +"Quand un objet méthode d'instance est dérivé à partir d'un objet méthode de " +"classe, l'instance de classe stockée dans :attr:`__self__` est en fait la " +"classe elle-même. Ainsi, appeler ``x.f(1)`` ou ``C.f(1)`` est équivalent à " +"appeler ``f(C, 1)`` où ``f`` est la fonction sous-jacente." #: ../Doc/reference/datamodel.rst:594 msgid "" @@ -1060,10 +1089,20 @@ msgid "" "class instance are not converted to bound methods; this *only* happens when " "the function is an attribute of the class." msgstr "" +"Notez que la transformation d'objet fonction en objet méthode d'instance se " +"produit à chaque fois que l'attribut est récupéré à partir de l'instance. " +"Dans certains cas, assigner l'attribut à une variable locale et appeler " +"cette variable locale constitue une bonne optimisation. Notez aussi que " +"cette transformation n'a lieu que pour les fonctions définies par " +"l'utilisateur : les autres objets appelables (et les objets non appelables) " +"sont récupérés sans transformation. Il est aussi important de remarquer que " +"les fonctions définies par l'utilisateur qui sont attributs d'une instance " +"de classe ne sont pas converties en méthodes liées ; ceci n'a lieu que pour " +"les fonctions qui sont attributs de la classe." #: ../Doc/reference/datamodel.rst:618 msgid "Generator functions" -msgstr "" +msgstr "Fonctions générateurs" #: ../Doc/reference/datamodel.rst:610 msgid "" @@ -1077,10 +1116,19 @@ msgid "" "raised and the iterator will have reached the end of the set of values to be " "returned." msgstr "" +"Une fonction ou une méthode qui utilise l'instruction :keyword:`yield` (voir " +"la section :ref:`yield`) est appelée :dfn:`fonction générateur`. Une telle " +"fonction, lorsqu'elle est appelée, retourne toujours un objet itérateur qui " +"peut être utilisé pour exécuter le corps de la fonction : appeler la " +"méthode :meth:`iterator.__next__` de l'itérateur exécute la fonction jusqu'à " +"ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`yield`. " +"Quand la fonction exécute l'instruction :keyword:`return` ou se termine, une " +"exception :exc:`StopIteration` est levée et l'itérateur a atteint la fin de " +"l'ensemble de valeurs qu'il peut prendre." #: ../Doc/reference/datamodel.rst:628 msgid "Coroutine functions" -msgstr "" +msgstr "Fonctions coroutines" #: ../Doc/reference/datamodel.rst:624 msgid "" @@ -1090,10 +1138,15 @@ msgid "" "as :keyword:`async with` and :keyword:`async for` statements. See also the :" "ref:`coroutine-objects` section." msgstr "" +"Une fonction ou méthode définie en utilisant :keyword:`async def` est " +"appelée :dfn:`fonction coroutine`. Une telle fonction, quand elle est " +"appelée, renvoie un objet :term:`coroutine`. Elle peut contenir des " +"expressions :keyword:`await` ou :keyword:`async with` ou des instructions :" +"keyword:`async for`. Voir également la section :ref:`coroutine-objects`." #: ../Doc/reference/datamodel.rst:647 msgid "Asynchronous generator functions" -msgstr "" +msgstr "Fonctions générateurs asynchrones" #: ../Doc/reference/datamodel.rst:635 msgid "" @@ -1103,6 +1156,11 @@ msgid "" "object which can be used in an :keyword:`async for` statement to execute the " "body of the function." msgstr "" +"Une fonction ou une méthode définie avec :keyword:`async def` et qui utilise " +"l'instruction :keyword:`yield` est appelée :dfn:`fonction générateur " +"asynchrone`. Une telle fonction, quand elle est appelée, renvoie un objet " +"itérateur asynchrone qui peut être utilisé dans des instructions :keyword:" +"`async for` pour exécuter le corps de la fonction." #: ../Doc/reference/datamodel.rst:641 msgid "" @@ -1113,6 +1171,12 @@ msgid "" "`StopAsyncIteration` exception is raised and the asynchronous iterator will " "have reached the end of the set of values to be yielded." msgstr "" +"Appeler la méthode :meth:`aiterator.__anext__` de l'itérateur asynchrone " +"renvoie un :term:`awaitable` qui, lorsqu'on l'attend, s'exécute jusqu'à ce " +"qu'il fournisse une valeur à l'aide de l'expression :keyword:`yield`. Quand " +"la fonction exécute une instruction vide :keyword:`return` ou arrive à la " +"fin, une exception :exc:`StopAsynciteration` est levée et l'itérateur " +"asynchrone a atteint la fin de l'ensemble des valeurs qu'il peut produire." #: ../Doc/reference/datamodel.rst:662 msgid "Built-in functions" @@ -1129,10 +1193,19 @@ msgid "" "``None`` (but see the next item); :attr:`__module__` is the name of the " "module the function was defined in or ``None`` if unavailable." msgstr "" +"Un objet fonction native est une enveloppe autour d'une fonction C. Nous " +"pouvons citer :func:`len` et :func:`math.sin` (:mod:`math` est un module " +"standard natif) comme fonctions natives. Le nombre et le type des arguments " +"sont déterminés par la fonction C. Des attributs spéciaux en lecture seule " +"existent : :attr:`__doc__` contient la chaîne de documentation de la " +"fonction (ou ``None`` s'il n'y en a pas) ; :attr:`~definition.__name__` est " +"le nom de la fonction ; :attr:`__self__` est défini à ``None`` ; :attr:" +"`__module__` est le nom du module où la fonction est définie ou ``None`` " +"s'il n'est pas disponible." #: ../Doc/reference/datamodel.rst:674 msgid "Built-in methods" -msgstr "" +msgstr "Méthodes natives" #: ../Doc/reference/datamodel.rst:670 msgid "" @@ -1142,6 +1215,11 @@ msgid "" "*alist* is a list object. In this case, the special read-only attribute :" "attr:`__self__` is set to the object denoted by *alist*." msgstr "" +"Ce sont des fonctions natives déguisées, contenant un objet passé à une " +"fonction C en tant qu'argument supplémentaire implicite. Un exemple de " +"méthode native est ``une_liste.append()`` (une_liste étant un objet liste). " +"Dans ce cas, l'attribut spécial en lecture seul :attr:`__self__` est défini " +"à l'objet *une_liste*." #: ../Doc/reference/datamodel.rst:681 msgid "Classes" @@ -1155,16 +1233,23 @@ msgid "" "`__new__` and, in the typical case, to :meth:`__init__` to initialize the " "new instance." msgstr "" +"Les classes sont des appelables. Ces objets sont normalement utilisés pour " +"créer des instances d'elles-mêmes mais des variations sont possibles pour " +"les types de classes qui surchargent :meth:`__new__`. Les arguments de " +"l'appel sont passés à :meth:`__new__` et, dans le cas classique, :meth:" +"`__new__` initialise une nouvelle instance." #: ../Doc/reference/datamodel.rst:686 msgid "Class Instances" -msgstr "" +msgstr "Instances de classe" #: ../Doc/reference/datamodel.rst:684 msgid "" "Instances of arbitrary classes can be made callable by defining a :meth:" "`__call__` method in their class." msgstr "" +"Les instances d'une classe peuvent devenir des appelables si vous définissez " +"la méthode :meth:`__call__` de leur classe." #: ../Doc/reference/datamodel.rst:736 msgid "Modules" @@ -1183,12 +1268,25 @@ msgid "" "object does not contain the code object used to initialize the module (since " "it isn't needed once the initialization is done)." msgstr "" +"Les modules constituent l'organisation de base du code Python et sont créés " +"par le :ref:`mécanisme d'import ` soit avec l'instruction :" +"keyword:`import` (voir :keyword:`import`), soit en appelant des fonctions " +"telles que :func:`importlib.import_module` ou la fonction native :func:" +"`__import__`. Un objet module possède un espace de noms implémenté par un " +"objet dictionnaire (c'est le dictionnaire référencé par l'attribut " +"``__globals__`` des fonctions définies dans le module). Les références à un " +"attribut sont traduites en recherches dans ce dictionnaire, par exemple ``m." +"x`` est équivalent à ``m.__dict__[\"x\"]``. Un objet module ne contient pas " +"l'objet code utilisé pour initialiser le module (puisque celui-ci n'est plus " +"nécessaire une fois l'initialisation terminée)." #: ../Doc/reference/datamodel.rst:705 msgid "" "Attribute assignment updates the module's namespace dictionary, e.g., ``m.x " "= 1`` is equivalent to ``m.__dict__[\"x\"] = 1``." msgstr "" +"L'assignation d'un attribut met à jour le dictionnaire d'espace de noms du " +"module, par exemple ``m.x = 1`` est équivalent à ``m.__dict__[\"x\"] = 1``." #: ../Doc/reference/datamodel.rst:715 msgid "" @@ -1203,12 +1301,25 @@ msgid "" "loaded dynamically from a shared library, it is the pathname of the shared " "library file." msgstr "" +"Attributs prédéfinis (en lecture-écriture) : :attr:`__name__` est le nom du " +"module ; :attr:`__doc__` est la chaîne de documentation du module (ou " +"``None`` s'il n'y en a pas) ; :attr:`__annotations__` (optionnel) est un " +"dictionnaire contenant les g :term:`Annotations de variables ` collectées durant l'exécution du corps du module ; :attr:" +"`__file__` est le chemin vers le fichier à partir duquel le module a été " +"chargé, s'il a été chargé depuis un fichier. L'attribut :attr:`__file__` " +"peut être manquant pour certains types de modules, tels que les modules C " +"qui sont statiquement liés à l'interpréteur ; pour les modules d'extension " +"chargés dynamiquement à partir d'une bibliothèque partagée, c'est le chemin " +"vers le fichier de la bibliothèque partagée." #: ../Doc/reference/datamodel.rst:728 msgid "" "Special read-only attribute: :attr:`~object.__dict__` is the module's " "namespace as a dictionary object." msgstr "" +"Attribut spécial en lecture seule : :attr:`~object.__dict__` est l'objet " +"dictionnaire répertoriant l'espace de noms du module." #: ../Doc/reference/datamodel.rst:733 msgid "" @@ -1217,10 +1328,15 @@ msgid "" "still has live references. To avoid this, copy the dictionary or keep the " "module around while using its dictionary directly." msgstr "" +"en raison de la manière dont CPython nettoie les dictionnaires de modules, " +"le dictionnaire du module est effacé quand le module n'est plus visible, " +"même si le dictionnaire possède encore des références actives. Pour éviter " +"ceci, copiez le dictionnaire ou gardez le module dans votre champ de " +"visibilité tant que vous utilisez le dictionnaire directement." #: ../Doc/reference/datamodel.rst:795 msgid "Custom classes" -msgstr "Classes particularisées" +msgstr "Classes déclarées par le développeur" #: ../Doc/reference/datamodel.rst:739 msgid "" @@ -1237,6 +1353,21 @@ msgid "" "found in the documentation accompanying the 2.3 release at https://www." "python.org/download/releases/2.3/mro/." msgstr "" +"Le type d'une classe déclarée par le développeur est créé au moment de la " +"définition de la classe (voir la section :ref:`class`). Une classe possède " +"un espace de noms implémenté sous la forme d'un objet dictionnaire. Les " +"références vers les attributs de la classe sont traduits en recherches dans " +"ce dictionnaire, par exemple ``C.x`` est traduit en ``C.__dict__[\"x\"]`` " +"(bien qu'il existe un certain nombre de fonctions automatiques qui " +"permettent de trouver des attributs par d'autres moyens). Si le nom " +"d'attribut n'est pas trouvé dans ce dictionnaire, la recherche continue dans " +"les classes de base. Les classes de base sont trouvées en utilisant la " +"méthode de résolution d'ordre (*method resolution order* en anglais, ou MRO) " +"C3 qui a un comportement cohérent même en présence d'héritages en \"diamant" +"\", où différentes branches d'héritages conduisent vers un ancêtre commun. " +"Vous trouverez plus de détails sur la MRO C3 utilisée par Python dans la " +"documentation de la version 2.3 disponible sur https://www.python.org/" +"download/releases/2.3/mro/." #: ../Doc/reference/datamodel.rst:763 msgid "" @@ -1248,18 +1379,29 @@ msgid "" "attributes retrieved from a class may differ from those actually contained " "in its :attr:`~object.__dict__`." msgstr "" +"Quand une référence à un attribut de classe (disons la classe :class:`C`) " +"pointe vers un objet méthode de classe, elle est transformée en objet " +"méthode d'instance dont l'attribut :attr:`__self__` est :class:`C`. Quand " +"elle pointe vers un objet méthode statique, elle est transformée en objet " +"encapsulé par l'objet méthode statique. Reportez-vous à la section :ref:" +"`descriptors` pour une autre manière dont les attributs d'une classe " +"diffèrent de ceux réellement contenus dans son :attr:`~objet.__dict__`." #: ../Doc/reference/datamodel.rst:773 msgid "" "Class attribute assignments update the class's dictionary, never the " "dictionary of a base class." msgstr "" +"Les assignations d'un attribut de classe mettent à jour le dictionnaire de " +"la classe, jamais le dictionnaire d'une classe de base." #: ../Doc/reference/datamodel.rst:778 msgid "" "A class object can be called (see above) to yield a class instance (see " "below)." msgstr "" +"Un objet classe peut être appelé (voir ci-dessus) pour produire une instance " +"de classe (voir ci-dessous)." #: ../Doc/reference/datamodel.rst:788 msgid "" @@ -1272,10 +1414,19 @@ msgid "" "(optional) is a dictionary containing :term:`variable annotations ` collected during class body execution." msgstr "" +"Attributs spéciaux : :attr:`~definition.__name__` est le nom de la classe ; :" +"attr:`__module__` est le nom du module dans lequel la classe est définie ; :" +"attr:`~object.__dict__` est le dictionnaire contenant l'espace de noms de la " +"classe ; :attr:`~class.__bases__` est un tuple contenant les classes de " +"base, dans l'ordre d'apparition dans la liste des classes de base ; :attr:" +"`__doc__` est la chaîne de documentation de la classe (ou ``None`` si elle " +"n'existe pas) ; :attr:`__annotations__` (optionnel) est un dictionnaire " +"contenant les :term:`annotations de variables ` " +"collectées durant l'exécution du corps de la classe." #: ../Doc/reference/datamodel.rst:838 msgid "Class instances" -msgstr "" +msgstr "Instances de classes" #: ../Doc/reference/datamodel.rst:804 msgid "" @@ -1293,6 +1444,22 @@ msgid "" "class attribute is found, and the object's class has a :meth:`__getattr__` " "method, that is called to satisfy the lookup." msgstr "" +"Une instance de classe est créée en appelant un objet classe (voir ci-" +"dessus). Une instance de classe possède un espace de noms implémenté sous la " +"forme d'un dictionnaire qui est le premier endroit où sont recherchées les " +"références aux attributs. Quand un attribut n'est pas trouvé dans ce " +"dictionnaire et que la classe de l'instance contient un attribut avec ce " +"nom, la recherche continue avec les attributs de la classe. Si un attribut " +"de classe est trouvé et que c'est un objet fonction défini par " +"l'utilisateur, il est transformé en objet méthode d'instance dont " +"l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " +"méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " +"\"Classes\". Lisez la section :ref:`descriptors` pour une autre façon de " +"récupérer les attributs d'une classe, où la récupération *via* ses instances " +"peut différer des objets réellement stockés dans le :attr:`objet.__dict__` " +"de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " +"l'objet possède une méthode :meth:`__getattr__`, cette méthode est appelée " +"pour rechercher une correspondance." #: ../Doc/reference/datamodel.rst:820 msgid "" @@ -1301,22 +1468,31 @@ msgid "" "`__delattr__` method, this is called instead of updating the instance " "dictionary directly." msgstr "" +"Les assignations et effacement d'attributs mettent à jour le dictionnaire de " +"l'instance, jamais le dictionnaire de la classe. Si la classe possède une " +"méthode :meth:`__setattr__` ou :meth:`__delattr__`, elle est appelée au lieu " +"de mettre à jour le dictionnaire de l'instance directement." #: ../Doc/reference/datamodel.rst:830 msgid "" "Class instances can pretend to be numbers, sequences, or mappings if they " "have methods with certain special names. See section :ref:`specialnames`." msgstr "" +"Les instances de classes peuvent prétendre être des nombres, des séquences " +"ou des tableaux de correspondance si elles ont des méthodes avec des noms " +"spéciaux. Voir la section :ref:`specialnames`." #: ../Doc/reference/datamodel.rst:837 msgid "" "Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" "attr:`~instance.__class__` is the instance's class." msgstr "" +"Attributs spéciaux : :attr:`objet.__dict__` est le dictionnaire des " +"attributs ; :attr:`~instace.__class__` est la classe de l'instance." #: ../Doc/reference/datamodel.rst:864 msgid "I/O objects (also known as file objects)" -msgstr "" +msgstr "Objets Entrées-Sorties (ou objets fichiers)" #: ../Doc/reference/datamodel.rst:854 msgid "" @@ -1326,6 +1502,11 @@ msgid "" "makefile` method of socket objects (and perhaps by other functions or " "methods provided by extension modules)." msgstr "" +"Un :term:`objet fichier` représente un fichier ouvert. Différentes " +"raccourcis existent pour créer des objets fichiers : la fonction native :" +"func:`open` et aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:" +"`~socket.socket.makefile` des objets sockets (et sûrement d'autres fonctions " +"ou méthodes fournies par les modules d'extensions)." #: ../Doc/reference/datamodel.rst:860 msgid "" @@ -1334,10 +1515,15 @@ msgid "" "and error streams; they are all open in text mode and therefore follow the " "interface defined by the :class:`io.TextIOBase` abstract class." msgstr "" +"Les objets ``sys.stdin``, ``sys.stdout`` et ``sys.stderr`` sont initialisés " +"à des objets fichiers correspondant à l'entrée standard, la sortie standard " +"et le flux d'erreurs de l'interpréteur ; ils sont tous ouverts en mode texte " +"et se conforment donc à l'interface définie par la classe abstraite :class:" +"`io.TextIOBase`." #: ../Doc/reference/datamodel.rst:1070 msgid "Internal types" -msgstr "" +msgstr "Types internes" #: ../Doc/reference/datamodel.rst:871 msgid "" @@ -1345,6 +1531,9 @@ msgid "" "Their definitions may change with future versions of the interpreter, but " "they are mentioned here for completeness." msgstr "" +"Quelques types utilisés en interne par l'interpréteur sont accessibles à " +"l'utilisateur. Leur définition peut changer dans les futures versions de " +"l'interpréteur mais ils sont donnés ci-dessous à fin d'exhaustivité." #: ../Doc/reference/datamodel.rst:939 msgid "Code objects" @@ -1361,6 +1550,15 @@ msgid "" "run-time). Unlike function objects, code objects are immutable and contain " "no references (directly or indirectly) to mutable objects." msgstr "" +"Un objet code représente le code Python sous sa forme compilée en :term:" +"`bytecode`. La différence entre un objet code et un objet fonction est que " +"l'objet fonction contient une référence explicite vers les globales de la " +"fonction (le module dans lequel elle est définie) alors qu'un objet code ne " +"contient aucun contexte ; par ailleurs, les valeurs par défaut des arguments " +"sont stockées dans l'objet fonction, pas de l'objet code (parce que ce sont " +"des valeurs calculées au moment de l'exécution). Contrairement aux objets " +"fonctions, les objets codes sont immuables et ne contiennent aucune " +"référence (directe ou indirecte) à des objets muables." #: ../Doc/reference/datamodel.rst:903 msgid "" @@ -1382,6 +1580,25 @@ msgid "" "size (including local variables); :attr:`co_flags` is an integer encoding a " "number of flags for the interpreter." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`co_name` donne le nom de la " +"fonction ; :attr:`co_argcount` est le nombre d'arguments positionnels (y " +"compris les arguments avec des valeurs par défaut) ; :attr:`co_nlocals` est " +"le nombre de variables locales utilisées par la fonction (y compris les " +"arguments) ; :attr:`co_varnames` est un tuple contenant le nom des variables " +"locales (en commençant par les noms des arguments) ; :attr:`co_cellvars` est " +"un tuple contenant les noms des variables locales qui sont référencées par " +"des fonctions imbriquées ; :attr:`co_freevars` est un tuple contenant les " +"noms des variables libres ; :attr:`co_code` est une chaîne représentant la " +"séquence des instructions de *bytecode* ; :attr:`co_consts` est un tuple " +"contenant les littéraux utilisés par le *bytecode* ; :attr:`co_names` est un " +"tuple contenant les noms utilisés par le *bytecode* ; :attr:`co_filename` " +"est le nom de fichier à partir duquel le code a été compilé ; :attr:" +"`co_firstlineno` est numéro de la première ligne de la fonction ; :attr:" +"`co_lnotab` est une chaîne qui code la correspondance entre les différents " +"endroits du *bytecode* et les numéros de lignes (pour les détails, regardez " +"le code source de l'interpréteur) ; :attr:`co_stacksize` est la taille de " +"pile nécessaire (y compris pour les variables locales) ; :attr:`co_flags` " +"est un entier qui code différents drapeaux pour l'interpréteur." #: ../Doc/reference/datamodel.rst:922 msgid "" @@ -1391,6 +1608,12 @@ msgid "" "``**keywords`` syntax to accept arbitrary keyword arguments; bit ``0x20`` is " "set if the function is a generator." msgstr "" +"Les drapeaux suivants sont codés par des bits dans :attr:`co_flags` : le bit " +"``0x04`` est positionné à 1 si la fonction utilise la syntaxe ``*arguments`` " +"pour accepter un nombre arbitraire d'arguments positionnels ; le bit " +"``0x08`` est positionné à 1 si la fonction utilise la syntaxe ``**keywords`` " +"pour accepter un nombre arbitraire d'arguments nommés ; bit ``0x20`` est " +"positionné à 1 si la fonction est un générateur." #: ../Doc/reference/datamodel.rst:928 msgid "" @@ -1400,26 +1623,37 @@ msgid "" "compiled with future division enabled; bits ``0x10`` and ``0x1000`` were " "used in earlier versions of Python." msgstr "" +"Les déclarations de fonctionnalité future ``from __future__ import " +"division`` utilisent aussi des bits dans :attr:`co_flags` pour indiquer si " +"l'objet code a été compilé avec une fonctionnalité future : le bit " +"``0x2000`` est positionné à 1 si la fonction a été compilée avec la division " +"future activée ; les bits ``0x10`` et ``0x1000`` étaient utilisés dans les " +"versions antérieures de Python." #: ../Doc/reference/datamodel.rst:934 msgid "Other bits in :attr:`co_flags` are reserved for internal use." -msgstr "" +msgstr "Les autres bits de :attr:`co_flags` sont réservés à un usage interne." #: ../Doc/reference/datamodel.rst:938 msgid "" "If a code object represents a function, the first item in :attr:`co_consts` " "is the documentation string of the function, or ``None`` if undefined." msgstr "" +"Si l'objet code représente une fonction, le premier élément dans :attr:" +"`co_consts` est la chaîne de documentation de la fonction (ou ``None`` s'il " +"n'y en a pas)." #: ../Doc/reference/datamodel.rst:988 msgid "Frame objects" -msgstr "" +msgstr "Objets cadres" #: ../Doc/reference/datamodel.rst:946 msgid "" "Frame objects represent execution frames. They may occur in traceback " "objects (see below)." msgstr "" +"Un objet cadre représente le cadre d'exécution. Ils apparaissent dans des " +"objets traces (voir plus loin)." #: ../Doc/reference/datamodel.rst:957 msgid "" @@ -1431,6 +1665,14 @@ msgid "" "names; :attr:`f_lasti` gives the precise instruction (this is an index into " "the bytecode string of the code object)." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`f_back` pointe vers le cadre " +"précédent (l'appelant) ou ``None`` si c'est le pied de la pile d'appel ; :" +"attr:`f_code` est l'objet code en cours d'exécution dans ce cadre ; :attr:" +"`f_locals` est le dictionnaire dans lequel sont cherchées les variables " +"locales ; :attr:`f_globals` est utilisé pour les variables globales ; :attr:" +"`f_builtins` est utilisé pour les noms natifs ; :attr:`f_lasti` donne " +"l'instruction précise (c'est un indice dans la chaîne de *bytecode* de " +"l'objet code)." #: ../Doc/reference/datamodel.rst:969 msgid "" @@ -1441,10 +1683,17 @@ msgid "" "for the bottom-most frame). A debugger can implement a Jump command (aka " "Set Next Statement) by writing to f_lineno." msgstr "" +"Attributs spéciaux en lecture-écriture : :attr:`f_trace`, s'il ne vaut pas " +"``None``, est une fonction appelée au début de chaque ligne de code source " +"(c'est utilisé par le débogueur) ; :attr:`f_lineno` est le numéro de la " +"ligne courante du cadre --- écrire dedans depuis une fonction trace fait " +"sauter à la ligne demandée (seulement pour le cadre le plus bas). Un " +"débogueur peut implémenter une commande \"sauter vers\" en écrivant dans " +"f_lineno." #: ../Doc/reference/datamodel.rst:976 msgid "Frame objects support one method:" -msgstr "" +msgstr "Les objets cadres comprennent une méthode :" #: ../Doc/reference/datamodel.rst:980 msgid "" @@ -1453,14 +1702,19 @@ msgid "" "This helps break reference cycles involving frame objects (for example when " "catching an exception and storing its traceback for later use)." msgstr "" +"Cette méthode efface toutes les références aux variables locales conservées " +"dans le cadre. Par ailleurs, si le cadre est celui d'un générateur, le " +"générateur se termine. Ceci permet de casser des références cycliques qui " +"incluent des objets cadres (par exemple, lors de la capture d'une exception " +"et du stockage de la pile d'appels pour une utilisation future)." #: ../Doc/reference/datamodel.rst:986 msgid ":exc:`RuntimeError` is raised if the frame is currently executing." -msgstr "" +msgstr ":exc:`RuntimeError` est levée si le cadre est en cours d'exécution." #: ../Doc/reference/datamodel.rst:1026 msgid "Traceback objects" -msgstr "" +msgstr "Objets traces" #: ../Doc/reference/datamodel.rst:1001 msgid "" @@ -1475,6 +1729,17 @@ msgid "" "stream; if the interpreter is interactive, it is also made available to the " "user as ``sys.last_traceback``." msgstr "" +"Un objet trace représente la pile d'appels d'une exception. Il est créé au " +"moment où l'exception est levée. Quand l'interpréteur recherche un " +"gestionnaire d'exception en remontant la pile d'exécution, un objet trace " +"est inséré devant l'objet trace courant à chaque nouveau niveau. Quand il " +"entre dans le gestionnaire d'exception, la pile d'appels est rendue " +"accessible au programme (voir la section :ref:`try`). Elle est accessible " +"par le troisième élément du tuple renvoyé par ``sys.exc_info()``. Quand le " +"programme ne dispose pas d'un gestionnaire adéquat, la pile d'appels est " +"écrite (joliment formatée) sur le flux d'erreurs standard ; si " +"l'interpréteur est interactif, la pile d'appels est rendue accessible à " +"l'utilisateur en tant que ``sys.last_traceback``." #: ../Doc/reference/datamodel.rst:1019 msgid "" @@ -1487,16 +1752,28 @@ msgid "" "of its frame object if the exception occurred in a :keyword:`try` statement " "with no matching except clause or with a finally clause." msgstr "" +"Attributs spéciaux en lecture seule : attr:`tb_next` est le prochain niveau " +"dans la pile d'appels (vers le cadre où l'exception a été levée) ou ``None`` " +"s'il n'y a pas de prochain niveau ; :attr:`tb_frame` pointe vers le cadre " +"d'exécution du niveau courant ; :attr:`tb_lineno` donne le numéro de ligne " +"où l'exception a été levée ; :attr:`tb_lasti` indique l'instruction " +"précise. Le numéro de ligne et la dernière instruction dans la trace " +"peuvent différer du numéro de ligne de l'objet cadre si l'exception a eu " +"lieu dans une instruction :keyword:`try` sans qu'il n'y ait de clause :" +"keyword:`except` adéquate ou sans clause *finally* ." #: ../Doc/reference/datamodel.rst:1052 msgid "Slice objects" -msgstr "" +msgstr "Objets découpes" #: ../Doc/reference/datamodel.rst:1031 msgid "" "Slice objects are used to represent slices for :meth:`__getitem__` methods. " "They are also created by the built-in :func:`slice` function." msgstr "" +"Un objet découpe est utilisé pour représenter les découpes des méthodes :" +"meth:`__getitem__`. Ils sont aussi créés par la fonction native :func:" +"`slice`." #: ../Doc/reference/datamodel.rst:1039 msgid "" @@ -1504,10 +1781,14 @@ msgid "" "`~slice.stop` is the upper bound; :attr:`~slice.step` is the step value; " "each is ``None`` if omitted. These attributes can have any type." msgstr "" +"Attributs spéciaux en lecture seule : :attr:`~decoupe.start` est la borne " +"inférieure ; :attr:`~decoupe.stop` est la borne supérieure ; :attr:`~decoupe." +"step` est la valeur du pas ; chaque attribut vaut ``None`` s'il est omis. " +"Ces attributs peuvent être de n'importe quel type." #: ../Doc/reference/datamodel.rst:1043 msgid "Slice objects support one method:" -msgstr "" +msgstr "Les objets découpes comprennent une méthode :" #: ../Doc/reference/datamodel.rst:1047 msgid "" @@ -1518,10 +1799,16 @@ msgid "" "stride length of the slice. Missing or out-of-bounds indices are handled in " "a manner consistent with regular slices." msgstr "" +"Cette méthode prend un argument entier *length* et calcule les informations " +"de la découpe que l'objet découpe décrit s'il est appliqué à une séquence de " +"*length* éléments. Elle renvoie un tuple de trois entiers ; respectivement, " +"ce sont les indices de *début* et *fin* ainsi que le *pas* de découpe. Les " +"indices manquants ou en dehors sont gérés de manière cohérente avec les " +"découpes normales." #: ../Doc/reference/datamodel.rst:1062 msgid "Static method objects" -msgstr "" +msgstr "Objets méthodes statiques" #: ../Doc/reference/datamodel.rst:1055 msgid "" @@ -1534,10 +1821,19 @@ msgid "" "callable, although the objects they wrap usually are. Static method objects " "are created by the built-in :func:`staticmethod` constructor." msgstr "" +"Les objets méthodes statiques permettent la transformation des objets " +"fonctions en objets méthodes décrits au-dessus. Un objet méthode statique " +"encapsule tout autre objet, souvent un objet méthode définie par " +"l'utilisateur. Quand un objet méthode statique est récupéré depuis une " +"classe ou une instance de classe, l'objet réellement renvoyé est un objet " +"encapsulé, qui n'a pas vocation à être transformé encore une fois. Les " +"objets méthodes statiques ne sont pas appelables en tant que tels, bien que " +"les objets qu'ils encapsulent le soient souvent. Les objets méthodes " +"statiques sont créés par le constructeur natif :func:`staticmethod`." #: ../Doc/reference/datamodel.rst:1070 msgid "Class method objects" -msgstr "" +msgstr "Objets méthodes de classes" #: ../Doc/reference/datamodel.rst:1065 msgid "" @@ -1547,6 +1843,12 @@ msgid "" "retrieval is described above, under \"User-defined methods\". Class method " "objects are created by the built-in :func:`classmethod` constructor." msgstr "" +"Un objet méthode de classe, comme un objet méthode statique, encapsule un " +"autre objet afin de modifier la façon dont cet objet est récupéré depuis les " +"classes et instances de classes. Le comportement des objets méthodes de " +"classes dans le cas d'une telle récupération est décrit plus haut, dans " +"\"méthodes définies par l'utilisateur\". Les objets méthodes de classes sont " +"créés par le constructeur natif :func:`classmethod`." #: ../Doc/reference/datamodel.rst:1075 msgid "Special method names" @@ -3235,6 +3537,10 @@ msgid "" "controlled conditions. It generally isn't a good idea though, since it can " "lead to some very strange behaviour if it is handled incorrectly." msgstr "" +"Il *est* possible, dans certains cas, de changer le type d'un objet, sous " +"certaines conditions. Cependant, ce n'est généralement pas une bonne idée " +"car cela peut conduire à un comportement très étrange si ce n'est pas géré " +"correctement." #: ../Doc/reference/datamodel.rst:2673 msgid "" From 723a4fd7a6bdb85d3a2786ec26fd55eb5e4718c5 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sat, 14 Apr 2018 17:00:52 +0200 Subject: [PATCH 042/115] =?UTF-8?q?"Data=20Model"=20translation=20-=20M?= =?UTF-8?q?=C3=A9thodes=20sp=C3=A9ciales.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/datamodel.po | 234 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 228 insertions(+), 6 deletions(-) diff --git a/reference/datamodel.po b/reference/datamodel.po index bb3226625..145af33a5 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-04-09 23:05+0200\n" +"PO-Revision-Date: 2018-04-14 16:10+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1852,7 +1852,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1075 msgid "Special method names" -msgstr "" +msgstr "Méthodes spéciales" #: ../Doc/reference/datamodel.rst:1081 msgid "" @@ -1867,6 +1867,17 @@ msgid "" "appropriate method is defined (typically :exc:`AttributeError` or :exc:" "`TypeError`)." msgstr "" +"Une classe peut implémenter certaines opérations que l'on invoque par une " +"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe) en " +"définissant des méthodes aux noms particuliers. C'est l'approche utilisée " +"par Python pour la :dfn:`surcharge d'opérateur`, permettant à une classe de " +"définir son propre comportement vis-à-vis des opérateurs du langage. Par " +"exemple, si une classe définit une méthode :meth:`__getitem__` et que ``x`` " +"est une instance de cette classe, alors ``x[i]`` est globalement équivalent " +"à ``type(x).__getitem__(x, i)``. Sauf lorsque c'est mentionné, toute " +"tentative d'appliquer une opération alors que la méthode appropriée n'est " +"pas définie lève une exception (typiquement :exc:`AttributeError` ou :exc:" +"`TypeError`)." #: ../Doc/reference/datamodel.rst:1091 msgid "" @@ -1876,6 +1887,11 @@ msgid "" "instances will raise a :exc:`TypeError` (without falling back to :meth:" "`__getitem__`). [#]_" msgstr "" +"Définir une méthode spéciale à ``None`` indique que l'opération " +"correspondante n'est pas disponible. Par exemple, si une classe assigne " +"``None`` à :meth:`__iter__`, la classe n'est pas itérable et appeler :func:" +"`iter` sur une instance lève :exc:`TypeError` (sans se replier sur :meth:" +"`__getitem__`) [#]_." #: ../Doc/reference/datamodel.rst:1097 msgid "" @@ -1886,10 +1902,16 @@ msgid "" "sense. (One example of this is the :class:`~xml.dom.NodeList` interface in " "the W3C's Document Object Model.)" msgstr "" +"Lorsque vous implémentez une classe qui émule un type natif, il est " +"important que cette émulation n'implémente que ce qui fait sens pour l'objet " +"qui est modélisé. Par exemple, la recherche d'éléments individuels d'une " +"séquence peut faire sens, mais pas l'extraction d'une tranche (un exemple " +"est l'interface de :class:`~xml.dom.NodeList` dans le modèle objet des " +"documents W3C)." #: ../Doc/reference/datamodel.rst:1108 msgid "Basic customization" -msgstr "" +msgstr "Personnalisation de base" #: ../Doc/reference/datamodel.rst:1114 msgid "" @@ -1900,6 +1922,13 @@ msgid "" "(the call to the class). The return value of :meth:`__new__` should be the " "new object instance (usually an instance of *cls*)." msgstr "" +"Appelée pour créer une nouvelle instance de la classe *cls*. La méthode :" +"meth:`__new__` est statique (c'est un cas particulier, vous n'avez pas " +"besoin de la déclarer comme telle) qui prend comme premier argument la " +"classe pour laquelle on veut créer une instance. Les autres arguments sont " +"ceux passés à l'expression de l'objet constructeur (l'appel à la classe). La " +"valeur de retour de :meth:`__new__` doit être l'instance du nouvel objet " +"(classiquement une instance de *cls*)." #: ../Doc/reference/datamodel.rst:1121 msgid "" @@ -1908,6 +1937,10 @@ msgid "" "with appropriate arguments and then modifying the newly-created instance as " "necessary before returning it." msgstr "" +"Une implémentation typique crée une nouvelle instance de la classe en " +"invoquant la méthode :meth:`__new__` de la superclasse à l'aide de ``super()." +"__new__(cls[, ...])`` avec les arguments adéquats, puis modifie l'instance " +"nouvellement créée en tant que de besoin avant de la renvoyer." #: ../Doc/reference/datamodel.rst:1126 msgid "" @@ -1916,12 +1949,18 @@ msgid "" "*self* is the new instance and the remaining arguments are the same as were " "passed to :meth:`__new__`." msgstr "" +"Si :meth:`__new__` renvoie une instance de *cls*, alors la méthode :meth:" +"`__init__` de la nouvelle instance sera invoquée avec " +"``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres " +"arguments sont les mêmes que ceux passés à :meth:`__new__`." #: ../Doc/reference/datamodel.rst:1131 msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." msgstr "" +"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" +"meth:`__init__` de la nouvelle instance ne sera pas invoquée." #: ../Doc/reference/datamodel.rst:1134 msgid "" @@ -1930,6 +1969,10 @@ msgid "" "commonly overridden in custom metaclasses in order to customize class " "creation." msgstr "" +"L'objectif de :meth:`__new__` est principalement d'autoriser les sous-" +"classes de types immuables (comme int, str ou tuple) à particulariser la " +"création des instances. Elle est aussi souvent surchargée dans les " +"métaclasses pour particulariser la création des classes." #: ../Doc/reference/datamodel.rst:1143 msgid "" @@ -1940,6 +1983,13 @@ msgid "" "ensure proper initialization of the base class part of the instance; for " "example: ``super().__init__([args...])``." msgstr "" +"Appelée après la création de l'instance (par :meth:`__new__`), mais avant le " +"retour vers l'appelant. Les arguments sont ceux passés à l'expression du " +"constructeur de classe. Si la classe de base possède une méthode :meth:" +"`__init__`, la méthode :meth:`__init__` de la classe dérivée, si elle " +"existe, doit être explicitement appelée pour assurer une initialisation " +"correcte de la partie classe de base de l'instance ; par exemple : ``super()." +"__init__([args...])``." #: ../Doc/reference/datamodel.rst:1150 msgid "" @@ -1948,6 +1998,10 @@ msgid "" "it), no non-``None`` value may be returned by :meth:`__init__`; doing so " "will cause a :exc:`TypeError` to be raised at runtime." msgstr "" +"Comme :meth:`__new__` et :meth:`__init__` travaillent ensemble pour créer " +"des objets (:meth:`__new__` pour le créer, :meth:`__init__` pour le " +"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur``None`` ; " +"sinon une exception :exc:`TypeError` est levée à l'exécution." #: ../Doc/reference/datamodel.rst:1163 msgid "" @@ -1957,6 +2011,11 @@ msgid "" "explicitly call it to ensure proper deletion of the base class part of the " "instance." msgstr "" +"Appelée au moment où une instance est sur le point d'être détruite. On " +"l'appelle aussi finaliseur ou (improprement) destructeur. Si une classe de " +"base possède une méthode :meth:`__del__`, la méthode :meth:`__del__` de la " +"classe dérivée, si elle existe, doit explicitement l'appeler pour s'assurer " +"de l'effacement correct de la partie classe de base de l'instance." #: ../Doc/reference/datamodel.rst:1169 msgid "" @@ -1967,12 +2026,20 @@ msgid "" "about to be destroyed; the current :term:`CPython` implementation only calls " "it once." msgstr "" +"Il est possible (mais pas recommandé) que la méthode :meth:`__del__` retarde " +"la destruction de l'instance en créant une nouvelle référence vers cet " +"objet. Python appelle ceci la *résurrection* d'objet. En fonction de " +"l'implémentation, :meth:`__del__` peut être appelée une deuxième fois au " +"moment où l'objet ressuscité va être détruit ; l'implémentation actuelle de :" +"term:`CPython` ne l'appelle qu'une fois." #: ../Doc/reference/datamodel.rst:1176 msgid "" "It is not guaranteed that :meth:`__del__` methods are called for objects " "that still exist when the interpreter exits." msgstr "" +"Il n'est pas garanti que soient appelées les méthodes :meth:`__del__` des " +"objets qui existent toujours quand l'interpréteur termine." #: ../Doc/reference/datamodel.rst:1181 msgid "" @@ -1980,10 +2047,13 @@ msgid "" "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" +"``del x`` n'appelle pas directement ``x.__del__()`` --- il décrémente le " +"compteur de références de ``x``. La méthode *del* n'est appelée que quand le " +"compteur de références de ``x`` atteint zéro." #: ../Doc/reference/datamodel.rst:1196 msgid "Documentation for the :mod:`gc` module." -msgstr "" +msgstr "Documentation du module :mod:`gc`." #: ../Doc/reference/datamodel.rst:1200 msgid "" @@ -1991,6 +2061,9 @@ msgid "" "invoked, exceptions that occur during their execution are ignored, and a " "warning is printed to ``sys.stderr`` instead. In particular:" msgstr "" +"En raison des conditions particulières qui règnent quand :meth:`__del__` est " +"appelée, les exceptions levées pendant son exécution sont ignorées et, à la " +"place, un avertissement est affiché sur ``sys.stderr``. En particulier :" #: ../Doc/reference/datamodel.rst:1204 msgid "" @@ -2000,6 +2073,12 @@ msgid "" "may already be taken by the code that gets interrupted to execute :meth:" "`__del__`." msgstr "" +":meth:`__del__` peut être invoquée quand du code arbitraire est en cours " +"d'exécution, et ce dans n'importe quel thread. Si :meth:`__del__` a besoin " +"de poser un verrou ou d'accéder à tout autre ressource bloquante, elle peut " +"provoquer un blocage mutuel (*deadlock* en anglais) car la ressource peut " +"être déjà utilisée par le code qui est interrompu pour exécuter la méthode :" +"meth:`__del__`." #: ../Doc/reference/datamodel.rst:1210 msgid "" @@ -2011,6 +2090,15 @@ msgid "" "such globals exist, this may help in assuring that imported modules are " "still available at the time when the :meth:`__del__` method is called." msgstr "" +":meth:`__del__` peut être exécutée pendant que l'interpréteur se ferme. En " +"conséquence, les variables globales auxquelles elle souhaite accéder (y " +"compris les autres modules) peuvent déjà être détruites ou assignées à " +"``None``. Python garantit que les variables globales dont le nom commence " +"par un tiret bas sont supprimées de leur module avant que les autres " +"variables globales ne le soient ; si aucune autre référence vers ces " +"variables globales n'existe, cela peut aider à s'assurer que les modules " +"importés soient toujours accessibles au moment où la méthode :meth:`__del__` " +"est appelée." #: ../Doc/reference/datamodel.rst:1225 msgid "" @@ -2023,12 +2111,24 @@ msgid "" "`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when " "an \"informal\" string representation of instances of that class is required." msgstr "" +"Appelée par la fonction native :func:`rep` pour calculer la représentation " +"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour cela " +"ressemble à une expression Python valide qui peut être utilisée pour recréer " +"un objet avec la même valeur (dans un environnement donné). Si ce n'est pas " +"possible, une chaîne de la forme ``<...une description utile...>`` est " +"renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si une " +"classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" +"`__repr__` est aussi utilisée quand une représentation \"informelle\" en " +"chaîne de caractères est demandée pour une instance de cette classe." #: ../Doc/reference/datamodel.rst:1234 msgid "" "This is typically used for debugging, so it is important that the " "representation is information-rich and unambiguous." msgstr "" +"Cette fonction est principalement utilisée à fins de débogage, il est donc " +"important que la représentation donne beaucoup d'informations et ne soit pas " +"ambigüe." #: ../Doc/reference/datamodel.rst:1245 msgid "" @@ -2037,6 +2137,10 @@ msgid "" "string representation of an object. The return value must be a :ref:`string " "` object." msgstr "" +"Appelée par :func:`str(objet)` ainsi que les fonctions natives :func:" +"`format` et :func:`print` pour calculer une chaîne de caractères \"informelle" +"\" ou joliment mise en forme de représentation de l'objet. La valeur " +"renvoyée doit être un objet :ref:`string `." #: ../Doc/reference/datamodel.rst:1250 msgid "" @@ -2044,18 +2148,25 @@ msgid "" "expectation that :meth:`__str__` return a valid Python expression: a more " "convenient or concise representation can be used." msgstr "" +"Cette méthode diffère de :meth:`object.__repr__` car il n'est pas attendu " +"que :meth:`__str__` renvoie une expression Python valide : une " +"représentation plus agréable à lire ou plus concise peut être utilisée." #: ../Doc/reference/datamodel.rst:1254 msgid "" "The default implementation defined by the built-in type :class:`object` " "calls :meth:`object.__repr__`." msgstr "" +"C'est l'implémentation par défaut des appels à :meth:`object.__repr__` du " +"type natif :class:`object`." #: ../Doc/reference/datamodel.rst:1264 msgid "" "Called by :ref:`bytes ` to compute a byte-string representation " "of an object. This should return a :class:`bytes` object." msgstr "" +"Appelée par :ref:`bytes ` pour calculer une représentation en " +"chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`." #: ../Doc/reference/datamodel.rst:1275 msgid "" @@ -2068,21 +2179,34 @@ msgid "" "classes will either delegate formatting to one of the built-in types, or use " "a similar formatting option syntax." msgstr "" +"Appelée par la fonction native :func:`format` et, par extension, lors de " +"l'évaluation de :ref:`formatted string literals ` ou de la " +"méthode :meth:`str.format`. Elle produit une chaîne de caractères \"formatée" +"\" représentant un objet. L'argument ``format_spec`` est une chaîne de " +"caractères contenant la description des options de formatage voulues. " +"L'interprétation de l'argument ``format_spec`` est laissée au type " +"implémentant :meth:`__format__`. Cependant, la plupart des classes délèguent " +"le formatage aux types natifs ou utilisent une syntaxe similaire d'options " +"de formatage." #: ../Doc/reference/datamodel.rst:1285 msgid "" "See :ref:`formatspec` for a description of the standard formatting syntax." msgstr "" +"Lisez :ref:`formatspec` pour une description de la syntaxe standard du " +"formatage." #: ../Doc/reference/datamodel.rst:1287 msgid "The return value must be a string object." -msgstr "" +msgstr "La valeur renvoyée doit être un objet chaîne de caractères." #: ../Doc/reference/datamodel.rst:1289 msgid "" "The __format__ method of ``object`` itself raises a :exc:`TypeError` if " "passed any non-empty string." msgstr "" +"La méthode __format__ de ``object`` lui-même lève une :exc:`TypeError` si " +"vous lui passez une chaîne non vide." #: ../Doc/reference/datamodel.rst:1305 msgid "" @@ -2092,6 +2216,11 @@ msgid "" "``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" +"Ce sont les méthodes dites \"de comparaisons riches\". La correspondance " +"entre les symboles opérateurs et les noms de méthodes est la suivante : " +"``xy`` appelle " +"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." #: ../Doc/reference/datamodel.rst:1311 msgid "" @@ -2103,6 +2232,14 @@ msgid "" "statement), Python will call :func:`bool` on the value to determine if the " "result is true or false." msgstr "" +"Une méthode de comparaison riche peut renvoyer le singleton " +"``NotImplemented`` si elle n'implémente pas l'opération pour une paire " +"donnée d'arguments. Par convention, ``False`` et ``True`` sont renvoyées " +"pour une comparaison qui a réussi. Cependant, ces méthodes peuvent renvoyer " +"n'importe quelle valeur donc, si l'opérateur de comparaison est utilisé dans " +"un contexte booléen (par exemple dans une condition d'une instruction " +"``if``), Python appelle :func:`bool` sur la valeur pour déterminer si le " +"résultat est faux ou vrai." #: ../Doc/reference/datamodel.rst:1318 msgid "" @@ -2113,6 +2250,12 @@ msgid "" "ordering operations from a single root operation, see :func:`functools." "total_ordering`." msgstr "" +"Par défaut, :meth:`__ne__` délègue à :meth:`__eq__` et renvoie le résultat " +"inverse, sauf si c'est ``NotImplemented``. Il n'y a pas d'autres relations " +"implicites pour les opérateurs de comparaison. Par exemple, ``(x.__hash__``." msgstr "" +"Si une classe qui surcharge :meth:`__eq__` a besoin de conserver " +"l'implémentation de :meth:`__hash__` de la classe parente, vous devez " +"l'indiquer explicitement à l'interpréteur en définissant ``__hash__ = " +".__hash__``." #: ../Doc/reference/datamodel.rst:1392 msgid "" @@ -2200,6 +2397,11 @@ msgid "" "`TypeError` would be incorrectly identified as hashable by an " "``isinstance(obj, collections.Hashable)`` call." msgstr "" +"Si une classe ne surcharge pas :meth:`__eq__` et veut supprimer le calcul " +"des empreintes, elle doit inclure ``__hash__ = None`` dans la définition de " +"la classe. Une classe qui définit sa propre méthode :meth:`__hash__` qui " +"lève une :exc:`TypeError` serait incorrectement identifiée comme hachable " +"par un appel à ``isinstance(obj, collections.Hashable)``." #: ../Doc/reference/datamodel.rst:1401 msgid "" @@ -2208,6 +2410,11 @@ msgid "" "constant within an individual Python process, they are not predictable " "between repeated invocations of Python." msgstr "" +"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, " +"*bytes* et objets datetime sont *salées* avec une valeur aléatoire non " +"prévisible. Bien qu'une empreinte reste constante tout au long d'un " +"processus Python, sa valeur n'est pas prévisible entre deux invocations de " +"Python." #: ../Doc/reference/datamodel.rst:1406 msgid "" @@ -2216,6 +2423,11 @@ msgid "" "insertion, O(n^2) complexity. See http://www.ocert.org/advisories/" "ocert-2011-003.html for details." msgstr "" +"C'est un comportement voulu pour se protéger contre un déni de service qui " +"utiliserait des entrées malicieusement choisies pour effectuer des " +"insertions dans le dictionnaire dans le pire cas, avec une complexité en " +"O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " +"obtenir les détails." #: ../Doc/reference/datamodel.rst:1411 msgid "" @@ -2223,6 +2435,10 @@ msgid "" "mappings. Python has never made guarantees about this ordering (and it " "typically varies between 32-bit and 64-bit builds)." msgstr "" +"Modifier les empreintes obtenues par hachage modifie l'ordre d'itération sur " +"les dictionnaires, les ensembles et les autres tableaux de correspondances. " +"Python n'a jamais donné de garantie sur cet ordre (d'ailleurs, l'ordre n'est " +"pas le même entre les implémentations 32 et 64 bits)." #: ../Doc/reference/datamodel.rst:1415 msgid "See also :envvar:`PYTHONHASHSEED`." @@ -2230,7 +2446,7 @@ msgstr "Voir aussi :envvar:`PYTHONHASHSEED`." #: ../Doc/reference/datamodel.rst:1417 msgid "Hash randomization is enabled by default." -msgstr "" +msgstr "la randomisation des empreintes est activée par défaut." #: ../Doc/reference/datamodel.rst:1425 msgid "" @@ -2240,6 +2456,12 @@ msgid "" "considered true if its result is nonzero. If a class defines neither :meth:" "`__len__` nor :meth:`__bool__`, all its instances are considered true." msgstr "" +"Appelée pour implémenter le test de vérité et l'opération native " +"``bool()`` ; elle doit renvoyer ``False`` ou ``True``. Quand cette méthode " +"n'est pas définie, :meth:`__len__` est appelée, si elle est définie, et " +"l'objet est considéré vrai si le résultat est non nul. Si une classe ne " +"définit ni :meth:`__len__` ni :meth:`__bool__`, toutes ses instances sont " +"considérées comme vraies." #: ../Doc/reference/datamodel.rst:1436 msgid "Customizing attribute access" From d37c99764554207599a012954f5ee21d057cfe60 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sat, 14 Apr 2018 17:19:20 +0200 Subject: [PATCH 043/115] =?UTF-8?q?Glossaire=20-=20Pr=C3=A9cision=20sur=20?= =?UTF-8?q?la=20traduction=20de=20*annotation*.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glossary.po | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/glossary.po b/glossary.po index b452382db..19e5a9aed 100644 --- a/glossary.po +++ b/glossary.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-01-04 15:51+0100\n" -"PO-Revision-Date: 2018-02-15 00:38+0100\n" +"PO-Revision-Date: 2018-04-14 17:16+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" "Language: fr\n" @@ -894,8 +894,12 @@ msgid "" "object." msgstr "" "Métadonnée quelconque associée au paramètre d'une fonction ou à sa valeur de " -"retour. Sa syntaxe est documentée dans la section :ref:`function`. Vous " -"pouvez accéder aux annotations d'une fonction via l'attribut spécial :attr:" +"retour (NdT : la traduction canonique du terme anglais *annotation* est " +"\"décoration\", notamment dans le cas des arbres syntaxiques, ce qui est le " +"cas ici. Cependant, Python ayant déjà utilisé le terme *decorator* dans une " +"autre acception, nous traduisons *annotation* par \"annotation\"). Sa " +"syntaxe est documentée dans la section :ref:`function`. Vous pouvez accéder " +"aux annotations d'une fonction *via* l'attribut spécial :attr:" "`__annotations__`." #: ../Doc/glossary.rst:375 @@ -2406,9 +2410,13 @@ msgid "" "module object and can be accessed using :func:`typing.get_type_hints`." msgstr "" "Métadonnée associée à une variable globale de module ou a un attribut de " -"classe et qui donne la valeur du type. Sa syntaxe est expliquée dans la " -"section :ref:`annassign`. Les annotations sont stockées dans un attribut :" -"attr:`__annotations__` spécial de classe ou de module et sont accessibles en " +"classe et qui donne la valeur du type (NdT : la traduction canonique du " +"terme anglais *annotation* est \"décoration\", notamment dans le cas des " +"arbres syntaxiques, ce qui est le cas ici. Cependant, Python ayant déjà " +"utilisé le terme *decorator* dans une autre acception, nous traduisons " +"*annotation* par \"annotation\"). Sa syntaxe est expliquée dans la section :" +"ref:`annassign`. Les annotations sont stockées dans un attribut :attr:" +"`__annotations__` spécial de classe ou de module et sont accessibles en " "utilisant :func:`typing.get_type_hints`." #: ../Doc/glossary.rst:1018 From 3cd5228e6e9661ffe0631ff47a8ecddd425dfc48 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Mon, 16 Apr 2018 23:49:13 +0200 Subject: [PATCH 044/115] merge pot files. --- sphinx.po | 166 +++++++++++++++++++++++++++--------------------------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/sphinx.po b/sphinx.po index a06a843d4..48d717f3a 100644 --- a/sphinx.po +++ b/sphinx.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"POT-Creation-Date: 2018-04-16 23:43+0200\n" "PO-Revision-Date: 2018-02-15 00:58+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -17,59 +17,54 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/tools/templates/indexsidebar.html:1 -msgid "Download" -msgstr "Téléchargement" - -#: ../Doc/tools/templates/indexsidebar.html:2 -msgid "Download these documents" -msgstr "Téléchargement de ces documentations" - -#: ../Doc/tools/templates/indexsidebar.html:3 -msgid "Docs for other versions" -msgstr "Docs des autres versions" +#: ../Doc/tools/templates/dummy.html:6 +msgid "CPython implementation detail:" +msgstr "Particularité de l'implémentation CPython :" -#: ../Doc/tools/templates/indexsidebar.html:5 -#, fuzzy -msgid "Python 3.8 (in development)" -msgstr "Python 3.7 (en développement)" +#: ../Doc/tools/templates/dummy.html:7 +msgid "" +"Deprecated since version {deprecated}, will be removed in version {removed}" +msgstr "" -#: ../Doc/tools/templates/indexsidebar.html:6 -#, fuzzy -msgid "Python 3.7 (pre-release)" -msgstr "Python 3.7 (en développement)" +#: ../Doc/tools/templates/layout.html:10 +msgid "Documentation " +msgstr "Documentation" -#: ../Doc/tools/templates/indexsidebar.html:7 -msgid "Python 3.5 (stable)" -msgstr "Python 3.5 (stable)" +#: ../Doc/tools/templates/layout.html:21 +msgid "Quick search" +msgstr "Recherche rapide" -#: ../Doc/tools/templates/indexsidebar.html:8 -msgid "Python 2.7 (stable)" -msgstr "Python 2.7 (stable)" +#: ../Doc/tools/templates/layout.html:22 +msgid "Go" +msgstr "Go" -#: ../Doc/tools/templates/indexsidebar.html:9 -msgid "Old versions" -msgstr "Anciennes versions" +#: ../Doc/tools/templates/layout.html:108 +#: ../Doc/tools/templates/indexcontent.html:63 +msgid "Copyright" +msgstr "Copyright" -#: ../Doc/tools/templates/indexsidebar.html:12 -msgid "Other resources" -msgstr "Autres ressources" +#: ../Doc/tools/templates/layout.html:110 +msgid "The Python Software Foundation is a non-profit corporation." +msgstr "La Python Software Foundation est une organisation à but non lucratif." -#: ../Doc/tools/templates/indexsidebar.html:15 -msgid "PEP Index" -msgstr "Index des PEP" +#: ../Doc/tools/templates/layout.html:111 +msgid "Please donate." +msgstr "Les dons sont bienvenus." -#: ../Doc/tools/templates/indexsidebar.html:16 -msgid "Beginner's Guide" -msgstr "Guide du débutant" +#: ../Doc/tools/templates/layout.html:113 +msgid "Last updated on %(last_updated)s." +msgstr "Dernière mise-à-jour le %(last_updated)s." -#: ../Doc/tools/templates/indexsidebar.html:17 -msgid "Book List" -msgstr "Liste de livres" +#: ../Doc/tools/templates/layout.html:114 +msgid "Found a bug?" +msgstr "Vous avez trouvé un bug ?" -#: ../Doc/tools/templates/indexsidebar.html:18 -msgid "Audio/Visual Talks" -msgstr "Documents multimédia" +#: ../Doc/tools/templates/layout.html:116 +msgid "" +"Created using Sphinx " +"%(sphinx_version)s." +msgstr "" +"Créé via Sphinx %(sphinx_version)s." #: ../Doc/tools/templates/indexcontent.html:8 msgid "Welcome! This is the documentation for Python %(release)s." @@ -229,11 +224,6 @@ msgstr "À propos de la documentation" msgid "History and License of Python" msgstr "Histoire et licence de Python" -#: ../Doc/tools/templates/indexcontent.html:63 -#: ../Doc/tools/templates/layout.html:108 -msgid "Copyright" -msgstr "Copyright" - #: ../Doc/tools/templates/customsourcelink.html:3 msgid "This Page" msgstr "Cette page" @@ -246,46 +236,56 @@ msgstr "Signalement de bug" msgid "Show Source" msgstr "Voir la source" -#: ../Doc/tools/templates/layout.html:10 -msgid "Documentation " -msgstr "Documentation" +#: ../Doc/tools/templates/indexsidebar.html:1 +msgid "Download" +msgstr "Téléchargement" -#: ../Doc/tools/templates/layout.html:21 -msgid "Quick search" -msgstr "Recherche rapide" +#: ../Doc/tools/templates/indexsidebar.html:2 +msgid "Download these documents" +msgstr "Téléchargement de ces documentations" -#: ../Doc/tools/templates/layout.html:22 -msgid "Go" -msgstr "Go" +#: ../Doc/tools/templates/indexsidebar.html:3 +msgid "Docs for other versions" +msgstr "Docs des autres versions" -#: ../Doc/tools/templates/layout.html:110 -msgid "The Python Software Foundation is a non-profit corporation." -msgstr "La Python Software Foundation est une organisation à but non lucratif." +#: ../Doc/tools/templates/indexsidebar.html:5 +#, fuzzy +msgid "Python 3.8 (in development)" +msgstr "Python 3.7 (en développement)" -#: ../Doc/tools/templates/layout.html:111 -msgid "Please donate." -msgstr "Les dons sont bienvenus." +#: ../Doc/tools/templates/indexsidebar.html:6 +#, fuzzy +msgid "Python 3.7 (pre-release)" +msgstr "Python 3.7 (en développement)" -#: ../Doc/tools/templates/layout.html:113 -msgid "Last updated on %(last_updated)s." -msgstr "Dernière mise-à-jour le %(last_updated)s." +#: ../Doc/tools/templates/indexsidebar.html:7 +msgid "Python 3.5 (stable)" +msgstr "Python 3.5 (stable)" -#: ../Doc/tools/templates/layout.html:114 -msgid "Found a bug?" -msgstr "Vous avez trouvé un bug ?" +#: ../Doc/tools/templates/indexsidebar.html:8 +msgid "Python 2.7 (stable)" +msgstr "Python 2.7 (stable)" -#: ../Doc/tools/templates/layout.html:116 -msgid "" -"Created using Sphinx " -"%(sphinx_version)s." -msgstr "" -"Créé via Sphinx %(sphinx_version)s." +#: ../Doc/tools/templates/indexsidebar.html:9 +msgid "Old versions" +msgstr "Anciennes versions" -#: ../Doc/tools/templates/dummy.html:6 -msgid "CPython implementation detail:" -msgstr "Particularité de l'implémentation CPython :" +#: ../Doc/tools/templates/indexsidebar.html:12 +msgid "Other resources" +msgstr "Autres ressources" -#: ../Doc/tools/templates/dummy.html:7 -msgid "" -"Deprecated since version {deprecated}, will be removed in version {removed}" -msgstr "" +#: ../Doc/tools/templates/indexsidebar.html:15 +msgid "PEP Index" +msgstr "Index des PEP" + +#: ../Doc/tools/templates/indexsidebar.html:16 +msgid "Beginner's Guide" +msgstr "Guide du débutant" + +#: ../Doc/tools/templates/indexsidebar.html:17 +msgid "Book List" +msgstr "Liste de livres" + +#: ../Doc/tools/templates/indexsidebar.html:18 +msgid "Audio/Visual Talks" +msgstr "Documents multimédia" From fecc43af47cfec44df8823ef8621e8086d0dc9b8 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Mon, 16 Apr 2018 23:54:32 +0200 Subject: [PATCH 045/115] FIX: Consistency with glossary. --- library/functools.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/functools.po b/library/functools.po index 03da1bc69..6a47d9036 100644 --- a/library/functools.po +++ b/library/functools.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-12-01 07:43+0100\n" -"PO-Revision-Date: 2017-12-01 08:57+0100\n" +"PO-Revision-Date: 2018-04-16 23:54+0200\n" "Last-Translator: \n" "Language-Team: \n" "Language: fr\n" @@ -54,10 +54,10 @@ msgid "" "comparison functions." msgstr "" "Transforme une fonction de comparaison à l'ancienne en une :term:`fonction " -"clef`. Utilisé avec des outils qui acceptent des fonctions clef (comme :" -"func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:" -"`heapq.nsmallest`, :func:`itertools.groupby`). Cette fonction est destinée " -"au portage de fonctions python 2 utilisant des fonctions de comparaison vers " +"clé`. Utilisé avec des outils qui acceptent des fonctions clef (comme :func:" +"`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:`heapq." +"nsmallest`, :func:`itertools.groupby`). Cette fonction est destinée au " +"portage de fonctions python 2 utilisant des fonctions de comparaison vers " "Python 3." #: ../Doc/library/functools.rst:32 From b2b53df8c5201b7e2a552fd621ffc185f5628a5a Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Thu, 26 Apr 2018 23:46:16 +0200 Subject: [PATCH 046/115] =?UTF-8?q?"Data=20Model"=20translation=20-=20all?= =?UTF-8?q?=20done.=20-=20relecture=20n=C3=A9cessaire=C2=A0;=20-=20prise?= =?UTF-8?q?=20en=20compte=20des=20remarques=20faites=20sur=20les=203=20pre?= =?UTF-8?q?miers=20commits.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/datamodel.po | 979 ++++++++++++++++++++++++++++++++++------- 1 file changed, 808 insertions(+), 171 deletions(-) diff --git a/reference/datamodel.po b/reference/datamodel.po index 145af33a5..4aa905b05 100644 --- a/reference/datamodel.po +++ b/reference/datamodel.po @@ -8,7 +8,7 @@ msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" -"PO-Revision-Date: 2018-04-14 16:10+0200\n" +"PO-Revision-Date: 2018-04-26 23:41+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -162,8 +162,8 @@ msgstr "" "qu'il supprime tous les objets, ces objets fournissent également un moyen " "explicite de libérer la ressource externe, généralement sous la forme d'une " "méthode :meth:`close`. Nous incitons fortement les programmeurs à fermer " -"explicitement de tels objets. Les instructions ':keyword:`try`...\\ :" -"keyword:`finally`' et ':keyword:`with`' sont très pratiques pour cela." +"explicitement de tels objets. Les instructions ':keyword:`try`...\\ :keyword:" +"`finally`' et ':keyword:`with`' sont très pratiques pour cela." #: ../Doc/reference/datamodel.rst:97 msgid "" @@ -178,12 +178,12 @@ msgid "" msgstr "" "Certains objets contiennent des références à d'autres objets ; on les " "appelle *conteneurs*. Comme exemples de conteneurs, nous pouvons citer les " -"tuples, les listes et les dictionnaires. Les références sont parties " -"intégrantes de la valeur d'un conteneur. Dans la plupart des cas, lorsque " -"nous parlons de la valeur d'un conteneur, nous parlons des valeurs, pas les " +"tuples, les listes et les dictionnaires. Les références sont parties " +"intégrantes de la valeur d'un conteneur. Dans la plupart des cas, lorsque " +"nous parlons de la valeur d'un conteneur, nous parlons des valeurs, pas des " "identifiants des objets contenus ; cependant, lorsque nous parlons de la " "muabilité d'un conteneur, seuls les identifiants des objets immédiatement " -"contenus sont concernés. Ainsi, si un conteneur immuable (comme un tuple) " +"contenus sont concernés. Ainsi, si un conteneur immuable (comme un tuple) " "contient une référence à un objet muable, sa valeur change si cet objet " "muable est modifié." @@ -199,11 +199,11 @@ msgid "" "different, unique, newly created empty lists. (Note that ``c = d = []`` " "assigns the same object to both ``c`` and ``d``.)" msgstr "" -"Presque tous les comportements d'un objet dépendent du type de l'objet. " -"Même son identifiant est concerné dans un certain sens : pour les types " +"Presque tous les comportements d'un objet dépendent du type de l'objet. Même " +"son identifiant est concerné dans un certain sens : pour les types " "immuables, les opérations qui calculent de nouvelles valeurs peuvent en fait " "renvoyer une référence à n'importe quel objet existant avec le même type et " -"la même valeur, alors que pour les objets muables cela n'est pas autorisé. " +"la même valeur, alors que pour les objets muables cela n'est pas autorisé. " "Par exemple, après ``a = 1 ; b = 1``, ``a`` et ``b`` peuvent ou non se " "référer au même objet avec la valeur un, en fonction de l'implémentation. " "Mais après ``c = [] ; d = []``, il est garanti que ``c`` et ``d`` font " @@ -275,7 +275,7 @@ msgstr "" "Ce type ne possède qu'une seule valeur. Il n'existe qu'un seul objet avec " "cette valeur. Vous accédez à cet objet avec le nom natif ``NotImplemented``. " "Les méthodes numériques et les comparaisons riches doivent renvoyer cette " -"valeur si elles n'implémentent pas l'opération pour les opérandes fournies " +"valeur si elles n'implémentent pas l'opération pour les opérandes fournis " "(l'interpréteur essaie alors l'opération en permutant les opérandes ou tout " "autre stratégie de contournement, en fonction de l'opérateur). Sa valeur " "booléenne est vraie." @@ -448,8 +448,8 @@ msgstr "" "Ils représentent des ensembles de taille finie indicés par des entiers " "positifs ou nuls. La fonction native :func:`len` renvoie le nombre " "d'éléments de la séquence. Quand la longueur d'une séquence est *n*, " -"l'ensemble des indices contient les entiers 0, 1 ..., *n*-1. L'élément " -"d'indice *i* de la séquence *a* est accédé par ``a[i]``." +"l'ensemble des indices contient les entiers 0, 1 ..., *n*-1. On accède à " +"l'élément d'indice *i* de la séquence *a* par ``a[i]``." #: ../Doc/reference/datamodel.rst:259 msgid "" @@ -458,11 +458,11 @@ msgid "" "a sequence of the same type. This implies that the index set is renumbered " "so that it starts at 0." msgstr "" -"Les séquences peuvent aussi être découpées (*slicing* en anglais) : ``a[i:" -"j]`` sélectionne tous les éléments d'indice *k* tel que *i* ``<=`` *k* ``<`` " -"*j*. Quand on l'utilise dans une expression, la tranche est du même type que " -"la séquence. Ceci veut dire que l'ensemble des indices est renuméroté de " -"manière à partir de 0." +"Les séquences peuvent aussi être découpées en tranches (*slicing* en " +"anglais) : ``a[i:j]`` sélectionne tous les éléments d'indice *k* tel que *i* " +"``<=`` *k* ``<`` *j*. Quand on l'utilise dans une expression, la tranche est " +"du même type que la séquence. Ceci veut dire que l'ensemble des indices de " +"la tranche est renuméroté de manière à partir de 0." #: ../Doc/reference/datamodel.rst:264 msgid "" @@ -549,7 +549,7 @@ msgstr "" "(un \"singleton\") est formé en suffixant une expression avec une virgule " "(une expression en tant que telle ne crée pas un tuple car les parenthèses " "doivent rester disponibles pour grouper les expressions). Un tuple vide peut " -"être formé à l'aide d'une paire de parenthèses vides." +"être formé à l'aide d'une paire de parenthèses vide." #: ../Doc/reference/datamodel.rst:325 msgid "Bytes" @@ -566,7 +566,7 @@ msgstr "" "Les objets *bytes* sont des tableaux immuables. Les éléments sont des octets " "(donc composés de 8 bits), représentés par des entiers dans l'intervalle 0 à " "255 inclus. Les littéraux *bytes* (tels que ``b'abc'``) et la fonction " -"native constructeur :func:`bytes()` peuvent être utilisés pour créer des " +"native constructeur :func:`bytes()` peuvent être utilisés pour créer des " "objets *bytes*. Aussi, un objet *bytes* peut être décodé vers une chaîne " "*via* la méthode :meth:`~bytes.decode`." @@ -617,9 +617,9 @@ msgid "" msgstr "" "Un objet *bytearray* est un tableau muable. Il est créé par la fonction " "native constructeur :func:`bytearray`. À part la propriété d'être muable (et " -"donc de ne pas pouvoir calculer une empreinte par hachage), les tableaux " -"d'octets possèdent la même interface et les mêmes fonctionnalités que les " -"objets immuables :class:`bytes`." +"donc de ne pas pouvoir calculer son empreinte par hachage), un tableau " +"d'octets possède la même interface et les mêmes fonctionnalités qu'un objet " +"immuable :class:`bytes`." #: ../Doc/reference/datamodel.rst:358 msgid "" @@ -711,9 +711,9 @@ msgstr "" "Ils représentent les ensembles finis d'objets indicés par des ensembles " "index arbitraires. La notation ``a[k]`` sélectionne l'élément indicé par " "``k`` dans le tableau de correspondance ``a`` ; elle peut être utilisée dans " -"des expressions, comme cible d'une assignation ou avec l'instruction :" +"des expressions, comme cible d'une assignation ou avec l'instruction :" "keyword:`del`. La fonction native :func:`len` renvoie le nombre d'éléments " -"dans le tableau de correspondances." +"du tableau de correspondances." #: ../Doc/reference/datamodel.rst:407 msgid "There is currently a single intrinsic mapping type:" @@ -753,7 +753,7 @@ msgid "" "section :ref:`dict`)." msgstr "" "Les dictionnaires sont muables : ils peuvent être créés par la notation " -"``{...}`` (lisez la section :ref:`dict`)." +"``{...}`` (reportez-vous à la section :ref:`dict`)." #: ../Doc/reference/datamodel.rst:428 msgid "" @@ -938,7 +938,7 @@ msgid "" "Most of the attributes labelled \"Writable\" check the type of the assigned " "value." msgstr "" -"La plupart des attributs étiquetés \"Accessibles en écriture\" vérifient le " +"La plupart des attributs étiquetés \"Accessible en écriture\" vérifient le " "type de la valeur qu'on leur assigne." #: ../Doc/reference/datamodel.rst:527 @@ -1021,7 +1021,7 @@ msgid "" "new method's :attr:`__func__` attribute is the original function object." msgstr "" "Quand un objet méthode d'instance est créé à partir d'un objet fonction " -"défini par l'utilisateur *via* une des instances, son attribut :attr:" +"définie par l'utilisateur *via* une des instances, son attribut :attr:" "`__self__` est l'instance et l'objet méthode est réputé lié. Le nouvel " "attribut de la méthode :attr:`__func__` est l'objet fonction original." @@ -1095,10 +1095,10 @@ msgstr "" "cette variable locale constitue une bonne optimisation. Notez aussi que " "cette transformation n'a lieu que pour les fonctions définies par " "l'utilisateur : les autres objets appelables (et les objets non appelables) " -"sont récupérés sans transformation. Il est aussi important de remarquer que " -"les fonctions définies par l'utilisateur qui sont attributs d'une instance " -"de classe ne sont pas converties en méthodes liées ; ceci n'a lieu que pour " -"les fonctions qui sont attributs de la classe." +"sont récupérés sans transformation. Il est aussi important de noter que les " +"fonctions définies par l'utilisateur qui sont attributs d'une instance de " +"classe ne sont pas converties en méthodes liées ; ceci n'a lieu que pour les " +"fonctions qui sont attributs de la classe." #: ../Doc/reference/datamodel.rst:618 msgid "Generator functions" @@ -1124,7 +1124,7 @@ msgstr "" "ce qu'elle renvoie une valeur à l'aide de l'instruction :keyword:`yield`. " "Quand la fonction exécute l'instruction :keyword:`return` ou se termine, une " "exception :exc:`StopIteration` est levée et l'itérateur a atteint la fin de " -"l'ensemble de valeurs qu'il peut prendre." +"l'ensemble de valeurs qu'il peut renvoyer." #: ../Doc/reference/datamodel.rst:628 msgid "Coroutine functions" @@ -1174,9 +1174,10 @@ msgstr "" "Appeler la méthode :meth:`aiterator.__anext__` de l'itérateur asynchrone " "renvoie un :term:`awaitable` qui, lorsqu'on l'attend, s'exécute jusqu'à ce " "qu'il fournisse une valeur à l'aide de l'expression :keyword:`yield`. Quand " -"la fonction exécute une instruction vide :keyword:`return` ou arrive à la " -"fin, une exception :exc:`StopAsynciteration` est levée et l'itérateur " -"asynchrone a atteint la fin de l'ensemble des valeurs qu'il peut produire." +"la fonction exécute une instruction :keyword:`return` (sans valeur) ou " +"arrive à la fin, une exception :exc:`StopAsynciteration` est levée et " +"l'itérateur asynchrone a atteint la fin de l'ensemble des valeurs qu'il peut " +"produire." #: ../Doc/reference/datamodel.rst:662 msgid "Built-in functions" @@ -1218,7 +1219,7 @@ msgstr "" "Ce sont des fonctions natives déguisées, contenant un objet passé à une " "fonction C en tant qu'argument supplémentaire implicite. Un exemple de " "méthode native est ``une_liste.append()`` (une_liste étant un objet liste). " -"Dans ce cas, l'attribut spécial en lecture seul :attr:`__self__` est défini " +"Dans ce cas, l'attribut spécial en lecture seule :attr:`__self__` est défini " "à l'objet *une_liste*." #: ../Doc/reference/datamodel.rst:681 @@ -1304,7 +1305,7 @@ msgstr "" "Attributs prédéfinis (en lecture-écriture) : :attr:`__name__` est le nom du " "module ; :attr:`__doc__` est la chaîne de documentation du module (ou " "``None`` s'il n'y en a pas) ; :attr:`__annotations__` (optionnel) est un " -"dictionnaire contenant les g :term:`Annotations de variables ` collectées durant l'exécution du corps du module ; :attr:" "`__file__` est le chemin vers le fichier à partir duquel le module a été " "chargé, s'il a été chargé depuis un fichier. L'attribut :attr:`__file__` " @@ -1332,7 +1333,7 @@ msgstr "" "le dictionnaire du module est effacé quand le module n'est plus visible, " "même si le dictionnaire possède encore des références actives. Pour éviter " "ceci, copiez le dictionnaire ou gardez le module dans votre champ de " -"visibilité tant que vous utilisez le dictionnaire directement." +"visibilité tant que vous souhaitez utiliser le dictionnaire directement." #: ../Doc/reference/datamodel.rst:795 msgid "Custom classes" @@ -1361,13 +1362,13 @@ msgstr "" "(bien qu'il existe un certain nombre de fonctions automatiques qui " "permettent de trouver des attributs par d'autres moyens). Si le nom " "d'attribut n'est pas trouvé dans ce dictionnaire, la recherche continue dans " -"les classes de base. Les classes de base sont trouvées en utilisant la " -"méthode de résolution d'ordre (*method resolution order* en anglais, ou MRO) " -"C3 qui a un comportement cohérent même en présence d'héritages en \"diamant" -"\", où différentes branches d'héritages conduisent vers un ancêtre commun. " -"Vous trouverez plus de détails sur la MRO C3 utilisée par Python dans la " -"documentation de la version 2.3 disponible sur https://www.python.org/" -"download/releases/2.3/mro/." +"les classes de base. Les classes de base sont trouvées en utilisant l'ordre " +"de résolution des méthodes (*method resolution order* en anglais, ou MRO) C3 " +"qui a un comportement cohérent même en présence d'héritages en \"diamant\", " +"où différentes branches d'héritages conduisent vers un ancêtre commun. Vous " +"trouverez plus de détails sur l'ordre de résolution des méthodes MRO C3 " +"utilisé par Python dans la documentation de la version 2.3 disponible sur " +"https://www.python.org/download/releases/2.3/mro/." #: ../Doc/reference/datamodel.rst:763 msgid "" @@ -1448,15 +1449,15 @@ msgstr "" "dessus). Une instance de classe possède un espace de noms implémenté sous la " "forme d'un dictionnaire qui est le premier endroit où sont recherchées les " "références aux attributs. Quand un attribut n'est pas trouvé dans ce " -"dictionnaire et que la classe de l'instance contient un attribut avec ce " +"dictionnaire et que la classe de l'instance contient un attribut avec ce " "nom, la recherche continue avec les attributs de la classe. Si un attribut " -"de classe est trouvé et que c'est un objet fonction défini par " +"de classe est trouvé et que c'est un objet fonction définie par " "l'utilisateur, il est transformé en objet méthode d'instance dont " "l'attribut :attr:`__self__` est l'instance. Les objets méthodes statiques et " "méthodes de classe sont aussi transformés ; reportez-vous ci-dessous à " "\"Classes\". Lisez la section :ref:`descriptors` pour une autre façon de " "récupérer les attributs d'une classe, où la récupération *via* ses instances " -"peut différer des objets réellement stockés dans le :attr:`objet.__dict__` " +"peut différer des objets réellement stockés dans le :attr:`~object.__dict__` " "de la classe. Si aucun attribut de classe n'est trouvé et que la classe de " "l'objet possède une méthode :meth:`__getattr__`, cette méthode est appelée " "pour rechercher une correspondance." @@ -1468,8 +1469,8 @@ msgid "" "`__delattr__` method, this is called instead of updating the instance " "dictionary directly." msgstr "" -"Les assignations et effacement d'attributs mettent à jour le dictionnaire de " -"l'instance, jamais le dictionnaire de la classe. Si la classe possède une " +"Les assignations et suppressions d'attributs mettent à jour le dictionnaire " +"de l'instance, jamais le dictionnaire de la classe. Si la classe possède une " "méthode :meth:`__setattr__` ou :meth:`__delattr__`, elle est appelée au lieu " "de mettre à jour le dictionnaire de l'instance directement." @@ -1487,8 +1488,8 @@ msgid "" "Special attributes: :attr:`~object.__dict__` is the attribute dictionary; :" "attr:`~instance.__class__` is the instance's class." msgstr "" -"Attributs spéciaux : :attr:`objet.__dict__` est le dictionnaire des " -"attributs ; :attr:`~instace.__class__` est la classe de l'instance." +"Attributs spéciaux : :attr:`~object.__dict__` est le dictionnaire des " +"attributs ; :attr:`~instance.__class__` est la classe de l'instance." #: ../Doc/reference/datamodel.rst:864 msgid "I/O objects (also known as file objects)" @@ -1502,11 +1503,11 @@ msgid "" "makefile` method of socket objects (and perhaps by other functions or " "methods provided by extension modules)." msgstr "" -"Un :term:`objet fichier` représente un fichier ouvert. Différentes " -"raccourcis existent pour créer des objets fichiers : la fonction native :" -"func:`open` et aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:" -"`~socket.socket.makefile` des objets sockets (et sûrement d'autres fonctions " -"ou méthodes fournies par les modules d'extensions)." +"Un :term:`objet fichier` représente un fichier ouvert. Différents raccourcis " +"existent pour créer des objets fichiers : la fonction native :func:`open` et " +"aussi :func:`os.popen`, :func:`os.fdopen` ou la méthode :meth:`~socket." +"socket.makefile` des objets sockets (et sûrement d'autres fonctions ou " +"méthodes fournies par les modules d'extensions)." #: ../Doc/reference/datamodel.rst:860 msgid "" @@ -1555,9 +1556,9 @@ msgstr "" "l'objet fonction contient une référence explicite vers les globales de la " "fonction (le module dans lequel elle est définie) alors qu'un objet code ne " "contient aucun contexte ; par ailleurs, les valeurs par défaut des arguments " -"sont stockées dans l'objet fonction, pas de l'objet code (parce que ce sont " -"des valeurs calculées au moment de l'exécution). Contrairement aux objets " -"fonctions, les objets codes sont immuables et ne contiennent aucune " +"sont stockées dans l'objet fonction, pas dans l'objet code (parce que ce " +"sont des valeurs calculées au moment de l'exécution). Contrairement aux " +"objets fonctions, les objets codes sont immuables et ne contiennent aucune " "référence (directe ou indirecte) à des objets muables." #: ../Doc/reference/datamodel.rst:903 @@ -1612,7 +1613,7 @@ msgstr "" "``0x04`` est positionné à 1 si la fonction utilise la syntaxe ``*arguments`` " "pour accepter un nombre arbitraire d'arguments positionnels ; le bit " "``0x08`` est positionné à 1 si la fonction utilise la syntaxe ``**keywords`` " -"pour accepter un nombre arbitraire d'arguments nommés ; bit ``0x20`` est " +"pour accepter un nombre arbitraire d'arguments nommés ; le bit ``0x20`` est " "positionné à 1 si la fonction est un générateur." #: ../Doc/reference/datamodel.rst:928 @@ -1625,14 +1626,14 @@ msgid "" msgstr "" "Les déclarations de fonctionnalité future ``from __future__ import " "division`` utilisent aussi des bits dans :attr:`co_flags` pour indiquer si " -"l'objet code a été compilé avec une fonctionnalité future : le bit " +"l'objet code a été compilé avec une fonctionnalité future : le bit " "``0x2000`` est positionné à 1 si la fonction a été compilée avec la division " -"future activée ; les bits ``0x10`` et ``0x1000`` étaient utilisés dans les " +"future activée ; les bits ``0x10`` et ``0x1000`` étaient utilisés dans les " "versions antérieures de Python." #: ../Doc/reference/datamodel.rst:934 msgid "Other bits in :attr:`co_flags` are reserved for internal use." -msgstr "Les autres bits de :attr:`co_flags` sont réservés à un usage interne." +msgstr "Les autres bits de :attr:`co_flags` sont réservés à un usage interne." #: ../Doc/reference/datamodel.rst:938 msgid "" @@ -1687,7 +1688,7 @@ msgstr "" "``None``, est une fonction appelée au début de chaque ligne de code source " "(c'est utilisé par le débogueur) ; :attr:`f_lineno` est le numéro de la " "ligne courante du cadre --- écrire dedans depuis une fonction trace fait " -"sauter à la ligne demandée (seulement pour le cadre le plus bas). Un " +"sauter à la ligne demandée (seulement pour le cadre le plus bas). Un " "débogueur peut implémenter une commande \"sauter vers\" en écrivant dans " "f_lineno." @@ -1752,26 +1753,26 @@ msgid "" "of its frame object if the exception occurred in a :keyword:`try` statement " "with no matching except clause or with a finally clause." msgstr "" -"Attributs spéciaux en lecture seule : attr:`tb_next` est le prochain niveau " +"Attributs spéciaux en lecture seule : :attr:`tb_next` est le prochain niveau " "dans la pile d'appels (vers le cadre où l'exception a été levée) ou ``None`` " "s'il n'y a pas de prochain niveau ; :attr:`tb_frame` pointe vers le cadre " "d'exécution du niveau courant ; :attr:`tb_lineno` donne le numéro de ligne " -"où l'exception a été levée ; :attr:`tb_lasti` indique l'instruction " -"précise. Le numéro de ligne et la dernière instruction dans la trace " -"peuvent différer du numéro de ligne de l'objet cadre si l'exception a eu " -"lieu dans une instruction :keyword:`try` sans qu'il n'y ait de clause :" -"keyword:`except` adéquate ou sans clause *finally* ." +"où l'exception a été levée ; :attr:`tb_lasti` indique l'instruction précise. " +"Le numéro de ligne et la dernière instruction dans la trace peuvent différer " +"du numéro de ligne de l'objet cadre si l'exception a eu lieu dans une " +"instruction :keyword:`try` sans qu'il n'y ait de clause :keyword:`!except` " +"adéquate ou sans clause :keyword:`!finally`." #: ../Doc/reference/datamodel.rst:1052 msgid "Slice objects" -msgstr "Objets découpes" +msgstr "Objets tranches" #: ../Doc/reference/datamodel.rst:1031 msgid "" "Slice objects are used to represent slices for :meth:`__getitem__` methods. " "They are also created by the built-in :func:`slice` function." msgstr "" -"Un objet découpe est utilisé pour représenter les découpes des méthodes :" +"Un objet tranche est utilisé pour représenter des découpes des méthodes :" "meth:`__getitem__`. Ils sont aussi créés par la fonction native :func:" "`slice`." @@ -1788,7 +1789,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1043 msgid "Slice objects support one method:" -msgstr "Les objets découpes comprennent une méthode :" +msgstr "Les objets tranches comprennent une méthode :" #: ../Doc/reference/datamodel.rst:1047 msgid "" @@ -1800,11 +1801,11 @@ msgid "" "a manner consistent with regular slices." msgstr "" "Cette méthode prend un argument entier *length* et calcule les informations " -"de la découpe que l'objet découpe décrit s'il est appliqué à une séquence de " +"de la tranche que l'objet découpe décrit s'il est appliqué à une séquence de " "*length* éléments. Elle renvoie un tuple de trois entiers ; respectivement, " "ce sont les indices de *début* et *fin* ainsi que le *pas* de découpe. Les " "indices manquants ou en dehors sont gérés de manière cohérente avec les " -"découpes normales." +"tranches normales." #: ../Doc/reference/datamodel.rst:1062 msgid "Static method objects" @@ -1868,16 +1869,16 @@ msgid "" "`TypeError`)." msgstr "" "Une classe peut implémenter certaines opérations que l'on invoque par une " -"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe) en " -"définissant des méthodes aux noms particuliers. C'est l'approche utilisée " -"par Python pour la :dfn:`surcharge d'opérateur`, permettant à une classe de " -"définir son propre comportement vis-à-vis des opérateurs du langage. Par " -"exemple, si une classe définit une méthode :meth:`__getitem__` et que ``x`` " -"est une instance de cette classe, alors ``x[i]`` est globalement équivalent " -"à ``type(x).__getitem__(x, i)``. Sauf lorsque c'est mentionné, toute " -"tentative d'appliquer une opération alors que la méthode appropriée n'est " -"pas définie lève une exception (typiquement :exc:`AttributeError` ou :exc:" -"`TypeError`)." +"syntaxe spéciale (telles que les opérations arithmétiques ou la découpe en " +"tranches) en définissant des méthodes aux noms particuliers. C'est " +"l'approche utilisée par Python pour la :dfn:`surcharge d'opérateur`, " +"permettant à une classe de définir son propre comportement vis-à-vis des " +"opérateurs du langage. Par exemple, si une classe définit une méthode :meth:" +"`__getitem__` et que ``x`` est une instance de cette classe, alors ``x[i]`` " +"est globalement équivalent à ``type(x).__getitem__(x, i)``. Sauf lorsque " +"c'est mentionné, toute tentative d'appliquer une opération alors que la " +"méthode appropriée n'est pas définie lève une exception (typiquement :exc:" +"`AttributeError` ou :exc:`TypeError`)." #: ../Doc/reference/datamodel.rst:1091 msgid "" @@ -1889,9 +1890,9 @@ msgid "" msgstr "" "Définir une méthode spéciale à ``None`` indique que l'opération " "correspondante n'est pas disponible. Par exemple, si une classe assigne " -"``None`` à :meth:`__iter__`, la classe n'est pas itérable et appeler :func:" -"`iter` sur une instance lève :exc:`TypeError` (sans se replier sur :meth:" -"`__getitem__`) [#]_." +"``None`` à :meth:`__iter__`, vous ne pouvez pas itérer sur la classe et " +"appeler :func:`iter` sur une instance lève :exc:`TypeError` (sans se replier " +"sur :meth:`__getitem__`) [#]_." #: ../Doc/reference/datamodel.rst:1097 msgid "" @@ -1950,7 +1951,7 @@ msgid "" "passed to :meth:`__new__`." msgstr "" "Si :meth:`__new__` renvoie une instance de *cls*, alors la méthode :meth:" -"`__init__` de la nouvelle instance sera invoquée avec " +"`__init__` de la nouvelle instance est invoquée avec " "``__init__(self[, ...])`` où *self* est la nouvelle instance et les autres " "arguments sont les mêmes que ceux passés à :meth:`__new__`." @@ -1959,8 +1960,8 @@ msgid "" "If :meth:`__new__` does not return an instance of *cls*, then the new " "instance's :meth:`__init__` method will not be invoked." msgstr "" -"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" -"meth:`__init__` de la nouvelle instance ne sera pas invoquée." +"Si :meth:`__new__` ne renvoie pas une instance de *cls*, alors la méthode :" +"meth:`__init__` de la nouvelle instance n'est pas invoquée." #: ../Doc/reference/datamodel.rst:1134 msgid "" @@ -1969,10 +1970,10 @@ msgid "" "commonly overridden in custom metaclasses in order to customize class " "creation." msgstr "" -"L'objectif de :meth:`__new__` est principalement d'autoriser les sous-" -"classes de types immuables (comme int, str ou tuple) à particulariser la " -"création des instances. Elle est aussi souvent surchargée dans les " -"métaclasses pour particulariser la création des classes." +"L'objectif de :meth:`__new__` est principalement, pour les sous-classes de " +"types immuables (comme int, str ou tuple), d'autoriser la création sur " +"mesure des instances. Elle est aussi souvent surchargée dans les méta-" +"classes pour particulariser la création des classes." #: ../Doc/reference/datamodel.rst:1143 msgid "" @@ -1985,11 +1986,11 @@ msgid "" msgstr "" "Appelée après la création de l'instance (par :meth:`__new__`), mais avant le " "retour vers l'appelant. Les arguments sont ceux passés à l'expression du " -"constructeur de classe. Si la classe de base possède une méthode :meth:" +"constructeur de classe. Si une classe de base possède une méthode :meth:" "`__init__`, la méthode :meth:`__init__` de la classe dérivée, si elle " -"existe, doit être explicitement appelée pour assurer une initialisation " -"correcte de la partie classe de base de l'instance ; par exemple : ``super()." -"__init__([args...])``." +"existe, doit explicitement appeler cette méthode pour assurer une " +"initialisation correcte de la partie classe de base de l'instance ; par " +"exemple : ``super().__init__([args...])``." #: ../Doc/reference/datamodel.rst:1150 msgid "" @@ -2000,7 +2001,7 @@ msgid "" msgstr "" "Comme :meth:`__new__` et :meth:`__init__` travaillent ensemble pour créer " "des objets (:meth:`__new__` pour le créer, :meth:`__init__` pour le " -"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur``None`` ; " +"particulariser), :meth:`__init__` ne doit pas renvoyer de valeur ``None`` ; " "sinon une exception :exc:`TypeError` est levée à l'exécution." #: ../Doc/reference/datamodel.rst:1163 @@ -2047,9 +2048,9 @@ msgid "" "the reference count for ``x`` by one, and the latter is only called when " "``x``'s reference count reaches zero." msgstr "" -"``del x`` n'appelle pas directement ``x.__del__()`` --- il décrémente le " -"compteur de références de ``x``. La méthode *del* n'est appelée que quand le " -"compteur de références de ``x`` atteint zéro." +"``del x`` n'appelle pas directement ``x.__del__()`` --- la première " +"décrémente le compteur de références de ``x``. La seconde n'est appelée que " +"quand le compteur de références de ``x`` atteint zéro." #: ../Doc/reference/datamodel.rst:1196 msgid "Documentation for the :mod:`gc` module." @@ -2111,13 +2112,13 @@ msgid "" "`__repr__` but not :meth:`__str__`, then :meth:`__repr__` is also used when " "an \"informal\" string representation of instances of that class is required." msgstr "" -"Appelée par la fonction native :func:`rep` pour calculer la représentation " -"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour cela " -"ressemble à une expression Python valide qui peut être utilisée pour recréer " -"un objet avec la même valeur (dans un environnement donné). Si ce n'est pas " -"possible, une chaîne de la forme ``<...une description utile...>`` est " -"renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si une " -"classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" +"Appelée par la fonction native :func:`repr` pour calculer la représentation " +"\"officielle\" en chaîne de caractères d'un objet. Tout est fait pour que " +"celle-ci ressemble à une expression Python valide pouvant être utilisée pour " +"recréer un objet avec la même valeur (dans un environnement donné). Si ce " +"n'est pas possible, une chaîne de la forme ``<...une description utile...>`` " +"est renvoyée. La valeur renvoyée doit être un objet chaîne de caractères. Si " +"une classe définit :meth:`__repr__` mais pas :meth:`__str__`, alors :meth:" "`__repr__` est aussi utilisée quand une représentation \"informelle\" en " "chaîne de caractères est demandée pour une instance de cette classe." @@ -2166,7 +2167,7 @@ msgid "" "of an object. This should return a :class:`bytes` object." msgstr "" "Appelée par :ref:`bytes ` pour calculer une représentation en " -"chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`." +"chaîne *bytes* d'un objet. Elle doit renvoyer un objet :class:`bytes`." #: ../Doc/reference/datamodel.rst:1275 msgid "" @@ -2181,7 +2182,7 @@ msgid "" msgstr "" "Appelée par la fonction native :func:`format` et, par extension, lors de " "l'évaluation de :ref:`formatted string literals ` ou de la " -"méthode :meth:`str.format`. Elle produit une chaîne de caractères \"formatée" +"méthode :meth:`str.format`. Elle produit une chaîne de caractères \"formatée" "\" représentant un objet. L'argument ``format_spec`` est une chaîne de " "caractères contenant la description des options de formatage voulues. " "L'interprétation de l'argument ``format_spec`` est laissée au type " @@ -2216,11 +2217,11 @@ msgid "" "``x!=y`` calls ``x.__ne__(y)``, ``x>y`` calls ``x.__gt__(y)``, and ``x>=y`` " "calls ``x.__ge__(y)``." msgstr "" -"Ce sont les méthodes dites \"de comparaisons riches\". La correspondance " +"Ce sont les méthodes dites de \"comparaisons riches\". La correspondance " "entre les symboles opérateurs et les noms de méthodes est la suivante : " "``xy`` appelle " -"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." +"``x.__gt__(y)`` et ``x>=y`` appelle ``x.__ge__(y)``." #: ../Doc/reference/datamodel.rst:1311 msgid "" @@ -2253,7 +2254,7 @@ msgstr "" "Par défaut, :meth:`__ne__` délègue à :meth:`__eq__` et renvoie le résultat " "inverse, sauf si c'est ``NotImplemented``. Il n'y a pas d'autres relations " "implicites pour les opérateurs de comparaison. Par exemple, ``(x.__hash__``." #: ../Doc/reference/datamodel.rst:1392 @@ -2400,8 +2401,8 @@ msgstr "" "Si une classe ne surcharge pas :meth:`__eq__` et veut supprimer le calcul " "des empreintes, elle doit inclure ``__hash__ = None`` dans la définition de " "la classe. Une classe qui définit sa propre méthode :meth:`__hash__` qui " -"lève une :exc:`TypeError` serait incorrectement identifiée comme hachable " -"par un appel à ``isinstance(obj, collections.Hashable)``." +"lève explicitement :exc:`TypeError` serait incorrectement identifiée comme " +"hachable par un appel à ``isinstance(obj, collections.Hashable)``." #: ../Doc/reference/datamodel.rst:1401 msgid "" @@ -2410,7 +2411,7 @@ msgid "" "constant within an individual Python process, they are not predictable " "between repeated invocations of Python." msgstr "" -"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, " +"Par défaut, les valeurs renvoyées par :meth:`__hash__` pour les chaînes, " "*bytes* et objets datetime sont *salées* avec une valeur aléatoire non " "prévisible. Bien qu'une empreinte reste constante tout au long d'un " "processus Python, sa valeur n'est pas prévisible entre deux invocations de " @@ -2426,8 +2427,8 @@ msgstr "" "C'est un comportement voulu pour se protéger contre un déni de service qui " "utiliserait des entrées malicieusement choisies pour effectuer des " "insertions dans le dictionnaire dans le pire cas, avec une complexité en " -"O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " -"obtenir les détails." +"O(n^2). Lisez http://www.ocert.org/advisories/ocert-2011-003.html pour en " +"obtenir les détails (article en anglais)." #: ../Doc/reference/datamodel.rst:1411 msgid "" @@ -2456,7 +2457,7 @@ msgid "" "considered true if its result is nonzero. If a class defines neither :meth:" "`__len__` nor :meth:`__bool__`, all its instances are considered true." msgstr "" -"Appelée pour implémenter le test de vérité et l'opération native " +"Appelée pour implémenter les tests booléens et l'opération native " "``bool()`` ; elle doit renvoyer ``False`` ou ``True``. Quand cette méthode " "n'est pas définie, :meth:`__len__` est appelée, si elle est définie, et " "l'objet est considéré vrai si le résultat est non nul. Si une classe ne " @@ -2465,7 +2466,7 @@ msgstr "" #: ../Doc/reference/datamodel.rst:1436 msgid "Customizing attribute access" -msgstr "" +msgstr "Personnalisation de l'accès aux attributs" #: ../Doc/reference/datamodel.rst:1438 msgid "" @@ -2473,6 +2474,9 @@ msgid "" "access (use of, assignment to, or deletion of ``x.name``) for class " "instances." msgstr "" +"Les méthodes suivantes peuvent être définies pour personnaliser l'accès aux " +"attributs (utilisation, assignation, suppression de ``x.name``) pour les " +"instances de classes." #: ../Doc/reference/datamodel.rst:1446 msgid "" @@ -2483,6 +2487,13 @@ msgid "" "`AttributeError`). This method should either return the (computed) " "attribute value or raise an :exc:`AttributeError` exception." msgstr "" +"Appelée lorsque l'accès par défaut à l'attribut échoue en levant :exc:" +"`AttributeError` (soit :meth:`__getattribute__` lève :exc:`AttributeError` " +"car *name* n'est pas un attribut de l'instance ou un attribut dans " +"l'arborescence de la classe de ``self`` ; ou :meth:`__get__` de la propriété " +"*name* lève :exc:`AttributeError`). Cette méthode doit retourner soit la " +"valeur (calculée) de l'attribut, soit lever une exception :exc:" +"`AttributeError`." #: ../Doc/reference/datamodel.rst:1453 msgid "" @@ -2496,8 +2507,19 @@ msgid "" "object). See the :meth:`__getattribute__` method below for a way to " "actually get total control over attribute access." msgstr "" +"Notez que si l'attribut est trouvé par le mécanisme normal, :meth:" +"`__getattr__` n'est pas appelée (c'est une asymétrie voulue entre :meth:" +"`__getattr__` et :meth:`__setattr__`). Ce comportement est adopté à la fois " +"pour des raisons de performance et parce que, sinon, :meth:`__getattr__` " +"n'aurait aucun moyen d'accéder aux autres attributs de l'instance. Notez " +"que, au moins pour ce qui concerne les variables d'instance, vous pouvez " +"simuler un contrôle total en n'insérant aucune valeur dans le dictionnaire " +"des attributs de l'instance (mais en les insérant dans un autre objet à la " +"place). Lisez la partie relative à la méthode :meth:`__getattribute__` ci-" +"dessous pour obtenir un contrôle total effectif sur l'accès aux attributs." #: ../Doc/reference/datamodel.rst:1466 +#, fuzzy msgid "" "Called unconditionally to implement attribute accesses for instances of the " "class. If the class also defines :meth:`__getattr__`, the latter will not be " @@ -2508,6 +2530,16 @@ msgid "" "base class method with the same name to access any attributes it needs, for " "example, ``object.__getattribute__(self, name)``." msgstr "" +"Appelée de manière inconditionnelle pour implémenter l'accès aux attributs " +"des instances de la classe. Si la classe définit également :meth:" +"`__getattr__`, cette dernière n'est pas appelée à moins que :meth:" +"`__getattribute__` l'appelle explicitement ou alors lève une exception :exc:" +"`AttributeError`. Cette méthode doit renvoyer la valeur (calculée) de " +"l'attribut ou lever une exception :exc:`AttributeError`. Afin d'éviter une " +"récursion infinie sur cette méthode, son implémentation doit toujours " +"appeler la méthode de la classe de base avec le même paramètre *name* pour " +"accéder à n'importe quel attribut. Par exemple, ``object." +"__getattribute__(self, name)``." #: ../Doc/reference/datamodel.rst:1477 msgid "" @@ -2515,6 +2547,9 @@ msgid "" "result of implicit invocation via language syntax or built-in functions. " "See :ref:`special-lookup`." msgstr "" +"Cette méthode peut être court-circuitée lorsque la recherche porte sur les " +"méthodes spéciales en tant que résultat d'une invocation implicite *via* la " +"syntaxe du langage ou les fonctions natives. Lisez :ref:`special-lookup`." #: ../Doc/reference/datamodel.rst:1484 msgid "" @@ -2522,6 +2557,10 @@ msgid "" "the normal mechanism (i.e. store the value in the instance dictionary). " "*name* is the attribute name, *value* is the value to be assigned to it." msgstr "" +"Appelée lors d'une assignation d'attribut. Elle est appelée à la place du " +"mécanisme normal (c'est-à-dire stocker la valeur dans le dictionnaire de " +"l'instance). *name* est le nom de l'attribut, *value* est la valeur à " +"assigner à cet attribut." #: ../Doc/reference/datamodel.rst:1488 msgid "" @@ -2529,6 +2568,9 @@ msgid "" "call the base class method with the same name, for example, ``object." "__setattr__(self, name, value)``." msgstr "" +"Si :meth:`__setattr__` veut assigner un attribut d'instance, elle doit " +"appeler la méthode de la classe de base avec le même nom, par exemple " +"``object.__setattr__(self, name, value)``." #: ../Doc/reference/datamodel.rst:1495 msgid "" @@ -2536,16 +2578,22 @@ msgid "" "This should only be implemented if ``del obj.name`` is meaningful for the " "object." msgstr "" +"Comme :meth:`__setattr__` mais pour supprimer un attribut au lieu de " +"l'assigner. Elle ne doit être implémentée que si ``del obj.name`` a du sens " +"pour cet objet." #: ../Doc/reference/datamodel.rst:1501 msgid "" "Called when :func:`dir` is called on the object. A sequence must be " "returned. :func:`dir` converts the returned sequence to a list and sorts it." msgstr "" +"Appelée quand :func:`dir` est appelée sur l'objet. Elle doit renvoyer une " +"séquence. :func:`dir` convertit la séquence renvoyée en liste et effectue le " +"classement." #: ../Doc/reference/datamodel.rst:1506 msgid "Customizing module attribute access" -msgstr "" +msgstr "Personnalisation de l'accès aux attributs d'un module" #: ../Doc/reference/datamodel.rst:1511 msgid "" @@ -2553,6 +2601,10 @@ msgid "" "attributes, properties, etc.), one can set the ``__class__`` attribute of a " "module object to a subclass of :class:`types.ModuleType`. For example::" msgstr "" +"Pour une personnalisation plus fine du comportement d'un module (assignation " +"des attributs, propriétés, etc.), vous pouvez assigner l'attribut " +"``__class__`` d'un objet module à une sous-classe de :class:`types." +"ModuleType`. Par exemple ::" #: ../Doc/reference/datamodel.rst:1529 msgid "" @@ -2561,14 +2613,19 @@ msgid "" "within the module, or via a reference to the module's globals dictionary) is " "unaffected." msgstr "" +"Définir ``__class__`` pour le module affecte uniquement les recherches qui " +"utilisent la syntaxe d'accès aux attributs -- accéder directement aux " +"globales d'un module (soit par le code dans le module, soit *via* une " +"référence au dictionnaire des variables globales du module) fonctionne " +"toujours de la même façon." #: ../Doc/reference/datamodel.rst:1534 msgid "``__class__`` module attribute is now writable." -msgstr "" +msgstr "l'attribut ``__class__`` du module est maintenant en lecture-écriture." #: ../Doc/reference/datamodel.rst:1541 msgid "Implementing Descriptors" -msgstr "" +msgstr "Implémentation de descripteurs" #: ../Doc/reference/datamodel.rst:1543 msgid "" @@ -2579,6 +2636,13 @@ msgid "" "\" refers to the attribute whose name is the key of the property in the " "owner class' :attr:`~object.__dict__`." msgstr "" +"Les méthodes qui suivent s'appliquent seulement quand une instance de la " +"classe (dite classe *descripteur*) contenant la méthode apparaît dans une " +"classe *propriétaire* (*owner* en anglais) ; la classe descripteur doit " +"figurer dans le dictionnaire de la classe propriétaire ou dans le " +"dictionnaire de la classe d'un des parents. Dans les exemples ci-dessous, " +"\"l'attribut\" fait référence à l'attribut dont le nom est une clé du :attr:" +"`~object.__dict__` de la classe propriétaire." #: ../Doc/reference/datamodel.rst:1553 msgid "" @@ -2589,23 +2653,35 @@ msgid "" "*owner*. This method should return the (computed) attribute value or raise " "an :exc:`AttributeError` exception." msgstr "" +"Appelée pour obtenir l'attribut de la classe propriétaire (accès à un " +"attribut de classe) ou d'une instance de cette classe (accès à un attribut " +"d'instance). *owner* est toujours la classe propriétaire alors que " +"*instance* est l'instance par laquelle on accède à l'attribut ou ``None`` " +"lorsque l'on accède par la classe *owner*. Cette méthode doit renvoyer la " +"valeur (calculée) de l'attribut ou lever une exception :exc:`AttributeError`." #: ../Doc/reference/datamodel.rst:1563 msgid "" "Called to set the attribute on an instance *instance* of the owner class to " "a new value, *value*." msgstr "" +"Appelée pour définir l'attribut d'une instance *instance* de la classe " +"propriétaire à la nouvelle valeur *value*." #: ../Doc/reference/datamodel.rst:1569 msgid "" "Called to delete the attribute on an instance *instance* of the owner class." msgstr "" +"Appelée pour supprimer l'attribut de l'instance *instance* de la classe " +"propriétaire." #: ../Doc/reference/datamodel.rst:1574 msgid "" "Called at the time the owning class *owner* is created. The descriptor has " "been assigned to *name*." msgstr "" +"Appelée au moment où la classe propriétaire *owner* est créée. La classe " +"descripteur a été assignée à *name*." #: ../Doc/reference/datamodel.rst:1580 msgid "" @@ -2617,10 +2693,17 @@ msgid "" "argument (for example, CPython sets this attribute for unbound methods that " "are implemented in C)." msgstr "" +"L'attribut :attr:`__objclass__` est interprété par le module :mod:`inspect` " +"comme spécifiant la classe où cet objet a été défini (le définir " +"correctement peut vous aider dans l'introspection des classes dynamiques à " +"l'exécution). Pour les appelables, cela peut indiquer qu'une instance d'un " +"certain type (ou d'une certaine sous-classe) est attendue ou requise comme " +"premier argument positionnel (par exemple, CPython définit cet attribut pour " +"les méthodes non liées qui sont implémentées en C)." #: ../Doc/reference/datamodel.rst:1591 msgid "Invoking Descriptors" -msgstr "" +msgstr "Invocation des descripteurs" #: ../Doc/reference/datamodel.rst:1593 msgid "" @@ -2629,6 +2712,12 @@ msgid "" "protocol: :meth:`__get__`, :meth:`__set__`, and :meth:`__delete__`. If any " "of those methods are defined for an object, it is said to be a descriptor." msgstr "" +"En général, un descripteur est un attribut d'objet dont le comportement est " +"\"lié\" (*binding dehavior* en anglais), c'est-à-dire que les accès aux " +"attributs ont été surchargés par des méthodes conformes au protocole des " +"descripteurs : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si " +"l'une de ces méthodes est définie pour un objet, il est réputé être un " +"descripteur." #: ../Doc/reference/datamodel.rst:1598 msgid "" @@ -2637,6 +2726,11 @@ msgid "" "chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " "continuing through the base classes of ``type(a)`` excluding metaclasses." msgstr "" +"Le comportement par défaut pour la gestion d'un attribut est de définir, " +"obtenir et supprimer cet attribut du dictionnaire de l'objet. Par exemple, " +"pour ``a.x`` Python commence d'abord par rechercher ``a.__dict__['x']``, " +"puis ``type(a).__dict__['x']`` ; ensuite Python continue en remontant les " +"classes de base de ``type(a)``, en excluant les méta-classes." #: ../Doc/reference/datamodel.rst:1603 msgid "" @@ -2645,46 +2739,59 @@ msgid "" "descriptor method instead. Where this occurs in the precedence chain " "depends on which descriptor methods were defined and how they were called." msgstr "" +"Cependant, si la valeur cherchée est un objet qui définit une des méthodes " +"de descripteur, alors Python modifie son comportement et invoque la méthode " +"du descripteur à la place. Le moment où cela intervient dans la recherche " +"citée ci-dessus dépend de l'endroit où a été définie la méthode de " +"descripteur et comment elle a été appelée." #: ../Doc/reference/datamodel.rst:1608 msgid "" "The starting point for descriptor invocation is a binding, ``a.x``. How the " "arguments are assembled depends on ``a``:" msgstr "" +"Le point de départ pour une invocation de descripteur est la liaison ``a." +"x``. La façon dont les arguments sont assemblés dépend de ``a`` :" #: ../Doc/reference/datamodel.rst:1613 msgid "Direct Call" -msgstr "" +msgstr "Appel direct" #: ../Doc/reference/datamodel.rst:1612 msgid "" "The simplest and least common call is when user code directly invokes a " "descriptor method: ``x.__get__(a)``." msgstr "" +"Le plus simple et le plus rare des appels est quand l'utilisateur code " +"directement l'appel à la méthode du descripteur : ``x.__get__(a)``." #: ../Doc/reference/datamodel.rst:1617 msgid "Instance Binding" -msgstr "" +msgstr "Liaison avec une instance" #: ../Doc/reference/datamodel.rst:1616 msgid "" "If binding to an object instance, ``a.x`` is transformed into the call: " "``type(a).__dict__['x'].__get__(a, type(a))``." msgstr "" +"Si elle est liée à un objet instance, ``a.x`` est transformé en l'appel " +"suivant : ``type(a).__dict__['x'].__get__(a, type(a))``." #: ../Doc/reference/datamodel.rst:1621 msgid "Class Binding" -msgstr "" +msgstr "Liaison avec une classe" #: ../Doc/reference/datamodel.rst:1620 msgid "" "If binding to a class, ``A.x`` is transformed into the call: ``A." "__dict__['x'].__get__(None, A)``." msgstr "" +"Si elle est liée à une classe, ``A.x`` est transformé en l'appel suivant : " +"``A.__dict__['x'].__get__(None, A)``." #: ../Doc/reference/datamodel.rst:1627 msgid "Super Binding" -msgstr "" +msgstr "Liaison super" #: ../Doc/reference/datamodel.rst:1624 msgid "" @@ -2693,6 +2800,10 @@ msgid "" "immediately preceding ``B`` and then invokes the descriptor with the call: " "``A.__dict__['m'].__get__(obj, obj.__class__)``." msgstr "" +"Si ``a`` est une instance de :class:`super`, alors ``super(B, obj).m()`` " +"recherche ``obj.__class__.__mro__`` pour la classe de base ``A`` " +"immédiatement avant ``B`` puis invoque le descripteur avec l'appel suivant : " +"``A.__dict__['m'].__get__(obj, obj.__class__)``." #: ../Doc/reference/datamodel.rst:1629 msgid "" @@ -2709,6 +2820,21 @@ msgid "" "defined always override a redefinition in an instance dictionary. In " "contrast, non-data descriptors can be overridden by instances." msgstr "" +"Pour des liaisons avec des instances, la priorité à l'invocation du " +"descripteur dépend des méthodes que le descripteur a définies. Un " +"descripteur peut définir n'importe quelle combinaison de :meth:`__get__`, :" +"meth:`__set__` et :meth:`__delete__`. S'il ne définit pas :meth:`__get__`, " +"alors accéder à l'attribut retourne l'objet descripteur lui-même sauf s'il " +"existe une valeur dans le dictionnaire de l'objet instance. Si le " +"descripteur définit :meth:`__set__` ou :meth:`__delete__`, c'est un " +"descripteur de données ; s'il ne définit aucune méthode, c'est un " +"descripteur hors-donnée. Normalement, les descripteurs de données " +"définissent à la fois :meth:`__get__` et :meth:`__set__`, alors que les " +"descripteurs hors-données définissent seulement la méthode :meth:`__get__`. " +"Les descripteurs de données qui définissent :meth:`__set__` et :meth:" +"`__get__` sont toujours prioritaires face à une redéfinition du dictionnaire " +"de l'instance. En revanche, les descripteurs hors-données peuvent être court-" +"circuités par les instances." #: ../Doc/reference/datamodel.rst:1642 msgid "" @@ -2717,12 +2843,20 @@ msgid "" "and override methods. This allows individual instances to acquire behaviors " "that differ from other instances of the same class." msgstr "" +"Les méthodes Python (y compris :func:`staticmethod` et :func:`classmethod`) " +"sont implémentées comme des descripteurs hors-donnée. De la même manière, " +"les instances peuvent redéfinir et surcharger les méthodes. Ceci permet à " +"chaque instance d'avoir un comportement qui diffère des autres instances de " +"la même classe." #: ../Doc/reference/datamodel.rst:1647 msgid "" "The :func:`property` function is implemented as a data descriptor. " "Accordingly, instances cannot override the behavior of a property." msgstr "" +"La fonction :func:`property` est implémentée en tant que descripteur de " +"données. Ainsi, les instances ne peuvent pas surcharger le comportement " +"d'une propriété." #: ../Doc/reference/datamodel.rst:1654 msgid "__slots__" @@ -2734,10 +2868,16 @@ msgid "" "and deny the creation of *__dict__* and *__weakref__* (unless explicitly " "declared in *__slots__* or available in a parent.)" msgstr "" +"Les *__slots__* vous permettent de déclarer des membres d'une donnée (comme " +"une propriété) et d'interdire la création de *__dict__* ou de *__weakref__* " +"(à moins qu'ils ne soient explicitement déclarés dans le *__slots__* ou " +"présent dans le parent)." #: ../Doc/reference/datamodel.rst:1660 msgid "The space saved over using *__dict__* can be significant." msgstr "" +"L'espace gagné par rapport à l'utilisation d'un *__dict__* peut être " +"significatif." #: ../Doc/reference/datamodel.rst:1664 msgid "" @@ -2746,16 +2886,23 @@ msgid "" "for the declared variables and prevents the automatic creation of *__dict__* " "and *__weakref__* for each instance." msgstr "" +"Cette variable de classe peut être assignée avec une chaîne, un itérable ou " +"une séquence de chaînes avec les noms de variables utilisés par les " +"instances. *__slots__* réserve de la place pour ces variables déclarées et " +"interdit la création automatique de *__dict__* et *__weakref__* pour chaque " +"instance." #: ../Doc/reference/datamodel.rst:1671 msgid "Notes on using *__slots__*" -msgstr "" +msgstr "Note sur l'utilisation de *__slots__*" #: ../Doc/reference/datamodel.rst:1673 msgid "" "When inheriting from a class without *__slots__*, the *__dict__* and " "*__weakref__* attribute of the instances will always be accessible." msgstr "" +"Lorsque vous héritez d'une classe sans *__slots__*, les attributs *__dict__* " +"et *__weakref__* des instances sont toujours accessibles." #: ../Doc/reference/datamodel.rst:1676 msgid "" @@ -2765,6 +2912,11 @@ msgid "" "variables is desired, then add ``'__dict__'`` to the sequence of strings in " "the *__slots__* declaration." msgstr "" +"Sans variable *__dict__*, les instances ne peuvent pas assigner de nouvelles " +"variables (non listées dans la définition de *__slots__*). Les tentatives " +"d'assignation sur un nom de variable non listé lève :exc:`AttributeError`. " +"Si l'assignation dynamique de nouvelles variables est nécessaire, ajoutez " +"``'__dict__'`` à la séquence de chaînes dans la déclaration *__slots__*." #: ../Doc/reference/datamodel.rst:1682 msgid "" @@ -2773,6 +2925,11 @@ msgid "" "reference support is needed, then add ``'__weakref__'`` to the sequence of " "strings in the *__slots__* declaration." msgstr "" +"Sans variable *__weakref__* pour chaque instance, les classes qui " +"définissent *__slots__* ne gèrent pas les références faibles vers leurs " +"instances. Si vous avez besoin de gérer des références faibles, ajoutez " +"``'__weakref__'`` à la séquence de chaînes dans la déclaration de " +"*__slots__*." #: ../Doc/reference/datamodel.rst:1687 msgid "" @@ -2781,6 +2938,11 @@ msgid "" "be used to set default values for instance variables defined by *__slots__*; " "otherwise, the class attribute would overwrite the descriptor assignment." msgstr "" +"Les *__slots__* sont implémentés au niveau de la classe en créant des " +"descripteurs (:ref:`descriptors`) pour chaque nom de variable. Ainsi, les " +"attributs de classe ne peuvent pas être utilisés pour des valeurs par défaut " +"aux variables d'instances définies par *__slots__* ; sinon, l'attribut de " +"classe surchargerait l'assignation par descripteur." #: ../Doc/reference/datamodel.rst:1693 msgid "" @@ -2790,6 +2952,11 @@ msgid "" "they also define *__slots__* (which should only contain names of any " "*additional* slots)." msgstr "" +"L'action de la déclaration du *__slots__* ne se limite pas à la classe où il " +"est défini. Les *__slots__* déclarés par les parents sont disponibles dans " +"les classes enfants. Cependant, les sous-classes enfants ont un *__dict__* " +"et un *__weakref__* à moins qu'elles ne définissent aussi un *__slots__* " +"(qui ne doit contenir alors que les noms *supplémentaires* du slot)." #: ../Doc/reference/datamodel.rst:1699 msgid "" @@ -2799,12 +2966,20 @@ msgid "" "meaning of the program undefined. In the future, a check may be added to " "prevent this." msgstr "" +"Si une classe définit un slot aussi défini dans une classe de base, la " +"variable d'instance définie par la classe de base est inaccessible (sauf à " +"utiliser le descripteur de la classe de base directement). Cela rend la " +"signification du programme indéfinie. Dans le futur, une vérification sera " +"ajoutée pour empêcher cela." #: ../Doc/reference/datamodel.rst:1704 msgid "" "Nonempty *__slots__* does not work for classes derived from \"variable-length" "\" built-in types such as :class:`int`, :class:`bytes` and :class:`tuple`." msgstr "" +"Un *__slot__* non vide ne fonctionne pas pour les classes dérivées des types " +"natifs à longueur variable tels que :class:`int`, :class:`bytes` et :class:" +"`tuple`." #: ../Doc/reference/datamodel.rst:1707 msgid "" @@ -2812,11 +2987,17 @@ msgid "" "used; however, in the future, special meaning may be assigned to the values " "corresponding to each key." msgstr "" +"Tout itérable qui n'est pas une chaîne peut être assigné à un *__slots__*. " +"Les tableaux de correspondance peuvent aussi être utilisés ; cependant, dans " +"le futur, des significations spéciales pourraient être associées à chacune " +"des clés." #: ../Doc/reference/datamodel.rst:1711 msgid "" "*__class__* assignment works only if both classes have the same *__slots__*." msgstr "" +"Les assignations de *__class__* ne fonctionnent que si les deux classes ont " +"le même *__slots__*." #: ../Doc/reference/datamodel.rst:1713 msgid "" @@ -2824,10 +3005,14 @@ msgid "" "only one parent is allowed to have attributes created by slots (the other " "bases must have empty slot layouts) - violations raise :exc:`TypeError`." msgstr "" +"L'héritage multiple avec plusieurs classes parentes qui ont des *__slots__* " +"est possible, mais seul un parent peut avoir des attributs créés par " +"*__slots__* (les autres classes parentes doivent avoir des *__slots__* " +"vides). La violation de cette règle lève :exc:`TypeError`." #: ../Doc/reference/datamodel.rst:1721 msgid "Customizing class creation" -msgstr "" +msgstr "Personnalisation de la création de classes" #: ../Doc/reference/datamodel.rst:1723 msgid "" @@ -2838,6 +3023,13 @@ msgid "" "``__init_subclass__`` solely applies to future subclasses of the class " "defining the method." msgstr "" +"Quand une classe hérite d'une classe parente, *__init_subclass__* de la " +"classe parente est appelée. Ainsi, il est possible d'écrire des classes qui " +"modifient le comportement des sous-classes. Ce comportement est corrélé aux " +"décorateurs de classes mais, alors que les décorateurs de classes agissent " +"seulement sur la classe qu'ils décorent, ``__init_subclass__`` agit " +"uniquement sur les futures sous-classes de la classe qui définit cette " +"méthode." #: ../Doc/reference/datamodel.rst:1732 msgid "" @@ -2845,6 +3037,9 @@ msgid "" "then the new subclass. If defined as a normal instance method, this method " "is implicitly converted to a class method." msgstr "" +"Cette méthode est appelée quand la classe est sous-classée. *cls* est alors " +"la nouvelle sous-classe. Si elle est définie en tant que méthode d'instance " +"normale, cette méthode est implicitement convertie en méthode de classe." #: ../Doc/reference/datamodel.rst:1736 msgid "" @@ -2853,12 +3048,19 @@ msgid "" "``__init_subclass__``, one should take out the needed keyword arguments and " "pass the others over to the base class, as in::" msgstr "" +"Les arguments nommés qui sont donnés à la nouvelle classe sont passés à " +"``__init_subclass__`` de la classe parente. Par souci de compatibilité avec " +"les autres classes qui utilisent ``__init_subclass__``, vous devez enlevez " +"les arguments nommés dont vous avez besoin et passer les autres à la classe " +"de base, comme ci-dessous ::" #: ../Doc/reference/datamodel.rst:1750 msgid "" "The default implementation ``object.__init_subclass__`` does nothing, but " "raises an error if it is called with any arguments." msgstr "" +"L'implémentation par défaut ``object.__init_subclass__`` ne fait rien mais " +"lève une erreur si elle est appelée avec un argument." #: ../Doc/reference/datamodel.rst:1755 msgid "" @@ -2867,10 +3069,14 @@ msgid "" "actual metaclass (rather than the explicit hint) can be accessed as " "``type(cls)``." msgstr "" +"L'indication de méta-classe ``metaclass`` est absorbée par le reste du " +"mécanisme de types et n'est jamais passée à l'implémentation de " +"``__init_subclass__``. La méta-classe réelle (plutôt que l'indication " +"explicite) peut être récupérée par ``type(cls)``." #: ../Doc/reference/datamodel.rst:1766 msgid "Metaclasses" -msgstr "" +msgstr "Méta-classes" #: ../Doc/reference/datamodel.rst:1772 msgid "" @@ -2878,6 +3084,9 @@ msgid "" "executed in a new namespace and the class name is bound locally to the " "result of ``type(name, bases, namespace)``." msgstr "" +"Par défaut, les classes sont construites en utilisant :func:`type`. Le corps " +"de la classe est exécuté dans un nouvel espace de noms et le nom de la " +"classe est lié localement au résultat de `type(name, bases, namespace)``." #: ../Doc/reference/datamodel.rst:1776 msgid "" @@ -2886,58 +3095,76 @@ msgid "" "existing class that included such an argument. In the following example, " "both ``MyClass`` and ``MySubclass`` are instances of ``Meta``::" msgstr "" +"Le déroulement de création de la classe peut être personnalisé en passant " +"l'argument nommé ``metaclass`` dans la ligne de définition de la classe ou " +"en héritant d'une classe existante qui comporte déjà un tel argument. Dans " +"l'exemple qui suit, ``MyClass`` et ``MySubclass`` sont des instances de " +"``Meta`` ::" #: ../Doc/reference/datamodel.rst:1790 msgid "" "Any other keyword arguments that are specified in the class definition are " "passed through to all metaclass operations described below." msgstr "" +"Tout autre argument nommé spécifié dans la définition de la classe est passé " +"aux opérations de méta-classes décrites auparavant." #: ../Doc/reference/datamodel.rst:1793 msgid "When a class definition is executed, the following steps occur:" msgstr "" +"Quand la définition d'une classe est exécutée, les différentes étapes " +"suivies sont :" #: ../Doc/reference/datamodel.rst:1795 msgid "the appropriate metaclass is determined" -msgstr "" +msgstr "la méta-classe appropriée est déterminée ;" #: ../Doc/reference/datamodel.rst:1796 msgid "the class namespace is prepared" -msgstr "" +msgstr "l'espace de noms de la classe est préparé ;" #: ../Doc/reference/datamodel.rst:1797 msgid "the class body is executed" -msgstr "" +msgstr "le corps de la classe est exécuté ;" #: ../Doc/reference/datamodel.rst:1798 msgid "the class object is created" -msgstr "" +msgstr "l'objet classe est crée." #: ../Doc/reference/datamodel.rst:1801 msgid "Determining the appropriate metaclass" -msgstr "" +msgstr "Détermination de la méta-classe appropriée" #: ../Doc/reference/datamodel.rst:1805 msgid "" "The appropriate metaclass for a class definition is determined as follows:" msgstr "" +"La méta-classe appropriée pour une définition de classe est déterminée de la " +"manière suivante :" #: ../Doc/reference/datamodel.rst:1807 msgid "" "if no bases and no explicit metaclass are given, then :func:`type` is used" msgstr "" +"si aucune classe et aucune méta-classe n'est donnée, alors :func:`type` est " +"utilisée ;" #: ../Doc/reference/datamodel.rst:1808 msgid "" "if an explicit metaclass is given and it is *not* an instance of :func:" "`type`, then it is used directly as the metaclass" msgstr "" +"si une méta-classe explicite est donnée et que *ce n'est pas* une instance " +"de :func:`type`, alors elle est utilisée directement en tant que méta-" +"classe ;" #: ../Doc/reference/datamodel.rst:1810 msgid "" "if an instance of :func:`type` is given as the explicit metaclass, or bases " "are defined, then the most derived metaclass is used" msgstr "" +"Si une instance de :func:`type` est donnée comme méta-classe explicite ou si " +"*bases* est définie, alors la méta-classe la plus dérivée est utilisée." #: ../Doc/reference/datamodel.rst:1813 msgid "" @@ -2947,10 +3174,16 @@ msgid "" "of these candidate metaclasses. If none of the candidate metaclasses meets " "that criterion, then the class definition will fail with ``TypeError``." msgstr "" +"La méta-classe la plus dérivée est choisie à partir des méta-classes " +"explicitement spécifiées (s'il y en a) et les méta-classes (c'est-à-dire les " +"``type(cls)``) de toutes les classes de base spécifiées. La méta-classe la " +"plus dérivée est celle qui est un sous-type de *toutes* ces méta-classes " +"candidates. Si aucune des méta-classes candidates ne remplit ce critère, " +"alors la définition de la classe échoue en levant ``TypeError``." #: ../Doc/reference/datamodel.rst:1823 msgid "Preparing the class namespace" -msgstr "" +msgstr "Préparation de l'espace de noms de la classe" #: ../Doc/reference/datamodel.rst:1828 msgid "" @@ -2959,24 +3192,33 @@ msgid "" "as ``namespace = metaclass.__prepare__(name, bases, **kwds)`` (where the " "additional keyword arguments, if any, come from the class definition)." msgstr "" +"Une fois que la méta-classe appropriée est identifiée, l'espace de noms de " +"la classe est préparé. Si la méta-classe possède un attribut " +"``__prepare__``, il est appelé avec ``namespace = metaclass." +"__prepare__(name, bases, **kwds)`` (où les arguments nommés supplémentaires, " +"s'il y en a, viennent de la définition de la classe)." #: ../Doc/reference/datamodel.rst:1833 msgid "" "If the metaclass has no ``__prepare__`` attribute, then the class namespace " "is initialised as an empty ordered mapping." msgstr "" +"Si la méta-classe ne possède pas d'attribut ``__prepare__``, alors l'espace " +"de noms de la classe est initialisé en tant que tableau de correspondances " +"ordonné." #: ../Doc/reference/datamodel.rst:1838 msgid ":pep:`3115` - Metaclasses in Python 3000" -msgstr "" +msgstr ":pep:`3115` - Méta-classes dans Python 3000" #: ../Doc/reference/datamodel.rst:1839 msgid "Introduced the ``__prepare__`` namespace hook" msgstr "" +"introduction de la fonction automatique ``__prepare__`` de l'espace de noms" #: ../Doc/reference/datamodel.rst:1843 msgid "Executing the class body" -msgstr "" +msgstr "Exécution du corps de la classe" #: ../Doc/reference/datamodel.rst:1848 msgid "" @@ -2986,6 +3228,12 @@ msgid "" "names from the current and outer scopes when the class definition occurs " "inside a function." msgstr "" +"Le corps de la classe est exécuté (approximativement) avec ``exec(body, " +"globals(), namespace)``. La principale différence avec un appel normal à :" +"func:`exec` est que la portée lexicale autorise le corps de la classe (y " +"compris les méthodes) à faire référence aux noms de la portée courante et " +"des portées externes lorsque la définition de classe a lieu dans une " +"fonction." #: ../Doc/reference/datamodel.rst:1854 msgid "" @@ -2995,10 +3243,16 @@ msgid "" "class methods, or through the implicit lexically scoped ``__class__`` " "reference described in the next section." msgstr "" +"Cependant, même quand une définition de classe intervient dans une fonction, " +"les méthodes définies à l'intérieur de la classe ne peuvent pas voir les " +"noms définis en dehors de la portée de la classe. On accède aux variables de " +"la classe *via* le premier paramètre des méthodes d'instance ou de classe, " +"ou *via* la référence implicite ``__class__`` incluse dans la portée " +"lexicale et décrite dans la section suivante." #: ../Doc/reference/datamodel.rst:1863 msgid "Creating the class object" -msgstr "" +msgstr "Création de l'objet classe" #: ../Doc/reference/datamodel.rst:1870 msgid "" @@ -3007,6 +3261,10 @@ msgid "" "**kwds)`` (the additional keywords passed here are the same as those passed " "to ``__prepare__``)." msgstr "" +"Quand l'espace de noms a été rempli en exécutant le corps de la classe, " +"l'objet classe est créé en appelant ``metaclass(name, bases, namespace, " +"**kwds)`` (les arguments nommés supplémentaires passés ici sont les mêmes " +"que ceux passés à ``__prepare__``)." #: ../Doc/reference/datamodel.rst:1875 msgid "" @@ -3018,6 +3276,14 @@ msgid "" "scoping, while the class or instance that was used to make the current call " "is identified based on the first argument passed to the method." msgstr "" +"Cet objet classe est celui qui est référencé par la forme sans argument de :" +"func:`super`. ``__class__`` est une référence implicite créée par le " +"compilateur si une méthode du corps de la classe fait référence soit à " +"``__class__``, soit à ``super``. Ceci permet que la forme sans argument de :" +"func:`super` identifie la classe en cours de définition en fonction de la " +"portée lexicale, tandis que la classe ou l'instance utilisée pour effectuer " +"l'appel en cours est identifiée en fonction du premier argument transmis à " +"la méthode." #: ../Doc/reference/datamodel.rst:1885 msgid "" @@ -3028,6 +3294,12 @@ msgid "" "`DeprecationWarning` in Python 3.6, and a :exc:`RuntimeWarning` in the " "future." msgstr "" +"Dans CPython 3.6 et suivants, la cellule ``__class__`` est passée à la méta-" +"classe en tant qu'entrée ``__classcell__`` dans l'espace de noms de la " +"classe. Si elle est présente, elle doit être propagée à l'appel ``type .__ " +"new__`` pour que la classe soit correctement initialisée. Ne pas le faire se " +"traduit par un avertissement :exc:`DeprecationWarning` dans Python 3.6 et " +"un :exc:`RuntimeWarning` dans le futur." #: ../Doc/reference/datamodel.rst:1892 msgid "" @@ -3035,24 +3307,35 @@ msgid "" "ultimately calls ``type.__new__``, the following additional customisation " "steps are invoked after creating the class object:" msgstr "" +"Quand vous utilisez la méta-classe par défaut :class:`type` ou toute autre " +"méta-classe qui finit par appeler ``type.__new__``, les étapes de " +"personnalisation supplémentaires suivantes sont suivies après la création de " +"l'objet classe :" #: ../Doc/reference/datamodel.rst:1896 msgid "" "first, ``type.__new__`` collects all of the descriptors in the class " "namespace that define a :meth:`~object.__set_name__` method;" msgstr "" +"d'abord, ``type.__new__`` récupère, dans l'espace de noms de la classe, tous " +"les descripteurs qui définissent une méthode :meth:`~object.__set_name__` ;" #: ../Doc/reference/datamodel.rst:1898 msgid "" "second, all of these ``__set_name__`` methods are called with the class " "being defined and the assigned name of that particular descriptor; and" msgstr "" +"ensuite, toutes ces méthodes ``__set_name__`` sont appelées avec la classe " +"en cours de définition et le nom assigné à chaque descripteur ;" #: ../Doc/reference/datamodel.rst:1900 msgid "" "finally, the :meth:`~object.__init_subclass__` hook is called on the " "immediate parent of the new class in its method resolution order." msgstr "" +"finalement, la méthode automatique :meth:`~object.__init_subclass__` est " +"appelée sur le parent immédiat de la nouvelle classe en utilisant l'ordre de " +"résolution des méthodes." #: ../Doc/reference/datamodel.rst:1903 msgid "" @@ -3060,6 +3343,10 @@ msgid "" "included in the class definition (if any) and the resulting object is bound " "in the local namespace as the defined class." msgstr "" +"Après la création de l'objet classe, il est passé aux décorateurs de la " +"classe, y compris ceux inclus dans la définition de la classe (s'il y en a) " +"et l'objet résultant est lié à l'espace de noms local en tant que classe " +"définie." #: ../Doc/reference/datamodel.rst:1907 msgid "" @@ -3068,18 +3355,25 @@ msgid "" "object is discarded. The new copy is wrapped in a read-only proxy, which " "becomes the :attr:`~object.__dict__` attribute of the class object." msgstr "" +"Quand une nouvelle classe est créée *via* ``type.__new__``, l'objet fourni " +"en tant que paramètre d'espace de noms est copié vers un nouveau tableau de " +"correspondances ordonné et l'objet original est laissé de côté. La nouvelle " +"copie est encapsulée dans un mandataire en lecture seule qui devient " +"l'attribut :attr:`~object.__dict__` de l'objet classe." #: ../Doc/reference/datamodel.rst:1914 msgid ":pep:`3135` - New super" -msgstr "" +msgstr ":pep:`3135` - nouvelle méthode super" #: ../Doc/reference/datamodel.rst:1915 msgid "Describes the implicit ``__class__`` closure reference" msgstr "" +"Décrit la référence à la fermeture (*closure* en anglais) de la " +"``__class__`` implicite" #: ../Doc/reference/datamodel.rst:1919 msgid "Metaclass example" -msgstr "" +msgstr "Exemple de méta-classe" #: ../Doc/reference/datamodel.rst:1921 msgid "" @@ -3088,12 +3382,20 @@ msgid "" "automatic property creation, proxies, frameworks, and automatic resource " "locking/synchronization." msgstr "" +"Les utilisations possibles des méta-classes sont immenses. Quelques pistes " +"ont déjà été explorées comme l'énumération, la gestion des traces, le " +"contrôle des interfaces, la délégation automatique, la création automatique " +"de propriétés, les mandataires, les cadriciels (*frameworks* en anglais) " +"ainsi que le verrouillage ou la synchronisation automatique de ressources." #: ../Doc/reference/datamodel.rst:1926 msgid "" "Here is an example of a metaclass that uses an :class:`collections." "OrderedDict` to remember the order that class variables are defined::" msgstr "" +"Voici un exemple de méta-classe qui utilise une :class:`collections." +"OrderedDict` pour mémoriser l'ordre dans lequel les variables de classe sont " +"définies ::" #: ../Doc/reference/datamodel.rst:1949 msgid "" @@ -3106,16 +3408,27 @@ msgid "" "That method builds the new type and it saves the ordered dictionary keys in " "an attribute called ``members``." msgstr "" +"Quand la définition de la classe *A* s'exécute, le processus commence par " +"appeler la méthode :meth:`__prepare__` de la méta-classe qui renvoie un :" +"class:`collections.OrderedDict` vide. Ce tableau de correspondances " +"enregistre les méthodes et attributs de *A* au fur et à mesure de leurs " +"définitions dans les instructions du corps de la classe. Une fois que ces " +"définitions ont été exécutées, le dictionnaire ordonné est complètement " +"peuplé et la méthode :meth:`__new__` de la méta-classe est appelée. Cette " +"méthode construit un nouveau type et sauve les clés du dictionnaire ordonné " +"dans un attribut appelé ``members``." #: ../Doc/reference/datamodel.rst:1960 msgid "Customizing instance and subclass checks" -msgstr "" +msgstr "Personnalisation des instances et vérification des sous-classes" #: ../Doc/reference/datamodel.rst:1962 msgid "" "The following methods are used to override the default behavior of the :func:" "`isinstance` and :func:`issubclass` built-in functions." msgstr "" +"Les méthodes suivantes sont utilisées pour surcharger le comportement par " +"défaut des fonctions natives :func:`isinstance` et :func:`issubclass`." #: ../Doc/reference/datamodel.rst:1965 msgid "" @@ -3124,6 +3437,10 @@ msgid "" "base classes\" to any class or type (including built-in types), including " "other ABCs." msgstr "" +"En particulier, la méta-classe :class:`abc.ABCMeta` implemente ces méthodes " +"pour autoriser l'ajout de classes de base abstraites (ABC pour *Abstract " +"Base Classes* en anglais) en tant que \"classes de base virtuelles\" pour " +"toute classe ou type (y compris les types natifs)." #: ../Doc/reference/datamodel.rst:1972 msgid "" @@ -3131,6 +3448,9 @@ msgid "" "instance of *class*. If defined, called to implement ``isinstance(instance, " "class)``." msgstr "" +"Renvoie ``True`` si *instance* doit être considérée comme une instance " +"(directe ou indirecte) de *class*. Si elle est définie, est elle appelée " +"pour implémenter ``isinstance(instance, class)``." #: ../Doc/reference/datamodel.rst:1979 msgid "" @@ -3138,6 +3458,9 @@ msgid "" "subclass of *class*. If defined, called to implement ``issubclass(subclass, " "class)``." msgstr "" +"Renvoie ``True`` si *subclass* doit être considérée comme une sous-classe " +"(directe ou indirecte) de *class*. Si elle est définie, appelée pour " +"implémenter ``issubclass(subclass, class)``." #: ../Doc/reference/datamodel.rst:1984 msgid "" @@ -3146,10 +3469,15 @@ msgid "" "consistent with the lookup of special methods that are called on instances, " "only in this case the instance is itself a class." msgstr "" +"Notez que ces méthodes sont recherchées dans le type (la méta-classe) d'une " +"classe. Elles ne peuvent pas être définies en tant que méthodes de classe " +"dans la classe réelle. C'est cohérent avec la recherche des méthodes " +"spéciales qui sont appelées pour les instances, sauf qu'ici l'instance est " +"elle-même une classe." #: ../Doc/reference/datamodel.rst:1995 msgid ":pep:`3119` - Introducing Abstract Base Classes" -msgstr "" +msgstr ":pep:`3119` - Introduction aux classes de bases abstraites" #: ../Doc/reference/datamodel.rst:1992 msgid "" @@ -3159,10 +3487,15 @@ msgid "" "context of adding Abstract Base Classes (see the :mod:`abc` module) to the " "language." msgstr "" +"Inclut la spécification pour la personnalisation du comportement de :func:" +"`isinstance` et :func:`issubclass` à travers :meth:`~class." +"__instancecheck__` et :meth:`~class.__subclasscheck__`, avec comme " +"motivation pour cette fonctionnalité l'ajout les classes de base abstraites " +"(voir le module :mod:`abc`) au langage." #: ../Doc/reference/datamodel.rst:2002 msgid "Emulating callable objects" -msgstr "" +msgstr "Émulation d'objets appelables" #: ../Doc/reference/datamodel.rst:2009 msgid "" @@ -3170,10 +3503,13 @@ msgid "" "defined, ``x(arg1, arg2, ...)`` is a shorthand for ``x.__call__(arg1, " "arg2, ...)``." msgstr "" +"Appelée quand l'instance est \"appelée\" en tant que fonction ; si la " +"méthode est définie, ``x(arg1, arg2, ...)`` est un raccourci pour ``x." +"__call__(arg1, arg2, ...)``." #: ../Doc/reference/datamodel.rst:2016 msgid "Emulating container types" -msgstr "" +msgstr "Émulation de types conteneurs" #: ../Doc/reference/datamodel.rst:2018 msgid "" @@ -3207,6 +3543,40 @@ msgid "" "`__iter__` should be the same as :meth:`keys`; for sequences, it should " "iterate through the values." msgstr "" +"Les fonctions suivantes peuvent être définies pour implémenter des objets " +"conteneurs. Les conteneurs sont habituellement des séquences (telles que les " +"tuples ou les listes) ou des tableaux de correspondances (comme les " +"dictionnaires), mais ils peuvent aussi représenter d'autres conteneurs. Le " +"premier ensemble de méthodes est utilisé soit pour émuler une séquence, soit " +"pour émuler un tableau de correspondances ; la différence est que, pour une " +"séquence, les clés doivent être soit des entiers *k* tels que ``0 <= k < N`` " +"où *N* est la longueur de la séquence, soit des objets tranches qui " +"définissent un intervalle d'éléments. Il est aussi recommandé que les " +"tableaux de correspondances fournissent les méthodes :meth:`keys`, :meth:" +"`values`, :meth:`items`, :meth:`get`, :meth:`clear`, :meth:`setdefault`, :" +"meth:`pop`, :meth:`popitem`, :meth:`!copy` et :meth:`update` avec un " +"comportement similaire aux objets dictionnaires standards de Python. Le " +"module :mod:`collections` fournit une classe de base abstraite :class:" +"`~collections.abc.MutableMapping` pour aider à la création de ces méthodes à " +"partir d'un ensemble de base composé de :meth:`__getitem__`, :meth:" +"`__setitem__`, :meth:`__delitem__` et :meth:`keys`. Les séquences muables " +"doivent fournir les méthodes :meth:`append`, :meth:`count`, :meth:`index`, :" +"meth:`extend`, :meth:`insert`, :meth:`pop`, :meth:`remove`, :meth:`reverse` " +"et :meth:`sort`, comme les objets listes standards de Python. Enfin, les " +"types séquences doivent implémenter l'addition (dans le sens de la " +"concaténation) et la multiplication (dans le sens de la répétition) en " +"définissant les méthodes :meth:`__add__`, :meth:`__radd__`, :meth:" +"`__iadd__`, :meth:`__mul__`, :meth:`__rmul__` et :meth:`__imul__` décrites " +"ci-dessous ; ils ne doivent pas définir d'autres opérateurs numériques. Il " +"est recommandé que les tableaux de correspondances et les séquences " +"implémentent la méthode :meth:`__contains__` pour permettre l'utilisation " +"efficace de l'opérateur ``in`` ; concernant les tableaux de correspondances, " +"``in`` doit rechercher dans les clés du tableau ; pour les séquences, il " +"doit chercher dans les valeurs. Il est de plus recommandé que les tableaux " +"de correspondances et les séquences implémentent la méthode :meth:`__iter__` " +"pour permettre une itération efficace dans le conteneur ; pour les tableaux " +"de correspondances, :meth:`__iter__` doit être la même que :meth:`keys` ; " +"pour les séquences, elle doit itérer sur les valeurs." #: ../Doc/reference/datamodel.rst:2053 msgid "" @@ -3215,6 +3585,10 @@ msgid "" "define a :meth:`__bool__` method and whose :meth:`__len__` method returns " "zero is considered to be false in a Boolean context." msgstr "" +"Appelée pour implémenter la fonction native :func:`len`. Elle doit renvoyer " +"la longueur de l'objet, un entier ``>=`` 0. Par ailleurs, un objet qui ne " +"définit pas de méthode :meth:`__bool__` et dont la méthode :meth:`__len__` " +"renvoie zéro est considéré comme valant ``False`` dans un contexte booléen." #: ../Doc/reference/datamodel.rst:2060 msgid "" @@ -3224,6 +3598,11 @@ msgid "" "OverflowError` by truth value testing, an object must define a :meth:" "`__bool__` method." msgstr "" +"En CPython, la longueur doit valoir au maximum :attr:`sys.maxsize`. Si la " +"longueur est plus grande que :attr:`!sys.maxsize`, des propriétés (telles " +"que :func:`len`) peuvent lever :exc:`OverflowError`. Afin d'éviter de lever :" +"exc:`!OverflowError` lors de tests booléens, un objet doit définir la " +"méthode :meth:`__bool__`." #: ../Doc/reference/datamodel.rst:2069 msgid "" @@ -3232,19 +3611,26 @@ msgid "" "The length must be an integer ``>=`` 0. This method is purely an " "optimization and is never required for correctness." msgstr "" +"Appelée pour implémenter :func:`operator.length_hint`. Elle doit renvoyer " +"une longueur estimée de l'objet (qui peut être plus grande ou plus petite " +"que la longueur réelle). La longueur doit être un entier ``>=`` 0. Cette " +"méthode est utilisée uniquement pour optimiser les traitements et n'est " +"jamais tenue de renvoyer un résultat exact." #: ../Doc/reference/datamodel.rst:2079 msgid "" "Slicing is done exclusively with the following three methods. A call like ::" msgstr "" +"Le découpage est effectué uniquement à l'aide des trois méthodes suivantes. " +"Un appel comme ::" #: ../Doc/reference/datamodel.rst:2083 msgid "is translated to ::" -msgstr "" +msgstr "est traduit en ::" #: ../Doc/reference/datamodel.rst:2087 msgid "and so forth. Missing slice items are always filled in with ``None``." -msgstr "" +msgstr "et ainsi de suite. Les éléments manquants sont remplacés par ``None``." #: ../Doc/reference/datamodel.rst:2094 msgid "" @@ -3257,18 +3643,32 @@ msgid "" "negative values), :exc:`IndexError` should be raised. For mapping types, if " "*key* is missing (not in the container), :exc:`KeyError` should be raised." msgstr "" +"Appelée pour implémenter l'évaluation de ``self[key]``. Pour les types " +"séquences, les clés autorisées sont les entiers et les objets tranches " +"(*slice*). Notez que l'interprétation spéciale des indices négatifs (si la " +"classe souhaite émuler un type séquence) est du ressort de la méthode :meth:" +"`__getitem__`. Si *key* n'est pas du bon type, une :exc:`TypeError` peut " +"être levée ; si la valeur est en dehors de l'ensemble des indices de la " +"séquence (après interprétation éventuelle des valeurs négatives), une :exc:" +"`IndexError` doit être levée. Pour les tableaux de correspondances, si *key* " +"n'existe pas dans le conteneur, une :exc:`KeyError` doit être levée." #: ../Doc/reference/datamodel.rst:2105 msgid "" ":keyword:`for` loops expect that an :exc:`IndexError` will be raised for " "illegal indexes to allow proper detection of the end of the sequence." msgstr "" +":keyword:`for` s'attend à ce qu'une :exc:`IndexError` soit levée en cas " +"d'indice illégal afin de détecter correctement la fin de la séquence." #: ../Doc/reference/datamodel.rst:2111 msgid "" "Called by :class:`dict`\\ .\\ :meth:`__getitem__` to implement ``self[key]`` " "for dict subclasses when key is not in the dictionary." msgstr "" +"Appelée par :class:`dict`\\ .\\ :meth:`__getitem__` pour implémenter " +"``self[key]`` dans les sous-classes de dictionnaires lorsque la clé n'est " +"pas dans le dictionnaire." #: ../Doc/reference/datamodel.rst:2117 msgid "" @@ -3278,6 +3678,13 @@ msgid "" "sequences if elements can be replaced. The same exceptions should be raised " "for improper *key* values as for the :meth:`__getitem__` method." msgstr "" +"Appelée pour implémenter l'assignation à ``self[key]``. La même note que " +"pour :meth:`__getitem__` s'applique. Elle ne doit être implémentée que pour " +"les tableaux de correspondances qui autorisent les modifications de valeurs " +"des clés, ceux pour lesquels on peut ajouter de nouvelles clés ou, pour les " +"séquences, celles dont les éléments peuvent être remplacés. Les mêmes " +"exceptions que pour la méthode :meth:`__getitem__` doivent être levées en " +"cas de mauvaises valeurs de clés." #: ../Doc/reference/datamodel.rst:2126 msgid "" @@ -3287,6 +3694,12 @@ msgid "" "the sequence. The same exceptions should be raised for improper *key* " "values as for the :meth:`__getitem__` method." msgstr "" +"Appelée pour implémenter la suppression de ``self[key]``. La même note que " +"pour :meth:`__getitem__` s'applique. Elle ne doit être implémentée que pour " +"les tableaux de correspondances qui autorisent les suppression de clés ou " +"pour les séquences dont les éléments peuvent être supprimés de la séquence. " +"Les mêmes exceptions que pour la méthode :meth:`__getitem__` doivent être " +"levées en cas de mauvaises valeurs de clés." #: ../Doc/reference/datamodel.rst:2135 msgid "" @@ -3295,6 +3708,10 @@ msgid "" "objects in the container. For mappings, it should iterate over the keys of " "the container." msgstr "" +"Cette méthode est appelée quand un itérateur est requis pour un conteneur. " +"Cette méthode doit renvoyer un nouvel objet itérateur qui peut itérer sur " +"tous les objets du conteneur. Pour les tableaux de correspondances, elle " +"doit itérer sur les clés du conteneur." #: ../Doc/reference/datamodel.rst:2139 msgid "" @@ -3302,6 +3719,9 @@ msgid "" "return themselves. For more information on iterator objects, see :ref:" "`typeiter`." msgstr "" +"Les objets itérateurs doivent aussi implémenter cette méthode ; ils doivent " +"alors se renvoyer eux-mêmes. Pour plus d'information sur les objets " +"itérateurs, lisez :ref:`typeiter`." #: ../Doc/reference/datamodel.rst:2145 msgid "" @@ -3309,6 +3729,9 @@ msgid "" "iteration. It should return a new iterator object that iterates over all " "the objects in the container in reverse order." msgstr "" +"Appelée (si elle existe) par la fonction native :func:`reversed` pour " +"implémenter l'itération en sens inverse. Elle doit renvoyer un nouvel objet " +"itérateur qui itère sur tous les objets du conteneur en sens inverse." #: ../Doc/reference/datamodel.rst:2149 msgid "" @@ -3318,6 +3741,11 @@ msgid "" "provide :meth:`__reversed__` if they can provide an implementation that is " "more efficient than the one provided by :func:`reversed`." msgstr "" +"Si la méthode :meth:`__reversed__` n'est pas fournie, la fonction native :" +"func:`reversed` se replie sur le protocole de séquence (:meth:`__len__` and :" +"meth:`__getitem__`). Les objets qui connaissent le protocole de séquence ne " +"doivent fournir :meth:`__reversed__` que si l'implémentation qu'ils " +"proposent est plus efficace que celle de :func:`reversed`." #: ../Doc/reference/datamodel.rst:2156 msgid "" @@ -3326,6 +3754,11 @@ msgid "" "objects can supply the following special method with a more efficient " "implementation, which also does not require the object be a sequence." msgstr "" +"Les opérateurs de tests d'appartenance (:keyword:`in` and :keyword:`not in`) " +"sont normalement implémentés comme des itérations sur la séquence. " +"Cependant, les objets conteneurs peuvent fournir les méthodes spéciales " +"suivantes avec une implémentation plus efficace, qui ne requièrent " +"d'ailleurs pas que l'objet soit une séquence. " #: ../Doc/reference/datamodel.rst:2163 msgid "" @@ -3333,6 +3766,10 @@ msgid "" "is in *self*, false otherwise. For mapping objects, this should consider " "the keys of the mapping rather than the values or the key-item pairs." msgstr "" +"Appelée pour implémenter les opérateurs de test d'appartenance. Elle doit " +"renvoyer ``True`` si *item* est dans *self* et ``False`` sinon. Pour les " +"tableaux de correspondances, seules les clés sont considérées (pas les " +"valeurs des paires clés-valeurs)." #: ../Doc/reference/datamodel.rst:2167 msgid "" @@ -3341,10 +3778,15 @@ msgid "" "protocol via :meth:`__getitem__`, see :ref:`this section in the language " "reference `." msgstr "" +"Pour les objets qui ne définissent pas :meth:`__contains__`, les tests " +"d'appartenance essaient d'abord d'itérer avec :meth:`__iter__` puis avec le " +"vieux protocole d'itération sur les séquences *via* :meth:`__getitem__`, " +"reportez-vous à :ref:`cette section dans la référence du langage `." #: ../Doc/reference/datamodel.rst:2176 msgid "Emulating numeric types" -msgstr "" +msgstr "Émulation de types numériques" #: ../Doc/reference/datamodel.rst:2178 msgid "" @@ -3353,6 +3795,11 @@ msgid "" "number implemented (e.g., bitwise operations for non-integral numbers) " "should be left undefined." msgstr "" +"Les méthodes suivantes peuvent être définies pour émuler des objets " +"numériques. Les méthodes correspondant à des opérations qui ne sont pas " +"autorisées pour la catégorie de nombres considérée (par exemple, les " +"opérations bit à bit pour les nombres qui ne sont pas entiers) doivent être " +"laissées indéfinies." #: ../Doc/reference/datamodel.rst:2204 msgid "" @@ -3366,12 +3813,24 @@ msgid "" "should be defined to accept an optional third argument if the ternary " "version of the built-in :func:`pow` function is to be supported." msgstr "" +"Ces méthodes sont appelées pour implémenter les opérations arithmétiques " +"binaires (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :" +"func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``). Par exemple, pour " +"évaluer l'expression ``x + y``, où *x* est une instance d'une classe qui " +"possède une méthode :meth:`__add__`, ``x.__add__(y)`` est appelée. La " +"méthode :meth:`__divmod__` doit être l'équivalent d'appeler :meth:" +"`__floordiv__` et :meth:`__mod__`; elle ne doit pas être reliée à :meth:" +"`__truediv__`. Notez que :meth:`__pow__` doit être définie de manière à " +"accepter un troisième argument optionnel si la version ternaire de la " +"fonction native :func:`pow` est autorisée." #: ../Doc/reference/datamodel.rst:2215 msgid "" "If one of those methods does not support the operation with the supplied " "arguments, it should return ``NotImplemented``." msgstr "" +"Si l'une de ces méthodes n'autorise pas l'opération avec les arguments " +"donnés, elle doit renvoyer ``NotImplemented``." #: ../Doc/reference/datamodel.rst:2238 msgid "" @@ -3384,12 +3843,23 @@ msgid "" "an instance of a class that has an :meth:`__rsub__` method, ``y." "__rsub__(x)`` is called if ``x.__sub__(y)`` returns *NotImplemented*." msgstr "" +"Ces méthodes sont appelées pour implémenter les opérations arithmétiques " +"binaires (``+``, ``-``, ``*``, ``@``, ``/``, ``//``, ``%``, :func:`divmod`, :" +"func:`pow`, ``**``, ``<<``, ``>>``, ``&``, ``^``, ``|``) avec des opérandes " +"renversés (intervertis). Ces fonctions ne sont appelées que si l'opérande de " +"gauche n'autorise pas l'opération correspondante [#]_ et si les opérandes " +"sont de types différents [#]_. Par exemple, pour évaluer l'expression ``x - " +"y``, où *y* est une instance d'une classe qui possède une méthode :meth:" +"`__rsub__`, ``y.__rsub__(x)`` est appelée si ``x.__sub__(y)`` renvoie " +"*NotImplemented*." #: ../Doc/reference/datamodel.rst:2249 msgid "" "Note that ternary :func:`pow` will not try calling :meth:`__rpow__` (the " "coercion rules would become too complicated)." msgstr "" +"Notez que la fonction ternaire :func:`pow` n'essaie pas d'appeler :meth:" +"`__rpow__` (les règles de coercition seraient trop compliquées)." #: ../Doc/reference/datamodel.rst:2254 msgid "" @@ -3398,6 +3868,11 @@ msgid "" "will be called before the left operand's non-reflected method. This " "behavior allows subclasses to override their ancestors' operations." msgstr "" +"Si le type de l'opérande de droite est une sous-classe du type de l'opérande " +"de gauche et que cette sous-classe fournit la méthode symétrique pour " +"l'opération, cette méthode sera appelée avant la méthode originelle de " +"l'opérande gauche. Ce comportement permet à des sous-classes de surcharger " +"les opérations de leurs ancêtres." #: ../Doc/reference/datamodel.rst:2274 msgid "" @@ -3414,18 +3889,35 @@ msgid "" "(see :ref:`faq-augmented-assignment-tuple-error`), but this behavior is in " "fact part of the data model." msgstr "" +"Ces méthodes sont appelées pour implémenter les assignations arithmétiques " +"augmentées (``+=``, ``-=``, ``*=``, ``@=``, ``/=``, ``//=``, ``%=``, " +"``**=``, ``<<=``, ``>>=``, ``&=``, ``^=``, ``|=``). Ces méthodes doivent " +"essayer d'effectuer l'opération \"sur place\" (c'est-à-dire de modifier " +"*self*) et de renvoyer le résultat (qui peut être, mais pas nécessairement, " +"*self*). Si une méthode spécifique n'est pas définie, l'assignation " +"augmentée se replie vers la méthode normale correspondante. Par exemple, si " +"*x* est une instance d'une classe qui possède une méthode :meth:`__iadd__`, " +"``x += y`` est équivalent à ``x = x.__iadd__(y)`` . Sinon, ``x.__add__(y)`` " +"et ``y.__radd__(x)`` sont essayées, comme pour l'évaluation de ``x + y``. " +"Dans certaines situations, les assignations augmentées peuvent causer des " +"erreurs inattendues (voir :ref:`faq-augmented-assignment-tuple-error`), mais " +"ce comportement est en fait partie intégrante du modèle de données." #: ../Doc/reference/datamodel.rst:2295 msgid "" "Called to implement the unary arithmetic operations (``-``, ``+``, :func:" "`abs` and ``~``)." msgstr "" +"Appelée pour implémenter les opérations arithmétiques unaires (``-``, ``" +"+``, :func:`abs` and ``~``)." #: ../Doc/reference/datamodel.rst:2308 msgid "" "Called to implement the built-in functions :func:`complex`, :func:`int` and :" "func:`float`. Should return a value of the appropriate type." msgstr "" +"Appelées pour implémenter les fonctions natives :func:`complex`, :func:`int` " +"et :func:`float`. Elles doivent renvoyer une valeur du type approprié." #: ../Doc/reference/datamodel.rst:2315 msgid "" @@ -3435,6 +3927,11 @@ msgid "" "functions). Presence of this method indicates that the numeric object is an " "integer type. Must return an integer." msgstr "" +"Appelée pour implémenter :func:`operator.index` et lorsque Python a besoin " +"de convertir sans perte un objet numérique en objet entier (pour un " +"découpage ou dans les fonctions natives :func:`bin`, :func:`hex` et :func:" +"`oct`). La présence de cette méthode indique que l'objet numérique est un " +"type entier. Elle doit renvoyer un entier." #: ../Doc/reference/datamodel.rst:2323 msgid "" @@ -3442,6 +3939,9 @@ msgid "" "defined :meth:`__int__` should also be defined, and both should return the " "same value." msgstr "" +"Afin d'avoir un type de classe entier cohérent, lorsque :meth:`__index__` " +"est définie alors :meth:`__int__` doit aussi être définie et les deux " +"doivent renvoyer la même valeur." #: ../Doc/reference/datamodel.rst:2335 msgid "" @@ -3451,16 +3951,23 @@ msgid "" "return the value of the object truncated to an :class:`~numbers.Integral` " "(typically an :class:`int`)." msgstr "" +"Appelée pour implémenter la fonction native :func:`round` et les fonctions " +"du module :mod:`math` :func:`~math.trunc`, :func:`~math.floor` et :func:" +"`~math.ceil`. À moins que *ndigits* ne soit passé à :meth:`!__round__`, " +"toutes ces méthodes doivent renvoyer la valeur de l'objet tronquée pour " +"donner un :class:`~numbers.Integral` (typiquement un :class:`int`)." #: ../Doc/reference/datamodel.rst:2341 msgid "" "If :meth:`__int__` is not defined then the built-in function :func:`int` " "falls back to :meth:`__trunc__`." msgstr "" +"Si :meth:`__int__` n'est pas définie, alors la fonction native :func:`int` " +"se replie sur :meth:`__trunc__`." #: ../Doc/reference/datamodel.rst:2348 msgid "With Statement Context Managers" -msgstr "" +msgstr "Gestionnaire de contexte With" #: ../Doc/reference/datamodel.rst:2350 msgid "" @@ -3471,17 +3978,29 @@ msgid "" "using the :keyword:`with` statement (described in section :ref:`with`), but " "can also be used by directly invoking their methods." msgstr "" +"Un :dfn:`gestionnaire de contexte` est un objet qui met en place un contexte " +"prédéfini au moment de l'exécution de l'instruction :keyword:`with`. Le " +"gestionnaire de contexte gère l'entrée et la sortie de ce contexte " +"d'exécution pour tout un bloc de code. Les gestionnaires de contextes sont " +"normalement invoqués en utilisant une instruction :keyword:`with` (décrite " +"dans la section :ref:`with`), mais ils peuvent aussi être directement " +"invoqués par leurs méthodes." #: ../Doc/reference/datamodel.rst:2361 msgid "" "Typical uses of context managers include saving and restoring various kinds " "of global state, locking and unlocking resources, closing opened files, etc." msgstr "" +"Les utilisations classiques des gestionnaires de contexte sont la sauvegarde " +"et la restauration d'états divers, le verrouillage et le déverrouillage de " +"ressources, la fermeture de fichiers ouverts, etc." #: ../Doc/reference/datamodel.rst:2364 msgid "" "For more information on context managers, see :ref:`typecontextmanager`." msgstr "" +"Pour plus d'informations sur les gestionnaires de contexte, lisez :ref:" +"`typecontextmanager`." #: ../Doc/reference/datamodel.rst:2369 msgid "" @@ -3489,6 +4008,10 @@ msgid "" "statement will bind this method's return value to the target(s) specified in " "the :keyword:`as` clause of the statement, if any." msgstr "" +"Entre dans le contexte d'exécution relatif à cet objet. L'instruction :" +"keyword:`with` lie la valeur de retour de cette méthode à une (ou plusieurs) " +"cible spécifiée par la clause :keyword:`as` de l'instruction, si elle est " +"spécifiée." #: ../Doc/reference/datamodel.rst:2376 msgid "" @@ -3496,6 +4019,9 @@ msgid "" "exception that caused the context to be exited. If the context was exited " "without an exception, all three arguments will be :const:`None`." msgstr "" +"Sort du contexte d'exécution relatif à cet objet. Les paramètres décrivent " +"l'exception qui a causé la sortie du contexte. Si l'on sort du contexte sans " +"exception, les trois arguments sont à :const:`None`." #: ../Doc/reference/datamodel.rst:2380 msgid "" @@ -3504,26 +4030,34 @@ msgid "" "Otherwise, the exception will be processed normally upon exit from this " "method." msgstr "" +"Si une exception est indiquée et que la méthode souhaite supprimer " +"l'exception (c'est-à-dire qu'elle ne veut pas que l'exception soit " +"propagée), elle doit renvoyer ``True``. Sinon, l'exception est traitée " +"normalement à la sortie de cette méthode." #: ../Doc/reference/datamodel.rst:2384 msgid "" "Note that :meth:`__exit__` methods should not reraise the passed-in " "exception; this is the caller's responsibility." msgstr "" +"Notez qu'une méthode :meth:`__exit__` ne doit pas lever à nouveau " +"l'exception qu'elle reçoit ; c'est du ressort de l'appelant." #: ../Doc/reference/datamodel.rst:2391 msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - The \"with\" statement" +msgstr ":pep:`343` - L'instruction \"with\"" #: ../Doc/reference/datamodel.rst:2391 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." msgstr "" +"La spécification, les motivations et des exemples de l'instruction :keyword:" +"`with` en Python." #: ../Doc/reference/datamodel.rst:2398 msgid "Special method lookup" -msgstr "" +msgstr "Recherche des méthodes spéciales" #: ../Doc/reference/datamodel.rst:2400 msgid "" @@ -3532,6 +4066,10 @@ msgid "" "object's instance dictionary. That behaviour is the reason why the " "following code raises an exception::" msgstr "" +"Pour les classes définies par le développeur, l'invocation implicite de " +"méthodes spéciales n'est garantie que si ces méthodes sont définies par le " +"type d'objet, pas dans le dictionnaire de l'objet instance. Ce comportement " +"explique pourquoi le code suivant lève une exception ::" #: ../Doc/reference/datamodel.rst:2415 msgid "" @@ -3541,6 +4079,11 @@ msgid "" "used the conventional lookup process, they would fail when invoked on the " "type object itself::" msgstr "" +"La raison de ce comportement vient de certaines méthodes spéciales telles " +"que :meth:`__hash__` et :meth:`__repr__` qui sont implémentées par tous les " +"objets, y compris les objets types. Si la recherche effectuée par ces " +"méthodes utilisait le processus normal de recherche, elles ne " +"fonctionneraient pas si on les appelait sur l'objet type lui-même ::" #: ../Doc/reference/datamodel.rst:2428 msgid "" @@ -3548,6 +4091,9 @@ msgid "" "sometimes referred to as 'metaclass confusion', and is avoided by bypassing " "the instance when looking up special methods::" msgstr "" +"Essayer d'invoquer une méthode non liée d'une classe de cette manière est " +"parfois appelé \"confusion de méta-classe\" et se contourne en bipassant " +"l'instance lors de la recherche des méthodes spéciales ::" #: ../Doc/reference/datamodel.rst:2437 msgid "" @@ -3555,6 +4101,9 @@ msgid "" "correctness, implicit special method lookup generally also bypasses the :" "meth:`__getattribute__` method even of the object's metaclass::" msgstr "" +"En plus de bipasser les attributs des instances pour fonctionner " +"correctement, la recherche des méthodes spéciales implicites bipasse aussi " +"la méthode :meth:`__getattribute__` même dans la méta-classe de l'objet ::" #: ../Doc/reference/datamodel.rst:2463 msgid "" @@ -3564,6 +4113,11 @@ msgid "" "method *must* be set on the class object itself in order to be consistently " "invoked by the interpreter)." msgstr "" +"En bipassant le mécanisme de :meth:`__getattribute__` de cette façon, cela " +"permet d'optimiser la vitesse de l'interpréteur moyennant une certaine " +"manœuvre dans la gestion des méthodes spéciales (la méthode spéciale *doit* " +"être définie sur l'objet classe lui-même afin d'être invoquée de manière " +"cohérente par l'interpréteur)." #: ../Doc/reference/datamodel.rst:2474 msgid "Coroutines" @@ -3571,7 +4125,7 @@ msgstr "Coroutines" #: ../Doc/reference/datamodel.rst:2478 msgid "Awaitable Objects" -msgstr "" +msgstr "Objets awaitables" #: ../Doc/reference/datamodel.rst:2480 msgid "" @@ -3579,6 +4133,9 @@ msgid "" "method. :term:`Coroutine` objects returned from :keyword:`async def` " "functions are awaitable." msgstr "" +"Un objet :term:`awaitable` implémente généralement une méthode :meth:" +"`__await__`. Les objets :term:`Coroutine` renvoyés par les fonctions :" +"keyword:`async def` sont des awaitables." #: ../Doc/reference/datamodel.rst:2486 msgid "" @@ -3586,6 +4143,9 @@ msgid "" "with :func:`types.coroutine` or :func:`asyncio.coroutine` are also " "awaitable, but they do not implement :meth:`__await__`." msgstr "" +"Les objets :term:`itérateur de générateur` renvoyés par les générateurs " +"décorés par :func:`types.coroutine` ou :func:`asyncio.coroutine` sont aussi " +"des awaitables, mais ils n'implémentent pas :meth:`__await__`." #: ../Doc/reference/datamodel.rst:2492 msgid "" @@ -3593,10 +4153,13 @@ msgid "" "`awaitable` objects. For instance, :class:`asyncio.Future` implements this " "method to be compatible with the :keyword:`await` expression." msgstr "" +"Doit renvoyer un :term:`itérateur`. Doit être utilisé pour implémenter les " +"objets :term:`awaitable`. Par exemple, :class:`asyncio.Future` implémente " +"cette méthode pour être compatible avec les expressions :keyword:`await`." #: ../Doc/reference/datamodel.rst:2498 msgid ":pep:`492` for additional information about awaitable objects." -msgstr "" +msgstr ":pep:`492` pour les informations relatives aux objets awaitables." #: ../Doc/reference/datamodel.rst:2504 msgid "Coroutine Objects" @@ -3612,6 +4175,13 @@ msgid "" "raises an exception, it is propagated by the iterator. Coroutines should " "not directly raise unhandled :exc:`StopIteration` exceptions." msgstr "" +"Les objets :term:`Coroutine` sont des objets :term:`awaitable`. L'exécution " +"d'une coroutine peut être contrôlée en appelant :meth:`__await__` et en " +"itérant sur le résultat. Quand la coroutine a fini de s'exécuter et termine, " +"l'itérateur lève :exc:`StopIteration` et l'attribut :attr:`~StopIteration." +"value` de l'exception contient la valeur de retour. Si la coroutine lève une " +"exception, elle est propagée par l'itérateur. Les coroutines ne doivent pas " +"lever directement des exceptions :exc:`StopIteration` non gérées." #: ../Doc/reference/datamodel.rst:2514 msgid "" @@ -3619,10 +4189,16 @@ msgid "" "of generators (see :ref:`generator-methods`). However, unlike generators, " "coroutines do not directly support iteration." msgstr "" +"Les coroutines disposent aussi des méthodes listées ci-dessous, analogues à " +"celles des générateurs (voir :ref:`generator-methods`). Cependant, au " +"contraire des générateurs, vous ne pouvez pas itérer directement sur des " +"coroutines." #: ../Doc/reference/datamodel.rst:2518 msgid "It is a :exc:`RuntimeError` to await on a coroutine more than once." msgstr "" +"Utiliser *await* plus d'une fois sur une coroutine lève une :exc:" +"`RuntimeError`." #: ../Doc/reference/datamodel.rst:2524 msgid "" @@ -3633,6 +4209,13 @@ msgid "" "result (return value, :exc:`StopIteration`, or other exception) is the same " "as when iterating over the :meth:`__await__` return value, described above." msgstr "" +"Démarre ou reprend l'exécution d'une coroutine. Si *value* est ``None``, " +"c'est équivalent à avancer l'itérateur renvoyé par :meth:`__await__`. Si " +"*value* ne vaut pas ``None``, cette méthode appelle la méthode :meth:" +"`~generator.send` de l'itérateur qui a causé la suspension de la coroutine. " +"Le résultat (valeur de retour, :exc:`StopIteration` ou une autre exception) " +"est le même que lorsque vous itérez sur la valeur de retour de :meth:" +"`__await__`, décrite ci-dessus." #: ../Doc/reference/datamodel.rst:2534 msgid "" @@ -3644,6 +4227,13 @@ msgid "" "meth:`__await__` return value, described above. If the exception is not " "caught in the coroutine, it propagates back to the caller." msgstr "" +"Lève l'exception spécifiée dans la coroutine. Cette méthode délègue à la " +"méthode :meth:`~generator.throw` de l'itérateur qui a causé la suspension de " +"la coroutine, s'il possède une telle méthode. Sinon, l'exception est levée " +"au point de suspension. Le résultat (valeur de retour, :exc:`StopIteration` " +"ou une autre exception) est le même que lorsque vous itérez sur la valeur de " +"retour de :meth:`__await__`, décrite ci-dessus. Si l'exception n'est pas " +"gérée par la coroutine, elle est propagée à l'appelant." #: ../Doc/reference/datamodel.rst:2545 msgid "" @@ -3654,16 +4244,25 @@ msgid "" "causing the coroutine to immediately clean itself up. Finally, the coroutine " "is marked as having finished executing, even if it was never started." msgstr "" +"Demande à la coroutine de faire le ménage et de se terminer. Si la coroutine " +"est suspendue, cette méthode délègue d'abord à la méthode :meth:`~generator." +"close` de l'itérateur qui a causé la suspension de la coroutine, s'il " +"possède une telle méthode. Ensuite, elle lève :exc:`GeneratorExit` au point " +"de suspension, ce qui fait le ménage dans la coroutine immédiatement. Enfin, " +"la coroutine est marquée comme ayant terminé son exécution, même si elle n'a " +"jamais démarré." #: ../Doc/reference/datamodel.rst:2553 msgid "" "Coroutine objects are automatically closed using the above process when they " "are about to be destroyed." msgstr "" +"Les objets coroutines sont automatiquement fermés en utilisant le processus " +"décrit au-dessus au moment où ils sont détruits." #: ../Doc/reference/datamodel.rst:2559 msgid "Asynchronous Iterators" -msgstr "" +msgstr "Itérateurs asynchrones" #: ../Doc/reference/datamodel.rst:2561 msgid "" @@ -3671,25 +4270,33 @@ msgid "" "``__aiter__`` implementation, and an *asynchronous iterator* can call " "asynchronous code in its ``__anext__`` method." msgstr "" +"Un itérateur asynchrone est capable d'appeler du code asynchrone dans " +"l'implémentation de son ``__aiter__`` et peut appeler du code asynchrone " +"dans sa méthode ``__anext__``." #: ../Doc/reference/datamodel.rst:2565 msgid "" "Asynchronous iterators can be used in an :keyword:`async for` statement." msgstr "" +"Les itérateurs asynchrones peuvent être utilisés dans des instructions :" +"keyword:`async for`." #: ../Doc/reference/datamodel.rst:2569 msgid "Must return an *asynchronous iterator* object." -msgstr "" +msgstr "Doit renvoyer un objet *itérateur asynchrone*." #: ../Doc/reference/datamodel.rst:2573 msgid "" "Must return an *awaitable* resulting in a next value of the iterator. " "Should raise a :exc:`StopAsyncIteration` error when the iteration is over." msgstr "" +"Doit renvoyer un *awaitable* qui se traduit par la valeur suivante de " +"l'itérateur. Doit lever une :exc:`StopAsyncIteration` quand l'itération est " +"terminée." #: ../Doc/reference/datamodel.rst:2576 msgid "An example of an asynchronous iterable object::" -msgstr "" +msgstr "Un exemple d'objet itérateur asynchrone ::" #: ../Doc/reference/datamodel.rst:2595 msgid "" @@ -3697,6 +4304,9 @@ msgid "" "`asynchronous iterators `. Returning an :term:" "`awaitable` object will result in a :exc:`PendingDeprecationWarning`." msgstr "" +"À partir de CPython 3.5.2, ``__aiter__`` peut directement renvoyer des :term:" +"`itérateurs asynchrones `. Renvoyer un objet :term:" +"`awaitable` entraine un avertissement :exc:`PendingDeprecationWarning`." #: ../Doc/reference/datamodel.rst:2601 msgid "" @@ -3705,10 +4315,14 @@ msgid "" "the PendingDeprecationWarning and keep the code backwards compatible, the " "following decorator can be used::" msgstr "" +"La façon conseillée d'écrire du code compatible descendant en CPython 3.5.x " +"est de continuer à renvoyer des awaitables avec ``__aiter__``. Si vous " +"voulez éviter l'avertissement *PendingDeprecationWarning* et conserver un " +"code compatible descendant, le décorateur suivant peut être utilisé ::" #: ../Doc/reference/datamodel.rst:2620 msgid "Example::" -msgstr "Exemples ::" +msgstr "Exemple ::" #: ../Doc/reference/datamodel.rst:2631 msgid "" @@ -3716,38 +4330,50 @@ msgid "" "replaced with the :exc:`DeprecationWarning`. In CPython 3.7, returning an " "awaitable from ``__aiter__`` will result in a :exc:`RuntimeError`." msgstr "" +"À partir de CPython 3.6, le :exc:`PendingDeprecationWarning` est remplacé " +"par un :exc:`DeprecationWarning`. Dans CPython 3.7, renvoyer un awaitable " +"avec ``__aiter__`` entraine une :exc:`RuntimeError`." #: ../Doc/reference/datamodel.rst:2638 msgid "Asynchronous Context Managers" -msgstr "" +msgstr "Gestionnaires de contexte asynchrones" #: ../Doc/reference/datamodel.rst:2640 msgid "" "An *asynchronous context manager* is a *context manager* that is able to " "suspend execution in its ``__aenter__`` and ``__aexit__`` methods." msgstr "" +"Un *gestionnaire de contexte asynchrone* est un *gestionnaire de contexte* " +"qui est capable de suspendre son exécution dans ses méthodes ``__aenter__`` " +"et ``__aexit__``." #: ../Doc/reference/datamodel.rst:2643 msgid "" "Asynchronous context managers can be used in an :keyword:`async with` " "statement." msgstr "" +"Les gestionnaires de contexte asynchrones peuvent être utilisés dans des " +"instructions :keyword:`async with`." #: ../Doc/reference/datamodel.rst:2647 msgid "" "This method is semantically similar to the :meth:`__enter__`, with only " "difference that it must return an *awaitable*." msgstr "" +"Cette méthode est sémantiquement équivalente à :meth:`__enter__`, à la seule " +"différence près qu'elle doit renvoyer un *awaitable*." #: ../Doc/reference/datamodel.rst:2652 msgid "" "This method is semantically similar to the :meth:`__exit__`, with only " "difference that it must return an *awaitable*." msgstr "" +"Cette méthode est sémantiquement équivalente à :meth:`__exit__`, à la seule " +"différence près qu'elle doit renvoyer un *awaitable*." #: ../Doc/reference/datamodel.rst:2655 msgid "An example of an asynchronous context manager class::" -msgstr "" +msgstr "Un exemple de classe de gestionnaire de contexte asynchrone ::" #: ../Doc/reference/datamodel.rst:2668 msgid "Footnotes" @@ -3771,6 +4397,10 @@ msgid "" "raise a :exc:`TypeError`, but may do so by relying on the behavior that " "``None`` is not callable." msgstr "" +"Les méthodes :meth:`__hash__`, :meth:`__iter__`, :meth:`__reversed__` et :" +"meth:`__contains__` ont une gestion particulière pour cela ; les autres " +"lèvent toujours :exc:`TypeError`, mais le font en considérant que ``None`` " +"n'est pas un appelable." #: ../Doc/reference/datamodel.rst:2678 msgid "" @@ -3779,6 +4409,10 @@ msgid "" "want to force fallback to the right operand's reflected method—that will " "instead have the opposite effect of explicitly *blocking* such fallback." msgstr "" +"*n'autorise pas* signifie ici que la classe ne possède pas de méthode " +"adéquate ou que la méthode renvoie ``NotImplemented``. N'assignez pas " +"``None`` à la méthode si vous voulez un repli vers la méthode symétrique de " +"l'opérande de droite -- cela aurait pour effet de *bloquer* un tel repli." #: ../Doc/reference/datamodel.rst:2684 msgid "" @@ -3786,3 +4420,6 @@ msgid "" "method (such as :meth:`__add__`) fails the operation is not supported, which " "is why the reflected method is not called." msgstr "" +"Pour des opérandes de même type, on considère que si la méthode originelle " +"(telle que :meth:`__add__`) échoue, l'opération n'est pas autorisée et donc " +"la méthode symétrique n'est pas appelée." From d92124f32fb4784be9a713e2d6c7582884a8f6f3 Mon Sep 17 00:00:00 2001 From: Christophe Nanteuil Date: Sun, 29 Apr 2018 00:09:17 +0200 Subject: [PATCH 047/115] 'Reference Execution Model' Translation --- reference/executionmodel.po | 178 +++++++++++++++++++++++++++++++++--- 1 file changed, 166 insertions(+), 12 deletions(-) diff --git a/reference/executionmodel.po b/reference/executionmodel.po index 9be59fa78..57759a74d 100644 --- a/reference/executionmodel.po +++ b/reference/executionmodel.po @@ -3,27 +3,27 @@ # This file is distributed under the same license as the Python package. # FIRST AUTHOR , YEAR. # -#, fuzzy msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" +"PO-Revision-Date: 2018-04-29 00:05+0200\n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Last-Translator: \n" +"Language-Team: \n" +"X-Generator: Poedit 2.0.2\n" #: ../Doc/reference/executionmodel.rst:6 msgid "Execution model" -msgstr "" +msgstr "Modèle d'exécution" #: ../Doc/reference/executionmodel.rst:15 msgid "Structure of a program" -msgstr "" +msgstr "Structure d'un programme" #: ../Doc/reference/executionmodel.rst:19 msgid "" @@ -37,6 +37,16 @@ msgid "" "passed to the built-in functions :func:`eval` and :func:`exec` is a code " "block." msgstr "" +"Un programme Python est constitué de blocs de code. Un :dfn:`bloc` est un " +"morceau de texte d'un programme Python qui est exécuté unitairement. Voici " +"des exemples de blocs : un module, le corps d'une fonction ou la définition " +"d'une classe. Chaque commande tapée dans l'interpréteur interactif est un " +"bloc. Un fichier script (fichier donné en entrée à l'interpréteur ou " +"spécifié en tant qu'argument de la ligne de commande) est un bloc de code. " +"Un script de commande (commande spécifiée dans la ligne de commande de " +"l'interpréteur avec l'option '**-c**') est un bloc de code. La chaîne passée " +"en argument aux fonctions natives :func:`eval` ou :func:`exec` est un bloc " +"de code." #: ../Doc/reference/executionmodel.rst:31 msgid "" @@ -44,20 +54,26 @@ msgid "" "some administrative information (used for debugging) and determines where " "and how execution continues after the code block's execution has completed." msgstr "" +"Un bloc de code est exécuté dans un :dfn:`cadre d'exécution`. Un cadre " +"contient des informations administratives (utilisées pour le débogage) et " +"détermine où et comment l'exécution se poursuit après la fin de l'exécution " +"du bloc de code." #: ../Doc/reference/executionmodel.rst:38 msgid "Naming and binding" -msgstr "" +msgstr "Noms et liaisons" #: ../Doc/reference/executionmodel.rst:47 msgid "Binding of names" -msgstr "" +msgstr "Liaisons des noms" #: ../Doc/reference/executionmodel.rst:53 msgid "" ":dfn:`Names` refer to objects. Names are introduced by name binding " "operations." msgstr "" +"Les :dfn:`noms` sont des références aux objets. Ils sont créés lors des " +"opérations de liaisons de noms (*name binding* en anglais)." #: ../Doc/reference/executionmodel.rst:57 msgid "" @@ -70,18 +86,34 @@ msgid "" "binds all names defined in the imported module, except those beginning with " "an underscore. This form may only be used at the module level." msgstr "" +"Les constructions suivantes conduisent à des opérations de liaison à des " +"noms : les paramètres formels d'une fonction, les instructions :keyword:" +"`import`, les définitions de fonctions et de classes (le nom de la classe ou " +"de la fonction est lié au bloc qui la définit) et les cibles qui sont des " +"identifiants dans les assignations, les entêtes de boucles :keyword:`for` ou " +"après :keyword:`as` dans une instruction :keyword:`with` ou une clause :" +"keyword:`except`. L'instruction :keyword:`import` sous la forme ``from ... " +"import *`` lie tous les noms définis dans le module importé, sauf ceux qui " +"commencent par un tiret bas (`'_'`). Cette forme ne doit être utilisée qu'au " +"niveau du module." #: ../Doc/reference/executionmodel.rst:67 msgid "" "A target occurring in a :keyword:`del` statement is also considered bound " "for this purpose (though the actual semantics are to unbind the name)." msgstr "" +"Une cible qui apparaît dans une instruction :keyword:`del` est aussi " +"considérée comme une liaison à un nom dans ce cadre (bien que la sémantique " +"véritable soit de délier le nom)." #: ../Doc/reference/executionmodel.rst:70 msgid "" "Each assignment or import statement occurs within a block defined by a class " "or function definition or at the module level (the top-level code block)." msgstr "" +"Chaque assignation ou instruction *import* a lieu dans un bloc défini par " +"une définition de classe ou de fonction ou au niveau du module (le bloc de " +"code de plus haut niveau)." #: ../Doc/reference/executionmodel.rst:75 msgid "" @@ -91,16 +123,24 @@ msgid "" "code block are local and global.) If a variable is used in a code block but " "not defined there, it is a :dfn:`free variable`." msgstr "" +"Si un nom est lié dans un bloc, c'est une variable locale de ce bloc, à " +"moins qu'il ne soit déclaré :keyword:`nonlocal` ou :keyword:`global`. Si un " +"nom est lié au niveau du module, c'est une variable globale (les variables " +"du bloc de code de niveau module sont locales et globales). Si une variable " +"est utilisée dans un bloc de code alors qu'elle n'y est pas définie, c'est " +"une :dfn:`variable libre`." #: ../Doc/reference/executionmodel.rst:81 msgid "" "Each occurrence of a name in the program text refers to the :dfn:`binding` " "of that name established by the following name resolution rules." msgstr "" +"Chaque occurrence d'un nom dans un programme fait référence à la :dfn:" +"`liaison` de ce nom établie par les règles de résolution des noms suivantes." #: ../Doc/reference/executionmodel.rst:87 msgid "Resolution of names" -msgstr "" +msgstr "Résolution des noms" #: ../Doc/reference/executionmodel.rst:91 msgid "" @@ -110,6 +150,11 @@ msgid "" "contained within the defining one, unless a contained block introduces a " "different binding for the name." msgstr "" +"La :dfn:`portée` définit la visibilité d'un nom dans un bloc. Si une " +"variable locale est définie dans un bloc, sa portée comprend ce bloc. Si la " +"définition intervient dans le bloc d'une fonction, la portée s'étend à tous " +"les blocs contenus dans celui qui comprend la définition, à moins qu'un bloc " +"intérieur ne définisse une autre liaison pour ce nom." #: ../Doc/reference/executionmodel.rst:99 msgid "" @@ -117,6 +162,9 @@ msgid "" "enclosing scope. The set of all such scopes visible to a code block is " "called the block's :dfn:`environment`." msgstr "" +"Quand un nom est utilisé dans un bloc de code, la résolution utilise la " +"portée la plus petite. L'ensemble de toutes les portées visibles dans un " +"bloc de code s'appelle :dfn:`l'environnement` du bloc." #: ../Doc/reference/executionmodel.rst:107 msgid "" @@ -126,6 +174,11 @@ msgid "" "is used, an :exc:`UnboundLocalError` exception is raised. :exc:" "`UnboundLocalError` is a subclass of :exc:`NameError`." msgstr "" +"Quand un nom n'est trouvé nulle part, une exception :exc:`NameError` est " +"levée. Si la portée courante est celle d'une fonction et que le nom fait " +"référence à une variable locale qui n'a pas encore été liée au moment où le " +"nom est utilisé, une exception :exc:`UnboundLocalError` est levée. :exc:" +"`UnboundLocalError` est une sous-classe de :exc:`NameError`." #: ../Doc/reference/executionmodel.rst:113 msgid "" @@ -137,6 +190,14 @@ msgid "" "variables of a code block can be determined by scanning the entire text of " "the block for name binding operations." msgstr "" +"Si une opération de liaison intervient dans un bloc de code, toutes les " +"utilisations du nom dans le bloc sont considérées comme des références au " +"bloc courant. Ceci peut conduire à des erreurs quand un nom est utilisé à " +"l'intérieur d'un bloc avant d'être lié. La règle est subtile. Python " +"n'attend pas de déclaration de variables et autorise les opérations de " +"liaison n'importe où dans un bloc de code. Les variables locales d'un bloc " +"de code peuvent être déterminées en parcourant tout le texte du bloc à la " +"recherche des opérations de liaisons." #: ../Doc/reference/executionmodel.rst:120 msgid "" @@ -149,6 +210,16 @@ msgid "" "found there, the builtins namespace is searched. The :keyword:`global` " "statement must precede all uses of the name." msgstr "" +"Si l'instruction :keyword:`global` apparaît dans un bloc, toutes les " +"utilisations du nom spécifié dans l'instruction font référence à la liaison " +"de ce nom dans l'espace de noms de plus haut niveau. Les noms sont résolus " +"dans cet espace de noms de plus haut niveau en recherchant l'espace des noms " +"globaux, c'est-à-dire l'espace de noms du module contenant le bloc de code " +"ainsi que dans l'espace de noms natifs, celui du module :mod:`builtins`. La " +"recherche commence dans l'espace de noms globaux. Si le nom n'y est pas " +"trouvé, la recherche se poursuit dans l'espace de noms natifs. " +"L'instruction :keyword:`global` doit précéder toute utilisation du nom " +"considéré." #: ../Doc/reference/executionmodel.rst:129 msgid "" @@ -157,6 +228,9 @@ msgid "" "variable contains a global statement, the free variable is treated as a " "global." msgstr "" +"L'instruction :keyword:`global` a la même porte qu'une opération de liaison " +"du même bloc. Si la portée englobante la plus petite pour une variable libre " +"contient une instruction *global*, la variable libre est considérée globale." #: ../Doc/reference/executionmodel.rst:135 msgid "" @@ -165,12 +239,20 @@ msgid "" "`SyntaxError` is raised at compile time if the given name does not exist in " "any enclosing function scope." msgstr "" +"L'instruction :keyword:`nonlocal` fait que les noms correspondants font " +"référence aux variables liées précédemment dans la portée de fonction " +"englobante la plus petite possible. :exc:`SyntaxError` est levée à la " +"compilation si le nom donné n'existe dans aucune portée de fonction " +"englobante." #: ../Doc/reference/executionmodel.rst:142 msgid "" "The namespace for a module is automatically created the first time a module " "is imported. The main module for a script is always called :mod:`__main__`." msgstr "" +"L'espace de noms pour un module est créé automatiquement la première fois " +"que le module est importé. Le module principal d'un script s'appelle " +"toujours :mod:`__main__`." #: ../Doc/reference/executionmodel.rst:145 msgid "" @@ -185,10 +267,22 @@ msgid "" "expressions since they are implemented using a function scope. This means " "that the following will fail::" msgstr "" +"Les blocs de définition de classe et les arguments de :func:`exec` ainsi " +"que :func:`eval` sont traités de manière spéciale dans le cadre de la " +"résolution des noms. Une définition de classe est une instruction exécutable " +"qui peut utiliser et définir des noms. Toutes ces références suivent les " +"règles normales de la résolution des noms à l'exception des variables " +"locales non liées qui sont recherchées dans l'espace des noms globaux. " +"L'espace de noms de la définition de classe devient le dictionnaire des " +"attributs de la classe. La portée des noms définis dans un bloc de classe " +"est limitée au bloc de la classe ; elle ne s'étend pas aux blocs de code des " +"méthodes -- y compris les compréhensions et les expressions générateurs " +"puisque celles-ci sont implémentées en utilisant une portée de fonction. " +"Ainsi, les instructions suivantes échouent ::" #: ../Doc/reference/executionmodel.rst:163 msgid "Builtins and restricted execution" -msgstr "" +msgstr "Noms natifs et restrictions d'exécution" #: ../Doc/reference/executionmodel.rst:169 msgid "" @@ -197,6 +291,11 @@ msgid "" "keyword:`import` the :mod:`builtins` module and modify its attributes " "appropriately." msgstr "" +"L'utilisateur ne doit pas toucher à ``__builtins__``; c'est et cela doit " +"rester réservé aux besoins de l'implémentation. Les utilisateurs qui " +"souhaitent surcharger des valeurs dans l'espace de noms natifs doivent :" +"keyword:`import`\\ er le module :mod:`builtins` et modifier ses attributs " +"judicieusement." #: ../Doc/reference/executionmodel.rst:174 msgid "" @@ -208,16 +307,26 @@ msgid "" "other module, ``__builtins__`` is an alias for the dictionary of the :mod:" "`builtins` module itself." msgstr "" +"L'espace de noms natifs associé à l'exécution d'un bloc de code est " +"effectivement trouvé en cherchant le nom ``__builtins__`` dans l'espace de " +"noms globaux ; ce doit être un dictionnaire ou un module (dans ce dernier " +"cas, le dictionnaire du module est utilisé). Par défaut, lorsque l'on se " +"trouve dans le module :mod:`__main__`, ``__builtins__`` est le module natif :" +"mod:`builtins` ; lorsque l'on se trouve dans tout autre module, " +"``__builtins__`` est un pseudonyme du dictionnaire du module :mod:`builtins` " +"lui-même." #: ../Doc/reference/executionmodel.rst:186 msgid "Interaction with dynamic features" -msgstr "" +msgstr "Interaction avec les fonctionnalités dynamiques" #: ../Doc/reference/executionmodel.rst:188 msgid "" "Name resolution of free variables occurs at runtime, not at compile time. " "This means that the following code will print 42::" msgstr "" +"La résolution des noms de variables libres intervient à l'exécution, pas à " +"la compilation. Cela signifie que le code suivant affiche 42 ::" #: ../Doc/reference/executionmodel.rst:199 msgid "" @@ -229,10 +338,18 @@ msgid "" "global and local namespace. If only one namespace is specified, it is used " "for both." msgstr "" +"Les fonctions :func:`eval` et :func:`exec` n'ont pas accès à l'environnement " +"complet pour résoudre les noms. Les noms doivent être résolus dans les " +"espaces de noms locaux et globaux de l'appelant. Les variables libres ne " +"sont pas résolues dans l'espace de noms englobant le plus proche mais dans " +"l'espace de noms globaux [#]_. Les fonctions :func:`eval` et :func:`exec` " +"possèdent des arguments optionnels pour surcharger les espaces de noms " +"globaux et locaux. Si seulement un espace de noms est spécifié, il est " +"utilisé pour les deux." #: ../Doc/reference/executionmodel.rst:210 msgid "Exceptions" -msgstr "Les exceptions" +msgstr "Exceptions" #: ../Doc/reference/executionmodel.rst:221 msgid "" @@ -242,6 +359,12 @@ msgid "" "*handled* by the surrounding code block or by any code block that directly " "or indirectly invoked the code block where the error occurred." msgstr "" +"Les exceptions sont un moyen de sortir du flot normal d'exécution d'un bloc " +"de code de manière à gérer des erreurs ou des conditions exceptionnelles. " +"Une exception est *levée* au moment où l'erreur est détectée ; elle doit " +"être *gérée* par le bloc de code qui l'entoure ou par tout bloc de code qui " +"a, directement ou indirectement, invoqué le bloc de code où l'erreur s'est " +"produite." #: ../Doc/reference/executionmodel.rst:227 msgid "" @@ -253,6 +376,14 @@ msgid "" "code which does not handle the exception, but is executed whether an " "exception occurred or not in the preceding code." msgstr "" +"L'interpréteur Python lève une exception quand il détecte une erreur à " +"l'exécution (telle qu'une division par zéro). Un programme Python peut aussi " +"lever explicitement une exception avec l'instruction :keyword:`raise`. Les " +"gestionnaires d'exception sont spécifiés avec l'instruction :keyword:" +"`try` ... :keyword:`except`. La clause :keyword:`finally` d'une telle " +"instruction peut être utilisée pour spécifier un code de nettoyage qui ne " +"gère pas l'exception mais qui est exécuté quoi qu'il arrive (exception ou " +"pas)." #: ../Doc/reference/executionmodel.rst:237 msgid "" @@ -261,6 +392,11 @@ msgid "" "but it cannot repair the cause of the error and retry the failing operation " "(except by re-entering the offending piece of code from the top)." msgstr "" +"Python utilise le modèle par *terminaison* de gestion des erreurs : un " +"gestionnaire d'exception peut trouver ce qui est arrivé et continuer " +"l'exécution à un niveau plus élevé mais il ne peut pas réparer l'origine de " +"l'erreur et ré-essayer l'opération qui a échoué (sauf à entrer à nouveau " +"dans le code en question par le haut)." #: ../Doc/reference/executionmodel.rst:244 msgid "" @@ -269,6 +405,10 @@ msgid "" "either case, it prints a stack backtrace, except when the exception is :exc:" "`SystemExit`." msgstr "" +"Quand une exception n'est gérée par aucun gestionnaire, l'interpréteur " +"termine l'exécution du programme ou retourne à la boucle interactive. Dans " +"ces cas, il affiche une trace de la pile d'appels, sauf si l'exception est :" +"exc:`SystemExit`." #: ../Doc/reference/executionmodel.rst:248 msgid "" @@ -278,6 +418,11 @@ msgid "" "by the handler and can carry additional information about the exceptional " "condition." msgstr "" +"Les exceptions sont identifiées par des instances de classe. La clause :" +"keyword:`except` sélectionnée dépend de la classe de l'instance : elle doit " +"faire référence à la classe de l'instance ou à une de ses classes ancêtres. " +"L'instance peut être transmise au gestionnaire et peut apporter des " +"informations complémentaires sur les conditions de l'exception." #: ../Doc/reference/executionmodel.rst:255 msgid "" @@ -286,12 +431,19 @@ msgid "" "be relied on by code which will run under multiple versions of the " "interpreter." msgstr "" +"Les messages d'exception ne font pas partie de l'API Python. Leur contenu " +"peut changer d'une version de Python à une autre sans avertissement et le " +"code ne doit pas reposer sur ceux-ci s'il doit fonctionner sur plusieurs " +"versions de l'interpréteur." #: ../Doc/reference/executionmodel.rst:259 msgid "" "See also the description of the :keyword:`try` statement in section :ref:" "`try` and :keyword:`raise` statement in section :ref:`raise`." msgstr "" +"Reportez-vous aussi aux descriptions de l'instruction :keyword:`try` dans la " +"section :ref:`try` et de l'instruction :keyword:`raise` dans la section :ref:" +"`raise`." #: ../Doc/reference/executionmodel.rst:264 msgid "Footnotes" @@ -302,3 +454,5 @@ msgid "" "This limitation occurs because the code that is executed by these operations " "is not available at the time the module is compiled." msgstr "" +"En effet, le code qui est exécuté par ces opérations n'est pas connu au " +"moment où le module est compilé." From e810d134220e212f3ea35aba8b768729ef08f482 Mon Sep 17 00:00:00 2001 From: Julien Palard Date: Sun, 29 Apr 2018 00:28:01 +0200 Subject: [PATCH 048/115] merge pot files. --- c-api/arg.po | 331 ++++----- c-api/buffer.po | 21 +- distutils/configfile.po | 36 +- distutils/introduction.po | 9 +- distutils/packageindex.po | 40 +- extending/extending.po | 309 ++++----- extending/index.po | 22 +- extending/newtypes.po | 1145 ++++++-------------------------- extending/newtypes_tutorial.po | 861 ++++++++++++++++++++++++ faq/library.po | 248 +++---- faq/windows.po | 137 ++-- howto/clinic.po | 782 +++++++++++----------- howto/instrumentation.po | 52 +- howto/logging-cookbook.po | 398 +++++------ howto/logging.po | 386 +++++------ howto/regex.po | 198 +++--- howto/unicode.po | 240 +++---- howto/urllib2.po | 150 +++-- install/index.po | 400 +++++------ library/configparser.po | 79 +-- library/curses.po | 1052 ++++++++++++++--------------- library/email.generator.po | 4 +- library/faulthandler.po | 6 +- library/importlib.po | 4 +- library/itertools.po | 58 +- library/json.po | 255 +++---- library/logging.config.po | 60 +- library/logging.handlers.po | 9 +- library/logging.po | 534 +++++++-------- library/os.po | 5 +- library/re.po | 348 +++++----- library/tkinter.po | 634 +++++++++--------- reference/import.po | 157 +++-- sphinx.po | 82 +-- tutorial/controlflow.po | 7 +- tutorial/modules.po | 7 +- using/cmdline.po | 245 +++---- using/unix.po | 16 +- using/windows.po | 386 +++++------ 39 files changed, 4947 insertions(+), 4766 deletions(-) create mode 100644 extending/newtypes_tutorial.po diff --git a/c-api/arg.po b/c-api/arg.po index d97d4f7c4..1cf2cec68 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: 2018-02-15 00:29+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -295,7 +295,7 @@ msgid "" "`PyObject\\*`." msgstr "" -#: ../Doc/c-api/arg.rst:152 ../Doc/c-api/arg.rst:557 +#: ../Doc/c-api/arg.rst:156 msgid "``u`` (:class:`str`) [Py_UNICODE \\*]" msgstr "``u`` (:class:`str`) [Py_UNICODE \\*]" @@ -310,22 +310,29 @@ msgid "" "`ValueError` exception is raised." msgstr "" -#: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:562 +#: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:166 ../Doc/c-api/arg.rst:174 +#: ../Doc/c-api/arg.rst:182 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`PyUnicode_AsWideCharString`." +msgstr "" + +#: ../Doc/c-api/arg.rst:165 msgid "``u#`` (:class:`str`) [Py_UNICODE \\*, int]" msgstr "``u#`` (:class:`str`) [Py_UNICODE \\*, int]" -#: ../Doc/c-api/arg.rst:155 +#: ../Doc/c-api/arg.rst:159 msgid "" "This variant on ``u`` stores into two C variables, the first one a pointer " "to a Unicode data buffer, the second one its length. This variant allows " "null code points." msgstr "" -#: ../Doc/c-api/arg.rst:161 +#: ../Doc/c-api/arg.rst:173 msgid "``Z`` (:class:`str` or ``None``) [Py_UNICODE \\*]" msgstr "``Z`` (:class:`str` ou ``None``) [Py_UNICODE \\*]" -#: ../Doc/c-api/arg.rst:160 +#: ../Doc/c-api/arg.rst:168 msgid "" "Like ``u``, but the Python object may also be ``None``, in which case the :c:" "type:`Py_UNICODE` pointer is set to *NULL*." @@ -333,11 +340,11 @@ msgstr "" "Comme ``u``, mais l'objet Python peut aussi être ``None``, auquel cas le " "pointeur :c:type:`Py_UNICODE` vaut *NULL*." -#: ../Doc/c-api/arg.rst:165 +#: ../Doc/c-api/arg.rst:181 msgid "``Z#`` (:class:`str` or ``None``) [Py_UNICODE \\*, int]" msgstr "``Z#`` (:class:`str` ou ``None``) [Py_UNICODE \\*, int]" -#: ../Doc/c-api/arg.rst:164 +#: ../Doc/c-api/arg.rst:176 msgid "" "Like ``u#``, but the Python object may also be ``None``, in which case the :" "c:type:`Py_UNICODE` pointer is set to *NULL*." @@ -345,22 +352,22 @@ msgstr "" "Comme ``u#``, mais l'objet Python peut également être ``None``, auquel cas " "le pointeur :c:type:`Py_UNICODE` vaut *NULL*." -#: ../Doc/c-api/arg.rst:170 +#: ../Doc/c-api/arg.rst:186 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "``U`` (:class:`str`) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:168 +#: ../Doc/c-api/arg.rst:184 msgid "" "Requires that the Python object is a Unicode object, without attempting any " "conversion. Raises :exc:`TypeError` if the object is not a Unicode object. " "The C variable may also be declared as :c:type:`PyObject\\*`." msgstr "" -#: ../Doc/c-api/arg.rst:176 +#: ../Doc/c-api/arg.rst:192 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" -#: ../Doc/c-api/arg.rst:173 +#: ../Doc/c-api/arg.rst:189 msgid "" "This format accepts any object which implements the read-write buffer " "interface. It fills a :c:type:`Py_buffer` structure provided by the caller. " @@ -368,17 +375,17 @@ msgid "" "`PyBuffer_Release` when it is done with the buffer." msgstr "" -#: ../Doc/c-api/arg.rst:193 +#: ../Doc/c-api/arg.rst:209 msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" msgstr "" -#: ../Doc/c-api/arg.rst:179 +#: ../Doc/c-api/arg.rst:195 msgid "" "This variant on ``s`` is used for encoding Unicode into a character buffer. " "It only works for encoded data without embedded NUL bytes." msgstr "" -#: ../Doc/c-api/arg.rst:182 +#: ../Doc/c-api/arg.rst:198 msgid "" "This format requires two arguments. The first is only used as input, and " "must be a :c:type:`const char\\*` which points to the name of an encoding as " @@ -390,7 +397,7 @@ msgid "" "argument." msgstr "" -#: ../Doc/c-api/arg.rst:190 +#: ../Doc/c-api/arg.rst:206 msgid "" ":c:func:`PyArg_ParseTuple` will allocate a buffer of the needed size, copy " "the encoded data into this buffer and adjust *\\*buffer* to reference the " @@ -398,33 +405,33 @@ msgid "" "`PyMem_Free` to free the allocated buffer after use." msgstr "" -#: ../Doc/c-api/arg.rst:198 +#: ../Doc/c-api/arg.rst:214 msgid "" "``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer]" msgstr "" -#: ../Doc/c-api/arg.rst:196 +#: ../Doc/c-api/arg.rst:212 msgid "" "Same as ``es`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" -#: ../Doc/c-api/arg.rst:229 +#: ../Doc/c-api/arg.rst:245 msgid "" "``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, int " "\\*buffer_length]" msgstr "" -#: ../Doc/c-api/arg.rst:201 +#: ../Doc/c-api/arg.rst:217 msgid "" "This variant on ``s#`` is used for encoding Unicode into a character buffer. " "Unlike the ``es`` format, this variant allows input data which contains NUL " "characters." msgstr "" -#: ../Doc/c-api/arg.rst:205 +#: ../Doc/c-api/arg.rst:221 msgid "" "It requires three arguments. The first is only used as input, and must be " "a :c:type:`const char\\*` which points to the name of an encoding as a NUL-" @@ -437,11 +444,11 @@ msgid "" "will be set to the number of bytes in the output buffer." msgstr "" -#: ../Doc/c-api/arg.rst:215 +#: ../Doc/c-api/arg.rst:231 msgid "There are two modes of operation:" msgstr "Il existe deux modes de fonctionnement :" -#: ../Doc/c-api/arg.rst:217 +#: ../Doc/c-api/arg.rst:233 msgid "" "If *\\*buffer* points a *NULL* pointer, the function will allocate a buffer " "of the needed size, copy the encoded data into this buffer and set *" @@ -450,7 +457,7 @@ msgid "" "after usage." msgstr "" -#: ../Doc/c-api/arg.rst:222 +#: ../Doc/c-api/arg.rst:238 msgid "" "If *\\*buffer* points to a non-*NULL* pointer (an already allocated " "buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " @@ -459,7 +466,7 @@ msgid "" "the buffer is not large enough, a :exc:`ValueError` will be set." msgstr "" -#: ../Doc/c-api/arg.rst:228 +#: ../Doc/c-api/arg.rst:244 msgid "" "In both cases, *\\*buffer_length* is set to the length of the encoded data " "without the trailing NUL byte." @@ -467,28 +474,28 @@ msgstr "" "Dans les deux cas, *\\*buffer_length* est la longueur des données encodées, " "sans l'octet NUL de fin." -#: ../Doc/c-api/arg.rst:234 +#: ../Doc/c-api/arg.rst:250 msgid "" "``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " "\\*encoding, char \\*\\*buffer, int \\*buffer_length]" msgstr "" -#: ../Doc/c-api/arg.rst:232 +#: ../Doc/c-api/arg.rst:248 msgid "" "Same as ``es#`` except that byte string objects are passed through without " "recoding them. Instead, the implementation assumes that the byte string " "object uses the encoding passed in as parameter." msgstr "" -#: ../Doc/c-api/arg.rst:237 +#: ../Doc/c-api/arg.rst:253 msgid "Numbers" msgstr "Les nombres" -#: ../Doc/c-api/arg.rst:241 +#: ../Doc/c-api/arg.rst:257 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "``b`` (:class:`int`) [unsigned char]" -#: ../Doc/c-api/arg.rst:240 +#: ../Doc/c-api/arg.rst:256 msgid "" "Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" "c:type:`unsigned char`." @@ -496,11 +503,11 @@ msgstr "" "Convertit un entier Python positif ou nul en un unsigned tiny int, stocké " "dans un :c:type:`unsigned char` C." -#: ../Doc/c-api/arg.rst:245 ../Doc/c-api/arg.rst:583 +#: ../Doc/c-api/arg.rst:261 ../Doc/c-api/arg.rst:600 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "``B`` (:class:`int`) [unsigned char]" -#: ../Doc/c-api/arg.rst:244 +#: ../Doc/c-api/arg.rst:260 msgid "" "Convert a Python integer to a tiny int without overflow checking, stored in " "a C :c:type:`unsigned char`." @@ -508,19 +515,19 @@ msgstr "" "Convertit un entier Python en un tiny int sans vérifier le débordement, " "stocké dans un :c:type:`unsigned char` C." -#: ../Doc/c-api/arg.rst:248 ../Doc/c-api/arg.rst:577 +#: ../Doc/c-api/arg.rst:264 ../Doc/c-api/arg.rst:594 msgid "``h`` (:class:`int`) [short int]" msgstr "``h`` (:class:`int`) [short int]" -#: ../Doc/c-api/arg.rst:248 +#: ../Doc/c-api/arg.rst:264 msgid "Convert a Python integer to a C :c:type:`short int`." msgstr "Convertit un entier Python en un :c:type:`short int` C." -#: ../Doc/c-api/arg.rst:252 ../Doc/c-api/arg.rst:586 +#: ../Doc/c-api/arg.rst:268 ../Doc/c-api/arg.rst:603 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "``H`` (:class:`int`) [unsigned short int]" -#: ../Doc/c-api/arg.rst:251 +#: ../Doc/c-api/arg.rst:267 msgid "" "Convert a Python integer to a C :c:type:`unsigned short int`, without " "overflow checking." @@ -528,19 +535,19 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned short int` C, sans " "contrôle de débordement." -#: ../Doc/c-api/arg.rst:255 ../Doc/c-api/arg.rst:571 +#: ../Doc/c-api/arg.rst:271 ../Doc/c-api/arg.rst:588 msgid "``i`` (:class:`int`) [int]" msgstr "``i`` (:class:`int`) [int]" -#: ../Doc/c-api/arg.rst:255 +#: ../Doc/c-api/arg.rst:271 msgid "Convert a Python integer to a plain C :c:type:`int`." msgstr "Convertit un entier Python en un :c:type:`int` C." -#: ../Doc/c-api/arg.rst:259 ../Doc/c-api/arg.rst:589 +#: ../Doc/c-api/arg.rst:275 ../Doc/c-api/arg.rst:606 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "``I`` (:class:`int`) [unsigned int]" -#: ../Doc/c-api/arg.rst:258 +#: ../Doc/c-api/arg.rst:274 msgid "" "Convert a Python integer to a C :c:type:`unsigned int`, without overflow " "checking." @@ -548,19 +555,19 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned int` C, sans contrôle de " "le débordement." -#: ../Doc/c-api/arg.rst:262 ../Doc/c-api/arg.rst:580 +#: ../Doc/c-api/arg.rst:278 ../Doc/c-api/arg.rst:597 msgid "``l`` (:class:`int`) [long int]" msgstr "``l`` (:class:`int`) [long int]" -#: ../Doc/c-api/arg.rst:262 +#: ../Doc/c-api/arg.rst:278 msgid "Convert a Python integer to a C :c:type:`long int`." msgstr "Convertit un entier Python en un :c:type:`long int`." -#: ../Doc/c-api/arg.rst:266 ../Doc/c-api/arg.rst:592 +#: ../Doc/c-api/arg.rst:282 ../Doc/c-api/arg.rst:609 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "``k`` (:class:`int`) [unsigned long]" -#: ../Doc/c-api/arg.rst:265 +#: ../Doc/c-api/arg.rst:281 msgid "" "Convert a Python integer to a C :c:type:`unsigned long` without overflow " "checking." @@ -568,37 +575,37 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier " "le débordement." -#: ../Doc/c-api/arg.rst:269 ../Doc/c-api/arg.rst:595 +#: ../Doc/c-api/arg.rst:285 ../Doc/c-api/arg.rst:612 msgid "``L`` (:class:`int`) [long long]" msgstr "``L`` (:class:`int`) [long long]" -#: ../Doc/c-api/arg.rst:269 +#: ../Doc/c-api/arg.rst:285 msgid "Convert a Python integer to a C :c:type:`long long`." msgstr "" -#: ../Doc/c-api/arg.rst:273 ../Doc/c-api/arg.rst:598 +#: ../Doc/c-api/arg.rst:289 ../Doc/c-api/arg.rst:615 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "``K`` (:class:`int`) [unsigned long long]" -#: ../Doc/c-api/arg.rst:272 +#: ../Doc/c-api/arg.rst:288 msgid "" "Convert a Python integer to a C :c:type:`unsigned long long` without " "overflow checking." msgstr "" -#: ../Doc/c-api/arg.rst:276 ../Doc/c-api/arg.rst:601 +#: ../Doc/c-api/arg.rst:292 ../Doc/c-api/arg.rst:618 msgid "``n`` (:class:`int`) [Py_ssize_t]" msgstr "``n`` (:class:`int`) [Py_ssize_t]" -#: ../Doc/c-api/arg.rst:276 +#: ../Doc/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." -#: ../Doc/c-api/arg.rst:283 +#: ../Doc/c-api/arg.rst:299 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "``c`` (:class:`bytes` ou :class:`bytearray` of length 1) [char]" -#: ../Doc/c-api/arg.rst:279 +#: ../Doc/c-api/arg.rst:295 msgid "" "Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " "object of length 1, to a C :c:type:`char`." @@ -606,15 +613,15 @@ msgstr "" "Convertit un octet Python, représenté comme un objet :class:`bytes` ou :" "class:`bytearray` de longueur 1, en un :c:type:`char` C." -#: ../Doc/c-api/arg.rst:282 +#: ../Doc/c-api/arg.rst:298 msgid "Allow :class:`bytearray` objects." msgstr "" -#: ../Doc/c-api/arg.rst:287 ../Doc/c-api/arg.rst:609 +#: ../Doc/c-api/arg.rst:303 ../Doc/c-api/arg.rst:626 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "``C`` (:class:`str` of length 1) [int]" -#: ../Doc/c-api/arg.rst:286 +#: ../Doc/c-api/arg.rst:302 msgid "" "Convert a Python character, represented as a :class:`str` object of length " "1, to a C :c:type:`int`." @@ -622,41 +629,41 @@ msgstr "" "Convertit un caractère Python, représenté comme un objet :class:`str` de " "longueur 1, en un :c:type:`int` C." -#: ../Doc/c-api/arg.rst:290 ../Doc/c-api/arg.rst:615 +#: ../Doc/c-api/arg.rst:306 ../Doc/c-api/arg.rst:632 msgid "``f`` (:class:`float`) [float]" msgstr "``f`` (:class:`float`) [float]" -#: ../Doc/c-api/arg.rst:290 +#: ../Doc/c-api/arg.rst:306 msgid "Convert a Python floating point number to a C :c:type:`float`." msgstr "Convertit un nombre flottant Python vers un :c:type:`float`." -#: ../Doc/c-api/arg.rst:293 ../Doc/c-api/arg.rst:612 +#: ../Doc/c-api/arg.rst:309 ../Doc/c-api/arg.rst:629 msgid "``d`` (:class:`float`) [double]" msgstr "``d`` (:class:`float`) [double]" -#: ../Doc/c-api/arg.rst:293 +#: ../Doc/c-api/arg.rst:309 msgid "Convert a Python floating point number to a C :c:type:`double`." msgstr "Convertit un nombre flottant Python vers un :c:type:`double` C." -#: ../Doc/c-api/arg.rst:296 +#: ../Doc/c-api/arg.rst:312 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "``D`` (:class:`complex`) [Py_complex]" -#: ../Doc/c-api/arg.rst:296 +#: ../Doc/c-api/arg.rst:312 msgid "Convert a Python complex number to a C :c:type:`Py_complex` structure." msgstr "" "Convertit un nombre complexe Python vers une structure :c:type:`Py_complex` " "C." -#: ../Doc/c-api/arg.rst:299 +#: ../Doc/c-api/arg.rst:315 msgid "Other objects" msgstr "Autres objets" -#: ../Doc/c-api/arg.rst:304 ../Doc/c-api/arg.rst:626 +#: ../Doc/c-api/arg.rst:320 ../Doc/c-api/arg.rst:643 msgid "``O`` (object) [PyObject \\*]" msgstr "``O`` (object) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:302 +#: ../Doc/c-api/arg.rst:318 msgid "" "Store a Python object (without any conversion) in a C object pointer. The C " "program thus receives the actual object that was passed. The object's " @@ -667,11 +674,11 @@ msgstr "" "référence sur l'objet n'est pas incrémenté. Le pointeur stocké n'est pas " "*NULL*." -#: ../Doc/c-api/arg.rst:311 +#: ../Doc/c-api/arg.rst:327 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (object) [*typeobject*, PyObject \\*]" -#: ../Doc/c-api/arg.rst:307 +#: ../Doc/c-api/arg.rst:323 msgid "" "Store a Python object in a C object pointer. This is similar to ``O``, but " "takes two C arguments: the first is the address of a Python type object, the " @@ -680,11 +687,11 @@ msgid "" "required type, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/c-api/arg.rst:336 ../Doc/c-api/arg.rst:640 +#: ../Doc/c-api/arg.rst:352 ../Doc/c-api/arg.rst:657 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "``O&`` (object) [*converter*, *anything*]" -#: ../Doc/c-api/arg.rst:316 +#: ../Doc/c-api/arg.rst:332 msgid "" "Convert a Python object to a C variable through a *converter* function. " "This takes two arguments: the first is a function, the second is the address " @@ -692,7 +699,7 @@ msgid "" "*converter* function in turn is called as follows::" msgstr "" -#: ../Doc/c-api/arg.rst:323 +#: ../Doc/c-api/arg.rst:339 msgid "" "where *object* is the Python object to be converted and *address* is the :c:" "type:`void\\*` argument that was passed to the :c:func:`PyArg_Parse\\*` " @@ -702,7 +709,7 @@ msgid "" "*address* unmodified." msgstr "" -#: ../Doc/c-api/arg.rst:329 +#: ../Doc/c-api/arg.rst:345 msgid "" "If the *converter* returns ``Py_CLEANUP_SUPPORTED``, it may get called a " "second time if the argument parsing eventually fails, giving the converter a " @@ -711,15 +718,15 @@ msgid "" "value as in the original call." msgstr "" -#: ../Doc/c-api/arg.rst:335 +#: ../Doc/c-api/arg.rst:351 msgid "``Py_CLEANUP_SUPPORTED`` was added." msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté." -#: ../Doc/c-api/arg.rst:345 +#: ../Doc/c-api/arg.rst:361 msgid "``p`` (:class:`bool`) [int]" msgstr "``p`` (:class:`bool`) [int]" -#: ../Doc/c-api/arg.rst:339 +#: ../Doc/c-api/arg.rst:355 msgid "" "Tests the value passed in for truth (a boolean **p**\\ redicate) and " "converts the result to its equivalent C true/false integer value. Sets the " @@ -728,11 +735,11 @@ msgid "" "how Python tests values for truth." msgstr "" -#: ../Doc/c-api/arg.rst:350 ../Doc/c-api/arg.rst:643 +#: ../Doc/c-api/arg.rst:366 ../Doc/c-api/arg.rst:660 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:348 +#: ../Doc/c-api/arg.rst:364 msgid "" "The object must be a Python sequence whose length is the number of format " "units in *items*. The C arguments must correspond to the individual format " @@ -743,7 +750,7 @@ msgstr "" "chaque unité de format particulière dans *articles*. Les unités de formats " "pour les séquences peuvent être imbriquées." -#: ../Doc/c-api/arg.rst:352 +#: ../Doc/c-api/arg.rst:368 msgid "" "It is possible to pass \"long\" integers (integers whose value exceeds the " "platform's :const:`LONG_MAX`) however no proper range checking is done --- " @@ -752,7 +759,7 @@ msgid "" "downcasts in C --- your mileage may vary)." msgstr "" -#: ../Doc/c-api/arg.rst:358 +#: ../Doc/c-api/arg.rst:374 msgid "" "A few other characters have a meaning in a format string. These may not " "occur inside nested parentheses. They are:" @@ -760,11 +767,11 @@ msgstr "" "Quelques autres caractères ont un sens dans une chaîne de format. On ne doit " "pas les trouvées dans des parenthèses imbriquées. Ce sont :" -#: ../Doc/c-api/arg.rst:366 +#: ../Doc/c-api/arg.rst:382 msgid "``|``" msgstr "" -#: ../Doc/c-api/arg.rst:362 +#: ../Doc/c-api/arg.rst:378 msgid "" "Indicates that the remaining arguments in the Python argument list are " "optional. The C variables corresponding to optional arguments should be " @@ -773,11 +780,11 @@ msgid "" "corresponding C variable(s)." msgstr "" -#: ../Doc/c-api/arg.rst:375 +#: ../Doc/c-api/arg.rst:391 msgid "``$``" msgstr "" -#: ../Doc/c-api/arg.rst:369 +#: ../Doc/c-api/arg.rst:385 msgid "" ":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " "arguments in the Python argument list are keyword-only. Currently, all " @@ -785,22 +792,22 @@ msgid "" "be specified before ``$`` in the format string." msgstr "" -#: ../Doc/c-api/arg.rst:380 +#: ../Doc/c-api/arg.rst:396 msgid "``:``" msgstr "" -#: ../Doc/c-api/arg.rst:378 +#: ../Doc/c-api/arg.rst:394 msgid "" "The list of format units ends here; the string after the colon is used as " "the function name in error messages (the \"associated value\" of the " "exception that :c:func:`PyArg_ParseTuple` raises)." msgstr "" -#: ../Doc/c-api/arg.rst:385 +#: ../Doc/c-api/arg.rst:401 msgid "``;``" msgstr "" -#: ../Doc/c-api/arg.rst:383 +#: ../Doc/c-api/arg.rst:399 msgid "" "The list of format units ends here; the string after the semicolon is used " "as the error message *instead* of the default error message. ``:`` and ``;" @@ -810,7 +817,7 @@ msgstr "" "virgule est utilise comme message d'erreur *au lieu* du message d'erreur par " "défaut. ``:`` et ``;`` sont mutuellement exclusifs." -#: ../Doc/c-api/arg.rst:387 +#: ../Doc/c-api/arg.rst:403 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" @@ -819,7 +826,7 @@ msgstr "" "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " "compteur de références !" -#: ../Doc/c-api/arg.rst:390 +#: ../Doc/c-api/arg.rst:406 msgid "" "Additional arguments passed to these functions must be addresses of " "variables whose type is determined by the format string; these are used to " @@ -836,7 +843,7 @@ msgstr "" "devraient correspondre à ce qui est spécifié pour l'unité de format " "correspondante." -#: ../Doc/c-api/arg.rst:396 +#: ../Doc/c-api/arg.rst:412 msgid "" "For the conversion to succeed, the *arg* object must match the format and " "the format must be exhausted. On success, the :c:func:`PyArg_Parse\\*` " @@ -847,24 +854,24 @@ msgid "" "untouched." msgstr "" -#: ../Doc/c-api/arg.rst:405 +#: ../Doc/c-api/arg.rst:421 msgid "API Functions" msgstr "Fonction de l'API" -#: ../Doc/c-api/arg.rst:409 +#: ../Doc/c-api/arg.rst:425 msgid "" "Parse the parameters of a function that takes only positional parameters " "into local variables. Returns true on success; on failure, it returns false " "and raises the appropriate exception." msgstr "" -#: ../Doc/c-api/arg.rst:416 +#: ../Doc/c-api/arg.rst:432 msgid "" "Identical to :c:func:`PyArg_ParseTuple`, except that it accepts a va_list " "rather than a variable number of arguments." msgstr "" -#: ../Doc/c-api/arg.rst:422 +#: ../Doc/c-api/arg.rst:438 msgid "" "Parse the parameters of a function that takes both positional and keyword " "parameters into local variables. The *keywords* argument is a *NULL*-" @@ -873,26 +880,26 @@ msgid "" "success; on failure, it returns false and raises the appropriate exception." msgstr "" -#: ../Doc/c-api/arg.rst:429 +#: ../Doc/c-api/arg.rst:445 msgid "" "Added support for :ref:`positional-only parameters `." msgstr "" -#: ../Doc/c-api/arg.rst:436 +#: ../Doc/c-api/arg.rst:452 msgid "" "Identical to :c:func:`PyArg_ParseTupleAndKeywords`, except that it accepts a " "va_list rather than a variable number of arguments." msgstr "" -#: ../Doc/c-api/arg.rst:442 +#: ../Doc/c-api/arg.rst:458 msgid "" "Ensure that the keys in the keywords argument dictionary are strings. This " "is only needed if :c:func:`PyArg_ParseTupleAndKeywords` is not used, since " "the latter already does this check." msgstr "" -#: ../Doc/c-api/arg.rst:452 +#: ../Doc/c-api/arg.rst:468 msgid "" "Function used to deconstruct the argument lists of \"old-style\" functions " "--- these are functions which use the :const:`METH_OLDARGS` parameter " @@ -903,7 +910,7 @@ msgid "" "continue to be used for that purpose." msgstr "" -#: ../Doc/c-api/arg.rst:463 +#: ../Doc/c-api/arg.rst:479 msgid "" "A simpler form of parameter retrieval which does not use a format string to " "specify the types of the arguments. Functions which use this method to " @@ -921,23 +928,23 @@ msgid "" "a failure." msgstr "" -#: ../Doc/c-api/arg.rst:477 +#: ../Doc/c-api/arg.rst:493 msgid "" "This is an example of the use of this function, taken from the sources for " "the :mod:`_weakref` helper module for weak references::" msgstr "" -#: ../Doc/c-api/arg.rst:493 +#: ../Doc/c-api/arg.rst:509 msgid "" "The call to :c:func:`PyArg_UnpackTuple` in this example is entirely " "equivalent to this call to :c:func:`PyArg_ParseTuple`::" msgstr "" -#: ../Doc/c-api/arg.rst:501 +#: ../Doc/c-api/arg.rst:517 msgid "Building values" msgstr "Construction des valeurs" -#: ../Doc/c-api/arg.rst:505 +#: ../Doc/c-api/arg.rst:521 msgid "" "Create a new value based on a format string similar to those accepted by " "the :c:func:`PyArg_Parse\\*` family of functions and a sequence of values. " @@ -945,7 +952,7 @@ msgid "" "raised if *NULL* is returned." msgstr "" -#: ../Doc/c-api/arg.rst:510 +#: ../Doc/c-api/arg.rst:526 msgid "" ":c:func:`Py_BuildValue` does not always build a tuple. It builds a tuple " "only if its format string contains two or more format units. If the format " @@ -954,7 +961,7 @@ msgid "" "it to return a tuple of size 0 or one, parenthesize the format string." msgstr "" -#: ../Doc/c-api/arg.rst:516 +#: ../Doc/c-api/arg.rst:532 msgid "" "When memory buffers are passed as parameters to supply data to build " "objects, as for the ``s`` and ``s#`` formats, the required data is copied. " @@ -965,7 +972,7 @@ msgid "" "`Py_BuildValue` returns." msgstr "" -#: ../Doc/c-api/arg.rst:524 +#: ../Doc/c-api/arg.rst:540 msgid "" "In the following description, the quoted form is the format unit; the entry " "in (round) parentheses is the Python object type that the format unit will " @@ -973,173 +980,183 @@ msgid "" "be passed." msgstr "" -#: ../Doc/c-api/arg.rst:528 +#: ../Doc/c-api/arg.rst:544 msgid "" "The characters space, tab, colon and comma are ignored in format strings " "(but not within format units such as ``s#``). This can be used to make long " "format strings a tad more readable." msgstr "" -#: ../Doc/c-api/arg.rst:534 +#: ../Doc/c-api/arg.rst:550 msgid "``s`` (:class:`str` or ``None``) [char \\*]" msgstr "``s`` (:class:`str` ou ``None``) [char \\*]" -#: ../Doc/c-api/arg.rst:533 +#: ../Doc/c-api/arg.rst:549 msgid "" "Convert a null-terminated C string to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is *NULL*, ``None`` is used." msgstr "" -#: ../Doc/c-api/arg.rst:539 +#: ../Doc/c-api/arg.rst:555 msgid "``s#`` (:class:`str` or ``None``) [char \\*, int]" msgstr "``s#`` (:class:`str` ou ``None``) [char \\*, int]" -#: ../Doc/c-api/arg.rst:537 +#: ../Doc/c-api/arg.rst:553 msgid "" "Convert a C string and its length to a Python :class:`str` object using " "``'utf-8'`` encoding. If the C string pointer is *NULL*, the length is " "ignored and ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:543 +#: ../Doc/c-api/arg.rst:559 msgid "``y`` (:class:`bytes`) [char \\*]" msgstr "``y`` (:class:`bytes`) [char \\*]" -#: ../Doc/c-api/arg.rst:542 +#: ../Doc/c-api/arg.rst:558 msgid "" "This converts a C string to a Python :class:`bytes` object. If the C string " "pointer is *NULL*, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:547 +#: ../Doc/c-api/arg.rst:563 msgid "``y#`` (:class:`bytes`) [char \\*, int]" msgstr "``y#`` (:class:`bytes`) [char \\*, int]" -#: ../Doc/c-api/arg.rst:546 +#: ../Doc/c-api/arg.rst:562 msgid "" "This converts a C string and its lengths to a Python object. If the C " "string pointer is *NULL*, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:550 +#: ../Doc/c-api/arg.rst:566 msgid "``z`` (:class:`str` or ``None``) [char \\*]" msgstr "``z`` (:class:`str` ou ``None``) [char \\*]" -#: ../Doc/c-api/arg.rst:550 ../Doc/c-api/arg.rst:565 +#: ../Doc/c-api/arg.rst:566 ../Doc/c-api/arg.rst:582 msgid "Same as ``s``." msgstr "" -#: ../Doc/c-api/arg.rst:553 +#: ../Doc/c-api/arg.rst:569 msgid "``z#`` (:class:`str` or ``None``) [char \\*, int]" msgstr "``z#`` (:class:`str` ou ``None``) [char \\*, int]" -#: ../Doc/c-api/arg.rst:553 ../Doc/c-api/arg.rst:568 +#: ../Doc/c-api/arg.rst:569 ../Doc/c-api/arg.rst:585 msgid "Same as ``s#``." msgstr "" -#: ../Doc/c-api/arg.rst:556 +#: ../Doc/c-api/arg.rst:574 +#, fuzzy +msgid "``u`` (:class:`str`) [wchar_t \\*]" +msgstr "``s`` (:class:`str`) [const char \\*]" + +#: ../Doc/c-api/arg.rst:572 msgid "" -"Convert a null-terminated buffer of Unicode (UCS-2 or UCS-4) data to a " -"Python Unicode object. If the Unicode buffer pointer is *NULL*, ``None`` is " -"returned." +"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " +"UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " +"*NULL*, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:560 +#: ../Doc/c-api/arg.rst:579 +#, fuzzy +msgid "``u#`` (:class:`str`) [wchar_t \\*, int]" +msgstr "``y#`` (:class:`bytes`) [char \\*, int]" + +#: ../Doc/c-api/arg.rst:577 msgid "" -"Convert a Unicode (UCS-2 or UCS-4) data buffer and its length to a Python " +"Convert a Unicode (UTF-16 or UCS-4) data buffer and its length to a Python " "Unicode object. If the Unicode buffer pointer is *NULL*, the length is " "ignored and ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:565 +#: ../Doc/c-api/arg.rst:582 msgid "``U`` (:class:`str` or ``None``) [char \\*]" msgstr "``U`` (:class:`str` ou ``None``) [char \\*]" -#: ../Doc/c-api/arg.rst:568 +#: ../Doc/c-api/arg.rst:585 msgid "``U#`` (:class:`str` or ``None``) [char \\*, int]" msgstr "``U#`` (:class:`str` ou ``None``) [char \\*, int]" -#: ../Doc/c-api/arg.rst:571 +#: ../Doc/c-api/arg.rst:588 msgid "Convert a plain C :c:type:`int` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:574 +#: ../Doc/c-api/arg.rst:591 msgid "``b`` (:class:`int`) [char]" msgstr "``b`` (:class:`int`) [char]" -#: ../Doc/c-api/arg.rst:574 +#: ../Doc/c-api/arg.rst:591 msgid "Convert a plain C :c:type:`char` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:577 +#: ../Doc/c-api/arg.rst:594 msgid "Convert a plain C :c:type:`short int` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:580 +#: ../Doc/c-api/arg.rst:597 msgid "Convert a C :c:type:`long int` to a Python integer object." msgstr "Convertit un :c:type:`long int` en un int Python." -#: ../Doc/c-api/arg.rst:583 +#: ../Doc/c-api/arg.rst:600 msgid "Convert a C :c:type:`unsigned char` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:586 +#: ../Doc/c-api/arg.rst:603 msgid "Convert a C :c:type:`unsigned short int` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:589 +#: ../Doc/c-api/arg.rst:606 msgid "Convert a C :c:type:`unsigned int` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:592 +#: ../Doc/c-api/arg.rst:609 msgid "Convert a C :c:type:`unsigned long` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:595 +#: ../Doc/c-api/arg.rst:612 msgid "Convert a C :c:type:`long long` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:598 +#: ../Doc/c-api/arg.rst:615 msgid "Convert a C :c:type:`unsigned long long` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:601 +#: ../Doc/c-api/arg.rst:618 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "" -#: ../Doc/c-api/arg.rst:605 +#: ../Doc/c-api/arg.rst:622 msgid "``c`` (:class:`bytes` of length 1) [char]" msgstr "``c`` (:class:`bytes` de taille 1) [char]" -#: ../Doc/c-api/arg.rst:604 +#: ../Doc/c-api/arg.rst:621 msgid "" "Convert a C :c:type:`int` representing a byte to a Python :class:`bytes` " "object of length 1." msgstr "" -#: ../Doc/c-api/arg.rst:608 +#: ../Doc/c-api/arg.rst:625 msgid "" "Convert a C :c:type:`int` representing a character to Python :class:`str` " "object of length 1." msgstr "" -#: ../Doc/c-api/arg.rst:612 +#: ../Doc/c-api/arg.rst:629 msgid "Convert a C :c:type:`double` to a Python floating point number." msgstr "" -#: ../Doc/c-api/arg.rst:615 +#: ../Doc/c-api/arg.rst:632 msgid "Convert a C :c:type:`float` to a Python floating point number." msgstr "" -#: ../Doc/c-api/arg.rst:618 +#: ../Doc/c-api/arg.rst:635 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "``D`` (:class:`complex`) [Py_complex \\*]" -#: ../Doc/c-api/arg.rst:618 +#: ../Doc/c-api/arg.rst:635 msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." msgstr "" -#: ../Doc/c-api/arg.rst:621 +#: ../Doc/c-api/arg.rst:638 msgid "" "Pass a Python object untouched (except for its reference count, which is " "incremented by one). If the object passed in is a *NULL* pointer, it is " @@ -1149,26 +1166,26 @@ msgid "" "yet, :exc:`SystemError` is set." msgstr "" -#: ../Doc/c-api/arg.rst:629 +#: ../Doc/c-api/arg.rst:646 msgid "``S`` (object) [PyObject \\*]" msgstr "``S`` (object) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:629 +#: ../Doc/c-api/arg.rst:646 msgid "Same as ``O``." msgstr "" -#: ../Doc/c-api/arg.rst:634 +#: ../Doc/c-api/arg.rst:651 msgid "``N`` (object) [PyObject \\*]" msgstr "``N`` (object) [PyObject \\*]" -#: ../Doc/c-api/arg.rst:632 +#: ../Doc/c-api/arg.rst:649 msgid "" "Same as ``O``, except it doesn't increment the reference count on the " "object. Useful when the object is created by a call to an object constructor " "in the argument list." msgstr "" -#: ../Doc/c-api/arg.rst:637 +#: ../Doc/c-api/arg.rst:654 msgid "" "Convert *anything* to a Python object through a *converter* function. The " "function is called with *anything* (which should be compatible with :c:type:" @@ -1176,40 +1193,40 @@ msgid "" "*NULL* if an error occurred." msgstr "" -#: ../Doc/c-api/arg.rst:643 +#: ../Doc/c-api/arg.rst:660 msgid "" "Convert a sequence of C values to a Python tuple with the same number of " "items." msgstr "" -#: ../Doc/c-api/arg.rst:646 +#: ../Doc/c-api/arg.rst:663 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "``[items]`` (:class:`list`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:646 +#: ../Doc/c-api/arg.rst:663 msgid "" "Convert a sequence of C values to a Python list with the same number of " "items." msgstr "" -#: ../Doc/c-api/arg.rst:651 +#: ../Doc/c-api/arg.rst:668 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "``{items}`` (:class:`dict`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:649 +#: ../Doc/c-api/arg.rst:666 msgid "" "Convert a sequence of C values to a Python dictionary. Each pair of " "consecutive C values adds one item to the dictionary, serving as key and " "value, respectively." msgstr "" -#: ../Doc/c-api/arg.rst:653 +#: ../Doc/c-api/arg.rst:670 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " "is set and *NULL* returned." msgstr "" -#: ../Doc/c-api/arg.rst:658 +#: ../Doc/c-api/arg.rst:675 msgid "" "Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " "rather than a variable number of arguments." diff --git a/c-api/buffer.po b/c-api/buffer.po index 969f47aab..d43265966 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -622,33 +622,44 @@ msgstr "" #: ../Doc/c-api/buffer.rst:478 msgid "" +"Copy *len* bytes from *src* to its contiguous representation in *buf*. " +"*order* can be ``'C'`` or ``'F'`` (for C-style or Fortran-style ordering). " +"``0`` is returned on success, ``-1`` on error." +msgstr "" + +#: ../Doc/c-api/buffer.rst:482 +msgid "This function fails if *len* != *src->len*." +msgstr "" + +#: ../Doc/c-api/buffer.rst:487 +msgid "" "Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " "if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " "given shape with the given number of bytes per element." msgstr "" -#: ../Doc/c-api/buffer.rst:485 +#: ../Doc/c-api/buffer.rst:494 msgid "" "Handle buffer requests for an exporter that wants to expose *buf* of size " "*len* with writability set according to *readonly*. *buf* is interpreted as " "a sequence of unsigned bytes." msgstr "" -#: ../Doc/c-api/buffer.rst:489 +#: ../Doc/c-api/buffer.rst:498 msgid "" "The *flags* argument indicates the request type. This function always fills " "in *view* as specified by flags, unless *buf* has been designated as read-" "only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." msgstr "" -#: ../Doc/c-api/buffer.rst:493 +#: ../Doc/c-api/buffer.rst:502 msgid "" "On success, set :c:member:`view->obj` to a new reference to *exporter* and " "return 0. Otherwise, raise :c:data:`PyExc_BufferError`, set :c:member:`view-" ">obj` to *NULL* and return ``-1``;" msgstr "" -#: ../Doc/c-api/buffer.rst:497 +#: ../Doc/c-api/buffer.rst:506 msgid "" "If this function is used as part of a :ref:`getbufferproc `, " "*exporter* MUST be set to the exporting object and *flags* must be passed " diff --git a/distutils/configfile.po b/distutils/configfile.po index e05e3e941..2daae7c87 100644 --- a/distutils/configfile.po +++ b/distutils/configfile.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -64,10 +64,10 @@ msgid "" msgstr "" #: ../Doc/distutils/configfile.rst:39 -msgid "The basic syntax of the configuration file is simple::" +msgid "The basic syntax of the configuration file is simple:" msgstr "" -#: ../Doc/distutils/configfile.rst:45 +#: ../Doc/distutils/configfile.rst:47 msgid "" "where *command* is one of the Distutils commands (e.g. :command:`build_py`, :" "command:`install`), and *option* is one of the options that command " @@ -78,37 +78,37 @@ msgid "" "by indenting the continuation lines." msgstr "" -#: ../Doc/distutils/configfile.rst:53 +#: ../Doc/distutils/configfile.rst:55 msgid "" "You can find out the list of options supported by a particular command with " -"the universal :option:`!--help` option, e.g. ::" +"the universal :option:`!--help` option, e.g." msgstr "" -#: ../Doc/distutils/configfile.rst:69 +#: ../Doc/distutils/configfile.rst:73 msgid "" "Note that an option spelled :option:`!--foo-bar` on the command-line is " "spelled ``foo_bar`` in configuration files." msgstr "" -#: ../Doc/distutils/configfile.rst:74 +#: ../Doc/distutils/configfile.rst:78 msgid "" "For example, say you want your extensions to be built \"in-place\"---that " "is, you have an extension :mod:`pkg.ext`, and you want the compiled " "extension file (:file:`ext.so` on Unix, say) to be put in the same source " "directory as your pure Python modules :mod:`pkg.mod1` and :mod:`pkg.mod2`. " "You can always use the :option:`!--inplace` option on the command-line to " -"ensure this::" +"ensure this:" msgstr "" -#: ../Doc/distutils/configfile.rst:82 +#: ../Doc/distutils/configfile.rst:88 msgid "" "But this requires that you always specify the :command:`build_ext` command " "explicitly, and remember to provide :option:`!--inplace`. An easier way is " "to \"set and forget\" this option, by encoding it in :file:`setup.cfg`, the " -"configuration file for this distribution::" +"configuration file for this distribution:" msgstr "" -#: ../Doc/distutils/configfile.rst:90 +#: ../Doc/distutils/configfile.rst:98 msgid "" "This will affect all builds of this module distribution, whether or not you " "explicitly specify :command:`build_ext`. If you include :file:`setup.cfg` " @@ -121,7 +121,7 @@ msgid "" "always a bad idea, though.)" msgstr "" -#: ../Doc/distutils/configfile.rst:99 +#: ../Doc/distutils/configfile.rst:107 msgid "" "Another example: certain commands take a lot of options that don't change " "from run to run; for example, :command:`bdist_rpm` needs to know everything " @@ -130,30 +130,30 @@ msgid "" "generated by the Distutils (such as the list of files installed). But some " "of it has to be supplied as options to :command:`bdist_rpm`, which would be " "very tedious to do on the command-line for every run. Hence, here is a " -"snippet from the Distutils' own :file:`setup.cfg`::" +"snippet from the Distutils' own :file:`setup.cfg`:" msgstr "" -#: ../Doc/distutils/configfile.rst:117 +#: ../Doc/distutils/configfile.rst:127 msgid "" "Note that the ``doc_files`` option is simply a whitespace-separated string " "split across multiple lines for readability." msgstr "" -#: ../Doc/distutils/configfile.rst:124 +#: ../Doc/distutils/configfile.rst:134 msgid ":ref:`inst-config-syntax` in \"Installing Python Modules\"" msgstr "" -#: ../Doc/distutils/configfile.rst:124 +#: ../Doc/distutils/configfile.rst:134 msgid "" "More information on the configuration files is available in the manual for " "system administrators." msgstr "" -#: ../Doc/distutils/configfile.rst:129 +#: ../Doc/distutils/configfile.rst:139 msgid "Footnotes" msgstr "Notes" -#: ../Doc/distutils/configfile.rst:130 +#: ../Doc/distutils/configfile.rst:140 msgid "" "This ideal probably won't be achieved until auto-configuration is fully " "supported by the Distutils." diff --git a/distutils/introduction.po b/distutils/introduction.po index feac01af5..0dba419d2 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -298,10 +298,9 @@ msgstr "" msgid "" "a collection of Python modules distributed together as a single downloadable " "resource and meant to be installed *en masse*. Examples of some well-known " -"module distributions are NumPy, SciPy, PIL (the Python Imaging Library), or " -"mxBase. (This would be called a *package*, except that term is already " -"taken in the Python context: a single module distribution may contain zero, " -"one, or many Python packages.)" +"module distributions are NumPy, SciPy, Pillow, or mxBase. (This would be " +"called a *package*, except that term is already taken in the Python context: " +"a single module distribution may contain zero, one, or many Python packages.)" msgstr "" #: ../Doc/distutils/introduction.rst:203 diff --git a/distutils/packageindex.po b/distutils/packageindex.po index 3a8afaa72..15f2c05e1 100644 --- a/distutils/packageindex.po +++ b/distutils/packageindex.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-08-10 00:49+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -214,96 +214,96 @@ msgid "" "existence of a :file:`.pypirc` file at the location :file:`$HOME/.pypirc`. " "If this file exists, the command uses the username, password, and repository " "URL configured in the file. The format of a :file:`.pypirc` file is as " -"follows::" +"follows:" msgstr "" -#: ../Doc/distutils/packageindex.rst:170 +#: ../Doc/distutils/packageindex.rst:172 msgid "" "The *distutils* section defines an *index-servers* variable that lists the " "name of all sections describing a repository." msgstr "" -#: ../Doc/distutils/packageindex.rst:173 +#: ../Doc/distutils/packageindex.rst:175 msgid "Each section describing a repository defines three variables:" msgstr "" -#: ../Doc/distutils/packageindex.rst:175 +#: ../Doc/distutils/packageindex.rst:177 msgid "*repository*, that defines the url of the PyPI server. Defaults to" msgstr "" -#: ../Doc/distutils/packageindex.rst:176 +#: ../Doc/distutils/packageindex.rst:178 msgid "``https://upload.pypi.org/legacy/``." msgstr "" -#: ../Doc/distutils/packageindex.rst:177 +#: ../Doc/distutils/packageindex.rst:179 msgid "*username*, which is the registered username on the PyPI server." msgstr "" -#: ../Doc/distutils/packageindex.rst:179 +#: ../Doc/distutils/packageindex.rst:181 msgid "*password*, that will be used to authenticate. If omitted the user" msgstr "" -#: ../Doc/distutils/packageindex.rst:179 +#: ../Doc/distutils/packageindex.rst:181 msgid "will be prompt to type it when needed." msgstr "" -#: ../Doc/distutils/packageindex.rst:181 +#: ../Doc/distutils/packageindex.rst:183 msgid "" "If you want to define another server a new section can be created and listed " -"in the *index-servers* variable::" +"in the *index-servers* variable:" msgstr "" -#: ../Doc/distutils/packageindex.rst:199 +#: ../Doc/distutils/packageindex.rst:203 msgid "" "This allows the :command:`register` and :command:`upload` commands to be " "called with the ``--repository`` option as described in :ref:`package-" "cmdoptions`." msgstr "" -#: ../Doc/distutils/packageindex.rst:203 +#: ../Doc/distutils/packageindex.rst:207 msgid "" "Specifically, you might want to add the `PyPI Test Repository `_ to your ``.pypirc`` to facilitate testing before " "doing your first upload to ``PyPI`` itself." msgstr "" -#: ../Doc/distutils/packageindex.rst:211 +#: ../Doc/distutils/packageindex.rst:215 msgid "PyPI package display" msgstr "" -#: ../Doc/distutils/packageindex.rst:213 +#: ../Doc/distutils/packageindex.rst:217 msgid "" "The ``long_description`` field plays a special role at PyPI. It is used by " "the server to display a home page for the registered package." msgstr "" -#: ../Doc/distutils/packageindex.rst:216 +#: ../Doc/distutils/packageindex.rst:220 msgid "" "If you use the `reStructuredText `_ syntax for this field, PyPI will parse it and display an HTML output " "for the package home page." msgstr "" -#: ../Doc/distutils/packageindex.rst:220 +#: ../Doc/distutils/packageindex.rst:224 msgid "" "The ``long_description`` field can be attached to a text file located in the " "package::" msgstr "" -#: ../Doc/distutils/packageindex.rst:231 +#: ../Doc/distutils/packageindex.rst:235 msgid "" "In that case, :file:`README.txt` is a regular reStructuredText text file " "located in the root of the package besides :file:`setup.py`." msgstr "" -#: ../Doc/distutils/packageindex.rst:234 +#: ../Doc/distutils/packageindex.rst:238 msgid "" "To prevent registering broken reStructuredText content, you can use the :" "program:`rst2html` program that is provided by the :mod:`docutils` package " "and check the ``long_description`` from the command line:" msgstr "" -#: ../Doc/distutils/packageindex.rst:242 +#: ../Doc/distutils/packageindex.rst:246 msgid "" ":mod:`docutils` will display a warning if there's something wrong with your " "syntax. Because PyPI applies additional checks (e.g. by passing ``--no-" diff --git a/extending/extending.po b/extending/extending.po index 60dbfeb5d..8bc9177fd 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-12-01 07:43+0100\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: 2018-02-15 00:36+0100\n" "Last-Translator: \n" "Language-Team: \n" @@ -84,12 +84,13 @@ msgid "A Simple Example" msgstr "Un exemple simple" #: ../Doc/extending/extending.rst:41 +#, fuzzy msgid "" "Let's create an extension module called ``spam`` (the favorite food of Monty " "Python fans...) and let's say we want to create a Python interface to the C " "library function :c:func:`system` [#]_. This function takes a null-" "terminated character string as argument and returns an integer. We want " -"this function to be callable from Python as follows::" +"this function to be callable from Python as follows:" msgstr "" "Créons un module d'extension appelé ``spam`` (la nourriture préférée de fans " "des Monty Python ...) et disons que nous voulons créer une interface Python " @@ -98,7 +99,7 @@ msgstr "" "un entier. Nous voulons que cette fonction soit appelable à partir de Python " "comme suit : ::" -#: ../Doc/extending/extending.rst:50 +#: ../Doc/extending/extending.rst:52 msgid "" "Begin by creating a file :file:`spammodule.c`. (Historically, if a module " "is called ``spam``, the C file containing its implementation is called :file:" @@ -110,11 +111,11 @@ msgstr "" "appelé :file:`spammodule.c`. Si le nom du module est très long, comme " "``spammify``, le nom du module peut être juste :file:`spammify.c`.)" -#: ../Doc/extending/extending.rst:55 +#: ../Doc/extending/extending.rst:57 msgid "The first line of our file can be::" msgstr "La première ligne de notre fichier peut être : ::" -#: ../Doc/extending/extending.rst:59 +#: ../Doc/extending/extending.rst:61 msgid "" "which pulls in the Python API (you can add a comment describing the purpose " "of the module and a copyright notice if you like)." @@ -122,7 +123,7 @@ msgstr "" "qui récupère l'API Python (vous pouvez ajouter un commentaire décrivant le " "but du module et un avis de droit d'auteur si vous le souhaitez)." -#: ../Doc/extending/extending.rst:64 +#: ../Doc/extending/extending.rst:66 msgid "" "Since Python may define some pre-processor definitions which affect the " "standard headers on some systems, you *must* include :file:`Python.h` before " @@ -132,7 +133,7 @@ msgstr "" "les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." "h` avant les en-têtes standards." -#: ../Doc/extending/extending.rst:68 +#: ../Doc/extending/extending.rst:70 msgid "" "All user-visible symbols defined by :file:`Python.h` have a prefix of ``Py`` " "or ``PY``, except those defined in standard header files. For convenience, " @@ -150,7 +151,7 @@ msgstr "" "sur votre système, il déclare les fonctions :c:func:`malloc`, :c:func:`free` " "et :c:func:`realloc` directement." -#: ../Doc/extending/extending.rst:76 +#: ../Doc/extending/extending.rst:78 msgid "" "The next thing we add to our module file is the C function that will be " "called when the Python expression ``spam.system(string)`` is evaluated " @@ -161,7 +162,7 @@ msgstr "" "system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " "être appelée) ::" -#: ../Doc/extending/extending.rst:92 +#: ../Doc/extending/extending.rst:94 msgid "" "There is a straightforward translation from the argument list in Python (for " "example, the single expression ``\"ls -l\"``) to the arguments passed to the " @@ -173,7 +174,7 @@ msgstr "" "La fonction C a toujours deux arguments, appelés par convention *self* et " "*args*." -#: ../Doc/extending/extending.rst:97 +#: ../Doc/extending/extending.rst:99 msgid "" "The *self* argument points to the module object for module-level functions; " "for a method it would point to the object instance." @@ -181,7 +182,7 @@ msgstr "" "Pour les fonctions au niveau du module, l'argument *self* pointe sur l'objet " "module, pour une méthode, il pointe sur l'instance de l'objet." -#: ../Doc/extending/extending.rst:100 +#: ../Doc/extending/extending.rst:102 msgid "" "The *args* argument will be a pointer to a Python tuple object containing " "the arguments. Each item of the tuple corresponds to an argument in the " @@ -202,7 +203,7 @@ msgstr "" "ainsi que les types de variables C dans lequel stocker les valeurs " "converties. Nous en verront plus, plus tard." -#: ../Doc/extending/extending.rst:109 +#: ../Doc/extending/extending.rst:111 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 " @@ -218,11 +219,11 @@ msgstr "" "exception appropriée de sorte que la fonction d'appel puisse renvoyer *NULL* " "immédiatement (comme nous l'avons vu dans l'exemple)." -#: ../Doc/extending/extending.rst:119 +#: ../Doc/extending/extending.rst:121 msgid "Intermezzo: Errors and Exceptions" msgstr "Intermezzo: Les erreurs et exceptions" -#: ../Doc/extending/extending.rst:121 +#: ../Doc/extending/extending.rst:123 msgid "" "An important convention throughout the Python interpreter is the following: " "when a function fails, it should set an exception condition and return an " @@ -249,7 +250,7 @@ msgstr "" "Reference*). Il est important de les connaître pour comprendre comment les " "erreurs sont propagées." -#: ../Doc/extending/extending.rst:132 +#: ../Doc/extending/extending.rst:134 msgid "" "The Python API defines a number of functions to set various types of " "exceptions." @@ -257,7 +258,7 @@ msgstr "" "L'API Python définit un certain nombre de fonctions pour créer différents " "types d'exceptions." -#: ../Doc/extending/extending.rst:134 +#: ../Doc/extending/extending.rst:136 msgid "" "The most common one is :c:func:`PyErr_SetString`. Its arguments are an " "exception object and a C string. The exception object is usually a " @@ -271,7 +272,7 @@ msgstr "" "cause de l'erreur et est convertie en une chaîne Python puis stockée en tant " "que \"valeur associée\" à l'exception." -#: ../Doc/extending/extending.rst:140 +#: ../Doc/extending/extending.rst:142 msgid "" "Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " "exception argument and constructs the associated value by inspection of the " @@ -286,7 +287,7 @@ msgstr "" "arguments: l'exception et sa valeur associée. Vous ne devez pas appliquer :c:" "func:`Py_INCREF` aux objets transmis à ces fonctions." -#: ../Doc/extending/extending.rst:147 +#: ../Doc/extending/extending.rst:149 msgid "" "You can test non-destructively whether an exception has been set with :c:" "func:`PyErr_Occurred`. This returns the current exception object, or *NULL* " @@ -301,7 +302,7 @@ msgstr "" "survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " "de le déterminer à partir de la valeur de retour." -#: ../Doc/extending/extending.rst:153 +#: ../Doc/extending/extending.rst:155 msgid "" "When a function *f* that calls another function *g* detects that the latter " "fails, *f* should itself return an error value (usually *NULL* or ``-1``). " @@ -326,7 +327,7 @@ msgstr "" "d'exécution et essaie de trouver un gestionnaire d'exception spécifié par le " "développeur Python." -#: ../Doc/extending/extending.rst:163 +#: ../Doc/extending/extending.rst:165 msgid "" "(There are situations where a module can actually give a more detailed error " "message by calling another :c:func:`PyErr_\\*` function, and in such cases " @@ -341,7 +342,7 @@ msgstr "" "sur la cause de l'erreur: la plupart des opérations peuvent échouer pour " "tout un tas de raisons)." -#: ../Doc/extending/extending.rst:169 +#: ../Doc/extending/extending.rst:171 msgid "" "To ignore an exception set by a function call that failed, the exception " "condition must be cleared explicitly by calling :c:func:`PyErr_Clear`. The " @@ -356,7 +357,7 @@ msgstr "" "l'interpréteur, mais souhaite la gérer lui-même (peut-être en essayant " "quelque chose d'autre, ou en prétendant que rien n'a mal tourné)." -#: ../Doc/extending/extending.rst:175 +#: ../Doc/extending/extending.rst:177 msgid "" "Every failing :c:func:`malloc` call must be turned into an exception --- the " "direct caller of :c:func:`malloc` (or :c:func:`realloc`) must call :c:func:" @@ -371,7 +372,7 @@ msgstr "" "`PyLong_FromLong`) le font déjà, donc cette note ne concerne que ceux qui " "appellent :c:func:`malloc` directement." -#: ../Doc/extending/extending.rst:181 +#: ../Doc/extending/extending.rst:183 msgid "" "Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " "and friends, functions that return an integer status usually return a " @@ -383,7 +384,7 @@ msgstr "" "donnent généralement une valeur positive ou zéro en cas de succès et ``-1`` " "en cas d'échec, comme les appels du système Unix." -#: ../Doc/extending/extending.rst:185 +#: ../Doc/extending/extending.rst:187 msgid "" "Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` or :" "c:func:`Py_DECREF` calls for objects you have already created) when you " @@ -393,7 +394,7 @@ msgstr "" "de nettoyage (en appelant :c:func:`Py_XDECREF` ou :c:func:`Py_DECREF` avec " "les objets que vous auriez déjà créés) !" -#: ../Doc/extending/extending.rst:189 +#: ../Doc/extending/extending.rst:191 msgid "" "The choice of which exception to raise is entirely yours. There are " "predeclared C objects corresponding to all built-in Python exceptions, such " @@ -417,7 +418,7 @@ msgstr "" "qui doit satisfaire d'autres conditions, :c:data:`PyExc_ValueError` sera " "plus appropriée." -#: ../Doc/extending/extending.rst:199 +#: ../Doc/extending/extending.rst:201 msgid "" "You can also define a new exception that is unique to your module. For this, " "you usually declare a static object variable at the beginning of your file::" @@ -426,7 +427,7 @@ msgstr "" "cela, déclarez simplement une variable statique au début de votre " "fichier : ::" -#: ../Doc/extending/extending.rst:204 +#: ../Doc/extending/extending.rst:206 msgid "" "and initialize it in your module's initialization function (:c:func:" "`PyInit_spam`) with an exception object (leaving out the error checking for " @@ -436,7 +437,7 @@ msgstr "" "`PyInit_spam`) avec un objet exception (Passons, pour le moment, la " "vérification des codes d'erreur) ::" -#: ../Doc/extending/extending.rst:222 +#: ../Doc/extending/extending.rst:224 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 " @@ -448,7 +449,7 @@ msgstr "" "`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " "*NULL*), voir :ref:`bltin-exceptions`." -#: ../Doc/extending/extending.rst:227 +#: ../Doc/extending/extending.rst:229 msgid "" "Note also that the :c:data:`SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " @@ -466,7 +467,7 @@ msgstr "" "code qui soulèvel'exception peut engendrer un rejet central ou des effets " "secondaires innatendus." -#: ../Doc/extending/extending.rst:234 +#: ../Doc/extending/extending.rst:236 msgid "" "We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " "this sample." @@ -474,7 +475,7 @@ msgstr "" "Nous traiterons de l'utilisation de ``PyMODINIT_FUNC`` comme un type de " "retour de fonction plus tard dans cette section." -#: ../Doc/extending/extending.rst:237 +#: ../Doc/extending/extending.rst:239 msgid "" "The :exc:`spam.error` exception can be raised in your extension module using " "a call to :c:func:`PyErr_SetString` as shown below::" @@ -482,11 +483,11 @@ msgstr "" "L'exception :exc:`spam.error` peut être levée dans votre module d'extension " "en appelant :c:func:`PyErr_SetString` comme montré ci-dessous ::" -#: ../Doc/extending/extending.rst:260 +#: ../Doc/extending/extending.rst:262 msgid "Back to the Example" msgstr "Retour vers l'exemple" -#: ../Doc/extending/extending.rst:262 +#: ../Doc/extending/extending.rst:264 msgid "" "Going back to our example function, you should now be able to understand " "this statement::" @@ -494,7 +495,7 @@ msgstr "" "En revenant vers notre fonction exemple, vous devriez maintenant être " "capable de comprendre cette affirmation ::" -#: ../Doc/extending/extending.rst:268 +#: ../Doc/extending/extending.rst:270 msgid "" "It returns *NULL* (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " @@ -513,7 +514,7 @@ msgstr "" "la variable :c:data:`command` doit être clairement déclarée comme ``const " "char *command``)." -#: ../Doc/extending/extending.rst:276 +#: ../Doc/extending/extending.rst:278 msgid "" "The next statement is a call to the Unix function :c:func:`system`, passing " "it the string we just got from :c:func:`PyArg_ParseTuple`::" @@ -522,7 +523,7 @@ msgstr "" "en lui passant la chaîne que nous venons d'obtenir à partir de :c:func:" "`PyArg_ParseTuple` ::" -#: ../Doc/extending/extending.rst:281 +#: ../Doc/extending/extending.rst:283 msgid "" "Our :func:`spam.system` function must return the value of :c:data:`sts` as a " "Python object. This is done using the function :c:func:`PyLong_FromLong`. ::" @@ -531,7 +532,7 @@ msgstr "" "comme un objet Python. Cela est effectué par l'utilisation de la fonction :c:" "func:`PyLong_FromLong`. ::" -#: ../Doc/extending/extending.rst:286 +#: ../Doc/extending/extending.rst:288 msgid "" "In this case, it will return an integer object. (Yes, even integers are " "objects on the heap in Python!)" @@ -539,7 +540,7 @@ msgstr "" "Dans ce cas, elle renvoyera un objet entier. (Oui, même les entiers sont des " "objets dans le tas en Python!)" -#: ../Doc/extending/extending.rst:289 +#: ../Doc/extending/extending.rst:291 msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:type:`void`), the corresponding Python function must return " @@ -551,7 +552,7 @@ msgstr "" "renvoyer ``None``. Vous aurez besoin de cette locution pour cela (qui est " "implémentée par la macro :c:macro:`Py_RETURN_NONE`) ::" -#: ../Doc/extending/extending.rst:297 +#: ../Doc/extending/extending.rst:299 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" @@ -561,17 +562,17 @@ msgstr "" "un authentique objet Python plutôt qu'un pointeur *NULL*, qui signifie " "\"error\" dans la plupart des situations, comme nous l'avons vu." -#: ../Doc/extending/extending.rst:305 +#: ../Doc/extending/extending.rst:307 msgid "The Module's Method Table and Initialization Function" msgstr "" -#: ../Doc/extending/extending.rst:307 +#: ../Doc/extending/extending.rst:309 msgid "" "I promised to show how :c:func:`spam_system` is called from Python programs. " "First, we need to list its name and address in a \"method table\"::" msgstr "" -#: ../Doc/extending/extending.rst:318 +#: ../Doc/extending/extending.rst:320 msgid "" "Note the third entry (``METH_VARARGS``). This is a flag telling the " "interpreter the calling convention to be used for the C function. It should " @@ -580,14 +581,14 @@ msgid "" "is used." msgstr "" -#: ../Doc/extending/extending.rst:323 +#: ../Doc/extending/extending.rst:325 msgid "" "When using only ``METH_VARARGS``, the function should expect the Python-" "level parameters to be passed in as a tuple acceptable for parsing via :c:" "func:`PyArg_ParseTuple`; more information on this function is provided below." msgstr "" -#: ../Doc/extending/extending.rst:327 +#: ../Doc/extending/extending.rst:329 msgid "" "The :const:`METH_KEYWORDS` bit may be set in the third field if keyword " "arguments should be passed to the function. In this case, the C function " @@ -596,12 +597,12 @@ msgid "" "to such a function." msgstr "" -#: ../Doc/extending/extending.rst:333 +#: ../Doc/extending/extending.rst:335 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" -#: ../Doc/extending/extending.rst:344 +#: ../Doc/extending/extending.rst:346 msgid "" "This structure, in turn, must be passed to the interpreter in the module's " "initialization function. The initialization function must be named :c:func:" @@ -609,14 +610,14 @@ msgid "" "only non-\\ ``static`` item defined in the module file::" msgstr "" -#: ../Doc/extending/extending.rst:355 +#: ../Doc/extending/extending.rst:357 msgid "" "Note that PyMODINIT_FUNC declares the function as ``PyObject *`` return " "type, declares any special linkage declarations required by the platform, " "and for C++ declares the function as ``extern \"C\"``." msgstr "" -#: ../Doc/extending/extending.rst:359 +#: ../Doc/extending/extending.rst:361 msgid "" "When the Python program imports module :mod:`spam` for the first time, :c:" "func:`PyInit_spam` is called. (See below for comments about embedding " @@ -630,7 +631,7 @@ msgid "" "gets inserted into ``sys.modules``." msgstr "" -#: ../Doc/extending/extending.rst:370 +#: ../Doc/extending/extending.rst:372 msgid "" "When embedding Python, the :c:func:`PyInit_spam` function is not called " "automatically unless there's an entry in the :c:data:`PyImport_Inittab` " @@ -638,7 +639,7 @@ msgid "" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" -#: ../Doc/extending/extending.rst:406 +#: ../Doc/extending/extending.rst:408 msgid "" "Removing entries from ``sys.modules`` or importing compiled modules into " "multiple interpreters within a process (or following a :c:func:`fork` " @@ -647,14 +648,14 @@ msgid "" "initializing internal data structures." msgstr "" -#: ../Doc/extending/extending.rst:412 +#: ../Doc/extending/extending.rst:414 msgid "" "A more substantial example module is included in the Python source " "distribution as :file:`Modules/xxmodule.c`. This file may be used as a " "template or simply read as an example." msgstr "" -#: ../Doc/extending/extending.rst:418 +#: ../Doc/extending/extending.rst:420 msgid "" "Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase initialization* " "(new in Python 3.5), where a PyModuleDef structure is returned from " @@ -662,11 +663,11 @@ msgid "" "For details on multi-phase initialization, see :PEP:`489`." msgstr "" -#: ../Doc/extending/extending.rst:427 +#: ../Doc/extending/extending.rst:429 msgid "Compilation and Linkage" msgstr "" -#: ../Doc/extending/extending.rst:429 +#: ../Doc/extending/extending.rst:431 msgid "" "There are two more things to do before you can use your new extension: " "compiling and linking it with the Python system. If you use dynamic " @@ -676,17 +677,17 @@ msgid "" "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" -#: ../Doc/extending/extending.rst:436 +#: ../Doc/extending/extending.rst:438 msgid "" "If you can't use dynamic loading, or if you want to make your module a " "permanent part of the Python interpreter, you will have to change the " "configuration setup and rebuild the interpreter. Luckily, this is very " "simple on Unix: just place your file (:file:`spammodule.c` for example) in " "the :file:`Modules/` directory of an unpacked source distribution, add a " -"line to the file :file:`Modules/Setup.local` describing your file::" +"line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" -#: ../Doc/extending/extending.rst:445 +#: ../Doc/extending/extending.rst:449 msgid "" "and rebuild the interpreter by running :program:`make` in the toplevel " "directory. You can also run :program:`make` in the :file:`Modules/` " @@ -695,17 +696,17 @@ msgid "" "the :file:`Setup` file.)" msgstr "" -#: ../Doc/extending/extending.rst:451 +#: ../Doc/extending/extending.rst:455 msgid "" "If your module requires additional libraries to link with, these can be " -"listed on the line in the configuration file as well, for instance::" +"listed on the line in the configuration file as well, for instance:" msgstr "" -#: ../Doc/extending/extending.rst:460 +#: ../Doc/extending/extending.rst:466 msgid "Calling Python Functions from C" msgstr "" -#: ../Doc/extending/extending.rst:462 +#: ../Doc/extending/extending.rst:468 msgid "" "So far we have concentrated on making C functions callable from Python. The " "reverse is also useful: calling Python functions from C. This is especially " @@ -716,7 +717,7 @@ msgid "" "uses are also imaginable." msgstr "" -#: ../Doc/extending/extending.rst:470 +#: ../Doc/extending/extending.rst:476 msgid "" "Fortunately, the Python interpreter is easily called recursively, and there " "is a standard interface to call a Python function. (I won't dwell on how to " @@ -725,7 +726,7 @@ msgid "" "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" -#: ../Doc/extending/extending.rst:476 +#: ../Doc/extending/extending.rst:482 msgid "" "Calling a Python function is easy. First, the Python program must somehow " "pass you the Python function object. You should provide a function (or some " @@ -735,7 +736,7 @@ msgid "" "function might be part of a module definition::" msgstr "" -#: ../Doc/extending/extending.rst:506 +#: ../Doc/extending/extending.rst:512 msgid "" "This function must be registered with the interpreter using the :const:" "`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" @@ -743,7 +744,7 @@ msgid "" "section :ref:`parsetuple`." msgstr "" -#: ../Doc/extending/extending.rst:511 +#: ../Doc/extending/extending.rst:517 msgid "" "The macros :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF` increment/decrement " "the reference count of an object and are safe in the presence of *NULL* " @@ -751,7 +752,7 @@ msgid "" "info on them in section :ref:`refcounts`." msgstr "" -#: ../Doc/extending/extending.rst:518 +#: ../Doc/extending/extending.rst:524 msgid "" "Later, when it is time to call the function, you call the C function :c:func:" "`PyObject_CallObject`. This function has two arguments, both pointers to " @@ -763,7 +764,7 @@ msgid "" "or more format codes between parentheses. For example::" msgstr "" -#: ../Doc/extending/extending.rst:538 +#: ../Doc/extending/extending.rst:544 msgid "" ":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " "return value of the Python function. :c:func:`PyObject_CallObject` is " @@ -772,7 +773,7 @@ msgid "" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" -#: ../Doc/extending/extending.rst:544 +#: ../Doc/extending/extending.rst:550 msgid "" "The return value of :c:func:`PyObject_CallObject` is \"new\": either it is a " "brand new object, or it is an existing object whose reference count has been " @@ -781,7 +782,7 @@ msgid "" "not interested in its value." msgstr "" -#: ../Doc/extending/extending.rst:550 +#: ../Doc/extending/extending.rst:556 msgid "" "Before you do this, however, it is important to check that the return value " "isn't *NULL*. If it is, the Python function terminated by raising an " @@ -792,7 +793,7 @@ msgid "" "should be cleared by calling :c:func:`PyErr_Clear`. For example::" msgstr "" -#: ../Doc/extending/extending.rst:563 +#: ../Doc/extending/extending.rst:569 msgid "" "Depending on the desired interface to the Python callback function, you may " "also have to provide an argument list to :c:func:`PyObject_CallObject`. In " @@ -804,7 +805,7 @@ msgid "" "you want to pass an integral event code, you might use the following code::" msgstr "" -#: ../Doc/extending/extending.rst:582 +#: ../Doc/extending/extending.rst:588 msgid "" "Note the placement of ``Py_DECREF(arglist)`` immediately after the call, " "before the error check! Also note that strictly speaking this code is not " @@ -812,22 +813,22 @@ msgid "" "checked." msgstr "" -#: ../Doc/extending/extending.rst:586 +#: ../Doc/extending/extending.rst:592 msgid "" "You may also call a function with keyword arguments by using :c:func:" "`PyObject_Call`, which supports arguments and keyword arguments. As in the " "above example, we use :c:func:`Py_BuildValue` to construct the dictionary. ::" msgstr "" -#: ../Doc/extending/extending.rst:604 +#: ../Doc/extending/extending.rst:610 msgid "Extracting Parameters in Extension Functions" msgstr "" -#: ../Doc/extending/extending.rst:608 +#: ../Doc/extending/extending.rst:614 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" msgstr "" -#: ../Doc/extending/extending.rst:612 +#: ../Doc/extending/extending.rst:618 msgid "" "The *arg* argument must be a tuple object containing an argument list passed " "from Python to a C function. The *format* argument must be a format string, " @@ -836,7 +837,7 @@ msgid "" "whose type is determined by the format string." msgstr "" -#: ../Doc/extending/extending.rst:618 +#: ../Doc/extending/extending.rst:624 msgid "" "Note that while :c:func:`PyArg_ParseTuple` checks that the Python arguments " "have the required types, it cannot check the validity of the addresses of C " @@ -844,7 +845,7 @@ msgid "" "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" -#: ../Doc/extending/extending.rst:623 +#: ../Doc/extending/extending.rst:629 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" @@ -853,20 +854,20 @@ msgstr "" "à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " "compteur de références !" -#: ../Doc/extending/extending.rst:626 +#: ../Doc/extending/extending.rst:632 msgid "Some example calls::" msgstr "" -#: ../Doc/extending/extending.rst:696 +#: ../Doc/extending/extending.rst:702 msgid "Keyword Parameters for Extension Functions" msgstr "" -#: ../Doc/extending/extending.rst:700 +#: ../Doc/extending/extending.rst:706 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" -#: ../Doc/extending/extending.rst:705 +#: ../Doc/extending/extending.rst:711 msgid "" "The *arg* and *format* parameters are identical to those of the :c:func:" "`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " @@ -877,30 +878,30 @@ msgid "" "returns true, otherwise it returns false and raises an appropriate exception." msgstr "" -#: ../Doc/extending/extending.rst:715 +#: ../Doc/extending/extending.rst:721 msgid "" "Nested tuples cannot be parsed when using keyword arguments! Keyword " "parameters passed in which are not present in the *kwlist* will cause :exc:" "`TypeError` to be raised." msgstr "" -#: ../Doc/extending/extending.rst:721 +#: ../Doc/extending/extending.rst:727 msgid "" "Here is an example module which uses keywords, based on an example by Geoff " "Philbrick (philbrick@hks.com)::" msgstr "" -#: ../Doc/extending/extending.rst:775 +#: ../Doc/extending/extending.rst:781 msgid "Building Arbitrary Values" msgstr "" -#: ../Doc/extending/extending.rst:777 +#: ../Doc/extending/extending.rst:783 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" -#: ../Doc/extending/extending.rst:782 +#: ../Doc/extending/extending.rst:788 msgid "" "It recognizes a set of format units similar to the ones recognized by :c:" "func:`PyArg_ParseTuple`, but the arguments (which are input to the function, " @@ -908,7 +909,7 @@ msgid "" "object, suitable for returning from a C function called from Python." msgstr "" -#: ../Doc/extending/extending.rst:787 +#: ../Doc/extending/extending.rst:793 msgid "" "One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " "its first argument to be a tuple (since Python argument lists are always " @@ -920,16 +921,16 @@ msgid "" "parenthesize the format string." msgstr "" -#: ../Doc/extending/extending.rst:795 +#: ../Doc/extending/extending.rst:801 msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" -#: ../Doc/extending/extending.rst:821 +#: ../Doc/extending/extending.rst:827 msgid "Reference Counts" msgstr "" -#: ../Doc/extending/extending.rst:823 +#: ../Doc/extending/extending.rst:829 msgid "" "In languages like C or C++, the programmer is responsible for dynamic " "allocation and deallocation of memory on the heap. In C, this is done using " @@ -938,7 +939,7 @@ msgid "" "restrict the following discussion to the C case." msgstr "" -#: ../Doc/extending/extending.rst:829 +#: ../Doc/extending/extending.rst:835 msgid "" "Every block of memory allocated with :c:func:`malloc` should eventually be " "returned to the pool of available memory by exactly one call to :c:func:" @@ -953,7 +954,7 @@ msgid "" "crashes." msgstr "" -#: ../Doc/extending/extending.rst:840 +#: ../Doc/extending/extending.rst:846 msgid "" "Common causes of memory leaks are unusual paths through the code. For " "instance, a function may allocate a block of memory, do some calculation, " @@ -970,7 +971,7 @@ msgid "" "of errors." msgstr "" -#: ../Doc/extending/extending.rst:853 +#: ../Doc/extending/extending.rst:859 msgid "" "Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it " "needs a strategy to avoid memory leaks as well as the use of freed memory. " @@ -981,7 +982,7 @@ msgid "" "reference to the object has been deleted and the object is freed." msgstr "" -#: ../Doc/extending/extending.rst:861 +#: ../Doc/extending/extending.rst:867 msgid "" "An alternative strategy is called :dfn:`automatic garbage collection`. " "(Sometimes, reference counting is also referred to as a garbage collection " @@ -997,7 +998,7 @@ msgid "" "with reference counts." msgstr "" -#: ../Doc/extending/extending.rst:873 +#: ../Doc/extending/extending.rst:879 msgid "" "While Python uses the traditional reference counting implementation, it also " "offers a cycle detector that works to detect reference cycles. This allows " @@ -1011,7 +1012,7 @@ msgid "" "though there are no further references to the cycle itself." msgstr "" -#: ../Doc/extending/extending.rst:884 +#: ../Doc/extending/extending.rst:890 msgid "" "The cycle detector is able to detect garbage cycles and can reclaim them. " "The :mod:`gc` module exposes a way to run the detector (the :func:`~gc." @@ -1023,11 +1024,11 @@ msgid "" "detector is disabled in this way, the :mod:`gc` module will not be available." msgstr "" -#: ../Doc/extending/extending.rst:898 +#: ../Doc/extending/extending.rst:904 msgid "Reference Counting in Python" msgstr "" -#: ../Doc/extending/extending.rst:900 +#: ../Doc/extending/extending.rst:906 msgid "" "There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " "the incrementing and decrementing of the reference count. :c:func:" @@ -1038,7 +1039,7 @@ msgid "" "object." msgstr "" -#: ../Doc/extending/extending.rst:907 +#: ../Doc/extending/extending.rst:913 msgid "" "The big question now remains: when to use ``Py_INCREF(x)`` and " "``Py_DECREF(x)``? Let's first introduce some terms. Nobody \"owns\" an " @@ -1051,7 +1052,7 @@ msgid "" "reference creates a memory leak." msgstr "" -#: ../Doc/extending/extending.rst:916 +#: ../Doc/extending/extending.rst:922 msgid "" "It is also possible to :dfn:`borrow` [#]_ a reference to an object. The " "borrower of a reference should not call :c:func:`Py_DECREF`. The borrower " @@ -1060,7 +1061,7 @@ msgid "" "risks using freed memory and should be avoided completely [#]_." msgstr "" -#: ../Doc/extending/extending.rst:922 +#: ../Doc/extending/extending.rst:928 msgid "" "The advantage of borrowing over owning a reference is that you don't need to " "take care of disposing of the reference on all possible paths through the " @@ -1071,7 +1072,7 @@ msgid "" "borrowed has in fact disposed of it." msgstr "" -#: ../Doc/extending/extending.rst:930 +#: ../Doc/extending/extending.rst:936 msgid "" "A borrowed reference can be changed into an owned reference by calling :c:" "func:`Py_INCREF`. This does not affect the status of the owner from which " @@ -1080,18 +1081,18 @@ msgid "" "properly, as well as the previous owner)." msgstr "" -#: ../Doc/extending/extending.rst:940 +#: ../Doc/extending/extending.rst:946 msgid "Ownership Rules" msgstr "" -#: ../Doc/extending/extending.rst:942 +#: ../Doc/extending/extending.rst:948 msgid "" "Whenever an object reference is passed into or out of a function, it is part " "of the function's interface specification whether ownership is transferred " "with the reference or not." msgstr "" -#: ../Doc/extending/extending.rst:946 +#: ../Doc/extending/extending.rst:952 msgid "" "Most functions that return a reference to an object pass on ownership with " "the reference. In particular, all functions whose function it is to create " @@ -1102,7 +1103,7 @@ msgid "" "reference to a cached item." msgstr "" -#: ../Doc/extending/extending.rst:954 +#: ../Doc/extending/extending.rst:960 msgid "" "Many functions that extract objects from other objects also transfer " "ownership with the reference, for instance :c:func:" @@ -1113,14 +1114,14 @@ msgid "" "list or dictionary." msgstr "" -#: ../Doc/extending/extending.rst:961 +#: ../Doc/extending/extending.rst:967 msgid "" "The function :c:func:`PyImport_AddModule` also returns a borrowed reference, " "even though it may actually create the object it returns: this is possible " "because an owned reference to the object is stored in ``sys.modules``." msgstr "" -#: ../Doc/extending/extending.rst:965 +#: ../Doc/extending/extending.rst:971 msgid "" "When you pass an object reference into another function, in general, the " "function borrows the reference from you --- if it needs to store it, it will " @@ -1131,7 +1132,7 @@ msgid "" "don't take over ownership --- they are \"normal.\")" msgstr "" -#: ../Doc/extending/extending.rst:973 +#: ../Doc/extending/extending.rst:979 msgid "" "When a C function is called from Python, it borrows references to its " "arguments from the caller. The caller owns a reference to the object, so " @@ -1140,18 +1141,18 @@ msgid "" "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" -#: ../Doc/extending/extending.rst:979 +#: ../Doc/extending/extending.rst:985 msgid "" "The object reference returned from a C function that is called from Python " "must be an owned reference --- ownership is transferred from the function to " "its caller." msgstr "" -#: ../Doc/extending/extending.rst:987 +#: ../Doc/extending/extending.rst:993 msgid "Thin Ice" msgstr "" -#: ../Doc/extending/extending.rst:989 +#: ../Doc/extending/extending.rst:995 msgid "" "There are a few situations where seemingly harmless use of a borrowed " "reference can lead to problems. These all have to do with implicit " @@ -1159,21 +1160,21 @@ msgid "" "dispose of it." msgstr "" -#: ../Doc/extending/extending.rst:993 +#: ../Doc/extending/extending.rst:999 msgid "" "The first and most important case to know about is using :c:func:`Py_DECREF` " "on an unrelated object while borrowing a reference to a list item. For " "instance::" msgstr "" -#: ../Doc/extending/extending.rst:1005 +#: ../Doc/extending/extending.rst:1011 msgid "" "This function first borrows a reference to ``list[0]``, then replaces " "``list[1]`` with the value ``0``, and finally prints the borrowed reference. " "Looks harmless, right? But it's not!" msgstr "" -#: ../Doc/extending/extending.rst:1009 +#: ../Doc/extending/extending.rst:1015 msgid "" "Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " "references to all its items, so when item 1 is replaced, it has to dispose " @@ -1183,7 +1184,7 @@ msgid "" "count of 1, disposing of it will call its :meth:`__del__` method." msgstr "" -#: ../Doc/extending/extending.rst:1016 +#: ../Doc/extending/extending.rst:1022 msgid "" "Since it is written in Python, the :meth:`__del__` method can execute " "arbitrary Python code. Could it perhaps do something to invalidate the " @@ -1194,20 +1195,20 @@ msgid "" "associated with it, thereby invalidating ``item``." msgstr "" -#: ../Doc/extending/extending.rst:1024 +#: ../Doc/extending/extending.rst:1030 msgid "" "The solution, once you know the source of the problem, is easy: temporarily " "increment the reference count. The correct version of the function reads::" msgstr "" -#: ../Doc/extending/extending.rst:1038 +#: ../Doc/extending/extending.rst:1044 msgid "" "This is a true story. An older version of Python contained variants of this " "bug and someone spent a considerable amount of time in a C debugger to " "figure out why his :meth:`__del__` methods would fail..." msgstr "" -#: ../Doc/extending/extending.rst:1042 +#: ../Doc/extending/extending.rst:1048 msgid "" "The second case of problems with a borrowed reference is a variant involving " "threads. Normally, multiple threads in the Python interpreter can't get in " @@ -1220,11 +1221,11 @@ msgid "" "previous one::" msgstr "" -#: ../Doc/extending/extending.rst:1065 +#: ../Doc/extending/extending.rst:1071 msgid "NULL Pointers" msgstr "" -#: ../Doc/extending/extending.rst:1067 +#: ../Doc/extending/extending.rst:1073 msgid "" "In general, functions that take object references as arguments do not expect " "you to pass them *NULL* pointers, and will dump core (or cause later core " @@ -1236,21 +1237,21 @@ msgid "" "slowly." msgstr "" -#: ../Doc/extending/extending.rst:1075 +#: ../Doc/extending/extending.rst:1081 msgid "" "It is better to test for *NULL* only at the \"source:\" when a pointer that " "may be *NULL* is received, for example, from :c:func:`malloc` or from a " "function that may raise an exception." msgstr "" -#: ../Doc/extending/extending.rst:1079 +#: ../Doc/extending/extending.rst:1085 msgid "" "The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " "*NULL* pointers --- however, their variants :c:func:`Py_XINCREF` and :c:func:" "`Py_XDECREF` do." msgstr "" -#: ../Doc/extending/extending.rst:1083 +#: ../Doc/extending/extending.rst:1089 msgid "" "The macros for checking for a particular object type (``Pytype_Check()``) " "don't check for *NULL* pointers --- again, there is much code that calls " @@ -1259,24 +1260,24 @@ msgid "" "variants with *NULL* checking." msgstr "" -#: ../Doc/extending/extending.rst:1089 +#: ../Doc/extending/extending.rst:1095 msgid "" "The C function calling mechanism guarantees that the argument list passed to " "C functions (``args`` in the examples) is never *NULL* --- in fact it " "guarantees that it is always a tuple [#]_." msgstr "" -#: ../Doc/extending/extending.rst:1093 +#: ../Doc/extending/extending.rst:1099 msgid "" "It is a severe error to ever let a *NULL* pointer \"escape\" to the Python " "user." msgstr "" -#: ../Doc/extending/extending.rst:1104 +#: ../Doc/extending/extending.rst:1110 msgid "Writing Extensions in C++" msgstr "" -#: ../Doc/extending/extending.rst:1106 +#: ../Doc/extending/extending.rst:1112 msgid "" "It is possible to write extension modules in C++. Some restrictions apply. " "If the main program (the Python interpreter) is compiled and linked by the C " @@ -1289,11 +1290,11 @@ msgid "" "(all recent C++ compilers define this symbol)." msgstr "" -#: ../Doc/extending/extending.rst:1120 +#: ../Doc/extending/extending.rst:1126 msgid "Providing a C API for an Extension Module" msgstr "" -#: ../Doc/extending/extending.rst:1125 +#: ../Doc/extending/extending.rst:1131 msgid "" "Many extension modules just provide new functions and types to be used from " "Python, but sometimes the code in an extension module can be useful for " @@ -1304,7 +1305,7 @@ msgid "" "functions for direct manipulation from other extension modules." msgstr "" -#: ../Doc/extending/extending.rst:1133 +#: ../Doc/extending/extending.rst:1139 msgid "" "At first sight this seems easy: just write the functions (without declaring " "them ``static``, of course), provide an appropriate header file, and " @@ -1320,7 +1321,7 @@ msgid "" "call might not have been loaded yet!" msgstr "" -#: ../Doc/extending/extending.rst:1145 +#: ../Doc/extending/extending.rst:1151 msgid "" "Portability therefore requires not to make any assumptions about symbol " "visibility. This means that all symbols in extension modules should be " @@ -1330,7 +1331,7 @@ msgid "" "accessible from other extension modules must be exported in a different way." msgstr "" -#: ../Doc/extending/extending.rst:1152 +#: ../Doc/extending/extending.rst:1158 msgid "" "Python provides a special mechanism to pass C-level information (pointers) " "from one extension module to another one: Capsules. A Capsule is a Python " @@ -1342,7 +1343,7 @@ msgid "" "the Capsule." msgstr "" -#: ../Doc/extending/extending.rst:1160 +#: ../Doc/extending/extending.rst:1166 msgid "" "There are many ways in which Capsules can be used to export the C API of an " "extension module. Each function could get its own Capsule, or all C API " @@ -1352,7 +1353,7 @@ msgid "" "client modules." msgstr "" -#: ../Doc/extending/extending.rst:1166 +#: ../Doc/extending/extending.rst:1172 msgid "" "Whichever method you choose, it's important to name your Capsules properly. " "The function :c:func:`PyCapsule_New` takes a name parameter (:c:type:`const " @@ -1362,13 +1363,13 @@ msgid "" "from another." msgstr "" -#: ../Doc/extending/extending.rst:1173 +#: ../Doc/extending/extending.rst:1179 msgid "" "In particular, Capsules used to expose C APIs should be given a name " "following this convention::" msgstr "" -#: ../Doc/extending/extending.rst:1178 +#: ../Doc/extending/extending.rst:1184 msgid "" "The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " "C API provided via a Capsule, but only if the Capsule's name matches this " @@ -1376,7 +1377,7 @@ msgid "" "the Capsule they load contains the correct C API." msgstr "" -#: ../Doc/extending/extending.rst:1183 +#: ../Doc/extending/extending.rst:1189 msgid "" "The following example demonstrates an approach that puts most of the burden " "on the writer of the exporting module, which is appropriate for commonly " @@ -1387,7 +1388,7 @@ msgid "" "modules only have to call this macro before accessing the C API." msgstr "" -#: ../Doc/extending/extending.rst:1191 +#: ../Doc/extending/extending.rst:1197 msgid "" "The exporting module is a modification of the :mod:`spam` module from " "section :ref:`extending-simpleexample`. The function :func:`spam.system` " @@ -1397,25 +1398,25 @@ msgid "" "function :c:func:`PySpam_System` is also exported to other extension modules." msgstr "" -#: ../Doc/extending/extending.rst:1198 +#: ../Doc/extending/extending.rst:1204 msgid "" "The function :c:func:`PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" -#: ../Doc/extending/extending.rst:1207 +#: ../Doc/extending/extending.rst:1213 msgid "The function :c:func:`spam_system` is modified in a trivial way::" msgstr "" -#: ../Doc/extending/extending.rst:1221 +#: ../Doc/extending/extending.rst:1227 msgid "In the beginning of the module, right after the line ::" msgstr "" -#: ../Doc/extending/extending.rst:1225 +#: ../Doc/extending/extending.rst:1231 msgid "two more lines must be added::" msgstr "" -#: ../Doc/extending/extending.rst:1230 +#: ../Doc/extending/extending.rst:1236 msgid "" "The ``#define`` is used to tell the header file that it is being included in " "the exporting module, not a client module. Finally, the module's " @@ -1423,33 +1424,33 @@ msgid "" "array::" msgstr "" -#: ../Doc/extending/extending.rst:1256 +#: ../Doc/extending/extending.rst:1262 msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " "would disappear when :func:`PyInit_spam` terminates!" msgstr "" -#: ../Doc/extending/extending.rst:1259 +#: ../Doc/extending/extending.rst:1265 msgid "" "The bulk of the work is in the header file :file:`spammodule.h`, which looks " "like this::" msgstr "" -#: ../Doc/extending/extending.rst:1310 +#: ../Doc/extending/extending.rst:1316 msgid "" "All that a client module must do in order to have access to the function :c:" "func:`PySpam_System` is to call the function (or rather macro) :c:func:" "`import_spam` in its initialization function::" msgstr "" -#: ../Doc/extending/extending.rst:1328 +#: ../Doc/extending/extending.rst:1334 msgid "" "The main disadvantage of this approach is that the file :file:`spammodule.h` " "is rather complicated. However, the basic structure is the same for each " "function that is exported, so it has to be learned only once." msgstr "" -#: ../Doc/extending/extending.rst:1332 +#: ../Doc/extending/extending.rst:1338 msgid "" "Finally it should be mentioned that Capsules offer additional functionality, " "which is especially useful for memory allocation and deallocation of the " @@ -1459,30 +1460,30 @@ msgid "" "in the Python source code distribution)." msgstr "" -#: ../Doc/extending/extending.rst:1340 +#: ../Doc/extending/extending.rst:1346 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/extending.rst:1341 +#: ../Doc/extending/extending.rst:1347 msgid "" "An interface for this function already exists in the standard module :mod:" "`os` --- it was chosen as a simple and straightforward example." msgstr "" -#: ../Doc/extending/extending.rst:1344 +#: ../Doc/extending/extending.rst:1350 msgid "" "The metaphor of \"borrowing\" a reference is not completely correct: the " "owner still has a copy of the reference." msgstr "" -#: ../Doc/extending/extending.rst:1347 +#: ../Doc/extending/extending.rst:1353 msgid "" "Checking that the reference count is at least 1 **does not work** --- the " "reference count itself could be in freed memory and may thus be reused for " "another object!" msgstr "" -#: ../Doc/extending/extending.rst:1351 +#: ../Doc/extending/extending.rst:1357 msgid "" "These guarantees don't hold when you use the \"old\" style calling " "convention --- this is still found in much existing code." diff --git a/extending/index.po b/extending/index.po index d62319343..4392e89be 100644 --- a/extending/index.po +++ b/extending/index.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: 2017-11-22 10:45+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: \n" @@ -69,18 +69,20 @@ msgid "Recommended third party tools" msgstr "Les outils tiers recommandés" #: ../Doc/extending/index.rst:28 +#, fuzzy msgid "" "This guide only covers the basic tools for creating extensions provided as " -"part of this version of CPython. Third party tools like Cython, ``cffi``, " -"SWIG and Numba offer both simpler and more sophisticated approaches to " -"creating C and C++ extensions for Python." +"part of this version of CPython. Third party tools like `Cython `_, `cffi `_, `SWIG `_ and `Numba `_ offer both simpler and " +"more sophisticated approaches to creating C and C++ extensions for Python." msgstr "" "Ce guide ne couvre que les outils basiques permettant de créer des " "extensions fournies dans cette version de CPython. Les outils tiers tels que " "Cython, ``cffi``, SWIG et Numba offrent des approches plus simples et plus " "élaborées pour créer des extensions C et C++ pour Python." -#: ../Doc/extending/index.rst:38 +#: ../Doc/extending/index.rst:40 msgid "" "`Python Packaging User Guide: Binary Extensions `_" @@ -88,7 +90,7 @@ msgstr "" "`Guide d'utilisation de l'empaquetage Python : Extensions binaires `_" -#: ../Doc/extending/index.rst:36 +#: ../Doc/extending/index.rst:38 msgid "" "The Python Packaging User Guide not only covers several available tools that " "simplify the creation of binary extensions, but also discusses the various " @@ -99,11 +101,11 @@ msgstr "" "binaires, mais aborde aussi les différentes raisons pour lesquelles créer un " "module d'extension peut être souhaitable d'entrée." -#: ../Doc/extending/index.rst:43 +#: ../Doc/extending/index.rst:45 msgid "Creating extensions without third party tools" msgstr "Création d'extensions sans outils tiers" -#: ../Doc/extending/index.rst:45 +#: ../Doc/extending/index.rst:47 msgid "" "This section of the guide covers creating C and C++ extensions without " "assistance from third party tools. It is intended primarily for creators of " @@ -115,11 +117,11 @@ msgstr "" "ces outils, plus que d'être une méthode recommandée pour créer votre propre " "extension C." -#: ../Doc/extending/index.rst:60 +#: ../Doc/extending/index.rst:63 msgid "Embedding the CPython runtime in a larger application" msgstr "Intégrer l'interpréteur CPython dans une plus grande application" -#: ../Doc/extending/index.rst:62 +#: ../Doc/extending/index.rst:65 msgid "" "Sometimes, rather than creating an extension that runs inside the Python " "interpreter as the main application, it is desirable to instead embed the " diff --git a/extending/newtypes.po b/extending/newtypes.po index f2c7ed209..262eef355 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-03-23 09:03+0100\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,846 +17,72 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/extending/newtypes.rst:8 -msgid "Defining New Types" +#: ../Doc/extending/newtypes.rst:5 +msgid "Defining Extension Types: Assorted Topics" msgstr "" -#: ../Doc/extending/newtypes.rst:15 -msgid "" -"As mentioned in the last chapter, Python allows the writer of an extension " -"module to define new types that can be manipulated from Python code, much " -"like strings and lists in core Python." -msgstr "" - -#: ../Doc/extending/newtypes.rst:19 -msgid "" -"This is not hard; the code for all extension types follows a pattern, but " -"there are some details that you need to understand before you can get " -"started." -msgstr "" - -#: ../Doc/extending/newtypes.rst:26 -msgid "The Basics" -msgstr "" - -#: ../Doc/extending/newtypes.rst:28 -msgid "" -"The Python runtime sees all Python objects as variables of type :c:type:" -"`PyObject\\*`, which serves as a \"base type\" for all Python objects. :c:" -"type:`PyObject` itself only contains the refcount and a pointer to the " -"object's \"type object\". This is where the action is; the type object " -"determines which (C) functions get called when, for instance, an attribute " -"gets looked up on an object or it is multiplied by another object. These C " -"functions are called \"type methods\"." -msgstr "" - -#: ../Doc/extending/newtypes.rst:36 -msgid "" -"So, if you want to define a new object type, you need to create a new type " -"object." -msgstr "" - -#: ../Doc/extending/newtypes.rst:39 -msgid "" -"This sort of thing can only be explained by example, so here's a minimal, " -"but complete, module that defines a new type:" -msgstr "" - -#: ../Doc/extending/newtypes.rst:45 -msgid "" -"Now that's quite a bit to take in at once, but hopefully bits will seem " -"familiar from the last chapter." -msgstr "" - -#: ../Doc/extending/newtypes.rst:48 -msgid "The first bit that will be new is::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:54 -msgid "" -"This is what a Noddy object will contain---in this case, nothing more than " -"what every Python object contains---a field called ``ob_base`` of type :c:" -"type:`PyObject`. :c:type:`PyObject` in turn, contains an ``ob_refcnt`` " -"field and a pointer to a type object. These can be accessed using the " -"macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE` respectively. These are " -"the fields the :c:macro:`PyObject_HEAD` macro brings in. The reason for the " -"macro is to standardize the layout and to enable special debugging fields in " -"debug builds." -msgstr "" - -#: ../Doc/extending/newtypes.rst:62 -msgid "" -"Note that there is no semicolon after the :c:macro:`PyObject_HEAD` macro; " -"one is included in the macro definition. Be wary of adding one by accident; " -"it's easy to do from habit, and your compiler might not complain, but " -"someone else's probably will! (On Windows, MSVC is known to call this an " -"error and refuse to compile the code.)" -msgstr "" - -#: ../Doc/extending/newtypes.rst:68 -msgid "" -"For contrast, let's take a look at the corresponding definition for standard " -"Python floats::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:76 -msgid "Moving on, we come to the crunch --- the type object. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:102 -msgid "" -"Now if you go and look up the definition of :c:type:`PyTypeObject` in :file:" -"`object.h` you'll see that it has many more fields that the definition " -"above. The remaining 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 "" - -#: ../Doc/extending/newtypes.rst:107 -msgid "" -"This is so important that we're going to pick the top of it apart still " -"further::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:112 -msgid "This line is a bit of a wart; what we'd like to write is::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:116 -msgid "" -"as the type of a type object is \"type\", but this isn't strictly conforming " -"C and some compilers complain. Fortunately, this member will be filled in " -"for us by :c:func:`PyType_Ready`. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:122 -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 "" - -#: ../Doc/extending/newtypes.rst:130 -msgid "" -"Note that the name is a dotted name that includes both the module name and " -"the name of the type within the module. The module in this case is :mod:" -"`noddy` and the type is :class:`Noddy`, so we set the type name to :class:" -"`noddy.Noddy`. One side effect of using an undotted name is that the pydoc " -"documentation tool will not list the new type in the module documentation. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:138 -msgid "" -"This is so that Python knows how much memory to allocate when you call :c:" -"func:`PyObject_New`." -msgstr "" - -#: ../Doc/extending/newtypes.rst:143 -msgid "" -"If you want your type to be subclassable from Python, and your type has the " -"same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " -"problems with multiple inheritance. A Python subclass of your type will " -"have to list your type first in its :attr:`~class.__bases__`, or else it " -"will not be able to call your type's :meth:`__new__` method without getting " -"an error. You can avoid this problem by ensuring that your type has a " -"larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " -"does. Most of the time, this will be true anyway, because either your base " -"type will be :class:`object`, or else you will be adding data members to " -"your base type, and therefore increasing its size." -msgstr "" - -#: ../Doc/extending/newtypes.rst:157 -msgid "" -"This has to do with variable length objects like lists and strings. Ignore " -"this for now." -msgstr "" - -#: ../Doc/extending/newtypes.rst:160 -msgid "" -"Skipping a number of type methods that we don't provide, we set the class " -"flags to :const:`Py_TPFLAGS_DEFAULT`. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:165 -msgid "" -"All types should include this constant in their flags. It enables all of " -"the members defined until at least Python 3.3. If you need further members, " -"you will need to OR the corresponding flags." -msgstr "" - -#: ../Doc/extending/newtypes.rst:169 -msgid "" -"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:173 -msgid "" -"Now we get into the type methods, the things that make your objects " -"different from the others. We aren't going to implement any of these in " -"this version of the module. We'll expand this example later to have more " -"interesting behavior." -msgstr "" - -#: ../Doc/extending/newtypes.rst:177 -msgid "" -"For now, all we want to be able to do is to create new :class:`Noddy` " -"objects. To enable object creation, we have to provide a :c:member:" -"`~PyTypeObject.tp_new` implementation. In this case, we can just use the " -"default implementation provided by the API function :c:func:" -"`PyType_GenericNew`. We'd like to just assign this to the :c:member:" -"`~PyTypeObject.tp_new` slot, but we can't, for portability sake, On some " -"platforms or compilers, we can't statically initialize a structure member " -"with a function defined in another C module, so, instead, we'll assign the :" -"c:member:`~PyTypeObject.tp_new` slot in the module initialization function " -"just before calling :c:func:`PyType_Ready`::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:191 -msgid "" -"All the other type methods are *NULL*, so we'll go over them later --- " -"that's for a later section!" -msgstr "" - -#: ../Doc/extending/newtypes.rst:194 -msgid "" -"Everything else in the file should be familiar, except for some code in :c:" -"func:`PyInit_noddy`::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:200 -msgid "" -"This initializes the :class:`Noddy` type, filing in a number of members, " -"including :attr:`ob_type` that we initially set to *NULL*. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:205 -msgid "" -"This adds the type to the module dictionary. This allows us to create :" -"class:`Noddy` instances by calling the :class:`Noddy` class::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:211 -msgid "" -"That's it! All that remains is to build it; put the above code in a file " -"called :file:`noddy.c` and ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:218 -msgid "in a file called :file:`setup.py`; then typing" -msgstr "" - -#: ../Doc/extending/newtypes.rst:224 -msgid "" -"at a shell should produce a file :file:`noddy.so` in a subdirectory; move to " -"that directory and fire up Python --- you should be able to ``import noddy`` " -"and play around with Noddy objects." -msgstr "" - -#: ../Doc/extending/newtypes.rst:228 -msgid "That wasn't so hard, was it?" -msgstr "" - -#: ../Doc/extending/newtypes.rst:230 -msgid "" -"Of course, the current Noddy type is pretty uninteresting. It has no data " -"and doesn't do anything. It can't even be subclassed." -msgstr "" - -#: ../Doc/extending/newtypes.rst:235 -msgid "Adding data and methods to the Basic example" -msgstr "" - -#: ../Doc/extending/newtypes.rst:237 -msgid "" -"Let's extend the basic example to add some data and methods. Let's also " -"make the type usable as a base class. We'll create a new module, :mod:" -"`noddy2` that adds these capabilities:" -msgstr "" - -#: ../Doc/extending/newtypes.rst:244 -msgid "This version of the module has a number of changes." -msgstr "" - -#: ../Doc/extending/newtypes.rst:246 -msgid "We've added an extra include::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:250 -msgid "" -"This include provides declarations that we use to handle attributes, as " -"described a bit later." -msgstr "" - -#: ../Doc/extending/newtypes.rst:253 -msgid "" -"The name of the :class:`Noddy` object structure has been shortened to :class:" -"`Noddy`. The type object name has been shortened to :class:`NoddyType`." -msgstr "" - -#: ../Doc/extending/newtypes.rst:256 -msgid "" -"The :class:`Noddy` type now has three data attributes, *first*, *last*, and " -"*number*. The *first* and *last* variables are Python strings containing " -"first and last names. The *number* attribute is an integer." -msgstr "" - -#: ../Doc/extending/newtypes.rst:260 -msgid "The object structure is updated accordingly::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:269 -msgid "" -"Because we now have data to manage, we have to be more careful about object " -"allocation and deallocation. At a minimum, we need a deallocation method::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:280 -msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:284 -msgid "" -"This method decrements the reference counts of the two Python attributes. We " -"use :c:func:`Py_XDECREF` here because the :attr:`first` and :attr:`last` " -"members could be *NULL*. It then calls the :c:member:`~PyTypeObject." -"tp_free` member of the object's type to free the object's memory. Note that " -"the object's type might not be :class:`NoddyType`, because the object may be " -"an instance of a subclass." -msgstr "" - -#: ../Doc/extending/newtypes.rst:290 -msgid "" -"We want to make sure that the first and last names are initialized to empty " -"strings, so we provide a new method::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:318 -msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:322 -msgid "" -"The new member is responsible for creating (as opposed to initializing) " -"objects of the type. It is exposed in Python as the :meth:`__new__` " -"method. See the paper titled \"Unifying types and classes in Python\" for a " -"detailed discussion of the :meth:`__new__` method. One reason to implement " -"a new method is to assure the initial values of instance variables. In this " -"case, we use the new method to make sure that the initial values of the " -"members :attr:`first` and :attr:`last` are not *NULL*. If we didn't care " -"whether the initial values were *NULL*, we could have used :c:func:" -"`PyType_GenericNew` as our new method, as we did before. :c:func:" -"`PyType_GenericNew` initializes all of the instance variable members to " -"*NULL*." -msgstr "" - -#: ../Doc/extending/newtypes.rst:333 -msgid "" -"The new method is a static method that is passed the type being instantiated " -"and any arguments passed when the type was called, and that returns the new " -"object created. New methods always accept positional and keyword arguments, " -"but they often ignore the arguments, leaving the argument handling to " -"initializer methods. Note that if the type supports subclassing, the type " -"passed may not be the type being defined. The new method calls the :c:" -"member:`~PyTypeObject.tp_alloc` slot to allocate memory. We don't fill the :" -"c:member:`~PyTypeObject.tp_alloc` slot ourselves. Rather :c:func:" -"`PyType_Ready` fills it for us by inheriting it from our base class, which " -"is :class:`object` by default. Most types use the default allocation." -msgstr "" - -#: ../Doc/extending/newtypes.rst:345 -msgid "" -"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " -"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:" -"`__new__`), you must *not* try to determine what method to call using method " -"resolution order at runtime. Always statically determine what type you are " -"going to call, and call its :c:member:`~PyTypeObject.tp_new` directly, or " -"via ``type->tp_base->tp_new``. If you do not do this, Python subclasses of " -"your type that also inherit from other Python-defined classes may not work " -"correctly. (Specifically, you may not be able to create instances of such " -"subclasses without getting a :exc:`TypeError`.)" -msgstr "" - -#: ../Doc/extending/newtypes.rst:354 -msgid "We provide an initialization function::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:385 -msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:389 -msgid "" -"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" -"`__init__` method. It is used to initialize an object after it's created. " -"Unlike the new method, we can't guarantee that the initializer is called. " -"The initializer isn't called when unpickling objects and it can be " -"overridden. Our initializer accepts arguments to provide initial values for " -"our instance. Initializers always accept positional and keyword arguments. " -"Initializers should return either ``0`` on success or ``-1`` on error." -msgstr "" - -#: ../Doc/extending/newtypes.rst:397 -msgid "" -"Initializers can be called multiple times. Anyone can call the :meth:" -"`__init__` method on our objects. For this reason, we have to be extra " -"careful when assigning the new values. We might be tempted, for example to " -"assign the :attr:`first` member like this::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:408 -msgid "" -"But this would be risky. Our type doesn't restrict the type of the :attr:" -"`first` member, so it could be any kind of object. It could have a " -"destructor that causes code to be executed that tries to access the :attr:" -"`first` member. To be paranoid and protect ourselves against this " -"possibility, we almost always reassign members before decrementing their " -"reference counts. When don't we have to do this?" -msgstr "" - -#: ../Doc/extending/newtypes.rst:415 -msgid "when we absolutely know that the reference count is greater than 1" -msgstr "" - -#: ../Doc/extending/newtypes.rst:417 -msgid "" -"when we know that deallocation of the object [#]_ will not cause any calls " -"back into our type's code" -msgstr "" - -#: ../Doc/extending/newtypes.rst:420 -msgid "" -"when decrementing a reference count in a :c:member:`~PyTypeObject." -"tp_dealloc` handler when garbage-collections is not supported [#]_" -msgstr "" - -#: ../Doc/extending/newtypes.rst:423 -msgid "" -"We want to expose our instance variables as attributes. There are a number " -"of ways to do that. The simplest way is to define member definitions::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:436 -msgid "" -"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:440 -msgid "" -"Each member definition has a member name, type, offset, access flags and " -"documentation string. See the :ref:`Generic-Attribute-Management` section " -"below for details." -msgstr "" - -#: ../Doc/extending/newtypes.rst:444 -msgid "" -"A disadvantage of this approach is that it doesn't provide a way to restrict " -"the types of objects that can be assigned to the Python attributes. We " -"expect the first and last names to be strings, but any Python objects can be " -"assigned. Further, the attributes can be deleted, setting the C pointers to " -"*NULL*. Even though we can make sure the members are initialized to non-" -"*NULL* values, the members can be set to *NULL* if the attributes are " -"deleted." -msgstr "" - -#: ../Doc/extending/newtypes.rst:451 -msgid "" -"We define a single method, :meth:`name`, that outputs the objects name as " -"the concatenation of the first and last names. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:470 -msgid "" -"The method is implemented as a C function that takes a :class:`Noddy` (or :" -"class:`Noddy` subclass) instance as the first argument. Methods always take " -"an instance as the first argument. Methods often take positional and keyword " -"arguments as well, but in this case we don't take any and don't need to " -"accept a positional argument tuple or keyword argument dictionary. This " -"method is equivalent to the Python method::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:480 -msgid "" -"Note that we have to check for the possibility that our :attr:`first` and :" -"attr:`last` members are *NULL*. This is because they can be deleted, in " -"which case they are set to *NULL*. It would be better to prevent deletion " -"of these attributes and to restrict the attribute values to be strings. " -"We'll see how to do that in the next section." -msgstr "" - -#: ../Doc/extending/newtypes.rst:486 -msgid "" -"Now that we've defined the method, we need to create an array of method " -"definitions::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:496 -msgid "and assign them to the :c:member:`~PyTypeObject.tp_methods` slot::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:500 -msgid "" -"Note that we used the :const:`METH_NOARGS` flag to indicate that the method " -"is passed no arguments." -msgstr "" - -#: ../Doc/extending/newtypes.rst:503 -msgid "" -"Finally, we'll make our type usable as a base class. We've written our " -"methods carefully so far so that they don't make any assumptions about the " -"type of the object being created or used, so all we need to do is to add " -"the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:510 -msgid "" -"We rename :c:func:`PyInit_noddy` to :c:func:`PyInit_noddy2` and update the " -"module name in the :c:type:`PyModuleDef` struct." -msgstr "" - -#: ../Doc/extending/newtypes.rst:513 -msgid "Finally, we update our :file:`setup.py` file to build the new module::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:524 -msgid "Providing finer control over data attributes" -msgstr "" - -#: ../Doc/extending/newtypes.rst:526 -msgid "" -"In this section, we'll provide finer control over how the :attr:`first` and :" -"attr:`last` attributes are set in the :class:`Noddy` example. In the " -"previous version of our module, the instance variables :attr:`first` and :" -"attr:`last` could be set to non-string values or even deleted. We want to " -"make sure that these attributes always contain strings." -msgstr "" - -#: ../Doc/extending/newtypes.rst:535 -msgid "" -"To provide greater control, over the :attr:`first` and :attr:`last` " -"attributes, we'll use custom getter and setter functions. Here are the " -"functions for getting and setting the :attr:`first` attribute::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:566 -msgid "" -"The getter function is passed a :class:`Noddy` object and a \"closure\", " -"which is void pointer. In this case, the closure is ignored. (The closure " -"supports an advanced usage in which definition data is passed to the getter " -"and setter. This could, for example, be used to allow a single set of getter " -"and setter functions that decide the attribute to get or set based on data " -"in the closure.)" -msgstr "" - -#: ../Doc/extending/newtypes.rst:572 -msgid "" -"The setter function is passed the :class:`Noddy` object, the new value, and " -"the closure. The new value may be *NULL*, in which case the attribute is " -"being deleted. In our setter, we raise an error if the attribute is deleted " -"or if the attribute value is not a string." -msgstr "" - -#: ../Doc/extending/newtypes.rst:577 -msgid "We create an array of :c:type:`PyGetSetDef` structures::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:591 -msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:595 -msgid "to register our attribute getters and setters." -msgstr "" - -#: ../Doc/extending/newtypes.rst:597 -msgid "" -"The last item in a :c:type:`PyGetSetDef` structure is the closure mentioned " -"above. In this case, we aren't using the closure, so we just pass *NULL*." -msgstr "" - -#: ../Doc/extending/newtypes.rst:600 -msgid "We also remove the member definitions for these attributes::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:608 -msgid "" -"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " -"allow strings [#]_ to be passed::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:640 -msgid "" -"With these changes, we can assure that the :attr:`first` and :attr:`last` " -"members are never *NULL* so we can remove checks for *NULL* values in almost " -"all cases. This means that most of the :c:func:`Py_XDECREF` calls can be " -"converted to :c:func:`Py_DECREF` calls. The only place we can't change these " -"calls is in the deallocator, where there is the possibility that the " -"initialization of these members failed in the constructor." -msgstr "" - -#: ../Doc/extending/newtypes.rst:647 -msgid "" -"We also rename the module initialization function and module name in the " -"initialization function, as we did before, and we add an extra definition to " -"the :file:`setup.py` file." -msgstr "" - -#: ../Doc/extending/newtypes.rst:653 -msgid "Supporting cyclic garbage collection" -msgstr "" - -#: ../Doc/extending/newtypes.rst:655 -msgid "" -"Python has a cyclic-garbage collector that can identify unneeded objects " -"even when their reference counts are not zero. This can happen when objects " -"are involved in cycles. For example, consider::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:663 -msgid "" -"In this example, we create a list that contains itself. When we delete it, " -"it still has a reference from itself. Its reference count doesn't drop to " -"zero. Fortunately, Python's cyclic-garbage collector will eventually figure " -"out that the list is garbage and free it." -msgstr "" - -#: ../Doc/extending/newtypes.rst:668 -msgid "" -"In the second version of the :class:`Noddy` example, we allowed any kind of " -"object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. " -"This means that :class:`Noddy` objects can participate in cycles::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:677 -msgid "" -"This is pretty silly, but it gives us an excuse to add support for the " -"cyclic-garbage collector to the :class:`Noddy` example. To support cyclic " -"garbage collection, types need to fill two slots and set a class flag that " -"enables these slots:" -msgstr "" - -#: ../Doc/extending/newtypes.rst:685 -msgid "" -"The traversal method provides access to subobjects that could participate in " -"cycles::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:707 -msgid "" -"For each subobject that can participate in cycles, we need to call the :c:" -"func:`visit` function, which is passed to the traversal method. The :c:func:" -"`visit` function takes as arguments the subobject and the extra argument " -"*arg* passed to the traversal method. It returns an integer value that must " -"be returned if it is non-zero." -msgstr "" - -#: ../Doc/extending/newtypes.rst:713 -msgid "" -"Python provides a :c:func:`Py_VISIT` macro that automates calling visit " -"functions. With :c:func:`Py_VISIT`, :c:func:`Noddy_traverse` can be " -"simplified::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:726 -msgid "" -"Note that the :c:member:`~PyTypeObject.tp_traverse` implementation must name " -"its arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`. " -"This is to encourage uniformity across these boring implementations." -msgstr "" - -#: ../Doc/extending/newtypes.rst:730 -msgid "" -"We also need to provide a method for clearing any subobjects that can " -"participate in cycles." -msgstr "" - -#: ../Doc/extending/newtypes.rst:751 -msgid "" -"Notice the use of a temporary variable in :c:func:`Noddy_clear`. We use the " -"temporary variable so that we can set each member to *NULL* before " -"decrementing its reference count. We do this because, as was discussed " -"earlier, if the reference count drops to zero, we might cause code to run " -"that calls back into the object. In addition, because we now support " -"garbage collection, we also have to worry about code being run that triggers " -"garbage collection. If garbage collection is run, our :c:member:" -"`~PyTypeObject.tp_traverse` handler could get called. We can't take a chance " -"of having :c:func:`Noddy_traverse` called when a member's reference count " -"has dropped to zero and its value hasn't been set to *NULL*." -msgstr "" - -#: ../Doc/extending/newtypes.rst:761 -msgid "" -"Python provides a :c:func:`Py_CLEAR` that automates the careful decrementing " -"of reference counts. With :c:func:`Py_CLEAR`, the :c:func:`Noddy_clear` " -"function can be simplified::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:773 -msgid "" -"Note that :c:func:`Noddy_dealloc` may call arbitrary functions through " -"``__del__`` method or weakref callback. It means circular GC can be " -"triggered inside the function. Since GC assumes reference count is not " -"zero, we need to untrack the object from GC by calling :c:func:" -"`PyObject_GC_UnTrack` before clearing members. Here is reimplemented " -"deallocator which uses :c:func:`PyObject_GC_UnTrack` and :c:func:" -"`Noddy_clear`." -msgstr "" - -#: ../Doc/extending/newtypes.rst:790 -msgid "" -"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:794 -msgid "" -"That's pretty much it. If we had written custom :c:member:`~PyTypeObject." -"tp_alloc` or :c:member:`~PyTypeObject.tp_free` slots, we'd need to modify " -"them for cyclic-garbage collection. Most extensions will use the versions " -"automatically provided." -msgstr "" - -#: ../Doc/extending/newtypes.rst:800 -msgid "Subclassing other types" -msgstr "" - -#: ../Doc/extending/newtypes.rst:802 -msgid "" -"It is possible to create new extension types that are derived from existing " -"types. It is easiest to inherit from the built in types, since an extension " -"can easily use the :class:`PyTypeObject` it needs. It can be difficult to " -"share these :class:`PyTypeObject` structures between extension modules." -msgstr "" - -#: ../Doc/extending/newtypes.rst:807 -msgid "" -"In this example we will create a :class:`Shoddy` type that inherits from the " -"built-in :class:`list` type. The new type will be completely compatible with " -"regular lists, but will have an additional :meth:`increment` method that " -"increases an internal counter. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:825 -msgid "" -"As you can see, the source code closely resembles the :class:`Noddy` " -"examples in previous sections. We will break down the main differences " -"between them. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:833 -msgid "" -"The primary difference for derived type objects is that the base type's " -"object structure must be the first value. The base type will already include " -"the :c:func:`PyObject_HEAD` at the beginning of its structure." -msgstr "" - -#: ../Doc/extending/newtypes.rst:837 -msgid "" -"When a Python object is a :class:`Shoddy` instance, its *PyObject\\** " -"pointer can be safely cast to both *PyListObject\\** and *Shoddy\\**. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:849 -msgid "" -"In the :attr:`__init__` method for our type, we can see how to call through " -"to the :attr:`__init__` method of the base type." -msgstr "" - -#: ../Doc/extending/newtypes.rst:852 -msgid "" -"This pattern is important when writing a type with custom :attr:`new` and :" -"attr:`dealloc` methods. The :attr:`new` method should not actually create " -"the memory for the object with :c:member:`~PyTypeObject.tp_alloc`, that will " -"be handled by the base class when calling its :c:member:`~PyTypeObject." -"tp_new`." -msgstr "" - -#: ../Doc/extending/newtypes.rst:857 -msgid "" -"When filling out the :c:func:`PyTypeObject` for the :class:`Shoddy` type, " -"you see a slot for :c:func:`tp_base`. Due to cross platform compiler issues, " -"you can't fill that field directly with the :c:func:`PyList_Type`; it can be " -"done later in the module's :c:func:`init` function. ::" -msgstr "" - -#: ../Doc/extending/newtypes.rst:880 -msgid "" -"Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" -"member:`~PyTypeObject.tp_base` slot filled in. When we are deriving a new " -"type, it is not necessary to fill out the :c:member:`~PyTypeObject.tp_alloc` " -"slot with :c:func:`PyType_GenericNew` -- the allocate function from the base " -"type will be inherited." -msgstr "" - -#: ../Doc/extending/newtypes.rst:885 -msgid "" -"After that, calling :c:func:`PyType_Ready` and adding the type object to the " -"module is the same as with the basic :class:`Noddy` examples." -msgstr "" - -#: ../Doc/extending/newtypes.rst:892 -msgid "Type Methods" -msgstr "" - -#: ../Doc/extending/newtypes.rst:894 +#: ../Doc/extending/newtypes.rst:9 msgid "" "This section aims to give a quick fly-by on the various type methods you can " "implement and what they do." msgstr "" -#: ../Doc/extending/newtypes.rst:897 +#: ../Doc/extending/newtypes.rst:12 msgid "" "Here is the definition of :c:type:`PyTypeObject`, with some fields only used " "in debug builds omitted:" msgstr "" -#: ../Doc/extending/newtypes.rst:903 +#: ../Doc/extending/newtypes.rst:18 msgid "" -"Now that's a *lot* of methods. Don't worry too much though - if you have a " +"Now that's a *lot* of methods. Don't worry too much though -- if you have a " "type you want to define, the chances are very good that you will only " "implement a handful of these." msgstr "" -#: ../Doc/extending/newtypes.rst:907 +#: ../Doc/extending/newtypes.rst:22 msgid "" "As you probably expect by now, we're going to go over this and give more " "information about the various handlers. We won't go in the order they are " "defined in the structure, because there is a lot of historical baggage that " -"impacts the ordering of the fields; be sure your type initialization keeps " -"the fields in the right order! It's often easiest to find an example that " -"includes all the fields you need (even if they're initialized to ``0``) and " -"then change the values to suit your new type. ::" +"impacts the ordering of the fields. It's often easiest to find an example " +"that includes the fields you need and then change the values to suit your " +"new type. ::" msgstr "" -#: ../Doc/extending/newtypes.rst:917 +#: ../Doc/extending/newtypes.rst:31 msgid "" -"The name of the type - as mentioned in the last section, this will appear in " -"various places, almost entirely for diagnostic purposes. Try to choose " -"something that will be helpful in such a situation! ::" +"The name of the type -- as mentioned in the previous chapter, this will " +"appear in various places, almost entirely for diagnostic purposes. Try to " +"choose something that will be helpful in such a situation! ::" msgstr "" -#: ../Doc/extending/newtypes.rst:923 +#: ../Doc/extending/newtypes.rst:37 msgid "" "These fields tell the runtime how much memory to allocate when new objects " "of this type are created. Python has some built-in support for variable " -"length structures (think: strings, lists) which is where the :c:member:" +"length structures (think: strings, tuples) which is where the :c:member:" "`~PyTypeObject.tp_itemsize` field comes in. This will be dealt with " "later. ::" msgstr "" -#: ../Doc/extending/newtypes.rst:930 +#: ../Doc/extending/newtypes.rst:44 msgid "" "Here you can put a string (or its address) that you want returned when the " "Python script references ``obj.__doc__`` to retrieve the doc string." msgstr "" -#: ../Doc/extending/newtypes.rst:933 +#: ../Doc/extending/newtypes.rst:47 msgid "" -"Now we come to the basic type methods---the ones most extension types will " +"Now we come to the basic type methods -- the ones most extension types will " "implement." msgstr "" -#: ../Doc/extending/newtypes.rst:938 +#: ../Doc/extending/newtypes.rst:52 msgid "Finalization and De-allocation" msgstr "" -#: ../Doc/extending/newtypes.rst:950 +#: ../Doc/extending/newtypes.rst:64 msgid "" "This function is called when the reference count of the instance of your " "type is reduced to zero and the Python interpreter wants to reclaim it. If " @@ -865,7 +91,7 @@ msgid "" "of this function::" msgstr "" -#: ../Doc/extending/newtypes.rst:967 +#: ../Doc/extending/newtypes.rst:81 msgid "" "One important requirement of the deallocator function is that it leaves any " "pending exceptions alone. This is important since deallocators are " @@ -880,7 +106,7 @@ msgid "" "c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` functions::" msgstr "" -#: ../Doc/extending/newtypes.rst:1006 +#: ../Doc/extending/newtypes.rst:120 msgid "" "There are limitations to what you can safely do in a deallocator function. " "First, if your type supports garbage collection (using :c:member:" @@ -893,43 +119,43 @@ msgid "" "tp_dealloc` again, causing a double free and a crash." msgstr "" -#: ../Doc/extending/newtypes.rst:1015 +#: ../Doc/extending/newtypes.rst:129 msgid "" "Starting with Python 3.4, it is recommended not to put any complex " "finalization code in :c:member:`~PyTypeObject.tp_dealloc`, and instead use " "the new :c:member:`~PyTypeObject.tp_finalize` type method." msgstr "" -#: ../Doc/extending/newtypes.rst:1020 +#: ../Doc/extending/newtypes.rst:134 msgid ":pep:`442` explains the new finalization scheme." msgstr "" -#: ../Doc/extending/newtypes.rst:1027 +#: ../Doc/extending/newtypes.rst:141 msgid "Object Presentation" msgstr "" -#: ../Doc/extending/newtypes.rst:1029 +#: ../Doc/extending/newtypes.rst:143 msgid "" "In Python, there are two ways to generate a textual representation of an " "object: the :func:`repr` function, and the :func:`str` function. (The :func:" "`print` function just calls :func:`str`.) These handlers are both optional." msgstr "" -#: ../Doc/extending/newtypes.rst:1038 +#: ../Doc/extending/newtypes.rst:152 msgid "" "The :c:member:`~PyTypeObject.tp_repr` handler should return a string object " "containing a representation of the instance for which it is called. Here is " "a simple example::" msgstr "" -#: ../Doc/extending/newtypes.rst:1049 +#: ../Doc/extending/newtypes.rst:163 msgid "" "If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the " "interpreter will supply a representation that uses the type's :c:member:" "`~PyTypeObject.tp_name` and a uniquely-identifying value for the object." msgstr "" -#: ../Doc/extending/newtypes.rst:1053 +#: ../Doc/extending/newtypes.rst:167 msgid "" "The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what the :c:" "member:`~PyTypeObject.tp_repr` handler described above is to :func:`repr`; " @@ -940,15 +166,15 @@ msgid "" "the :c:member:`~PyTypeObject.tp_repr` handler is used instead." msgstr "" -#: ../Doc/extending/newtypes.rst:1060 +#: ../Doc/extending/newtypes.rst:174 msgid "Here is a simple example::" msgstr "" -#: ../Doc/extending/newtypes.rst:1072 +#: ../Doc/extending/newtypes.rst:186 msgid "Attribute Management" msgstr "" -#: ../Doc/extending/newtypes.rst:1074 +#: ../Doc/extending/newtypes.rst:188 msgid "" "For every object which can support attributes, the corresponding type must " "provide the functions that control how the attributes are resolved. There " @@ -958,7 +184,7 @@ msgid "" "handler is *NULL*." msgstr "" -#: ../Doc/extending/newtypes.rst:1080 +#: ../Doc/extending/newtypes.rst:194 msgid "" "Python supports two pairs of attribute handlers; a type that supports " "attributes only needs to implement the functions for one pair. The " @@ -967,7 +193,7 @@ msgid "" "use whichever pair makes more sense for the implementation's convenience. ::" msgstr "" -#: ../Doc/extending/newtypes.rst:1092 +#: ../Doc/extending/newtypes.rst:206 msgid "" "If accessing attributes of an object is always a simple operation (this will " "be explained shortly), there are generic implementations which can be used " @@ -978,35 +204,35 @@ msgid "" "mechanism that is available." msgstr "" -#: ../Doc/extending/newtypes.rst:1103 +#: ../Doc/extending/newtypes.rst:217 msgid "Generic Attribute Management" msgstr "" -#: ../Doc/extending/newtypes.rst:1105 +#: ../Doc/extending/newtypes.rst:219 msgid "" "Most extension types only use *simple* attributes. So, what makes the " "attributes simple? There are only a couple of conditions that must be met:" msgstr "" -#: ../Doc/extending/newtypes.rst:1108 +#: ../Doc/extending/newtypes.rst:222 msgid "" "The name of the attributes must be known when :c:func:`PyType_Ready` is " "called." msgstr "" -#: ../Doc/extending/newtypes.rst:1111 +#: ../Doc/extending/newtypes.rst:225 msgid "" "No special processing is needed to record that an attribute was looked up or " "set, nor do actions need to be taken based on the value." msgstr "" -#: ../Doc/extending/newtypes.rst:1114 +#: ../Doc/extending/newtypes.rst:228 msgid "" "Note that this list does not place any restrictions on the values of the " "attributes, when the values are computed, or how relevant data is stored." msgstr "" -#: ../Doc/extending/newtypes.rst:1117 +#: ../Doc/extending/newtypes.rst:231 msgid "" "When :c:func:`PyType_Ready` is called, it uses three tables referenced by " "the type object to create :term:`descriptor`\\s which are placed in the " @@ -1018,18 +244,18 @@ msgid "" "*NULL* as well, allowing the base type to handle attributes." msgstr "" -#: ../Doc/extending/newtypes.rst:1125 +#: ../Doc/extending/newtypes.rst:239 msgid "The tables are declared as three fields of the type object::" msgstr "" -#: ../Doc/extending/newtypes.rst:1131 +#: ../Doc/extending/newtypes.rst:245 msgid "" "If :c:member:`~PyTypeObject.tp_methods` is not *NULL*, it must refer to an " "array of :c:type:`PyMethodDef` structures. Each entry in the table is an " "instance of this structure::" msgstr "" -#: ../Doc/extending/newtypes.rst:1142 +#: ../Doc/extending/newtypes.rst:256 msgid "" "One entry should be defined for each method provided by the type; no entries " "are needed for methods inherited from a base type. One additional entry is " @@ -1037,7 +263,7 @@ msgid "" "attr:`ml_name` field of the sentinel must be *NULL*." msgstr "" -#: ../Doc/extending/newtypes.rst:1147 +#: ../Doc/extending/newtypes.rst:261 msgid "" "The second table is used to define attributes which map directly to data " "stored in the instance. A variety of primitive C types are supported, and " @@ -1045,7 +271,7 @@ msgid "" "defined as::" msgstr "" -#: ../Doc/extending/newtypes.rst:1159 +#: ../Doc/extending/newtypes.rst:273 msgid "" "For each entry in the table, a :term:`descriptor` will be constructed and " "added to the type which will be able to extract a value from the instance " @@ -1056,53 +282,53 @@ msgid "" "accessed." msgstr "" -#: ../Doc/extending/newtypes.rst:1166 +#: ../Doc/extending/newtypes.rst:280 msgid "" "The following flag constants are defined in :file:`structmember.h`; they may " "be combined using bitwise-OR." msgstr "" -#: ../Doc/extending/newtypes.rst:1170 +#: ../Doc/extending/newtypes.rst:284 msgid "Constant" msgstr "Constante" -#: ../Doc/extending/newtypes.rst:1170 +#: ../Doc/extending/newtypes.rst:284 msgid "Meaning" msgstr "Signification" -#: ../Doc/extending/newtypes.rst:1172 +#: ../Doc/extending/newtypes.rst:286 msgid ":const:`READONLY`" msgstr "" -#: ../Doc/extending/newtypes.rst:1172 +#: ../Doc/extending/newtypes.rst:286 msgid "Never writable." msgstr "" -#: ../Doc/extending/newtypes.rst:1174 +#: ../Doc/extending/newtypes.rst:288 msgid ":const:`READ_RESTRICTED`" msgstr "" -#: ../Doc/extending/newtypes.rst:1174 +#: ../Doc/extending/newtypes.rst:288 msgid "Not readable in restricted mode." msgstr "" -#: ../Doc/extending/newtypes.rst:1176 +#: ../Doc/extending/newtypes.rst:290 msgid ":const:`WRITE_RESTRICTED`" msgstr "" -#: ../Doc/extending/newtypes.rst:1176 +#: ../Doc/extending/newtypes.rst:290 msgid "Not writable in restricted mode." msgstr "" -#: ../Doc/extending/newtypes.rst:1178 +#: ../Doc/extending/newtypes.rst:292 msgid ":const:`RESTRICTED`" msgstr "" -#: ../Doc/extending/newtypes.rst:1178 +#: ../Doc/extending/newtypes.rst:292 msgid "Not readable or writable in restricted mode." msgstr "" -#: ../Doc/extending/newtypes.rst:1187 +#: ../Doc/extending/newtypes.rst:301 msgid "" "An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` " "table to build descriptors that are used at runtime is that any attribute " @@ -1112,17 +338,17 @@ msgid "" "`__doc__` attribute." msgstr "" -#: ../Doc/extending/newtypes.rst:1193 +#: ../Doc/extending/newtypes.rst:307 msgid "" "As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry " "with a :attr:`name` value of *NULL* is required." msgstr "" -#: ../Doc/extending/newtypes.rst:1207 +#: ../Doc/extending/newtypes.rst:321 msgid "Type-specific Attribute Management" msgstr "" -#: ../Doc/extending/newtypes.rst:1209 +#: ../Doc/extending/newtypes.rst:323 msgid "" "For simplicity, only the :c:type:`char\\*` version will be demonstrated " "here; the type of the name parameter is the only difference between the :c:" @@ -1133,18 +359,18 @@ msgid "" "functionality, you'll understand what needs to be done." msgstr "" -#: ../Doc/extending/newtypes.rst:1217 +#: ../Doc/extending/newtypes.rst:331 msgid "" "The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object " "requires an attribute look-up. It is called in the same situations where " "the :meth:`__getattr__` method of a class would be called." msgstr "" -#: ../Doc/extending/newtypes.rst:1221 +#: ../Doc/extending/newtypes.rst:335 msgid "Here is an example::" msgstr "Voici un exemple : ::" -#: ../Doc/extending/newtypes.rst:1237 +#: ../Doc/extending/newtypes.rst:351 msgid "" "The :c:member:`~PyTypeObject.tp_setattr` handler is called when the :meth:" "`__setattr__` or :meth:`__delattr__` method of a class instance would be " @@ -1154,11 +380,11 @@ msgid "" "should be set to *NULL*. ::" msgstr "" -#: ../Doc/extending/newtypes.rst:1251 +#: ../Doc/extending/newtypes.rst:365 msgid "Object Comparison" msgstr "" -#: ../Doc/extending/newtypes.rst:1257 +#: ../Doc/extending/newtypes.rst:371 msgid "" "The :c:member:`~PyTypeObject.tp_richcompare` handler is called when " "comparisons are needed. It is analogous to the :ref:`rich comparison " @@ -1166,7 +392,7 @@ msgid "" "`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`." msgstr "" -#: ../Doc/extending/newtypes.rst:1262 +#: ../Doc/extending/newtypes.rst:376 msgid "" "This function is called with two Python objects and the operator as " "arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, " @@ -1177,23 +403,23 @@ msgid "" "should be tried, or *NULL* if an exception was set." msgstr "" -#: ../Doc/extending/newtypes.rst:1270 +#: ../Doc/extending/newtypes.rst:384 msgid "" "Here is a sample implementation, for a datatype that is considered equal if " "the size of an internal pointer is equal::" msgstr "" -#: ../Doc/extending/newtypes.rst:1300 +#: ../Doc/extending/newtypes.rst:414 msgid "Abstract Protocol Support" msgstr "" -#: ../Doc/extending/newtypes.rst:1302 +#: ../Doc/extending/newtypes.rst:416 msgid "" "Python supports a variety of *abstract* 'protocols;' the specific interfaces " "provided to use these interfaces are documented in :ref:`abstract`." msgstr "" -#: ../Doc/extending/newtypes.rst:1306 +#: ../Doc/extending/newtypes.rst:420 msgid "" "A number of these abstract interfaces were defined early in the development " "of the Python implementation. In particular, the number, mapping, and " @@ -1208,7 +434,7 @@ msgid "" "slot, but a slot may still be unfilled.) ::" msgstr "" -#: ../Doc/extending/newtypes.rst:1321 +#: ../Doc/extending/newtypes.rst:435 msgid "" "If you wish your object to be able to act like a number, a sequence, or a " "mapping object, then you place the address of a structure that implements " @@ -1219,13 +445,21 @@ msgid "" "distribution. ::" msgstr "" -#: ../Doc/extending/newtypes.rst:1330 +#: ../Doc/extending/newtypes.rst:444 msgid "" "This function, if you choose to provide it, should return a hash number for " -"an instance of your data type. Here is a moderately pointless example::" +"an instance of your data type. Here is a simple example::" msgstr "" -#: ../Doc/extending/newtypes.rst:1346 +#: ../Doc/extending/newtypes.rst:457 +msgid "" +":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. " +"Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, " +"which is why you should be careful to avoid returning it when hash " +"computation is successful, as seen above." +msgstr "" + +#: ../Doc/extending/newtypes.rst:466 msgid "" "This function is called when an instance of your data type is \"called\", " "for example, if ``obj1`` is an instance of your data type and the Python " @@ -1233,173 +467,170 @@ msgid "" "handler is invoked." msgstr "" -#: ../Doc/extending/newtypes.rst:1350 +#: ../Doc/extending/newtypes.rst:470 msgid "This function takes three arguments:" msgstr "" -#: ../Doc/extending/newtypes.rst:1352 +#: ../Doc/extending/newtypes.rst:472 msgid "" -"*arg1* is the instance of the data type which is the subject of the call. If " -"the call is ``obj1('hello')``, then *arg1* is ``obj1``." +"*self* is the instance of the data type which is the subject of the call. If " +"the call is ``obj1('hello')``, then *self* is ``obj1``." msgstr "" -#: ../Doc/extending/newtypes.rst:1355 +#: ../Doc/extending/newtypes.rst:475 msgid "" -"*arg2* is a tuple containing the arguments to the call. You can use :c:func:" +"*args* is a tuple containing the arguments to the call. You can use :c:func:" "`PyArg_ParseTuple` to extract the arguments." msgstr "" -#: ../Doc/extending/newtypes.rst:1358 +#: ../Doc/extending/newtypes.rst:478 msgid "" -"*arg3* is a dictionary of keyword arguments that were passed. If this is non-" +"*kwds* is a dictionary of keyword arguments that were passed. If this is non-" "*NULL* and you support keyword arguments, use :c:func:" "`PyArg_ParseTupleAndKeywords` to extract the arguments. If you do not want " "to support keyword arguments and this is non-*NULL*, raise a :exc:" "`TypeError` with a message saying that keyword arguments are not supported." msgstr "" -#: ../Doc/extending/newtypes.rst:1364 +#: ../Doc/extending/newtypes.rst:484 +msgid "Here is a toy ``tp_call`` implementation::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:510 msgid "" -"Here is a desultory example of the implementation of the call function. ::" +"These functions provide support for the iterator protocol. Both handlers " +"take exactly one parameter, the instance for which they are being called, " +"and return a new reference. In the case of an error, they should set an " +"exception and return *NULL*. :c:member:`~PyTypeObject.tp_iter` corresponds " +"to the Python :meth:`__iter__` method, while :c:member:`~PyTypeObject." +"tp_iternext` corresponds to the Python :meth:`~iterator.__next__` method." msgstr "" -#: ../Doc/extending/newtypes.rst:1395 +#: ../Doc/extending/newtypes.rst:517 msgid "" -"These functions provide support for the iterator protocol. Any object which " -"wishes to support iteration over its contents (which may be generated during " -"iteration) must implement the ``tp_iter`` handler. Objects which are " -"returned by a ``tp_iter`` handler must implement both the ``tp_iter`` and " -"``tp_iternext`` handlers. Both handlers take exactly one parameter, the " -"instance for which they are being called, and return a new reference. In " -"the case of an error, they should set an exception and return *NULL*." +"Any :term:`iterable` object must implement the :c:member:`~PyTypeObject." +"tp_iter` handler, which must return an :term:`iterator` object. Here the " +"same guidelines apply as for Python classes:" msgstr "" -#: ../Doc/extending/newtypes.rst:1403 +#: ../Doc/extending/newtypes.rst:521 msgid "" -"For an object which represents an iterable collection, the ``tp_iter`` " -"handler must return an iterator object. The iterator object is responsible " -"for maintaining the state of the iteration. For collections which can " -"support multiple iterators which do not interfere with each other (as lists " -"and tuples do), a new iterator should be created and returned. Objects " -"which can only be iterated over once (usually due to side effects of " -"iteration) should implement this handler by returning a new reference to " -"themselves, and should also implement the ``tp_iternext`` handler. File " -"objects are an example of such an iterator." -msgstr "" - -#: ../Doc/extending/newtypes.rst:1413 +"For collections (such as lists and tuples) which can support multiple " +"independent iterators, a new iterator should be created and returned by each " +"call to :c:member:`~PyTypeObject.tp_iter`." +msgstr "" + +#: ../Doc/extending/newtypes.rst:524 msgid "" -"Iterator objects should implement both handlers. The ``tp_iter`` handler " -"should return a new reference to the iterator (this is the same as the " -"``tp_iter`` handler for objects which can only be iterated over " -"destructively). The ``tp_iternext`` handler should return a new reference " -"to the next object in the iteration if there is one. If the iteration has " -"reached the end, it may return *NULL* without setting an exception or it may " -"set :exc:`StopIteration`; avoiding the exception can yield slightly better " -"performance. If an actual error occurs, it should set an exception and " -"return *NULL*." -msgstr "" - -#: ../Doc/extending/newtypes.rst:1426 +"Objects which can only be iterated over once (usually due to side effects of " +"iteration, such as file objects) can implement :c:member:`~PyTypeObject." +"tp_iter` by returning a new reference to themselves -- and should also " +"therefore implement the :c:member:`~PyTypeObject.tp_iternext` handler." +msgstr "" + +#: ../Doc/extending/newtypes.rst:529 +msgid "" +"Any :term:`iterator` object should implement both :c:member:`~PyTypeObject." +"tp_iter` and :c:member:`~PyTypeObject.tp_iternext`. An iterator's :c:member:" +"`~PyTypeObject.tp_iter` handler should return a new reference to the " +"iterator. Its :c:member:`~PyTypeObject.tp_iternext` handler should return a " +"new reference to the next object in the iteration, if there is one. If the " +"iteration has reached the end, :c:member:`~PyTypeObject.tp_iternext` may " +"return *NULL* without setting an exception, or it may set :exc:" +"`StopIteration` *in addition* to returning *NULL*; avoiding the exception " +"can yield slightly better performance. If an actual error occurs, :c:member:" +"`~PyTypeObject.tp_iternext` should always set an exception and return *NULL*." +msgstr "" + +#: ../Doc/extending/newtypes.rst:545 msgid "Weak Reference Support" msgstr "" -#: ../Doc/extending/newtypes.rst:1428 +#: ../Doc/extending/newtypes.rst:547 msgid "" -"One of the goals of Python's weak-reference implementation is to allow any " +"One of the goals of Python's weak reference implementation is to allow any " "type to participate in the weak reference mechanism without incurring the " -"overhead on those objects which do not benefit by weak referencing (such as " -"numbers)." +"overhead on performance-critical objects (such as numbers)." +msgstr "" + +#: ../Doc/extending/newtypes.rst:552 +msgid "Documentation for the :mod:`weakref` module." msgstr "" -#: ../Doc/extending/newtypes.rst:1432 +#: ../Doc/extending/newtypes.rst:554 msgid "" -"For an object to be weakly referencable, the extension must include a :c:" -"type:`PyObject\\*` field in the instance structure for the use of the weak " -"reference mechanism; it must be initialized to *NULL* by the object's " -"constructor. It must also set the :c:member:`~PyTypeObject." -"tp_weaklistoffset` field of the corresponding type object to the offset of " -"the field. For example, the instance type is defined with the following " -"structure::" +"For an object to be weakly referencable, the extension type must do two " +"things:" msgstr "" -#: ../Doc/extending/newtypes.rst:1446 -msgid "The statically-declared type object for instances is defined this way::" +#: ../Doc/extending/newtypes.rst:556 +msgid "" +"Include a :c:type:`PyObject\\*` field in the C object structure dedicated to " +"the weak reference mechanism. The object's constructor should leave it " +"*NULL* (which is automatic when using the default :c:member:`~PyTypeObject." +"tp_alloc`)." msgstr "" -#: ../Doc/extending/newtypes.rst:1463 +#: ../Doc/extending/newtypes.rst:561 msgid "" -"The type constructor is responsible for initializing the weak reference list " -"to *NULL*::" +"Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the " +"offset of the aforementioned field in the C object structure, so that the " +"interpreter knows how to access and modify that field." msgstr "" -#: ../Doc/extending/newtypes.rst:1475 +#: ../Doc/extending/newtypes.rst:565 msgid "" -"The only further addition is that the destructor needs to call the weak " -"reference manager to clear any weak references. This is only required if " -"the weak reference list is non-*NULL*::" +"Concretely, here is how a trivial object structure would be augmented with " +"the required field::" msgstr "" -#: ../Doc/extending/newtypes.rst:1494 -msgid "More Suggestions" +#: ../Doc/extending/newtypes.rst:573 +msgid "And the corresponding member in the statically-declared type object::" msgstr "" -#: ../Doc/extending/newtypes.rst:1496 +#: ../Doc/extending/newtypes.rst:581 msgid "" -"Remember that you can omit most of these functions, in which case you " -"provide ``0`` as a value. There are type definitions for each of the " -"functions you must provide. They are in :file:`object.h` in the Python " -"include directory that comes with the source distribution of Python." +"The only further addition is that ``tp_dealloc`` needs to clear any weak " +"references (by calling :c:func:`PyObject_ClearWeakRefs`) if the field is non-" +"*NULL*::" +msgstr "" + +#: ../Doc/extending/newtypes.rst:597 +msgid "More Suggestions" msgstr "" -#: ../Doc/extending/newtypes.rst:1501 +#: ../Doc/extending/newtypes.rst:599 msgid "" "In order to learn how to implement any specific method for your new data " -"type, do the following: Download and unpack the Python source distribution. " -"Go to the :file:`Objects` directory, then search the C source files for " -"``tp_`` plus the function you want (for example, ``tp_richcompare``). You " -"will find examples of the function you want to implement." +"type, get the :term:`CPython` source code. Go to the :file:`Objects` " +"directory, then search the C source files for ``tp_`` plus the function you " +"want (for example, ``tp_richcompare``). You will find examples of the " +"function you want to implement." msgstr "" -#: ../Doc/extending/newtypes.rst:1507 +#: ../Doc/extending/newtypes.rst:605 msgid "" -"When you need to verify that an object is an instance of the type you are " -"implementing, use the :c:func:`PyObject_TypeCheck` function. A sample of its " -"use might be something like the following::" +"When you need to verify that an object is a concrete instance of the type " +"you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " +"sample of its use might be something like the following::" msgstr "" -#: ../Doc/extending/newtypes.rst:1517 -msgid "Footnotes" -msgstr "Notes" - -#: ../Doc/extending/newtypes.rst:1518 -msgid "" -"This is true when we know that the object is a basic type, like a string or " -"a float." +#: ../Doc/extending/newtypes.rst:616 +msgid "Download CPython source releases." msgstr "" -#: ../Doc/extending/newtypes.rst:1521 -msgid "" -"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " -"this example, because our type doesn't support garbage collection. Even if a " -"type supports garbage collection, there are calls that can be made to " -"\"untrack\" the object from garbage collection, however, these calls are " -"advanced and not covered here." +#: ../Doc/extending/newtypes.rst:616 +msgid "https://www.python.org/downloads/source/" msgstr "" -#: ../Doc/extending/newtypes.rst:1526 +#: ../Doc/extending/newtypes.rst:618 msgid "" -"We now know that the first and last members are strings, so perhaps we could " -"be less careful about decrementing their reference counts, however, we " -"accept instances of string subclasses. Even though deallocating normal " -"strings won't call back into our objects, we can't guarantee that " -"deallocating an instance of a string subclass won't call back into our " -"objects." +"The CPython project on GitHub, where the CPython source code is developed." msgstr "" -#: ../Doc/extending/newtypes.rst:1532 -msgid "" -"Even in the third version, we aren't guaranteed to avoid cycles. Instances " -"of string subclasses are allowed and string subclasses could allow cycles " -"even if normal strings don't." +#: ../Doc/extending/newtypes.rst:619 +msgid "https://github.com/python/cpython" msgstr "" + +#~ msgid "Footnotes" +#~ msgstr "Notes" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po new file mode 100644 index 000000000..fc307303f --- /dev/null +++ b/extending/newtypes_tutorial.po @@ -0,0 +1,861 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) 2001-2018, Python Software Foundation +# This file is distributed under the same license as the Python package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: Python 3.6\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../Doc/extending/newtypes_tutorial.rst:7 +msgid "Defining Extension Types: Tutorial" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:14 +msgid "" +"Python allows the writer of a C extension module to define new types that " +"can be manipulated from Python code, much like the built-in :class:`str` " +"and :class:`list` types. The code for all extension types follows a " +"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 "" + +#: ../Doc/extending/newtypes_tutorial.rst:24 +msgid "The Basics" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:26 +msgid "" +"The :term:`CPython` runtime sees all Python objects as variables of type :c:" +"type:`PyObject\\*`, which serves as a \"base type\" for all Python objects. " +"The :c:type:`PyObject` structure itself only contains the object's :term:" +"`reference count` and a pointer to the object's \"type object\". This is " +"where the action is; the type object determines which (C) functions get " +"called by the interpreter when, for instance, an attribute gets looked up on " +"an object, a method called, or it is multiplied by another object. These C " +"functions are called \"type methods\"." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:35 +msgid "" +"So, if you want to define a new extension type, you need to create a new " +"type object." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:38 +msgid "" +"This sort of thing can only be explained by example, so here's a minimal, " +"but complete, module that defines a new type named :class:`Custom` inside a " +"C extension module :mod:`custom`:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:43 +msgid "" +"What we're showing here is the traditional way of defining *static* " +"extension types. It should be adequate for most uses. The C API also " +"allows defining heap-allocated extension types using the :c:func:" +"`PyType_FromSpec` function, which isn't covered in this tutorial." +msgstr "" + +#: ../Doc/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 "" + +#: ../Doc/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 "" + +#: ../Doc/extending/newtypes_tutorial.rst:55 +msgid "" +"How the :class:`Custom` **type** behaves: this is the ``CustomType`` struct, " +"which defines a set of flags and function pointers that the interpreter " +"inspects when specific operations are requested." +msgstr "" + +#: ../Doc/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 "" + +#: ../Doc/extending/newtypes_tutorial.rst:61 +msgid "The first bit is::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:67 +msgid "" +"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " +"at the start of each object struct and defines a field called ``ob_base`` of " +"type :c:type:`PyObject`, containing a pointer to a type object and a " +"reference count (these can be accessed using the macros :c:macro:`Py_REFCNT` " +"and :c:macro:`Py_TYPE` respectively). The reason for the macro is to " +"abstract away the layout and to enable additional fields in debug builds." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:75 +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 "" + +#: ../Doc/extending/newtypes_tutorial.rst:78 +msgid "" +"Of course, objects generally store additional data besides the standard " +"``PyObject_HEAD`` boilerplate; for example, here is the definition for " +"standard Python floats::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:87 +msgid "The second bit is the definition of the type object. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:99 +msgid "" +"We recommend using C99-style designated initializers as above, to avoid " +"listing all the :c:type:`PyTypeObject` fields that you don't care about and " +"also to avoid caring about the fields' declaration order." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:103 +msgid "" +"The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many " +"more :ref:`fields ` than the definition above. The remaining " +"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 "" + +#: ../Doc/extending/newtypes_tutorial.rst:108 +msgid "We're going to pick it apart, one field at a time::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:112 +msgid "" +"This line is mandatory boilerplate to initialize the ``ob_base`` field " +"mentioned above. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:117 +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 "" + +#: ../Doc/extending/newtypes_tutorial.rst:127 +msgid "" +"Note that the name is a dotted name that includes both the module name and " +"the name of the type within the module. The module in this case is :mod:" +"`custom` and the type is :class:`Custom`, so we set the type name to :class:" +"`custom.Custom`. Using the real dotted import path is important to make your " +"type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:136 +msgid "" +"This is so that Python knows how much memory to allocate when creating new :" +"class:`Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is only " +"used for variable-sized objects and should otherwise be zero." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:142 +msgid "" +"If you want your type to be subclassable from Python, and your type has the " +"same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " +"problems with multiple inheritance. A Python subclass of your type will " +"have to list your type first in its :attr:`~class.__bases__`, or else it " +"will not be able to call your type's :meth:`__new__` method without getting " +"an error. You can avoid this problem by ensuring that your type has a " +"larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " +"does. Most of the time, this will be true anyway, because either your base " +"type will be :class:`object`, or else you will be adding data members to " +"your base type, and therefore increasing its size." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:152 +msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:156 +msgid "" +"All types should include this constant in their flags. It enables all of " +"the members defined until at least Python 3.3. If you need further members, " +"you will need to OR the corresponding flags." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:160 +msgid "" +"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:164 +msgid "" +"To enable object creation, we have to provide a :c:member:`~PyTypeObject." +"tp_new` handler. This is the equivalent of the Python method :meth:" +"`__new__`, but has to be specified explicitly. In this case, we can just " +"use the default implementation provided by the API function :c:func:" +"`PyType_GenericNew`. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:171 +msgid "" +"Everything else in the file should be familiar, except for some code in :c:" +"func:`PyInit_custom`::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:177 +msgid "" +"This initializes the :class:`Custom` type, filling in a number of members to " +"the appropriate default values, including :attr:`ob_type` that we initially " +"set to *NULL*. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:183 +msgid "" +"This adds the type to the module dictionary. This allows us to create :" +"class:`Custom` instances by calling the :class:`Custom` class:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:191 +msgid "" +"That's it! All that remains is to build it; put the above code in a file " +"called :file:`custom.c` and:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:200 +msgid "in a file called :file:`setup.py`; then typing" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:206 +msgid "" +"at a shell should produce a file :file:`custom.so` in a subdirectory; move " +"to that directory and fire up Python --- you should be able to ``import " +"custom`` and play around with Custom objects." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:210 +msgid "That wasn't so hard, was it?" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:212 +msgid "" +"Of course, the current Custom type is pretty uninteresting. It has no data " +"and doesn't do anything. It can't even be subclassed." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:216 +msgid "" +"While this documentation showcases the standard :mod:`distutils` module for " +"building C extensions, it is recommended in real-world use cases to use the " +"newer and better-maintained ``setuptools`` library. Documentation on how to " +"do this is out of scope for this document and can be found in the `Python " +"Packaging User's Guide `_." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:224 +msgid "Adding data and methods to the Basic example" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:226 +msgid "" +"Let's extend the basic example to add some data and methods. Let's also " +"make the type usable as a base class. We'll create a new module, :mod:" +"`custom2` that adds these capabilities:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:233 +msgid "This version of the module has a number of changes." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:235 +msgid "We've added an extra include::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:239 +msgid "" +"This include provides declarations that we use to handle attributes, as " +"described a bit later." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:242 +msgid "" +"The :class:`Custom` type now has three data attributes in its C struct, " +"*first*, *last*, and *number*. The *first* and *last* variables are Python " +"strings containing first and last names. The *number* attribute is a C " +"integer." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:246 +msgid "The object structure is updated accordingly::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:255 +msgid "" +"Because we now have data to manage, we have to be more careful about object " +"allocation and deallocation. At a minimum, we need a deallocation method::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:266 +msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:270 +msgid "" +"This method first clears the reference counts of the two Python attributes. :" +"c:func:`Py_XDECREF` correctly handles the case where its argument is *NULL* " +"(which might happen here if ``tp_new`` failed midway). It then calls the :c:" +"member:`~PyTypeObject.tp_free` member of the object's type (computed by " +"``Py_TYPE(self)``) to free the object's memory. Note that the object's type " +"might not be :class:`CustomType`, because the object may be an instance of a " +"subclass." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:279 +msgid "" +"The explicit cast to ``destructor`` above is needed because we defined " +"``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " +"``tp_dealloc`` function pointer expects to receive a ``PyObject *`` " +"argument. Otherwise, the compiler will emit a warning. This is object-" +"oriented polymorphism, in C!" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:285 +msgid "" +"We want to make sure that the first and last names are initialized to empty " +"strings, so we provide a ``tp_new`` implementation::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:309 +msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:313 +msgid "" +"The ``tp_new`` handler is responsible for creating (as opposed to " +"initializing) objects of the type. It is exposed in Python as the :meth:" +"`__new__` method. It is not required to define a ``tp_new`` member, and " +"indeed many extension types will simply reuse :c:func:`PyType_GenericNew` as " +"done in the first version of the ``Custom`` type above. In this case, we " +"use the ``tp_new`` handler to initialize the ``first`` and ``last`` " +"attributes to non-*NULL* default values." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:321 +msgid "" +"``tp_new`` is passed the type being instantiated (not necessarily " +"``CustomType``, if a subclass is instantiated) and any arguments passed when " +"the type was called, and is expected to return the instance created. " +"``tp_new`` handlers always accept positional and keyword arguments, but they " +"often ignore the arguments, leaving the argument handling to initializer (a." +"k.a. ``tp_init`` in C or ``__init__`` in Python) methods." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:329 +msgid "" +"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " +"it itself." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:332 +msgid "" +"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " +"slot to allocate memory::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:337 +msgid "" +"Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." +"tp_alloc` result against *NULL* before proceeding." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:341 +msgid "" +"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " +"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " +"class, which is :class:`object` by default. Most types use the default " +"allocation strategy." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:347 +msgid "" +"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " +"that calls a base type's :c:member:`~PyTypeObject.tp_new` or :meth:" +"`__new__`), you must *not* try to determine what method to call using method " +"resolution order at runtime. Always statically determine what type you are " +"going to call, and call its :c:member:`~PyTypeObject.tp_new` directly, or " +"via ``type->tp_base->tp_new``. If you do not do this, Python subclasses of " +"your type that also inherit from other Python-defined classes may not work " +"correctly. (Specifically, you may not be able to create instances of such " +"subclasses without getting a :exc:`TypeError`.)" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:357 +msgid "" +"We also define an initialization function which accepts arguments to provide " +"initial values for our instance::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:386 +msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:390 +msgid "" +"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as the :meth:" +"`__init__` method. It is used to initialize an object after it's created. " +"Initializers always accept positional and keyword arguments, and they should " +"return either ``0`` on success or ``-1`` on error." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:395 +msgid "" +"Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " +"called at all (for example, the :mod:`pickle` module by default doesn't " +"call :meth:`__init__` on unpickled instances). It can also be called " +"multiple times. Anyone can call the :meth:`__init__` method on our " +"objects. For this reason, we have to be extra careful when assigning the " +"new attribute values. We might be tempted, for example to assign the " +"``first`` member like this::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:409 +msgid "" +"But this would be risky. Our type doesn't restrict the type of the " +"``first`` member, so it could be any kind of object. It could have a " +"destructor that causes code to be executed that tries to access the " +"``first`` member; or that destructor could release the :term:`Global " +"interpreter Lock` and let arbitrary code run in other threads that accesses " +"and modifies our object." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:416 +msgid "" +"To be paranoid and protect ourselves against this possibility, we almost " +"always reassign members before decrementing their reference counts. When " +"don't we have to do this?" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:420 +msgid "when we absolutely know that the reference count is greater than 1;" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:422 +msgid "" +"when we know that deallocation of the object [#]_ will neither release the :" +"term:`GIL` nor cause any calls back into our type's code;" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:425 +msgid "" +"when decrementing a reference count in a :c:member:`~PyTypeObject." +"tp_dealloc` handler on a type which doesn't support cyclic garbage " +"collection [#]_." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:428 +msgid "" +"We want to expose our instance variables as attributes. There are a number " +"of ways to do that. The simplest way is to define member definitions::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:441 +msgid "" +"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:445 +msgid "" +"Each member definition has a member name, type, offset, access flags and " +"documentation string. See the :ref:`Generic-Attribute-Management` section " +"below for details." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:449 +msgid "" +"A disadvantage of this approach is that it doesn't provide a way to restrict " +"the types of objects that can be assigned to the Python attributes. We " +"expect the first and last names to be strings, but any Python objects can be " +"assigned. Further, the attributes can be deleted, setting the C pointers to " +"*NULL*. Even though we can make sure the members are initialized to non-" +"*NULL* values, the members can be set to *NULL* if the attributes are " +"deleted." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:456 +msgid "" +"We define a single method, :meth:`Custom.name()`, that outputs the objects " +"name as the concatenation of the first and last names. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:473 +msgid "" +"The method is implemented as a C function that takes a :class:`Custom` (or :" +"class:`Custom` subclass) instance as the first argument. Methods always " +"take an instance as the first argument. Methods often take positional and " +"keyword arguments as well, but in this case we don't take any and don't need " +"to accept a positional argument tuple or keyword argument dictionary. This " +"method is equivalent to the Python method:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:485 +msgid "" +"Note that we have to check for the possibility that our :attr:`first` and :" +"attr:`last` members are *NULL*. This is because they can be deleted, in " +"which case they are set to *NULL*. It would be better to prevent deletion " +"of these attributes and to restrict the attribute values to be strings. " +"We'll see how to do that in the next section." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:491 +msgid "" +"Now that we've defined the method, we need to create an array of method " +"definitions::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:501 +msgid "" +"(note that we used the :const:`METH_NOARGS` flag to indicate that the method " +"is expecting no arguments other than *self*)" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:504 +msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:508 +msgid "" +"Finally, we'll make our type usable as a base class for subclassing. We've " +"written our methods carefully so far so that they don't make any assumptions " +"about the type of the object being created or used, so all we need to do is " +"to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:515 +msgid "" +"We rename :c:func:`PyInit_custom` to :c:func:`PyInit_custom2`, update the " +"module name in the :c:type:`PyModuleDef` struct, and update the full class " +"name in the :c:type:`PyTypeObject` struct." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:519 +msgid "Finally, we update our :file:`setup.py` file to build the new module:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:532 +msgid "Providing finer control over data attributes" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:534 +msgid "" +"In this section, we'll provide finer control over how the :attr:`first` and :" +"attr:`last` attributes are set in the :class:`Custom` example. In the " +"previous version of our module, the instance variables :attr:`first` and :" +"attr:`last` could be set to non-string values or even deleted. We want to " +"make sure that these attributes always contain strings." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:543 +msgid "" +"To provide greater control, over the :attr:`first` and :attr:`last` " +"attributes, we'll use custom getter and setter functions. Here are the " +"functions for getting and setting the :attr:`first` attribute::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:574 +msgid "" +"The getter function is passed a :class:`Custom` object and a \"closure\", " +"which is a void pointer. In this case, the closure is ignored. (The " +"closure supports an advanced usage in which definition data is passed to the " +"getter and setter. This could, for example, be used to allow a single set of " +"getter and setter functions that decide the attribute to get or set based on " +"data in the closure.)" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:580 +msgid "" +"The setter function is passed the :class:`Custom` object, the new value, and " +"the closure. The new value may be *NULL*, in which case the attribute is " +"being deleted. In our setter, we raise an error if the attribute is deleted " +"or if its new value is not a string." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:585 +msgid "We create an array of :c:type:`PyGetSetDef` structures::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:595 +msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:599 +msgid "" +"The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " +"mentioned above. In this case, we aren't using a closure, so we just pass " +"*NULL*." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:602 +msgid "We also remove the member definitions for these attributes::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:610 +msgid "" +"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " +"allow strings [#]_ to be passed::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:639 +msgid "" +"With these changes, we can assure that the ``first`` and ``last`` members " +"are never *NULL* so we can remove checks for *NULL* values in almost all " +"cases. This means that most of the :c:func:`Py_XDECREF` calls can be " +"converted to :c:func:`Py_DECREF` calls. The only place we can't change " +"these calls is in the ``tp_dealloc`` implementation, where there is the " +"possibility that the initialization of these members failed in ``tp_new``." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:646 +msgid "" +"We also rename the module initialization function and module name in the " +"initialization function, as we did before, and we add an extra definition to " +"the :file:`setup.py` file." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:652 +msgid "Supporting cyclic garbage collection" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:654 +msgid "" +"Python has a :term:`cyclic garbage collector (GC) ` that " +"can identify unneeded objects even when their reference counts are not zero. " +"This can happen when objects are involved in cycles. For example, consider:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:664 +msgid "" +"In this example, we create a list that contains itself. When we delete it, " +"it still has a reference from itself. Its reference count doesn't drop to " +"zero. Fortunately, Python's cyclic garbage collector will eventually figure " +"out that the list is garbage and free it." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:669 +msgid "" +"In the second version of the :class:`Custom` example, we allowed any kind of " +"object to be stored in the :attr:`first` or :attr:`last` attributes [#]_. " +"Besides, in the second and third versions, we allowed subclassing :class:" +"`Custom`, and subclasses may add arbitrary attributes. For any of those two " +"reasons, :class:`Custom` objects can participate in cycles:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:683 +msgid "" +"To allow a :class:`Custom` instance participating in a reference cycle to be " +"properly detected and collected by the cyclic GC, our :class:`Custom` type " +"needs to fill two additional slots and to enable a flag that enables these " +"slots:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:690 +msgid "" +"First, the traversal method lets the cyclic GC know about subobjects that " +"could participate in cycles::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:710 +msgid "" +"For each subobject that can participate in cycles, we need to call the :c:" +"func:`visit` function, which is passed to the traversal method. The :c:func:" +"`visit` function takes as arguments the subobject and the extra argument " +"*arg* passed to the traversal method. It returns an integer value that must " +"be returned if it is non-zero." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:716 +msgid "" +"Python provides a :c:func:`Py_VISIT` macro that automates calling visit " +"functions. With :c:func:`Py_VISIT`, we can minimize the amount of " +"boilerplate in ``Custom_traverse``::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:729 +msgid "" +"The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " +"arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:732 +msgid "" +"Second, we need to provide a method for clearing any subobjects that can " +"participate in cycles::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:743 +msgid "" +"Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " +"safe way to clear data attributes of arbitrary types while decrementing " +"their reference counts. If you were to call :c:func:`Py_XDECREF` instead on " +"the attribute before setting it to *NULL*, there is a possibility that the " +"attribute's destructor would call back into code that reads the attribute " +"again (*especially* if there is a reference cycle)." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:751 +msgid "You could emulate :c:func:`Py_CLEAR` by writing::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:758 +msgid "" +"Nevertheless, it is much easier and less error-prone to always use :c:func:" +"`Py_CLEAR` when deleting an attribute. Don't try to micro-optimize at the " +"expense of robustness!" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:762 +msgid "" +"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " +"attributes. It means the circular GC can be triggered inside the function. " +"Since the GC assumes reference count is not zero, we need to untrack the " +"object from the GC by calling :c:func:`PyObject_GC_UnTrack` before clearing " +"members. Here is our reimplemented deallocator using :c:func:" +"`PyObject_GC_UnTrack` and ``Custom_clear``::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:777 +msgid "" +"Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:781 +msgid "" +"That's pretty much it. If we had written custom :c:member:`~PyTypeObject." +"tp_alloc` or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify " +"them for cyclic garbage collection. Most extensions will use the versions " +"automatically provided." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:787 +msgid "Subclassing other types" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:789 +msgid "" +"It is possible to create new extension types that are derived from existing " +"types. It is easiest to inherit from the built in types, since an extension " +"can easily use the :c:type:`PyTypeObject` it needs. It can be difficult to " +"share these :c:type:`PyTypeObject` structures between extension modules." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:794 +msgid "" +"In this example we will create a :class:`SubList` type that inherits from " +"the built-in :class:`list` type. The new type will be completely compatible " +"with regular lists, but will have an additional :meth:`increment` method " +"that increases an internal counter:" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:814 +msgid "" +"As you can see, the source code closely resembles the :class:`Custom` " +"examples in previous sections. We will break down the main differences " +"between them. ::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:822 +msgid "" +"The primary difference for derived type objects is that the base type's " +"object structure must be the first value. The base type will already " +"include the :c:func:`PyObject_HEAD` at the beginning of its structure." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:826 +msgid "" +"When a Python object is a :class:`SubList` instance, its ``PyObject *`` " +"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " +"*``::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:838 +msgid "" +"We see above how to call through to the :attr:`__init__` method of the base " +"type." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:841 +msgid "" +"This pattern is important when writing a type with custom :c:member:" +"`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " +"The :c:member:`~PyTypeObject.tp_new` handler should not actually create the " +"memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let " +"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:847 +msgid "" +"The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." +"tp_base` specifying the type's concrete base class. Due to cross-platform " +"compiler issues, you can't fill that field directly with a reference to :c:" +"type:`PyList_Type`; it should be done later in the module initialization " +"function::" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:870 +msgid "" +"Before calling :c:func:`PyType_Ready`, the type structure must have the :c:" +"member:`~PyTypeObject.tp_base` slot filled in. When we are deriving an " +"existing type, it is not necessary to fill out the :c:member:`~PyTypeObject." +"tp_alloc` slot with :c:func:`PyType_GenericNew` -- the allocation function " +"from the base type will be inherited." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:876 +msgid "" +"After that, calling :c:func:`PyType_Ready` and adding the type object to the " +"module is the same as with the basic :class:`Custom` examples." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:881 +msgid "Footnotes" +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:882 +msgid "" +"This is true when we know that the object is a basic type, like a string or " +"a float." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:885 +msgid "" +"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " +"this example, because our type doesn't support garbage collection." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:888 +msgid "" +"We now know that the first and last members are strings, so perhaps we could " +"be less careful about decrementing their reference counts, however, we " +"accept instances of string subclasses. Even though deallocating normal " +"strings won't call back into our objects, we can't guarantee that " +"deallocating an instance of a string subclass won't call back into our " +"objects." +msgstr "" + +#: ../Doc/extending/newtypes_tutorial.rst:894 +msgid "" +"Also, even with our attributes restricted to strings instances, the user " +"could pass arbitrary :class:`str` subclasses and therefore still create " +"reference cycles." +msgstr "" diff --git a/faq/library.po b/faq/library.po index 7a173869f..59939541e 100644 --- a/faq/library.po +++ b/faq/library.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: 2018-02-15 00:37+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -127,20 +127,20 @@ msgstr "" msgid "" "Occasionally, a user's environment is so full that the :program:`/usr/bin/" "env` program fails; or there's no env program at all. In that case, you can " -"try the following hack (due to Alex Rezinsky)::" +"try the following hack (due to Alex Rezinsky):" msgstr "" -#: ../Doc/faq/library.rst:84 +#: ../Doc/faq/library.rst:86 msgid "" "The minor disadvantage is that this defines the script's __doc__ string. " "However, you can fix that by adding ::" msgstr "" -#: ../Doc/faq/library.rst:92 +#: ../Doc/faq/library.rst:94 msgid "Is there a curses/termcap package for Python?" msgstr "" -#: ../Doc/faq/library.rst:96 +#: ../Doc/faq/library.rst:98 msgid "" "For Unix variants: The standard Python source distribution comes with a " "curses module in the :source:`Modules` subdirectory, though it's not " @@ -148,7 +148,7 @@ msgid "" "distribution -- there is no curses module for Windows.)" msgstr "" -#: ../Doc/faq/library.rst:101 +#: ../Doc/faq/library.rst:103 msgid "" "The :mod:`curses` module supports basic curses features as well as many " "additional functions from ncurses and SYSV curses such as colour, " @@ -158,58 +158,58 @@ msgid "" "category." msgstr "" -#: ../Doc/faq/library.rst:107 +#: ../Doc/faq/library.rst:109 msgid "" "For Windows: use `the consolelib module `_." msgstr "" -#: ../Doc/faq/library.rst:112 +#: ../Doc/faq/library.rst:114 msgid "Is there an equivalent to C's onexit() in Python?" msgstr "" -#: ../Doc/faq/library.rst:114 +#: ../Doc/faq/library.rst:116 msgid "" "The :mod:`atexit` module provides a register function that is similar to " "C's :c:func:`onexit`." msgstr "" -#: ../Doc/faq/library.rst:119 +#: ../Doc/faq/library.rst:121 msgid "Why don't my signal handlers work?" msgstr "" -#: ../Doc/faq/library.rst:121 +#: ../Doc/faq/library.rst:123 msgid "" "The most common problem is that the signal handler is declared with the " "wrong argument list. It is called as ::" msgstr "" -#: ../Doc/faq/library.rst:126 +#: ../Doc/faq/library.rst:128 msgid "so it should be declared with two arguments::" msgstr "" -#: ../Doc/faq/library.rst:133 +#: ../Doc/faq/library.rst:135 msgid "Common tasks" msgstr "" -#: ../Doc/faq/library.rst:136 +#: ../Doc/faq/library.rst:138 msgid "How do I test a Python program or component?" msgstr "" -#: ../Doc/faq/library.rst:138 +#: ../Doc/faq/library.rst:140 msgid "" "Python comes with two testing frameworks. The :mod:`doctest` module finds " "examples in the docstrings for a module and runs them, comparing the output " "with the expected output given in the docstring." msgstr "" -#: ../Doc/faq/library.rst:142 +#: ../Doc/faq/library.rst:144 msgid "" "The :mod:`unittest` module is a fancier testing framework modelled on Java " "and Smalltalk testing frameworks." msgstr "" -#: ../Doc/faq/library.rst:145 +#: ../Doc/faq/library.rst:147 msgid "" "To make testing easier, you should use good modular design in your program. " "Your program should have almost all functionality encapsulated in either " @@ -220,15 +220,15 @@ msgid "" "more difficult to do." msgstr "" -#: ../Doc/faq/library.rst:153 +#: ../Doc/faq/library.rst:155 msgid "The \"global main logic\" of your program may be as simple as ::" msgstr "" -#: ../Doc/faq/library.rst:158 +#: ../Doc/faq/library.rst:160 msgid "at the bottom of the main module of your program." msgstr "" -#: ../Doc/faq/library.rst:160 +#: ../Doc/faq/library.rst:162 msgid "" "Once your program is organized as a tractable collection of functions and " "class behaviours you should write test functions that exercise the " @@ -240,24 +240,24 @@ msgid "" "design flaws earlier." msgstr "" -#: ../Doc/faq/library.rst:168 +#: ../Doc/faq/library.rst:170 msgid "" "\"Support modules\" that are not intended to be the main module of a program " "may include a self-test of the module. ::" msgstr "" -#: ../Doc/faq/library.rst:174 +#: ../Doc/faq/library.rst:176 msgid "" "Even programs that interact with complex external interfaces may be tested " "when the external interfaces are unavailable by using \"fake\" interfaces " "implemented in Python." msgstr "" -#: ../Doc/faq/library.rst:180 +#: ../Doc/faq/library.rst:182 msgid "How do I create documentation from doc strings?" msgstr "" -#: ../Doc/faq/library.rst:182 +#: ../Doc/faq/library.rst:184 msgid "" "The :mod:`pydoc` module can create HTML from the doc strings in your Python " "source code. An alternative for creating API documentation purely from " @@ -265,65 +265,65 @@ msgid "" "sphinx-doc.org>`_ can also include docstring content." msgstr "" -#: ../Doc/faq/library.rst:189 +#: ../Doc/faq/library.rst:191 msgid "How do I get a single keypress at a time?" msgstr "" -#: ../Doc/faq/library.rst:191 +#: ../Doc/faq/library.rst:193 msgid "" "For Unix variants there are several solutions. It's straightforward to do " "this using curses, but curses is a fairly large module to learn." msgstr "" -#: ../Doc/faq/library.rst:235 +#: ../Doc/faq/library.rst:237 msgid "Threads" msgstr "" -#: ../Doc/faq/library.rst:238 +#: ../Doc/faq/library.rst:240 msgid "How do I program using threads?" msgstr "" -#: ../Doc/faq/library.rst:240 +#: ../Doc/faq/library.rst:242 msgid "" "Be sure to use the :mod:`threading` module and not the :mod:`_thread` " "module. The :mod:`threading` module builds convenient abstractions on top of " "the low-level primitives provided by the :mod:`_thread` module." msgstr "" -#: ../Doc/faq/library.rst:244 +#: ../Doc/faq/library.rst:246 msgid "" "Aahz has a set of slides from his threading tutorial that are helpful; see " "http://www.pythoncraft.com/OSCON2001/." msgstr "" -#: ../Doc/faq/library.rst:249 +#: ../Doc/faq/library.rst:251 msgid "None of my threads seem to run: why?" msgstr "" -#: ../Doc/faq/library.rst:251 +#: ../Doc/faq/library.rst:253 msgid "" "As soon as the main thread exits, all threads are killed. Your main thread " "is running too quickly, giving the threads no time to do any work." msgstr "" -#: ../Doc/faq/library.rst:254 +#: ../Doc/faq/library.rst:256 msgid "" "A simple fix is to add a sleep to the end of the program that's long enough " "for all the threads to finish::" msgstr "" -#: ../Doc/faq/library.rst:269 +#: ../Doc/faq/library.rst:271 msgid "" "But now (on many platforms) the threads don't run in parallel, but appear to " "run sequentially, one at a time! The reason is that the OS thread scheduler " "doesn't start a new thread until the previous thread is blocked." msgstr "" -#: ../Doc/faq/library.rst:273 +#: ../Doc/faq/library.rst:275 msgid "A simple fix is to add a tiny sleep to the start of the run function::" msgstr "" -#: ../Doc/faq/library.rst:286 +#: ../Doc/faq/library.rst:288 msgid "" "Instead of trying to guess a good delay value for :func:`time.sleep`, it's " "better to use some kind of semaphore mechanism. One idea is to use the :mod:" @@ -332,17 +332,17 @@ msgid "" "the queue as there are threads." msgstr "" -#: ../Doc/faq/library.rst:294 +#: ../Doc/faq/library.rst:296 msgid "How do I parcel out work among a bunch of worker threads?" msgstr "" -#: ../Doc/faq/library.rst:296 +#: ../Doc/faq/library.rst:298 msgid "" "The easiest way is to use the new :mod:`concurrent.futures` module, " "especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class." msgstr "" -#: ../Doc/faq/library.rst:299 +#: ../Doc/faq/library.rst:301 msgid "" "Or, if you want fine control over the dispatching algorithm, you can write " "your own logic manually. Use the :mod:`queue` module to create a queue " @@ -352,25 +352,25 @@ msgid "" "necessary to ensure that each job is handed out exactly once." msgstr "" -#: ../Doc/faq/library.rst:306 +#: ../Doc/faq/library.rst:308 msgid "Here's a trivial example::" msgstr "" -#: ../Doc/faq/library.rst:344 +#: ../Doc/faq/library.rst:346 msgid "When run, this will produce the following output:" msgstr "" -#: ../Doc/faq/library.rst:362 +#: ../Doc/faq/library.rst:364 msgid "" "Consult the module's documentation for more details; the :class:`~queue." "Queue` class provides a featureful interface." msgstr "" -#: ../Doc/faq/library.rst:367 +#: ../Doc/faq/library.rst:369 msgid "What kinds of global value mutation are thread-safe?" msgstr "" -#: ../Doc/faq/library.rst:369 +#: ../Doc/faq/library.rst:371 msgid "" "A :term:`global interpreter lock` (GIL) is used internally to ensure that " "only one thread runs in the Python VM at a time. In general, Python offers " @@ -380,7 +380,7 @@ msgid "" "instruction is therefore atomic from the point of view of a Python program." msgstr "" -#: ../Doc/faq/library.rst:376 +#: ../Doc/faq/library.rst:378 msgid "" "In theory, this means an exact accounting requires an exact understanding of " "the PVM bytecode implementation. In practice, it means that operations on " @@ -388,17 +388,17 @@ msgid "" "\"look atomic\" really are." msgstr "" -#: ../Doc/faq/library.rst:381 +#: ../Doc/faq/library.rst:383 msgid "" "For example, the following operations are all atomic (L, L1, L2 are lists, " "D, D1, D2 are dicts, x, y are objects, i, j are ints)::" msgstr "" -#: ../Doc/faq/library.rst:396 +#: ../Doc/faq/library.rst:398 msgid "These aren't::" msgstr "" -#: ../Doc/faq/library.rst:403 +#: ../Doc/faq/library.rst:405 msgid "" "Operations that replace other objects may invoke those other objects' :meth:" "`__del__` method when their reference count reaches zero, and that can " @@ -406,11 +406,11 @@ msgid "" "and lists. When in doubt, use a mutex!" msgstr "" -#: ../Doc/faq/library.rst:410 +#: ../Doc/faq/library.rst:412 msgid "Can't we get rid of the Global Interpreter Lock?" msgstr "" -#: ../Doc/faq/library.rst:414 +#: ../Doc/faq/library.rst:416 msgid "" "The :term:`global interpreter lock` (GIL) is often seen as a hindrance to " "Python's deployment on high-end multiprocessor server machines, because a " @@ -418,7 +418,7 @@ msgid "" "insistence that (almost) all Python code can only run while the GIL is held." msgstr "" -#: ../Doc/faq/library.rst:419 +#: ../Doc/faq/library.rst:421 msgid "" "Back in the days of Python 1.5, Greg Stein actually implemented a " "comprehensive patch set (the \"free threading\" patches) that removed the " @@ -430,7 +430,7 @@ msgid "" "the GIL." msgstr "" -#: ../Doc/faq/library.rst:427 +#: ../Doc/faq/library.rst:429 msgid "" "This doesn't mean that you can't make good use of Python on multi-CPU " "machines! You just have to be creative with dividing the work up between " @@ -441,7 +441,7 @@ msgid "" "dispatching of tasks." msgstr "" -#: ../Doc/faq/library.rst:435 +#: ../Doc/faq/library.rst:437 msgid "" "Judicious use of C extensions will also help; if you use a C extension to " "perform a time-consuming task, the extension can release the GIL while the " @@ -450,7 +450,7 @@ msgid "" "`hashlib` already do this." msgstr "" -#: ../Doc/faq/library.rst:441 +#: ../Doc/faq/library.rst:443 msgid "" "It has been suggested that the GIL should be a per-interpreter-state lock " "rather than truly global; interpreters then wouldn't be able to share " @@ -462,7 +462,7 @@ msgid "" "the interpreter state. And so on." msgstr "" -#: ../Doc/faq/library.rst:450 +#: ../Doc/faq/library.rst:452 msgid "" "And I doubt that it can even be done in finite time, because the same " "problem exists for 3rd party extensions. It is likely that 3rd party " @@ -470,28 +470,28 @@ msgid "" "store all their global state in the interpreter state." msgstr "" -#: ../Doc/faq/library.rst:455 +#: ../Doc/faq/library.rst:457 msgid "" "And finally, once you have multiple interpreters not sharing any state, what " "have you gained over running each interpreter in a separate process?" msgstr "" -#: ../Doc/faq/library.rst:460 +#: ../Doc/faq/library.rst:462 msgid "Input and Output" msgstr "Les entrées/sorties" -#: ../Doc/faq/library.rst:463 +#: ../Doc/faq/library.rst:465 msgid "How do I delete a file? (And other file questions...)" msgstr "" -#: ../Doc/faq/library.rst:465 +#: ../Doc/faq/library.rst:467 msgid "" "Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, " "see the :mod:`os` module. The two functions are identical; :func:`~os." "unlink` is simply the name of the Unix system call for this function." msgstr "" -#: ../Doc/faq/library.rst:469 +#: ../Doc/faq/library.rst:471 msgid "" "To remove a directory, use :func:`os.rmdir`; use :func:`os.mkdir` to create " "one. ``os.makedirs(path)`` will create any intermediate directories in " @@ -500,11 +500,11 @@ msgid "" "directory tree and its contents, use :func:`shutil.rmtree`." msgstr "" -#: ../Doc/faq/library.rst:475 +#: ../Doc/faq/library.rst:477 msgid "To rename a file, use ``os.rename(old_path, new_path)``." msgstr "" -#: ../Doc/faq/library.rst:477 +#: ../Doc/faq/library.rst:479 msgid "" "To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use " "``f.truncate(offset)``; offset defaults to the current seek position. " @@ -512,54 +512,54 @@ msgid "" "open`, where *fd* is the file descriptor (a small integer)." msgstr "" -#: ../Doc/faq/library.rst:482 +#: ../Doc/faq/library.rst:484 msgid "" "The :mod:`shutil` module also contains a number of functions to work on " "files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, and :" "func:`~shutil.rmtree`." msgstr "" -#: ../Doc/faq/library.rst:488 +#: ../Doc/faq/library.rst:490 msgid "How do I copy a file?" msgstr "" -#: ../Doc/faq/library.rst:490 +#: ../Doc/faq/library.rst:492 msgid "" "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " "that on MacOS 9 it doesn't copy the resource fork and Finder info." msgstr "" -#: ../Doc/faq/library.rst:495 +#: ../Doc/faq/library.rst:497 msgid "How do I read (or write) binary data?" msgstr "" -#: ../Doc/faq/library.rst:497 +#: ../Doc/faq/library.rst:499 msgid "" "To read or write complex binary data formats, it's best to use the :mod:" "`struct` module. It allows you to take a string containing binary data " "(usually numbers) and convert it to Python objects; and vice versa." msgstr "" -#: ../Doc/faq/library.rst:501 +#: ../Doc/faq/library.rst:503 msgid "" "For example, the following code reads two 2-byte integers and one 4-byte " "integer in big-endian format from a file::" msgstr "" -#: ../Doc/faq/library.rst:510 +#: ../Doc/faq/library.rst:512 msgid "" "The '>' in the format string forces big-endian data; the letter 'h' reads " "one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " "bytes) from the string." msgstr "" -#: ../Doc/faq/library.rst:514 +#: ../Doc/faq/library.rst:516 msgid "" "For data that is more regular (e.g. a homogeneous list of ints or floats), " "you can also use the :mod:`array` module." msgstr "" -#: ../Doc/faq/library.rst:519 +#: ../Doc/faq/library.rst:521 msgid "" "To read and write binary data, it is mandatory to open the file in binary " "mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` " @@ -567,11 +567,11 @@ msgid "" "will return :class:`str` objects rather than :class:`bytes` objects." msgstr "" -#: ../Doc/faq/library.rst:527 +#: ../Doc/faq/library.rst:529 msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?" msgstr "" -#: ../Doc/faq/library.rst:529 +#: ../Doc/faq/library.rst:531 msgid "" ":func:`os.read` is a low-level function which takes a file descriptor, a " "small integer representing the opened file. :func:`os.popen` creates a high-" @@ -580,37 +580,37 @@ msgid "" "popen`, you need to use ``p.read(n)``." msgstr "" -#: ../Doc/faq/library.rst:616 +#: ../Doc/faq/library.rst:618 msgid "How do I access the serial (RS232) port?" msgstr "" -#: ../Doc/faq/library.rst:618 +#: ../Doc/faq/library.rst:620 msgid "For Win32, POSIX (Linux, BSD, etc.), Jython:" msgstr "" -#: ../Doc/faq/library.rst:620 +#: ../Doc/faq/library.rst:622 msgid "http://pyserial.sourceforge.net" msgstr "" -#: ../Doc/faq/library.rst:622 +#: ../Doc/faq/library.rst:624 msgid "For Unix, see a Usenet post by Mitch Chapman:" msgstr "" -#: ../Doc/faq/library.rst:624 +#: ../Doc/faq/library.rst:626 msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" msgstr "" -#: ../Doc/faq/library.rst:628 +#: ../Doc/faq/library.rst:630 msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?" msgstr "" -#: ../Doc/faq/library.rst:630 +#: ../Doc/faq/library.rst:632 msgid "" "Python :term:`file objects ` are a high-level layer of " "abstraction on low-level C file descriptors." msgstr "" -#: ../Doc/faq/library.rst:633 +#: ../Doc/faq/library.rst:635 msgid "" "For most file objects you create in Python via the built-in :func:`open` " "function, ``f.close()`` marks the Python file object as being closed from " @@ -619,7 +619,7 @@ msgid "" "``f`` becomes garbage." msgstr "" -#: ../Doc/faq/library.rst:639 +#: ../Doc/faq/library.rst:641 msgid "" "But stdin, stdout and stderr are treated specially by Python, because of the " "special status also given to them by C. Running ``sys.stdout.close()`` " @@ -627,94 +627,94 @@ msgid "" "associated C file descriptor." msgstr "" -#: ../Doc/faq/library.rst:644 +#: ../Doc/faq/library.rst:646 msgid "" "To close the underlying C file descriptor for one of these three, you should " "first be sure that's what you really want to do (e.g., you may confuse " "extension modules trying to do I/O). If it is, use :func:`os.close`::" msgstr "" -#: ../Doc/faq/library.rst:652 +#: ../Doc/faq/library.rst:654 msgid "Or you can use the numeric constants 0, 1 and 2, respectively." msgstr "" -#: ../Doc/faq/library.rst:656 +#: ../Doc/faq/library.rst:658 msgid "Network/Internet Programming" msgstr "" -#: ../Doc/faq/library.rst:659 +#: ../Doc/faq/library.rst:661 msgid "What WWW tools are there for Python?" msgstr "" -#: ../Doc/faq/library.rst:661 +#: ../Doc/faq/library.rst:663 msgid "" "See the chapters titled :ref:`internet` and :ref:`netdata` in the Library " "Reference Manual. Python has many modules that will help you build server-" "side and client-side web systems." msgstr "" -#: ../Doc/faq/library.rst:667 +#: ../Doc/faq/library.rst:669 msgid "" "A summary of available frameworks is maintained by Paul Boddie at https://" "wiki.python.org/moin/WebProgramming\\ ." msgstr "" -#: ../Doc/faq/library.rst:670 +#: ../Doc/faq/library.rst:672 msgid "" "Cameron Laird maintains a useful set of pages about Python web technologies " "at http://phaseit.net/claird/comp.lang.python/web_python." msgstr "" -#: ../Doc/faq/library.rst:675 +#: ../Doc/faq/library.rst:677 msgid "How can I mimic CGI form submission (METHOD=POST)?" msgstr "" -#: ../Doc/faq/library.rst:677 +#: ../Doc/faq/library.rst:679 msgid "" "I would like to retrieve web pages that are the result of POSTing a form. Is " "there existing code that would let me do this easily?" msgstr "" -#: ../Doc/faq/library.rst:680 +#: ../Doc/faq/library.rst:682 msgid "Yes. Here's a simple example that uses urllib.request::" msgstr "" -#: ../Doc/faq/library.rst:695 +#: ../Doc/faq/library.rst:697 msgid "" "Note that in general for percent-encoded POST operations, query strings must " "be quoted using :func:`urllib.parse.urlencode`. For example, to send " "``name=Guy Steele, Jr.``::" msgstr "" -#: ../Doc/faq/library.rst:703 +#: ../Doc/faq/library.rst:705 msgid ":ref:`urllib-howto` for extensive examples." msgstr "" -#: ../Doc/faq/library.rst:707 +#: ../Doc/faq/library.rst:709 msgid "What module should I use to help with generating HTML?" msgstr "" -#: ../Doc/faq/library.rst:711 +#: ../Doc/faq/library.rst:713 msgid "" "You can find a collection of useful links on the `Web Programming wiki page " "`_." msgstr "" -#: ../Doc/faq/library.rst:716 +#: ../Doc/faq/library.rst:718 msgid "How do I send mail from a Python script?" msgstr "" -#: ../Doc/faq/library.rst:718 +#: ../Doc/faq/library.rst:720 msgid "Use the standard library module :mod:`smtplib`." msgstr "" -#: ../Doc/faq/library.rst:720 +#: ../Doc/faq/library.rst:722 msgid "" "Here's a very simple interactive mail sender that uses it. This method will " "work on any host that supports an SMTP listener. ::" msgstr "" -#: ../Doc/faq/library.rst:740 +#: ../Doc/faq/library.rst:742 msgid "" "A Unix-only alternative uses sendmail. The location of the sendmail program " "varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/" @@ -722,17 +722,17 @@ msgid "" "some sample code::" msgstr "" -#: ../Doc/faq/library.rst:760 +#: ../Doc/faq/library.rst:762 msgid "How do I avoid blocking in the connect() method of a socket?" msgstr "" -#: ../Doc/faq/library.rst:762 +#: ../Doc/faq/library.rst:764 msgid "" "The :mod:`select` module is commonly used to help with asynchronous I/O on " "sockets." msgstr "" -#: ../Doc/faq/library.rst:765 +#: ../Doc/faq/library.rst:767 msgid "" "To prevent the TCP connect from blocking, you can set the socket to non-" "blocking mode. Then when you do the ``connect()``, you will either connect " @@ -742,7 +742,7 @@ msgid "" "values, so you're going to have to check what's returned on your system." msgstr "" -#: ../Doc/faq/library.rst:772 +#: ../Doc/faq/library.rst:774 msgid "" "You can use the ``connect_ex()`` method to avoid creating an exception. It " "will just return the errno value. To poll, you can call ``connect_ex()`` " @@ -750,26 +750,26 @@ msgid "" "or you can pass this socket to select to check if it's writable." msgstr "" -#: ../Doc/faq/library.rst:778 +#: ../Doc/faq/library.rst:780 msgid "" "The :mod:`asyncore` module presents a framework-like approach to the problem " "of writing non-blocking networking code. The third-party `Twisted `_ library is a popular and feature-rich alternative." msgstr "" -#: ../Doc/faq/library.rst:785 +#: ../Doc/faq/library.rst:787 msgid "Databases" msgstr "" -#: ../Doc/faq/library.rst:788 +#: ../Doc/faq/library.rst:790 msgid "Are there any interfaces to database packages in Python?" msgstr "" -#: ../Doc/faq/library.rst:790 +#: ../Doc/faq/library.rst:792 msgid "Yes." msgstr "Oui." -#: ../Doc/faq/library.rst:792 +#: ../Doc/faq/library.rst:794 msgid "" "Interfaces to disk-based hashes such as :mod:`DBM ` and :mod:`GDBM " "` are also included with standard Python. There is also the :mod:" @@ -777,18 +777,18 @@ msgid "" "database." msgstr "" -#: ../Doc/faq/library.rst:797 +#: ../Doc/faq/library.rst:799 msgid "" "Support for most relational databases is available. See the " "`DatabaseProgramming wiki page `_ for details." msgstr "" -#: ../Doc/faq/library.rst:803 +#: ../Doc/faq/library.rst:805 msgid "How do you implement persistent objects in Python?" msgstr "" -#: ../Doc/faq/library.rst:805 +#: ../Doc/faq/library.rst:807 msgid "" "The :mod:`pickle` library module solves this in a very general way (though " "you still can't store things like open files, sockets or windows), and the :" @@ -796,55 +796,55 @@ msgid "" "mappings containing arbitrary Python objects." msgstr "" -#: ../Doc/faq/library.rst:812 +#: ../Doc/faq/library.rst:814 msgid "Mathematics and Numerics" msgstr "" -#: ../Doc/faq/library.rst:815 +#: ../Doc/faq/library.rst:817 msgid "How do I generate random numbers in Python?" msgstr "" -#: ../Doc/faq/library.rst:817 +#: ../Doc/faq/library.rst:819 msgid "" "The standard module :mod:`random` implements a random number generator. " "Usage is simple::" msgstr "" -#: ../Doc/faq/library.rst:823 +#: ../Doc/faq/library.rst:825 msgid "This returns a random floating point number in the range [0, 1)." msgstr "" -#: ../Doc/faq/library.rst:825 +#: ../Doc/faq/library.rst:827 msgid "" "There are also many other specialized generators in this module, such as:" msgstr "" -#: ../Doc/faq/library.rst:827 +#: ../Doc/faq/library.rst:829 msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." msgstr "" -#: ../Doc/faq/library.rst:828 +#: ../Doc/faq/library.rst:830 msgid "``uniform(a, b)`` chooses a floating point number in the range [a, b)." msgstr "" -#: ../Doc/faq/library.rst:829 +#: ../Doc/faq/library.rst:831 msgid "" "``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." msgstr "" -#: ../Doc/faq/library.rst:831 +#: ../Doc/faq/library.rst:833 msgid "Some higher-level functions operate on sequences directly, such as:" msgstr "" -#: ../Doc/faq/library.rst:833 +#: ../Doc/faq/library.rst:835 msgid "``choice(S)`` chooses random element from a given sequence" msgstr "" -#: ../Doc/faq/library.rst:834 +#: ../Doc/faq/library.rst:836 msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly" msgstr "" -#: ../Doc/faq/library.rst:836 +#: ../Doc/faq/library.rst:838 msgid "" "There's also a ``Random`` class you can instantiate to create independent " "multiple random number generators." diff --git a/faq/windows.po b/faq/windows.po index 3770f6a74..9f4370bf6 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: Python 3.6\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-10-13 22:28+0200\n" +"POT-Creation-Date: 2018-04-29 00:24+0200\n" "PO-Revision-Date: 2018-01-21 23:08+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,18 +17,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/faq/windows.rst:7 +#: ../Doc/faq/windows.rst:9 msgid "Python on Windows FAQ" msgstr "" "Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " "le lancement de programmes depuis la ligne de commande de Windows alors tout " "semblera évident; Sinon, vous auriez besoin d'être un peu guidé." -#: ../Doc/faq/windows.rst:18 +#: ../Doc/faq/windows.rst:20 msgid "How do I run a Python program under Windows?" msgstr "Comment exécuter un programme Python sous Windows ?" -#: ../Doc/faq/windows.rst:20 +#: ../Doc/faq/windows.rst:22 msgid "" "This is not necessarily a straightforward question. If you are already " "familiar with running programs from the Windows command line then everything " @@ -38,7 +38,7 @@ msgstr "" "le lancement de programmes depuis la ligne de commande de Windows alors tout " "semblera évident; Sinon, vous auriez besoin d'être un peu guidé." -#: ../Doc/faq/windows.rst:27 +#: ../Doc/faq/windows.rst:29 msgid "" "This series of screencasts aims to get you up and running with Python on " "Windows XP. The knowledge is distilled into 1.5 hours and will get you up " @@ -51,7 +51,8 @@ msgstr "" "votre choix, et de débugger et écrire du code solide accompagné des tests " "unitaires." -#: ../Doc/faq/windows.rst:36 +#: ../Doc/faq/windows.rst:38 +#, fuzzy msgid "" "Unless you use some sort of integrated development environment, you will end " "up *typing* Windows commands into what is variously referred to as a \"DOS " @@ -59,7 +60,7 @@ msgid "" "from your Start menu; under Windows 7 the menu selection is :menuselection:" "`Start --> Programs --> Accessories --> Command Prompt`. You should be able " "to recognize when you have started such a window because you will see a " -"Windows \"command prompt\", which usually looks like this::" +"Windows \"command prompt\", which usually looks like this:" msgstr "" "A moins que vous n'utilisiez quelque environnement de développement, vous " "devrez entrer des commandes Windows dans ce qui est diversement référé comme " @@ -69,15 +70,16 @@ msgstr "" "dans la bonne fenêtre quand vous verrez une fenêtre invite de commande qui " "ressemble normalement à ça ::" -#: ../Doc/faq/windows.rst:46 +#: ../Doc/faq/windows.rst:50 +#, fuzzy msgid "" "The letter may be different, and there might be other things after it, so " -"you might just as easily see something like::" +"you might just as easily see something like:" msgstr "" "La lettre peut être différente, et il peut y avoir d'autres choses à la " "suite, alors il se peut aussi bien que vous voyez quelque chose tel que ::" -#: ../Doc/faq/windows.rst:51 +#: ../Doc/faq/windows.rst:57 msgid "" "depending on how your computer has been set up and what else you have " "recently done with it. Once you have started such a window, you are well on " @@ -87,7 +89,7 @@ msgstr "" "fait avec. Une fois que vous avez ouvert cette fenêtre, vous êtes bien " "partis pour pouvoir lancer des programmes Python." -#: ../Doc/faq/windows.rst:55 +#: ../Doc/faq/windows.rst:61 msgid "" "You need to realize that your Python scripts have to be processed by another " "program called the Python *interpreter*. The interpreter reads your script, " @@ -100,32 +102,33 @@ msgstr "" "programme. Alors, comment faire pour donner votre code Python à " "l'interpréteur ?" -#: ../Doc/faq/windows.rst:60 +#: ../Doc/faq/windows.rst:66 +#, fuzzy msgid "" "First, you need to make sure that your command window recognises the word " "\"python\" as an instruction to start the interpreter. If you have opened a " "command window, you should try entering the command ``python`` and hitting " -"return.::" +"return:" msgstr "" "Tout d'abord, vous devez vous assurer que votre fenêtre d'invite de commande " "reconnaît le mot \"python\" comme une instruction pour démarrer " "l'interpréteur. Si vous avez ouvert une fenêtre de commande, entrez la " "commande ``python``, puis appuyez sur la touche entrée ::" -#: ../Doc/faq/windows.rst:67 -msgid "You should then see something like::" +#: ../Doc/faq/windows.rst:75 +#, fuzzy +msgid "You should then see something like:" msgstr "Vous devez vous trouver face à quelque chose comme ça ::" -#: ../Doc/faq/windows.rst:73 +#: ../Doc/faq/windows.rst:83 msgid "" "You have started the interpreter in \"interactive mode\". That means you can " "enter Python statements or expressions interactively and have them executed " "or evaluated while you wait. This is one of Python's strongest features. " -"Check it by entering a few expressions of your choice and seeing the " -"results::" +"Check it by entering a few expressions of your choice and seeing the results:" msgstr "" -#: ../Doc/faq/windows.rst:83 +#: ../Doc/faq/windows.rst:95 msgid "" "Many people use the interactive mode as a convenient yet highly programmable " "calculator. When you want to end your interactive Python session, hold the :" @@ -133,7 +136,7 @@ msgid "" "\" key to get back to your Windows command prompt." msgstr "" -#: ../Doc/faq/windows.rst:88 +#: ../Doc/faq/windows.rst:100 msgid "" "You may also find that you have a Start-menu entry such as :menuselection:" "`Start --> Programs --> Python 3.3 --> Python (command line)` that results " @@ -143,38 +146,38 @@ msgid "" "the interpreter." msgstr "" -#: ../Doc/faq/windows.rst:94 +#: ../Doc/faq/windows.rst:106 msgid "" "If the ``python`` command, instead of displaying the interpreter prompt " "``>>>``, gives you a message like::" msgstr "" -#: ../Doc/faq/windows.rst:102 +#: ../Doc/faq/windows.rst:114 msgid "" "Python is not added to the DOS path by default. This screencast will walk " "you through the steps to add the correct entry to the `System Path`, " "allowing Python to be executed from the command-line by all users." msgstr "" -#: ../Doc/faq/windows.rst:111 +#: ../Doc/faq/windows.rst:123 msgid "or::" msgstr "ou : ::" -#: ../Doc/faq/windows.rst:115 +#: ../Doc/faq/windows.rst:127 msgid "" "then you need to make sure that your computer knows where to find the Python " "interpreter. To do this you will have to modify a setting called PATH, " "which is a list of directories where Windows will look for programs." msgstr "" -#: ../Doc/faq/windows.rst:119 +#: ../Doc/faq/windows.rst:131 msgid "" "You should arrange for Python's installation directory to be added to the " "PATH of every command window as it starts. If you installed Python fairly " "recently then the command ::" msgstr "" -#: ../Doc/faq/windows.rst:125 +#: ../Doc/faq/windows.rst:137 msgid "" "will probably tell you where it is installed; the usual location is " "something like ``C:\\Python33``. Otherwise you will be reduced to a search " @@ -185,7 +188,7 @@ msgid "" "command ::" msgstr "" -#: ../Doc/faq/windows.rst:134 +#: ../Doc/faq/windows.rst:146 msgid "" "starts up the interpreter as above (and don't forget you'll need a \":kbd:" "`Ctrl-Z`\" and an \":kbd:`Enter`\" to get out of it). Once you have verified " @@ -194,17 +197,17 @@ msgid "" "in the installer as of CPython 3.3." msgstr "" -#: ../Doc/faq/windows.rst:140 +#: ../Doc/faq/windows.rst:152 msgid "" "More information about environment variables can be found on the :ref:`Using " "Python on Windows ` page." msgstr "" -#: ../Doc/faq/windows.rst:144 +#: ../Doc/faq/windows.rst:156 msgid "How do I make Python scripts executable?" msgstr "" -#: ../Doc/faq/windows.rst:146 +#: ../Doc/faq/windows.rst:158 msgid "" "On Windows, the standard Python installer already associates the .py " "extension with a file type (Python.File) and gives that file type an open " @@ -215,11 +218,11 @@ msgid "" "environment variable." msgstr "" -#: ../Doc/faq/windows.rst:154 +#: ../Doc/faq/windows.rst:166 msgid "Why does Python sometimes take so long to start?" msgstr "" -#: ../Doc/faq/windows.rst:156 +#: ../Doc/faq/windows.rst:168 msgid "" "Usually Python starts very quickly on Windows, but occasionally there are " "bug reports that Python suddenly begins to take a long time to start up. " @@ -227,7 +230,7 @@ msgid "" "Windows systems which appear to be configured identically." msgstr "" -#: ../Doc/faq/windows.rst:161 +#: ../Doc/faq/windows.rst:173 msgid "" "The problem may be caused by a misconfiguration of virus checking software " "on the problem machine. Some virus scanners have been known to introduce " @@ -238,11 +241,11 @@ msgid "" "activity, is a particular offender." msgstr "" -#: ../Doc/faq/windows.rst:171 +#: ../Doc/faq/windows.rst:183 msgid "How do I make an executable from a Python script?" msgstr "Comment construire un exécutable depuis un script Python ?" -#: ../Doc/faq/windows.rst:173 +#: ../Doc/faq/windows.rst:185 msgid "" "See http://cx-freeze.sourceforge.net/ for a distutils extension that allows " "you to create console and GUI executables from Python code. `py2exe