1
0
Fork 0

Backporting from 3.11 after upstream merge.

This commit is contained in:
Julien Palard 2023-03-22 23:00:40 +01:00
parent 422cb123ca
commit 7acacbb2a4
Signed by: mdk
GPG Key ID: 0EFC1AC1006886F8
13 changed files with 162 additions and 111 deletions

View File

@ -421,13 +421,12 @@ msgstr ""
"compiler :"
#: extending/embedding.rst:304
#, fuzzy
msgid ""
"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags "
"when linking:"
msgstr ""
"``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de "
"l'édition de lien :"
"``pythonX.Y-config --ldflags --embed`` vous donnera les drapeaux recommandés "
"lors de l'édition de lien :"
#: extending/embedding.rst:313
msgid ""

View File

@ -132,6 +132,11 @@ msgid ""
"parent's ``__annotations__``. In Python 3.10 and newer, the child class's "
"annotations will be an empty dict instead."
msgstr ""
"Dans les versions antérieures à Python 3.10, l'accès aux ``__annotations__`` "
"d'une classe qui n'a pas d'annotation mais dont un parent de cette classe en "
"a, aurait renvoyé les ``__annotations__`` de la classe parent. Dans les "
"versions 3.10 et plus récentes, le résultat d'annotations de la classe "
"enfant est un dictionnaire vide."
#: howto/annotations.rst:68
msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older"

View File

@ -526,7 +526,6 @@ msgstr ""
"Journalisation en production à l'aide d'un connecteur en écoute sur le réseau"
#: howto/logging-cookbook.rst:770
#, fuzzy
msgid ""
"To run a logging listener in production, you may need to use a process-"
"management tool such as `Supervisor <http://supervisord.org/>`_. `Here is a "
@ -534,84 +533,90 @@ msgid ""
"the above functionality using Supervisor. It consists of the following files:"
msgstr ""
"Pour de la journalisation en production *via* un connecteur réseau en "
"écoute, il est probable que vous ayez besoin d'utiliser un outil de "
"écoute, il est probable que vous ayez besoin dutiliser un outil de "
"surveillance tel que `Supervisor <http://supervisord.org/>`_. Vous trouverez "
"dans ce `Gist <https://gist.github.com/"
"vsajip/4b227eeec43817465ca835ca66f75e2b>`_ des gabarits pour assurer cette "
"fonction avec *Supervisor* : vous aurez besoin de modifier les parties ``/"
"path/to/`` du *Gist* pour refléter les chemins réels que vous utilisez."
"dans ce `Gist <socket-listener-gist_>`__ des gabarits pour assurer cette "
"fonction avec *Supervisor*. Il est composé des fichiers suivants :"
#: howto/logging-cookbook.rst:777
msgid "File"
msgstr ""
msgstr "Fichier"
#: howto/logging-cookbook.rst:777
msgid "Purpose"
msgstr ""
msgstr "Objectif"
#: howto/logging-cookbook.rst:779
msgid ":file:`prepare.sh`"
msgstr ""
msgstr ":file:`prepare.sh`"
#: howto/logging-cookbook.rst:779
msgid "A Bash script to prepare the environment for testing"
msgstr ""
msgstr "Script Bash pour préparer l'environnement de test"
#: howto/logging-cookbook.rst:782
msgid ":file:`supervisor.conf`"
msgstr ""
msgstr ":file:`supervisor.conf`"
#: howto/logging-cookbook.rst:782
msgid ""
"The Supervisor configuration file, which has entries for the listener and a "
"multi-process web application"
msgstr ""
"Fichier de configuration de *Supervisor*, avec les entrées pour le "
"connecteur en écoute et l'application web multi-processus"
#: howto/logging-cookbook.rst:786
msgid ":file:`ensure_app.sh`"
msgstr ""
msgstr ":file:`ensure_app.sh`"
#: howto/logging-cookbook.rst:786
msgid ""
"A Bash script to ensure that Supervisor is running with the above "
"configuration"
msgstr ""
"Script Bash pour s'assurer que *Supervisor* fonctionne bien avec la "
"configuration ci-dessus"
#: howto/logging-cookbook.rst:789
msgid ":file:`log_listener.py`"
msgstr ""
msgstr ":file:`log_listener.py`"
#: howto/logging-cookbook.rst:789
msgid ""
"The socket listener program which receives log events and records them to a "
"file"
msgstr ""
"Programme en écoute sur le réseau qui reçoit les événements de "
"journalisation et les enregistre dans un fichier"
#: howto/logging-cookbook.rst:792
msgid ":file:`main.py`"
msgstr ""
msgstr ":file:`main.py`"
#: howto/logging-cookbook.rst:792
msgid ""
"A simple web application which performs logging via a socket connected to "
"the listener"
msgstr ""
msgstr "Application web simple qui journalise *via* un connecteur réseau"
#: howto/logging-cookbook.rst:795
msgid ":file:`webapp.json`"
msgstr ""
msgstr ":file:`webapp.json`"
#: howto/logging-cookbook.rst:795
msgid "A JSON configuration file for the web application"
msgstr ""
msgstr "Fichier JSON de configuration de l'application web"
#: howto/logging-cookbook.rst:797
msgid ":file:`client.py`"
msgstr ""
msgstr ":file:`client.py`"
#: howto/logging-cookbook.rst:797
msgid "A Python script to exercise the web application"
msgstr ""
"Script Python qui interagit avec l'application web pour effectuer des appels "
"à la journalisation"
#: howto/logging-cookbook.rst:800
msgid ""
@ -621,20 +626,30 @@ msgid ""
"same log file without conflicting with one another --- they all go through "
"the socket listener."
msgstr ""
"L'application Web utilise `Gunicorn <https://gunicorn.org/>`_, qui est un "
"serveur d'applications Web populaire qui démarre plusieurs processus de "
"travail pour gérer les demandes. Cet exemple de configuration montre comment "
"les processus peuvent écrire dans le même fichier journal sans entrer en "
"conflit les uns avec les autres — ils passent tous par le connecteur en "
"écoute."
#: howto/logging-cookbook.rst:805
msgid "To test these files, do the following in a POSIX environment:"
msgstr ""
"Pour tester ces fichiers, suivez cette procédure dans un environnement "
"POSIX :"
#: howto/logging-cookbook.rst:807
msgid ""
"Download `the Gist <socket-listener-gist_>`__ as a ZIP archive using the :"
"guilabel:`Download ZIP` button."
msgstr ""
"Téléchargez l'archive ZIP du `Gist <socket-listener-gist_>`__ à l'aide du "
"bouton :guilabel:`Download ZIP`."
#: howto/logging-cookbook.rst:810
msgid "Unzip the above files from the archive into a scratch directory."
msgstr ""
msgstr "Décompressez les fichiers de l'archive dans un répertoire de travail."
#: howto/logging-cookbook.rst:812
msgid ""
@ -643,18 +658,27 @@ msgid ""
"files, and a :file:`venv` subdirectory to contain a virtual environment into "
"which ``bottle``, ``gunicorn`` and ``supervisor`` are installed."
msgstr ""
"Dans le répertoire de travail, exécutez le script de préparation par ``bash "
"prepare.sh``. Cela crée un sous-répertoire :file:`run` pour contenir les "
"fichiers journaux et ceux relatifs à *Supervisor*, ainsi qu'un sous-"
"répertoire :file:`venv` pour contenir un environnement virtuel dans lequel "
"``bottle``, ``gunicorn`` et ``supervisor`` sont installés."
#: howto/logging-cookbook.rst:817
msgid ""
"Run ``bash ensure_app.sh`` to ensure that Supervisor is running with the "
"above configuration."
msgstr ""
"Exécutez ``bash ensure_app.sh`` pour vous assurer que *Supervisor* s'exécute "
"avec la configuration ci-dessus."
#: howto/logging-cookbook.rst:820
msgid ""
"Run ``venv/bin/python client.py`` to exercise the web application, which "
"will lead to records being written to the log."
msgstr ""
"Exécutez ``venv/bin/python client.py`` pour tester l'application Web, ce qui "
"entraîne l'écriture d'enregistrements dans le journal."
#: howto/logging-cookbook.rst:823
msgid ""
@ -663,18 +687,28 @@ msgid ""
"won't be in any particular order, since they have been handled concurrently "
"by different worker processes in a non-deterministic way."
msgstr ""
"Inspectez les fichiers journaux dans le sous-répertoire :file:`run`. Vous "
"devriez voir les lignes de journal les plus récentes dans les fichiers de "
"type :file:`app.log*`. Ils ne seront pas dans un ordre particulier, car ils "
"ont été traités par les différents processus de travail de manière non "
"déterministe."
#: howto/logging-cookbook.rst:828
msgid ""
"You can shut down the listener and the web application by running ``venv/bin/"
"supervisorctl -c supervisor.conf shutdown``."
msgstr ""
"Vous pouvez arrêter le connecteur en écoute et l'application Web en "
"exécutant ``venv/bin/supervisorctl -c supervisor.conf shutdown``."
#: howto/logging-cookbook.rst:831
msgid ""
"You may need to tweak the configuration files in the unlikely event that the "
"configured ports clash with something else in your test environment."
msgstr ""
"Vous devrez peut-être modifier les fichiers de configuration dans le cas peu "
"probable où les ports configurés entrent en conflit avec autre chose dans "
"votre environnement de test."
#: howto/logging-cookbook.rst:837
msgid "Adding contextual information to your logging output"
@ -1596,11 +1630,15 @@ msgid ""
"An example of how you can define a namer and rotator is given in the "
"following runnable script, which shows gzip compression of the log file::"
msgstr ""
"Lextrait de code suivant fournit un exemple de la façon dont vous pouvez "
"définir un nom et un rotateur, avec la compression par *zlib* du journal ::"
#: howto/logging-cookbook.rst:2015
msgid ""
"After running this, you will see six new files, five of which are compressed:"
msgstr ""
"Après l'avoir exécuté, vous verrez six nouveaux fichiers, dont cinq sont "
"compressés :"
#: howto/logging-cookbook.rst:2028
msgid "A more elaborate multiprocessing example"

View File

@ -206,18 +206,16 @@ msgstr ""
"partir des arguments ajoutés à l'analyseur) ;"
#: library/argparse.rst:157
#, fuzzy
msgid ""
"description_ - Text to display before the argument help (by default, no text)"
msgstr ""
"description_ Texte à afficher avant l'aide des arguments (par défaut : "
"vide) ;"
"description_ Texte à afficher au dessus de l'aide pour les arguments (vide "
"par défaut) ;"
#: library/argparse.rst:160
#, fuzzy
msgid "epilog_ - Text to display after the argument help (by default, no text)"
msgstr ""
"epilog_ Texte à afficher après l'aide des arguments (par défaut : vide) ;"
"epilog_ Texte à afficher après l'aide des arguments (vide par défaut) ;"
#: library/argparse.rst:162
msgid ""
@ -828,11 +826,8 @@ msgstr ""
"converti ;"
#: library/argparse.rst:705
#, fuzzy
msgid "choices_ - A sequence of the allowable values for the argument."
msgstr ""
"choices_ Conteneur qui contient toutes les valeurs permises pour cet "
"argument ;"
msgstr "choices_ La séquence de valeurs autorisées pour cet argument ;"
#: library/argparse.rst:707
msgid ""
@ -1366,7 +1361,6 @@ msgid "choices"
msgstr "Le paramètre *choices*"
#: library/argparse.rst:1126
#, fuzzy
msgid ""
"Some command-line arguments should be selected from a restricted set of "
"values. These can be handled by passing a sequence object as the *choices* "
@ -1375,32 +1369,29 @@ msgid ""
"be displayed if the argument was not one of the acceptable values::"
msgstr ""
"Certains arguments de la ligne de commande doivent être choisis parmi un "
"ensemble fermé de valeurs. Ceux-ci peuvent être gérés en passant un "
"conteneur à l'argument nommé *choices* de la méthode :meth:`~ArgumentParser."
"add_argument`. Quand la ligne de commande est analysée, les valeurs de "
"l'argument sont comparées et un message d'erreur est affiché si l'argument "
"n'est pas parmi les valeurs acceptables ::"
"ensemble prédéfini de valeurs. Celles-ci doivent être déclarées dans la "
"séquence passée à l'argument *choices* de la méthode :meth:`~ArgumentParser."
"add_argument`. Un message d'erreur est alors affiché si l'utilisateur passe "
"un argument qui n'est pas parmi les valeurs acceptables ::"
#: library/argparse.rst:1141
#, fuzzy
msgid ""
"Note that inclusion in the *choices* sequence is checked after any type_ "
"conversions have been performed, so the type of the objects in the *choices* "
"sequence should match the type_ specified::"
msgstr ""
"Prenez note que le test d'inclusion dans le conteur *choices* est fait après "
"la conversion de type_. Le type des objets dans le conteneur *choices* "
"doivent donc correspondre au type_ spécifié ::"
"Prenez note que le test d'inclusion dans le conteneur *choices* est fait "
"après la conversion de type_. Le type des objets dans le conteneur *choices* "
"doit donc correspondre au type_ spécifié ::"
#: library/argparse.rst:1153
#, fuzzy
msgid ""
"Any sequence can be passed as the *choices* value, so :class:`list` "
"objects, :class:`tuple` objects, and custom sequences are all supported."
msgstr ""
"N'importe quel conteneur peut être fourni pour la valeur de *choices*, donc "
"les objets :class:`list`, les objets :class:`set` et les conteneurs "
"personnalisés sont tous acceptés."
"N'importe quel séquence peut être utilisée comme valeur de *choices*, dont "
"les objets de type :class:`list`, :class:`set` ou des conteneurs "
"personnalisés."
#: library/argparse.rst:1156
msgid ""
@ -2145,16 +2136,15 @@ msgstr ""
"`open` pour plus de détails) ::"
#: library/argparse.rst:1834
#, fuzzy
msgid ""
"FileType objects understand the pseudo-argument ``'-'`` and automatically "
"convert this into :data:`sys.stdin` for readable :class:`FileType` objects "
"and :data:`sys.stdout` for writable :class:`FileType` objects::"
msgstr ""
"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et en font "
"automatiquement la conversion vers ``sys.stdin`` pour les objets :class:"
"`FileType` ouverts en lecture et vers ``sys.stdout`` pour les objets :class:"
"`FileType` ouverts en écriture ::"
"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et le "
"convertissent automatiquement vers :data:`sys.stdin` pour les objets :class:"
"`FileType` ouverts en lecture, et vers :data:`sys.stdout` pour les objets :"
"class:`FileType` ouverts en écriture ::"
#: library/argparse.rst:1843
msgid "The *encodings* and *errors* keyword arguments."

View File

@ -1386,7 +1386,6 @@ msgstr ""
"Renvoie un nombre a virgule flottante depuis un nombre ou une chaîne *x*."
#: library/functions.rst:626
#, fuzzy
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 "
@ -1402,20 +1401,19 @@ msgstr ""
"d'effet sur la valeur produite. L'argument peut aussi être une chaîne "
"représentant un *NaN* (*Not-a-Number* ou *pas un nombre* en français), "
"l'infini positif, ou l'infini négatif. 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ées :"
"conformer à ``floatvalue`` tel que défini la grammaire suivante, après que "
"les espaces en début et fin de chaîne aient été retirées :"
#: library/functions.rst:644
#, fuzzy
msgid ""
"Here ``digit`` is a Unicode decimal digit (character in the Unicode general "
"category ``Nd``). Case is not significant, so, for example, \"inf\", "
"\"Inf\", \"INFINITY\", and \"iNfINity\" are all acceptable spellings for "
"positive infinity."
msgstr ""
"Ici ``floatnumber`` est un nombre a virgule flottante littéral Python, "
"décrit dans :ref:`floating`. La casse n'y est pas significative, donc, par "
"exemple, ``\"inf\"``, ``\" Inf\"``, ``\"INFINITY\"``, et ``\" iNfiNity\"`` "
"Ici ``digit`` est un chiffre décimal Unicode (caractère de la catégorie "
"générale Unicode ``Nd``). La casse n'y est pas significative, donc, par "
"exemple, ``\"inf\"``, ``\" Inf\"``, ``\"INFINITY\"`` et ``\" iNfiNity\"`` "
"sont tous des orthographes valides pour un infini positif."
#: library/functions.rst:649
@ -1777,7 +1775,6 @@ msgid ""
msgstr ""
#: library/functions.rst:876
#, fuzzy
msgid ""
"A base-n integer string contains digits, each representing a value from 0 to "
"n-1. The values 0--9 can be represented by any Unicode decimal digit. The "
@ -1790,19 +1787,18 @@ msgid ""
"prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not legal, "
"while ``int('010')`` and ``int('010', 8)`` are."
msgstr ""
"Si *x* n'est pas un nombre ou si *base* est fourni, alors *x* doit être une "
"chaîne, un :class:`bytes`, ou un :class:`bytearray` représentant un :ref:"
"`entier littéral <integers>` de base *base*. Le littéral peut être précédé "
"d'un ``+`` ou d'un ``-`` (sans être séparés par une espace), et peut être "
"entouré d'espaces. Un littéral de base *n* est composé des symboles de 0 à "
"n-1 où ``a`` jusqu'à ``z`` (ou ``A`` à ``Z``) représentent les valeurs de 10 "
"à 35. La *base* par défaut est 10. Les valeurs autorisées pour *base* sont 0 "
"et 2--36. Les littéraux en base 2, 8, et 16 peuvent être préfixés avec "
"Une chaine représentant un entier en base *n* contient des chiffres, chacun "
"représentant une valeur de 0 à n-1. Les valeurs 0 à 9 peuvent être "
"représentées par n'importe lequel des chiffres décimaux Unicode. Les valeurs "
"de 10 à 35 peuvent être représentées par ``a`` jusqu'à ``z`` (ou ``A`` à "
"``Z``). La *base* par défaut est 10. Les valeurs autorisées pour *base* sont "
"0 et 2 à 36. Les littéraux en base 2, 8, et 16 peuvent être préfixés avec "
"``0b``/``0B``, ``0o``/``0O``, ou ``0x``/``0X`` tout comme les littéraux dans "
"le code. Fournir 0 comme *base* demande d'interpréter exactement comme un "
"littéral dans Python, donc la base sera 2, 8, 10, ou 16, ainsi ``int('010', "
"0)`` n'est pas légal, alors que ``int('010')`` l'est tout comme ``int('010', "
"8)``."
"le code. Fournir 0 comme *base* demande d'interpréter exactement comme un :"
"ref:`entier littéral dans du code <integers>` Python, donc la base sera 2, "
"8, 10, ou 16 en fonction du préfixe. Indiquer 0 comme base interdit les "
"zéros en tête, ainsi ``int('010', 0)`` n'est pas légal, alors que "
"``int('010')`` l'est tout comme ``int('010', 8)``."
#: library/functions.rst:887
msgid "The integer type is described in :ref:`typesnumeric`."

View File

@ -158,19 +158,20 @@ msgid "When *pathsegments* is empty, the current directory is assumed::"
msgstr "Quand *pathsegments* est vide, le dossier courant est utilisé ::"
#: library/pathlib.rst:121
#, fuzzy
msgid ""
"If a segment is an absolute path, all previous segments are ignored (like :"
"func:`os.path.join`)::"
msgstr ""
"Quand plusieurs chemins absolus sont fournis, le dernier est pris comme "
"ancre (recopiant le comportement de :func:`os.path.join`) ::"
"Si un segment est un chemin absolu, tous les segments précédents sont "
"ignorés (comme :func:`os.path.join`) ::"
#: library/pathlib.rst:129
msgid ""
"On Windows, the drive is not reset when a rooted relative path segment (e."
"g., ``r'\\foo'``) is encountered::"
msgstr ""
"Sous Windows, le nom de lecteur est conservé quand un chemin relatif à la "
"racine (par exemple ``r'\\foo'``) est rencontré ::"
#: library/pathlib.rst:135
msgid ""
@ -267,6 +268,10 @@ msgid ""
"the drive is not reset when the argument is a rooted relative path (e.g., "
"``r'\\foo'``)::"
msgstr ""
"L'opérateur slash aide à créer les chemins enfants, de manière similaire à :"
"func:`os.path.join`. Si l'argument est un chemin absolu, le chemin précédent "
"est ignoré. Sous Windows, le lecteur n'est pas effacé quand l'argument est "
"un chemin relatif enraciné (par exemple ``r'\\foo'``)::"
#: library/pathlib.rst:233
msgid ""
@ -1033,6 +1038,8 @@ msgid ""
"It is implemented in terms of :func:`os.rename` and gives the same "
"guarantees."
msgstr ""
"Cette méthode est implémentée d'après :func:`os.rename` et fournit les mêmes "
"garanties."
# « nouveau dans la version … »
#: library/pathlib.rst:1087
@ -1462,18 +1469,16 @@ msgid ":func:`os.path.basename`"
msgstr ":func:`os.path.basename`"
#: library/pathlib.rst:1309
#, fuzzy
msgid ":attr:`PurePath.name`"
msgstr ":data:`PurePath.name`"
msgstr ":attr:`PurePath.name`"
#: library/pathlib.rst:1310
msgid ":func:`os.path.dirname`"
msgstr ":func:`os.path.dirname`"
#: library/pathlib.rst:1310
#, fuzzy
msgid ":attr:`PurePath.parent`"
msgstr ":data:`PurePath.parent`"
msgstr ":attr:`PurePath.parent`"
#: library/pathlib.rst:1311
msgid ":func:`os.path.samefile`"
@ -1488,9 +1493,8 @@ msgid ":func:`os.path.splitext`"
msgstr ":func:`os.path.splitext`"
#: library/pathlib.rst:1312
#, fuzzy
msgid ":attr:`PurePath.stem` and :attr:`PurePath.suffix`"
msgstr ":data:`PurePath.suffix`"
msgstr ":attr:`PurePath.stem` et :attr:`PurePath.suffix`"
#: library/pathlib.rst:1317
msgid "Footnotes"

View File

@ -1087,16 +1087,15 @@ msgid "``\\w``"
msgstr "``\\w``"
#: library/re.rst:530
#, fuzzy
msgid ""
"Matches Unicode word characters; this includes alphanumeric characters (as "
"defined by :meth:`str.isalnum`) as well as the underscore (``_``). If the :"
"const:`ASCII` flag is used, only ``[a-zA-Z0-9_]`` is matched."
msgstr ""
"Valide les caractères Unicode de mot ; cela inclut la plupart des caractères "
"qui peuvent être compris dans un mot d'une quelconque langue, aussi bien que "
"les nombres et les tirets bas. Si l'option :const:`ASCII` est utilisée, "
"seuls les caractères de la classe ``[a-zA-Z0-9_]`` sont validés."
"Valide les caractères Unicode de mot ; cela inclut les caractères "
"alphanumériques (tels que définis par :meth:`str.isalnum`), ainsi que les "
"tirets bas(``_``). Si l'option :const:`ASCII` est utilisée, seuls les "
"caractères de la classe ``[a-zA-Z0-9_]`` sont validés."
#: library/re.rst:535
msgid ""
@ -2373,21 +2372,28 @@ msgstr "search() vs. match()"
msgid ""
"Python offers different primitive operations based on regular expressions:"
msgstr ""
"Python offre différentes opérations primitives basées sur des expressions "
"régulières."
#: library/re.rst:1476
#, fuzzy
msgid ":func:`re.match` checks for a match only at the beginning of the string"
msgstr "Correspond uniquement à la fin d'une chaîne de caractères."
msgstr ""
":func:`re.match` cherche une correspondance uniquement au début de la chaîne "
"de caractères"
#: library/re.rst:1477
msgid ""
":func:`re.search` checks for a match anywhere in the string (this is what "
"Perl does by default)"
msgstr ""
":func:`re.search` cherche une correspondance n'importe où dans la chaîne de "
"caractères (ce que fait Perl par défaut)"
#: library/re.rst:1479
msgid ":func:`re.fullmatch` checks for entire string to be a match"
msgstr ""
":func:`re.fullmatch` cherche une correspondance avec l'intégralité de la "
"chaîne de caractères."
#: library/re.rst:1491
msgid ""

View File

@ -327,9 +327,8 @@ msgstr ""
"context-manager>`"
#: library/sqlite3.rst:242
#, fuzzy
msgid ":ref:`sqlite3-howto-row-factory`"
msgstr ":ref:`convertisseurs sqlite3 <sqlite3-converters>`"
msgstr ":ref:`guide de fabrique de ligne sqlite3 <sqlite3-howto-row-factory>`"
#: library/sqlite3.rst:244
msgid ""
@ -424,6 +423,12 @@ msgid ""
"operations may need to be serialized by the user to avoid data corruption. "
"See :attr:`threadsafety` for more information."
msgstr ""
"Si ``True`` (par défaut), :exc:`ProgrammingError` sera levée si la connexion "
"à la base de données est utilisée par un thread autre que celui qui la "
"créée. Si ``False``, la connexion peut être utilisée par plusieurs threads ; "
"les opérations décriture devront peut-être être sérialisées par "
"lutilisateur pour éviter la corruption des données. Voir :attr:`sécurité "
"des threads <threadsafety>` pour plus dinformations."
#: library/sqlite3.rst:310
msgid ""

View File

@ -416,7 +416,7 @@ msgstr "pas de valeur"
#: library/struct.rst:207
msgid "\\(7)"
msgstr ""
msgstr "\\(7)"
#: library/struct.rst:209
msgid "``c``"
@ -640,7 +640,7 @@ msgstr "*bytes* (séquence d'octets)"
#: library/struct.rst:244
msgid "\\(9)"
msgstr ""
msgstr "\\(9)"
#: library/struct.rst:246
msgid "``p``"
@ -648,7 +648,7 @@ msgstr "``p``"
#: library/struct.rst:246
msgid "\\(8)"
msgstr ""
msgstr "\\(8)"
#: library/struct.rst:248
msgid "``P``"
@ -932,18 +932,16 @@ msgid "Packed binary storage of homogeneous data."
msgstr "Stockage agrégé binaire de données homogènes."
#: library/struct.rst:435
#, fuzzy
msgid "Module :mod:`json`"
msgstr "Module :mod:`array`"
msgstr "Module :mod:`json`"
#: library/struct.rst:435
msgid "JSON encoder and decoder."
msgstr ""
#: library/struct.rst:437
#, fuzzy
msgid "Module :mod:`pickle`"
msgstr "Module :mod:`xdrlib`"
msgstr "Module :mod:`pickle`"
#: library/struct.rst:438
msgid "Python object serialization."

View File

@ -2,14 +2,17 @@
given branch.
"""
import argparse
import re
import shutil
from pathlib import Path
import argparse
import subprocess
from pathlib import Path
from subprocess import PIPE
from tqdm import tqdm
NOT_TO_TRANSLATE = {Path("whatsnew/changelog.po")}
def run(*args: str | Path, **kwargs) -> subprocess.CompletedProcess:
"""Run a shell command with subprocess.run() with check=True and
@ -26,14 +29,20 @@ def parse_args():
type=Path,
help="Use this given cpython clone.",
)
parser.add_argument("branch", help="Merge from this branch")
parser.add_argument(
"branch",
help="Merge from this branch or from this commit",
)
return parser.parse_args()
def setup_repo(repo_path: Path, branch: str):
"""Ensure we're up-to-date."""
run("git", "-C", repo_path, "checkout", branch)
run("git", "-C", repo_path, "pull", "--ff-only")
if branch.find('.') == 1:
run("git", "-C", repo_path, "checkout", branch)
run("git", "-C", repo_path, "pull", "--ff-only")
else: # it's a commit
run("git", "-C", repo_path, "checkout", branch)
def copy_new_files(new_files: set[Path], pot_path: Path) -> None:
@ -43,6 +52,7 @@ def copy_new_files(new_files: set[Path], pot_path: Path) -> None:
file.parent.mkdir(parents=True, exist_ok=True)
src = (pot_path / file).with_suffix(".pot")
run("msgcat", "-o", file, src)
run("git", "add", file)
def update_known_files(known_files: set[Path], pot_path: Path) -> None:
@ -107,7 +117,6 @@ def git_add_relevant_files():
run("git", "add", file)
else:
run("git", "checkout", "--", file)
run("rm", "-f", "whatsnew/changelog.po") # We don't translate this file.
def main():
@ -121,7 +130,7 @@ def main():
upstream = {
file.relative_to(pot_path).with_suffix(".po")
for file in pot_path.glob("**/*.pot")
}
} - NOT_TO_TRANSLATE
downstream = {
Path(po)
for po in run("git", "ls-files", "*.po", stdout=PIPE).stdout.splitlines()
@ -129,7 +138,7 @@ def main():
copy_new_files(upstream - downstream, pot_path=pot_path)
update_known_files(upstream & downstream, pot_path=pot_path)
remove_old_files(downstream - upstream)
clean_paths((upstream - downstream) | (upstream & downstream))
clean_paths(upstream)
shutil.rmtree(pot_path)
run("powrap", "-m")
update_makefile(args.cpython_repo)

View File

@ -306,7 +306,6 @@ msgstr ""
"contenant les primitives."
#: tutorial/classes.rst:126
#, fuzzy
msgid ""
"If a name is declared global, then all references and assignments go "
"directly to the next-to-last scope containing the module's global names. To "
@ -317,7 +316,7 @@ msgid ""
"outer variable unchanged)."
msgstr ""
"Si un nom est déclaré comme global, alors toutes les références et "
"affectations vont directement dans la portée intermédiaire contenant les "
"affectations vont directement dans l'avant-dernière portée contenant les "
"noms globaux du module. Pour pointer une variable qui se trouve en dehors de "
"la portée la plus locale, vous pouvez utiliser l'instruction :keyword:"
"`nonlocal`. Si une telle variable n'est pas déclarée *nonlocal*, elle est en "
@ -1217,16 +1216,15 @@ msgid "Odds and Ends"
msgstr "Trucs et astuces"
#: tutorial/classes.rst:739
#, fuzzy
msgid ""
"Sometimes it is useful to have a data type similar to the Pascal \"record\" "
"or C \"struct\", bundling together a few named data items. The idiomatic "
"approach is to use :mod:`dataclasses` for this purpose::"
msgstr ""
"Il est parfois utile d'avoir un type de donnée similaire au \"record\" du "
"Il est parfois utile d'avoir un type de donnée similaire au *record* du "
"Pascal ou au *struct* du C, qui regroupent ensemble quelques attributs "
"'données' nommés. La définition d'une classe vide remplit parfaitement ce "
"besoin ::"
"« données » nommés. L'approche idiomatique correspondante en Python est "
"d'utiliser des :mod:`dataclasses` ::"
#: tutorial/classes.rst:759
msgid ""

View File

@ -139,7 +139,6 @@ msgid "An example that uses most of the list methods::"
msgstr "L'exemple suivant utilise la plupart des méthodes des listes ::"
#: tutorial/datastructures.rst:123
#, fuzzy
msgid ""
"You might have noticed that methods like ``insert``, ``remove`` or ``sort`` "
"that only modify the list have no return value printed -- they return the "
@ -148,7 +147,7 @@ msgid ""
msgstr ""
"Vous avez probablement remarqué que les méthodes qui ne font que modifier la "
"liste, comme ``insert``, ``remove`` ou ``sort``, n'affichent pas de valeur "
"de retour (elles renvoient ``None``) [1]_. C'est un principe respecté par "
"de retour (elles renvoient ``None``) [#]_. C'est un principe respecté par "
"toutes les structures de données muables en Python."
#: tutorial/datastructures.rst:128

View File

@ -248,6 +248,10 @@ msgid ""
"odd number of ``\\`` characters; see :ref:`the FAQ entry <faq-programming-"
"raw-string-backslash>` for more information and workarounds."
msgstr ""
"Il existe une petite subtilité concernant les chaînes brutes : une chaîne "
"brute ne peut pas se terminer par un nombre impair de caractères ``\\`` ; "
"voir :ref:`l'entrée FAQ <faq-programming-raw-string-backslash>` pour plus "
"d'informations et des solutions de contournement."
#: tutorial/introduction.rst:197
msgid ""