diff --git a/.github/ISSUE_TEMPLATE/r-servation.md b/.github/ISSUE_TEMPLATE/r-servation.md new file mode 100644 index 0000000000..6a3f74edb8 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/r-servation.md @@ -0,0 +1,12 @@ +--- +name: Réservation +about: Juste réserver un fichier po (je veux être le seul à travailler dessus). +title: Je travaille sur DOSSIER/FICHIER.po +labels: reservation +assignees: '' + +--- + + diff --git a/.gitignore b/.gitignore index 288948351e..483f8d8a62 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ venv/ .idea/ .DS_Store +.pospell/ diff --git a/.travis.yml b/.travis.yml index 7389c645d7..9a1b1cae86 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,10 +5,16 @@ before_install: - sudo apt-get update - sudo apt-get install -y hunspell hunspell-fr-comprehensive install: - - pip install pospell "powrap>=0.3.0" + - pip install poutils - pospell --version - powrap --version + - padpo --version script: - - powrap --check --quiet **/*.po - - pospell -p dict -l fr_FR **/*.po - - make CPYTHON_CLONE=/tmp/cpython/ COMMIT=4d1abedce9422473af2ac78047e55cde73208208 + - 'printf "%s\n" "$TRAVIS_COMMIT_RANGE"' + - 'CHANGED_FILES="$(git diff --name-only $TRAVIS_COMMIT_RANGE | grep "\.po$")" ;:' + - 'printf "%s files changed.\n" "$(printf "%s" "$CHANGED_FILES" | grep -c "po$")" ;:' + - 'if [ -n "$CHANGED_FILES" ]; then printf -- "- %s\n" $CHANGED_FILES; fi' + - 'if [ -n "$CHANGED_FILES" ]; then powrap --check --quiet $CHANGED_FILES; fi' + - 'if [ -n "$CHANGED_FILES" ]; then pospell -p dict -l fr_FR $CHANGED_FILES; fi' + - 'if [ -n "$CHANGED_FILES" ]; then make CPYTHON_PATH=/tmp/cpython/; fi' + - 'if [ -n "$CHANGED_FILES" ]; then padpo -i $CHANGED_FILES 2>&1 | grep -v -Ff padpo.ignore || true; fi' diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst new file mode 100644 index 0000000000..fa8fc16a5a --- /dev/null +++ b/CONTRIBUTING.rst @@ -0,0 +1,750 @@ +Guide de contribution à la documention via GitHub +================================================= + +Instructions +------------ + +Prérequis +~~~~~~~~~ + +- un compte `Github `_ ; +- un client ``git`` `Linux `_ ou `Windows `_ ; +- un éditeur de fichier ``.po`` (comme `Poedit `_). + +Équipez-vous aussi de quelques outils pour vous aider dans +votre traduction (voir `Outils utiles pour la traduction`_). + + +*fork* personnel +~~~~~~~~~~~~~~~~ + +Pour commencer vous aurez besoin de *forker* le dépôt des sources `python-docs-fr +`_ en cliquant sur son bouton +``Fork``. Ceci crée une copie du projet sur votre compte Github, c'est un endroit +où vous avez le droit de faire des modifications. + +Étape par étape : + +.. code-block:: bash + + # Clonez votre fork Github avec `git` en utilisant ssh + git clone git@github.com:VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git + + # ou bien via HTTPS + git clone https://github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git + + # Allez dans le répertoire cloné + cd python-docs-fr/ + + # Ajoutez le dépôt officiel (nommé upstream), + # ceci permet à *git* de savoir quoi et où est *upstream* + git remote add upstream https://github.com/python/python-docs-fr.git + + +Réservation d'un fichier +~~~~~~~~~~~~~~~~~~~~~~~~ + +Ensuite, vous devez trouver un fichier sur lequel travailler +(pour vous aiguiller, lisez la section `Que traduire ?`_). Nous vous conseillons +de choisir, si possible, un fichier traitant d'un sujet que vous maitrisez, cela +vous aidera grandement à produire une traduction de bonne qualité. + +Une fois que vous avez choisi un fichier sur lequel travailler, veuillez +ouvrir un `ticket sur Github `_ +en indiquant dans le titre ``Je travaille sur DOSSIER/FICHIER.po`` +(par exemple « Je travaille sur library/sys.po »). +Ceci permet à `potodo`_ de détecter via l'API Github les fichiers ``.po`` réservés +dans les tickets et les *pull requests*. + +Vous êtes maintenant prêt. Chaque fois que vous commencerez un nouveau fichier, +suivez cette procédure : + +Pour travailler, nous aurons besoin d'une branche, basée sur une version à jour +(fraîchement récupérée) de la branche upstream/3.8. On met donc à jour notre +version locale. + +.. code-block:: bash + + git fetch upstream + + +On crée ensuite une branche. Il est pratique de nommer la branche en fonction du +fichier sur lequel on travaille. Par exemple, si vous travaillez sur +« library/sys.po », vous pouvez nommer votre branche « library-sys ». +Cette nouvelle branche nommée « library-sys » est basée sur « upstream/3.8 ». + +.. code-block:: bash + + git checkout -b library-sys upstream/3.8 + + +Vous pouvez maintenant travailler sur le fichier. +Si vous utilisez Poedit, n'oubliez pas de configurer votre nom et votre adresse de courriel +(Édition → Préférences → Général). +Vérifiez aussi qu'il est configuré pour passer à la ligne à 79 caractères +(Édition → Préférences → Avancé → Passer à la ligne à 79). + +Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment. + +.. code-block:: bash + + poedit library/sys.po + + +Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ». + + +Traduction +~~~~~~~~~~ + +Vous pouvez dès à présent commencer à traduire le fichier en respectant les `conventions`_ du projet. +Pour vous aider à ne pas faire de fautes d'orthographe, vous pouvez vérifier que tous les mots utilisés sont +bien dans le dictionnaire (ça ne vérifie pas la grammaire, pour cela utilisez `padpo (beta)`_). En cas +de doute, un `glossaire`_ répertorie déjà les traductions retenues pour certains termes techniques ou faux amis +en anglais. + +.. code-block:: bash + + make spell + +Vous pouvez aussi réindenter les fichiers avec : + +.. code-block:: bash + + make wrap + +Et pour faire les deux à la fois, lancez : + +.. code-block:: bash + + make verifs + +Une fois la traduction finie, il faut compiler la documentation, c'est-à-dire générer les fichiers HTML +affichés par le site, pour les relire. Si la commande précédente s'est exécutée sans erreur, la +compilation ne devrait pas échouer. + +.. code-block:: bash + + make + +Vérifiez alors le rendu de la traduction « en vrai ». Lancez un serveur de +documentation local : + +.. code-block:: bash + + make serve + +La documentation est publiée l'adresse ``_ +(ou tout autre port indiqué par la sortie de la commande précédente). Vous pouvez +recommencer les étapes de cette section autant de fois que nécessaire. + +Poedit donne beaucoup d'avertissements, par exemple pour vous informer que +« la traduction devrait commencer par une majuscule » car c'est le cas pour +la source. Ces avertissements ne sont pas tous fondés. En cas de doute, +*affichez et relisez la page HTML produite* avec ``make serve``. + +*pull request* +~~~~~~~~~~~~~~ + +Une fois que le *make verifs* ne lève pas d'erreur et que vous êtes certains de bien respecter les +`Conventions`_ de traduction, vient le moment d'envoyer votre travail sur le dépôt local. + +``git add`` place nos modifications dans l'index de Git en +attendant d'être propagées dans le dépôt local. + +.. code-block:: bash + + git add library/sys.po + + +``git commit`` permet de les propager : + +.. code-block:: bash + + git commit -m "Traduction de library/sys.po" # Ou un autre message plus inspiré :) + +Poussez ensuite vos modifications sur votre *fork* Github avec ``git push``. +Le ``-u`` n'est utile qu'une fois pour que votre client git se souvienne que cette +branche est liée à votre *fork* Github (et donc que vos futurs ``git pull`` et +``git push`` sachent quoi tirer). + +.. code-block:: bash + + git push -u origin + +La commande précédente vous affiche un lien pour ouvrir une pull request sur +Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/pulls +et un joli bouton « Compare & pull request » devrait apparaître au bout de +quelques secondes vous indiquant que vous pouvez demander une pull request. + +Mettez dans le commentaire de la *pull request* le texte suivant : +« Closes #XXXX » où XXXX est le numéro du ticket GitHub créé pour réserver le fichier traduit. +Cela permet à Github de lier la *pull request* au ticket de réservation. + +À partir de là, quelqu'un passera en revue vos modifications, et vous fera des +suggestions et corrections. Pour les prendre en compte, retournez sur votre branche +contenant le fichier concerné (au cas où vous auriez commencé quelque chose d'autre +sur une autre branche) : + +.. code-block:: bash + + git checkout library-sys + git pull # pour rapatrier les modifications que vous auriez acceptées + # sur l'interface web. + + # Réglez les problèmes, puis commitez à nouveau : + git commit -a -m "prise en compte des remarques" + git push + + +Vous avez peut-être remarqué que cela ressemble à un triangle, avec un +segment manquant : + +- vous récupérez depuis *upstream* (le dépôt commun public sur Github) ; +- vous poussez sur *origin* (votre clone sur Github). + +C'est le travail de quelqu'un d'autre d'ajouter le dernier segment, +de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le +rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues. + +Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une +branche de version (3.7, 3.8, etc.), seulement récupéré les +modifications à partir d'elles. + +Toutes les traductions sont faites sur la dernière version. +Nous ne traduisons jamais sur une version plus ancienne. Par exemple, +si la dernière version de python est Python 3.8, nous ne voulons pas +traduire directement sur la version python 3.5. +Si nécessaire, les traductions seraient rétroportées sur les versions +les plus anciennes par l'`équipe de documentation +`_. + +Que traduire ? +-------------- + +Vous pouvez utiliser `potodo`_, un outil fait pour trouver des fichiers *po* +à traduire. Une fois installé, utilisez la commande ``make todo`` dans votre clone +local. + +Vous pouvez choisir n'importe quel fichier non réservé dans la liste +renvoyée par la commande **à l'exception** des fichiers de : + +- *c-api/* car c'est une partie très technique ; +- *whatsnew/* car les anciennes versions de Python sont pour la plupart obsolètes et leurs journaux de modifications ne sont pas les pages les plus consultées ; +- *distutils/* et *install/* car ces pages seront bientôt obsolètes. + +Vous pouvez commencer par des tâches faciles comme réviser les entrées +*fuzzy* pour aider à garder la documentation à jour (trouvez-les à l'aide +de ``make fuzzy``). Une entrée *fuzzy* correspond à une entrée déjà traduite +mais dont la source en anglais a été remodifiée depuis (correction orthographique, +changement d'un terme, ajout ou suppression d'une phrase…). Elles sont +généralement plus « faciles » à traduire. + +Vous pouvez également relire des entrées déjà traduites pour vous faire une +idée, et passer ensuite à la traduction de celles qui ne le sont pas encore. + + +Conventions +----------- + +Certaines conventions ont été édictées pour homogénéiser la traduction. +Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et +les traductions déjà définies dans le `glossaire`_. + + +Style +~~~~~ + +Une bonne traduction est une traduction qui transcrit fidèlement l'idée originelle +en français, sans rien ajouter ni enlever au fond, tout en restant claire, concise et +agréable à lire. Les traductions mot-à-mot sont à proscrire et il est permis — même +conseillé — d'intervertir des propositions ou de réarranger des phrases de la +documentation anglaise, si le rythme l'exige. Il faut aussi chercher des +équivalents français aux termes techniques et aux idiotismes rencontrés, et prendre +garde aux anglicismes. + +Utilisation du futur +++++++++++++++++++++ + +Dans la description du comportement de Python (au sens large, c'est-à-dire +l'interpréteur lui-même mais aussi toutes les bibliothèques), la version +originale utilise souvent le futur : « if you do this, it will produce +that… ». En français, l'utilisation du présent convient tout à fait et le +présent est souvent plus facile à lire : « si vous faites ceci, il se +produit cela… ». On ne conserve le futur que si la seconde proposition +se situe réellement dans le futur (par exemple, on peut penser qu'un +processus de compilation n'est pas immédiat) ou pour des raisons de +concordance des temps. + +Utilisation du conditionnel ++++++++++++++++++++++++++++ + +La version originale est très polie envers le lecteur ; elle lui intime +rarement des obligations, préférant employer « you should ». Cependant, en +français, il est d'usage d'être plus direct pour être correctement compris : +« vous devez ». *Vous devriez* est en effet généralement compris comme quelque +chose dont l'on peut de temps en temps se passer, alors que c'est très +rarement le cas pour les « you should » de cette documentation. +De la même manière, « can » est souvent mieux traduit sans introduire de notion +de possibilité, en particulier quand la phrase est à la voix passive ; la +phrase « these objects can be accessed by… » se traduit mieux par « on accède à +ces objets en… ». + +Utilisation du masculin ++++++++++++++++++++++++ + +Dans un souci de lisibilité et en accord avec la préconisation de +l'Académie française, nous utilisons le masculin pour indiquer un +genre neutre. Par exemple : l'utilisateur ou le lecteur. + +Règles rst +~~~~~~~~~~ + +Prototypes et exemples +++++++++++++++++++++++ + +Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms +de fonctions, paramètres de ces fonctions, constantes etc.) mais les laisser +tels quel, entourés d'astérisques dans les blocs de texte. +Si la documentation contient des exemples, vous *pouvez* traduire les noms +utilisés, en prenant garde d'être cohérent. Vous pouvez ainsi traduire : + +.. code-block:: python + + def sample_function(): + result = thread.join(timeout=...) + ... + +en + +.. code-block:: python + + def fonction_exemple(): + resultat = thread.join(timeout=...) + ... + +mais pas en + +.. code-block:: python + + def fonction_exemple(): + resultat = fildexécution.attendre(délai=...) + ... + +Liens hypertextes ++++++++++++++++++ + +Il faut transformer les liens hypertextes qui redirigent vers une page dont il +existe une version française (c'est notamment très souvent le cas pour les +articles de Wikipédia). Modifiez le lien *et* sa description dans ce cas. +Si aucune traduction de la cible n'existe, ne traduisez pas la description. +Par exemple, ```Conway's Game of Life `_`` +doit devenir ```Jeu de la vie `_``. + + +Balises ++++++++ + +Ne traduisez pas le contenu des balises comme ``:ref:...`` ou ``:class:...``. +Vous devez cependant traduire les balises ``:term:...``, qui font référence à +un concept ou une primitive défini dans le `glossaire Python `_. +La syntaxe est ``:term:nom_français``. Par exemple, traduisez +``:term:`dictionary``` en ``:term:`dictionaire ```. + +Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque +terme que vous pouvez rencontrer. + + +Glossaire +~~~~~~~~~ + +Afin d'assurer la cohérence de la traduction, voici quelques +termes fréquents déjà traduits. Une liste blanche de noms propres, comme « Guido », +« C99 » ou de certains anglicismes comme « sérialisable » ou « implémentation», +est stockée dans le fichier « dict » à la racine du projet. Vous pouvez +y ajouter une entrée si cela est nécessaire. +Si vous devez *absolument* utiliser un mot anglais, mettez-le en italique +(entouré par des astérisques). + +Pour trouver facilement comment un terme est déjà traduit dans la +documentation, vous pouvez utiliser `pogrep`_. + +========================== =============================================== +Terme Traduction +========================== =============================================== +-like -compatible +abstract data type type abstrait +argument argument (à ne pas confondre avec *paramètre*) +backslash antislash, *backslash* +backtrace trace d'appels, trace de pile +backport rétroporter +bound lier +bug bogue +built-in natif +bytecode code intermédiaire +callback fonction de rappel +call stack pile d'appels +caught (exception) interceptée +debugging débogage +deep copy copie récursive (préféré), ou copie profonde +double quote guillemet +deprecated obsolète +e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », + lui-même issu du latin *exempli gratia*). + On sépare les deux mots par une espace + insécable pour éviter les retours à la ligne + malheureux. +et al. et autres, `à accorder + `_ + suivant le contexte +export exportation +expression expression +framework cadriciel +garbage collector ramasse-miettes +getter accesseur +i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e. », + lui-même issu du latin *id est*) +identifier identifiant +immutable immuable +import importation +index indice (en particulier quand on parle de chaînes + de caractères) +installer installateur +interpreter interpréteur +library bibliothèque +list comprehension liste en compréhension (liste en intension est + valide, mais nous ne l'utilisons pas) +little-endian, big-endian `petit-boutiste, gros-boutiste + `_ +mixin type type de mélange +mutable muable +namespace espace de nommage + (sauf pour le XML où c'est espace de noms) +parameter paramètre +pickle (v.) sérialiser +prompt invite +raise lever +regular expression expression rationnelle, expression régulière +return renvoie, donne (on évite « retourne » qui + pourrait porter à confusion) +setter mutateur +simple quote guillemet simple +socket connecteur ou interface de connexion +statement instruction +subprocess sous-processus +support prendre en charge, implémenter (« supporter » + n'a pas le même sens en français) +specify définir, préciser (plutôt que « spécifier ») +typically normalement, habituellement, comme d'habitude + (plutôt que « typiquement ») +thread fil d'exécution +traceback trace d'appels, trace de pile +tuple n-uplet +underscore tiret bas, *underscore* +whitespace caractère d'espacement +========================== =============================================== + +Ressources de traduction +------------------------ + +- les canaux IRC sur freenode : + + - `#python-docs-fr `_ — communauté python autour de la documentation française, + - `#python-fr `_ — communauté python francophone, + - `#python-doc `_ — communauté python autour de la documentation anglophone ; +- les listes de diffusion relatives à la documentation (courriel) : + + - `de l'AFPy `_, + - `de cpython `_ ; +- des glossaires et dictionnaires : + + - le `glossaire de la documentation Python `_, car il est déjà traduit, + - les `glossaires et dictionnaires de traduc.org `_, en particulier le `grand dictionnaire terminologique `_ de l'Office québécois de la langue française, + - Wikipédia. En consultant un article sur la version anglaise, puis en basculant sur la version francaise pour voir comment le sujet de l'article est traduit ; +- le `guide stylistique pour le français de localisation des produits Sun + `_ donne + beaucoup de conseils pour éviter une traduction trop mot à mot ; +- `Petites leçons de typographie `_, + résumé succint de typographie, utile pour apprendre le bon usage des + majuscules, des espaces, etc. + +L'utilisation de traducteurs automatiques comme `DeepL https://www.deepl.com/` ou semi-automatiques comme +`reverso https://context.reverso.net/traduction/anglais-francais/` est proscrite. +Les traductions générées sont très souvent à retravailler, ils ignorent les règles énoncées sur cette +page et génèrent une documentation au style très « lourd ». + + +Caractères spéciaux et typographie +---------------------------------- + +La touche de composition +~~~~~~~~~~~~~~~~~~~~~~~~ + +Cette `touche `_, +absente par défault des claviers, permet de saisir des +caractères spéciaux en combinant les caractères déjà présents sur le +clavier. C'est à l'utilisateur de définir la touche de composition. + +Avec une touche de composition, vous pouvez utiliser les +compositions suivantes : + +- :kbd:`Compose < <` donne ``«`` +- :kbd:`Compose > >` donne ``»`` +- :kbd:`Compose SPACE SPACE` donne une espace insécable +- :kbd:`Compose . . .` donne ``…`` + +Comme vous l'avez noté, presque toutes les compositions sont intuitives, +vous pouvez donc en essayer d'autres et elles devraient tout +simplement fonctionner : + +- :kbd:`Compose C =` donne ``€`` +- :kbd:`Compose 1 2` donne ``½`` +- :kbd:`Compose ' E` donne ``É`` +- etc. + +Comment définir la touche de composition ? +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Cela dépend de votre système d'exploitation et de votre clavier. + +=> Sous Linux, Unix et \*BSD (tel OpenBSD), vous pouvez la configurer à l'aide de +l'outil graphique de configuration de votre clavier ou via +``dpkg-reconfigure keyboard-configuration`` +(pour `Ubuntu `_ ou Debian +et distributions assimilées). + +À minima, vous pouvez configurer votre fichier '~/.Xmodmap' pour +ajouter l'équivalent de : + +.. code-block:: shell + + # key Compose + keycode 115 = Multi_key + + +Utilisez ``xev`` pour connaitre la bonne correspondance de la touche que vous +voulez assigner ! + +Ensuite, dans votre fichier '~/.xsession', ajoutez : + +.. code-block:: shell + + # Gestion des touches clavier + xmodmap $HOME/.Xmodmap + +Sous X, avec un bureau graphique, tel que Gnome, ou Xfce, il faut aller +modifier dans les « Paramètres » → « Clavier » → « Disposition » → +« Touche composée ». Pour finir, redémarrez votre session. + +=> Sous Windows, vous +pouvez utiliser `wincompose `_. + +Le cas de « --- », « -- », « ... » +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +La version anglaise utilise les +`smartquotes `_, +qui fonctionnent en anglais, mais causent des problèmes dans d'autres langues. +Nous les avons donc désactivées (voir #303) dans la version française. + +Les *smartquotes* sont normalement responsables de la transformation de +``--`` en *en-dash* (``—``), de ``---`` en *em-dash* (``—``), et de +``...`` en *ellipses* ``…``. + +=> Si vous voyez : +| « -- » ou « --- » : faites :kbd:`Compose - - -` +| « ... » : faites :kbd:`Compose . . .` + +Le cas de « "…" » +~~~~~~~~~~~~~~~~~ + +Les guillemets français ``«`` et ``»`` ne sont pas identiques aux +guillemets anglais ``"``. Cependant, Python utilise les guillemets +anglais comme délimiteurs de chaîne de caractères. Il convient donc de +traduire les guillemets mais pas les délimiteurs de chaîne. + +=> Si vous voyez : +| « "…" » : faites :kbd:`Compose < <` ou :kbd:`Compose > >` + +Le cas de « :: » +~~~~~~~~~~~~~~~~ + +| Du point de vue du langage *reStructuredText* (ou *rst*) utilisé dans la + documentation nous voyons soit « bla bla:: », soit « bla bla. :: ». +| ``::`` collé à la fin d'un mot signifie « affiche ``:`` et introduit un bloc de code », + mais un ``::`` après une espace signifie « introduit juste un bloc de code ». + +En français, nous mettons une espace insécable devant nos deux-points, comme : +« Et voilà : ». + +=> Traduisez ``mot deux-points deux-points`` par +``mot espace-insécable deux-points deux-points``. + +Pour saisir une espace insécable faites :kbd:`Compose SPACE SPACE` + +Les doubles-espaces +~~~~~~~~~~~~~~~~~~~ + +La documentation originale comporte beaucoup de doubles-espaces. +Cela se fait en anglais, mais pas en français. De toute manière, +ils passent ensuite à une moulinette et le rendu des espaces est délégué +au HTML et au PDF, qui n'en tiennent pas compte. +Nous avons décidé de ne rien changer pour les doubles-espaces +coté traduction : nous ne les retirons pas et ce n'est pas grave +si des traducteurs en retirent par accident. + +Les énumérations +~~~~~~~~~~~~~~~~ + +Chaque paragraphe d'une énumération introduite par un deux-point +doit se terminer par un point-virgule (bien entendu précédé d'une +espace insécable) quelle que soit sa ponctuation interne. Seul le dernier +paragraphe de l'énumération s'achève par un point ou, si la phrase +continue après l'énumération, une virgule. Si l'un des paragraphes est +lui-même une énumération, chacun des sous-paragraphes se termine par +une virgule et le dernier par un point-virgule. + +Par exemple : + +- le premier paragraphe de l'énumération ; +- le deuxième paragraphe, lui-aussi une énumération : + + - premier sous-paragraphe, + - second sous-paragraphe ; + +- le dernier paragraphe. + +Malheureusement Poedit n'aime pas les différences de ponctuation finales +entre un paragraphe et sa traduction ; il faut passer outre ses avertissements. +Vous pouvez aussi rajouter un commentaire dans le fichier *.po* pour avertir +les traducteurs suivants et éviter qu'ils ne « corrigent » par erreur ces +avertissements. + +Outils utiles pour la traduction +-------------------------------- + +Potodo +~~~~~~ + +| Permet de d'identifier les parties de la documention qu'il reste à traduire. +| Installez-le à l'aide de *pip* (``pip install potodo``) dans un environnement + ``python3.6`` ou plus. +| `Lien vers le dépôt `__ + +Pogrep +~~~~~~ + +| Permet de rechercher dans la documentation des termes. Utile si on a un doute + sur comment traduire un terme ou chercher la traduction d'un terme dans + d'autres fichiers. +| Installez-le à l'aide de *pip* (``pip install pogrep``). +| `Lien vers le dépôt `__ + +Padpo (beta) +~~~~~~~~~~~~ + +| Analyseur de code qui vérifie la grammaire et l'orthographe et la syntaxe + du fichier .po. +| Installez-le à l'aide de *pip* (``pip install padpo``) dans un environnement + ``python3.7`` ou plus. +| `Lien vers le dépôt `__ + +Powrap +~~~~~~ + +| Formateur de fichier .po. +| Installez-le à l'aide de *pip* (``pip install powrap``). +| `Lien vers le dépôt `__ + + +Simplification des diffs git +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Les diffs git sont souvent encombrés de changements inutiles de numéros +de ligne, comme : + +.. code-block:: diff + + -#: ../Doc/library/signal.rst:406 + +#: ../Doc/library/signal.rst:408 + +Pour dire à git que ce ne sont pas des informations utiles, vous pouvez faire +ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre +``PATH``. + +.. code-block:: bash + + cat < ~/.local/bin/podiff + #!/bin/sh + grep -v '^#:' "\$1" + EOF + + chmod a+x ~/.local/bin/podiff + + git config diff.podiff.textconv podiff + + +Pas d'inquiétude, cela ne change la façon dont Git affiche les changements que sur +les fichiers de la traduction, sans incidence sur les autres. + + +Maintenance +----------- + +Toutes ces commandes doivent être exécutées à partir de la racine d'un clone +de ``python-docs-fr`` et certaines s'attendent à trouver un clone de CPython +à jour à proximité, comme : + +.. code-block:: bash + + ~/ + ├── python-docs-fr/ + └── cpython/ + +Pour cloner CPython, vous pouvez utiliser : + +.. code-block:: bash + + git clone --depth 1 --no-single-branch https://github.com/python/cpython.git + +Ceci évite de télécharger tout l'historique (inutile pour générer la +documentation) mais récupère néanmoins toutes les branches. + + +Fusion des fichiers *pot* de CPython +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +.. code-block:: bash + + make merge + + +Synchronisation de la traduction avec Transifex +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +Vous aurez besoin de ``transifex-client`` et ``powrap``, +depuis PyPI. + +Vous devrez configurer ``tx`` via ``tx init`` si ce n'est déjà fait. + +Propagez d'abord les traductions connues localement : + +.. code-block:: bash + + pomerge --no-overwrite --from-files **/*.po --to-files **/*.po + powrap --modified + git commit -m "Propagating known translations." + + +Ensuite récupérez les changements depuis Transifex : + +.. code-block:: bash + + tx pull -f --parallel + pomerge --from-files **/*.po + git checkout -- . + pomerge --no-overwrite --mark-as-fuzzy --to-files **/*.po + powrap --modified + git add -p + git commit -m "tx pull" + tx push -t -f --no-interactive --parallel diff --git a/Makefile b/Makefile index a564d049ef..c712f261ba 100644 --- a/Makefile +++ b/Makefile @@ -2,111 +2,187 @@ # # Here is what you can do: # -# - make # Automatically build an html local version -# - make todo # To list remaining tasks -# - make verifs # To check for correctness: wrapping, spelling -# - make powrap # To check for wrapping -# - make pospell # To check for spelling -# - make merge # To merge pot from upstream +# - make # Automatically build an HTML local version +# - make todo # To list remaining tasks and show current progression +# - make verifs # To check for correctness: wrapping, spelling +# - make wrap # To rewrap modified files +# - make spell # To check for spelling +# - make clean # To remove build artifacts # - 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 # real work to the Python Doc Makefile. -CPYTHON_CLONE := ../cpython/ -SPHINX_CONF := $(CPYTHON_CLONE)/Doc/conf.py +# Configuration + +# The CPYTHON_CURRENT_COMMIT is the commit, in the cpython repository, +# from which we generated our po files. We use it here so when we +# test build, we're building with the .rst files that generated our +# .po files. +CPYTHON_CURRENT_COMMIT := 045b2523ff395efbbbd9369c7becec8e2236bde9 LANGUAGE := fr -VENV := ~/.venvs/python-docs-i18n/ +BRANCH := 3.9 + +EXCLUDED := \ + whatsnew/2.?.po \ + whatsnew/3.[0-8].po \ + c-api/ \ + distutils/ \ + install/ \ + library/2to3.po \ + library/distutils.po \ + library/imp.po \ + library/tkinter.tix.po \ + library/test.po \ + library/aifc.po \ + library/asynchat.po \ + library/asyncore.po \ + library/audioop.po \ + library/cgi.po \ + library/cgitb.po \ + library/chunk.po \ + library/crypt.po \ + library/imghdr.po \ + library/msilib.po \ + library/nntplib.po \ + library/nis.po \ + library/ossaudiodev.po \ + library/pipes.po \ + library/smtpd.po \ + library/sndhdr.po \ + library/spwd.po \ + library/sunau.po \ + library/telnetlib.po \ + library/uu.po \ + library/xdrlib.po + +# Internal variables + +UPSTREAM := https://github.com/python/cpython + PYTHON := $(shell which python3) MODE := html -BRANCH = 3.8 -COMMIT = -JOBS = auto - - -.PHONY: all -all: $(SPHINX_CONF) $(VENV)/bin/activate -ifneq "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" "$(BRANCH)" - $(warning "Your ../cpython checkout may be on the wrong branch, got $(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD) expected $(BRANCH)") +POSPELL_TMP_DIR := .pospell/ +JOBS := auto +SPHINXERRORHANDLING = -W + +# Detect OS + +ifeq '$(findstring ;,$(PATH))' ';' + detected_OS := Windows +else + detected_OS := $(shell uname 2>/dev/null || echo Unknown) + detected_OS := $(patsubst CYGWIN%,Cygwin,$(detected_OS)) + detected_OS := $(patsubst MSYS%,MSYS,$(detected_OS)) + detected_OS := $(patsubst MINGW%,MSYS,$(detected_OS)) endif - mkdir -p $(CPYTHON_CLONE)/locales/$(LANGUAGE)/ - ln -nfs $(shell $(PYTHON) -c 'import os; print(os.path.realpath("."))') $(CPYTHON_CLONE)/locales/$(LANGUAGE)/LC_MESSAGES - $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) SPHINXOPTS='-qW -j$(JOBS) -D locale_dirs=../locales -D language=$(LANGUAGE) -D gettext_compact=0 -D latex_engine=xelatex -D latex_elements.inputenc= -D latex_elements.fontenc=' $(MODE) +ifeq ($(detected_OS),Darwin) # Mac OS X + CP_CMD := gcp # accessible with `brew install coreutils` or `brew upgrade coreutils` +else + CP_CMD := cp +endif -$(SPHINX_CONF): - git clone --depth 1 --branch $(BRANCH) https://github.com/python/cpython.git $(CPYTHON_CLONE) - [ -n "$(COMMIT)" ] && (i=1; while ! $$(git -C $(CPYTHON_CLONE) checkout $(COMMIT)); do i=$$((i * 2)); git -C $(CPYTHON_CLONE) fetch --depth $$i; done) || true - - -.PHONY: upgrade_venv -upgrade_venv: - $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv - $(VENV)/bin/pip install -U pip potodo powrap pospell - +.PHONY: all +all: ensure_prerequisites + git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT) || (git -C venv/cpython fetch && git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT)) + mkdir -p locales/$(LANGUAGE)/LC_MESSAGES/ + $(CP_CMD) -u --parents *.po */*.po locales/$(LANGUAGE)/LC_MESSAGES/ + $(MAKE) -C venv/cpython/Doc/ \ + JOBS='$(JOBS)' \ + SPHINXOPTS='-D locale_dirs=$(abspath locales) \ + -D language=$(LANGUAGE) \ + -D gettext_compact=0 \ + -D latex_engine=xelatex \ + -D latex_elements.inputenc= \ + -D latex_elements.fontenc=' \ + SPHINXERRORHANDLING=$(SPHINXERRORHANDLING) \ + $(MODE) + @echo "Build success, open file://$(abspath venv/cpython/)/Doc/build/html/index.html or run 'make htmlview' to see them." + + +# We clone cpython/ inside venv/ because venv/ is the only directory +# excluded by cpython' Sphinx configuration. +venv/cpython/.git/HEAD: + git clone https://github.com/python/cpython venv/cpython + + +.PHONY: ensure_prerequisites +ensure_prerequisites: venv/cpython/.git/HEAD + @if ! (blurb help >/dev/null 2>&1 && sphinx-build --version >/dev/null 2>&1); then \ + git -C venv/cpython/ checkout $(BRANCH); \ + echo "You're missing dependencies please install:"; \ + echo ""; \ + echo " python -m pip install -r requirements.txt -r venv/cpython/Doc/requirements.txt"; \ + exit 1; \ + fi + +.PHONY: htmlview +htmlview: MODE=htmlview +htmlview: all -$(VENV)/bin/activate: $(SPHINX_CONF) - $(MAKE) -C $(CPYTHON_CLONE)/Doc/ VENVDIR=$(VENV) PYTHON=$(PYTHON) venv +.PHONY: todo +todo: ensure_prerequisites + potodo --api-url 'https://git.afpy.org/api/v1/repos/AFPy/python-docs-fr/issues?state=open&type=issues' --exclude venv .venv $(EXCLUDED) +.PHONY: wrap +wrap: ensure_prerequisites + @echo "Re wrapping modified files" + powrap -m -.PHONY: progress -progress: - @python3 -c 'import sys; print("{:.1%}".format(int(sys.argv[1]) / int(sys.argv[2])))' \ - $(shell msgcat *.po */*.po | msgattrib --translated | grep -c '^msgid') \ - $(shell msgcat *.po */*.po | grep -c '^msgid') +SRCS = $(shell git diff --name-only $(BRANCH) | grep '.po$$') +# foo/bar.po => $(POSPELL_TMP_DIR)/foo/bar.po.out +DESTS = $(addprefix $(POSPELL_TMP_DIR)/,$(addsuffix .out,$(SRCS))) +.PHONY: spell +spell: ensure_prerequisites $(DESTS) -$(VENV)/bin/potodo: $(VENV)/bin/activate - $(VENV)/bin/pip install potodo +.PHONY: line-length +line-length: + @echo "Searching for long lines..." + @awk '{if (length(gensub(/శ్రీనివాస్/, ".", "g", $$0)) > 80 && length(gensub(/[^ ]/, "", "g")) > 1) {print FILENAME ":" FNR, "line too long:", $$0; ERRORS+=1}} END {if (ERRORS>0) {exit 1}}' *.po */*.po -$(VENV)/bin/powrap: $(VENV)/bin/activate - $(VENV)/bin/pip install powrap +.PHONY: sphinx-lint +sphinx-lint: + @echo "Checking all files using sphinx-lint..." + @sphinx-lint --enable all --disable line-too-long *.po */*.po -$(VENV)/bin/pospell: $(VENV)/bin/activate - $(VENV)/bin/pip install pospell +$(POSPELL_TMP_DIR)/%.po.out: %.po dict + @echo "Pospell checking $<..." + @mkdir -p $(@D) + pospell -p dict -l fr_FR $< && touch $@ -.PHONY: todo -todo: $(VENV)/bin/potodo - $(VENV)/bin/potodo +.PHONY: fuzzy +fuzzy: ensure_prerequisites + potodo --only-fuzzy --api-url 'https://git.afpy.org/api/v1/repos/AFPy/python-docs-fr/issues?state=open&type=issues' --exclude venv .venv $(EXCLUDED) + +.PHONY: check-headers +check-headers: + @grep -L '^# Copyright (C) [0-9-]*, Python Software Foundation' *.po */*.po | while read -r file;\ + do \ + echo "Please update the po comment in $$file"; \ + done + @grep -L '^"Project-Id-Version: Python 3\\n"$$' *.po */*.po | while read -r file;\ + do \ + echo "Please update the 'Project-Id-Version' header in $$file"; \ + done + @grep -L '^"Language: fr\\n"$$' *.po */*.po | while read -r file;\ + do \ + echo "Please update the 'Language' header in $$file"; \ + done + @grep -L '^"Language-Team: FRENCH \\n"' *.po */*.po | while read -r file;\ + do \ + echo "Please update the 'Language-Team' header in $$file"; \ + done .PHONY: verifs -verifs: powrap pospell - -.PHONY: powrap -powrap: $(VENV)/bin/powrap - $(VENV)/bin/powrap --check --quiet *.po */*.po - -.PHONY: pospell -pospell: $(VENV)/bin/pospell - $(VENV)/bin/pospell -p dict -l fr_FR *.po */*.po - -.PHONY: merge -merge: upgrade_venv -ifneq "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" "$(BRANCH)" - $(error "You're merging from a different branch:" "$(shell cd $(CPYTHON_CLONE) 2>/dev/null && git describe --contains --all HEAD)" vs "$(BRANCH)") -endif - (cd $(CPYTHON_CLONE)/Doc; rm -f build/NEWS) - (cd $(CPYTHON_CLONE); $(VENV)/bin/sphinx-build -Q -b gettext -D gettext_compact=0 Doc pot/) - find $(CPYTHON_CLONE)/pot/ -name '*.pot' |\ - while read -r POT;\ - do\ - PO="./$$(echo "$$POT" | sed "s#$(CPYTHON_CLONE)/pot/##; s#\.pot\$$#.po#")";\ - mkdir -p "$$(dirname "$$PO")";\ - if [ -f "$$PO" ];\ - then\ - case "$$POT" in\ - *whatsnew*) msgmerge --backup=off --force-po --no-fuzzy-matching -U "$$PO" "$$POT" ;;\ - *) msgmerge --backup=off --force-po -U "$$PO" "$$POT" ;;\ - esac\ - else\ - msgcat -o "$$PO" "$$POT";\ - fi\ - done - - -.PHONY: fuzzy -fuzzy: $(VENV)/bin/potodo - $(VENV)/bin/potodo -f +verifs: spell line-length sphinx-lint check-headers + +.PHONY: clean +clean: + @echo "Cleaning *.mo and $(POSPELL_TMP_DIR)" + rm -fr $(POSPELL_TMP_DIR) locales/$(LANGUAGE)/LC_MESSAGES/ + find -name '*.mo' -delete + @echo "Cleaning build directory" + $(MAKE) -C venv/cpython/Doc/ clean diff --git a/README.rst b/README.rst index aed8a944ba..cbccfa457d 100644 --- a/README.rst +++ b/README.rst @@ -11,10 +11,28 @@ Traduction française de la documentation Python :width: 45% +Contribuer à la traduction +-------------------------- + +Vous pouvez contribuer : + +- en proposant des *pull requests* Github (solution recommandée) ; +- en envoyant un correctif à la liste `traductions `_. + +Consultez le +`guide `_ +pour apprendre les conventions à respecter. + +Le coordinateur de cette traduction est `Julien Palard (mdk) `_. +Vous pouvez obtenir de l'aide sur le canal ``#python-fr`` sur `freenode +`_ (ne nécessite pas d'inscription) ou poser vos questions sur la +`liste de diffusion `_ des traductions de l'AFPy. + + Accord de contribution à la documentation ----------------------------------------- -NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python +NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python est maintenue grâce à un réseau mondial de bénévoles. En publiant ce projet sur Transifex, Github, et d'autres endroits publics, et vous invitant à participer, la PSF vous enjoint à accepter cet accord qui stipule que vous @@ -34,539 +52,11 @@ En soumettant votre travail à la PSF pour inclusion dans la documentation, vous signifiez votre acceptation de cet accord. -Contribuer à la traduction --------------------------- - -Comment contribuer -~~~~~~~~~~~~~~~~~~ - -Vous pouvez contribuer en utilisant : - -- Des *pull requests* Github (solution recommandée). -- En envoyant un patch à la liste `traductions `_. - - -Contribuer en utilisant Github -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Prérequis : - -- Un compte `Github `_. -- ``git`` `installé `_ (pour Windows, voir - https://gitforwindows.org/). -- Un éditeur de fichier ``.po`` (utilisez `poedit `_ - si vous n'en avez pas déjà un). - - -Commencer : - -Vous aurez besoin de *forker* le dépôt des sources `python-docs-fr -`_ en cliquant sur son bouton -``Fork``. Ceci crée une copie du projet sur votre compte Github : un endroit -où vous avez le droit de faire des modifications. - -Étape par étape : - -.. code-block:: bash - - # Clonez votre fork Github avec `git` en utilisant ssh : - git clone git@github.com/VOTRE_NOM_DE_COMPTE_GITHUB/python-docs-fr.git - # *OU* HTTPS : - git clone https://github.com/VOTRE_NOM_DE_COMPTE/python-docs-fr.git - - # Allez dans le répertoire cloné : - cd python-docs-fr/ - - # Ajoutez le dépot upstream (le dépôt public) en utilisant HTTPS (git - # ne demandera pas de mot de passe ainsi) : - # Ceci permet à *git* de savoir quoi/où est *upstream* - git remote add upstream https://github.com/python/python-docs-fr.git - -Ensuite, vous devez trouver un fichier sur lequel travailler. -Vous pouvez utiliser `potodo `_, un outil -fait pour trouver des fichiers ``po`` à traduire. -Installez-le à l'aide de *pip* (``pip install potodo``) dans un environnement -``python3.6`` ou plus. -Lancez ensuite la commande ``potodo`` dans votre clone local. -Vous pouvez choisir n'importe quel fichier non réservé dans la liste -renvoyée par la commande. - -**Nous vous recommandons de ne pas commencer avec un fichier de ``c-api`` -car c'est une partie très technique.** - -Une fois que vous avez choisi un fichier sur lequel travailler, veuillez -ouvrir un `ticket sur Github `_ dans -le format ``Je travaille sur RÉPERTOIRE/FICHIER.po``. Ceci permet à ``potodo`` -de détecter via l'API Github les fichiers ``.po`` réservés dans les tickets -et les *pull requests*. - -Vous êtes maintenant prêt à commencer une session de travail. Chaque -fois que vous commencerez un nouveau fichier, commencez ainsi : - -.. code-block:: bash - - # Pour travailler, nous aurons besoin d'une branche, basée sur une version à jour - # (fraîchement récupérée) de la branche upstream/3.8. Nous appellerons notre branche - # « library-sys » mais vous pouvez appeller la vôtre comme vous voulez. - # En général, vous nommez une branche en fonction du fichier sur lequel vous travaillez. - # Par exemple, si vous travaillez sur « library/venv.po », vous pouvez nommer votre - # branche « library-venv ». - - # Mettez à jour votre version locale - git fetch upstream - # Créez une nouvelle branche nommée « library-sys » basée sur « upstream/3.8 ». - git checkout -b library-sys upstream/3.8 - - # Vous pouvez maintenant travailler sur le fichier, typiquement en utilisant poedit. - # Bien sûr, remplacez « library/sys.po » par le fichier que vous avez choisi - # précédemment. - # Configurez poedit pour « ne pas préserver le formatage des - # fichiers existants » (décochez la case), et indiquez une longueur - # de ligne maximum de 79 caractères. - - poedit library/sys.po - - # Si vous n'utilisez pas poedit, vous pouvez utiliser *powrap* (pip install powrap) - # qui va reformater correctement le fichier que avez vous avez modifié. - # Exécutez cette commande : `powrap -m` (reformater tous les fichiers modifiés), - # ou `powrap library/sys.po` (un fichier en particulier) : - powrap -m - - # Quand vous avez fini de traduire, vous pouvez lancer *make verifs* - # (si vous ne le faites pas, ce sera fait automatiquement - # sur github, pas d'inquiétude). - - # Pour l'orthographe, une liste blanche de certains termes techniques ou - # de noms propres, comme « Guido », « C99 » ou « sérialisable », est - # stockée dans le fichier « dict » à la racine du projet. Vous pouvez - # bien sûr y ajouter une entrée si nécessaire. - make verifs - - # C'est le moment de git add et git commit - git add -p # C'est l'occasion de se relire, mais git add -u c'est bien aussi - # ou même git add library/sys.po - - git commit -m "Traduction de library/sys.po" # Ou un autre message plus inspiré :) - - # Poussez ensuite vos modifications sur votre fork Github. - # Le -u n'est utile qu'une fois pour que votre client git se souvienne que cette - # branche est liée à votre fork Github (et donc qu'un futur `git pull` sache quoi - # tirer) - git push -u origin - - # La commande précédente vous affichera un lien pour ouvrir une pull request sur - # Github. Si vous l'avez manqué, allez simplement sur https://github.com/python/python-docs-fr/ - # et un joli bouton « Compare & pull request » devrait apparaître au bout de quelques secondes - # vous indiquant que vous pouvez demander une pull request. - - # À partir de là, quelqu'un passera en revue vos modifications, et vous voudrez - # probablement corriger les erreurs qu'ils auront trouvé. Retournez alors sur votre - # branche (au cas où vous auriez commencé quelque chose d'autre sur une autre branche) : - git checkout glossary - git pull # pour rapatrier les modifications que vous auriez accepté - # sur l'interface web. - # Réglez les problèmes, puis commitez à nouveau : - git commit -a -m "glossaire : petites corrections". - git push - - -Vous avez peut-être remarqué que cela ressemble à un triangle, avec un -segment manquant : - -- Vous récupérez depuis *upstream* (le dépôt commun public sur Github) -- Vous poussez sur *origin* (votre clone sur Github) - -Donc oui, c'est le travail de quelqu'un d'autre d'ajouter le dernier segment, -de votre *origin* au *upstream* public, pour « boucler la boucle ». C'est le -rôle des personnes qui *fusionnent* les *pull requests* après les avoir relues. - -Vous avez peut-être aussi remarqué que vous n'avez jamais commité sur une -branche de version (``3.7``, ``3.8``, etc.), seulement récupéré les -modifications à partir d'elles. Considérez-les comme étant en lecture seule, -vous éviterez les problèmes. - -Avant de valider, vous devriez utiliser `grammalecte -`_ pour vérifier vos traductions. - - -Toutes les traductions doivent être faites sur la dernière version. -Nous ne traduisons jamais sur une version plus ancienne. Par exemple, -si la dernière version de python est Python 3.8, nous ne voulons pas -traduire directement sur la version python 3.5. -Si nécessaire, les traductions seraient rétroportées sur les versions -les plus anciennes par l'`équipe de documentation -`_. - - -Que traduire ? -~~~~~~~~~~~~~~ - -Vous pouvez commencer par des tâches faciles comme réviser les entrées -*fuzzy* pour aider à garder la documentation à jour (trouvez les entrées -*fuzzy* l'aide de `make fuzzy`). - -Vous pouvez également relire les entrées déjà traduites, et enfin -traduire celles qui ne sont pas traduites (trouvez-les à l'aide de -`make todo`)... - -- Ne traduisez pas le contenu de ``:ref :...`` et ``:term :...``. -- Mettez les mots anglais, si vous devez les utiliser, en *italique* - (entourés par des astérisques). -- ``::`` à la fin de certains paragraphes doivent être traduits en `` : - ::`` en français pour placer l'espace avant les deux-points. -- Si vous traduisez un titre de lien, veuillez traduire le lien aussi. - (surtout si c'est un lien Wikipédia et que l'article a une traduction). - Si aucune traduction de la cible n'existe, ne traduisez pas le titre. -- Les guillemets français ``«`` et ``»`` ne sont pas identiques aux - guillemets anglais ``"``. Cependant, Python utilise les guillemets - anglais comme délimiteurs de chaîne de caractères. Il convient donc de - traduire les guillemets mais pas les délimiteurs de chaîne. - -Le cas de « --- » -~~~~~~~~~~~~~~~~~ - -La version anglaise utilise une chose nommée `smartquotes -`_, qui -essaie d'être intelligente, qui fonctionne en anglais, mais cause -rapidement des problèmes dans d'autres langues. -Nous l'avons donc désactivée. - -Les *smartquotes* sont également responsables de la transformation de -``--`` en *en-dash* (``–``), de ``---`` en *em-dash* (``—``), et de -``...`` en ``…``. - -Comme nous n'avons pas de *smartquotes*, nous devrons également « traduire » -cela manuellement, donc si vous voyez ``---`` en anglais, vous devez le -transformer en ``—`` en français. - - -Le cas de « :: » -~~~~~~~~~~~~~~~~ - -Du point de vue du langage *reStructuredText* (ou *rst*) utilisé dans la documentation : - -=> ``::`` collé à la fin d'un mot signifie « affiche ``:`` et introduit un bloc de code », -mais un ``::`` après une espace signifie « introduit juste un bloc de code ». - -Donc, dans du *rst*, en anglais, nous voyons soit « bla bla:: », soit « bla bla. :: ». - -En français, nous mettons une espace insécable devant nos deux-points, comme : -« Et voilà : ». - -L'utilisation de l'espace insécable en *rst* est naturelle, vous n'aurez qu'à -écrire ``Et voilà ::``. Le ``::`` n'est pas précédé d'un espace normal, -il affichera les deux-points et introduira le bloc de code, et c'est bon. - -Si vous ne savez pas comment taper une espace insécable, il y a une astuce : -lisez celle de la touche *compose* dans la section suivante ; sinon : - -=> Traduisez ``deux-points deux-points`` par -``espace deux-points espace deux-points deux-points``. - -Les caractères ``espace deux-points`` sont restitués tel quel, -c'est du français correct, et la balise ``espace deux-points deux-points`` qui -suit n'affichera rien et introduira le bloc de code. - -Dans un ``.po`` ça donne : `` : ::`` - -Non ! Ça n'insère pas magiquement une espace insécable donc ce n'est toujours pas -vraiment du français valide. - -Oui ! il vaut mieux apprendre à taper les espaces insécables. - - -Utilisation du futur -~~~~~~~~~~~~~~~~~~~~ - -Dans la description du comportement de Python (au sens large, c'est-à-dire -l'interpréteur lui-même mais aussi toutes les bibliothèques), la version -originale utilise souvent le futur : « if you do this, il will produce that … ». -En français, l'utlisation du présent convient tout à fait et le présent est -souvent plus facile à lire : « si vous faites ceci, il se produit cela … ». -On ne conserve le futur que si la deuxième proposition se situe réellement -dans le futur (par exemple, on peut penser qu'un processus de compilation n'est -pas immédiat) ou pour des raisons de concordance des temps. - -Traduction de *should* -~~~~~~~~~~~~~~~~~~~~~~ - -La version originale est très polie envers le lecteur ; elle lui intime -rarement des obligations, préférant employer « you should ». Cependant, en -français, il est d'usage d'être plus direct pour être correctement compris : -« vous devez ». *Vous devriez* est en effet généralement compris comme quelque -chose dont l'on peut de temps en temps se passer, alors que c'est très -rarement le cas pour les « you should » de cette documentation. - -Comment saisir des em-dash, des ellipses, des guillemets français, ou des espaces insécables ? -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Malheureusement, cela dépend de votre système d'exploitation et de votre clavier. - -=> Sous Linux/Unix/\*BSD (tel OpenBSD), vous pouvez utilisez une -`Touche de composition `_, -c'est facile à configurer à l'aide de l'outil graphique de configuration de votre -clavier ou via ``dpkg-reconfigure keyboard-configuration`` -(pour Ubuntu ou Debian et distributions assimilées) - -À minima, vous pouvez configurer votre fichier '~/.Xmodmap' pour ajouter l'équivalent de : - -.. code-block:: shell - - # key Compose - keycode 115 = Multi_key - - -Utilisez ``xev`` pour connaitre la bonne correspondance de la touche que vous -voulez assigner ! - -Ensuite, dans votre fichier '~/.xsession', ajoutez : - -.. code-block:: shell - - # Gestion des touches clavier - xmodmap $HOME/.Xmodmap - - -Sous X, avec un bureau graphique, tel que Gnome, ou Xfce, il faut aller modifier -dans les paramètres > clavier > Disposition : puis 'Touche composée'. -Pour finir, redémarrez votre session. - -=> Sous Windows, vous -pouvez utiliser `wincompose `_. - -Avec une touche de composition (personnellement j'utilise ``alt-gr``, -vous pouvez aussi utiliser ``verr maj 🔒``), vous pouvez utiliser les -compositions suivantes : - -- Composer ``<`` ``<`` donne ``« `` -- Composer ``>`` ``>`` donne `` »`` -- Composer espace espace donne une espace insécable -- Composer ``.`` ``.`` ``.`` donne ``…`` - -Comme vous l'avez noté, presque toutes les compositions sont faciles -à retenir, vous pouvez donc essayer les autres et elles devraient tout -simplement fonctionner : - -- Composer ``C`` ``=`` donne ``€`` -- Composer ``1`` ``2`` donne ``½`` -- Composer ``'`` ``E`` donne ``É`` -- … … - - -Où obtenir de l'aide ? -~~~~~~~~~~~~~~~~~~~~~~ - -Le coordinateur de cette traduction est `mdk `_. - -N'hésitez pas à poser vos questions sur le canal ``#python-fr`` sur `freenode -`_ (ne nécessite pas d'inscription) ou sur la -`liste de diffusion des traductions de l'AFPy `_. - - -Ressources de traduction ------------------------- - -- le canal IRC `#python-fr `_ sur freenode ; -- la `liste traductions AFPy `_ ; -- la `liste de diffusion doc-sig - `_ ; -- les `glossaires et dictionnaires de traduc.org - `_, en particulier le - `grand dictionnaire terminologique `_ - de l'Office québécois de la langue française ; -- le `glossaire Python `_, car - il est déjà traduit ; -- le `guide stylistique pour le français de localisation des produits Sun - `_ donne - beaucoup de conseils pour éviter une traduction trop mot à mot ; -- `deepl.com/translator `_ ; -- `Petites leçons de typographie `_, - résumé succint de typographie, utile pour apprendre le bon usage des majuscules, - des espaces, etc. - - -Glossaire ---------- - -Afin d'assurer la cohérence de nos traductions, voici quelques propositions et -rappels pour les termes fréquents à traduire, n'hésitez pas à ouvrir un ticket -si vous n'êtes pas d'accord. - -Pour trouver facilement comment un terme est déjà traduit dans notre documentation, -vous pouvez utiliser -`find_in_po.py `_. - -========================== =============================================== -Terme Traduction proposée -========================== =============================================== --like -compatible -abstract data type type abstrait -argument argument (à ne pas confondre avec *paramètre*) -backslash antislash, *backslash* -bound lier -bug bogue, *bug* -built-in native -call stack pile d'appels -debugging débogage -deep copy copie récursive (préféré), ou copie profonde -double quote guillemet -deprecated obsolète --like -compatible -e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », - lui-même issu du latin *exempli gratia*). - On sépare les deux mots par une espace - insécable pour éviter les retours à la ligne - malheureux. -et al. et autres, `à accorder - `_ - suivant le contexte -export exportation -expression expression -garbage collector ramasse-miettes -getter accesseur -i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e », - lui-même issu du latin *id est*) -identifier identifiant -immutable immuable -import importation -installer installateur -interpreter interpréteur -library bibliothèque -list comprehension liste en compréhension (liste en intension est - valide, mais nous ne l'utilisons pas) -little-endian, big-endian `petit-boutiste, gros-boutiste - `_ -mixin type type de mélange -mutable muable -namespace espace de nommage - (sauf pour le XML où c'est espace de noms) -parameter paramètre -pickle (v.) sérialiser -prompt invite -raise lever -regular expression expression rationnelle, expression régulière -return renvoie, donne (on évite « retourne » qui - pourrait porter à confusion). -setter mutateur -simple quote guillemet simple -socket connecteur ou interface de connexion -statement instruction -subprocess sous-processus -thread fil d'exécution -underscore tiret bas, *underscore* -========================== =============================================== - - Historique du projet -------------------- -Ce projet a été lancé `vers 2012 -`_ -par des membres de l'`AFPy `_. En 2017 ce projet -est devenu la traduction officielle de la documentation Python en français -grâce à la `PEP 545 `_. - - -Simplifier les diffs git ------------------------- - -Les diffs git sont souvent encombrés de changements inutiles de numéros -de ligne, comme : - -.. code-block:: diff - - -#: ../Doc/library/signal.rst:406 - +#: ../Doc/library/signal.rst:408 - -Pour dire à git que ce ne sont pas des informations utiles, vous pouvez faire -ce qui suit après vous être assuré que ``~/.local/bin/`` se trouve dans votre -``PATH``. - -.. code-block:: bash - - cat < ~/.local/bin/podiff - #!/bin/sh - grep -v '^#:' "\$1" - EOF - - chmod a+x ~/.local/bin/podiff - - git config diff.podiff.textconv podiff - - -Maintenance ------------ - -Toutes ces commandes doivent être exécutées à partir de la racine d'un clone -de ``python-docs-fr``, et certains s'attendent à trouver un clone de CPython -à jour à proximité, comme : - -.. code-block:: bash - - ~/ - ├── python-docs-fr/ - └── cpython/ - -Pour cloner CPython, vous pouvez utiliser : - -.. code-block:: bash - - git clone --depth 1 --no-single-branch https://github.com/python/cpython.git - -Ceci évite de télécharger tout l'historique (inutile pour générer la -documentation) mais récupère néanmoins toutes les branches. - - -Fusionner les fichiers *pot* de CPython -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make merge - - -Trouver les chaînes de caractères *fuzzy* -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make fuzzy - - -Lancer un *build* en local -~~~~~~~~~~~~~~~~~~~~~~~~~~ - -.. code-block:: bash - - make - - -Synchroniser la traduction avec Transifex -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Vous aurez besoin de ``transifex-client`` et ``powrap``, -depuis PyPI. - -Vous devrez configurer ``tx`` via ``tx init`` si ce n'est déjà fait. - -Propagez d'abord les traductions connues localement : - -.. code-block:: bash - - pomerge --no-overwrite --from-files **/*.po --to-files **/*.po - powrap --modified - git commit -m "Propagating known translations." - - -Ensuite récupérez les changements depuis Transifex : - -.. code-block:: bash +- vers 2000 : `lancement du projet `_ ; +- vers 2012 : `reprise `_ par l'`AFPy `_ ; +- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 `_. - tx pull -f --parallel - pomerge --from-files **/*.po - git checkout -- . - pomerge --no-overwrite --mark-as-fuzzy --to-files **/*.po - powrap --modified - git add -p - git commit -m "tx pull" - tx push -t -f --no-interactive --parallel +Une `vidéo `_ de `Jules Lasne `_ montre l'évolution du dépôt. diff --git a/TRANSLATORS b/TRANSLATORS index 0996715ac0..e00e030ba9 100644 --- a/TRANSLATORS +++ b/TRANSLATORS @@ -13,3 +13,7 @@ Vivien Lambert Andy Kwok Aya Keddam Antoine Wecxsteen +Youen 'laën' Froger +Sascha Salles +Valériane Venance +Loc Cosnier diff --git a/about.po b/about.po index 701509cadb..847d52032d 100644 --- a/about.po +++ b/about.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-07-23 17:55+0200\n" diff --git a/bugs.po b/bugs.po index 060d9b4ccc..667fd2679b 100644 --- a/bugs.po +++ b/bugs.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-08-23 09:13+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-12-10 16:04+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/bugs.rst:5 +#: bugs.rst:5 msgid "Dealing with Bugs" -msgstr "S'attaquer aux bugs" +msgstr "S'attaquer aux bogues" -#: ../Doc/bugs.rst:7 +#: bugs.rst:7 msgid "" "Python is a mature programming language which has established a reputation " "for stability. In order to maintain this reputation, the developers would " @@ -29,7 +29,7 @@ msgstr "" "Afin de maintenir cette réputation, les développeurs souhaitent connaître " "tout problème que vous pourriez rencontrer dans Python." -#: ../Doc/bugs.rst:11 +#: bugs.rst:11 msgid "" "It can be sometimes faster to fix bugs yourself and contribute patches to " "Python as it streamlines the process and involves less people. Learn how to :" @@ -39,11 +39,11 @@ msgstr "" "les correctifs, ça simplifie le processus et implique moins de monde. " "Apprenez à :ref:`contribuer `." -#: ../Doc/bugs.rst:16 +#: bugs.rst:16 msgid "Documentation bugs" msgstr "Bogues de documentation" -#: ../Doc/bugs.rst:18 +#: bugs.rst:18 msgid "" "If you find a bug in this documentation or would like to propose an " "improvement, please submit a bug report on the :ref:`tracker `_" -msgstr "" +msgstr "`Outil de suivi des problèmes `_" -#: ../Doc/bugs.rst:33 +#: bugs.rst:33 msgid "" "Overview of the process involved in reporting an improvement on the tracker." msgstr "" +"Vue d'ensemble du processus pour proposer une amélioration avec l'outil de " +"suivi." -#: ../Doc/bugs.rst:35 +#: bugs.rst:35 msgid "" "`Helping with Documentation `_" msgstr "" +"`Aider avec la documentation `_" -#: ../Doc/bugs.rst:36 +#: bugs.rst:36 msgid "" "Comprehensive guide for individuals that are interested in contributing to " "Python documentation." -msgstr "" +msgstr "Guide complet pour qui souhaite contribuer à la documentation Python." -#: ../Doc/bugs.rst:41 +#: bugs.rst:41 msgid "Using the Python issue tracker" msgstr "Utilisation du gestionnaire de tickets Python" -#: ../Doc/bugs.rst:43 +#: bugs.rst:43 msgid "" -"Bug reports for Python itself should be submitted via the Python Bug Tracker " -"(https://bugs.python.org/). The bug tracker offers a Web form which allows " -"pertinent information to be entered and submitted to the developers." +"Issue reports for Python itself should be submitted via the GitHub issues " +"tracker (https://github.com/python/cpython/issues). The GitHub issues " +"tracker offers a web form which allows pertinent information to be entered " +"and submitted to the developers." msgstr "" -"Les rapports de bogues pour Python lui-même devraient être soumis via le " -"*Bug Tracker Python* (http://bugs.python.org/). Le gestionnaire de tickets " -"propose un formulaire Web permettant de saisir des informations pertinentes " -"à soumettre aux développeurs." +"Les rapports concernant un problème relatif à Python lui-même doivent être " +"soumis *via* l'outil de suivi des problèmes de GitHub (https://github.com/" +"python/cpython/issues). Le gestionnaire de tickets propose un formulaire Web " +"permettant de saisir des informations pertinentes à soumettre aux " +"développeurs." -#: ../Doc/bugs.rst:47 +#: bugs.rst:48 msgid "" "The first step in filing a report is to determine whether the problem has " "already been reported. The advantage in doing so, aside from saving the " -"developers time, is that you learn what has been done to fix it; it may be " +"developers' time, is that you learn what has been done to fix it; it may be " "that the problem has already been fixed for the next release, or additional " "information is needed (in which case you are welcome to provide it if you " -"can!). To do this, search the bug database using the search box on the top " -"of the page." +"can!). To do this, search the tracker using the search box at the top of the " +"page." msgstr "" "La première étape pour remplir un rapport est de déterminer si le problème a " "déjà été rapporté. L'avantage de cette approche, en plus d'économiser du " -"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " +"temps aux développeurs, est d'apprendre ce qui a été fait pour le résoudre ; " "il se peut que le problème soit déjà résolu dans la prochaine version, ou " "que des informations complémentaires soient attendues (auquel cas votre " -"contribution est la bienvenue !). Pour ce faire, cherchez dans la base de " -"données de bogues grâce à la boîte de recherche en haut de la page." +"contribution est la bienvenue !). Pour ce faire, cherchez dans le " +"gestionnaire de tickets grâce à la boîte de recherche en haut de la page." -#: ../Doc/bugs.rst:54 +#: bugs.rst:55 msgid "" -"If the problem you're reporting is not already in the bug tracker, go back " -"to the Python Bug Tracker and log in. If you don't already have a tracker " -"account, select the \"Register\" link or, if you use OpenID, one of the " -"OpenID provider logos in the sidebar. It is not possible to submit a bug " -"report anonymously." +"If the problem you're reporting is not already in the list, log in to " +"GitHub. If you don't already have a GitHub account, create a new account " +"using the \"Sign up\" link. It is not possible to submit a bug report " +"anonymously." msgstr "" -"Si le problème que vous soumettez n'est pas déjà dans le *bug tracker*, " -"revenez au *Python Bug Tracker* et connectez-vous. Si vous n'avez pas déjà " -"un compte pour le *tracker*, cliquez sur le lien « S'enregistrer », ou, si " -"vous utilisez *OpenID*, sur l'un des logos des fournisseurs *OpenID* dans la " -"barre latérale. Il n'est pas possible de soumettre un rapport de bogue de " -"manière anonyme." +"Si le problème que vous soumettez n'est pas déjà dans la liste, connectez-" +"vous à GitHub. Si vous n'avez pas déjà un compte GitHub, créez un nouveau " +"compte en cliquant sur le lien « Sign Up ». Il n'est pas possible de " +"soumettre un rapport de bogue de manière anonyme." -#: ../Doc/bugs.rst:59 +#: bugs.rst:60 msgid "" -"Being now logged in, you can submit a bug. Select the \"Create New\" link " -"in the sidebar to open the bug reporting form." +"Being now logged in, you can submit an issue. Click on the \"New issue\" " +"button in the top bar to report a new issue." msgstr "" -"Une fois identifié, pour pouvez rapporter un bogue. Sélectionnez le lien " -"*Create New* dans la barre latérale pour ouvrir un nouveau formulaire de " -"rapport de bogue." +"Une fois connecté, vous pouvez rapporter un problème. Sélectionnez le bouton " +"*New issue* dans la barre en haut pour ouvrir un nouveau formulaire de " +"rapport." + +#: bugs.rst:63 +msgid "The submission form has two fields, \"Title\" and \"Comment\"." +msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*." -#: ../Doc/bugs.rst:62 +#: bugs.rst:65 msgid "" -"The submission form has a number of fields. For the \"Title\" field, enter " -"a *very* short description of the problem; less than ten words is good. In " -"the \"Type\" field, select the type of your problem; also select the " -"\"Component\" and \"Versions\" to which the bug relates." +"For the \"Title\" field, enter a *very* short description of the problem; " +"less than ten words is good." msgstr "" -"Le formulaire de soumission a un certain nombre de champs. Pour le champ " -"« Titre », saisissez une *très* courte description du problème ; moins de " -"dix mots est approprié. Dans le champ « Type », sélectionnez le type de " -"problème ; sélectionnez aussi « Composant » et « Versions » en rapport avec " -"le bogue." +"Dans le champ *Title*, entrez une *très* brève description du problème " +"rencontré ; tâchez de vous limiter à dix mots." -#: ../Doc/bugs.rst:67 +#: bugs.rst:68 msgid "" "In the \"Comment\" field, describe the problem in detail, including what you " "expected to happen and what did happen. Be sure to include whether any " @@ -187,17 +189,17 @@ msgstr "" "plateforme matérielle et logicielle vous utilisiez (en incluant les " "informations de versions)." -#: ../Doc/bugs.rst:72 +#: bugs.rst:73 msgid "" -"Each bug report will be assigned to a developer who will determine what " -"needs to be done to correct the problem. You will receive an update each " -"time action is taken on the bug." +"Each issue report will be reviewed by a developer who will determine what " +"needs to be done to correct the problem. You will receive an update each " +"time an action is taken on the issue." msgstr "" -"Chaque bogue sera attribué à un développeur qui déterminera ce qui est " +"Chaque rapport sera attribué à un développeur qui déterminera ce qui est " "nécessaire d'entreprendre pour corriger le problème. Vous recevrez une " -"notification à chaque action effectuée sur le bogue." +"notification à chaque action concernant le rapport." -#: ../Doc/bugs.rst:81 +#: bugs.rst:82 msgid "" "`How to Report Bugs Effectively `_" @@ -205,7 +207,7 @@ msgstr "" "`Comment signaler des bogues de manière efficace `_ (en anglais)" -#: ../Doc/bugs.rst:80 +#: bugs.rst:81 msgid "" "Article which goes into some detail about how to create a useful bug report. " "This describes what kind of information is useful and why it is useful." @@ -214,16 +216,15 @@ msgstr "" "bogue utile. Il décrit quel genre d'information est utile et pourquoi elle " "est utile." -#: ../Doc/bugs.rst:84 -#, fuzzy +#: bugs.rst:85 msgid "" "`Bug Report Writing Guidelines `_" msgstr "" -"`Guide de la rédaction de rapports de bogues `_" +"`Guide pour la rédaction de rapports de bogues `_" -#: ../Doc/bugs.rst:84 +#: bugs.rst:85 msgid "" "Information about writing a good bug report. Some of this is specific to " "the Mozilla project, but describes general good practices." @@ -231,11 +232,11 @@ msgstr "" "Conseils pour écrire un bon rapport de bogue. Certains sont spécifiques au " "projet Mozilla mais présentent des bonnes pratiques générales." -#: ../Doc/bugs.rst:90 +#: bugs.rst:91 msgid "Getting started contributing to Python yourself" msgstr "Commencer à contribuer à Python vous-même" -#: ../Doc/bugs.rst:92 +#: bugs.rst:93 msgid "" "Beyond just reporting bugs that you find, you are also welcome to submit " "patches to fix them. You can find more information on how to get started " @@ -249,3 +250,15 @@ msgstr "" "Developer's Guide`_. Si vous avez des questions, le `core-mentorship mailing " "list`_ est un endroit amical pour obtenir des réponses à toutes les " "questions à propos du processus de corrections de bugs dans Python." + +#~ msgid "" +#~ "The submission form has a number of fields. For the \"Title\" field, " +#~ "enter a *very* short description of the problem; less than ten words is " +#~ "good. In the \"Type\" field, select the type of your problem; also " +#~ "select the \"Component\" and \"Versions\" to which the bug relates." +#~ msgstr "" +#~ "Le formulaire de soumission a un certain nombre de champs. Pour le champ " +#~ "« Titre », saisissez une *très* courte description du problème ; moins de " +#~ "dix mots est approprié. Dans le champ « Type », sélectionnez le type de " +#~ "problème ; sélectionnez aussi « Composant » et « Versions » en rapport " +#~ "avec le bogue." diff --git a/c-api/abstract.po b/c-api/abstract.po index 3b331cf8e6..2b1eec9be2 100644 --- a/c-api/abstract.po +++ b/c-api/abstract.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-01-03 16:57+0100\n" "PO-Revision-Date: 2018-10-17 19:31+0200\n" diff --git a/c-api/allocation.po b/c-api/allocation.po index 381983e068..acecf7fe38 100644 --- a/c-api/allocation.po +++ b/c-api/allocation.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" "PO-Revision-Date: 2018-10-20 21:16+0200\n" diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po index 7eb4425757..c799b2a6b5 100644 --- a/c-api/apiabiversion.po +++ b/c-api/apiabiversion.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/c-api/arg.po b/c-api/arg.po index 83192fd24a..a63a0eae7c 100644 --- a/c-api/arg.po +++ b/c-api/arg.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2018-10-04 12:14+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2023-03-23 10:05+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.2.1\n" -#: ../Doc/c-api/arg.rst:6 +#: c-api/arg.rst:6 msgid "Parsing arguments and building values" msgstr "Analyse des arguments et construction des valeurs" -#: ../Doc/c-api/arg.rst:8 +#: c-api/arg.rst:8 msgid "" "These functions are useful when creating your own extensions functions and " "methods. Additional information and examples are available in :ref:" @@ -29,7 +29,7 @@ msgstr "" "d'extensions. Des informations supplémentaires et des exemples sont " "disponibles ici: :ref:`extending-index`." -#: ../Doc/c-api/arg.rst:12 +#: c-api/arg.rst:12 msgid "" "The first three of these functions described, :c:func:`PyArg_ParseTuple`, :c:" "func:`PyArg_ParseTupleAndKeywords`, and :c:func:`PyArg_Parse`, all use " @@ -43,11 +43,11 @@ msgstr "" "pour indiquer à la fonction les arguments attendus. Les chaînes de format " "utilise la même syntaxe pour chacune de ces fonctions." -#: ../Doc/c-api/arg.rst:19 +#: c-api/arg.rst:19 msgid "Parsing arguments" msgstr "Analyse des arguments" -#: ../Doc/c-api/arg.rst:21 +#: c-api/arg.rst:21 msgid "" "A format string consists of zero or more \"format units.\" A format unit " "describes one Python object; it is usually a single character or a " @@ -68,11 +68,11 @@ msgstr "" "qui correspond à l'unité de format, et l'entrée entre crochets est le type " "de la variable C (ou des variables) dont l'adresse doit être donnée." -#: ../Doc/c-api/arg.rst:31 +#: c-api/arg.rst:31 msgid "Strings and buffers" msgstr "Chaînes et tampons" -#: ../Doc/c-api/arg.rst:33 +#: c-api/arg.rst:33 msgid "" "These formats allow accessing an object as a contiguous chunk of memory. You " "don't have to provide raw storage for the returned unicode or bytes area." @@ -81,15 +81,19 @@ msgstr "" "mémoire contigüe. Il n'est pas nécessaire d'allouer la mémoire pour " "l'*unicode* ou le *bytes* renvoyé." -#: ../Doc/c-api/arg.rst:37 +#: c-api/arg.rst:37 msgid "" "In general, when a format sets a pointer to a buffer, the buffer is managed " "by the corresponding Python object, and the buffer shares the lifetime of " "this object. You won't have to release any memory yourself. The only " "exceptions are ``es``, ``es#``, ``et`` and ``et#``." msgstr "" +"En général, lorsqu'un format définit un pointeur vers un tampon, le tampon " +"est géré par l'objet Python correspondant et le tampon partage la durée de " +"vie de cet objet. vous n'avez pas à libérer de mémoire. Les seules " +"exceptions sont ``es``, ``es#``, ``et`` et ``et#``." -#: ../Doc/c-api/arg.rst:42 +#: c-api/arg.rst:42 msgid "" "However, when a :c:type:`Py_buffer` structure gets filled, the underlying " "buffer is locked so that the caller can subsequently use the buffer even " @@ -106,19 +110,24 @@ msgstr "" "d'appeler** :c:func:`PyBuffer_Release` après avoir terminé de traiter les " "données (ou après une interruption prématurée du traitement de ces données)." -#: ../Doc/c-api/arg.rst:49 +#: c-api/arg.rst:49 msgid "Unless otherwise stated, buffers are not NUL-terminated." msgstr "Sauf indication contraire, les tampons ne se terminent pas par NUL." -#: ../Doc/c-api/arg.rst:51 +#: c-api/arg.rst:51 msgid "" "Some formats require a read-only :term:`bytes-like object`, and set a " "pointer instead of a buffer structure. They work by checking that the " -"object's :c:member:`PyBufferProcs.bf_releasebuffer` field is *NULL*, which " +"object's :c:member:`PyBufferProcs.bf_releasebuffer` field is ``NULL``, which " "disallows mutable objects such as :class:`bytearray`." msgstr "" +"Certains formats requièrent un :term:`objet compatible avec une chaîne " +"d'octets ` en lecture seule, et définissent un pointeur à " +"la place d'une structure tampon. Ils fonctionnent en vérifiant que le champ :" +"c:member:`PyBufferProcs.bf_releasebuffer` de l'objet est *NULL*, ce qui " +"n'autorise pas les objets muables tels que :class:`bytearray`." -#: ../Doc/c-api/arg.rst:58 +#: c-api/arg.rst:58 msgid "" "For all ``#`` variants of formats (``s#``, ``y#``, etc.), the type of the " "length argument (int or :c:type:`Py_ssize_t`) is controlled by defining the " @@ -137,11 +146,11 @@ msgstr "" "`Py_ssize_t` a la place de :c:type:`int`. Il est préférable de toujours " "définir :c:macro:`PY_SSIZE_T_CLEAN`." -#: ../Doc/c-api/arg.rst:85 +#: c-api/arg.rst:85 msgid "``s`` (:class:`str`) [const char \\*]" msgstr "``s`` (:class:`str`) [``const char *``]" -#: ../Doc/c-api/arg.rst:68 +#: c-api/arg.rst:68 msgid "" "Convert a Unicode object to a C pointer to a character string. A pointer to " "an existing string is stored in the character pointer variable whose address " @@ -150,118 +159,164 @@ msgid "" "is raised. Unicode objects are converted to C strings using ``'utf-8'`` " "encoding. If this conversion fails, a :exc:`UnicodeError` is raised." msgstr "" +"Convertit un objet Unicode en un pointeur vers une chaîne de caractères. " +"S'il s'agit d'un pointeur vers une chaîne de caractères déjà existante, il " +"est stocké dans la variable de type pointeur vers un caractère dont vous " +"avez donné l'adresse. Une chaîne de caractères en C se termine par *NULL*. " +"La chaîne de caractères Python ne doit donc pas contenir de caractère dont " +"le code est *null*. Si elle en contient, une exception :exc:`ValueError` est " +"levée. Si la conversion échoue, une :exc:`UnicodeError` est levée." -#: ../Doc/c-api/arg.rst:77 +#: c-api/arg.rst:77 msgid "" "This format does not accept :term:`bytes-like objects `. " "If you want to accept filesystem paths and convert them to C character " "strings, it is preferable to use the ``O&`` format with :c:func:" "`PyUnicode_FSConverter` as *converter*." msgstr "" +"Ce format n'accepte pas les :term:`objets compatibles avec une chaîne " +"d'octets `. Si vous voulez accepter les chemins du " +"système de fichiers et les convertir vers des chaînes de caractères C, il " +"est préférable d'utiliser le format ``O&`` avec :c:func:" +"`PyUnicode_FSConverter` en tant que *converter*." -#: ../Doc/c-api/arg.rst:83 ../Doc/c-api/arg.rst:150 +#: c-api/arg.rst:150 msgid "" "Previously, :exc:`TypeError` was raised when embedded null code points were " "encountered in the Python string." msgstr "" +"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères " +"Python contenait des codes NULL." -#: ../Doc/c-api/arg.rst:91 +#: c-api/arg.rst:91 msgid "``s*`` (:class:`str` or :term:`bytes-like object`) [Py_buffer]" msgstr "``s*`` (:class:`str` ou :term:`bytes-like object`) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:88 +#: c-api/arg.rst:88 msgid "" "This format accepts Unicode objects as well as bytes-like objects. It fills " "a :c:type:`Py_buffer` structure provided by the caller. In this case the " "resulting C string may contain embedded NUL bytes. Unicode objects are " "converted to C strings using ``'utf-8'`` encoding." msgstr "" +"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " +"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " +"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " +"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " +"utilisant l'encodage ``'utf-8'``." -#: ../Doc/c-api/arg.rst:98 +#: c-api/arg.rst:98 msgid "" "``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char \\*, " "int or :c:type:`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:94 +#: c-api/arg.rst:94 msgid "" "Like ``s*``, except that it doesn't accept mutable objects. The result is " "stored into two C variables, the first one a pointer to a C string, the " "second one its length. The string may contain embedded null bytes. Unicode " "objects are converted to C strings using ``'utf-8'`` encoding." msgstr "" +"La même chose que ``s*``, mais n'accepte pas les objets muables. Le résultat " +"est stocké dans deux variables C, la première est un pointeur vers une " +"chaîne de caractères C, la seconde contient sa taille. La chaîne de " +"caractères peut contenir des octets NULL. Les objets Unicode sont convertis " +"vers des chaînes de caractères C utilisant l'encodage ``'utf-8'``." -#: ../Doc/c-api/arg.rst:102 ../Doc/c-api/arg.rst:566 +#: c-api/arg.rst:566 msgid "``z`` (:class:`str` or ``None``) [const char \\*]" msgstr "``z`` (:class:`str` ou ``None``) [``const char *``]" -#: ../Doc/c-api/arg.rst:101 +#: c-api/arg.rst:101 +#, fuzzy msgid "" "Like ``s``, but the Python object may also be ``None``, in which case the C " -"pointer is set to *NULL*." +"pointer is set to ``NULL``." msgstr "" "Comme ``s``, mais l'objet Python peut aussi être ``None``, auquel cas le " "pointeur C devient *NULL*." -#: ../Doc/c-api/arg.rst:106 +#: c-api/arg.rst:106 msgid "" "``z*`` (:class:`str`, :term:`bytes-like object` or ``None``) [Py_buffer]" msgstr "" "``z*`` (:class:`str`, :term:`bytes-like object` ou ``None``) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:105 +#: c-api/arg.rst:105 msgid "" "Like ``s*``, but the Python object may also be ``None``, in which case the " -"``buf`` member of the :c:type:`Py_buffer` structure is set to *NULL*." +"``buf`` member of the :c:type:`Py_buffer` structure is set to ``NULL``." msgstr "" +"Comme ``s*``, mais l'objet Python peut aussi être ``None``, auquel cas le " +"membre ``buf``, dont la structure est :c:type:`Py_buffer` est fixée à *NULL*." -#: ../Doc/c-api/arg.rst:110 +#: c-api/arg.rst:110 +#, fuzzy msgid "" "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " -"[const char \\*, int]" +"[const char \\*, int or :c:type:`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:109 +#: c-api/arg.rst:109 +#, fuzzy msgid "" "Like ``s#``, but the Python object may also be ``None``, in which case the C " -"pointer is set to *NULL*." +"pointer is set to ``NULL``." msgstr "" "Comme ``s#``, mais l'objet Python peut également être ``None``, dans ce cas " "le pointeur C est définie à *NULL*." -#: ../Doc/c-api/arg.rst:120 +#: c-api/arg.rst:120 msgid "``y`` (read-only :term:`bytes-like object`) [const char \\*]" msgstr "" +"``y`` (lecture seule :term:`objet compatible avec une chaîne d'octets `) [constante char \\*]" -#: ../Doc/c-api/arg.rst:113 +#: c-api/arg.rst:113 msgid "" "This format converts a bytes-like object to a C pointer to a character " "string; it does not accept Unicode objects. The bytes buffer must not " "contain embedded null bytes; if it does, a :exc:`ValueError` exception is " "raised." msgstr "" +"Ce format convertit un *objet compatible avec une chaîne d'octets* en un " +"pointeur C vers une chaîne de caractères ; il n'accepte pas les objets " +"Unicode. Le tampon d'octets ne doit pas contenir d'octets *null* ; si c'est " +"le cas, une exception :exc:`ValueError` est levée." -#: ../Doc/c-api/arg.rst:118 +#: c-api/arg.rst:118 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes buffer." msgstr "" +"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient " +"rencontrés dans le tampon d'octets." -#: ../Doc/c-api/arg.rst:125 +#: c-api/arg.rst:125 msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" msgstr "``y*`` (:term:`bytes-like object`) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:123 +#: c-api/arg.rst:123 msgid "" "This variant on ``s*`` doesn't accept Unicode objects, only bytes-like " "objects. **This is the recommended way to accept binary data.**" msgstr "" -#: ../Doc/c-api/arg.rst:129 -msgid "``y#`` (read-only :term:`bytes-like object`) [const char \\*, int]" +#: c-api/arg.rst:129 +#, fuzzy +msgid "" +"``y#`` (read-only :term:`bytes-like object`) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:128 +#: c-api/arg.rst:128 msgid "" "This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " "objects." @@ -269,34 +324,44 @@ msgstr "" "Cette variante de ``s#`` n'accepte pas les objets Unicode, uniquement des " "objets assimilés à des octets." -#: ../Doc/c-api/arg.rst:134 +#: c-api/arg.rst:134 msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]" -#: ../Doc/c-api/arg.rst:132 +#: c-api/arg.rst:132 +#, fuzzy msgid "" "Requires that the Python object is a :class:`bytes` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a " -"bytes object. The C variable may also be declared as :c:type:`PyObject\\*`." +"bytes object. The C variable may also be declared as :c:type:`PyObject*`." msgstr "" +"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté " +"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de " +"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:" +"`PyObject\\*`." -#: ../Doc/c-api/arg.rst:139 +#: c-api/arg.rst:139 msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]" -#: ../Doc/c-api/arg.rst:137 +#: c-api/arg.rst:137 +#, fuzzy msgid "" "Requires that the Python object is a :class:`bytearray` object, without " "attempting any conversion. Raises :exc:`TypeError` if the object is not a :" "class:`bytearray` object. The C variable may also be declared as :c:type:" -"`PyObject\\*`." +"`PyObject*`." msgstr "" +"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté " +"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de " +"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:" +"`PyObject\\*`." -#: ../Doc/c-api/arg.rst:156 +#: c-api/arg.rst:156 msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" msgstr "``u`` (:class:`str`) [``const Py_UNICODE *``]" -#: ../Doc/c-api/arg.rst:142 +#: c-api/arg.rst:142 msgid "" "Convert a Python Unicode object to a C pointer to a NUL-terminated buffer of " "Unicode characters. You must pass the address of a :c:type:`Py_UNICODE` " @@ -306,65 +371,83 @@ msgid "" "Python string must not contain embedded null code points; if it does, a :exc:" "`ValueError` exception is raised." msgstr "" +"Convertit un objet Python Unicode en un pointeur C vers un tampon de " +"caractères Unicode terminé par *NULL*. Vous devez passer l'adresse d'un " +"pointeur :c:type:`Py_UNICODE`, qui sera rempli avec le pointeur vers un " +"tampon Unicode existant. Veuillez noter que la taille d'un :c:type:" +"`Py_UNICODE` dépend des options de compilation (soit 16, soit 32 bits). La " +"chaîne de caractères Python ne doit pas contenir de code *NULL*. Si elle en " +"contient, une exception :exc:`ValueError` est levée." -#: ../Doc/c-api/arg.rst:157 ../Doc/c-api/arg.rst:166 ../Doc/c-api/arg.rst:174 -#: ../Doc/c-api/arg.rst:182 +#: c-api/arg.rst:174 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`) [const Py_UNICODE \\*, int]" +#: c-api/arg.rst:165 +#, fuzzy +msgid "" +"``u#`` (:class:`str`) [const Py_UNICODE \\*, int or :c:type:`Py_ssize_t`]" msgstr "``u#`` (:class:`str`) [``const Py_UNICODE *``, ``int``]" -#: ../Doc/c-api/arg.rst:159 +#: 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:173 +#: c-api/arg.rst:173 msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" msgstr "``Z`` (:class:`str` ou ``None``) [``const Py_UNICODE *``]" -#: ../Doc/c-api/arg.rst:168 +#: c-api/arg.rst:168 +#, fuzzy msgid "" "Like ``u``, but the Python object may also be ``None``, in which case the :c:" -"type:`Py_UNICODE` pointer is set to *NULL*." +"type:`Py_UNICODE` pointer is set to ``NULL``." 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:181 -msgid "``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, int]" +#: c-api/arg.rst:181 +#, fuzzy +msgid "" +"``Z#`` (:class:`str` or ``None``) [const Py_UNICODE \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``Z#`` (:class:`str` ou ``None``) [``const Py_UNICODE *``, ``int``]" -#: ../Doc/c-api/arg.rst:176 +#: c-api/arg.rst:176 +#, fuzzy msgid "" "Like ``u#``, but the Python object may also be ``None``, in which case the :" -"c:type:`Py_UNICODE` pointer is set to *NULL*." +"c:type:`Py_UNICODE` pointer is set to ``NULL``." 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:186 +#: c-api/arg.rst:186 msgid "``U`` (:class:`str`) [PyObject \\*]" msgstr "``U`` (:class:`str`) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:184 +#: c-api/arg.rst:184 +#, fuzzy 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\\*`." +"The C variable may also be declared as :c:type:`PyObject*`." msgstr "" +"Nécessite que l'objet Python soit de type :class:`bytes`, sans avoir tenté " +"de conversion. :exc:`TypeError` est levée si l'objet n'est pas un objet de " +"type *bytes*. La variable C doit aussi être déclarée en tant que :c:type:" +"`PyObject\\*`." -#: ../Doc/c-api/arg.rst:192 +#: c-api/arg.rst:192 msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" msgstr "``w*`` (lecture-écriture :term:`bytes-like object`) [``Py_buffer``]" -#: ../Doc/c-api/arg.rst:189 +#: 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. " @@ -372,29 +455,28 @@ msgid "" "`PyBuffer_Release` when it is done with the buffer." msgstr "" -#: ../Doc/c-api/arg.rst:209 +#: c-api/arg.rst:209 msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" msgstr "" -#: ../Doc/c-api/arg.rst:195 +#: 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:198 +#: 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 " -"a NUL-terminated string, or *NULL*, in which case ``'utf-8'`` encoding is " +"must be a :c:type:`const char*` which points to the name of an encoding as a " +"NUL-terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is " "used. An exception is raised if the named encoding is not known to Python. " -"The second argument must be a :c:type:`char\\*\\*`; the value of the pointer " -"it references will be set to a buffer with the contents of the argument " -"text. The text will be encoded in the encoding specified by the first " -"argument." +"The second argument must be a :c:type:`char**`; the value of the pointer it " +"references will be set to a buffer with the contents of the argument text. " +"The text will be encoded in the encoding specified by the first argument." msgstr "" -#: ../Doc/c-api/arg.rst:206 +#: 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 " @@ -402,68 +484,71 @@ msgid "" "`PyMem_Free` to free the allocated buffer after use." msgstr "" -#: ../Doc/c-api/arg.rst:214 +#: 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:212 +#: 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:245 +#: c-api/arg.rst:245 +#, fuzzy msgid "" -"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, int " -"\\*buffer_length]" +"``es#`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer, int or :c:" +"type:`Py_ssize_t` \\*buffer_length]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:217 +#: 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:221 +#: 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-" -"terminated string, or *NULL*, in which case ``'utf-8'`` encoding is used. An " -"exception is raised if the named encoding is not known to Python. The " -"second argument must be a :c:type:`char\\*\\*`; the value of the pointer it " +"a :c:type:`const char*` which points to the name of an encoding as a NUL-" +"terminated string, or ``NULL``, in which case ``'utf-8'`` encoding is used. " +"An exception is raised if the named encoding is not known to Python. The " +"second argument must be a :c:type:`char**`; the value of the pointer it " "references will be set to a buffer with the contents of the argument text. " "The text will be encoded in the encoding specified by the first argument. " "The third argument must be a pointer to an integer; the referenced integer " "will be set to the number of bytes in the output buffer." msgstr "" -#: ../Doc/c-api/arg.rst:231 +#: c-api/arg.rst:231 msgid "There are two modes of operation:" msgstr "Il existe deux modes de fonctionnement :" -#: ../Doc/c-api/arg.rst:233 +#: 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 *" -"\\*buffer* to reference the newly allocated storage. The caller is " +"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 " +"*\\*buffer* to reference the newly allocated storage. The caller is " "responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " "after usage." msgstr "" -#: ../Doc/c-api/arg.rst:238 +#: c-api/arg.rst:238 msgid "" -"If *\\*buffer* points to a non-*NULL* pointer (an already allocated " +"If *\\*buffer* points to a non-``NULL`` pointer (an already allocated " "buffer), :c:func:`PyArg_ParseTuple` will use this location as the buffer and " "interpret the initial value of *\\*buffer_length* as the buffer size. It " "will then copy the encoded data into the buffer and NUL-terminate it. If " "the buffer is not large enough, a :exc:`ValueError` will be set." msgstr "" -#: ../Doc/c-api/arg.rst:244 +#: 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." @@ -471,28 +556,31 @@ 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:250 +#: c-api/arg.rst:250 +#, fuzzy msgid "" "``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " -"\\*encoding, char \\*\\*buffer, int \\*buffer_length]" +"\\*encoding, char \\*\\*buffer, int or :c:type:`Py_ssize_t` \\*buffer_length]" msgstr "" +"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " +"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" -#: ../Doc/c-api/arg.rst:248 +#: 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:253 +#: c-api/arg.rst:253 msgid "Numbers" msgstr "Les nombres" -#: ../Doc/c-api/arg.rst:257 +#: c-api/arg.rst:257 msgid "``b`` (:class:`int`) [unsigned char]" msgstr "``b`` (:class:`int`) [``unsigned char``]" -#: ../Doc/c-api/arg.rst:256 +#: c-api/arg.rst:256 msgid "" "Convert a nonnegative Python integer to an unsigned tiny int, stored in a C :" "c:type:`unsigned char`." @@ -500,11 +588,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:261 ../Doc/c-api/arg.rst:600 +#: c-api/arg.rst:600 msgid "``B`` (:class:`int`) [unsigned char]" msgstr "``B`` (:class:`int`) [``unsigned char``]" -#: ../Doc/c-api/arg.rst:260 +#: 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`." @@ -512,19 +600,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:264 ../Doc/c-api/arg.rst:594 +#: c-api/arg.rst:594 msgid "``h`` (:class:`int`) [short int]" msgstr "``h`` (:class:`int`) [``short int``]" -#: ../Doc/c-api/arg.rst:264 +#: 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:268 ../Doc/c-api/arg.rst:603 +#: c-api/arg.rst:603 msgid "``H`` (:class:`int`) [unsigned short int]" msgstr "``H`` (:class:`int`) [``unsigned short int``]" -#: ../Doc/c-api/arg.rst:267 +#: c-api/arg.rst:267 msgid "" "Convert a Python integer to a C :c:type:`unsigned short int`, without " "overflow checking." @@ -532,19 +620,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:271 ../Doc/c-api/arg.rst:588 +#: c-api/arg.rst:588 msgid "``i`` (:class:`int`) [int]" msgstr "``i`` (:class:`int`) [``int``]" -#: ../Doc/c-api/arg.rst:271 +#: 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:275 ../Doc/c-api/arg.rst:606 +#: c-api/arg.rst:606 msgid "``I`` (:class:`int`) [unsigned int]" msgstr "``I`` (:class:`int`) [``unsigned int``]" -#: ../Doc/c-api/arg.rst:274 +#: c-api/arg.rst:274 msgid "" "Convert a Python integer to a C :c:type:`unsigned int`, without overflow " "checking." @@ -552,19 +640,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:278 ../Doc/c-api/arg.rst:597 +#: c-api/arg.rst:597 msgid "``l`` (:class:`int`) [long int]" msgstr "``l`` (:class:`int`) [``long int``]" -#: ../Doc/c-api/arg.rst:278 +#: 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:282 ../Doc/c-api/arg.rst:609 +#: c-api/arg.rst:609 msgid "``k`` (:class:`int`) [unsigned long]" msgstr "``k`` (:class:`int`) [``unsigned long``]" -#: ../Doc/c-api/arg.rst:281 +#: c-api/arg.rst:281 msgid "" "Convert a Python integer to a C :c:type:`unsigned long` without overflow " "checking." @@ -572,37 +660,41 @@ msgstr "" "Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier " "le débordement." -#: ../Doc/c-api/arg.rst:285 ../Doc/c-api/arg.rst:612 +#: c-api/arg.rst:612 msgid "``L`` (:class:`int`) [long long]" msgstr "``L`` (:class:`int`) [``long long``]" -#: ../Doc/c-api/arg.rst:285 +#: c-api/arg.rst:285 +#, fuzzy msgid "Convert a Python integer to a C :c:type:`long long`." -msgstr "" +msgstr "Convertit un entier Python en un :c:type:`long int`." -#: ../Doc/c-api/arg.rst:289 ../Doc/c-api/arg.rst:615 +#: c-api/arg.rst:615 msgid "``K`` (:class:`int`) [unsigned long long]" msgstr "``K`` (:class:`int`) [``unsigned long long``]" -#: ../Doc/c-api/arg.rst:288 +#: c-api/arg.rst:288 +#, fuzzy msgid "" "Convert a Python integer to a C :c:type:`unsigned long long` without " "overflow checking." msgstr "" +"Convertit un entier Python en un :c:type:`unsigned long` C sans en vérifier " +"le débordement." -#: ../Doc/c-api/arg.rst:292 ../Doc/c-api/arg.rst:618 +#: c-api/arg.rst:618 msgid "``n`` (:class:`int`) [Py_ssize_t]" msgstr "``n`` (:class:`int`) [``Py_ssize_t``]" -#: ../Doc/c-api/arg.rst:292 +#: c-api/arg.rst:292 msgid "Convert a Python integer to a C :c:type:`Py_ssize_t`." -msgstr "Convertit un entier Python en un :c:type:`short int` C." +msgstr "Convertit un entier Python en un :c:type:`Py_ssize_t`." -#: ../Doc/c-api/arg.rst:299 +#: c-api/arg.rst:299 msgid "``c`` (:class:`bytes` or :class:`bytearray` of length 1) [char]" msgstr "``c`` (:class:`bytes` ou :class:`bytearray` de longueur 1) [``char``]" -#: ../Doc/c-api/arg.rst:295 +#: 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`." @@ -610,15 +702,15 @@ msgstr "" "Convertit un *byte* 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:298 +#: c-api/arg.rst:298 msgid "Allow :class:`bytearray` objects." msgstr "" -#: ../Doc/c-api/arg.rst:303 ../Doc/c-api/arg.rst:626 +#: c-api/arg.rst:626 msgid "``C`` (:class:`str` of length 1) [int]" msgstr "``C`` (:class:`str` de longueur 1) [``int``]" -#: ../Doc/c-api/arg.rst:302 +#: 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`." @@ -626,104 +718,105 @@ 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:306 ../Doc/c-api/arg.rst:632 +#: c-api/arg.rst:632 msgid "``f`` (:class:`float`) [float]" msgstr "``f`` (:class:`float`) [``float``]" -#: ../Doc/c-api/arg.rst:306 +#: 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:309 ../Doc/c-api/arg.rst:629 +#: c-api/arg.rst:629 msgid "``d`` (:class:`float`) [double]" msgstr "``d`` (:class:`float`) [``double``]" -#: ../Doc/c-api/arg.rst:309 +#: 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:312 +#: c-api/arg.rst:312 msgid "``D`` (:class:`complex`) [Py_complex]" msgstr "``D`` (:class:`complex`) [``Py_complex``]" -#: ../Doc/c-api/arg.rst:312 +#: 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:315 +#: c-api/arg.rst:315 msgid "Other objects" msgstr "Autres objets" -#: ../Doc/c-api/arg.rst:320 ../Doc/c-api/arg.rst:643 +#: c-api/arg.rst:643 msgid "``O`` (object) [PyObject \\*]" msgstr "``O`` (objet) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:318 +#: c-api/arg.rst:318 +#, fuzzy 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 " -"reference count is not increased. The pointer stored is not *NULL*." +"reference count is not increased. The pointer stored is not ``NULL``." msgstr "" "Stocke un objet Python (sans aucune conversion) en un pointeur sur un objet " "C. Ainsi, Le programme C reçoit l'objet réel qui a été passé. Le compteur de " "référence sur l'objet n'est pas incrémenté. Le pointeur stocké n'est pas " "*NULL*." -#: ../Doc/c-api/arg.rst:327 +#: c-api/arg.rst:327 msgid "``O!`` (object) [*typeobject*, PyObject \\*]" msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]" -#: ../Doc/c-api/arg.rst:323 +#: 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 " -"second is the address of the C variable (of type :c:type:`PyObject\\*`) into " +"second is the address of the C variable (of type :c:type:`PyObject*`) into " "which the object pointer is stored. If the Python object does not have the " "required type, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/c-api/arg.rst:352 ../Doc/c-api/arg.rst:657 +#: c-api/arg.rst:657 msgid "``O&`` (object) [*converter*, *anything*]" msgstr "``O&`` (objet) [*converter*, *anything*]" -#: ../Doc/c-api/arg.rst:332 +#: 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 " -"of a C variable (of arbitrary type), converted to :c:type:`void \\*`. The " +"of a C variable (of arbitrary type), converted to :c:type:`void *`. The " "*converter* function in turn is called as follows::" msgstr "" -#: ../Doc/c-api/arg.rst:339 +#: 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\\*` " +"type:`void*` argument that was passed to the :c:func:`PyArg_Parse\\*` " "function. The returned *status* should be ``1`` for a successful conversion " "and ``0`` if the conversion has failed. When the conversion fails, the " "*converter* function should raise an exception and leave the content of " "*address* unmodified." msgstr "" -#: ../Doc/c-api/arg.rst:345 +#: 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 " "chance to release any memory that it had already allocated. In this second " -"call, the *object* parameter will be NULL; *address* will have the same " +"call, the *object* parameter will be ``NULL``; *address* will have the same " "value as in the original call." msgstr "" -#: ../Doc/c-api/arg.rst:351 +#: c-api/arg.rst:351 msgid "``Py_CLEANUP_SUPPORTED`` was added." msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté." -#: ../Doc/c-api/arg.rst:361 +#: c-api/arg.rst:361 msgid "``p`` (:class:`bool`) [int]" msgstr "``p`` (:class:`bool`) [``int``]" -#: ../Doc/c-api/arg.rst:355 +#: 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 " @@ -732,11 +825,11 @@ msgid "" "how Python tests values for truth." msgstr "" -#: ../Doc/c-api/arg.rst:366 ../Doc/c-api/arg.rst:660 +#: c-api/arg.rst:660 msgid "``(items)`` (:class:`tuple`) [*matching-items*]" msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:364 +#: 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 " @@ -747,7 +840,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:368 +#: 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 --- " @@ -756,7 +849,7 @@ msgid "" "downcasts in C --- your mileage may vary)." msgstr "" -#: ../Doc/c-api/arg.rst:374 +#: 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:" @@ -764,11 +857,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:382 +#: c-api/arg.rst:382 msgid "``|``" msgstr "``|``" -#: ../Doc/c-api/arg.rst:378 +#: 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 " @@ -777,11 +870,11 @@ msgid "" "corresponding C variable(s)." msgstr "" -#: ../Doc/c-api/arg.rst:391 +#: c-api/arg.rst:391 msgid "``$``" msgstr "``$``" -#: ../Doc/c-api/arg.rst:385 +#: 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 " @@ -789,22 +882,22 @@ msgid "" "be specified before ``$`` in the format string." msgstr "" -#: ../Doc/c-api/arg.rst:396 +#: c-api/arg.rst:396 msgid "``:``" msgstr "" -#: ../Doc/c-api/arg.rst:394 +#: 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:401 +#: c-api/arg.rst:401 msgid "``;``" msgstr "" -#: ../Doc/c-api/arg.rst:399 +#: 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 ``;" @@ -814,7 +907,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:403 +#: 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!" @@ -823,7 +916,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:406 +#: 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 " @@ -840,7 +933,7 @@ msgstr "" "devraient correspondre à ce qui est spécifié pour l'unité de format " "correspondante." -#: ../Doc/c-api/arg.rst:412 +#: 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\\*` " @@ -851,52 +944,52 @@ msgid "" "untouched." msgstr "" -#: ../Doc/c-api/arg.rst:421 +#: c-api/arg.rst:421 msgid "API Functions" msgstr "Fonction de l'API" -#: ../Doc/c-api/arg.rst:425 +#: 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:432 +#: 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:438 +#: 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*-" +"parameters into local variables. The *keywords* argument is a ``NULL``-" "terminated array of keyword parameter names. Empty names denote :ref:" "`positional-only parameters `. Returns true on " "success; on failure, it returns false and raises the appropriate exception." msgstr "" -#: ../Doc/c-api/arg.rst:445 +#: c-api/arg.rst:445 msgid "" "Added support for :ref:`positional-only parameters `." msgstr "" -#: ../Doc/c-api/arg.rst:452 +#: 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:458 +#: 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:468 +#: 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 " @@ -907,7 +1000,7 @@ msgid "" "continue to be used for that purpose." msgstr "" -#: ../Doc/c-api/arg.rst:479 +#: 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 " @@ -916,40 +1009,39 @@ msgid "" "should be passed as *args*; it must actually be a tuple. The length of the " "tuple must be at least *min* and no more than *max*; *min* and *max* may be " "equal. Additional arguments must be passed to the function, each of which " -"should be a pointer to a :c:type:`PyObject\\*` variable; these will be " -"filled in with the values from *args*; they will contain borrowed " -"references. The variables which correspond to optional parameters not given " -"by *args* will not be filled in; these should be initialized by the caller. " -"This function returns true on success and false if *args* is not a tuple or " -"contains the wrong number of elements; an exception will be set if there was " -"a failure." +"should be a pointer to a :c:type:`PyObject*` variable; these will be filled " +"in with the values from *args*; they will contain borrowed references. The " +"variables which correspond to optional parameters not given by *args* will " +"not be filled in; these should be initialized by the caller. This function " +"returns true on success and false if *args* is not a tuple or contains the " +"wrong number of elements; an exception will be set if there was a failure." msgstr "" -#: ../Doc/c-api/arg.rst:493 +#: 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:509 +#: 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:517 +#: c-api/arg.rst:517 msgid "Building values" msgstr "Construction des valeurs" -#: ../Doc/c-api/arg.rst:521 +#: 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. " -"Returns the value or *NULL* in the case of an error; an exception will be " -"raised if *NULL* is returned." +"Returns the value or ``NULL`` in the case of an error; an exception will be " +"raised if ``NULL`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:526 +#: 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 " @@ -958,7 +1050,7 @@ msgid "" "it to return a tuple of size 0 or one, parenthesize the format string." msgstr "" -#: ../Doc/c-api/arg.rst:532 +#: 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. " @@ -969,7 +1061,7 @@ msgid "" "`Py_BuildValue` returns." msgstr "" -#: ../Doc/c-api/arg.rst:540 +#: 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 " @@ -977,252 +1069,279 @@ msgid "" "be passed." msgstr "" -#: ../Doc/c-api/arg.rst:544 +#: 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:550 +#: c-api/arg.rst:550 msgid "``s`` (:class:`str` or ``None``) [const char \\*]" msgstr "``s`` (:class:`str` ou ``None``) [``const char *``]" -#: ../Doc/c-api/arg.rst:549 +#: 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." +"``'utf-8'`` encoding. If the C string pointer is ``NULL``, ``None`` is used." msgstr "" -#: ../Doc/c-api/arg.rst:555 -msgid "``s#`` (:class:`str` or ``None``) [const char \\*, int]" +#: c-api/arg.rst:555 +#, fuzzy +msgid "" +"``s#`` (:class:`str` or ``None``) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``s#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" -#: ../Doc/c-api/arg.rst:553 +#: 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 " +"``'utf-8'`` encoding. If the C string pointer is ``NULL``, the length is " "ignored and ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:559 +#: c-api/arg.rst:559 msgid "``y`` (:class:`bytes`) [const char \\*]" msgstr "``y`` (:class:`bytes`) [``const char *``]" -#: ../Doc/c-api/arg.rst:558 +#: 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." +"pointer is ``NULL``, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:563 -msgid "``y#`` (:class:`bytes`) [const char \\*, int]" +#: c-api/arg.rst:563 +#, fuzzy +msgid "``y#`` (:class:`bytes`) [const char \\*, int or :c:type:`Py_ssize_t`]" msgstr "``y#`` (:class:`bytes`) [``const char *, int``]" -#: ../Doc/c-api/arg.rst:562 +#: 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." +"string pointer is ``NULL``, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:566 ../Doc/c-api/arg.rst:582 +#: c-api/arg.rst:582 msgid "Same as ``s``." msgstr "" -#: ../Doc/c-api/arg.rst:569 -msgid "``z#`` (:class:`str` or ``None``) [const char \\*, int]" +#: c-api/arg.rst:569 +#, fuzzy +msgid "" +"``z#`` (:class:`str` or ``None``) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``z#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" -#: ../Doc/c-api/arg.rst:569 ../Doc/c-api/arg.rst:585 +#: c-api/arg.rst:585 msgid "Same as ``s#``." msgstr "" -#: ../Doc/c-api/arg.rst:574 +#: c-api/arg.rst:574 msgid "``u`` (:class:`str`) [const wchar_t \\*]" msgstr "``u`` (:class:`str`) [``const wchar_t *``]" -#: ../Doc/c-api/arg.rst:572 +#: c-api/arg.rst:572 msgid "" "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." +"``NULL``, ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:579 -msgid "``u#`` (:class:`str`) [const wchar_t \\*, int]" +#: c-api/arg.rst:579 +#, fuzzy +msgid "``u#`` (:class:`str`) [const wchar_t \\*, int or :c:type:`Py_ssize_t`]" msgstr "``u#`` (:class:`str`) [``const wchar_t *``, ``int``]" -#: ../Doc/c-api/arg.rst:577 +#: c-api/arg.rst:577 msgid "" "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 " +"Unicode object. If the Unicode buffer pointer is ``NULL``, the length is " "ignored and ``None`` is returned." msgstr "" -#: ../Doc/c-api/arg.rst:582 +#: c-api/arg.rst:582 msgid "``U`` (:class:`str` or ``None``) [const char \\*]" msgstr "``U`` (:class:`str` ou ``None``) [``const char *``]" -#: ../Doc/c-api/arg.rst:585 -msgid "``U#`` (:class:`str` or ``None``) [const char \\*, int]" +#: c-api/arg.rst:585 +#, fuzzy +msgid "" +"``U#`` (:class:`str` or ``None``) [const char \\*, int or :c:type:" +"`Py_ssize_t`]" msgstr "``U#`` (:class:`str` ou ``None``) [``const char *``, ``int``]" -#: ../Doc/c-api/arg.rst:588 +#: c-api/arg.rst:588 +#, fuzzy msgid "Convert a plain C :c:type:`int` to a Python integer object." -msgstr "" +msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:591 +#: c-api/arg.rst:591 msgid "``b`` (:class:`int`) [char]" msgstr "``b`` (:class:`int`) [``char``]" -#: ../Doc/c-api/arg.rst:591 +#: c-api/arg.rst:591 msgid "Convert a plain C :c:type:`char` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:594 +#: 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:597 +#: 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:600 +#: c-api/arg.rst:600 msgid "Convert a C :c:type:`unsigned char` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:603 +#: 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:606 +#: c-api/arg.rst:606 +#, fuzzy msgid "Convert a C :c:type:`unsigned int` to a Python integer object." -msgstr "" +msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:609 +#: c-api/arg.rst:609 msgid "Convert a C :c:type:`unsigned long` to a Python integer object." msgstr "" -#: ../Doc/c-api/arg.rst:612 +#: c-api/arg.rst:612 +#, fuzzy msgid "Convert a C :c:type:`long long` to a Python integer object." -msgstr "" +msgstr "Convertit un :c:type:`long int` en un *int* Python." -#: ../Doc/c-api/arg.rst:615 +#: 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:618 +#: c-api/arg.rst:618 msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." msgstr "" -#: ../Doc/c-api/arg.rst:622 +#: 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:621 +#: 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:625 +#: 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:629 +#: c-api/arg.rst:629 msgid "Convert a C :c:type:`double` to a Python floating point number." msgstr "" -#: ../Doc/c-api/arg.rst:632 +#: c-api/arg.rst:632 msgid "Convert a C :c:type:`float` to a Python floating point number." msgstr "" -#: ../Doc/c-api/arg.rst:635 +#: c-api/arg.rst:635 msgid "``D`` (:class:`complex`) [Py_complex \\*]" msgstr "``D`` (:class:`complex`) [``Py_complex *``]" -#: ../Doc/c-api/arg.rst:635 +#: 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:638 +#: 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 " +"incremented by one). If the object passed in is a ``NULL`` pointer, it is " "assumed that this was caused because the call producing the argument found " "an error and set an exception. Therefore, :c:func:`Py_BuildValue` will " -"return *NULL* but won't raise an exception. If no exception has been raised " -"yet, :exc:`SystemError` is set." +"return ``NULL`` but won't raise an exception. If no exception has been " +"raised yet, :exc:`SystemError` is set." msgstr "" -#: ../Doc/c-api/arg.rst:646 +#: c-api/arg.rst:646 msgid "``S`` (object) [PyObject \\*]" msgstr "``S`` (objet) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:646 +#: c-api/arg.rst:646 msgid "Same as ``O``." msgstr "" -#: ../Doc/c-api/arg.rst:651 +#: c-api/arg.rst:651 msgid "``N`` (object) [PyObject \\*]" msgstr "``N`` (objet) [``PyObject *``]" -#: ../Doc/c-api/arg.rst:649 +#: 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:654 +#: 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:" -"`void \\*`) as its argument and should return a \"new\" Python object, or " -"*NULL* if an error occurred." +"`void*`) as its argument and should return a \"new\" Python object, or " +"``NULL`` if an error occurred." msgstr "" -#: ../Doc/c-api/arg.rst:660 +#: 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:663 +#: c-api/arg.rst:663 msgid "``[items]`` (:class:`list`) [*matching-items*]" msgstr "``[items]`` (:class:`list`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:663 +#: 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:668 +#: c-api/arg.rst:668 msgid "``{items}`` (:class:`dict`) [*matching-items*]" msgstr "``{items}`` (:class:`dict`) [*matching-items*]" -#: ../Doc/c-api/arg.rst:666 +#: 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:670 +#: c-api/arg.rst:670 msgid "" "If there is an error in the format string, the :exc:`SystemError` exception " -"is set and *NULL* returned." +"is set and ``NULL`` returned." msgstr "" -#: ../Doc/c-api/arg.rst:675 +#: 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." msgstr "" +#~ msgid "" +#~ "``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " +#~ "[const char \\*, int]" +#~ msgstr "" +#~ "``z#`` (:class:`str`, :term:`objet compatible avec une chaîne d'octets " +#~ "` en lecture seule ou ``None``) [constante char \\*, " +#~ "entier]" + +#~ msgid "``y#`` (read-only :term:`bytes-like object`) [const char \\*, int]" +#~ msgstr "" +#~ "``y#`` (lecture seule :term:`objet compatible avec une chaîne d'octets " +#~ "`) [constante char \\*, entier]" + #~ msgid "``s`` (:class:`str` or ``None``) [char \\*]" #~ msgstr "``s`` (:class:`str` ou ``None``) [char \\*]" diff --git a/c-api/bool.po b/c-api/bool.po index 21654bebc0..075d55f17d 100644 --- a/c-api/bool.po +++ b/c-api/bool.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/c-api/buffer.po b/c-api/buffer.po index f85aea3558..f8fed66c4f 100644 --- a/c-api/buffer.po +++ b/c-api/buffer.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-04 12:18+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/c-api/buffer.rst:11 +#: c-api/buffer.rst:11 msgid "Buffer Protocol" msgstr "Protocole tampon" -#: ../Doc/c-api/buffer.rst:18 +#: c-api/buffer.rst:18 msgid "" "Certain objects available in Python wrap access to an underlying memory " "array or *buffer*. Such objects include the built-in :class:`bytes` and :" @@ -34,7 +34,7 @@ msgstr "" "bibliothèques tierces peuvent définir leurs propres types à des fins " "spéciales, telles que le traitement d'image ou l'analyse numérique." -#: ../Doc/c-api/buffer.rst:24 +#: c-api/buffer.rst:24 msgid "" "While each of these types have their own semantics, they share the common " "characteristic of being backed by a possibly large memory buffer. It is " @@ -46,7 +46,7 @@ msgstr "" "Il est donc souhaitable, dans certains cas, d'accéder à cette mémoire " "directement sans l'étape intermédiaire de copie." -#: ../Doc/c-api/buffer.rst:29 +#: c-api/buffer.rst:29 msgid "" "Python provides such a facility at the C level in the form of the :ref:" "`buffer protocol `. This protocol has two sides:" @@ -54,7 +54,7 @@ msgstr "" "Python fournit une telle facilité au niveau du C sous la forme de :ref:" "`protocole tampon `. Ce protocole comporte deux aspects :" -#: ../Doc/c-api/buffer.rst:34 +#: c-api/buffer.rst:34 msgid "" "on the producer side, a type can export a \"buffer interface\" which allows " "objects of that type to expose information about their underlying buffer. " @@ -65,7 +65,7 @@ msgstr "" "tampon sous-jacent. Cette interface est décrite dans la section :ref:`buffer-" "structs` ;" -#: ../Doc/c-api/buffer.rst:38 +#: c-api/buffer.rst:38 msgid "" "on the consumer side, several means are available to obtain a pointer to the " "raw underlying data of an object (for example a method parameter)." @@ -74,7 +74,7 @@ msgstr "" "pointeur vers les données sous-jacentes brutes d'un objet (par exemple un " "paramètre de méthode)." -#: ../Doc/c-api/buffer.rst:41 +#: c-api/buffer.rst:41 msgid "" "Simple objects such as :class:`bytes` and :class:`bytearray` expose their " "underlying buffer in byte-oriented form. Other forms are possible; for " @@ -86,7 +86,7 @@ msgstr "" "possibles ; par exemple, les éléments exposés par un :class:`array.array` " "peuvent être des valeurs multi-octets." -#: ../Doc/c-api/buffer.rst:45 +#: c-api/buffer.rst:45 msgid "" "An example consumer of the buffer interface is the :meth:`~io.BufferedIOBase." "write` method of file objects: any object that can export a series of bytes " @@ -107,7 +107,7 @@ msgstr "" "rejeter sélectivement l'exportation de tampons en mode lecture-écriture et " "en mode lecture seule." -#: ../Doc/c-api/buffer.rst:53 +#: c-api/buffer.rst:53 msgid "" "There are two ways for a consumer of the buffer interface to acquire a " "buffer over a target object:" @@ -115,11 +115,11 @@ msgstr "" "Un consommateur de l'interface tampon peut acquérir un tampon sur un objet " "cible de deux manières :" -#: ../Doc/c-api/buffer.rst:56 +#: c-api/buffer.rst:56 msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" msgstr "appelez :c:func:`PyObject_GetBuffer` avec les paramètres appropriés ;" -#: ../Doc/c-api/buffer.rst:58 +#: c-api/buffer.rst:58 msgid "" "call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " "``y*``, ``w*`` or ``s*`` :ref:`format codes `." @@ -127,7 +127,7 @@ msgstr "" "appelez :c:func:`PyArg_ParseTuple` (ou l'un de ses fonctions sœurs) avec " "l'un des ``y*``, ``w*`` ou ``s*`` :ref:`format codes `." -#: ../Doc/c-api/buffer.rst:61 +#: c-api/buffer.rst:61 msgid "" "In both cases, :c:func:`PyBuffer_Release` must be called when the buffer " "isn't needed anymore. Failure to do so could lead to various issues such as " @@ -137,11 +137,11 @@ msgstr "" "tampon n'est plus nécessaire. Ne pas le faire peut conduire à divers " "problèmes tels que des fuites de ressources." -#: ../Doc/c-api/buffer.rst:69 +#: c-api/buffer.rst:69 msgid "Buffer structure" msgstr "La structure *buffer*" -#: ../Doc/c-api/buffer.rst:71 +#: c-api/buffer.rst:71 msgid "" "Buffer structures (or simply \"buffers\") are useful as a way to expose the " "binary data from another object to the Python programmer. They can also be " @@ -163,7 +163,7 @@ msgstr "" "être utilisé pour transmettre des données structurées dans son format natif " "en mémoire." -#: ../Doc/c-api/buffer.rst:80 +#: c-api/buffer.rst:80 msgid "" "Contrary to most data types exposed by the Python interpreter, buffers are " "not :c:type:`PyObject` pointers but rather simple C structures. This allows " @@ -178,14 +178,14 @@ msgstr "" "(*wrapper* en anglais) pour un tampon, un objet :ref:`memoryview ` peut être créé." -#: ../Doc/c-api/buffer.rst:86 +#: c-api/buffer.rst:86 msgid "" "For short instructions how to write an exporting object, see :ref:`Buffer " "Object Structures `. For obtaining a buffer, see :c:func:" "`PyObject_GetBuffer`." msgstr "" -#: ../Doc/c-api/buffer.rst:94 +#: c-api/buffer.rst:94 msgid "" "A pointer to the start of the logical structure described by the buffer " "fields. This can be any location within the underlying physical memory block " @@ -193,28 +193,28 @@ msgid "" "the value may point to the end of the memory block." msgstr "" -#: ../Doc/c-api/buffer.rst:99 +#: c-api/buffer.rst:99 msgid "" "For :term:`contiguous` arrays, the value points to the beginning of the " "memory block." msgstr "" -#: ../Doc/c-api/buffer.rst:104 +#: c-api/buffer.rst:104 msgid "" "A new reference to the exporting object. The reference is owned by the " -"consumer and automatically decremented and set to *NULL* by :c:func:" +"consumer and automatically decremented and set to ``NULL`` by :c:func:" "`PyBuffer_Release`. The field is the equivalent of the return value of any " "standard C-API function." msgstr "" -#: ../Doc/c-api/buffer.rst:109 +#: c-api/buffer.rst:109 msgid "" "As a special case, for *temporary* buffers that are wrapped by :c:func:" "`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this field is " -"*NULL*. In general, exporting objects MUST NOT use this scheme." +"``NULL``. In general, exporting objects MUST NOT use this scheme." msgstr "" -#: ../Doc/c-api/buffer.rst:116 +#: c-api/buffer.rst:116 msgid "" "``product(shape) * itemsize``. For contiguous arrays, this is the length of " "the underlying memory block. For non-contiguous arrays, it is the length " @@ -222,7 +222,7 @@ msgid "" "representation." msgstr "" -#: ../Doc/c-api/buffer.rst:121 +#: c-api/buffer.rst:121 msgid "" "Accessing ``((char *)buf)[0] up to ((char *)buf)[len-1]`` is only valid if " "the buffer has been obtained by a request that guarantees contiguity. In " @@ -230,67 +230,67 @@ msgid "" "`PyBUF_WRITABLE`." msgstr "" -#: ../Doc/c-api/buffer.rst:127 +#: c-api/buffer.rst:127 msgid "" "An indicator of whether the buffer is read-only. This field is controlled by " "the :c:macro:`PyBUF_WRITABLE` flag." msgstr "" -#: ../Doc/c-api/buffer.rst:132 +#: c-api/buffer.rst:132 msgid "" "Item size in bytes of a single element. Same as the value of :func:`struct." -"calcsize` called on non-NULL :c:member:`~Py_buffer.format` values." +"calcsize` called on non-``NULL`` :c:member:`~Py_buffer.format` values." msgstr "" -#: ../Doc/c-api/buffer.rst:135 +#: c-api/buffer.rst:135 msgid "" "Important exception: If a consumer requests a buffer without the :c:macro:" -"`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set to *NULL*, " -"but :c:member:`~Py_buffer.itemsize` still has the value for the original " -"format." +"`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set to " +"``NULL``, but :c:member:`~Py_buffer.itemsize` still has the value for the " +"original format." msgstr "" -#: ../Doc/c-api/buffer.rst:140 +#: c-api/buffer.rst:140 msgid "" "If :c:member:`~Py_buffer.shape` is present, the equality ``product(shape) * " "itemsize == len`` still holds and the consumer can use :c:member:`~Py_buffer." "itemsize` to navigate the buffer." msgstr "" -#: ../Doc/c-api/buffer.rst:144 +#: c-api/buffer.rst:144 msgid "" -"If :c:member:`~Py_buffer.shape` is *NULL* as a result of a :c:macro:" +"If :c:member:`~Py_buffer.shape` is ``NULL`` as a result of a :c:macro:" "`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the consumer must " "disregard :c:member:`~Py_buffer.itemsize` and assume ``itemsize == 1``." msgstr "" -#: ../Doc/c-api/buffer.rst:150 +#: c-api/buffer.rst:150 msgid "" "A *NUL* terminated string in :mod:`struct` module style syntax describing " -"the contents of a single item. If this is *NULL*, ``\"B\"`` (unsigned bytes) " -"is assumed." +"the contents of a single item. If this is ``NULL``, ``\"B\"`` (unsigned " +"bytes) is assumed." msgstr "" -#: ../Doc/c-api/buffer.rst:154 +#: c-api/buffer.rst:154 msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." msgstr "" -#: ../Doc/c-api/buffer.rst:158 +#: c-api/buffer.rst:158 msgid "" "The number of dimensions the memory represents as an n-dimensional array. If " "it is ``0``, :c:member:`~Py_buffer.buf` points to a single item representing " "a scalar. In this case, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer." -"strides` and :c:member:`~Py_buffer.suboffsets` MUST be *NULL*." +"strides` and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``." msgstr "" -#: ../Doc/c-api/buffer.rst:163 +#: c-api/buffer.rst:163 msgid "" "The macro :c:macro:`PyBUF_MAX_NDIM` limits the maximum number of dimensions " "to 64. Exporters MUST respect this limit, consumers of multi-dimensional " "buffers SHOULD be able to handle up to :c:macro:`PyBUF_MAX_NDIM` dimensions." msgstr "" -#: ../Doc/c-api/buffer.rst:169 +#: c-api/buffer.rst:169 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "indicating the shape of the memory as an n-dimensional array. Note that " @@ -298,34 +298,34 @@ msgid "" "`~Py_buffer.len`." msgstr "" -#: ../Doc/c-api/buffer.rst:174 +#: c-api/buffer.rst:174 msgid "" "Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " "requires special attention. See `complex arrays`_ for further information." msgstr "" -#: ../Doc/c-api/buffer.rst:178 +#: c-api/buffer.rst:178 msgid "The shape array is read-only for the consumer." msgstr "" -#: ../Doc/c-api/buffer.rst:182 +#: c-api/buffer.rst:182 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " "giving the number of bytes to skip to get to a new element in each dimension." msgstr "" -#: ../Doc/c-api/buffer.rst:186 +#: c-api/buffer.rst:186 msgid "" "Stride values can be any integer. For regular arrays, strides are usually " "positive, but a consumer MUST be able to handle the case ``strides[n] <= " "0``. See `complex arrays`_ for further information." msgstr "" -#: ../Doc/c-api/buffer.rst:190 +#: c-api/buffer.rst:190 msgid "The strides array is read-only for the consumer." msgstr "" -#: ../Doc/c-api/buffer.rst:194 +#: c-api/buffer.rst:194 msgid "" "An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`. If " "``suboffsets[n] >= 0``, the values stored along the nth dimension are " @@ -334,24 +334,24 @@ msgid "" "that no de-referencing should occur (striding in a contiguous memory block)." msgstr "" -#: ../Doc/c-api/buffer.rst:201 +#: c-api/buffer.rst:201 msgid "" "If all suboffsets are negative (i.e. no de-referencing is needed), then this " -"field must be NULL (the default value)." +"field must be ``NULL`` (the default value)." msgstr "" -#: ../Doc/c-api/buffer.rst:204 +#: c-api/buffer.rst:204 msgid "" "This type of array representation is used by the Python Imaging Library " "(PIL). See `complex arrays`_ for further information how to access elements " "of such an array." msgstr "" -#: ../Doc/c-api/buffer.rst:208 +#: c-api/buffer.rst:208 msgid "The suboffsets array is read-only for the consumer." msgstr "" -#: ../Doc/c-api/buffer.rst:212 +#: c-api/buffer.rst:212 msgid "" "This is for use internally by the exporting object. For example, this might " "be re-cast as an integer by the exporter and used to store flags about " @@ -359,11 +359,11 @@ msgid "" "the buffer is released. The consumer MUST NOT alter this value." msgstr "" -#: ../Doc/c-api/buffer.rst:221 +#: c-api/buffer.rst:221 msgid "Buffer request types" msgstr "" -#: ../Doc/c-api/buffer.rst:223 +#: c-api/buffer.rst:223 msgid "" "Buffers are usually obtained by sending a buffer request to an exporting " "object via :c:func:`PyObject_GetBuffer`. Since the complexity of the logical " @@ -371,16 +371,16 @@ msgid "" "argument to specify the exact buffer type it can handle." msgstr "" -#: ../Doc/c-api/buffer.rst:228 +#: c-api/buffer.rst:228 msgid "" "All :c:data:`Py_buffer` fields are unambiguously defined by the request type." msgstr "" -#: ../Doc/c-api/buffer.rst:232 +#: c-api/buffer.rst:232 msgid "request-independent fields" msgstr "" -#: ../Doc/c-api/buffer.rst:233 +#: c-api/buffer.rst:233 msgid "" "The following fields are not influenced by *flags* and must always be filled " "in with the correct values: :c:member:`~Py_buffer.obj`, :c:member:" @@ -388,11 +388,11 @@ msgid "" "itemsize`, :c:member:`~Py_buffer.ndim`." msgstr "" -#: ../Doc/c-api/buffer.rst:239 +#: c-api/buffer.rst:239 msgid "readonly, format" msgstr "" -#: ../Doc/c-api/buffer.rst:243 +#: c-api/buffer.rst:243 msgid "" "Controls the :c:member:`~Py_buffer.readonly` field. If set, the exporter " "MUST provide a writable buffer or else report failure. Otherwise, the " @@ -400,13 +400,13 @@ msgid "" "MUST be consistent for all consumers." msgstr "" -#: ../Doc/c-api/buffer.rst:250 +#: c-api/buffer.rst:250 msgid "" "Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " -"filled in correctly. Otherwise, this field MUST be *NULL*." +"filled in correctly. Otherwise, this field MUST be ``NULL``." msgstr "" -#: ../Doc/c-api/buffer.rst:254 +#: c-api/buffer.rst:254 msgid "" ":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " "section. Since :c:macro:`PyBUF_SIMPLE` is defined as 0, :c:macro:" @@ -414,180 +414,165 @@ msgid "" "writable buffer." msgstr "" -#: ../Doc/c-api/buffer.rst:258 +#: c-api/buffer.rst:258 msgid "" ":c:macro:`PyBUF_FORMAT` can be \\|'d to any of the flags except :c:macro:" "`PyBUF_SIMPLE`. The latter already implies format ``B`` (unsigned bytes)." msgstr "" -#: ../Doc/c-api/buffer.rst:263 +#: c-api/buffer.rst:263 msgid "shape, strides, suboffsets" msgstr "" -#: ../Doc/c-api/buffer.rst:265 +#: c-api/buffer.rst:265 msgid "" "The flags that control the logical structure of the memory are listed in " "decreasing order of complexity. Note that each flag contains all bits of the " "flags below it." msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "Request" msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "shape" msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "strides" msgstr "" -#: ../Doc/c-api/buffer.rst:272 ../Doc/c-api/buffer.rst:296 -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:296 c-api/buffer.rst:321 msgid "suboffsets" msgstr "" -#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:276 -#: ../Doc/c-api/buffer.rst:278 ../Doc/c-api/buffer.rst:298 -#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 -#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:323 -#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 -#: ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:276 c-api/buffer.rst:298 c-api/buffer.rst:302 +#: c-api/buffer.rst:323 c-api/buffer.rst:327 c-api/buffer.rst:331 +#: c-api/buffer.rst:335 c-api/buffer.rst:337 msgid "yes" msgstr "oui" -#: ../Doc/c-api/buffer.rst:274 ../Doc/c-api/buffer.rst:323 -#: ../Doc/c-api/buffer.rst:325 +#: c-api/buffer.rst:323 c-api/buffer.rst:325 msgid "if needed" -msgstr "" +msgstr "si nécessaire" -#: ../Doc/c-api/buffer.rst:276 ../Doc/c-api/buffer.rst:278 -#: ../Doc/c-api/buffer.rst:280 ../Doc/c-api/buffer.rst:298 -#: ../Doc/c-api/buffer.rst:300 ../Doc/c-api/buffer.rst:302 -#: ../Doc/c-api/buffer.rst:304 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:329 ../Doc/c-api/buffer.rst:331 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:335 -#: ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:278 c-api/buffer.rst:298 c-api/buffer.rst:302 +#: c-api/buffer.rst:327 c-api/buffer.rst:331 c-api/buffer.rst:335 +#: c-api/buffer.rst:337 msgid "NULL" msgstr "" -#: ../Doc/c-api/buffer.rst:287 +#: c-api/buffer.rst:287 msgid "contiguity requests" msgstr "" -#: ../Doc/c-api/buffer.rst:289 +#: c-api/buffer.rst:289 msgid "" "C or Fortran :term:`contiguity ` can be explicitly requested, " "with and without stride information. Without stride information, the buffer " "must be C-contiguous." msgstr "" -#: ../Doc/c-api/buffer.rst:296 ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:321 msgid "contig" msgstr "" -#: ../Doc/c-api/buffer.rst:298 ../Doc/c-api/buffer.rst:304 -#: ../Doc/c-api/buffer.rst:335 ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:304 c-api/buffer.rst:337 msgid "C" msgstr "" -#: ../Doc/c-api/buffer.rst:300 +#: c-api/buffer.rst:300 msgid "F" msgstr "F" -#: ../Doc/c-api/buffer.rst:302 +#: c-api/buffer.rst:302 msgid "C or F" msgstr "" -#: ../Doc/c-api/buffer.rst:309 +#: c-api/buffer.rst:304 +msgid ":c:macro:`PyBUF_ND`" +msgstr "" + +#: c-api/buffer.rst:309 msgid "compound requests" msgstr "" -#: ../Doc/c-api/buffer.rst:311 +#: c-api/buffer.rst:311 msgid "" "All possible requests are fully defined by some combination of the flags in " "the previous section. For convenience, the buffer protocol provides " "frequently used combinations as single flags." msgstr "" -#: ../Doc/c-api/buffer.rst:315 +#: c-api/buffer.rst:315 msgid "" "In the following table *U* stands for undefined contiguity. The consumer " "would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." msgstr "" -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:321 msgid "readonly" -msgstr "" +msgstr "lecture seule" -#: ../Doc/c-api/buffer.rst:321 +#: c-api/buffer.rst:321 msgid "format" msgstr "format" -#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:325 -#: ../Doc/c-api/buffer.rst:327 ../Doc/c-api/buffer.rst:329 -#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:333 +#: c-api/buffer.rst:325 c-api/buffer.rst:329 c-api/buffer.rst:333 msgid "U" msgstr "" -#: ../Doc/c-api/buffer.rst:323 ../Doc/c-api/buffer.rst:327 -#: ../Doc/c-api/buffer.rst:331 ../Doc/c-api/buffer.rst:335 +#: c-api/buffer.rst:327 c-api/buffer.rst:335 msgid "0" msgstr "0" -#: ../Doc/c-api/buffer.rst:325 ../Doc/c-api/buffer.rst:329 -#: ../Doc/c-api/buffer.rst:333 ../Doc/c-api/buffer.rst:337 +#: c-api/buffer.rst:329 c-api/buffer.rst:337 msgid "1 or 0" -msgstr "" +msgstr "0 ou 1" -#: ../Doc/c-api/buffer.rst:342 +#: c-api/buffer.rst:342 msgid "Complex arrays" msgstr "" -#: ../Doc/c-api/buffer.rst:345 +#: c-api/buffer.rst:345 msgid "NumPy-style: shape and strides" msgstr "" -#: ../Doc/c-api/buffer.rst:347 +#: c-api/buffer.rst:347 msgid "" "The logical structure of NumPy-style arrays is defined by :c:member:" "`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer." "shape` and :c:member:`~Py_buffer.strides`." msgstr "" -#: ../Doc/c-api/buffer.rst:350 +#: c-api/buffer.rst:350 msgid "" "If ``ndim == 0``, the memory location pointed to by :c:member:`~Py_buffer." "buf` is interpreted as a scalar of size :c:member:`~Py_buffer.itemsize`. In " "that case, both :c:member:`~Py_buffer.shape` and :c:member:`~Py_buffer." -"strides` are *NULL*." +"strides` are ``NULL``." msgstr "" -#: ../Doc/c-api/buffer.rst:354 +#: c-api/buffer.rst:354 msgid "" -"If :c:member:`~Py_buffer.strides` is *NULL*, the array is interpreted as a " +"If :c:member:`~Py_buffer.strides` is ``NULL``, the array is interpreted as a " "standard n-dimensional C-array. Otherwise, the consumer must access an n-" "dimensional array as follows:" msgstr "" -#: ../Doc/c-api/buffer.rst:364 +#: c-api/buffer.rst:364 msgid "" "As noted above, :c:member:`~Py_buffer.buf` can point to any location within " "the actual memory block. An exporter can check the validity of a buffer with " "this function:" msgstr "" -#: ../Doc/c-api/buffer.rst:398 +#: c-api/buffer.rst:398 msgid "PIL-style: shape, strides and suboffsets" msgstr "" -#: ../Doc/c-api/buffer.rst:400 +#: c-api/buffer.rst:400 msgid "" "In addition to the regular items, PIL-style arrays can contain pointers that " "must be followed in order to get to the next element in a dimension. For " @@ -598,42 +583,40 @@ msgid "" "x[2][3]`` arrays that can be located anywhere in memory." msgstr "" -#: ../Doc/c-api/buffer.rst:409 +#: c-api/buffer.rst:409 msgid "" "Here is a function that returns a pointer to the element in an N-D array " -"pointed to by an N-dimensional index when there are both non-NULL strides " -"and suboffsets::" +"pointed to by an N-dimensional index when there are both non-``NULL`` " +"strides and suboffsets::" msgstr "" -#: ../Doc/c-api/buffer.rst:428 +#: c-api/buffer.rst:428 msgid "Buffer-related functions" msgstr "Fonctions relatives aux tampons" -#: ../Doc/c-api/buffer.rst:432 +#: c-api/buffer.rst:432 msgid "" "Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " "``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " "will succeed. This function always succeeds." msgstr "" -#: ../Doc/c-api/buffer.rst:439 +#: c-api/buffer.rst:439 msgid "" "Send a request to *exporter* to fill in *view* as specified by *flags*. If " "the exporter cannot provide a buffer of the exact type, it MUST raise :c:" -"data:`PyExc_BufferError`, set :c:member:`view->obj` to *NULL* and return " -"``-1``." +"data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." msgstr "" -#: ../Doc/c-api/buffer.rst:444 +#: c-api/buffer.rst:444 msgid "" -"On success, fill in *view*, set :c:member:`view->obj` to a new reference to " +"On success, fill in *view*, set ``view->obj`` to a new reference to " "*exporter* and return 0. In the case of chained buffer providers that " -"redirect requests to a single object, :c:member:`view->obj` MAY refer to " -"this object instead of *exporter* (See :ref:`Buffer Object Structures " -"`)." +"redirect requests to a single object, ``view->obj`` MAY refer to this object " +"instead of *exporter* (See :ref:`Buffer Object Structures `)." msgstr "" -#: ../Doc/c-api/buffer.rst:449 +#: c-api/buffer.rst:449 msgid "" "Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " "to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` and :c:func:" @@ -641,26 +624,26 @@ msgid "" "`PyBuffer_Release` must be called exactly once." msgstr "" -#: ../Doc/c-api/buffer.rst:457 +#: c-api/buffer.rst:457 msgid "" -"Release the buffer *view* and decrement the reference count for :c:member:" -"`view->obj`. This function MUST be called when the buffer is no longer being " +"Release the buffer *view* and decrement the reference count for ``view-" +">obj``. This function MUST be called when the buffer is no longer being " "used, otherwise reference leaks may occur." msgstr "" -#: ../Doc/c-api/buffer.rst:461 +#: c-api/buffer.rst:461 msgid "" "It is an error to call this function on a buffer that was not obtained via :" "c:func:`PyObject_GetBuffer`." msgstr "" -#: ../Doc/c-api/buffer.rst:467 +#: c-api/buffer.rst:467 msgid "" "Return the implied :c:data:`~Py_buffer.itemsize` from :c:data:`~Py_buffer." "format`. This function is not yet implemented." msgstr "" -#: ../Doc/c-api/buffer.rst:473 +#: c-api/buffer.rst:473 msgid "" "Return ``1`` if the memory defined by the *view* is C-style (*order* is " "``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " @@ -668,61 +651,61 @@ msgid "" "succeeds." msgstr "" -#: ../Doc/c-api/buffer.rst:480 +#: c-api/buffer.rst:480 msgid "" "Get the memory area pointed to by the *indices* inside the given *view*. " "*indices* must point to an array of ``view->ndim`` indices." msgstr "" -#: ../Doc/c-api/buffer.rst:486 +#: c-api/buffer.rst:486 msgid "" "Copy contiguous *len* bytes from *buf* to *view*. *fort* 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:493 +#: c-api/buffer.rst:493 msgid "" "Copy *len* bytes from *src* to its contiguous representation in *buf*. " "*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " "ordering or either one). ``0`` is returned on success, ``-1`` on error." msgstr "" -#: ../Doc/c-api/buffer.rst:497 +#: c-api/buffer.rst:497 msgid "This function fails if *len* != *src->len*." msgstr "" -#: ../Doc/c-api/buffer.rst:502 +#: c-api/buffer.rst:502 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:509 +#: c-api/buffer.rst:509 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:513 +#: c-api/buffer.rst:513 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:517 +#: c-api/buffer.rst:517 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``;" +"On success, set ``view->obj`` to a new reference to *exporter* and return 0. " +"Otherwise, raise :c:data:`PyExc_BufferError`, set ``view->obj`` to ``NULL`` " +"and return ``-1``;" msgstr "" -#: ../Doc/c-api/buffer.rst:521 +#: c-api/buffer.rst:521 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 " -"unmodified. Otherwise, *exporter* MUST be NULL." +"unmodified. Otherwise, *exporter* MUST be ``NULL``." msgstr "" diff --git a/c-api/bytearray.po b/c-api/bytearray.po index 4b31162886..467059a382 100644 --- a/c-api/bytearray.po +++ b/c-api/bytearray.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-10-04 12:21+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -67,10 +67,10 @@ msgstr "" #: ../Doc/c-api/bytearray.rst:50 msgid "" "Create a new bytearray object from *string* and its length, *len*. On " -"failure, *NULL* is returned." +"failure, ``NULL`` is returned." msgstr "" "Crée un nouvel objet ``bytearray`` à partir d'un objet *string* et de sa " -"longueur, *len*. En cas d'échec, *NULL* est renvoyé." +"longueur, *len*. En cas d'échec, ``NULL`` est renvoyé." #: ../Doc/c-api/bytearray.rst:56 msgid "" @@ -80,19 +80,19 @@ msgstr "" "avec le résultat." #: ../Doc/c-api/bytearray.rst:61 -msgid "Return the size of *bytearray* after checking for a *NULL* pointer." +msgid "Return the size of *bytearray* after checking for a ``NULL`` pointer." msgstr "" "Renvoie la taille de *bytearray* après vérification de la présence d'un " -"pointeur *NULL*." +"pointeur ``NULL``." #: ../Doc/c-api/bytearray.rst:66 msgid "" "Return the contents of *bytearray* as a char array after checking for a " -"*NULL* pointer. The returned array always has an extra null byte appended." +"``NULL`` pointer. The returned array always has an extra null byte appended." msgstr "" "Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en " -"vérifiant que ce n'est pas un pointeur *NULL*. Le tableau renvoyé se termine " -"toujours par un octet *null*." +"vérifiant que ce n'est pas un pointeur ``NULL``. Le tableau renvoyé a " +"toujours un caractère *null* rajouté." #: ../Doc/c-api/bytearray.rst:73 msgid "Resize the internal buffer of *bytearray* to *len*." diff --git a/c-api/bytes.po b/c-api/bytes.po index 5554f0483e..aa61904d17 100644 --- a/c-api/bytes.po +++ b/c-api/bytes.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-07-03 11:50+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,53 +14,64 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/bytes.rst:6 +#: c-api/bytes.rst:6 msgid "Bytes Objects" msgstr "Objets *bytes*" -#: ../Doc/c-api/bytes.rst:8 +#: c-api/bytes.rst:8 msgid "" "These functions raise :exc:`TypeError` when expecting a bytes parameter and " "are called with a non-bytes parameter." msgstr "" -#: ../Doc/c-api/bytes.rst:16 +#: c-api/bytes.rst:16 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python bytes object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/bytes.rst:21 +#: c-api/bytes.rst:21 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python bytes type; it " "is the same object as :class:`bytes` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type Python " +"*bytearray*, c'est le même que :class:`bytearray` côté Python." -#: ../Doc/c-api/bytes.rst:27 +#: c-api/bytes.rst:27 +#, fuzzy msgid "" "Return true if the object *o* is a bytes object or an instance of a subtype " "of the bytes type." msgstr "" +"Renvoie vrai si l'objet *o* est un ``bytearray`` ou une instance d'un sous-" +"type du type ``bytearray``." -#: ../Doc/c-api/bytes.rst:33 +#: c-api/bytes.rst:33 +#, fuzzy msgid "" "Return true if the object *o* is a bytes object, but not an instance of a " "subtype of the bytes type." msgstr "" +"Renvoie vrai si l'objet *o* est un ``bytearray``, mais pas une instance d'un " +"sous-type du type ``bytearray``." -#: ../Doc/c-api/bytes.rst:39 +#: c-api/bytes.rst:39 msgid "" "Return a new bytes object with a copy of the string *v* as value on success, " -"and *NULL* on failure. The parameter *v* must not be *NULL*; it will not be " -"checked." +"and ``NULL`` on failure. The parameter *v* must not be ``NULL``; it will " +"not be checked." msgstr "" -#: ../Doc/c-api/bytes.rst:46 +#: c-api/bytes.rst:46 msgid "" "Return a new bytes object with a copy of the string *v* as value and length " -"*len* on success, and *NULL* on failure. If *v* is *NULL*, the contents of " -"the bytes object are uninitialized." +"*len* on success, and ``NULL`` on failure. If *v* is ``NULL``, the contents " +"of the bytes object are uninitialized." msgstr "" -#: ../Doc/c-api/bytes.rst:53 +#: c-api/bytes.rst:53 msgid "" "Take a C :c:func:`printf`\\ -style *format* string and a variable number of " "arguments, calculate the size of the resulting Python bytes object and " @@ -70,187 +81,187 @@ msgid "" "allowed:" msgstr "" -#: ../Doc/c-api/bytes.rst:68 +#: c-api/bytes.rst:68 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" -#: ../Doc/c-api/bytes.rst:68 +#: c-api/bytes.rst:68 msgid "Type" msgstr "Type" -#: ../Doc/c-api/bytes.rst:68 +#: c-api/bytes.rst:68 +#, fuzzy msgid "Comment" -msgstr "" +msgstr "Commentaires" -#: ../Doc/c-api/bytes.rst:70 +#: c-api/bytes.rst:70 msgid ":attr:`%%`" -msgstr "" +msgstr ":attr:`%%`" -#: ../Doc/c-api/bytes.rst:70 +#: c-api/bytes.rst:70 msgid "*n/a*" msgstr "" -#: ../Doc/c-api/bytes.rst:70 +#: c-api/bytes.rst:70 msgid "The literal % character." msgstr "" -#: ../Doc/c-api/bytes.rst:72 +#: c-api/bytes.rst:72 msgid ":attr:`%c`" -msgstr "" +msgstr ":attr:`%c`" -#: ../Doc/c-api/bytes.rst:72 ../Doc/c-api/bytes.rst:75 -#: ../Doc/c-api/bytes.rst:93 ../Doc/c-api/bytes.rst:96 +#: c-api/bytes.rst:75 c-api/bytes.rst:96 msgid "int" msgstr "*int*" -#: ../Doc/c-api/bytes.rst:72 +#: c-api/bytes.rst:72 msgid "A single byte, represented as a C int." msgstr "" -#: ../Doc/c-api/bytes.rst:75 +#: c-api/bytes.rst:75 msgid ":attr:`%d`" -msgstr "" +msgstr ":attr:`%d`" -#: ../Doc/c-api/bytes.rst:75 +#: c-api/bytes.rst:75 msgid "Equivalent to ``printf(\"%d\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:78 +#: c-api/bytes.rst:78 msgid ":attr:`%u`" -msgstr "" +msgstr ":attr:`%u`" -#: ../Doc/c-api/bytes.rst:78 +#: c-api/bytes.rst:78 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/bytes.rst:78 +#: c-api/bytes.rst:78 msgid "Equivalent to ``printf(\"%u\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:81 +#: c-api/bytes.rst:81 msgid ":attr:`%ld`" -msgstr "" +msgstr ":attr:`%ld`" -#: ../Doc/c-api/bytes.rst:81 +#: c-api/bytes.rst:81 msgid "long" msgstr "" -#: ../Doc/c-api/bytes.rst:81 +#: c-api/bytes.rst:81 msgid "Equivalent to ``printf(\"%ld\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:84 +#: c-api/bytes.rst:84 msgid ":attr:`%lu`" -msgstr "" +msgstr ":attr:`%lu`" -#: ../Doc/c-api/bytes.rst:84 +#: c-api/bytes.rst:84 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/bytes.rst:84 +#: c-api/bytes.rst:84 msgid "Equivalent to ``printf(\"%lu\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:87 +#: c-api/bytes.rst:87 msgid ":attr:`%zd`" -msgstr "" +msgstr ":attr:`%zd`" -#: ../Doc/c-api/bytes.rst:87 +#: c-api/bytes.rst:87 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/bytes.rst:87 +#: c-api/bytes.rst:87 msgid "Equivalent to ``printf(\"%zd\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:90 +#: c-api/bytes.rst:90 msgid ":attr:`%zu`" -msgstr "" +msgstr ":attr:`%zu`" -#: ../Doc/c-api/bytes.rst:90 +#: c-api/bytes.rst:90 msgid "size_t" msgstr "" -#: ../Doc/c-api/bytes.rst:90 +#: c-api/bytes.rst:90 msgid "Equivalent to ``printf(\"%zu\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:93 +#: c-api/bytes.rst:93 msgid ":attr:`%i`" -msgstr "" +msgstr ":attr:`%i`" -#: ../Doc/c-api/bytes.rst:93 +#: c-api/bytes.rst:93 msgid "Equivalent to ``printf(\"%i\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:96 +#: c-api/bytes.rst:96 msgid ":attr:`%x`" -msgstr "" +msgstr ":attr:`%x`" -#: ../Doc/c-api/bytes.rst:96 +#: c-api/bytes.rst:96 msgid "Equivalent to ``printf(\"%x\")``. [1]_" msgstr "" -#: ../Doc/c-api/bytes.rst:99 +#: c-api/bytes.rst:99 msgid ":attr:`%s`" -msgstr "" +msgstr ":attr:`%s`" -#: ../Doc/c-api/bytes.rst:99 +#: c-api/bytes.rst:99 msgid "const char\\*" msgstr "" -#: ../Doc/c-api/bytes.rst:99 +#: c-api/bytes.rst:99 msgid "A null-terminated C character array." msgstr "" -#: ../Doc/c-api/bytes.rst:102 +#: c-api/bytes.rst:102 msgid ":attr:`%p`" -msgstr "" +msgstr ":attr:`%p`" -#: ../Doc/c-api/bytes.rst:102 +#: c-api/bytes.rst:102 msgid "const void\\*" msgstr "" -#: ../Doc/c-api/bytes.rst:102 +#: c-api/bytes.rst:102 msgid "" -"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p" -"\")`` except that it is guaranteed to start with the literal ``0x`` " -"regardless of what the platform's ``printf`` yields." +"The hex representation of a C pointer. Mostly equivalent to " +"``printf(\"%p\")`` except that it is guaranteed to start with the literal " +"``0x`` regardless of what the platform's ``printf`` yields." msgstr "" -#: ../Doc/c-api/bytes.rst:111 +#: c-api/bytes.rst:111 msgid "" "An unrecognized format character causes all the rest of the format string to " "be copied as-is to the result object, and any extra arguments discarded." msgstr "" -#: ../Doc/c-api/bytes.rst:114 +#: c-api/bytes.rst:114 msgid "" "For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag " "has effect even when a precision is given." msgstr "" -#: ../Doc/c-api/bytes.rst:120 +#: c-api/bytes.rst:120 msgid "" "Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " "arguments." msgstr "" -#: ../Doc/c-api/bytes.rst:126 +#: c-api/bytes.rst:126 msgid "" "Return the bytes representation of object *o* that implements the buffer " "protocol." msgstr "" -#: ../Doc/c-api/bytes.rst:132 +#: c-api/bytes.rst:132 msgid "Return the length of the bytes in bytes object *o*." msgstr "" -#: ../Doc/c-api/bytes.rst:137 +#: c-api/bytes.rst:137 msgid "Macro form of :c:func:`PyBytes_Size` but without error checking." msgstr "" -#: ../Doc/c-api/bytes.rst:142 +#: c-api/bytes.rst:142 msgid "" "Return a pointer to the contents of *o*. The pointer refers to the internal " "buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " @@ -258,26 +269,27 @@ msgid "" "bytes. The data must not be modified in any way, unless the object was just " "created using ``PyBytes_FromStringAndSize(NULL, size)``. It must not be " "deallocated. If *o* is not a bytes object at all, :c:func:" -"`PyBytes_AsString` returns *NULL* and raises :exc:`TypeError`." +"`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/bytes.rst:154 +#: c-api/bytes.rst:154 msgid "Macro form of :c:func:`PyBytes_AsString` but without error checking." msgstr "" -#: ../Doc/c-api/bytes.rst:159 +#: c-api/bytes.rst:159 msgid "" "Return the null-terminated contents of the object *obj* through the output " "variables *buffer* and *length*." msgstr "" -#: ../Doc/c-api/bytes.rst:162 +#: c-api/bytes.rst:162 msgid "" -"If *length* is *NULL*, the bytes object may not contain embedded null bytes; " -"if it does, the function returns ``-1`` and a :exc:`ValueError` is raised." +"If *length* is ``NULL``, the bytes object may not contain embedded null " +"bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " +"raised." msgstr "" -#: ../Doc/c-api/bytes.rst:166 +#: c-api/bytes.rst:166 msgid "" "The buffer refers to an internal buffer of *obj*, which includes an " "additional null byte at the end (not counted in *length*). The data must " @@ -287,29 +299,29 @@ msgid "" "returns ``-1`` and raises :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/bytes.rst:173 +#: c-api/bytes.rst:173 msgid "" "Previously, :exc:`TypeError` was raised when embedded null bytes were " "encountered in the bytes object." msgstr "" -#: ../Doc/c-api/bytes.rst:180 +#: c-api/bytes.rst:180 msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " "appended to *bytes*; the caller will own the new reference. The reference " "to the old value of *bytes* will be stolen. If the new object cannot be " "created, the old reference to *bytes* will still be discarded and the value " -"of *\\*bytes* will be set to *NULL*; the appropriate exception will be set." +"of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set." msgstr "" -#: ../Doc/c-api/bytes.rst:189 +#: c-api/bytes.rst:189 msgid "" "Create a new bytes object in *\\*bytes* containing the contents of *newpart* " "appended to *bytes*. This version decrements the reference count of " "*newpart*." msgstr "" -#: ../Doc/c-api/bytes.rst:196 +#: c-api/bytes.rst:196 msgid "" "A way to resize a bytes object even though it is \"immutable\". Only use " "this to build up a brand new bytes object; don't use this if the bytes may " @@ -318,7 +330,7 @@ msgid "" "address of an existing bytes object as an lvalue (it may be written into), " "and the new size desired. On success, *\\*bytes* holds the resized bytes " "object and ``0`` is returned; the address in *\\*bytes* may differ from its " -"input value. If the reallocation fails, the original bytes object at *" -"\\*bytes* is deallocated, *\\*bytes* is set to *NULL*, :exc:`MemoryError` is " -"set, and ``-1`` is returned." +"input value. If the reallocation fails, the original bytes object at " +"*\\*bytes* is deallocated, *\\*bytes* is set to ``NULL``, :exc:`MemoryError` " +"is set, and ``-1`` is returned." msgstr "" diff --git a/c-api/capsule.po b/c-api/capsule.po index f2fa76d99d..a5811d8ac5 100644 --- a/c-api/capsule.po +++ b/c-api/capsule.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,125 +14,125 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/capsule.rst:6 +#: c-api/capsule.rst:6 msgid "Capsules" msgstr "Capsules" -#: ../Doc/c-api/capsule.rst:10 +#: c-api/capsule.rst:10 msgid "" "Refer to :ref:`using-capsules` for more information on using these objects." msgstr "" "Reportez-vous à :ref:`using-capsules` pour plus d'informations sur " "l'utilisation de ces objets." -#: ../Doc/c-api/capsule.rst:17 +#: c-api/capsule.rst:17 msgid "" "This subtype of :c:type:`PyObject` represents an opaque value, useful for C " -"extension modules who need to pass an opaque value (as a :c:type:`void\\*` " +"extension modules who need to pass an opaque value (as a :c:type:`void*` " "pointer) through Python code to other C code. It is often used to make a C " "function pointer defined in one module available to other modules, so the " "regular import mechanism can be used to access C APIs defined in dynamically " "loaded modules." msgstr "" -#: ../Doc/c-api/capsule.rst:27 +#: c-api/capsule.rst:27 msgid "The type of a destructor callback for a capsule. Defined as::" msgstr "" -#: ../Doc/c-api/capsule.rst:31 +#: c-api/capsule.rst:31 msgid "" "See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " "callbacks." msgstr "" -#: ../Doc/c-api/capsule.rst:37 +#: c-api/capsule.rst:37 msgid "Return true if its argument is a :c:type:`PyCapsule`." msgstr "" -#: ../Doc/c-api/capsule.rst:42 +#: c-api/capsule.rst:42 msgid "" "Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " -"argument may not be *NULL*." +"argument may not be ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:45 -msgid "On failure, set an exception and return *NULL*." +#: c-api/capsule.rst:45 +msgid "On failure, set an exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:47 +#: c-api/capsule.rst:47 msgid "" -"The *name* string may either be *NULL* or a pointer to a valid C string. If " -"non-*NULL*, this string must outlive the capsule. (Though it is permitted " -"to free it inside the *destructor*.)" +"The *name* string may either be ``NULL`` or a pointer to a valid C string. " +"If non-``NULL``, this string must outlive the capsule. (Though it is " +"permitted to free it inside the *destructor*.)" msgstr "" -#: ../Doc/c-api/capsule.rst:51 +#: c-api/capsule.rst:51 msgid "" -"If the *destructor* argument is not *NULL*, it will be called with the " +"If the *destructor* argument is not ``NULL``, it will be called with the " "capsule as its argument when it is destroyed." msgstr "" -#: ../Doc/c-api/capsule.rst:54 +#: c-api/capsule.rst:54 msgid "" "If this capsule will be stored as an attribute of a module, the *name* " "should be specified as ``modulename.attributename``. This will enable other " "modules to import the capsule using :c:func:`PyCapsule_Import`." msgstr "" -#: ../Doc/c-api/capsule.rst:61 +#: c-api/capsule.rst:61 msgid "" "Retrieve the *pointer* stored in the capsule. On failure, set an exception " -"and return *NULL*." +"and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:64 +#: c-api/capsule.rst:64 msgid "" "The *name* parameter must compare exactly to the name stored in the capsule. " -"If the name stored in the capsule is *NULL*, the *name* passed in must also " -"be *NULL*. Python uses the C function :c:func:`strcmp` to compare capsule " -"names." +"If the name stored in the capsule is ``NULL``, the *name* passed in must " +"also be ``NULL``. Python uses the C function :c:func:`strcmp` to compare " +"capsule names." msgstr "" -#: ../Doc/c-api/capsule.rst:72 +#: c-api/capsule.rst:72 msgid "" "Return the current destructor stored in the capsule. On failure, set an " -"exception and return *NULL*." +"exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:75 +#: c-api/capsule.rst:75 msgid "" -"It is legal for a capsule to have a *NULL* destructor. This makes a *NULL* " -"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" -"`PyErr_Occurred` to disambiguate." +"It is legal for a capsule to have a ``NULL`` destructor. This makes a " +"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :" +"c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/capsule.rst:82 +#: c-api/capsule.rst:82 msgid "" "Return the current context stored in the capsule. On failure, set an " -"exception and return *NULL*." +"exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:85 +#: c-api/capsule.rst:85 msgid "" -"It is legal for a capsule to have a *NULL* context. This makes a *NULL* " +"It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " "return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" "`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/capsule.rst:92 +#: c-api/capsule.rst:92 msgid "" "Return the current name stored in the capsule. On failure, set an exception " -"and return *NULL*." +"and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:95 +#: c-api/capsule.rst:95 msgid "" -"It is legal for a capsule to have a *NULL* name. This makes a *NULL* return " -"code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" +"It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " +"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` or :c:func:" "`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/capsule.rst:102 +#: c-api/capsule.rst:102 msgid "" "Import a pointer to a C object from a capsule attribute in a module. The " "*name* parameter should specify the full name to the attribute, as in " @@ -142,57 +142,56 @@ msgid "" "import the module conventionally (using :c:func:`PyImport_ImportModule`)." msgstr "" -#: ../Doc/c-api/capsule.rst:109 +#: c-api/capsule.rst:109 msgid "" "Return the capsule's internal *pointer* on success. On failure, set an " -"exception and return *NULL*." +"exception and return ``NULL``." msgstr "" -#: ../Doc/c-api/capsule.rst:115 +#: c-api/capsule.rst:115 msgid "" "Determines whether or not *capsule* is a valid capsule. A valid capsule is " -"non-*NULL*, passes :c:func:`PyCapsule_CheckExact`, has a non-*NULL* pointer " -"stored in it, and its internal name matches the *name* parameter. (See :c:" -"func:`PyCapsule_GetPointer` for information on how capsule names are " +"non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " +"pointer stored in it, and its internal name matches the *name* parameter. " +"(See :c:func:`PyCapsule_GetPointer` for information on how capsule names are " "compared.)" msgstr "" -#: ../Doc/c-api/capsule.rst:121 +#: c-api/capsule.rst:121 msgid "" "In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " "to any of the accessors (any function starting with :c:func:`PyCapsule_Get`) " "are guaranteed to succeed." msgstr "" -#: ../Doc/c-api/capsule.rst:125 +#: c-api/capsule.rst:125 msgid "" "Return a nonzero value if the object is valid and matches the name passed " "in. Return ``0`` otherwise. This function will not fail." msgstr "" -#: ../Doc/c-api/capsule.rst:131 +#: c-api/capsule.rst:131 msgid "Set the context pointer inside *capsule* to *context*." msgstr "" -#: ../Doc/c-api/capsule.rst:133 ../Doc/c-api/capsule.rst:140 -#: ../Doc/c-api/capsule.rst:149 ../Doc/c-api/capsule.rst:157 +#: c-api/capsule.rst:140 c-api/capsule.rst:157 msgid "" "Return ``0`` on success. Return nonzero and set an exception on failure." msgstr "" -#: ../Doc/c-api/capsule.rst:138 +#: c-api/capsule.rst:138 msgid "Set the destructor inside *capsule* to *destructor*." msgstr "" -#: ../Doc/c-api/capsule.rst:145 +#: c-api/capsule.rst:145 msgid "" -"Set the name inside *capsule* to *name*. If non-*NULL*, the name must " +"Set the name inside *capsule* to *name*. If non-``NULL``, the name must " "outlive the capsule. If the previous *name* stored in the capsule was not " -"*NULL*, no attempt is made to free it." +"``NULL``, no attempt is made to free it." msgstr "" -#: ../Doc/c-api/capsule.rst:154 +#: c-api/capsule.rst:154 msgid "" "Set the void pointer inside *capsule* to *pointer*. The pointer may not be " -"*NULL*." +"``NULL``." msgstr "" diff --git a/c-api/cell.po b/c-api/cell.po index 44b2efd6da..772f58de6b 100644 --- a/c-api/cell.po +++ b/c-api/cell.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-05-09 10:14+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -50,15 +50,17 @@ msgid "The type object corresponding to cell objects." msgstr "Type objet correspondant aux objets cellules." #: ../Doc/c-api/cell.rst:30 -msgid "Return true if *ob* is a cell object; *ob* must not be *NULL*." +#, fuzzy +msgid "Return true if *ob* is a cell object; *ob* must not be ``NULL``." msgstr "" "Renvoie ``True`` si *ob* est un objet cellule ; *ob* ne doit pas être à " "*NULL*." #: ../Doc/c-api/cell.rst:35 +#, fuzzy msgid "" "Create and return a new cell object containing the value *ob*. The parameter " -"may be *NULL*." +"may be ``NULL``." msgstr "" "Crée et retourne un nouvel objet cellule contenant la valeur *ob*. Le " "paramètre peut être mis à *NULL*." @@ -68,19 +70,21 @@ msgid "Return the contents of the cell *cell*." msgstr "Renvoie le contenu de la cellule *cell*." #: ../Doc/c-api/cell.rst:46 +#, fuzzy msgid "" "Return the contents of the cell *cell*, but without checking that *cell* is " -"non-*NULL* and a cell object." +"non-``NULL`` and a cell object." msgstr "" "Renvoie le contenu de la cellule *cell*, mais sans vérifier si *cell* est " "non *NULL* et sans vérifier si c'est un objet cellule." #: ../Doc/c-api/cell.rst:52 +#, fuzzy msgid "" "Set the contents of the cell object *cell* to *value*. This releases the " -"reference to any current content of the cell. *value* may be *NULL*. *cell* " -"must be non-*NULL*; if it is not a cell object, ``-1`` will be returned. On " -"success, ``0`` will be returned." +"reference to any current content of the cell. *value* may be ``NULL``. " +"*cell* must be non-``NULL``; if it is not a cell object, ``-1`` will be " +"returned. On success, ``0`` will be returned." msgstr "" "Définit le contenu de l'objet cellule à *value*. Cela libère la référence à " "toute valeur de la cellule. *value* peut être fixé à *NULL*. *cell* ne doit " @@ -88,9 +92,10 @@ msgstr "" "c'est un objet cellule, renvoie ``0``." #: ../Doc/c-api/cell.rst:60 +#, fuzzy msgid "" "Sets the value of the cell object *cell* to *value*. No reference counts " -"are adjusted, and no checks are made for safety; *cell* must be non-*NULL* " +"are adjusted, and no checks are made for safety; *cell* must be non-``NULL`` " "and must be a cell object." msgstr "" "Définit la valeur de l'objet cellule à *value*. Pas de comptage de " diff --git a/c-api/code.po b/c-api/code.po index 00b8326529..6fa942ebed 100644 --- a/c-api/code.po +++ b/c-api/code.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" "PO-Revision-Date: 2018-02-15 00:30+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -64,20 +64,13 @@ msgstr "" "c:func:`PyCode_New` peut vous lier directement à une version spécifique de " "Python, le *bytecode* étant sujet à modifications." -#: ../Doc/c-api/code.rst:43 -msgid "" -"Raises an :ref:`auditing event ` ``code.__new__`` with arguments " -"``code``, ``filename``, ``name``, ``argcount``, ``posonlyargcount``, " -"``kwonlyargcount``, ``nlocals``, ``stacksize``, ``flags``." -msgstr "" - -#: ../Doc/c-api/code.rst:47 +#: ../Doc/c-api/code.rst:45 msgid "" "Similar to :c:func:`PyCode_New`, but with an extra \"posonlyargcount\" for " -"positonal-only arguments." +"positional-only arguments." msgstr "" -#: ../Doc/c-api/code.rst:53 +#: ../Doc/c-api/code.rst:51 msgid "" "Return a new empty code object with the specified filename, function name, " "and first line number. It is illegal to :func:`exec` or :func:`eval` the " diff --git a/c-api/codec.po b/c-api/codec.po index 977a2cd09e..4de3f0845d 100644 --- a/c-api/codec.po +++ b/c-api/codec.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -42,7 +42,7 @@ msgstr "" msgid "" "*object* is passed through the encoder function found for the given " "*encoding* using the error handling method defined by *errors*. *errors* " -"may be *NULL* to use the default method defined for the codec. Raises a :" +"may be ``NULL`` to use the default method defined for the codec. Raises a :" "exc:`LookupError` if no encoder can be found." msgstr "" @@ -54,7 +54,7 @@ msgstr "" msgid "" "*object* is passed through the decoder function found for the given " "*encoding* using the error handling method defined by *errors*. *errors* " -"may be *NULL* to use the default method defined for the codec. Raises a :" +"may be ``NULL`` to use the default method defined for the codec. Raises a :" "exc:`LookupError` if no encoder can be found." msgstr "" @@ -67,7 +67,7 @@ msgid "" "In the following functions, the *encoding* string is looked up converted to " "all lower-case characters, which makes encodings looked up through this " "mechanism effectively case-insensitive. If no codec is found, a :exc:" -"`KeyError` is set and *NULL* returned." +"`KeyError` is set and ``NULL`` returned." msgstr "" #: ../Doc/c-api/codec.rst:47 @@ -132,8 +132,8 @@ msgstr "" #: ../Doc/c-api/codec.rst:94 msgid "" "Lookup the error handling callback function registered under *name*. As a " -"special case *NULL* can be passed, in which case the error handling callback " -"for \"strict\" will be returned." +"special case ``NULL`` can be passed, in which case the error handling " +"callback for \"strict\" will be returned." msgstr "" #: ../Doc/c-api/codec.rst:100 diff --git a/c-api/complex.po b/c-api/complex.po index e8e82f0e83..adf22b60fb 100644 --- a/c-api/complex.po +++ b/c-api/complex.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2019-01-14 20:31+0100\n" diff --git a/c-api/concrete.po b/c-api/concrete.po index 52b28b1715..b303bb5163 100644 --- a/c-api/concrete.po +++ b/c-api/concrete.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-02-15 00:31+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -38,15 +38,16 @@ msgstr "" #: ../Doc/c-api/concrete.rst:19 msgid "" "While the functions described in this chapter carefully check the type of " -"the objects which are passed in, many of them do not check for *NULL* being " -"passed instead of a valid object. Allowing *NULL* to be passed in can cause " -"memory access violations and immediate termination of the interpreter." +"the objects which are passed in, many of them do not check for ``NULL`` " +"being passed instead of a valid object. Allowing ``NULL`` to be passed in " +"can cause memory access violations and immediate termination of the " +"interpreter." msgstr "" "Tandis que les fonctions décrites dans ce chapitre vérifient avec soin le " "type des objets qui leur sont passés, beaucoup d'entre elles ne vérifient " -"pas que *NULL* est passé au lieu d'un objet valide. Autoriser *NULL* à être " -"passé peut provoquer des violations d'accès à la mémoire et ainsi terminer " -"immédiatement l'interpréteur." +"pas que ``NULL`` est passé au lieu d'un objet valide. Autoriser ``NULL`` à " +"être passé peut provoquer des violations d'accès à la mémoire et ainsi " +"terminer immédiatement l'interpréteur." #: ../Doc/c-api/concrete.rst:28 msgid "Fundamental Objects" diff --git a/c-api/contextvars.po b/c-api/contextvars.po index 72faa61a34..7ae9025727 100644 --- a/c-api/contextvars.po +++ b/c-api/contextvars.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-10-12 18:59+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-08-03 23:47+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,163 +14,163 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/contextvars.rst:6 +#: c-api/contextvars.rst:6 msgid "Context Variables Objects" msgstr "" -#: ../Doc/c-api/contextvars.rst:13 +#: c-api/contextvars.rst:13 msgid "" "In Python 3.7.1 the signatures of all context variables C APIs were " "**changed** to use :c:type:`PyObject` pointers instead of :c:type:" "`PyContext`, :c:type:`PyContextVar`, and :c:type:`PyContextToken`, e.g.::" msgstr "" -#: ../Doc/c-api/contextvars.rst:24 +#: c-api/contextvars.rst:24 msgid "See :issue:`34762` for more details." msgstr "" -#: ../Doc/c-api/contextvars.rst:29 +#: c-api/contextvars.rst:29 msgid "" "This section details the public C API for the :mod:`contextvars` module." msgstr "" -#: ../Doc/c-api/contextvars.rst:33 +#: c-api/contextvars.rst:33 msgid "" "The C structure used to represent a :class:`contextvars.Context` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:38 +#: c-api/contextvars.rst:38 msgid "" "The C structure used to represent a :class:`contextvars.ContextVar` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:43 +#: c-api/contextvars.rst:43 msgid "The C structure used to represent a :class:`contextvars.Token` object." msgstr "" -#: ../Doc/c-api/contextvars.rst:47 +#: c-api/contextvars.rst:47 msgid "The type object representing the *context* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:51 +#: c-api/contextvars.rst:51 msgid "The type object representing the *context variable* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:55 +#: c-api/contextvars.rst:55 msgid "The type object representing the *context variable token* type." msgstr "" -#: ../Doc/c-api/contextvars.rst:58 +#: c-api/contextvars.rst:58 msgid "Type-check macros:" msgstr "Macros pour vérifier les types :" -#: ../Doc/c-api/contextvars.rst:62 +#: c-api/contextvars.rst:62 msgid "" "Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be " -"*NULL*. This function always succeeds." +"``NULL``. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:67 +#: c-api/contextvars.rst:67 msgid "" "Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be " -"*NULL*. This function always succeeds." +"``NULL``. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:72 +#: c-api/contextvars.rst:72 msgid "" "Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be " -"*NULL*. This function always succeeds." +"``NULL``. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:76 +#: c-api/contextvars.rst:76 msgid "Context object management functions:" msgstr "" -#: ../Doc/c-api/contextvars.rst:80 +#: c-api/contextvars.rst:80 msgid "" "Create a new empty context object. Returns ``NULL`` if an error has " "occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:85 +#: c-api/contextvars.rst:85 msgid "" "Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` " "if an error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:90 +#: c-api/contextvars.rst:90 msgid "" "Create a shallow copy of the current thread context. Returns ``NULL`` if an " "error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:95 +#: c-api/contextvars.rst:95 msgid "" "Set *ctx* as the current context for the current thread. Returns ``0`` on " "success, and ``-1`` on error." msgstr "" -#: ../Doc/c-api/contextvars.rst:100 +#: c-api/contextvars.rst:100 msgid "" "Deactivate the *ctx* context and restore the previous context as the current " "context for the current thread. Returns ``0`` on success, and ``-1`` on " "error." msgstr "" -#: ../Doc/c-api/contextvars.rst:106 +#: c-api/contextvars.rst:106 msgid "" "Clear the context variable free list. Return the total number of freed " "items. This function always succeeds." msgstr "" -#: ../Doc/c-api/contextvars.rst:110 +#: c-api/contextvars.rst:110 msgid "Context variable functions:" msgstr "" -#: ../Doc/c-api/contextvars.rst:114 +#: c-api/contextvars.rst:114 msgid "" "Create a new ``ContextVar`` object. The *name* parameter is used for " -"introspection and debug purposes. The *def* parameter may optionally " -"specify the default value for the context variable. If an error has " +"introspection and debug purposes. The *def* parameter specifies a default " +"value for the context variable, or ``NULL`` for no default. If an error has " "occurred, this function returns ``NULL``." msgstr "" -#: ../Doc/c-api/contextvars.rst:121 +#: c-api/contextvars.rst:121 msgid "" "Get the value of a context variable. Returns ``-1`` if an error has " "occurred during lookup, and ``0`` if no error occurred, whether or not a " "value was found." msgstr "" -#: ../Doc/c-api/contextvars.rst:125 +#: c-api/contextvars.rst:125 msgid "" "If the context variable was found, *value* will be a pointer to it. If the " "context variable was *not* found, *value* will point to:" msgstr "" -#: ../Doc/c-api/contextvars.rst:128 +#: c-api/contextvars.rst:128 msgid "*default_value*, if not ``NULL``;" msgstr "" -#: ../Doc/c-api/contextvars.rst:129 +#: c-api/contextvars.rst:129 msgid "the default value of *var*, if not ``NULL``;" msgstr "" -#: ../Doc/c-api/contextvars.rst:130 +#: c-api/contextvars.rst:130 msgid "``NULL``" msgstr "``NULL``" -#: ../Doc/c-api/contextvars.rst:132 -msgid "If the value was found, the function will create a new reference to it." +#: c-api/contextvars.rst:132 +msgid "Except for ``NULL``, the function returns a new reference." msgstr "" -#: ../Doc/c-api/contextvars.rst:136 +#: c-api/contextvars.rst:136 msgid "" -"Set the value of *var* to *value* in the current context. Returns a pointer " -"to a :c:type:`PyObject` object, or ``NULL`` if an error has occurred." +"Set the value of *var* to *value* in the current context. Returns a new " +"token object for this change, or ``NULL`` if an error has occurred." msgstr "" -#: ../Doc/c-api/contextvars.rst:142 +#: c-api/contextvars.rst:141 msgid "" "Reset the state of the *var* context variable to that it was in before :c:" "func:`PyContextVar_Set` that returned the *token* was called. This function " diff --git a/c-api/conversion.po b/c-api/conversion.po index 476f119a32..ed85e667b8 100644 --- a/c-api/conversion.po +++ b/c-api/conversion.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,31 +14,31 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/conversion.rst:6 +#: c-api/conversion.rst:6 msgid "String conversion and formatting" msgstr "Conversion et formatage de chaînes" -#: ../Doc/c-api/conversion.rst:8 +#: c-api/conversion.rst:8 msgid "Functions for number conversion and formatted string output." msgstr "" "Fonctions de conversion pour les nombres et pour la sortie des chaînes " "formatées." -#: ../Doc/c-api/conversion.rst:13 +#: c-api/conversion.rst:13 msgid "" "Output not more than *size* bytes to *str* according to the format string " "*format* and the extra arguments. See the Unix man page :manpage:" -"`snprintf(2)`." +"`snprintf(3)`." msgstr "" -#: ../Doc/c-api/conversion.rst:19 +#: c-api/conversion.rst:19 msgid "" "Output not more than *size* bytes to *str* according to the format string " "*format* and the variable argument list *va*. Unix man page :manpage:" -"`vsnprintf(2)`." +"`vsnprintf(3)`." msgstr "" -#: ../Doc/c-api/conversion.rst:23 +#: c-api/conversion.rst:23 msgid "" ":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " "library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " @@ -46,54 +46,54 @@ msgid "" "functions do not." msgstr "" -#: ../Doc/c-api/conversion.rst:28 +#: c-api/conversion.rst:28 msgid "" -"The wrappers ensure that *str*[*size*-1] is always ``'\\0'`` upon return. " +"The wrappers ensure that ``str[size-1]`` is always ``'\\0'`` upon return. " "They never write more than *size* bytes (including the trailing ``'\\0'``) " "into str. Both functions require that ``str != NULL``, ``size > 0`` and " "``format != NULL``." msgstr "" -#: ../Doc/c-api/conversion.rst:33 +#: c-api/conversion.rst:33 msgid "" "If the platform doesn't have :c:func:`vsnprintf` and the buffer size needed " "to avoid truncation exceeds *size* by more than 512 bytes, Python aborts " -"with a *Py_FatalError*." +"with a :c:func:`Py_FatalError`." msgstr "" -#: ../Doc/c-api/conversion.rst:37 +#: c-api/conversion.rst:37 msgid "" "The return value (*rv*) for these functions should be interpreted as follows:" msgstr "" -#: ../Doc/c-api/conversion.rst:39 +#: c-api/conversion.rst:39 msgid "" "When ``0 <= rv < size``, the output conversion was successful and *rv* " "characters were written to *str* (excluding the trailing ``'\\0'`` byte at " -"*str*[*rv*])." +"``str[rv]``)." msgstr "" -#: ../Doc/c-api/conversion.rst:43 +#: c-api/conversion.rst:43 msgid "" "When ``rv >= size``, the output conversion was truncated and a buffer with " -"``rv + 1`` bytes would have been needed to succeed. *str*[*size*-1] is " +"``rv + 1`` bytes would have been needed to succeed. ``str[size-1]`` is " "``'\\0'`` in this case." msgstr "" -#: ../Doc/c-api/conversion.rst:47 +#: c-api/conversion.rst:47 msgid "" -"When ``rv < 0``, \"something bad happened.\" *str*[*size*-1] is ``'\\0'`` in " +"When ``rv < 0``, \"something bad happened.\" ``str[size-1]`` is ``'\\0'`` in " "this case too, but the rest of *str* is undefined. The exact cause of the " "error depends on the underlying platform." msgstr "" -#: ../Doc/c-api/conversion.rst:51 +#: c-api/conversion.rst:51 msgid "" "The following functions provide locale-independent string to number " "conversions." msgstr "" -#: ../Doc/c-api/conversion.rst:56 +#: c-api/conversion.rst:56 msgid "" "Convert a string ``s`` to a :c:type:`double`, raising a Python exception on " "failure. The set of accepted strings corresponds to the set of strings " @@ -102,14 +102,14 @@ msgid "" "current locale." msgstr "" -#: ../Doc/c-api/conversion.rst:62 +#: c-api/conversion.rst:62 msgid "" "If ``endptr`` is ``NULL``, convert the whole string. Raise :exc:" "`ValueError` and return ``-1.0`` if the string is not a valid representation " "of a floating-point number." msgstr "" -#: ../Doc/c-api/conversion.rst:66 +#: c-api/conversion.rst:66 msgid "" "If endptr is not ``NULL``, convert as much of the string as possible and set " "``*endptr`` to point to the first unconverted character. If no initial " @@ -118,7 +118,7 @@ msgid "" "ValueError, and return ``-1.0``." msgstr "" -#: ../Doc/c-api/conversion.rst:73 +#: c-api/conversion.rst:73 msgid "" "If ``s`` represents a value that is too large to store in a float (for " "example, ``\"1e500\"`` is such a string on many platforms) then if " @@ -129,70 +129,71 @@ msgid "" "the first character after the converted value." msgstr "" -#: ../Doc/c-api/conversion.rst:81 +#: c-api/conversion.rst:81 msgid "" "If any other error occurs during the conversion (for example an out-of-" "memory error), set the appropriate Python exception and return ``-1.0``." msgstr "" -#: ../Doc/c-api/conversion.rst:90 +#: c-api/conversion.rst:90 msgid "" "Convert a :c:type:`double` *val* to a string using supplied *format_code*, " "*precision*, and *flags*." msgstr "" -#: ../Doc/c-api/conversion.rst:93 +#: c-api/conversion.rst:93 msgid "" "*format_code* must be one of ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, " "``'G'`` or ``'r'``. For ``'r'``, the supplied *precision* must be 0 and is " "ignored. The ``'r'`` format code specifies the standard :func:`repr` format." msgstr "" -#: ../Doc/c-api/conversion.rst:98 +#: c-api/conversion.rst:98 msgid "" -"*flags* can be zero or more of the values *Py_DTSF_SIGN*, " -"*Py_DTSF_ADD_DOT_0*, or *Py_DTSF_ALT*, or-ed together:" +"*flags* can be zero or more of the values ``Py_DTSF_SIGN``, " +"``Py_DTSF_ADD_DOT_0``, or ``Py_DTSF_ALT``, or-ed together:" msgstr "" -#: ../Doc/c-api/conversion.rst:101 +#: c-api/conversion.rst:101 msgid "" -"*Py_DTSF_SIGN* means to always precede the returned string with a sign " +"``Py_DTSF_SIGN`` means to always precede the returned string with a sign " "character, even if *val* is non-negative." msgstr "" -#: ../Doc/c-api/conversion.rst:104 +#: c-api/conversion.rst:104 msgid "" -"*Py_DTSF_ADD_DOT_0* means to ensure that the returned string will not look " +"``Py_DTSF_ADD_DOT_0`` means to ensure that the returned string will not look " "like an integer." msgstr "" -#: ../Doc/c-api/conversion.rst:107 +#: c-api/conversion.rst:107 msgid "" -"*Py_DTSF_ALT* means to apply \"alternate\" formatting rules. See the " +"``Py_DTSF_ALT`` means to apply \"alternate\" formatting rules. See the " "documentation for the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." msgstr "" -#: ../Doc/c-api/conversion.rst:111 +#: c-api/conversion.rst:111 msgid "" -"If *ptype* is non-NULL, then the value it points to will be set to one of " -"*Py_DTST_FINITE*, *Py_DTST_INFINITE*, or *Py_DTST_NAN*, signifying that " -"*val* is a finite number, an infinite number, or not a number, respectively." +"If *ptype* is non-``NULL``, then the value it points to will be set to one " +"of ``Py_DTST_FINITE``, ``Py_DTST_INFINITE``, or ``Py_DTST_NAN``, signifying " +"that *val* is a finite number, an infinite number, or not a number, " +"respectively." msgstr "" -#: ../Doc/c-api/conversion.rst:115 +#: c-api/conversion.rst:115 msgid "" "The return value is a pointer to *buffer* with the converted string or " -"*NULL* if the conversion failed. The caller is responsible for freeing the " +"``NULL`` if the conversion failed. The caller is responsible for freeing the " "returned string by calling :c:func:`PyMem_Free`." msgstr "" -#: ../Doc/c-api/conversion.rst:124 +#: c-api/conversion.rst:124 msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`strcmp` except that it ignores the case." msgstr "" -#: ../Doc/c-api/conversion.rst:130 +#: c-api/conversion.rst:130 msgid "" "Case insensitive comparison of strings. The function works almost " "identically to :c:func:`strncmp` except that it ignores the case." diff --git a/c-api/coro.po b/c-api/coro.po index 32fe305632..c868210bef 100644 --- a/c-api/coro.po +++ b/c-api/coro.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -35,16 +35,20 @@ msgid "The type object corresponding to coroutine objects." msgstr "L'objet type correspondant aux objets coroutines." #: ../Doc/c-api/coro.rst:26 -msgid "Return true if *ob*'s type is *PyCoro_Type*; *ob* must not be *NULL*." +#, fuzzy +msgid "" +"Return true if *ob*'s type is :c:type:`PyCoro_Type`; *ob* must not be " +"``NULL``." msgstr "" "Renvoie vrai si *ob* est de type *PyCoro_Type*. *ob* ne doit pas être *NULL*." #: ../Doc/c-api/coro.rst:31 +#, fuzzy msgid "" "Create and return a new coroutine object based on the *frame* object, with " "``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " "to *frame* is stolen by this function. The *frame* argument must not be " -"*NULL*." +"``NULL``." msgstr "" "Crée et renvoie un nouvel objet coroutine basé sur l'objet *frame*, avec " "``__name__`` et ``__qualname__`` respectivement assignés de *name* et " diff --git a/c-api/datetime.po b/c-api/datetime.po index 4e268df346..29d5bb9f2c 100644 --- a/c-api/datetime.po +++ b/c-api/datetime.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-05-31 10:15+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -16,11 +16,11 @@ msgstr "" "X-Generator: Poedit 2.2.3\n" "X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,3,-1,-1\n" -#: ../Doc/c-api/datetime.rst:6 +#: c-api/datetime.rst:6 msgid "DateTime Objects" msgstr "Objets DateTime" -#: ../Doc/c-api/datetime.rst:8 +#: c-api/datetime.rst:8 msgid "" "Various date and time objects are supplied by the :mod:`datetime` module. " "Before using any of these functions, the header file :file:`datetime.h` must " @@ -39,11 +39,11 @@ msgstr "" "et place celui-ci dans une variable statique, :c:data:`PyDateTimeAPI`, qui " "est utilisée par les macros suivantes." -#: ../Doc/c-api/datetime.rst:16 +#: c-api/datetime.rst:16 msgid "Macro for access to the UTC singleton:" msgstr "Macro pour accéder au singleton UTC :" -#: ../Doc/c-api/datetime.rst:20 +#: c-api/datetime.rst:20 msgid "" "Returns the time zone singleton representing UTC, the same object as :attr:" "`datetime.timezone.utc`." @@ -51,95 +51,105 @@ msgstr "" "Renvoie le singleton du fuseau horaire UTC, qui est le même objet que :attr:" "`datetime.timezone.utc`." -#: ../Doc/c-api/datetime.rst:26 +#: c-api/datetime.rst:26 msgid "Type-check macros:" msgstr "Macros pour vérifier les types :" -#: ../Doc/c-api/datetime.rst:30 +#: c-api/datetime.rst:30 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " -"of :c:data:`PyDateTime_DateType`. *ob* must not be *NULL*." +"of :c:data:`PyDateTime_DateType`. *ob* must not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType` ou un sous-" "type de :c:data:`PyDateTime_DateType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:36 +#: c-api/datetime.rst:36 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " -"be *NULL*." +"be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType`. *ob* ne doit " "pas être *NULL*." -#: ../Doc/c-api/datetime.rst:42 +#: c-api/datetime.rst:42 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " -"subtype of :c:data:`PyDateTime_DateTimeType`. *ob* must not be *NULL*." +"subtype of :c:data:`PyDateTime_DateTimeType`. *ob* must not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType` ou un " "sous-type de :c:data:`PyDateTime_DateTimeType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:48 +#: c-api/datetime.rst:48 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " -"not be *NULL*." +"not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType`. *ob* ne " "doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:54 +#: c-api/datetime.rst:54 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " -"of :c:data:`PyDateTime_TimeType`. *ob* must not be *NULL*." +"of :c:data:`PyDateTime_TimeType`. *ob* must not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType` ou un sous-" "type de :c:data:`PyDateTime_TimeType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:60 +#: c-api/datetime.rst:60 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " -"be *NULL*." +"be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType`. *ob* ne doit " "pas être *NULL*." -#: ../Doc/c-api/datetime.rst:66 +#: c-api/datetime.rst:66 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " -"of :c:data:`PyDateTime_DeltaType`. *ob* must not be *NULL*." +"of :c:data:`PyDateTime_DeltaType`. *ob* must not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType` ou un sous-" "type de :c:data:`PyDateTime_DeltaType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:72 +#: c-api/datetime.rst:72 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " -"be *NULL*." +"be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType`. *ob* ne " "doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:78 +#: c-api/datetime.rst:78 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " -"of :c:data:`PyDateTime_TZInfoType`. *ob* must not be *NULL*." +"of :c:data:`PyDateTime_TZInfoType`. *ob* must not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType` ou un sous-" "type de :c:data:`PyDateTime_TZInfoType`. *ob* ne doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:84 +#: c-api/datetime.rst:84 +#, fuzzy msgid "" "Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " -"not be *NULL*." +"not be ``NULL``." msgstr "" "Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType`. *ob* ne " "doit pas être *NULL*." -#: ../Doc/c-api/datetime.rst:88 +#: c-api/datetime.rst:88 msgid "Macros to create objects:" msgstr "Macros pour créer des objets :" -#: ../Doc/c-api/datetime.rst:92 +#: c-api/datetime.rst:92 msgid "" "Return a :class:`datetime.date` object with the specified year, month and " "day." @@ -147,7 +157,7 @@ msgstr "" "Renvoie un objet :class:`datetime.date` avec l'année, le mois et le jour " "spécifiés." -#: ../Doc/c-api/datetime.rst:97 +#: c-api/datetime.rst:97 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second and microsecond." @@ -155,7 +165,7 @@ msgstr "" "Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " "l'heure, la minute, la seconde et la microseconde spécifiés." -#: ../Doc/c-api/datetime.rst:103 +#: c-api/datetime.rst:103 msgid "" "Return a :class:`datetime.datetime` object with the specified year, month, " "day, hour, minute, second, microsecond and fold." @@ -164,7 +174,7 @@ msgstr "" "l'heure, la minute, la seconde, la microseconde et le pli (*fold* en " "anglais) spécifiés." -#: ../Doc/c-api/datetime.rst:111 +#: c-api/datetime.rst:111 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second and microsecond." @@ -172,7 +182,7 @@ msgstr "" "Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde " "et la microseconde spécifiées." -#: ../Doc/c-api/datetime.rst:117 +#: c-api/datetime.rst:117 msgid "" "Return a :class:`datetime.time` object with the specified hour, minute, " "second, microsecond and fold." @@ -180,7 +190,7 @@ msgstr "" "Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde, " "la microseconde et le pli (*fold* en anglais) spécifiés." -#: ../Doc/c-api/datetime.rst:125 +#: c-api/datetime.rst:125 msgid "" "Return a :class:`datetime.timedelta` object representing the given number of " "days, seconds and microseconds. Normalization is performed so that the " @@ -192,7 +202,7 @@ msgstr "" "normalisé pour que le nombre de microsecondes et de secondes tombe dans la " "plage documentée pour les objets :class:`datetime.timedelta`." -#: ../Doc/c-api/datetime.rst:132 +#: c-api/datetime.rst:132 msgid "" "Return a :class:`datetime.timezone` object with an unnamed fixed offset " "represented by the *offset* argument." @@ -200,7 +210,7 @@ msgstr "" "Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe " "représenté par l'argument *offset*." -#: ../Doc/c-api/datetime.rst:139 +#: c-api/datetime.rst:139 msgid "" "Return a :class:`datetime.timezone` object with a fixed offset represented " "by the *offset* argument and with tzname *name*." @@ -208,11 +218,12 @@ msgstr "" "Renvoie un objet :class:`datetime.timezone` avec un décalage fixe représenté " "par l'argument *offset* et avec le nom de fuseau horaire *name*." -#: ../Doc/c-api/datetime.rst:145 +#: c-api/datetime.rst:145 +#, fuzzy msgid "" "Macros to extract fields from date objects. The argument must be an " "instance of :c:data:`PyDateTime_Date`, including subclasses (such as :c:data:" -"`PyDateTime_DateTime`). The argument must not be *NULL*, and the type is " +"`PyDateTime_DateTime`). The argument must not be ``NULL``, and the type is " "not checked:" msgstr "" "Macros pour extraire les champs des objets *date*. L'argument doit être une " @@ -220,84 +231,92 @@ msgstr "" "`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et le type n'est " "pas vérifié :" -#: ../Doc/c-api/datetime.rst:152 +#: c-api/datetime.rst:152 msgid "Return the year, as a positive int." msgstr "Renvoie l'année, sous forme d'entier positif." -#: ../Doc/c-api/datetime.rst:157 +#: c-api/datetime.rst:157 msgid "Return the month, as an int from 1 through 12." msgstr "Renvoie le mois, sous forme d'entier allant de 1 à 12." -#: ../Doc/c-api/datetime.rst:162 +#: c-api/datetime.rst:162 msgid "Return the day, as an int from 1 through 31." msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." -#: ../Doc/c-api/datetime.rst:165 +#: c-api/datetime.rst:165 +#, fuzzy msgid "" "Macros to extract fields from datetime objects. The argument must be an " "instance of :c:data:`PyDateTime_DateTime`, including subclasses. The " -"argument must not be *NULL*, and the type is not checked:" +"argument must not be ``NULL``, and the type is not checked:" msgstr "" "Macros pour extraire les champs des objets *datetime*. L'argument doit être " "une instance de :c:data:`PyDateTime_DateTime` ou une sous-classe de celle-" "ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" -#: ../Doc/c-api/datetime.rst:171 ../Doc/c-api/datetime.rst:195 +#: c-api/datetime.rst:202 msgid "Return the hour, as an int from 0 through 23." msgstr "Renvoie l'heure, sous forme d'entier allant de 0 à 23." -#: ../Doc/c-api/datetime.rst:176 ../Doc/c-api/datetime.rst:200 +#: c-api/datetime.rst:207 msgid "Return the minute, as an int from 0 through 59." msgstr "Renvoie la minute, sous forme d'entier allant de 0 à 59." -#: ../Doc/c-api/datetime.rst:181 ../Doc/c-api/datetime.rst:205 +#: c-api/datetime.rst:212 msgid "Return the second, as an int from 0 through 59." msgstr "Renvoie la seconde, sous forme d'entier allant de 0 à 59." -#: ../Doc/c-api/datetime.rst:186 ../Doc/c-api/datetime.rst:210 +#: c-api/datetime.rst:217 msgid "Return the microsecond, as an int from 0 through 999999." msgstr "Renvoie la microseconde, sous forme d'entier allant de 0 à 999999." -#: ../Doc/c-api/datetime.rst:189 +#: c-api/datetime.rst:222 +#, fuzzy +msgid "Return the fold, as an int from 0 through 1." +msgstr "Renvoie le jour, sous forme d'entier allant de 1 à 31." + +#: c-api/datetime.rst:196 +#, fuzzy msgid "" "Macros to extract fields from time objects. The argument must be an " "instance of :c:data:`PyDateTime_Time`, including subclasses. The argument " -"must not be *NULL*, and the type is not checked:" +"must not be ``NULL``, and the type is not checked:" msgstr "" "Macros pour extraire les champs des objets *time*. L'argument doit être une " "instance de :c:data:`PyDateTime_Time` ou une sous-classe de celle-ci. " "L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" -#: ../Doc/c-api/datetime.rst:213 +#: c-api/datetime.rst:227 +#, fuzzy msgid "" "Macros to extract fields from time delta objects. The argument must be an " "instance of :c:data:`PyDateTime_Delta`, including subclasses. The argument " -"must not be *NULL*, and the type is not checked:" +"must not be ``NULL``, and the type is not checked:" msgstr "" "Macros pour extraire les champs des objets *time delta*. L'argument doit " "être une instance de :c:data:`PyDateTime_Delta` ou une sous-classe de celle-" "ci. L'argument ne doit pas être *NULL*, et le type n'est pas vérifié :" -#: ../Doc/c-api/datetime.rst:219 +#: c-api/datetime.rst:233 msgid "Return the number of days, as an int from -999999999 to 999999999." msgstr "" "Renvoie le nombre de jours, sous forme d'entier allant de -999999999 à " "999999999." -#: ../Doc/c-api/datetime.rst:226 +#: c-api/datetime.rst:240 msgid "Return the number of seconds, as an int from 0 through 86399." msgstr "Renvoie le nombre de secondes sous forme d'entier allant de 0 à 86399." -#: ../Doc/c-api/datetime.rst:233 +#: c-api/datetime.rst:247 msgid "Return the number of microseconds, as an int from 0 through 999999." msgstr "" "Renvoie le nombre de microsecondes, sous forme d'entier allant de 0 à 999999." -#: ../Doc/c-api/datetime.rst:238 +#: c-api/datetime.rst:252 msgid "Macros for the convenience of modules implementing the DB API:" msgstr "Macros de confort pour les modules implémentant l'API DB :" -#: ../Doc/c-api/datetime.rst:242 +#: c-api/datetime.rst:256 msgid "" "Create and return a new :class:`datetime.datetime` object given an argument " "tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp()`." @@ -305,7 +324,7 @@ msgstr "" "Crée et renvoie un nouvel objet :class:`datetime.datetime` à partir d'un n-" "uplet qui peut être passé à :meth:`datetime.datetime.fromtimestamp()`." -#: ../Doc/c-api/datetime.rst:248 +#: c-api/datetime.rst:262 msgid "" "Create and return a new :class:`datetime.date` object given an argument " "tuple suitable for passing to :meth:`datetime.date.fromtimestamp()`." diff --git a/c-api/descriptor.po b/c-api/descriptor.po index 04a2c31019..340f1d58f8 100644 --- a/c-api/descriptor.po +++ b/c-api/descriptor.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-02-15 00:32+0100\n" diff --git a/c-api/dict.po b/c-api/dict.po index c50d1ef45a..b5dfee445e 100644 --- a/c-api/dict.po +++ b/c-api/dict.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-21 09:48+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-07-03 11:36+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,120 +14,129 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/dict.rst:6 +#: c-api/dict.rst:6 msgid "Dictionary Objects" msgstr "Objets dictionnaires" -#: ../Doc/c-api/dict.rst:13 +#: c-api/dict.rst:13 +#, fuzzy msgid "" "This subtype of :c:type:`PyObject` represents a Python dictionary object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/dict.rst:18 +#: c-api/dict.rst:18 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python dictionary " "type. This is the same object as :class:`dict` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." -#: ../Doc/c-api/dict.rst:24 +#: c-api/dict.rst:24 msgid "" "Return true if *p* is a dict object or an instance of a subtype of the dict " "type." msgstr "" -#: ../Doc/c-api/dict.rst:30 +#: c-api/dict.rst:30 msgid "" "Return true if *p* is a dict object, but not an instance of a subtype of the " "dict type." msgstr "" -#: ../Doc/c-api/dict.rst:36 -msgid "Return a new empty dictionary, or *NULL* on failure." +#: c-api/dict.rst:36 +msgid "Return a new empty dictionary, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/dict.rst:41 +#: c-api/dict.rst:41 msgid "" "Return a :class:`types.MappingProxyType` object for a mapping which enforces " "read-only behavior. This is normally used to create a view to prevent " "modification of the dictionary for non-dynamic class types." msgstr "" -#: ../Doc/c-api/dict.rst:48 +#: c-api/dict.rst:48 msgid "Empty an existing dictionary of all key-value pairs." msgstr "" -#: ../Doc/c-api/dict.rst:53 +#: c-api/dict.rst:53 msgid "" "Determine if dictionary *p* contains *key*. If an item in *p* is matches " "*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " "is equivalent to the Python expression ``key in p``." msgstr "" -#: ../Doc/c-api/dict.rst:60 +#: c-api/dict.rst:60 msgid "Return a new dictionary that contains the same key-value pairs as *p*." msgstr "" -#: ../Doc/c-api/dict.rst:65 +#: c-api/dict.rst:65 msgid "" -"Insert *value* into the dictionary *p* with a key of *key*. *key* must be :" +"Insert *val* into the dictionary *p* with a key of *key*. *key* must be :" "term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return ``0`` " -"on success or ``-1`` on failure." +"on success or ``-1`` on failure. This function *does not* steal a reference " +"to *val*." msgstr "" -#: ../Doc/c-api/dict.rst:74 +#: c-api/dict.rst:75 msgid "" -"Insert *value* into the dictionary *p* using *key* as a key. *key* should be " -"a :c:type:`const char\\*`. The key object is created using " -"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on failure." +"Insert *val* into the dictionary *p* using *key* as a key. *key* should be " +"a :c:type:`const char*`. The key object is created using " +"``PyUnicode_FromString(key)``. Return ``0`` on success or ``-1`` on " +"failure. This function *does not* steal a reference to *val*." msgstr "" -#: ../Doc/c-api/dict.rst:82 +#: c-api/dict.rst:83 msgid "" "Remove the entry in dictionary *p* with key *key*. *key* must be hashable; " -"if it isn't, :exc:`TypeError` is raised. Return ``0`` on success or ``-1`` " -"on failure." +"if it isn't, :exc:`TypeError` is raised. If *key* is not in the dictionary, :" +"exc:`KeyError` is raised. Return ``0`` on success or ``-1`` on failure." msgstr "" -#: ../Doc/c-api/dict.rst:89 +#: c-api/dict.rst:91 msgid "" "Remove the entry in dictionary *p* which has a key specified by the string " -"*key*. Return ``0`` on success or ``-1`` on failure." +"*key*. If *key* is not in the dictionary, :exc:`KeyError` is raised. Return " +"``0`` on success or ``-1`` on failure." msgstr "" -#: ../Doc/c-api/dict.rst:95 +#: c-api/dict.rst:98 msgid "" -"Return the object from dictionary *p* which has a key *key*. Return *NULL* " -"if the key *key* is not present, but *without* setting an exception." +"Return the object from dictionary *p* which has a key *key*. Return " +"``NULL`` if the key *key* is not present, but *without* setting an exception." msgstr "" -#: ../Doc/c-api/dict.rst:98 +#: c-api/dict.rst:101 msgid "" "Note that exceptions which occur while calling :meth:`__hash__` and :meth:" "`__eq__` methods will get suppressed. To get error reporting use :c:func:" "`PyDict_GetItemWithError()` instead." msgstr "" -#: ../Doc/c-api/dict.rst:105 +#: c-api/dict.rst:108 msgid "" "Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " -"Return *NULL* **with** an exception set if an exception occurred. Return " -"*NULL* **without** an exception set if the key wasn't present." +"Return ``NULL`` **with** an exception set if an exception occurred. Return " +"``NULL`` **without** an exception set if the key wasn't present." msgstr "" -#: ../Doc/c-api/dict.rst:113 +#: c-api/dict.rst:116 msgid "" "This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as a :c:" -"type:`const char\\*`, rather than a :c:type:`PyObject\\*`." +"type:`const char*`, rather than a :c:type:`PyObject*`." msgstr "" -#: ../Doc/c-api/dict.rst:116 +#: c-api/dict.rst:119 msgid "" "Note that exceptions which occur while calling :meth:`__hash__` and :meth:" "`__eq__` methods and creating a temporary string object will get suppressed. " "To get error reporting use :c:func:`PyDict_GetItemWithError()` instead." msgstr "" -#: ../Doc/c-api/dict.rst:124 +#: c-api/dict.rst:127 msgid "" "This is the same as the Python-level :meth:`dict.setdefault`. If present, " "it returns the value corresponding to *key* from the dictionary *p*. If the " @@ -137,54 +146,54 @@ msgid "" "the insertion." msgstr "" -#: ../Doc/c-api/dict.rst:134 +#: c-api/dict.rst:137 msgid "" "Return a :c:type:`PyListObject` containing all the items from the dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:139 +#: c-api/dict.rst:142 msgid "" "Return a :c:type:`PyListObject` containing all the keys from the dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:144 +#: c-api/dict.rst:147 msgid "" "Return a :c:type:`PyListObject` containing all the values from the " "dictionary *p*." msgstr "" -#: ../Doc/c-api/dict.rst:152 +#: c-api/dict.rst:155 msgid "" "Return the number of items in the dictionary. This is equivalent to " "``len(p)`` on a dictionary." msgstr "" -#: ../Doc/c-api/dict.rst:158 +#: c-api/dict.rst:161 msgid "" "Iterate over all key-value pairs in the dictionary *p*. The :c:type:" "`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` prior to the " "first call to this function to start the iteration; the function returns " "true for each pair in the dictionary, and false once all pairs have been " "reported. The parameters *pkey* and *pvalue* should either point to :c:type:" -"`PyObject\\*` variables that will be filled in with each key and value, " -"respectively, or may be *NULL*. Any references returned through them are " +"`PyObject*` variables that will be filled in with each key and value, " +"respectively, or may be ``NULL``. Any references returned through them are " "borrowed. *ppos* should not be altered during iteration. Its value " "represents offsets within the internal dictionary structure, and since the " "structure is sparse, the offsets are not consecutive." msgstr "" -#: ../Doc/c-api/dict.rst:169 +#: c-api/dict.rst:172 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/c-api/dict.rst:179 +#: c-api/dict.rst:182 msgid "" "The dictionary *p* should not be mutated during iteration. It is safe to " "modify the values of the keys as you iterate over the dictionary, but only " "so long as the set of keys does not change. For example::" msgstr "" -#: ../Doc/c-api/dict.rst:204 +#: c-api/dict.rst:207 msgid "" "Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " "*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " @@ -194,7 +203,7 @@ msgid "" "or ``-1`` if an exception was raised." msgstr "" -#: ../Doc/c-api/dict.rst:214 +#: c-api/dict.rst:217 msgid "" "This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to ``a." "update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall back " @@ -203,7 +212,7 @@ msgid "" "exception was raised." msgstr "" -#: ../Doc/c-api/dict.rst:223 +#: c-api/dict.rst:226 msgid "" "Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " "*seq2* must be an iterable object producing iterable objects of length 2, " @@ -212,6 +221,6 @@ msgid "" "if an exception was raised. Equivalent Python (except for the return value)::" msgstr "" -#: ../Doc/c-api/dict.rst:238 +#: c-api/dict.rst:241 msgid "Clear the free list. Return the total number of freed items." msgstr "" diff --git a/c-api/exceptions.po b/c-api/exceptions.po index bfda869aa2..2fc1360a1d 100644 --- a/c-api/exceptions.po +++ b/c-api/exceptions.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/c-api/exceptions.rst:8 +#: c-api/exceptions.rst:8 msgid "Exception Handling" msgstr "Gestion des exceptions" -#: ../Doc/c-api/exceptions.rst:10 +#: c-api/exceptions.rst:10 msgid "" "The functions described in this chapter will let you handle and raise Python " "exceptions. It is important to understand some of the basics of Python " @@ -27,21 +27,21 @@ msgid "" "variable: there is a global indicator (per thread) of the last error that " "occurred. Most C API functions don't clear this on success, but will set it " "to indicate the cause of the error on failure. Most C API functions also " -"return an error indicator, usually *NULL* if they are supposed to return a " -"pointer, or ``-1`` if they return an integer (exception: the :c:func:`PyArg_" -"\\*` functions return ``1`` for success and ``0`` for failure)." +"return an error indicator, usually ``NULL`` if they are supposed to return a " +"pointer, or ``-1`` if they return an integer (exception: the :c:func:" +"`PyArg_\\*` functions return ``1`` for success and ``0`` for failure)." msgstr "" -#: ../Doc/c-api/exceptions.rst:20 +#: c-api/exceptions.rst:20 msgid "" "Concretely, the error indicator consists of three object pointers: the " "exception's type, the exception's value, and the traceback object. Any of " -"those pointers can be NULL if non-set (although some combinations are " -"forbidden, for example you can't have a non-NULL traceback if the exception " -"type is NULL)." +"those pointers can be ``NULL`` if non-set (although some combinations are " +"forbidden, for example you can't have a non-``NULL`` traceback if the " +"exception type is ``NULL``)." msgstr "" -#: ../Doc/c-api/exceptions.rst:26 +#: c-api/exceptions.rst:26 msgid "" "When a function must fail because some function it called failed, it " "generally doesn't set the error indicator; the function it called already " @@ -54,7 +54,7 @@ msgid "" "Python/C API may not behave as intended and may fail in mysterious ways." msgstr "" -#: ../Doc/c-api/exceptions.rst:37 +#: c-api/exceptions.rst:37 msgid "" "The error indicator is **not** the result of :func:`sys.exc_info()`. The " "former corresponds to an exception that is not yet caught (and is therefore " @@ -62,17 +62,17 @@ msgid "" "(and has therefore stopped propagating)." msgstr "" -#: ../Doc/c-api/exceptions.rst:44 +#: c-api/exceptions.rst:44 msgid "Printing and clearing" msgstr "" -#: ../Doc/c-api/exceptions.rst:49 +#: c-api/exceptions.rst:49 msgid "" "Clear the error indicator. If the error indicator is not set, there is no " "effect." msgstr "" -#: ../Doc/c-api/exceptions.rst:55 +#: c-api/exceptions.rst:55 msgid "" "Print a standard traceback to ``sys.stderr`` and clear the error indicator. " "**Unless** the error is a ``SystemExit``, in that case no traceback is " @@ -80,30 +80,30 @@ msgid "" "the ``SystemExit`` instance." msgstr "" -#: ../Doc/c-api/exceptions.rst:60 +#: c-api/exceptions.rst:60 msgid "" "Call this function **only** when the error indicator is set. Otherwise it " "will cause a fatal error!" msgstr "" -#: ../Doc/c-api/exceptions.rst:63 +#: c-api/exceptions.rst:63 msgid "" "If *set_sys_last_vars* is nonzero, the variables :data:`sys.last_type`, :" "data:`sys.last_value` and :data:`sys.last_traceback` will be set to the " "type, value and traceback of the printed exception, respectively." msgstr "" -#: ../Doc/c-api/exceptions.rst:70 +#: c-api/exceptions.rst:70 msgid "Alias for ``PyErr_PrintEx(1)``." msgstr "" -#: ../Doc/c-api/exceptions.rst:75 +#: c-api/exceptions.rst:75 msgid "" "Call :func:`sys.unraisablehook` using the current exception and *obj* " "argument." msgstr "" -#: ../Doc/c-api/exceptions.rst:78 +#: c-api/exceptions.rst:78 msgid "" "This utility function prints a warning message to ``sys.stderr`` when an " "exception has been set but it is impossible for the interpreter to actually " @@ -111,29 +111,29 @@ msgid "" "an :meth:`__del__` method." msgstr "" -#: ../Doc/c-api/exceptions.rst:83 +#: c-api/exceptions.rst:83 msgid "" "The function is called with a single argument *obj* that identifies the " "context in which the unraisable exception occurred. If possible, the repr of " "*obj* will be printed in the warning message." msgstr "" -#: ../Doc/c-api/exceptions.rst:87 +#: c-api/exceptions.rst:87 msgid "An exception must be set when calling this function." msgstr "" -#: ../Doc/c-api/exceptions.rst:91 +#: c-api/exceptions.rst:91 msgid "Raising exceptions" msgstr "Lever des exceptions" -#: ../Doc/c-api/exceptions.rst:93 +#: c-api/exceptions.rst:93 msgid "" "These functions help you set the current thread's error indicator. For " -"convenience, some of these functions will always return a NULL pointer for " -"use in a ``return`` statement." +"convenience, some of these functions will always return a ``NULL`` pointer " +"for use in a ``return`` statement." msgstr "" -#: ../Doc/c-api/exceptions.rst:100 +#: c-api/exceptions.rst:100 msgid "" "This is the most common way to set the error indicator. The first argument " "specifies the exception type; it is normally one of the standard exceptions, " @@ -142,45 +142,45 @@ msgid "" "``'utf-8``'." msgstr "" -#: ../Doc/c-api/exceptions.rst:108 +#: c-api/exceptions.rst:108 msgid "" "This function is similar to :c:func:`PyErr_SetString` but lets you specify " "an arbitrary Python object for the \"value\" of the exception." msgstr "" -#: ../Doc/c-api/exceptions.rst:114 +#: c-api/exceptions.rst:114 msgid "" -"This function sets the error indicator and returns *NULL*. *exception* " +"This function sets the error indicator and returns ``NULL``. *exception* " "should be a Python exception class. The *format* and subsequent parameters " "help format the error message; they have the same meaning and values as in :" "c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:123 +#: c-api/exceptions.rst:123 msgid "" "Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " "rather than a variable number of arguments." msgstr "" -#: ../Doc/c-api/exceptions.rst:131 +#: c-api/exceptions.rst:131 msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." msgstr "" -#: ../Doc/c-api/exceptions.rst:136 +#: c-api/exceptions.rst:136 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " "*message* indicates that a built-in operation was invoked with an illegal " "argument. It is mostly for internal use." msgstr "" -#: ../Doc/c-api/exceptions.rst:143 +#: c-api/exceptions.rst:143 msgid "" "This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " -"*NULL* so an object allocation function can write ``return PyErr_NoMemory();" -"`` when it runs out of memory." +"``NULL`` so an object allocation function can write ``return " +"PyErr_NoMemory();`` when it runs out of memory." msgstr "" -#: ../Doc/c-api/exceptions.rst:152 +#: c-api/exceptions.rst:152 msgid "" "This is a convenience function to raise an exception when a C library " "function has returned an error and set the C variable :c:data:`errno`. It " @@ -190,33 +190,33 @@ msgid "" "Unix, when the :c:data:`errno` value is :const:`EINTR`, indicating an " "interrupted system call, this calls :c:func:`PyErr_CheckSignals`, and if " "that set the error indicator, leaves it set to that. The function always " -"returns *NULL*, so a wrapper function around a system call can write " +"returns ``NULL``, so a wrapper function around a system call can write " "``return PyErr_SetFromErrno(type);`` when the system call returns an error." msgstr "" -#: ../Doc/c-api/exceptions.rst:166 +#: c-api/exceptions.rst:166 msgid "" "Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " -"if *filenameObject* is not *NULL*, it is passed to the constructor of *type* " -"as a third parameter. In the case of :exc:`OSError` exception, this is used " -"to define the :attr:`filename` attribute of the exception instance." +"if *filenameObject* is not ``NULL``, it is passed to the constructor of " +"*type* as a third parameter. In the case of :exc:`OSError` exception, this " +"is used to define the :attr:`filename` attribute of the exception instance." msgstr "" -#: ../Doc/c-api/exceptions.rst:175 +#: c-api/exceptions.rst:175 msgid "" "Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " "second filename object, for raising errors when a function that takes two " "filenames fails." msgstr "" -#: ../Doc/c-api/exceptions.rst:184 +#: c-api/exceptions.rst:184 msgid "" "Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " "is given as a C string. *filename* is decoded from the filesystem encoding " "(:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:191 +#: c-api/exceptions.rst:191 msgid "" "This is a convenience function to raise :exc:`WindowsError`. If called with " "*ierr* of :c:data:`0`, the error code returned by a call to :c:func:" @@ -226,47 +226,45 @@ msgid "" "first item is the *ierr* value and whose second item is the corresponding " "error message (gotten from :c:func:`FormatMessage`), and then calls " "``PyErr_SetObject(PyExc_WindowsError, object)``. This function always " -"returns *NULL*." +"returns ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:200 ../Doc/c-api/exceptions.rst:208 -#: ../Doc/c-api/exceptions.rst:217 ../Doc/c-api/exceptions.rst:225 -#: ../Doc/c-api/exceptions.rst:234 ../Doc/c-api/exceptions.rst:243 +#: c-api/exceptions.rst:208 c-api/exceptions.rst:225 c-api/exceptions.rst:243 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/c-api/exceptions.rst:205 +#: c-api/exceptions.rst:205 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " "specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:213 +#: c-api/exceptions.rst:213 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, but the " "filename is given as a C string. *filename* is decoded from the filesystem " "encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:222 +#: c-api/exceptions.rst:222 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilenameObject`, with an " "additional parameter specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:230 +#: c-api/exceptions.rst:230 msgid "" "Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " "accepts a second filename object." msgstr "" -#: ../Doc/c-api/exceptions.rst:240 +#: c-api/exceptions.rst:240 msgid "" "Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " "parameter specifying the exception type to be raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:248 +#: c-api/exceptions.rst:248 msgid "" "This is a convenience function to raise :exc:`ImportError`. *msg* will be " "set as the exception's message string. *name* and *path*, both of which can " @@ -274,7 +272,7 @@ msgid "" "``path`` attributes." msgstr "" -#: ../Doc/c-api/exceptions.rst:258 +#: c-api/exceptions.rst:258 msgid "" "Set file, line, and offset information for the current exception. If the " "current exception is not a :exc:`SyntaxError`, then it sets additional " @@ -282,19 +280,19 @@ msgid "" "is a :exc:`SyntaxError`." msgstr "" -#: ../Doc/c-api/exceptions.rst:268 +#: c-api/exceptions.rst:268 msgid "" "Like :c:func:`PyErr_SyntaxLocationObject`, but *filename* is a byte string " "decoded from the filesystem encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:276 +#: c-api/exceptions.rst:276 msgid "" "Like :c:func:`PyErr_SyntaxLocationEx`, but the col_offset parameter is " "omitted." msgstr "" -#: ../Doc/c-api/exceptions.rst:282 +#: c-api/exceptions.rst:282 msgid "" "This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " "where *message* indicates that an internal operation (e.g. a Python/C API " @@ -302,11 +300,11 @@ msgid "" "use." msgstr "" -#: ../Doc/c-api/exceptions.rst:289 +#: c-api/exceptions.rst:289 msgid "Issuing warnings" msgstr "" -#: ../Doc/c-api/exceptions.rst:291 +#: c-api/exceptions.rst:291 msgid "" "Use these functions to issue warnings from C code. They mirror similar " "functions exported by the Python :mod:`warnings` module. They normally " @@ -322,17 +320,17 @@ msgid "" "return an error value)." msgstr "" -#: ../Doc/c-api/exceptions.rst:306 +#: c-api/exceptions.rst:306 msgid "" "Issue a warning message. The *category* argument is a warning category (see " -"below) or *NULL*; the *message* argument is a UTF-8 encoded string. " +"below) or ``NULL``; the *message* argument is a UTF-8 encoded string. " "*stack_level* is a positive number giving a number of stack frames; the " "warning will be issued from the currently executing line of code in that " "stack frame. A *stack_level* of 1 is the function calling :c:func:" "`PyErr_WarnEx`, 2 is the function above that, and so forth." msgstr "" -#: ../Doc/c-api/exceptions.rst:313 +#: c-api/exceptions.rst:313 msgid "" "Warning categories must be subclasses of :c:data:`PyExc_Warning`; :c:data:" "`PyExc_Warning` is a subclass of :c:data:`PyExc_Exception`; the default " @@ -341,61 +339,61 @@ msgid "" "enumerated at :ref:`standardwarningcategories`." msgstr "" -#: ../Doc/c-api/exceptions.rst:319 +#: c-api/exceptions.rst:319 msgid "" "For information about warning control, see the documentation for the :mod:" "`warnings` module and the :option:`-W` option in the command line " "documentation. There is no C API for warning control." msgstr "" -#: ../Doc/c-api/exceptions.rst:325 +#: c-api/exceptions.rst:325 msgid "" "Much like :c:func:`PyErr_SetImportError` but this function allows for " "specifying a subclass of :exc:`ImportError` to raise." msgstr "" -#: ../Doc/c-api/exceptions.rst:333 +#: c-api/exceptions.rst:333 msgid "" "Issue a warning message with explicit control over all warning attributes. " "This is a straightforward wrapper around the Python function :func:`warnings." "warn_explicit`, see there for more information. The *module* and *registry* " -"arguments may be set to *NULL* to get the default effect described there." +"arguments may be set to ``NULL`` to get the default effect described there." msgstr "" -#: ../Doc/c-api/exceptions.rst:344 +#: c-api/exceptions.rst:344 msgid "" "Similar to :c:func:`PyErr_WarnExplicitObject` except that *message* and " "*module* are UTF-8 encoded strings, and *filename* is decoded from the " "filesystem encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:351 +#: c-api/exceptions.rst:351 msgid "" "Function similar to :c:func:`PyErr_WarnEx`, but use :c:func:" "`PyUnicode_FromFormat` to format the warning message. *format* is an ASCII-" "encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:360 +#: c-api/exceptions.rst:360 msgid "" "Function similar to :c:func:`PyErr_WarnFormat`, but *category* is :exc:" -"`ResourceWarning` and pass *source* to :func:`warnings.WarningMessage`." +"`ResourceWarning` and it passes *source* to :func:`warnings.WarningMessage`." msgstr "" -#: ../Doc/c-api/exceptions.rst:367 +#: c-api/exceptions.rst:367 msgid "Querying the error indicator" msgstr "" -#: ../Doc/c-api/exceptions.rst:371 +#: c-api/exceptions.rst:371 msgid "" "Test whether the error indicator is set. If set, return the exception " -"*type* (the first argument to the last call to one of the :c:func:`PyErr_Set" -"\\*` functions or to :c:func:`PyErr_Restore`). If not set, return *NULL*. " -"You do not own a reference to the return value, so you do not need to :c:" -"func:`Py_DECREF` it." +"*type* (the first argument to the last call to one of the :c:func:" +"`PyErr_Set\\*` functions or to :c:func:`PyErr_Restore`). If not set, return " +"``NULL``. You do not own a reference to the return value, so you do not " +"need to :c:func:`Py_DECREF` it." msgstr "" -#: ../Doc/c-api/exceptions.rst:379 +#: c-api/exceptions.rst:379 msgid "" "Do not compare the return value to a specific exception; use :c:func:" "`PyErr_ExceptionMatches` instead, shown below. (The comparison could easily " @@ -403,14 +401,14 @@ msgid "" "of a class exception, or it may be a subclass of the expected exception.)" msgstr "" -#: ../Doc/c-api/exceptions.rst:387 +#: c-api/exceptions.rst:387 msgid "" "Equivalent to ``PyErr_GivenExceptionMatches(PyErr_Occurred(), exc)``. This " "should only be called when an exception is actually set; a memory access " "violation will occur if no exception has been raised." msgstr "" -#: ../Doc/c-api/exceptions.rst:394 +#: c-api/exceptions.rst:394 msgid "" "Return true if the *given* exception matches the exception type in *exc*. " "If *exc* is a class object, this also returns true when *given* is an " @@ -418,27 +416,27 @@ msgid "" "tuple (and recursively in subtuples) are searched for a match." msgstr "" -#: ../Doc/c-api/exceptions.rst:402 +#: c-api/exceptions.rst:402 msgid "" "Retrieve the error indicator into three variables whose addresses are " "passed. If the error indicator is not set, set all three variables to " -"*NULL*. If it is set, it will be cleared and you own a reference to each " -"object retrieved. The value and traceback object may be *NULL* even when " +"``NULL``. If it is set, it will be cleared and you own a reference to each " +"object retrieved. The value and traceback object may be ``NULL`` even when " "the type object is not." msgstr "" -#: ../Doc/c-api/exceptions.rst:409 +#: c-api/exceptions.rst:409 msgid "" "This function is normally only used by code that needs to catch exceptions " "or by code that needs to save and restore the error indicator temporarily, e." "g.::" msgstr "" -#: ../Doc/c-api/exceptions.rst:424 +#: c-api/exceptions.rst:424 msgid "" "Set the error indicator from the three objects. If the error indicator is " -"already set, it is cleared first. If the objects are *NULL*, the error " -"indicator is cleared. Do not pass a *NULL* type and non-*NULL* value or " +"already set, it is cleared first. If the objects are ``NULL``, the error " +"indicator is cleared. Do not pass a ``NULL`` type and non-``NULL`` value or " "traceback. The exception type should be a class. Do not pass an invalid " "exception type or value. (Violating these rules will cause subtle problems " "later.) This call takes away a reference to each object: you must own a " @@ -447,14 +445,14 @@ msgid "" "function. I warned you.)" msgstr "" -#: ../Doc/c-api/exceptions.rst:436 +#: c-api/exceptions.rst:436 msgid "" "This function is normally only used by code that needs to save and restore " "the error indicator temporarily. Use :c:func:`PyErr_Fetch` to save the " "current error indicator." msgstr "" -#: ../Doc/c-api/exceptions.rst:443 +#: c-api/exceptions.rst:443 msgid "" "Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " "below can be \"unnormalized\", meaning that ``*exc`` is a class object but " @@ -464,22 +462,22 @@ msgid "" "improve performance." msgstr "" -#: ../Doc/c-api/exceptions.rst:451 +#: c-api/exceptions.rst:451 msgid "" "This function *does not* implicitly set the ``__traceback__`` attribute on " "the exception value. If setting the traceback appropriately is desired, the " "following additional snippet is needed::" msgstr "" -#: ../Doc/c-api/exceptions.rst:462 +#: c-api/exceptions.rst:462 msgid "" "Retrieve the exception info, as known from ``sys.exc_info()``. This refers " "to an exception that was *already caught*, not to an exception that was " "freshly raised. Returns new references for the three objects, any of which " -"may be *NULL*. Does not modify the exception info state." +"may be ``NULL``. Does not modify the exception info state." msgstr "" -#: ../Doc/c-api/exceptions.rst:469 +#: c-api/exceptions.rst:469 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -487,16 +485,16 @@ msgid "" "exception state." msgstr "" -#: ../Doc/c-api/exceptions.rst:479 +#: c-api/exceptions.rst:479 msgid "" "Set the exception info, as known from ``sys.exc_info()``. This refers to an " "exception that was *already caught*, not to an exception that was freshly " "raised. This function steals the references of the arguments. To clear the " -"exception state, pass *NULL* for all three arguments. For general rules " +"exception state, pass ``NULL`` for all three arguments. For general rules " "about the three arguments, see :c:func:`PyErr_Restore`." msgstr "" -#: ../Doc/c-api/exceptions.rst:487 +#: c-api/exceptions.rst:487 msgid "" "This function is not normally used by code that wants to handle exceptions. " "Rather, it can be used when code needs to save and restore the exception " @@ -504,11 +502,11 @@ msgid "" "state." msgstr "" -#: ../Doc/c-api/exceptions.rst:496 +#: c-api/exceptions.rst:496 msgid "Signal Handling" msgstr "Traitement des signaux" -#: ../Doc/c-api/exceptions.rst:506 +#: c-api/exceptions.rst:506 msgid "" "This function interacts with Python's signal handling. It checks whether a " "signal has been sent to the processes and if so, invokes the corresponding " @@ -520,27 +518,27 @@ msgid "" "may not be cleared if it was previously set." msgstr "" -#: ../Doc/c-api/exceptions.rst:522 +#: c-api/exceptions.rst:522 msgid "" "Simulate the effect of a :const:`SIGINT` signal arriving. The next time :c:" "func:`PyErr_CheckSignals` is called, the Python signal handler for :const:" "`SIGINT` will be called." msgstr "" -#: ../Doc/c-api/exceptions.rst:526 +#: c-api/exceptions.rst:526 msgid "" "If :const:`SIGINT` isn't handled by Python (it was set to :data:`signal." "SIG_DFL` or :data:`signal.SIG_IGN`), this function does nothing." msgstr "" -#: ../Doc/c-api/exceptions.rst:532 +#: c-api/exceptions.rst:532 msgid "" "This utility function specifies a file descriptor to which the signal number " "is written as a single byte whenever a signal is received. *fd* must be non-" "blocking. It returns the previous such file descriptor." msgstr "" -#: ../Doc/c-api/exceptions.rst:536 +#: c-api/exceptions.rst:536 msgid "" "The value ``-1`` disables the feature; this is the initial state. This is " "equivalent to :func:`signal.set_wakeup_fd` in Python, but without any error " @@ -548,24 +546,24 @@ msgid "" "be called from the main thread." msgstr "" -#: ../Doc/c-api/exceptions.rst:541 +#: c-api/exceptions.rst:541 msgid "On Windows, the function now also supports socket handles." msgstr "" -#: ../Doc/c-api/exceptions.rst:546 +#: c-api/exceptions.rst:546 msgid "Exception Classes" msgstr "" -#: ../Doc/c-api/exceptions.rst:550 +#: c-api/exceptions.rst:550 msgid "" "This utility function creates and returns a new exception class. The *name* " "argument must be the name of the new exception, a C string of the form " -"``module.classname``. The *base* and *dict* arguments are normally *NULL*. " -"This creates a class object derived from :exc:`Exception` (accessible in C " -"as :c:data:`PyExc_Exception`)." +"``module.classname``. The *base* and *dict* arguments are normally " +"``NULL``. This creates a class object derived from :exc:`Exception` " +"(accessible in C as :c:data:`PyExc_Exception`)." msgstr "" -#: ../Doc/c-api/exceptions.rst:556 +#: c-api/exceptions.rst:556 msgid "" "The :attr:`__module__` attribute of the new class is set to the first part " "(up to the last dot) of the *name* argument, and the class name is set to " @@ -575,143 +573,159 @@ msgid "" "variables and methods." msgstr "" -#: ../Doc/c-api/exceptions.rst:565 +#: c-api/exceptions.rst:565 msgid "" "Same as :c:func:`PyErr_NewException`, except that the new exception class " -"can easily be given a docstring: If *doc* is non-*NULL*, it will be used as " -"the docstring for the exception class." +"can easily be given a docstring: If *doc* is non-``NULL``, it will be used " +"as the docstring for the exception class." msgstr "" -#: ../Doc/c-api/exceptions.rst:573 +#: c-api/exceptions.rst:573 msgid "Exception Objects" msgstr "Objets exception" -#: ../Doc/c-api/exceptions.rst:577 +#: c-api/exceptions.rst:577 msgid "" "Return the traceback associated with the exception as a new reference, as " "accessible from Python through :attr:`__traceback__`. If there is no " -"traceback associated, this returns *NULL*." +"traceback associated, this returns ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:584 +#: c-api/exceptions.rst:584 msgid "" "Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " "clear it." msgstr "" -#: ../Doc/c-api/exceptions.rst:590 +#: c-api/exceptions.rst:590 msgid "" "Return the context (another exception instance during whose handling *ex* " "was raised) associated with the exception as a new reference, as accessible " "from Python through :attr:`__context__`. If there is no context associated, " -"this returns *NULL*." +"this returns ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:598 +#: c-api/exceptions.rst:598 msgid "" -"Set the context associated with the exception to *ctx*. Use *NULL* to clear " -"it. There is no type check to make sure that *ctx* is an exception " +"Set the context associated with the exception to *ctx*. Use ``NULL`` to " +"clear it. There is no type check to make sure that *ctx* is an exception " "instance. This steals a reference to *ctx*." msgstr "" -#: ../Doc/c-api/exceptions.rst:605 +#: c-api/exceptions.rst:605 msgid "" "Return the cause (either an exception instance, or :const:`None`, set by " "``raise ... from ...``) associated with the exception as a new reference, as " "accessible from Python through :attr:`__cause__`." msgstr "" -#: ../Doc/c-api/exceptions.rst:612 +#: c-api/exceptions.rst:612 msgid "" -"Set the cause associated with the exception to *cause*. Use *NULL* to clear " -"it. There is no type check to make sure that *cause* is either an exception " -"instance or :const:`None`. This steals a reference to *cause*." +"Set the cause associated with the exception to *cause*. Use ``NULL`` to " +"clear it. There is no type check to make sure that *cause* is either an " +"exception instance or :const:`None`. This steals a reference to *cause*." msgstr "" -#: ../Doc/c-api/exceptions.rst:616 +#: c-api/exceptions.rst:616 msgid "" ":attr:`__suppress_context__` is implicitly set to ``True`` by this function." msgstr "" -#: ../Doc/c-api/exceptions.rst:622 +#: c-api/exceptions.rst:622 msgid "Unicode Exception Objects" msgstr "Objets exception Unicode" -#: ../Doc/c-api/exceptions.rst:624 +#: c-api/exceptions.rst:624 msgid "" "The following functions are used to create and modify Unicode exceptions " "from C." msgstr "" -#: ../Doc/c-api/exceptions.rst:628 +#: c-api/exceptions.rst:628 msgid "" "Create a :class:`UnicodeDecodeError` object with the attributes *encoding*, " "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " "UTF-8 encoded strings." msgstr "" -#: ../Doc/c-api/exceptions.rst:634 +#: c-api/exceptions.rst:634 msgid "" "Create a :class:`UnicodeEncodeError` object with the attributes *encoding*, " "*object*, *length*, *start*, *end* and *reason*. *encoding* and *reason* are " "UTF-8 encoded strings." msgstr "" -#: ../Doc/c-api/exceptions.rst:640 +#: c-api/exceptions.rst:648 +msgid "3.11" +msgstr "3.11" + +#: c-api/exceptions.rst:640 +msgid "" +"``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to " +"``PyObject_CallFunction(PyExc_UnicodeEncodeError, \"sOnns\", ...)``." +msgstr "" + +#: c-api/exceptions.rst:645 msgid "" "Create a :class:`UnicodeTranslateError` object with the attributes *object*, " "*length*, *start*, *end* and *reason*. *reason* is a UTF-8 encoded string." msgstr "" -#: ../Doc/c-api/exceptions.rst:646 +#: c-api/exceptions.rst:650 +msgid "" +"``Py_UNICODE`` is deprecated since Python 3.3. Please migrate to " +"``PyObject_CallFunction(PyExc_UnicodeTranslateError, \"Onns\", ...)``." +msgstr "" + +#: c-api/exceptions.rst:656 msgid "Return the *encoding* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:652 +#: c-api/exceptions.rst:662 msgid "Return the *object* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:658 +#: c-api/exceptions.rst:668 msgid "" -"Get the *start* attribute of the given exception object and place it into *" -"\\*start*. *start* must not be *NULL*. Return ``0`` on success, ``-1`` on " -"failure." +"Get the *start* attribute of the given exception object and place it into " +"*\\*start*. *start* must not be ``NULL``. Return ``0`` on success, ``-1`` " +"on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:666 +#: c-api/exceptions.rst:676 msgid "" "Set the *start* attribute of the given exception object to *start*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:673 +#: c-api/exceptions.rst:683 msgid "" -"Get the *end* attribute of the given exception object and place it into *" -"\\*end*. *end* must not be *NULL*. Return ``0`` on success, ``-1`` on " +"Get the *end* attribute of the given exception object and place it into " +"*\\*end*. *end* must not be ``NULL``. Return ``0`` on success, ``-1`` on " "failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:681 +#: c-api/exceptions.rst:691 msgid "" "Set the *end* attribute of the given exception object to *end*. Return " "``0`` on success, ``-1`` on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:688 +#: c-api/exceptions.rst:698 msgid "Return the *reason* attribute of the given exception object." msgstr "" -#: ../Doc/c-api/exceptions.rst:694 +#: c-api/exceptions.rst:704 msgid "" "Set the *reason* attribute of the given exception object to *reason*. " "Return ``0`` on success, ``-1`` on failure." msgstr "" -#: ../Doc/c-api/exceptions.rst:699 +#: c-api/exceptions.rst:709 msgid "Recursion Control" msgstr "Contrôle de la récursion" -#: ../Doc/c-api/exceptions.rst:701 +#: c-api/exceptions.rst:711 msgid "" "These two functions provide a way to perform safe recursive calls at the C " "level, both in the core and in extension modules. They are needed if the " @@ -719,38 +733,38 @@ msgid "" "recursion depth automatically)." msgstr "" -#: ../Doc/c-api/exceptions.rst:708 +#: c-api/exceptions.rst:718 msgid "Marks a point where a recursive C-level call is about to be performed." msgstr "" -#: ../Doc/c-api/exceptions.rst:710 +#: c-api/exceptions.rst:720 msgid "" "If :const:`USE_STACKCHECK` is defined, this function checks if the OS stack " "overflowed using :c:func:`PyOS_CheckStack`. In this is the case, it sets a :" "exc:`MemoryError` and returns a nonzero value." msgstr "" -#: ../Doc/c-api/exceptions.rst:714 +#: c-api/exceptions.rst:724 msgid "" "The function then checks if the recursion limit is reached. If this is the " "case, a :exc:`RecursionError` is set and a nonzero value is returned. " "Otherwise, zero is returned." msgstr "" -#: ../Doc/c-api/exceptions.rst:718 +#: c-api/exceptions.rst:728 msgid "" "*where* should be a string such as ``\" in instance check\"`` to be " "concatenated to the :exc:`RecursionError` message caused by the recursion " "depth limit." msgstr "" -#: ../Doc/c-api/exceptions.rst:724 +#: c-api/exceptions.rst:734 msgid "" "Ends a :c:func:`Py_EnterRecursiveCall`. Must be called once for each " "*successful* invocation of :c:func:`Py_EnterRecursiveCall`." msgstr "" -#: ../Doc/c-api/exceptions.rst:727 +#: c-api/exceptions.rst:737 msgid "" "Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " "requires special recursion handling. In addition to protecting the stack, :" @@ -759,13 +773,13 @@ msgid "" "Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." msgstr "" -#: ../Doc/c-api/exceptions.rst:735 +#: c-api/exceptions.rst:745 msgid "" "Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " "implementation to detect cycles." msgstr "" -#: ../Doc/c-api/exceptions.rst:738 +#: c-api/exceptions.rst:748 msgid "" "If the object has already been processed, the function returns a positive " "integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " @@ -773,486 +787,483 @@ msgid "" "`dict` objects return ``{...}`` and :class:`list` objects return ``[...]``." msgstr "" -#: ../Doc/c-api/exceptions.rst:744 +#: c-api/exceptions.rst:754 msgid "" "The function will return a negative integer if the recursion limit is " "reached. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " "should typically return ``NULL``." msgstr "" -#: ../Doc/c-api/exceptions.rst:748 +#: c-api/exceptions.rst:758 msgid "" "Otherwise, the function returns zero and the :c:member:`~PyTypeObject." "tp_repr` implementation can continue normally." msgstr "" -#: ../Doc/c-api/exceptions.rst:753 +#: c-api/exceptions.rst:763 msgid "" "Ends a :c:func:`Py_ReprEnter`. Must be called once for each invocation of :" "c:func:`Py_ReprEnter` that returns zero." msgstr "" -#: ../Doc/c-api/exceptions.rst:760 +#: c-api/exceptions.rst:770 msgid "Standard Exceptions" msgstr "Exceptions standards" -#: ../Doc/c-api/exceptions.rst:762 +#: c-api/exceptions.rst:772 msgid "" "All standard Python exceptions are available as global variables whose names " "are ``PyExc_`` followed by the Python exception name. These have the type :" -"c:type:`PyObject\\*`; they are all class objects. For completeness, here " -"are all the variables:" +"c:type:`PyObject*`; they are all class objects. For completeness, here are " +"all the variables:" msgstr "" -#: ../Doc/c-api/exceptions.rst:823 ../Doc/c-api/exceptions.rst:956 -#: ../Doc/c-api/exceptions.rst:1004 +#: c-api/exceptions.rst:966 c-api/exceptions.rst:1011 msgid "C Name" msgstr "Nom C" -#: ../Doc/c-api/exceptions.rst:823 ../Doc/c-api/exceptions.rst:1004 +#: c-api/exceptions.rst:1011 msgid "Python Name" msgstr "Nom Python" -#: ../Doc/c-api/exceptions.rst:823 ../Doc/c-api/exceptions.rst:956 -#: ../Doc/c-api/exceptions.rst:1004 +#: c-api/exceptions.rst:966 c-api/exceptions.rst:1011 msgid "Notes" msgstr "Notes" -#: ../Doc/c-api/exceptions.rst:825 +#: c-api/exceptions.rst:835 msgid ":c:data:`PyExc_BaseException`" msgstr ":c:data:`PyExc_BaseException`" -#: ../Doc/c-api/exceptions.rst:825 +#: c-api/exceptions.rst:835 msgid ":exc:`BaseException`" msgstr ":exc:`BaseException`" -#: ../Doc/c-api/exceptions.rst:825 ../Doc/c-api/exceptions.rst:827 -#: ../Doc/c-api/exceptions.rst:829 ../Doc/c-api/exceptions.rst:875 -#: ../Doc/c-api/exceptions.rst:887 ../Doc/c-api/exceptions.rst:1006 +#: c-api/exceptions.rst:837 c-api/exceptions.rst:885 c-api/exceptions.rst:1013 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/c-api/exceptions.rst:827 +#: c-api/exceptions.rst:837 msgid ":c:data:`PyExc_Exception`" msgstr ":c:data:`PyExc_Exception`" -#: ../Doc/c-api/exceptions.rst:827 +#: c-api/exceptions.rst:837 msgid ":exc:`Exception`" msgstr ":exc:`Exception`" -#: ../Doc/c-api/exceptions.rst:829 +#: c-api/exceptions.rst:839 msgid ":c:data:`PyExc_ArithmeticError`" msgstr ":c:data:`PyExc_ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:829 +#: c-api/exceptions.rst:839 msgid ":exc:`ArithmeticError`" msgstr ":exc:`ArithmeticError`" -#: ../Doc/c-api/exceptions.rst:831 +#: c-api/exceptions.rst:841 msgid ":c:data:`PyExc_AssertionError`" msgstr ":c:data:`PyExc_AssertionError`" -#: ../Doc/c-api/exceptions.rst:831 +#: c-api/exceptions.rst:841 msgid ":exc:`AssertionError`" msgstr ":exc:`AssertionError`" -#: ../Doc/c-api/exceptions.rst:833 +#: c-api/exceptions.rst:843 msgid ":c:data:`PyExc_AttributeError`" msgstr ":c:data:`PyExc_AttributeError`" -#: ../Doc/c-api/exceptions.rst:833 +#: c-api/exceptions.rst:843 msgid ":exc:`AttributeError`" msgstr ":exc:`AttributeError`" -#: ../Doc/c-api/exceptions.rst:835 +#: c-api/exceptions.rst:845 msgid ":c:data:`PyExc_BlockingIOError`" msgstr ":c:data:`PyExc_BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:835 +#: c-api/exceptions.rst:845 msgid ":exc:`BlockingIOError`" msgstr ":exc:`BlockingIOError`" -#: ../Doc/c-api/exceptions.rst:837 +#: c-api/exceptions.rst:847 msgid ":c:data:`PyExc_BrokenPipeError`" msgstr ":c:data:`PyExc_BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:837 +#: c-api/exceptions.rst:847 msgid ":exc:`BrokenPipeError`" msgstr ":exc:`BrokenPipeError`" -#: ../Doc/c-api/exceptions.rst:839 +#: c-api/exceptions.rst:849 msgid ":c:data:`PyExc_BufferError`" msgstr ":c:data:`PyExc_BufferError`" -#: ../Doc/c-api/exceptions.rst:839 +#: c-api/exceptions.rst:849 msgid ":exc:`BufferError`" msgstr ":exc:`BufferError`" -#: ../Doc/c-api/exceptions.rst:841 +#: c-api/exceptions.rst:851 msgid ":c:data:`PyExc_ChildProcessError`" msgstr ":c:data:`PyExc_ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:841 +#: c-api/exceptions.rst:851 msgid ":exc:`ChildProcessError`" msgstr ":exc:`ChildProcessError`" -#: ../Doc/c-api/exceptions.rst:843 +#: c-api/exceptions.rst:853 msgid ":c:data:`PyExc_ConnectionAbortedError`" msgstr ":c:data:`PyExc_ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:843 +#: c-api/exceptions.rst:853 msgid ":exc:`ConnectionAbortedError`" msgstr ":exc:`ConnectionAbortedError`" -#: ../Doc/c-api/exceptions.rst:845 +#: c-api/exceptions.rst:855 msgid ":c:data:`PyExc_ConnectionError`" msgstr ":c:data:`PyExc_ConnectionError`" -#: ../Doc/c-api/exceptions.rst:845 +#: c-api/exceptions.rst:855 msgid ":exc:`ConnectionError`" msgstr ":exc:`ConnectionError`" -#: ../Doc/c-api/exceptions.rst:847 +#: c-api/exceptions.rst:857 msgid ":c:data:`PyExc_ConnectionRefusedError`" msgstr ":c:data:`PyExc_ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:847 +#: c-api/exceptions.rst:857 msgid ":exc:`ConnectionRefusedError`" msgstr ":exc:`ConnectionRefusedError`" -#: ../Doc/c-api/exceptions.rst:849 +#: c-api/exceptions.rst:859 msgid ":c:data:`PyExc_ConnectionResetError`" msgstr ":c:data:`PyExc_ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:849 +#: c-api/exceptions.rst:859 msgid ":exc:`ConnectionResetError`" msgstr ":exc:`ConnectionResetError`" -#: ../Doc/c-api/exceptions.rst:851 +#: c-api/exceptions.rst:861 msgid ":c:data:`PyExc_EOFError`" msgstr ":c:data:`PyExc_EOFError`" -#: ../Doc/c-api/exceptions.rst:851 +#: c-api/exceptions.rst:861 msgid ":exc:`EOFError`" msgstr ":exc:`EOFError`" -#: ../Doc/c-api/exceptions.rst:853 +#: c-api/exceptions.rst:863 msgid ":c:data:`PyExc_FileExistsError`" msgstr ":c:data:`PyExc_FileExistsError`" -#: ../Doc/c-api/exceptions.rst:853 +#: c-api/exceptions.rst:863 msgid ":exc:`FileExistsError`" msgstr ":exc:`FileExistsError`" -#: ../Doc/c-api/exceptions.rst:855 +#: c-api/exceptions.rst:865 msgid ":c:data:`PyExc_FileNotFoundError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:855 +#: c-api/exceptions.rst:865 msgid ":exc:`FileNotFoundError`" msgstr ":exc:`FileNotFoundError`" -#: ../Doc/c-api/exceptions.rst:857 +#: c-api/exceptions.rst:867 msgid ":c:data:`PyExc_FloatingPointError`" msgstr ":c:data:`PyExc_FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:857 +#: c-api/exceptions.rst:867 msgid ":exc:`FloatingPointError`" msgstr ":exc:`FloatingPointError`" -#: ../Doc/c-api/exceptions.rst:859 +#: c-api/exceptions.rst:869 msgid ":c:data:`PyExc_GeneratorExit`" msgstr ":c:data:`PyExc_GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:859 +#: c-api/exceptions.rst:869 msgid ":exc:`GeneratorExit`" msgstr ":exc:`GeneratorExit`" -#: ../Doc/c-api/exceptions.rst:861 +#: c-api/exceptions.rst:871 msgid ":c:data:`PyExc_ImportError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:861 +#: c-api/exceptions.rst:871 msgid ":exc:`ImportError`" msgstr ":exc:`ImportError`" -#: ../Doc/c-api/exceptions.rst:863 +#: c-api/exceptions.rst:873 msgid ":c:data:`PyExc_IndentationError`" msgstr ":c:data:`PyExc_IndentationError`" -#: ../Doc/c-api/exceptions.rst:863 +#: c-api/exceptions.rst:873 msgid ":exc:`IndentationError`" msgstr ":exc:`IndentationError`" -#: ../Doc/c-api/exceptions.rst:865 +#: c-api/exceptions.rst:875 msgid ":c:data:`PyExc_IndexError`" msgstr ":c:data:`PyExc_IndexError`" -#: ../Doc/c-api/exceptions.rst:865 +#: c-api/exceptions.rst:875 msgid ":exc:`IndexError`" msgstr ":exc:`IndexError`" -#: ../Doc/c-api/exceptions.rst:867 +#: c-api/exceptions.rst:877 msgid ":c:data:`PyExc_InterruptedError`" msgstr ":c:data:`PyExc_InterruptedError`" -#: ../Doc/c-api/exceptions.rst:867 +#: c-api/exceptions.rst:877 msgid ":exc:`InterruptedError`" msgstr ":exc:`InterruptedError`" -#: ../Doc/c-api/exceptions.rst:869 +#: c-api/exceptions.rst:879 msgid ":c:data:`PyExc_IsADirectoryError`" msgstr ":c:data:`PyExc_IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:869 +#: c-api/exceptions.rst:879 msgid ":exc:`IsADirectoryError`" msgstr ":exc:`IsADirectoryError`" -#: ../Doc/c-api/exceptions.rst:871 +#: c-api/exceptions.rst:881 msgid ":c:data:`PyExc_KeyError`" msgstr ":c:data:`PyExc_KeyError`" -#: ../Doc/c-api/exceptions.rst:871 +#: c-api/exceptions.rst:881 msgid ":exc:`KeyError`" msgstr ":exc:`KeyError`" -#: ../Doc/c-api/exceptions.rst:873 +#: c-api/exceptions.rst:883 msgid ":c:data:`PyExc_KeyboardInterrupt`" msgstr ":c:data:`PyExc_KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:873 +#: c-api/exceptions.rst:883 msgid ":exc:`KeyboardInterrupt`" msgstr ":exc:`KeyboardInterrupt`" -#: ../Doc/c-api/exceptions.rst:875 +#: c-api/exceptions.rst:885 msgid ":c:data:`PyExc_LookupError`" msgstr ":c:data:`PyExc_LookupError`" -#: ../Doc/c-api/exceptions.rst:875 +#: c-api/exceptions.rst:885 msgid ":exc:`LookupError`" msgstr ":exc:`LookupError`" -#: ../Doc/c-api/exceptions.rst:877 +#: c-api/exceptions.rst:887 msgid ":c:data:`PyExc_MemoryError`" msgstr ":c:data:`PyExc_MemoryError`" -#: ../Doc/c-api/exceptions.rst:877 +#: c-api/exceptions.rst:887 msgid ":exc:`MemoryError`" msgstr ":exc:`MemoryError`" -#: ../Doc/c-api/exceptions.rst:879 +#: c-api/exceptions.rst:889 +#, fuzzy msgid ":c:data:`PyExc_ModuleNotFoundError`" -msgstr "" +msgstr ":c:data:`PyExc_ModuleNotFoundError`." -#: ../Doc/c-api/exceptions.rst:879 +#: c-api/exceptions.rst:889 msgid ":exc:`ModuleNotFoundError`" -msgstr "" +msgstr ":exc:`ModuleNotFoundError`" -#: ../Doc/c-api/exceptions.rst:881 +#: c-api/exceptions.rst:891 msgid ":c:data:`PyExc_NameError`" msgstr ":c:data:`PyExc_NameError`" -#: ../Doc/c-api/exceptions.rst:881 +#: c-api/exceptions.rst:891 msgid ":exc:`NameError`" msgstr ":exc:`NameError`" -#: ../Doc/c-api/exceptions.rst:883 +#: c-api/exceptions.rst:893 msgid ":c:data:`PyExc_NotADirectoryError`" msgstr ":c:data:`PyExc_NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:883 +#: c-api/exceptions.rst:893 msgid ":exc:`NotADirectoryError`" msgstr ":exc:`NotADirectoryError`" -#: ../Doc/c-api/exceptions.rst:885 +#: c-api/exceptions.rst:895 msgid ":c:data:`PyExc_NotImplementedError`" msgstr ":c:data:`PyExc_NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:885 +#: c-api/exceptions.rst:895 msgid ":exc:`NotImplementedError`" msgstr ":exc:`NotImplementedError`" -#: ../Doc/c-api/exceptions.rst:887 +#: c-api/exceptions.rst:897 msgid ":c:data:`PyExc_OSError`" msgstr ":c:data:`PyExc_OSError`" -#: ../Doc/c-api/exceptions.rst:887 +#: c-api/exceptions.rst:897 msgid ":exc:`OSError`" msgstr ":exc:`OSError`" -#: ../Doc/c-api/exceptions.rst:889 +#: c-api/exceptions.rst:899 msgid ":c:data:`PyExc_OverflowError`" msgstr ":c:data:`PyExc_OverflowError`" -#: ../Doc/c-api/exceptions.rst:889 +#: c-api/exceptions.rst:899 msgid ":exc:`OverflowError`" msgstr ":exc:`OverflowError`" -#: ../Doc/c-api/exceptions.rst:891 +#: c-api/exceptions.rst:901 msgid ":c:data:`PyExc_PermissionError`" msgstr ":c:data:`PyExc_PermissionError`" -#: ../Doc/c-api/exceptions.rst:891 +#: c-api/exceptions.rst:901 msgid ":exc:`PermissionError`" msgstr ":exc:`PermissionError`" -#: ../Doc/c-api/exceptions.rst:893 +#: c-api/exceptions.rst:903 msgid ":c:data:`PyExc_ProcessLookupError`" msgstr ":c:data:`PyExc_ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:893 +#: c-api/exceptions.rst:903 msgid ":exc:`ProcessLookupError`" msgstr ":exc:`ProcessLookupError`" -#: ../Doc/c-api/exceptions.rst:895 +#: c-api/exceptions.rst:905 msgid ":c:data:`PyExc_RecursionError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:895 +#: c-api/exceptions.rst:905 msgid ":exc:`RecursionError`" -msgstr "" +msgstr ":exc:`RecursionError`" -#: ../Doc/c-api/exceptions.rst:897 +#: c-api/exceptions.rst:907 msgid ":c:data:`PyExc_ReferenceError`" msgstr ":c:data:`PyExc_ReferenceError`" -#: ../Doc/c-api/exceptions.rst:897 +#: c-api/exceptions.rst:907 msgid ":exc:`ReferenceError`" msgstr ":exc:`ReferenceError`" -#: ../Doc/c-api/exceptions.rst:897 +#: c-api/exceptions.rst:907 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/c-api/exceptions.rst:899 +#: c-api/exceptions.rst:909 msgid ":c:data:`PyExc_RuntimeError`" msgstr ":c:data:`PyExc_RuntimeError`" -#: ../Doc/c-api/exceptions.rst:899 +#: c-api/exceptions.rst:909 msgid ":exc:`RuntimeError`" msgstr ":exc:`RuntimeError`" -#: ../Doc/c-api/exceptions.rst:901 +#: c-api/exceptions.rst:911 msgid ":c:data:`PyExc_StopAsyncIteration`" msgstr ":c:data:`PyExc_StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:901 +#: c-api/exceptions.rst:911 msgid ":exc:`StopAsyncIteration`" msgstr ":exc:`StopAsyncIteration`" -#: ../Doc/c-api/exceptions.rst:903 +#: c-api/exceptions.rst:913 msgid ":c:data:`PyExc_StopIteration`" msgstr ":c:data:`PyExc_StopIteration`" -#: ../Doc/c-api/exceptions.rst:903 +#: c-api/exceptions.rst:913 msgid ":exc:`StopIteration`" msgstr ":exc:`StopIteration`" -#: ../Doc/c-api/exceptions.rst:905 +#: c-api/exceptions.rst:915 msgid ":c:data:`PyExc_SyntaxError`" msgstr ":c:data:`PyExc_SyntaxError`" -#: ../Doc/c-api/exceptions.rst:905 +#: c-api/exceptions.rst:915 msgid ":exc:`SyntaxError`" msgstr ":exc:`SyntaxError`" -#: ../Doc/c-api/exceptions.rst:907 +#: c-api/exceptions.rst:917 msgid ":c:data:`PyExc_SystemError`" msgstr ":c:data:`PyExc_SystemError`" -#: ../Doc/c-api/exceptions.rst:907 +#: c-api/exceptions.rst:917 msgid ":exc:`SystemError`" msgstr ":exc:`SystemError`" -#: ../Doc/c-api/exceptions.rst:909 +#: c-api/exceptions.rst:919 msgid ":c:data:`PyExc_SystemExit`" msgstr ":c:data:`PyExc_SystemExit`" -#: ../Doc/c-api/exceptions.rst:909 +#: c-api/exceptions.rst:919 msgid ":exc:`SystemExit`" msgstr ":exc:`SystemExit`" -#: ../Doc/c-api/exceptions.rst:911 +#: c-api/exceptions.rst:921 msgid ":c:data:`PyExc_TabError`" msgstr ":c:data:`PyExc_TabError`" -#: ../Doc/c-api/exceptions.rst:911 +#: c-api/exceptions.rst:921 msgid ":exc:`TabError`" msgstr ":exc:`TabError`" -#: ../Doc/c-api/exceptions.rst:913 +#: c-api/exceptions.rst:923 msgid ":c:data:`PyExc_TimeoutError`" msgstr ":c:data:`PyExc_ImportError`" -#: ../Doc/c-api/exceptions.rst:913 +#: c-api/exceptions.rst:923 msgid ":exc:`TimeoutError`" msgstr ":exc:`TimeoutError`" -#: ../Doc/c-api/exceptions.rst:915 +#: c-api/exceptions.rst:925 msgid ":c:data:`PyExc_TypeError`" msgstr ":c:data:`PyExc_TypeError`" -#: ../Doc/c-api/exceptions.rst:915 +#: c-api/exceptions.rst:925 msgid ":exc:`TypeError`" msgstr ":exc:`TypeError`" -#: ../Doc/c-api/exceptions.rst:917 +#: c-api/exceptions.rst:927 msgid ":c:data:`PyExc_UnboundLocalError`" msgstr ":c:data:`PyExc_UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:917 +#: c-api/exceptions.rst:927 msgid ":exc:`UnboundLocalError`" msgstr ":exc:`UnboundLocalError`" -#: ../Doc/c-api/exceptions.rst:919 +#: c-api/exceptions.rst:929 msgid ":c:data:`PyExc_UnicodeDecodeError`" msgstr ":c:data:`PyExc_UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:919 +#: c-api/exceptions.rst:929 msgid ":exc:`UnicodeDecodeError`" msgstr ":exc:`UnicodeDecodeError`" -#: ../Doc/c-api/exceptions.rst:921 +#: c-api/exceptions.rst:931 msgid ":c:data:`PyExc_UnicodeEncodeError`" msgstr ":c:data:`PyExc_UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:921 +#: c-api/exceptions.rst:931 msgid ":exc:`UnicodeEncodeError`" msgstr ":exc:`UnicodeEncodeError`" -#: ../Doc/c-api/exceptions.rst:923 +#: c-api/exceptions.rst:933 msgid ":c:data:`PyExc_UnicodeError`" msgstr ":c:data:`PyExc_UnicodeError`" -#: ../Doc/c-api/exceptions.rst:923 +#: c-api/exceptions.rst:933 msgid ":exc:`UnicodeError`" msgstr ":exc:`UnicodeError`" -#: ../Doc/c-api/exceptions.rst:925 +#: c-api/exceptions.rst:935 msgid ":c:data:`PyExc_UnicodeTranslateError`" msgstr ":c:data:`PyExc_UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:925 +#: c-api/exceptions.rst:935 msgid ":exc:`UnicodeTranslateError`" msgstr ":exc:`UnicodeTranslateError`" -#: ../Doc/c-api/exceptions.rst:927 +#: c-api/exceptions.rst:937 msgid ":c:data:`PyExc_ValueError`" msgstr ":c:data:`PyExc_ValueError`" -#: ../Doc/c-api/exceptions.rst:927 +#: c-api/exceptions.rst:937 msgid ":exc:`ValueError`" msgstr ":exc:`ValueError`" -#: ../Doc/c-api/exceptions.rst:929 +#: c-api/exceptions.rst:939 msgid ":c:data:`PyExc_ZeroDivisionError`" msgstr ":c:data:`PyExc_ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:929 +#: c-api/exceptions.rst:939 msgid ":exc:`ZeroDivisionError`" msgstr ":exc:`ZeroDivisionError`" -#: ../Doc/c-api/exceptions.rst:932 +#: c-api/exceptions.rst:942 msgid "" ":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:" "`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:" @@ -1264,160 +1275,159 @@ msgid "" "`PyExc_TimeoutError` were introduced following :pep:`3151`." msgstr "" -#: ../Doc/c-api/exceptions.rst:942 +#: c-api/exceptions.rst:952 msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." msgstr ":c:data:`PyExc_StopAsyncIteration` et :c:data:`PyExc_RecursionError`." -#: ../Doc/c-api/exceptions.rst:945 +#: c-api/exceptions.rst:955 msgid ":c:data:`PyExc_ModuleNotFoundError`." msgstr ":c:data:`PyExc_ModuleNotFoundError`." -#: ../Doc/c-api/exceptions.rst:948 +#: c-api/exceptions.rst:958 msgid "These are compatibility aliases to :c:data:`PyExc_OSError`:" msgstr "" -#: ../Doc/c-api/exceptions.rst:958 +#: c-api/exceptions.rst:968 msgid ":c:data:`PyExc_EnvironmentError`" msgstr ":c:data:`PyExc_EnvironmentError`" -#: ../Doc/c-api/exceptions.rst:960 +#: c-api/exceptions.rst:970 msgid ":c:data:`PyExc_IOError`" msgstr ":c:data:`PyExc_IOError`" -#: ../Doc/c-api/exceptions.rst:962 +#: c-api/exceptions.rst:972 msgid ":c:data:`PyExc_WindowsError`" msgstr ":c:data:`PyExc_WindowsError`" -#: ../Doc/c-api/exceptions.rst:962 +#: c-api/exceptions.rst:972 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/c-api/exceptions.rst:965 +#: c-api/exceptions.rst:975 msgid "These aliases used to be separate exception types." msgstr "" -#: ../Doc/c-api/exceptions.rst:968 ../Doc/c-api/exceptions.rst:1032 +#: c-api/exceptions.rst:1039 msgid "Notes:" msgstr "Notes :" -#: ../Doc/c-api/exceptions.rst:971 +#: c-api/exceptions.rst:981 msgid "This is a base class for other standard exceptions." msgstr "C'est la classe de base pour les autres exceptions standards." -#: ../Doc/c-api/exceptions.rst:974 -msgid "This is the same as :exc:`weakref.ReferenceError`." -msgstr "Identique à :exc:`weakref.ReferenceError`." - -#: ../Doc/c-api/exceptions.rst:977 +#: c-api/exceptions.rst:984 msgid "" "Only defined on Windows; protect code that uses this by testing that the " "preprocessor macro ``MS_WINDOWS`` is defined." msgstr "" -#: ../Doc/c-api/exceptions.rst:983 +#: c-api/exceptions.rst:990 msgid "Standard Warning Categories" msgstr "" -#: ../Doc/c-api/exceptions.rst:985 +#: c-api/exceptions.rst:992 msgid "" "All standard Python warning categories are available as global variables " "whose names are ``PyExc_`` followed by the Python exception name. These have " -"the type :c:type:`PyObject\\*`; they are all class objects. For " -"completeness, here are all the variables:" +"the type :c:type:`PyObject*`; they are all class objects. For completeness, " +"here are all the variables:" msgstr "" -#: ../Doc/c-api/exceptions.rst:1006 +#: c-api/exceptions.rst:1013 msgid ":c:data:`PyExc_Warning`" msgstr ":c:data:`PyExc_Warning`" -#: ../Doc/c-api/exceptions.rst:1006 +#: c-api/exceptions.rst:1013 msgid ":exc:`Warning`" msgstr ":exc:`Warning`" -#: ../Doc/c-api/exceptions.rst:1008 +#: c-api/exceptions.rst:1015 msgid ":c:data:`PyExc_BytesWarning`" msgstr ":c:data:`PyExc_BytesWarning`" -#: ../Doc/c-api/exceptions.rst:1008 +#: c-api/exceptions.rst:1015 msgid ":exc:`BytesWarning`" msgstr ":exc:`BytesWarning`" -#: ../Doc/c-api/exceptions.rst:1010 +#: c-api/exceptions.rst:1017 msgid ":c:data:`PyExc_DeprecationWarning`" msgstr ":c:data:`PyExc_DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1010 +#: c-api/exceptions.rst:1017 msgid ":exc:`DeprecationWarning`" msgstr ":exc:`DeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1012 +#: c-api/exceptions.rst:1019 msgid ":c:data:`PyExc_FutureWarning`" msgstr ":c:data:`PyExc_FutureWarning`" -#: ../Doc/c-api/exceptions.rst:1012 +#: c-api/exceptions.rst:1019 msgid ":exc:`FutureWarning`" msgstr ":exc:`FutureWarning`" -#: ../Doc/c-api/exceptions.rst:1014 +#: c-api/exceptions.rst:1021 msgid ":c:data:`PyExc_ImportWarning`" msgstr ":c:data:`PyExc_ImportWarning`" -#: ../Doc/c-api/exceptions.rst:1014 +#: c-api/exceptions.rst:1021 msgid ":exc:`ImportWarning`" msgstr ":exc:`ImportWarning`" -#: ../Doc/c-api/exceptions.rst:1016 +#: c-api/exceptions.rst:1023 msgid ":c:data:`PyExc_PendingDeprecationWarning`" msgstr ":c:data:`PyExc_PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1016 +#: c-api/exceptions.rst:1023 msgid ":exc:`PendingDeprecationWarning`" msgstr ":exc:`PendingDeprecationWarning`" -#: ../Doc/c-api/exceptions.rst:1018 +#: c-api/exceptions.rst:1025 msgid ":c:data:`PyExc_ResourceWarning`" msgstr ":c:data:`PyExc_ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1018 +#: c-api/exceptions.rst:1025 msgid ":exc:`ResourceWarning`" msgstr ":exc:`ResourceWarning`" -#: ../Doc/c-api/exceptions.rst:1020 +#: c-api/exceptions.rst:1027 msgid ":c:data:`PyExc_RuntimeWarning`" msgstr ":c:data:`PyExc_RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1020 +#: c-api/exceptions.rst:1027 msgid ":exc:`RuntimeWarning`" msgstr ":exc:`RuntimeWarning`" -#: ../Doc/c-api/exceptions.rst:1022 +#: c-api/exceptions.rst:1029 msgid ":c:data:`PyExc_SyntaxWarning`" msgstr ":c:data:`PyExc_SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1022 +#: c-api/exceptions.rst:1029 msgid ":exc:`SyntaxWarning`" msgstr ":exc:`SyntaxWarning`" -#: ../Doc/c-api/exceptions.rst:1024 +#: c-api/exceptions.rst:1031 msgid ":c:data:`PyExc_UnicodeWarning`" msgstr ":c:data:`PyExc_UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1024 +#: c-api/exceptions.rst:1031 msgid ":exc:`UnicodeWarning`" msgstr ":exc:`UnicodeWarning`" -#: ../Doc/c-api/exceptions.rst:1026 +#: c-api/exceptions.rst:1033 msgid ":c:data:`PyExc_UserWarning`" msgstr ":c:data:`PyExc_UserWarning`" -#: ../Doc/c-api/exceptions.rst:1026 +#: c-api/exceptions.rst:1033 msgid ":exc:`UserWarning`" msgstr ":exc:`UserWarning`" -#: ../Doc/c-api/exceptions.rst:1029 +#: c-api/exceptions.rst:1036 msgid ":c:data:`PyExc_ResourceWarning`." msgstr ":c:data:`PyExc_ResourceWarning`." -#: ../Doc/c-api/exceptions.rst:1035 +#: c-api/exceptions.rst:1042 msgid "This is a base class for other standard warning categories." msgstr "C'est la classe de base pour les autres catégories de *warning*." + +#~ msgid "This is the same as :exc:`weakref.ReferenceError`." +#~ msgstr "Identique à :exc:`weakref.ReferenceError`." diff --git a/c-api/file.po b/c-api/file.po index e97c084692..b30fe7b4e4 100644 --- a/c-api/file.po +++ b/c-api/file.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-18 09:48+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -15,14 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/c-api/file.rst:6 +#: c-api/file.rst:6 msgid "File Objects" msgstr "Objets fichiers" -#: ../Doc/c-api/file.rst:10 +#: c-api/file.rst:10 +#, fuzzy msgid "" "These APIs are a minimal emulation of the Python 2 C API for built-in file " -"objects, which used to rely on the buffered I/O (:c:type:`FILE\\*`) support " +"objects, which used to rely on the buffered I/O (:c:type:`FILE*`) support " "from the C standard library. In Python 3, files and streams use the new :" "mod:`io` module, which defines several layers over the low-level unbuffered " "I/O of the operating system. The functions described below are convenience " @@ -41,12 +42,13 @@ msgstr "" "l'interpréteur ; il est conseillé au code tiers d'utiliser les API de :mod:" "`io` à la place." -#: ../Doc/c-api/file.rst:22 +#: c-api/file.rst:22 +#, fuzzy msgid "" "Create a Python file object from the file descriptor of an already opened " "file *fd*. The arguments *name*, *encoding*, *errors* and *newline* can be " -"*NULL* to use the defaults; *buffering* can be *-1* to use the default. " -"*name* is ignored and kept for backward compatibility. Return *NULL* on " +"``NULL`` to use the defaults; *buffering* can be *-1* to use the default. " +"*name* is ignored and kept for backward compatibility. Return ``NULL`` on " "failure. For a more comprehensive description of the arguments, please refer " "to the :func:`io.open` function documentation." msgstr "" @@ -58,7 +60,7 @@ msgstr "" "détaillée des arguments, merci de vous référer à la documentation de " "fonction :func:`io.open`." -#: ../Doc/c-api/file.rst:31 +#: c-api/file.rst:31 msgid "" "Since Python streams have their own buffering layer, mixing them with OS-" "level file descriptors can produce various issues (such as unexpected " @@ -69,11 +71,11 @@ msgstr "" "d'exploitation peut produire des erreurs (comme par exemple un ordre des " "données inattendu)." -#: ../Doc/c-api/file.rst:35 +#: c-api/file.rst:35 msgid "Ignore *name* attribute." msgstr "ignore l'attribut *name*" -#: ../Doc/c-api/file.rst:41 +#: c-api/file.rst:41 msgid "" "Return the file descriptor associated with *p* as an :c:type:`int`. If the " "object is an integer, its value is returned. If not, the object's :meth:" @@ -87,7 +89,7 @@ msgstr "" "renvoyer un entier, qui est renvoyé en tant que valeur du descripteur. " "Affecte une exception et renvoie ``-1`` lors d'un échec." -#: ../Doc/c-api/file.rst:52 +#: c-api/file.rst:52 msgid "" "Equivalent to ``p.readline([n])``, this function reads one line from the " "object *p*. *p* may be a file object or any object with a :meth:`~io.IOBase." @@ -110,44 +112,50 @@ msgstr "" "indépendamment de sa taille, mais :exc:`EOFError` est levée si la fin du " "fichier est atteinte immédiatement." -#: ../Doc/c-api/file.rst:65 +#: c-api/file.rst:65 msgid "" "Overrides the normal behavior of :func:`io.open_code` to pass its parameter " "through the provided handler." msgstr "" -#: ../Doc/c-api/file.rst:68 +#: c-api/file.rst:68 msgid "" "The handler is a function of type :c:type:`PyObject *(\\*)(PyObject *path, " "void *userData)`, where *path* is guaranteed to be :c:type:`PyUnicodeObject`." msgstr "" -#: ../Doc/c-api/file.rst:71 +#: c-api/file.rst:71 msgid "" "The *userData* pointer is passed into the hook function. Since hook " "functions may be called from different runtimes, this pointer should not " "refer directly to Python state." msgstr "" -#: ../Doc/c-api/file.rst:75 +#: c-api/file.rst:75 msgid "" "As this hook is intentionally used during import, avoid importing new " "modules during its execution unless they are known to be frozen or available " "in ``sys.modules``." msgstr "" -#: ../Doc/c-api/file.rst:79 +#: c-api/file.rst:79 msgid "" "Once a hook has been set, it cannot be removed or replaced, and later calls " "to :c:func:`PyFile_SetOpenCodeHook` will fail. On failure, the function " "returns -1 and sets an exception if the interpreter has been initialized." msgstr "" -#: ../Doc/c-api/file.rst:83 +#: c-api/file.rst:83 msgid "This function is safe to call before :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/file.rst:93 +#: c-api/file.rst:86 +msgid "" +"Raises an :ref:`auditing event ` ``setopencodehook`` with no " +"arguments." +msgstr "" + +#: c-api/file.rst:95 msgid "" "Write object *obj* to file object *p*. The only supported flag for *flags* " "is :const:`Py_PRINT_RAW`; if given, the :func:`str` of the object is written " @@ -159,7 +167,7 @@ msgstr "" "l'objet est écrit à la place de l'attribut :func:`repr`. Retourne ``0`` en " "cas de succès ou ``-1`` en cas échec ; l'exception appropriée sera levée." -#: ../Doc/c-api/file.rst:101 +#: c-api/file.rst:103 msgid "" "Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " "failure; the appropriate exception will be set." diff --git a/c-api/float.po b/c-api/float.po index e668682a02..f02f3605ed 100644 --- a/c-api/float.po +++ b/c-api/float.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-01-14 15:30+0100\n" "Last-Translator: ANTOINE FOURES \n" "Language-Team: FRENCH \n" @@ -51,15 +51,18 @@ msgstr "" "sous-type de :c:type:`PyFloatObject`." #: ../Doc/c-api/float.rst:36 +#, fuzzy msgid "" "Create a :c:type:`PyFloatObject` object based on the string value in *str*, " -"or *NULL* on failure." +"or ``NULL`` on failure." msgstr "" "Crée un objet :c:type:`PyFloatObject` à partir de la valeur de la chaîne de " "caractères *str*, ou *NULL* en cas d'échec." #: ../Doc/c-api/float.rst:42 -msgid "Create a :c:type:`PyFloatObject` object from *v*, or *NULL* on failure." +#, fuzzy +msgid "" +"Create a :c:type:`PyFloatObject` object from *v*, or ``NULL`` on failure." msgstr "" "Crée un objet :c:type:`PyFloatObject` à partir de *v*, ou *NULL* en cas " "d'échec." diff --git a/c-api/function.po b/c-api/function.po index 9185b0b572..f00fa9a714 100644 --- a/c-api/function.po +++ b/c-api/function.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -20,11 +20,11 @@ msgstr "Objets fonctions" #: ../Doc/c-api/function.rst:10 msgid "There are a few functions specific to Python functions." -msgstr "" +msgstr "Certaines fonctions sont spécifiques aux fonctions Python." #: ../Doc/c-api/function.rst:15 msgid "The C structure used for functions." -msgstr "" +msgstr "La structure C utilisée pour les fonctions." #: ../Doc/c-api/function.rst:22 msgid "" @@ -32,11 +32,13 @@ msgid "" "function type. It is exposed to Python programmers as ``types." "FunctionType``." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` et représente le type fonction " +"en Python. Il est exposé aux développeurs comme ``types.FunctionType``." #: ../Doc/c-api/function.rst:28 msgid "" "Return true if *o* is a function object (has type :c:data:" -"`PyFunction_Type`). The parameter must not be *NULL*." +"`PyFunction_Type`). The parameter must not be ``NULL``." msgstr "" #: ../Doc/c-api/function.rst:34 @@ -45,30 +47,33 @@ msgid "" "*globals* must be a dictionary with the global variables accessible to the " "function." msgstr "" +"Renvoie une nouvelle fonction associée avec l'objet *code*. *globals* doit " +"être un dictionnaire avec les variables globales accessibles à la fonction." #: ../Doc/c-api/function.rst:37 msgid "" "The function's docstring and name are retrieved from the code object. " "*__module__* is retrieved from *globals*. The argument defaults, annotations " -"and closure are set to *NULL*. *__qualname__* is set to the same value as " +"and closure are set to ``NULL``. *__qualname__* is set to the same value as " "the function's name." msgstr "" #: ../Doc/c-api/function.rst:44 msgid "" "As :c:func:`PyFunction_New`, but also allows setting the function object's " -"``__qualname__`` attribute. *qualname* should be a unicode object or NULL; " -"if NULL, the ``__qualname__`` attribute is set to the same value as its " -"``__name__`` attribute." +"``__qualname__`` attribute. *qualname* should be a unicode object or " +"``NULL``; if ``NULL``, the ``__qualname__`` attribute is set to the same " +"value as its ``__name__`` attribute." msgstr "" #: ../Doc/c-api/function.rst:54 msgid "Return the code object associated with the function object *op*." -msgstr "" +msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*." #: ../Doc/c-api/function.rst:59 msgid "Return the globals dictionary associated with the function object *op*." msgstr "" +"Renvoie le dictionnaire global associé avec l'objet de la fonction *op*." #: ../Doc/c-api/function.rst:64 msgid "" @@ -80,40 +85,52 @@ msgstr "" #: ../Doc/c-api/function.rst:71 msgid "" "Return the argument default values of the function object *op*. This can be " -"a tuple of arguments or *NULL*." +"a tuple of arguments or ``NULL``." msgstr "" +"Renvoie les valeurs par défaut de l'argument de l'objet de la fonction *op*. " +"Cela peut être un tuple d'arguments ou ``NULL``." #: ../Doc/c-api/function.rst:77 msgid "" "Set the argument default values for the function object *op*. *defaults* " -"must be *Py_None* or a tuple." +"must be ``Py_None`` or a tuple." msgstr "" +"Définir les valeurs par défaut de l'argument pour l'objet de la fonction " +"*op*. *defaults* doit être ``Py_None`` ou un tuple." #: ../Doc/c-api/function.rst:80 ../Doc/c-api/function.rst:94 #: ../Doc/c-api/function.rst:108 msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." -msgstr "" +msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec." #: ../Doc/c-api/function.rst:85 msgid "" "Return the closure associated with the function object *op*. This can be " -"*NULL* or a tuple of cell objects." +"``NULL`` or a tuple of cell objects." msgstr "" +"Renvoie la fermeture associée avec l'objet de la fonction *op*. Cela peut " +"être ``NULL`` ou un tuple d'objets cellule." #: ../Doc/c-api/function.rst:91 msgid "" "Set the closure associated with the function object *op*. *closure* must be " -"*Py_None* or a tuple of cell objects." +"``Py_None`` or a tuple of cell objects." msgstr "" +"Définir la fermeture associée avec l'objet de la fonction *op*. *closure* " +"doit être ``Py_None`` ou un tuple d'objets cellule." #: ../Doc/c-api/function.rst:99 msgid "" "Return the annotations of the function object *op*. This can be a mutable " -"dictionary or *NULL*." +"dictionary or ``NULL``." msgstr "" +"Renvoie les annotations de l'objet de la fonction *op*. Cela peut être un " +"dictionnaire mutable ou ``NULL``." #: ../Doc/c-api/function.rst:105 msgid "" "Set the annotations for the function object *op*. *annotations* must be a " -"dictionary or *Py_None*." +"dictionary or ``Py_None``." msgstr "" +"Définir les annotations pour l'objet de la fonction *op*. *annotations* doit " +"être un dictionnaire ou ``Py_None``." diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po index 69e0b021c2..55ca3d4b77 100644 --- a/c-api/gcsupport.po +++ b/c-api/gcsupport.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,21 +14,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/gcsupport.rst:6 +#: c-api/gcsupport.rst:6 msgid "Supporting Cyclic Garbage Collection" msgstr "" -#: ../Doc/c-api/gcsupport.rst:8 +#: c-api/gcsupport.rst:8 msgid "" "Python's support for detecting and collecting garbage which involves " -"circular references requires support from object types which are \"containers" -"\" for other objects which may also be containers. Types which do not store " -"references to other objects, or which only store references to atomic types " -"(such as numbers or strings), do not need to provide any explicit support " -"for garbage collection." +"circular references requires support from object types which are " +"\"containers\" for other objects which may also be containers. Types which " +"do not store references to other objects, or which only store references to " +"atomic types (such as numbers or strings), do not need to provide any " +"explicit support for garbage collection." msgstr "" -#: ../Doc/c-api/gcsupport.rst:15 +#: c-api/gcsupport.rst:15 msgid "" "To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " "the type object must include the :const:`Py_TPFLAGS_HAVE_GC` and provide an " @@ -37,49 +37,49 @@ msgid "" "implementation must also be provided." msgstr "" -#: ../Doc/c-api/gcsupport.rst:24 +#: c-api/gcsupport.rst:24 msgid "" "Objects with a type with this flag set must conform with the rules " "documented here. For convenience these objects will be referred to as " "container objects." msgstr "" -#: ../Doc/c-api/gcsupport.rst:28 +#: c-api/gcsupport.rst:28 msgid "Constructors for container types must conform to two rules:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:30 +#: c-api/gcsupport.rst:30 msgid "" "The memory for the object must be allocated using :c:func:`PyObject_GC_New` " "or :c:func:`PyObject_GC_NewVar`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:33 +#: c-api/gcsupport.rst:33 msgid "" "Once all the fields which may contain references to other containers are " "initialized, it must call :c:func:`PyObject_GC_Track`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:39 +#: c-api/gcsupport.rst:39 msgid "" "Analogous to :c:func:`PyObject_New` but for container objects with the :" "const:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" -#: ../Doc/c-api/gcsupport.rst:45 +#: c-api/gcsupport.rst:45 msgid "" "Analogous to :c:func:`PyObject_NewVar` but for container objects with the :" "const:`Py_TPFLAGS_HAVE_GC` flag set." msgstr "" -#: ../Doc/c-api/gcsupport.rst:51 +#: c-api/gcsupport.rst:51 msgid "" "Resize an object allocated by :c:func:`PyObject_NewVar`. Returns the " -"resized object or *NULL* on failure. *op* must not be tracked by the " +"resized object or ``NULL`` on failure. *op* must not be tracked by the " "collector yet." msgstr "" -#: ../Doc/c-api/gcsupport.rst:57 +#: c-api/gcsupport.rst:57 msgid "" "Adds the object *op* to the set of container objects tracked by the " "collector. The collector can run at unexpected times so objects must be " @@ -88,30 +88,30 @@ msgid "" "usually near the end of the constructor." msgstr "" -#: ../Doc/c-api/gcsupport.rst:64 +#: c-api/gcsupport.rst:64 msgid "" "Similarly, the deallocator for the object must conform to a similar pair of " "rules:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:67 +#: c-api/gcsupport.rst:67 msgid "" "Before fields which refer to other containers are invalidated, :c:func:" "`PyObject_GC_UnTrack` must be called." msgstr "" -#: ../Doc/c-api/gcsupport.rst:70 +#: c-api/gcsupport.rst:70 msgid "" "The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:75 +#: c-api/gcsupport.rst:75 msgid "" "Releases memory allocated to an object using :c:func:`PyObject_GC_New` or :c:" "func:`PyObject_GC_NewVar`." msgstr "" -#: ../Doc/c-api/gcsupport.rst:81 +#: c-api/gcsupport.rst:81 msgid "" "Remove the object *op* from the set of container objects tracked by the " "collector. Note that :c:func:`PyObject_GC_Track` can be called again on " @@ -121,19 +121,19 @@ msgid "" "handler become invalid." msgstr "" -#: ../Doc/c-api/gcsupport.rst:90 +#: c-api/gcsupport.rst:90 msgid "" "The :c:func:`_PyObject_GC_TRACK` and :c:func:`_PyObject_GC_UNTRACK` macros " "have been removed from the public C API." msgstr "" -#: ../Doc/c-api/gcsupport.rst:93 +#: c-api/gcsupport.rst:93 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " "parameter of this type:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:98 +#: c-api/gcsupport.rst:98 msgid "" "Type of the visitor function passed to the :c:member:`~PyTypeObject." "tp_traverse` handler. The function should be called with an object to " @@ -143,23 +143,23 @@ msgid "" "users will need to write their own visitor functions." msgstr "" -#: ../Doc/c-api/gcsupport.rst:105 +#: c-api/gcsupport.rst:105 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " "type:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:110 +#: c-api/gcsupport.rst:110 msgid "" "Traversal function for a container object. Implementations must call the " "*visit* function for each object directly contained by *self*, with the " "parameters to *visit* being the contained object and the *arg* value passed " -"to the handler. The *visit* function must not be called with a *NULL* " +"to the handler. The *visit* function must not be called with a ``NULL`` " "object argument. If *visit* returns a non-zero value that value should be " "returned immediately." msgstr "" -#: ../Doc/c-api/gcsupport.rst:117 +#: c-api/gcsupport.rst:117 msgid "" "To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, a :c:" "func:`Py_VISIT` macro is provided. In order to use this macro, the :c:" @@ -167,20 +167,20 @@ msgid "" "exactly *visit* and *arg*:" msgstr "" -#: ../Doc/c-api/gcsupport.rst:124 +#: c-api/gcsupport.rst:124 msgid "" -"If *o* is not *NULL*, call the *visit* callback, with arguments *o* and " +"If *o* is not ``NULL``, call the *visit* callback, with arguments *o* and " "*arg*. If *visit* returns a non-zero value, then return it. Using this " "macro, :c:member:`~PyTypeObject.tp_traverse` handlers look like::" msgstr "" -#: ../Doc/c-api/gcsupport.rst:137 +#: c-api/gcsupport.rst:137 msgid "" "The :c:member:`~PyTypeObject.tp_clear` handler must be of the :c:type:" -"`inquiry` type, or *NULL* if the object is immutable." +"`inquiry` type, or ``NULL`` if the object is immutable." msgstr "" -#: ../Doc/c-api/gcsupport.rst:143 +#: c-api/gcsupport.rst:143 msgid "" "Drop references that may have created reference cycles. Immutable objects " "do not have to define this method since they can never directly create " diff --git a/c-api/gen.po b/c-api/gen.po index 10df7139cb..9b0d2c60cd 100644 --- a/c-api/gen.po +++ b/c-api/gen.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-05-27 19:40+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-10-04 12:24+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -40,33 +40,39 @@ msgid "The type object corresponding to generator objects." msgstr "Le type objet correspondant aux objets générateurs." #: ../Doc/c-api/gen.rst:25 -msgid "Return true if *ob* is a generator object; *ob* must not be *NULL*." +#, fuzzy +msgid "Return true if *ob* is a generator object; *ob* must not be ``NULL``." msgstr "" "Renvoie ``True`` si *ob* est un objet générateur. *ob* ne doit pas être " "*NULL*." #: ../Doc/c-api/gen.rst:30 -msgid "Return true if *ob*'s type is *PyGen_Type*; *ob* must not be *NULL*." +#, fuzzy +msgid "" +"Return true if *ob*'s type is :c:type:`PyGen_Type`; *ob* must not be " +"``NULL``." msgstr "" "Renvoie ``True`` si le type de *ob* est *PyGen_Type*. *ob* ne doit pas être " "*NULL*." #: ../Doc/c-api/gen.rst:35 +#, fuzzy msgid "" "Create and return a new generator object based on the *frame* object. A " "reference to *frame* is stolen by this function. The argument must not be " -"*NULL*." +"``NULL``." 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*." #: ../Doc/c-api/gen.rst:41 +#, fuzzy msgid "" "Create and return a new generator object based on the *frame* object, with " "``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " "to *frame* is stolen by this function. The *frame* argument must not be " -"*NULL*." +"``NULL``." msgstr "" "Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*, avec " "``__name__`` et ``__qualname__`` valant *name* et *qualname*. Une référence " diff --git a/c-api/import.po b/c-api/import.po index a47f98a478..6447cf166f 100644 --- a/c-api/import.po +++ b/c-api/import.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -21,7 +21,7 @@ msgstr "Importer des modules" #: ../Doc/c-api/import.rst:16 msgid "" "This is a simplified interface to :c:func:`PyImport_ImportModuleEx` below, " -"leaving the *globals* and *locals* arguments set to *NULL* and *level* set " +"leaving the *globals* and *locals* arguments set to ``NULL`` and *level* set " "to 0. When the *name* argument contains a dot (when it specifies a " "submodule of a package), the *fromlist* argument is set to the list " "``['*']`` so that the return value is the named module rather than the top-" @@ -29,7 +29,7 @@ msgid "" "this has an additional side effect when *name* in fact specifies a " "subpackage instead of a submodule: the submodules specified in the package's " "``__all__`` variable are loaded.) Return a new reference to the imported " -"module, or *NULL* with an exception set on failure. A failing import of a " +"module, or ``NULL`` with an exception set on failure. A failing import of a " "module doesn't leave the module in :data:`sys.modules`." msgstr "" @@ -58,7 +58,7 @@ msgstr "" #: ../Doc/c-api/import.rst:49 ../Doc/c-api/import.rst:65 msgid "" "The return value is a new reference to the imported module or top-level " -"package, or *NULL* with an exception set on failure. Like for :func:" +"package, or ``NULL`` with an exception set on failure. Like for :func:" "`__import__`, the return value when a submodule of a package was requested " "is normally the top-level package, unless a non-empty *fromlist* was given." msgstr "" @@ -97,7 +97,7 @@ msgstr "" #: ../Doc/c-api/import.rst:94 msgid "" -"Reload a module. Return a new reference to the reloaded module, or *NULL* " +"Reload a module. Return a new reference to the reloaded module, or ``NULL`` " "with an exception set on failure (the module still exists in this case)." msgstr "" @@ -106,7 +106,7 @@ msgid "" "Return the module object corresponding to a module name. The *name* " "argument may be of the form ``package.module``. First check the modules " "dictionary if there's one there, and if not, create a new one and insert it " -"in the modules dictionary. Return *NULL* with an exception set on failure." +"in the modules dictionary. Return ``NULL`` with an exception set on failure." msgstr "" #: ../Doc/c-api/import.rst:107 @@ -129,9 +129,9 @@ msgid "" "Given a module name (possibly of the form ``package.module``) and a code " "object read from a Python bytecode file or obtained from the built-in " "function :func:`compile`, load the module. Return a new reference to the " -"module object, or *NULL* with an exception set if an error occurred. *name* " -"is removed from :attr:`sys.modules` in error cases, even if *name* was " -"already in :attr:`sys.modules` on entry to :c:func:" +"module object, or ``NULL`` with an exception set if an error occurred. " +"*name* is removed from :attr:`sys.modules` in error cases, even if *name* " +"was already in :attr:`sys.modules` on entry to :c:func:" "`PyImport_ExecCodeModule`. Leaving incompletely initialized modules in :" "attr:`sys.modules` is dangerous, as imports of such modules have no way to " "know that the module object is an unknown (and probably damaged with respect " @@ -228,8 +228,8 @@ msgstr "" #: ../Doc/c-api/import.rst:209 msgid "" "Return the already imported module with the given name. If the module has " -"not been imported yet then returns NULL but does not set an error. Returns " -"NULL and sets an error if the lookup failed." +"not been imported yet then returns ``NULL`` but does not set an error. " +"Returns ``NULL`` and sets an error if the lookup failed." msgstr "" #: ../Doc/c-api/import.rst:217 @@ -285,11 +285,16 @@ msgstr "" #: ../Doc/c-api/import.rst:279 msgid "" "This pointer is initialized to point to an array of :c:type:`struct _frozen` " -"records, terminated by one whose members are all *NULL* or zero. When a " +"records, terminated by one whose members are all ``NULL`` or zero. When a " "frozen module is imported, it is searched in this table. Third-party code " "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" +"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :" +"c:type:`struct _frozen`, dont tous les membres de la dernière valent " +"``NULL`` ou zéro. Quand un module gelé est importé, il est cherché dans ce " +"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " +"collection de module gelés." #: ../Doc/c-api/import.rst:287 msgid "" @@ -314,7 +319,7 @@ msgstr "" #: ../Doc/c-api/import.rst:312 msgid "" "Add a collection of modules to the table of built-in modules. The *newtab* " -"array must end with a sentinel entry which contains *NULL* for the :attr:" +"array must end with a sentinel entry which contains ``NULL`` for the :attr:" "`name` field; failure to provide the sentinel value can result in a memory " "fault. Returns ``0`` on success or ``-1`` if insufficient memory could be " "allocated to extend the internal table. In the event of failure, no modules " diff --git a/c-api/index.po b/c-api/index.po index bcabd41569..d9de317036 100644 --- a/c-api/index.po +++ b/c-api/index.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-02-15 00:33+0100\n" diff --git a/c-api/init.po b/c-api/init.po index eacc17540e..b6ce7a8faa 100644 --- a/c-api/init.po +++ b/c-api/init.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-11-29 18:22+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,19 +14,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/init.rst:8 +#: c-api/init.rst:8 msgid "Initialization, Finalization, and Threads" msgstr "" -#: ../Doc/c-api/init.rst:10 +#: c-api/init.rst:10 msgid "See also :ref:`Python Initialization Configuration `." msgstr "" -#: ../Doc/c-api/init.rst:15 +#: c-api/init.rst:15 msgid "Before Python Initialization" msgstr "" -#: ../Doc/c-api/init.rst:17 +#: c-api/init.rst:17 msgid "" "In an application embedding Python, the :c:func:`Py_Initialize` function " "must be called before using any other Python/C API functions; with the " @@ -34,132 +34,136 @@ msgid "" "`." msgstr "" -#: ../Doc/c-api/init.rst:22 +#: c-api/init.rst:22 msgid "" "The following functions can be safely called before Python is initialized:" msgstr "" -#: ../Doc/c-api/init.rst:24 +#: c-api/init.rst:24 msgid "Configuration functions:" msgstr "" -#: ../Doc/c-api/init.rst:26 +#: c-api/init.rst:26 msgid ":c:func:`PyImport_AppendInittab`" msgstr "" -#: ../Doc/c-api/init.rst:27 +#: c-api/init.rst:27 msgid ":c:func:`PyImport_ExtendInittab`" msgstr "" -#: ../Doc/c-api/init.rst:28 +#: c-api/init.rst:28 msgid ":c:func:`PyInitFrozenExtensions`" msgstr "" -#: ../Doc/c-api/init.rst:29 +#: c-api/init.rst:29 msgid ":c:func:`PyMem_SetAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:30 +#: c-api/init.rst:30 msgid ":c:func:`PyMem_SetupDebugHooks`" msgstr "" -#: ../Doc/c-api/init.rst:31 +#: c-api/init.rst:31 msgid ":c:func:`PyObject_SetArenaAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:32 +#: c-api/init.rst:32 msgid ":c:func:`Py_SetPath`" msgstr "" -#: ../Doc/c-api/init.rst:33 +#: c-api/init.rst:33 msgid ":c:func:`Py_SetProgramName`" msgstr "" -#: ../Doc/c-api/init.rst:34 +#: c-api/init.rst:34 msgid ":c:func:`Py_SetPythonHome`" msgstr "" -#: ../Doc/c-api/init.rst:35 +#: c-api/init.rst:35 msgid ":c:func:`Py_SetStandardStreamEncoding`" msgstr "" -#: ../Doc/c-api/init.rst:36 +#: c-api/init.rst:36 msgid ":c:func:`PySys_AddWarnOption`" msgstr "" -#: ../Doc/c-api/init.rst:37 +#: c-api/init.rst:37 msgid ":c:func:`PySys_AddXOption`" msgstr "" -#: ../Doc/c-api/init.rst:38 +#: c-api/init.rst:38 msgid ":c:func:`PySys_ResetWarnOptions`" msgstr "" -#: ../Doc/c-api/init.rst:40 +#: c-api/init.rst:40 msgid "Informative functions:" msgstr "" -#: ../Doc/c-api/init.rst:42 +#: c-api/init.rst:42 msgid ":c:func:`Py_IsInitialized`" msgstr "" -#: ../Doc/c-api/init.rst:43 +#: c-api/init.rst:43 msgid ":c:func:`PyMem_GetAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:44 +#: c-api/init.rst:44 msgid ":c:func:`PyObject_GetArenaAllocator`" msgstr "" -#: ../Doc/c-api/init.rst:45 +#: c-api/init.rst:45 msgid ":c:func:`Py_GetBuildInfo`" msgstr "" -#: ../Doc/c-api/init.rst:46 +#: c-api/init.rst:46 msgid ":c:func:`Py_GetCompiler`" msgstr "" -#: ../Doc/c-api/init.rst:47 +#: c-api/init.rst:47 msgid ":c:func:`Py_GetCopyright`" msgstr "" -#: ../Doc/c-api/init.rst:48 +#: c-api/init.rst:48 msgid ":c:func:`Py_GetPlatform`" msgstr "" -#: ../Doc/c-api/init.rst:49 +#: c-api/init.rst:49 msgid ":c:func:`Py_GetVersion`" msgstr "" -#: ../Doc/c-api/init.rst:51 +#: c-api/init.rst:51 +#, fuzzy msgid "Utilities:" -msgstr "" +msgstr "Utilitaires" -#: ../Doc/c-api/init.rst:53 +#: c-api/init.rst:53 msgid ":c:func:`Py_DecodeLocale`" msgstr "" -#: ../Doc/c-api/init.rst:55 +#: c-api/init.rst:55 msgid "Memory allocators:" msgstr "" -#: ../Doc/c-api/init.rst:57 +#: c-api/init.rst:57 +#, fuzzy msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/init.rst:58 +#: c-api/init.rst:58 +#, fuzzy msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/init.rst:59 +#: c-api/init.rst:59 +#, fuzzy msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/init.rst:60 +#: c-api/init.rst:60 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: ../Doc/c-api/init.rst:64 +#: c-api/init.rst:64 msgid "" "The following functions **should not be called** before :c:func:" "`Py_Initialize`: :c:func:`Py_EncodeLocale`, :c:func:`Py_GetPath`, :c:func:" @@ -168,18 +172,18 @@ msgid "" "`Py_GetProgramName` and :c:func:`PyEval_InitThreads`." msgstr "" -#: ../Doc/c-api/init.rst:74 +#: c-api/init.rst:74 msgid "Global configuration variables" msgstr "" -#: ../Doc/c-api/init.rst:76 +#: c-api/init.rst:76 msgid "" "Python has variables for the global configuration to control different " "features and options. By default, these flags are controlled by :ref:" "`command line options `." msgstr "" -#: ../Doc/c-api/init.rst:80 +#: c-api/init.rst:80 msgid "" "When a flag is set by an option, the value of the flag is the number of " "times that the option was set. For example, ``-b`` sets :c:data:" @@ -187,64 +191,64 @@ msgid "" "2." msgstr "" -#: ../Doc/c-api/init.rst:86 +#: c-api/init.rst:86 msgid "" "Issue a warning when comparing :class:`bytes` or :class:`bytearray` with :" "class:`str` or :class:`bytes` with :class:`int`. Issue an error if greater " "or equal to ``2``." msgstr "" -#: ../Doc/c-api/init.rst:90 +#: c-api/init.rst:90 msgid "Set by the :option:`-b` option." msgstr "" -#: ../Doc/c-api/init.rst:94 +#: c-api/init.rst:94 msgid "" "Turn on parser debugging output (for expert only, depending on compilation " "options)." msgstr "" -#: ../Doc/c-api/init.rst:97 +#: c-api/init.rst:97 msgid "" "Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:102 +#: c-api/init.rst:102 msgid "" "If set to non-zero, Python won't try to write ``.pyc`` files on the import " "of source modules." msgstr "" -#: ../Doc/c-api/init.rst:105 +#: c-api/init.rst:105 msgid "" "Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " "environment variable." msgstr "" -#: ../Doc/c-api/init.rst:110 +#: c-api/init.rst:110 msgid "" "Suppress error messages when calculating the module search path in :c:func:" "`Py_GetPath`." msgstr "" -#: ../Doc/c-api/init.rst:113 +#: c-api/init.rst:113 msgid "Private flag used by ``_freeze_importlib`` and ``frozenmain`` programs." msgstr "" -#: ../Doc/c-api/init.rst:117 +#: c-api/init.rst:117 msgid "" "Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " "a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:120 +#: c-api/init.rst:120 msgid "" "If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " "variable to initialize the secret hash seed." msgstr "" -#: ../Doc/c-api/init.rst:125 +#: c-api/init.rst:125 msgid "" "Ignore all :envvar:`PYTHON*` environment variables, e.g. :envvar:" "`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." @@ -252,74 +256,75 @@ msgstr "" "Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui pourraient " "être définies. Par exemple, :envvar:`PYTHONPATH` et :envvar:`PYTHONHOME`." -#: ../Doc/c-api/init.rst:128 +#: c-api/init.rst:128 msgid "Set by the :option:`-E` and :option:`-I` options." msgstr "" -#: ../Doc/c-api/init.rst:132 +#: c-api/init.rst:132 msgid "" "When a script is passed as first argument or the :option:`-c` option is " "used, enter interactive mode after executing the script or the command, even " "when :data:`sys.stdin` does not appear to be a terminal." msgstr "" -#: ../Doc/c-api/init.rst:136 +#: c-api/init.rst:136 msgid "" "Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:141 +#: c-api/init.rst:141 msgid "Set by the :option:`-i` option." msgstr "" -#: ../Doc/c-api/init.rst:145 +#: c-api/init.rst:145 msgid "" "Run Python in isolated mode. In isolated mode :data:`sys.path` contains " "neither the script's directory nor the user's site-packages directory." msgstr "" -#: ../Doc/c-api/init.rst:148 +#: c-api/init.rst:148 msgid "Set by the :option:`-I` option." msgstr "" -#: ../Doc/c-api/init.rst:154 +#: c-api/init.rst:154 msgid "" "If the flag is non-zero, use the ``mbcs`` encoding instead of the UTF-8 " "encoding for the filesystem encoding." msgstr "" -#: ../Doc/c-api/init.rst:157 +#: c-api/init.rst:157 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " "variable is set to a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:160 +#: c-api/init.rst:160 msgid "See :pep:`529` for more details." msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/c-api/init.rst:162 ../Doc/c-api/init.rst:174 +#: c-api/init.rst:174 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/c-api/init.rst:166 +#: c-api/init.rst:166 msgid "" "If the flag is non-zero, use :class:`io.FileIO` instead of :class:" "`WindowsConsoleIO` for :mod:`sys` standard streams." msgstr "" -#: ../Doc/c-api/init.rst:169 +#: c-api/init.rst:169 msgid "" "Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " "is set to a non-empty string." msgstr "" -#: ../Doc/c-api/init.rst:172 +#: c-api/init.rst:172 +#, fuzzy msgid "See :pep:`528` for more details." -msgstr "" +msgstr "Voir la :pep:`529` pour plus d'informations." -#: ../Doc/c-api/init.rst:178 +#: c-api/init.rst:178 msgid "" "Disable the import of the module :mod:`site` and the site-dependent " "manipulations of :data:`sys.path` that it entails. Also disable these " @@ -331,11 +336,11 @@ msgstr "" "mod:`site` est importé explicitement plus tard (appelez :func:`site.main` si " "vous voulez les déclencher)." -#: ../Doc/c-api/init.rst:183 +#: c-api/init.rst:183 msgid "Set by the :option:`-S` option." msgstr "" -#: ../Doc/c-api/init.rst:187 +#: c-api/init.rst:187 msgid "" "Don't add the :data:`user site-packages directory ` to :data:" "`sys.path`." @@ -343,38 +348,38 @@ msgstr "" "N'ajoute pas le répertoire utilisateur :data:`site-packages ` à :data:`sys.path`." -#: ../Doc/c-api/init.rst:190 +#: c-api/init.rst:190 msgid "" "Set by the :option:`-s` and :option:`-I` options, and the :envvar:" "`PYTHONNOUSERSITE` environment variable." msgstr "" -#: ../Doc/c-api/init.rst:195 +#: c-api/init.rst:195 msgid "" "Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:200 +#: c-api/init.rst:200 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/c-api/init.rst:202 +#: c-api/init.rst:202 msgid "Set by the :option:`-q` option." msgstr "" -#: ../Doc/c-api/init.rst:208 +#: c-api/init.rst:208 msgid "Force the stdout and stderr streams to be unbuffered." msgstr "" -#: ../Doc/c-api/init.rst:210 +#: c-api/init.rst:210 msgid "" "Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " "environment variable." msgstr "" -#: ../Doc/c-api/init.rst:215 +#: c-api/init.rst:215 msgid "" "Print a message each time a module is initialized, showing the place " "(filename or built-in module) from which it is loaded. If greater or equal " @@ -382,24 +387,24 @@ msgid "" "for a module. Also provides information on module cleanup at exit." msgstr "" -#: ../Doc/c-api/init.rst:220 +#: c-api/init.rst:220 msgid "" "Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " "variable." msgstr "" -#: ../Doc/c-api/init.rst:225 +#: c-api/init.rst:225 msgid "Initializing and finalizing the interpreter" msgstr "" -#: ../Doc/c-api/init.rst:243 +#: c-api/init.rst:243 msgid "" "Initialize the Python interpreter. In an application embedding Python, " "this should be called before using any other Python/C API functions; see :" "ref:`Before Python Initialization ` for the few exceptions." msgstr "" -#: ../Doc/c-api/init.rst:247 +#: c-api/init.rst:247 msgid "" "This initializes the table of loaded modules (``sys.modules``), and creates " "the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " @@ -409,27 +414,27 @@ msgid "" "There is no return value; it is a fatal error if the initialization fails." msgstr "" -#: ../Doc/c-api/init.rst:256 +#: c-api/init.rst:256 msgid "" "On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " "will also affect non-Python uses of the console using the C Runtime." msgstr "" -#: ../Doc/c-api/init.rst:262 +#: c-api/init.rst:262 msgid "" "This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If " "*initsigs* is ``0``, it skips initialization registration of signal " "handlers, which might be useful when Python is embedded." msgstr "" -#: ../Doc/c-api/init.rst:269 +#: c-api/init.rst:269 msgid "" "Return true (nonzero) when the Python interpreter has been initialized, " "false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " "false until :c:func:`Py_Initialize` is called again." msgstr "" -#: ../Doc/c-api/init.rst:276 +#: c-api/init.rst:276 msgid "" "Undo all initializations made by :c:func:`Py_Initialize` and subsequent use " "of Python/C API functions, and destroy all sub-interpreters (see :c:func:" @@ -441,7 +446,7 @@ msgid "" "(flushing buffered data), ``-1`` is returned." msgstr "" -#: ../Doc/c-api/init.rst:285 +#: c-api/init.rst:285 msgid "" "This function is provided for a number of reasons. An embedding application " "might want to restart Python without having to restart the application " @@ -452,7 +457,7 @@ msgid "" "Python before exiting from the application." msgstr "" -#: ../Doc/c-api/init.rst:293 +#: c-api/init.rst:293 msgid "" "**Bugs and caveats:** The destruction of modules and objects in modules is " "done in random order; this may cause destructors (:meth:`__del__` methods) " @@ -467,60 +472,60 @@ msgid "" "than once." msgstr "" -#: ../Doc/c-api/init.rst:305 +#: c-api/init.rst:305 msgid "" "Raises an :ref:`auditing event ` ``cpython." "_PySys_ClearAuditHooks`` with no arguments." msgstr "" -#: ../Doc/c-api/init.rst:310 +#: c-api/init.rst:310 msgid "" "This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " "disregards the return value." msgstr "" -#: ../Doc/c-api/init.rst:315 +#: c-api/init.rst:315 msgid "Process-wide parameters" msgstr "" -#: ../Doc/c-api/init.rst:325 +#: c-api/init.rst:325 msgid "" "This function should be called before :c:func:`Py_Initialize`, if it is " "called at all. It specifies which encoding and error handling to use with " "standard IO, with the same meanings as in :func:`str.encode`." msgstr "" -#: ../Doc/c-api/init.rst:329 +#: c-api/init.rst:329 msgid "" "It overrides :envvar:`PYTHONIOENCODING` values, and allows embedding code to " "control IO encoding when the environment variable does not work." msgstr "" -#: ../Doc/c-api/init.rst:332 +#: c-api/init.rst:332 msgid "" -"``encoding`` and/or ``errors`` may be NULL to use :envvar:`PYTHONIOENCODING` " +"*encoding* and/or *errors* may be ``NULL`` to use :envvar:`PYTHONIOENCODING` " "and/or default values (depending on other settings)." msgstr "" -#: ../Doc/c-api/init.rst:336 +#: c-api/init.rst:336 msgid "" "Note that :data:`sys.stderr` always uses the \"backslashreplace\" error " "handler, regardless of this (or any other) setting." msgstr "" -#: ../Doc/c-api/init.rst:339 +#: c-api/init.rst:339 msgid "" "If :c:func:`Py_FinalizeEx` is called, this function will need to be called " "again in order to affect subsequent calls to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:342 +#: c-api/init.rst:342 msgid "" "Returns ``0`` if successful, a nonzero value on error (e.g. calling after " "the interpreter has already been initialized)." msgstr "" -#: ../Doc/c-api/init.rst:355 +#: c-api/init.rst:355 msgid "" "This function should be called before :c:func:`Py_Initialize` is called for " "the first time, if it is called at all. It tells the interpreter the value " @@ -534,22 +539,20 @@ msgid "" "this storage." msgstr "" -#: ../Doc/c-api/init.rst:366 ../Doc/c-api/init.rst:480 -#: ../Doc/c-api/init.rst:586 ../Doc/c-api/init.rst:613 -#: ../Doc/c-api/init.rst:630 +#: c-api/init.rst:480 c-api/init.rst:613 c-api/init.rst:630 msgid "" "Use :c:func:`Py_DecodeLocale` to decode a bytes string to get a :c:type:" "`wchar_*` string." msgstr "" -#: ../Doc/c-api/init.rst:374 +#: c-api/init.rst:374 msgid "" "Return the program name set with :c:func:`Py_SetProgramName`, or the " "default. The returned string points into static storage; the caller should " "not modify its value." msgstr "" -#: ../Doc/c-api/init.rst:381 +#: c-api/init.rst:381 msgid "" "Return the *prefix* for installed platform-independent files. This is " "derived through a number of complicated rules from the program name set " @@ -563,7 +566,7 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/init.rst:394 +#: c-api/init.rst:394 msgid "" "Return the *exec-prefix* for installed platform-*dependent* files. This is " "derived through a number of complicated rules from the program name set " @@ -577,7 +580,7 @@ msgid "" "on Unix." msgstr "" -#: ../Doc/c-api/init.rst:404 +#: c-api/init.rst:404 msgid "" "Background: The exec-prefix differs from the prefix when platform dependent " "files (such as executables and shared libraries) are installed in a " @@ -586,7 +589,7 @@ msgid "" "independent may be installed in :file:`/usr/local`." msgstr "" -#: ../Doc/c-api/init.rst:410 +#: c-api/init.rst:410 msgid "" "Generally speaking, a platform is a combination of hardware and software " "families, e.g. Sparc machines running the Solaris 2.x operating system are " @@ -600,7 +603,7 @@ msgid "" "independent from the Python version by which they were compiled!)." msgstr "" -#: ../Doc/c-api/init.rst:421 +#: c-api/init.rst:421 msgid "" "System administrators will know how to configure the :program:`mount` or :" "program:`automount` programs to share :file:`/usr/local` between platforms " @@ -608,7 +611,7 @@ msgid "" "platform." msgstr "" -#: ../Doc/c-api/init.rst:433 +#: c-api/init.rst:433 msgid "" "Return the full program name of the Python executable; this is computed as " "a side-effect of deriving the default module search path from the program " @@ -617,7 +620,7 @@ msgid "" "available to Python code as ``sys.executable``." msgstr "" -#: ../Doc/c-api/init.rst:447 +#: c-api/init.rst:447 msgid "" "Return the default module search path; this is computed from the program " "name (set by :c:func:`Py_SetProgramName` above) and some environment " @@ -630,7 +633,7 @@ msgid "" "for loading modules." msgstr "" -#: ../Doc/c-api/init.rst:467 +#: c-api/init.rst:467 msgid "" "Set the default module search path. If this function is called before :c:" "func:`Py_Initialize`, then :c:func:`Py_GetPath` won't attempt to compute a " @@ -641,7 +644,7 @@ msgid "" "``';'`` on Windows." msgstr "" -#: ../Doc/c-api/init.rst:475 +#: c-api/init.rst:475 msgid "" "This also causes :data:`sys.executable` to be set to the program full path " "(see :c:func:`Py_GetProgramFullPath`) and for :data:`sys.prefix` and :data:" @@ -649,25 +652,25 @@ msgid "" "required after calling :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:483 +#: c-api/init.rst:483 msgid "" "The path argument is copied internally, so the caller may free it after the " "call completes." msgstr "" -#: ../Doc/c-api/init.rst:486 +#: c-api/init.rst:486 msgid "" "The program full path is now used for :data:`sys.executable`, instead of the " "program name." msgstr "" -#: ../Doc/c-api/init.rst:493 +#: c-api/init.rst:493 msgid "" "Return the version of this Python interpreter. This is a string that looks " "something like ::" msgstr "" -#: ../Doc/c-api/init.rst:500 +#: c-api/init.rst:500 msgid "" "The first word (up to the first space character) is the current Python " "version; the first three characters are the major and minor version " @@ -676,7 +679,7 @@ msgid "" "as :data:`sys.version`." msgstr "" -#: ../Doc/c-api/init.rst:510 +#: c-api/init.rst:510 msgid "" "Return the platform identifier for the current platform. On Unix, this is " "formed from the \"official\" name of the operating system, converted to " @@ -687,42 +690,42 @@ msgid "" "value is available to Python code as ``sys.platform``." msgstr "" -#: ../Doc/c-api/init.rst:521 +#: c-api/init.rst:521 msgid "" "Return the official copyright string for the current Python version, for " "example" msgstr "" -#: ../Doc/c-api/init.rst:523 +#: c-api/init.rst:523 msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" msgstr "" -#: ../Doc/c-api/init.rst:527 +#: c-api/init.rst:527 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as ``sys.copyright``." msgstr "" -#: ../Doc/c-api/init.rst:533 +#: c-api/init.rst:533 msgid "" "Return an indication of the compiler used to build the current Python " "version, in square brackets, for example::" msgstr "" -#: ../Doc/c-api/init.rst:540 ../Doc/c-api/init.rst:554 +#: c-api/init.rst:554 msgid "" "The returned string points into static storage; the caller should not modify " "its value. The value is available to Python code as part of the variable " "``sys.version``." msgstr "" -#: ../Doc/c-api/init.rst:547 +#: c-api/init.rst:547 msgid "" "Return information about the sequence number and build date and time of the " "current Python interpreter instance, for example ::" msgstr "" -#: ../Doc/c-api/init.rst:566 +#: c-api/init.rst:566 msgid "" "Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " "similar to those passed to the program's :c:func:`main` function with the " @@ -733,28 +736,28 @@ msgid "" "fatal condition is signalled using :c:func:`Py_FatalError`." msgstr "" -#: ../Doc/c-api/init.rst:574 +#: c-api/init.rst:574 msgid "" "If *updatepath* is zero, this is all the function does. If *updatepath* is " "non-zero, the function also modifies :data:`sys.path` according to the " "following algorithm:" msgstr "" -#: ../Doc/c-api/init.rst:578 +#: c-api/init.rst:578 msgid "" "If the name of an existing script is passed in ``argv[0]``, the absolute " "path of the directory where the script is located is prepended to :data:`sys." "path`." msgstr "" -#: ../Doc/c-api/init.rst:581 +#: c-api/init.rst:581 msgid "" "Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " "existing file name), an empty string is prepended to :data:`sys.path`, which " "is the same as prepending the current working directory (``\".\"``)." msgstr "" -#: ../Doc/c-api/init.rst:590 +#: c-api/init.rst:590 msgid "" "It is recommended that applications embedding the Python interpreter for " "purposes other than executing a single script pass ``0`` as *updatepath*, " @@ -762,32 +765,32 @@ msgid "" "`_." msgstr "" -#: ../Doc/c-api/init.rst:595 +#: c-api/init.rst:595 msgid "" "On versions before 3.1.3, you can achieve the same effect by manually " "popping the first :data:`sys.path` element after having called :c:func:" "`PySys_SetArgv`, for example using::" msgstr "" -#: ../Doc/c-api/init.rst:609 +#: c-api/init.rst:609 msgid "" "This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " "``1`` unless the :program:`python` interpreter was started with the :option:" "`-I`." msgstr "" -#: ../Doc/c-api/init.rst:616 +#: c-api/init.rst:616 msgid "The *updatepath* value depends on :option:`-I`." msgstr "" -#: ../Doc/c-api/init.rst:621 +#: c-api/init.rst:621 msgid "" "Set the default \"home\" directory, that is, the location of the standard " "Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " "string." msgstr "" -#: ../Doc/c-api/init.rst:625 +#: c-api/init.rst:625 msgid "" "The argument should point to a zero-terminated character string in static " "storage whose contents will not change for the duration of the program's " @@ -795,18 +798,18 @@ msgid "" "this storage." msgstr "" -#: ../Doc/c-api/init.rst:636 +#: c-api/init.rst:636 msgid "" "Return the default \"home\", that is, the value set by a previous call to :c:" "func:`Py_SetPythonHome`, or the value of the :envvar:`PYTHONHOME` " "environment variable if it is set." msgstr "" -#: ../Doc/c-api/init.rst:644 +#: c-api/init.rst:644 msgid "Thread State and the Global Interpreter Lock" msgstr "" -#: ../Doc/c-api/init.rst:651 +#: c-api/init.rst:651 msgid "" "The Python interpreter is not fully thread-safe. In order to support multi-" "threaded Python programs, there's a global lock, called the :term:`global " @@ -818,7 +821,7 @@ msgid "" "once instead of twice." msgstr "" -#: ../Doc/c-api/init.rst:661 +#: c-api/init.rst:661 msgid "" "Therefore, the rule exists that only the thread that has acquired the :term:" "`GIL` may operate on Python objects or call Python/C API functions. In order " @@ -828,7 +831,7 @@ msgid "" "a file, so that other Python threads can run in the meantime." msgstr "" -#: ../Doc/c-api/init.rst:672 +#: c-api/init.rst:672 msgid "" "The Python interpreter keeps some thread-specific bookkeeping information " "inside a data structure called :c:type:`PyThreadState`. There's also one " @@ -836,32 +839,32 @@ msgid "" "retrieved using :c:func:`PyThreadState_Get`." msgstr "" -#: ../Doc/c-api/init.rst:678 +#: c-api/init.rst:678 msgid "Releasing the GIL from extension code" msgstr "" -#: ../Doc/c-api/init.rst:680 +#: c-api/init.rst:680 msgid "" "Most extension code manipulating the :term:`GIL` has the following simple " "structure::" msgstr "" -#: ../Doc/c-api/init.rst:689 +#: c-api/init.rst:689 msgid "This is so common that a pair of macros exists to simplify it::" msgstr "" -#: ../Doc/c-api/init.rst:699 +#: c-api/init.rst:699 msgid "" "The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " "hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " "block." msgstr "" -#: ../Doc/c-api/init.rst:703 +#: c-api/init.rst:703 msgid "The block above expands to the following code::" msgstr "" -#: ../Doc/c-api/init.rst:715 +#: c-api/init.rst:715 msgid "" "Here is how these functions work: the global interpreter lock is used to " "protect the pointer to the current thread state. When releasing the lock " @@ -872,7 +875,7 @@ msgid "" "state, the lock must be acquired before storing the thread state pointer." msgstr "" -#: ../Doc/c-api/init.rst:724 +#: c-api/init.rst:724 msgid "" "Calling system I/O functions is the most common use case for releasing the " "GIL, but it can also be useful before calling long-running computations " @@ -882,11 +885,11 @@ msgid "" "compressing or hashing data." msgstr "" -#: ../Doc/c-api/init.rst:735 +#: c-api/init.rst:735 msgid "Non-Python created threads" msgstr "" -#: ../Doc/c-api/init.rst:737 +#: c-api/init.rst:737 msgid "" "When threads are created using the dedicated Python APIs (such as the :mod:" "`threading` module), a thread state is automatically associated to them and " @@ -896,7 +899,7 @@ msgid "" "for them." msgstr "" -#: ../Doc/c-api/init.rst:744 +#: c-api/init.rst:744 msgid "" "If you need to call Python code from these threads (often this will be part " "of a callback API provided by the aforementioned third-party library), you " @@ -907,14 +910,14 @@ msgid "" "finally free the thread state data structure." msgstr "" -#: ../Doc/c-api/init.rst:752 +#: c-api/init.rst:752 msgid "" "The :c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release` functions " "do all of the above automatically. The typical idiom for calling into " "Python from a C thread is::" msgstr "" -#: ../Doc/c-api/init.rst:766 +#: c-api/init.rst:766 msgid "" "Note that the :c:func:`PyGILState_\\*` functions assume there is only one " "global interpreter (created automatically by :c:func:`Py_Initialize`). " @@ -923,37 +926,61 @@ msgid "" "`PyGILState_\\*` API is unsupported." msgstr "" -#: ../Doc/c-api/init.rst:772 +#: c-api/init.rst:776 +msgid "Cautions about fork()" +msgstr "" + +#: c-api/init.rst:778 msgid "" "Another important thing to note about threads is their behaviour in the face " "of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " -"process forks only the thread that issued the fork will exist. That also " -"means any locks held by other threads will never be released. Python solves " -"this for :func:`os.fork` by acquiring the locks it uses internally before " -"the fork, and releasing them afterwards. In addition, it resets any :ref:" -"`lock-objects` in the child. When extending or embedding Python, there is no " -"way to inform Python of additional (non-Python) locks that need to be " -"acquired before or reset after a fork. OS facilities such as :c:func:" -"`pthread_atfork` would need to be used to accomplish the same thing. " -"Additionally, when extending or embedding Python, calling :c:func:`fork` " -"directly rather than through :func:`os.fork` (and returning to or calling " -"into Python) may result in a deadlock by one of Python's internal locks " -"being held by a thread that is defunct after the fork. :c:func:" -"`PyOS_AfterFork_Child` tries to reset the necessary locks, but is not always " -"able to." -msgstr "" - -#: ../Doc/c-api/init.rst:791 +"process forks only the thread that issued the fork will exist. This has a " +"concrete impact both on how locks must be handled and on all stored state in " +"CPython's runtime." +msgstr "" + +#: c-api/init.rst:784 +msgid "" +"The fact that only the \"current\" thread remains means any locks held by " +"other threads will never be released. Python solves this for :func:`os.fork` " +"by acquiring the locks it uses internally before the fork, and releasing " +"them afterwards. In addition, it resets any :ref:`lock-objects` in the " +"child. When extending or embedding Python, there is no way to inform Python " +"of additional (non-Python) locks that need to be acquired before or reset " +"after a fork. OS facilities such as :c:func:`pthread_atfork` would need to " +"be used to accomplish the same thing. Additionally, when extending or " +"embedding Python, calling :c:func:`fork` directly rather than through :func:" +"`os.fork` (and returning to or calling into Python) may result in a deadlock " +"by one of Python's internal locks being held by a thread that is defunct " +"after the fork. :c:func:`PyOS_AfterFork_Child` tries to reset the necessary " +"locks, but is not always able to." +msgstr "" + +#: c-api/init.rst:799 +msgid "" +"The fact that all other threads go away also means that CPython's runtime " +"state there must be cleaned up properly, which :func:`os.fork` does. This " +"means finalizing all other :c:type:`PyThreadState` objects belonging to the " +"current interpreter and all other :c:type:`PyInterpreterState` objects. Due " +"to this and the special nature of the :ref:`\"main\" interpreter `, :c:func:`fork` should only be called in that " +"interpreter's \"main\" thread, where the CPython global runtime was " +"originally initialized. The only exception is if :c:func:`exec` will be " +"called immediately after." +msgstr "" + +#: c-api/init.rst:812 +#, fuzzy msgid "High-level API" -msgstr "" +msgstr "Bibliothèques de haut-niveau" -#: ../Doc/c-api/init.rst:793 +#: c-api/init.rst:814 msgid "" "These are the most commonly used types and functions when writing C " "extension code, or when embedding the Python interpreter:" msgstr "" -#: ../Doc/c-api/init.rst:798 +#: c-api/init.rst:819 msgid "" "This data structure represents the state shared by a number of cooperating " "threads. Threads belonging to the same interpreter share their module " @@ -961,7 +988,7 @@ msgid "" "in this structure." msgstr "" -#: ../Doc/c-api/init.rst:803 +#: c-api/init.rst:824 msgid "" "Threads belonging to different interpreters initially share nothing, except " "process state like available memory, open file descriptors and such. The " @@ -969,14 +996,14 @@ msgid "" "which interpreter they belong." msgstr "" -#: ../Doc/c-api/init.rst:811 +#: c-api/init.rst:832 msgid "" "This data structure represents the state of a single thread. The only " -"public data member is :c:type:`PyInterpreterState \\*`:attr:`interp`, which " +"public data member is :attr:`interp` (:c:type:`PyInterpreterState *`), which " "points to this thread's interpreter state." msgstr "" -#: ../Doc/c-api/init.rst:824 +#: c-api/init.rst:845 msgid "" "Initialize and acquire the global interpreter lock. It should be called in " "the main thread before creating a second thread or engaging in any other " @@ -984,50 +1011,49 @@ msgid "" "before calling :c:func:`PyEval_SaveThread` or :c:func:`PyEval_RestoreThread`." msgstr "" -#: ../Doc/c-api/init.rst:829 +#: c-api/init.rst:850 msgid "This is a no-op when called for a second time." msgstr "" -#: ../Doc/c-api/init.rst:831 +#: c-api/init.rst:852 msgid "" "This function is now called by :c:func:`Py_Initialize()`, so you don't have " "to call it yourself anymore." msgstr "" -#: ../Doc/c-api/init.rst:835 +#: c-api/init.rst:856 msgid "" "This function cannot be called before :c:func:`Py_Initialize()` anymore." msgstr "" -#: ../Doc/c-api/init.rst:843 +#: c-api/init.rst:864 msgid "" "Returns a non-zero value if :c:func:`PyEval_InitThreads` has been called. " "This function can be called without holding the GIL, and therefore can be " "used to avoid calls to the locking API when running single-threaded." msgstr "" -#: ../Doc/c-api/init.rst:847 +#: c-api/init.rst:868 msgid "The :term:`GIL` is now initialized by :c:func:`Py_Initialize()`." msgstr "" -#: ../Doc/c-api/init.rst:853 +#: c-api/init.rst:874 msgid "" "Release the global interpreter lock (if it has been created) and reset the " -"thread state to *NULL*, returning the previous thread state (which is not " -"*NULL*). If the lock has been created, the current thread must have " +"thread state to ``NULL``, returning the previous thread state (which is not " +"``NULL``). If the lock has been created, the current thread must have " "acquired it." msgstr "" -#: ../Doc/c-api/init.rst:861 +#: c-api/init.rst:882 msgid "" "Acquire the global interpreter lock (if it has been created) and set the " -"thread state to *tstate*, which must not be *NULL*. If the lock has been " +"thread state to *tstate*, which must not be ``NULL``. If the lock has been " "created, the current thread must not have acquired it, otherwise deadlock " "ensues." msgstr "" -#: ../Doc/c-api/init.rst:867 ../Doc/c-api/init.rst:913 -#: ../Doc/c-api/init.rst:1088 ../Doc/c-api/init.rst:1126 +#: c-api/init.rst:934 c-api/init.rst:1147 msgid "" "Calling this function from a thread when the runtime is finalizing will " "terminate the thread, even if the thread was not created by Python. You can " @@ -1036,27 +1062,27 @@ msgid "" "avoid unwanted termination." msgstr "" -#: ../Doc/c-api/init.rst:875 +#: c-api/init.rst:896 msgid "" "Return the current thread state. The global interpreter lock must be held. " -"When the current thread state is *NULL*, this issues a fatal error (so that " -"the caller needn't check for *NULL*)." +"When the current thread state is ``NULL``, this issues a fatal error (so " +"that the caller needn't check for ``NULL``)." msgstr "" -#: ../Doc/c-api/init.rst:882 +#: c-api/init.rst:903 msgid "" "Swap the current thread state with the thread state given by the argument " -"*tstate*, which may be *NULL*. The global interpreter lock must be held and " -"is not released." +"*tstate*, which may be ``NULL``. The global interpreter lock must be held " +"and is not released." msgstr "" -#: ../Doc/c-api/init.rst:887 +#: c-api/init.rst:908 msgid "" "The following functions use thread-local storage, and are not compatible " "with sub-interpreters:" msgstr "" -#: ../Doc/c-api/init.rst:892 +#: c-api/init.rst:913 msgid "" "Ensure that the current thread is ready to call the Python C API regardless " "of the current state of Python, or of the global interpreter lock. This may " @@ -1069,7 +1095,7 @@ msgid "" "is acceptable." msgstr "" -#: ../Doc/c-api/init.rst:902 +#: c-api/init.rst:923 msgid "" "The return value is an opaque \"handle\" to the thread state when :c:func:" "`PyGILState_Ensure` was called, and must be passed to :c:func:" @@ -1079,13 +1105,13 @@ msgid "" "func:`PyGILState_Release`." msgstr "" -#: ../Doc/c-api/init.rst:909 +#: c-api/init.rst:930 msgid "" "When the function returns, the current thread will hold the GIL and be able " "to call arbitrary Python code. Failure is a fatal error." msgstr "" -#: ../Doc/c-api/init.rst:921 +#: c-api/init.rst:942 msgid "" "Release any resources previously acquired. After this call, Python's state " "will be the same as it was prior to the corresponding :c:func:" @@ -1093,13 +1119,13 @@ msgid "" "caller, hence the use of the GILState API)." msgstr "" -#: ../Doc/c-api/init.rst:926 +#: c-api/init.rst:947 msgid "" "Every call to :c:func:`PyGILState_Ensure` must be matched by a call to :c:" "func:`PyGILState_Release` on the same thread." msgstr "" -#: ../Doc/c-api/init.rst:932 +#: c-api/init.rst:953 msgid "" "Get the current thread state for this thread. May return ``NULL`` if no " "GILState API has been used on the current thread. Note that the main thread " @@ -1107,7 +1133,7 @@ msgid "" "made on the main thread. This is mainly a helper/diagnostic function." msgstr "" -#: ../Doc/c-api/init.rst:940 +#: c-api/init.rst:961 msgid "" "Return ``1`` if the current thread is holding the GIL and ``0`` otherwise. " "This function can be called from any thread at any time. Only if it has had " @@ -1118,13 +1144,13 @@ msgid "" "otherwise behave differently." msgstr "" -#: ../Doc/c-api/init.rst:952 +#: c-api/init.rst:973 msgid "" "The following macros are normally used without a trailing semicolon; look " "for example usage in the Python source distribution." msgstr "" -#: ../Doc/c-api/init.rst:958 +#: c-api/init.rst:979 msgid "" "This macro expands to ``{ PyThreadState *_save; _save = PyEval_SaveThread();" "``. Note that it contains an opening brace; it must be matched with a " @@ -1132,7 +1158,7 @@ msgid "" "discussion of this macro." msgstr "" -#: ../Doc/c-api/init.rst:966 +#: c-api/init.rst:987 msgid "" "This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " "contains a closing brace; it must be matched with an earlier :c:macro:" @@ -1140,113 +1166,114 @@ msgid "" "macro." msgstr "" -#: ../Doc/c-api/init.rst:974 +#: c-api/init.rst:995 msgid "" "This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent to :" "c:macro:`Py_END_ALLOW_THREADS` without the closing brace." msgstr "" -#: ../Doc/c-api/init.rst:980 +#: c-api/init.rst:1001 msgid "" "This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent to :" "c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " "declaration." msgstr "" -#: ../Doc/c-api/init.rst:986 +#: c-api/init.rst:1007 +#, fuzzy msgid "Low-level API" -msgstr "" +msgstr "Bibliothèques de bas-niveau" -#: ../Doc/c-api/init.rst:988 +#: c-api/init.rst:1009 msgid "" "All of the following functions must be called after :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/init.rst:990 +#: c-api/init.rst:1011 msgid ":c:func:`Py_Initialize()` now initializes the :term:`GIL`." msgstr "" -#: ../Doc/c-api/init.rst:996 +#: c-api/init.rst:1017 msgid "" "Create a new interpreter state object. The global interpreter lock need not " "be held, but may be held if it is necessary to serialize calls to this " "function." msgstr "" -#: ../Doc/c-api/init.rst:1000 +#: c-api/init.rst:1021 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_New`` with no arguments." msgstr "" -#: ../Doc/c-api/init.rst:1005 +#: c-api/init.rst:1026 msgid "" "Reset all information in an interpreter state object. The global " "interpreter lock must be held." msgstr "" -#: ../Doc/c-api/init.rst:1008 +#: c-api/init.rst:1029 msgid "" "Raises an :ref:`auditing event ` ``cpython." "PyInterpreterState_Clear`` with no arguments." msgstr "" -#: ../Doc/c-api/init.rst:1013 +#: c-api/init.rst:1034 msgid "" "Destroy an interpreter state object. The global interpreter lock need not " "be held. The interpreter state must have been reset with a previous call " "to :c:func:`PyInterpreterState_Clear`." msgstr "" -#: ../Doc/c-api/init.rst:1020 +#: c-api/init.rst:1041 msgid "" "Create a new thread state object belonging to the given interpreter object. " "The global interpreter lock need not be held, but may be held if it is " "necessary to serialize calls to this function." msgstr "" -#: ../Doc/c-api/init.rst:1027 +#: c-api/init.rst:1048 msgid "" "Reset all information in a thread state object. The global interpreter lock " "must be held." msgstr "" -#: ../Doc/c-api/init.rst:1033 +#: c-api/init.rst:1054 msgid "" "Destroy a thread state object. The global interpreter lock need not be " "held. The thread state must have been reset with a previous call to :c:func:" "`PyThreadState_Clear`." msgstr "" -#: ../Doc/c-api/init.rst:1040 +#: c-api/init.rst:1061 msgid "" "Return the interpreter's unique ID. If there was any error in doing so then " "``-1`` is returned and an error is set." msgstr "" -#: ../Doc/c-api/init.rst:1048 +#: c-api/init.rst:1069 msgid "" "Return a dictionary in which interpreter-specific data may be stored. If " -"this function returns *NULL* then no exception has been raised and the " +"this function returns ``NULL`` then no exception has been raised and the " "caller should assume no interpreter-specific dict is available." msgstr "" -#: ../Doc/c-api/init.rst:1052 +#: c-api/init.rst:1073 msgid "" "This is not a replacement for :c:func:`PyModule_GetState()`, which " "extensions should use to store interpreter-specific state information." msgstr "" -#: ../Doc/c-api/init.rst:1060 +#: c-api/init.rst:1081 msgid "" "Return a dictionary in which extensions can store thread-specific state " "information. Each extension should use a unique key to use to store state " "in the dictionary. It is okay to call this function when no current thread " -"state is available. If this function returns *NULL*, no exception has been " +"state is available. If this function returns ``NULL``, no exception has been " "raised and the caller should assume no current thread state is available." msgstr "" -#: ../Doc/c-api/init.rst:1069 +#: c-api/init.rst:1090 msgid "" "Asynchronously raise an exception in a thread. The *id* argument is the " "thread id of the target thread; *exc* is the exception object to be raised. " @@ -1258,76 +1285,76 @@ msgid "" "raises no exceptions." msgstr "" -#: ../Doc/c-api/init.rst:1077 +#: c-api/init.rst:1098 msgid "" "The type of the *id* parameter changed from :c:type:`long` to :c:type:" "`unsigned long`." msgstr "" -#: ../Doc/c-api/init.rst:1083 +#: c-api/init.rst:1104 msgid "" "Acquire the global interpreter lock and set the current thread state to " -"*tstate*, which should not be *NULL*. The lock must have been created " +"*tstate*, which should not be ``NULL``. The lock must have been created " "earlier. If this thread already has the lock, deadlock ensues." msgstr "" -#: ../Doc/c-api/init.rst:1094 ../Doc/c-api/init.rst:1132 +#: c-api/init.rst:1153 msgid "" "Updated to be consistent with :c:func:`PyEval_RestoreThread`, :c:func:" "`Py_END_ALLOW_THREADS`, and :c:func:`PyGILState_Ensure`, and terminate the " "current thread if called while the interpreter is finalizing." msgstr "" -#: ../Doc/c-api/init.rst:1099 +#: c-api/init.rst:1120 msgid "" ":c:func:`PyEval_RestoreThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: ../Doc/c-api/init.rst:1105 +#: c-api/init.rst:1126 msgid "" -"Reset the current thread state to *NULL* and release the global interpreter " -"lock. The lock must have been created earlier and must be held by the " -"current thread. The *tstate* argument, which must not be *NULL*, is only " -"used to check that it represents the current thread state --- if it isn't, a " -"fatal error is reported." +"Reset the current thread state to ``NULL`` and release the global " +"interpreter lock. The lock must have been created earlier and must be held " +"by the current thread. The *tstate* argument, which must not be ``NULL``, " +"is only used to check that it represents the current thread state --- if it " +"isn't, a fatal error is reported." msgstr "" -#: ../Doc/c-api/init.rst:1111 +#: c-api/init.rst:1132 msgid "" ":c:func:`PyEval_SaveThread` is a higher-level function which is always " "available (even when threads have not been initialized)." msgstr "" -#: ../Doc/c-api/init.rst:1117 +#: c-api/init.rst:1138 msgid "" "Acquire the global interpreter lock. The lock must have been created " "earlier. If this thread already has the lock, a deadlock ensues." msgstr "" -#: ../Doc/c-api/init.rst:1120 +#: c-api/init.rst:1141 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_RestoreThread` or :c:func:`PyEval_AcquireThread` instead." msgstr "" -#: ../Doc/c-api/init.rst:1140 +#: c-api/init.rst:1161 msgid "" "Release the global interpreter lock. The lock must have been created " "earlier." msgstr "" -#: ../Doc/c-api/init.rst:1142 +#: c-api/init.rst:1163 msgid "" "This function does not update the current thread state. Please use :c:func:" "`PyEval_SaveThread` or :c:func:`PyEval_ReleaseThread` instead." msgstr "" -#: ../Doc/c-api/init.rst:1151 +#: c-api/init.rst:1172 msgid "Sub-interpreter support" msgstr "" -#: ../Doc/c-api/init.rst:1153 +#: c-api/init.rst:1174 msgid "" "While in most uses, you will only embed a single Python interpreter, there " "are cases where you need to create several independent interpreters in the " @@ -1335,25 +1362,25 @@ msgid "" "to do that." msgstr "" -#: ../Doc/c-api/init.rst:1158 +#: c-api/init.rst:1179 msgid "" "The \"main\" interpreter is the first one created when the runtime " "initializes. It is usually the only Python interpreter in a process. Unlike " "sub-interpreters, the main interpreter has unique process-global " "responsibilities like signal handling. It is also responsible for execution " "during runtime initialization and is usually the active interpreter during " -"runtime finalization. The :c:func:`PyInterpreterState_Main` funtion returns " -"a pointer to its state." +"runtime finalization. The :c:func:`PyInterpreterState_Main` function " +"returns a pointer to its state." msgstr "" -#: ../Doc/c-api/init.rst:1165 +#: c-api/init.rst:1186 msgid "" "You can switch between sub-interpreters using the :c:func:" "`PyThreadState_Swap` function. You can create and destroy them using the " "following functions:" msgstr "" -#: ../Doc/c-api/init.rst:1179 +#: c-api/init.rst:1200 msgid "" "Create a new sub-interpreter. This is an (almost) totally separate " "environment for the execution of Python code. In particular, the new " @@ -1366,12 +1393,12 @@ msgid "" "underlying file descriptors)." msgstr "" -#: ../Doc/c-api/init.rst:1189 +#: c-api/init.rst:1210 msgid "" "The return value points to the first thread state created in the new sub-" "interpreter. This thread state is made in the current thread state. Note " "that no actual thread is created; see the discussion of thread states " -"below. If creation of the new interpreter is unsuccessful, *NULL* is " +"below. If creation of the new interpreter is unsuccessful, ``NULL`` is " "returned; no exception is set since the exception state is stored in the " "current thread state and there may not be a current thread state. (Like all " "other Python/C API functions, the global interpreter lock must be held " @@ -1380,53 +1407,79 @@ msgid "" "state on entry.)" msgstr "" -#: ../Doc/c-api/init.rst:1204 +#: c-api/init.rst:1225 +msgid "Extension modules are shared between (sub-)interpreters as follows:" +msgstr "" + +#: c-api/init.rst:1227 +msgid "" +"For modules using multi-phase initialization, e.g. :c:func:" +"`PyModule_FromDefAndSpec`, a separate module object is created and " +"initialized for each interpreter. Only C-level static and global variables " +"are shared between these module objects." +msgstr "" + +#: c-api/init.rst:1233 msgid "" -"Extension modules are shared between (sub-)interpreters as follows: the " -"first time a particular extension is imported, it is initialized normally, " -"and a (shallow) copy of its module's dictionary is squirreled away. When " -"the same extension is imported by another (sub-)interpreter, a new module is " -"initialized and filled with the contents of this copy; the extension's " -"``init`` function is not called. Note that this is different from what " -"happens when an extension is imported after the interpreter has been " -"completely re-initialized by calling :c:func:`Py_FinalizeEx` and :c:func:" -"`Py_Initialize`; in that case, the extension's ``initmodule`` function *is* " -"called again." +"For modules using single-phase initialization, e.g. :c:func:" +"`PyModule_Create`, the first time a particular extension is imported, it is " +"initialized normally, and a (shallow) copy of its module's dictionary is " +"squirreled away. When the same extension is imported by another " +"(sub-)interpreter, a new module is initialized and filled with the contents " +"of this copy; the extension's ``init`` function is not called. Objects in " +"the module's dictionary thus end up shared across (sub-)interpreters, which " +"might cause unwanted behavior (see `Bugs and caveats`_ below)." msgstr "" -#: ../Doc/c-api/init.rst:1221 +#: c-api/init.rst:1244 +msgid "" +"Note that this is different from what happens when an extension is imported " +"after the interpreter has been completely re-initialized by calling :c:func:" +"`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that case, the extension's " +"``initmodule`` function *is* called again. As with multi-phase " +"initialization, this means that only C-level static and global variables are " +"shared between these modules." +msgstr "" + +#: c-api/init.rst:1258 msgid "" "Destroy the (sub-)interpreter represented by the given thread state. The " "given thread state must be the current thread state. See the discussion of " "thread states below. When the call returns, the current thread state is " -"*NULL*. All thread states associated with this interpreter are destroyed. " -"(The global interpreter lock must be held before calling this function and " -"is still held when it returns.) :c:func:`Py_FinalizeEx` will destroy all " -"sub-interpreters that haven't been explicitly destroyed at that point." +"``NULL``. All thread states associated with this interpreter are " +"destroyed. (The global interpreter lock must be held before calling this " +"function and is still held when it returns.) :c:func:`Py_FinalizeEx` will " +"destroy all sub-interpreters that haven't been explicitly destroyed at that " +"point." msgstr "" -#: ../Doc/c-api/init.rst:1231 +#: c-api/init.rst:1268 msgid "Bugs and caveats" msgstr "" -#: ../Doc/c-api/init.rst:1233 +#: c-api/init.rst:1270 msgid "" "Because sub-interpreters (and the main interpreter) are part of the same " "process, the insulation between them isn't perfect --- for example, using " "low-level file operations like :func:`os.close` they can (accidentally or " "maliciously) affect each other's open files. Because of the way extensions " "are shared between (sub-)interpreters, some extensions may not work " -"properly; this is especially likely when the extension makes use of (static) " -"global variables, or when the extension manipulates its module's dictionary " -"after its initialization. It is possible to insert objects created in one " -"sub-interpreter into a namespace of another sub-interpreter; this should be " -"done with great care to avoid sharing user-defined functions, methods, " -"instances or classes between sub-interpreters, since import operations " -"executed by such objects may affect the wrong (sub-)interpreter's dictionary " -"of loaded modules." +"properly; this is especially likely when using single-phase initialization " +"or (static) global variables. It is possible to insert objects created in " +"one sub-interpreter into a namespace of another (sub-)interpreter; this " +"should be avoided if possible." msgstr "" -#: ../Doc/c-api/init.rst:1247 +#: c-api/init.rst:1280 +msgid "" +"Special care should be taken to avoid sharing user-defined functions, " +"methods, instances or classes between sub-interpreters, since import " +"operations executed by such objects may affect the wrong (sub-)interpreter's " +"dictionary of loaded modules. It is equally important to avoid sharing " +"objects from which the above are reachable." +msgstr "" + +#: c-api/init.rst:1286 msgid "" "Also note that combining this functionality with :c:func:`PyGILState_\\*` " "APIs is delicate, because these APIs assume a bijection between Python " @@ -1438,25 +1491,25 @@ msgid "" "created threads will probably be broken when using sub-interpreters." msgstr "" -#: ../Doc/c-api/init.rst:1258 +#: c-api/init.rst:1297 msgid "Asynchronous Notifications" msgstr "" -#: ../Doc/c-api/init.rst:1260 +#: c-api/init.rst:1299 msgid "" "A mechanism is provided to make asynchronous notifications to the main " "interpreter thread. These notifications take the form of a function pointer " "and a void pointer argument." msgstr "" -#: ../Doc/c-api/init.rst:1269 +#: c-api/init.rst:1308 msgid "" "Schedule a function to be called from the main interpreter thread. On " "success, ``0`` is returned and *func* is queued for being called in the main " "thread. On failure, ``-1`` is returned without setting any exception." msgstr "" -#: ../Doc/c-api/init.rst:1273 +#: c-api/init.rst:1312 msgid "" "When successfully queued, *func* will be *eventually* called from the main " "interpreter thread with the argument *arg*. It will be called " @@ -1464,17 +1517,17 @@ msgid "" "these conditions met:" msgstr "" -#: ../Doc/c-api/init.rst:1278 +#: c-api/init.rst:1317 msgid "on a :term:`bytecode` boundary;" msgstr "" -#: ../Doc/c-api/init.rst:1279 +#: c-api/init.rst:1318 msgid "" "with the main thread holding the :term:`global interpreter lock` (*func* can " "therefore use the full C API)." msgstr "" -#: ../Doc/c-api/init.rst:1282 +#: c-api/init.rst:1321 msgid "" "*func* must return ``0`` on success, or ``-1`` on failure with an exception " "set. *func* won't be interrupted to perform another asynchronous " @@ -1482,13 +1535,13 @@ msgid "" "if the global interpreter lock is released." msgstr "" -#: ../Doc/c-api/init.rst:1287 +#: c-api/init.rst:1326 msgid "" "This function doesn't need a current thread state to run, and it doesn't " "need the global interpreter lock." msgstr "" -#: ../Doc/c-api/init.rst:1291 +#: c-api/init.rst:1330 msgid "" "This is a low-level function, only useful for very special cases. There is " "no guarantee that *func* will be called as quick as possible. If the main " @@ -1498,18 +1551,18 @@ msgid "" "`PyGILState API`." msgstr "" -#: ../Doc/c-api/init.rst:1303 +#: c-api/init.rst:1342 msgid "Profiling and Tracing" msgstr "" -#: ../Doc/c-api/init.rst:1308 +#: c-api/init.rst:1347 msgid "" "The Python interpreter provides some low-level support for attaching " "profiling and execution tracing facilities. These are used for profiling, " "debugging, and coverage analysis tools." msgstr "" -#: ../Doc/c-api/init.rst:1312 +#: c-api/init.rst:1351 msgid "" "This C interface allows the profiling or tracing code to avoid the overhead " "of calling through Python-level callable objects, making a direct C function " @@ -1519,7 +1572,7 @@ msgid "" "reported to the Python-level trace functions in previous versions." msgstr "" -#: ../Doc/c-api/init.rst:1322 +#: c-api/init.rst:1361 msgid "" "The type of the trace function registered using :c:func:`PyEval_SetProfile` " "and :c:func:`PyEval_SetTrace`. The first parameter is the object passed to " @@ -1530,66 +1583,64 @@ msgid "" "or :const:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" msgstr "" -#: ../Doc/c-api/init.rst:1331 +#: c-api/init.rst:1370 msgid "Value of *what*" msgstr "" -#: ../Doc/c-api/init.rst:1331 +#: c-api/init.rst:1370 msgid "Meaning of *arg*" msgstr "" -#: ../Doc/c-api/init.rst:1333 +#: c-api/init.rst:1372 msgid ":const:`PyTrace_CALL`" -msgstr "" +msgstr ":const:`PyTrace_CALL`" -#: ../Doc/c-api/init.rst:1333 ../Doc/c-api/init.rst:1338 -#: ../Doc/c-api/init.rst:1349 +#: c-api/init.rst:1377 c-api/init.rst:1388 msgid "Always :c:data:`Py_None`." msgstr "" -#: ../Doc/c-api/init.rst:1335 +#: c-api/init.rst:1374 msgid ":const:`PyTrace_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_EXCEPTION`" -#: ../Doc/c-api/init.rst:1335 +#: c-api/init.rst:1374 msgid "Exception information as returned by :func:`sys.exc_info`." msgstr "" -#: ../Doc/c-api/init.rst:1338 +#: c-api/init.rst:1377 msgid ":const:`PyTrace_LINE`" -msgstr "" +msgstr ":const:`PyTrace_LINE`" -#: ../Doc/c-api/init.rst:1340 +#: c-api/init.rst:1379 msgid ":const:`PyTrace_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_RETURN`" -#: ../Doc/c-api/init.rst:1340 +#: c-api/init.rst:1379 msgid "" -"Value being returned to the caller, or *NULL* if caused by an exception." +"Value being returned to the caller, or ``NULL`` if caused by an exception." msgstr "" -#: ../Doc/c-api/init.rst:1343 +#: c-api/init.rst:1382 msgid ":const:`PyTrace_C_CALL`" -msgstr "" +msgstr ":const:`PyTrace_C_CALL`" -#: ../Doc/c-api/init.rst:1343 ../Doc/c-api/init.rst:1345 -#: ../Doc/c-api/init.rst:1347 +#: c-api/init.rst:1384 c-api/init.rst:1386 msgid "Function object being called." msgstr "" -#: ../Doc/c-api/init.rst:1345 +#: c-api/init.rst:1384 msgid ":const:`PyTrace_C_EXCEPTION`" -msgstr "" +msgstr ":const:`PyTrace_C_EXCEPTION`" -#: ../Doc/c-api/init.rst:1347 +#: c-api/init.rst:1386 msgid ":const:`PyTrace_C_RETURN`" -msgstr "" +msgstr ":const:`PyTrace_C_RETURN`" -#: ../Doc/c-api/init.rst:1349 +#: c-api/init.rst:1388 msgid ":const:`PyTrace_OPCODE`" -msgstr "" +msgstr ":const:`PyTrace_OPCODE`" -#: ../Doc/c-api/init.rst:1354 +#: c-api/init.rst:1393 msgid "" "The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " "a new call to a function or method is being reported, or a new entry into a " @@ -1598,7 +1649,7 @@ msgid "" "the corresponding frame." msgstr "" -#: ../Doc/c-api/init.rst:1363 +#: c-api/init.rst:1402 msgid "" "The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " "an exception has been raised. The callback function is called with this " @@ -1610,7 +1661,7 @@ msgid "" "profiler." msgstr "" -#: ../Doc/c-api/init.rst:1374 +#: c-api/init.rst:1413 msgid "" "The value passed as the *what* parameter to a :c:type:`Py_tracefunc` " "function (but not a profiling function) when a line-number event is being " @@ -1618,31 +1669,31 @@ msgid "" "*0* on that frame." msgstr "" -#: ../Doc/c-api/init.rst:1381 +#: c-api/init.rst:1420 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a call is about to return." msgstr "" -#: ../Doc/c-api/init.rst:1387 +#: c-api/init.rst:1426 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function is about to be called." msgstr "" -#: ../Doc/c-api/init.rst:1393 +#: c-api/init.rst:1432 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has raised an exception." msgstr "" -#: ../Doc/c-api/init.rst:1399 +#: c-api/init.rst:1438 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " "a C function has returned." msgstr "" -#: ../Doc/c-api/init.rst:1405 +#: c-api/init.rst:1444 msgid "" "The value for the *what* parameter to :c:type:`Py_tracefunc` functions (but " "not profiling functions) when a new opcode is about to be executed. This " @@ -1650,17 +1701,17 @@ msgid "" "attr:`f_trace_opcodes` to *1* on the frame." msgstr "" -#: ../Doc/c-api/init.rst:1413 +#: c-api/init.rst:1452 msgid "" "Set the profiler function to *func*. The *obj* parameter is passed to the " -"function as its first parameter, and may be any Python object, or *NULL*. " +"function as its first parameter, and may be any Python object, or ``NULL``. " "If the profile function needs to maintain state, using a different value for " "*obj* for each thread provides a convenient and thread-safe place to store " "it. The profile function is called for all monitored events except :const:" "`PyTrace_LINE` :const:`PyTrace_OPCODE` and :const:`PyTrace_EXCEPTION`." msgstr "" -#: ../Doc/c-api/init.rst:1423 +#: c-api/init.rst:1462 msgid "" "Set the tracing function to *func*. This is similar to :c:func:" "`PyEval_SetProfile`, except the tracing function does receive line-number " @@ -1671,93 +1722,93 @@ msgid "" "parameter." msgstr "" -#: ../Doc/c-api/init.rst:1433 +#: c-api/init.rst:1472 msgid "Advanced Debugger Support" msgstr "Support avancé du débogueur" -#: ../Doc/c-api/init.rst:1438 +#: c-api/init.rst:1477 msgid "" "These functions are only intended to be used by advanced debugging tools." msgstr "" -#: ../Doc/c-api/init.rst:1443 +#: c-api/init.rst:1482 msgid "" "Return the interpreter state object at the head of the list of all such " "objects." msgstr "" -#: ../Doc/c-api/init.rst:1448 +#: c-api/init.rst:1487 msgid "Return the main interpreter state object." msgstr "" -#: ../Doc/c-api/init.rst:1453 +#: c-api/init.rst:1492 msgid "" "Return the next interpreter state object after *interp* from the list of all " "such objects." msgstr "" -#: ../Doc/c-api/init.rst:1459 +#: c-api/init.rst:1498 msgid "" "Return the pointer to the first :c:type:`PyThreadState` object in the list " "of threads associated with the interpreter *interp*." msgstr "" -#: ../Doc/c-api/init.rst:1465 +#: c-api/init.rst:1504 msgid "" "Return the next thread state object after *tstate* from the list of all such " "objects belonging to the same :c:type:`PyInterpreterState` object." msgstr "" -#: ../Doc/c-api/init.rst:1472 +#: c-api/init.rst:1511 msgid "Thread Local Storage Support" msgstr "" -#: ../Doc/c-api/init.rst:1476 +#: c-api/init.rst:1515 msgid "" "The Python interpreter provides low-level support for thread-local storage " "(TLS) which wraps the underlying native TLS implementation to support the " "Python-level thread local storage API (:class:`threading.local`). The " "CPython C level APIs are similar to those offered by pthreads and Windows: " -"use a thread key and functions to associate a :c:type:`void\\*` value per " +"use a thread key and functions to associate a :c:type:`void*` value per " "thread." msgstr "" -#: ../Doc/c-api/init.rst:1483 +#: c-api/init.rst:1522 msgid "" "The GIL does *not* need to be held when calling these functions; they supply " "their own locking." msgstr "" -#: ../Doc/c-api/init.rst:1486 +#: c-api/init.rst:1525 msgid "" "Note that :file:`Python.h` does not include the declaration of the TLS APIs, " "you need to include :file:`pythread.h` to use thread-local storage." msgstr "" -#: ../Doc/c-api/init.rst:1490 +#: c-api/init.rst:1529 msgid "" "None of these API functions handle memory management on behalf of the :c:" -"type:`void\\*` values. You need to allocate and deallocate them yourself. " -"If the :c:type:`void\\*` values happen to be :c:type:`PyObject\\*`, these " -"functions don't do refcount operations on them either." +"type:`void*` values. You need to allocate and deallocate them yourself. If " +"the :c:type:`void*` values happen to be :c:type:`PyObject*`, these functions " +"don't do refcount operations on them either." msgstr "" -#: ../Doc/c-api/init.rst:1498 +#: c-api/init.rst:1537 msgid "Thread Specific Storage (TSS) API" msgstr "" -#: ../Doc/c-api/init.rst:1500 +#: c-api/init.rst:1539 msgid "" "TSS API is introduced to supersede the use of the existing TLS API within " "the CPython interpreter. This API uses a new type :c:type:`Py_tss_t` " "instead of :c:type:`int` to represent thread keys." msgstr "" -#: ../Doc/c-api/init.rst:1506 +#: c-api/init.rst:1545 msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" msgstr "" -#: ../Doc/c-api/init.rst:1511 +#: c-api/init.rst:1550 msgid "" "This data structure represents the state of a thread key, the definition of " "which may depend on the underlying TLS implementation, and it has an " @@ -1765,66 +1816,66 @@ msgid "" "public members in this structure." msgstr "" -#: ../Doc/c-api/init.rst:1516 +#: c-api/init.rst:1555 msgid "" "When :ref:`Py_LIMITED_API ` is not defined, static allocation of " "this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." msgstr "" -#: ../Doc/c-api/init.rst:1522 +#: c-api/init.rst:1561 msgid "" "This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " "that this macro won't be defined with :ref:`Py_LIMITED_API `." msgstr "" -#: ../Doc/c-api/init.rst:1527 +#: c-api/init.rst:1566 msgid "Dynamic Allocation" msgstr "" -#: ../Doc/c-api/init.rst:1529 +#: c-api/init.rst:1568 msgid "" "Dynamic allocation of the :c:type:`Py_tss_t`, required in extension modules " "built with :ref:`Py_LIMITED_API `, where static allocation of this " "type is not possible due to its implementation being opaque at build time." msgstr "" -#: ../Doc/c-api/init.rst:1536 +#: c-api/init.rst:1575 msgid "" "Return a value which is the same state as a value initialized with :c:macro:" -"`Py_tss_NEEDS_INIT`, or *NULL* in the case of dynamic allocation failure." +"`Py_tss_NEEDS_INIT`, or ``NULL`` in the case of dynamic allocation failure." msgstr "" -#: ../Doc/c-api/init.rst:1543 +#: c-api/init.rst:1582 msgid "" "Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first " "calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " "have been unassigned. This is a no-op if the *key* argument is `NULL`." msgstr "" -#: ../Doc/c-api/init.rst:1549 +#: c-api/init.rst:1588 msgid "" "A freed key becomes a dangling pointer, you should reset the key to `NULL`." msgstr "" -#: ../Doc/c-api/init.rst:1554 +#: c-api/init.rst:1593 msgid "Methods" msgstr "Méthodes" -#: ../Doc/c-api/init.rst:1556 +#: c-api/init.rst:1595 msgid "" -"The parameter *key* of these functions must not be *NULL*. Moreover, the " +"The parameter *key* of these functions must not be ``NULL``. Moreover, the " "behaviors of :c:func:`PyThread_tss_set` and :c:func:`PyThread_tss_get` are " "undefined if the given :c:type:`Py_tss_t` has not been initialized by :c:" "func:`PyThread_tss_create`." msgstr "" -#: ../Doc/c-api/init.rst:1564 +#: c-api/init.rst:1603 msgid "" "Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " "by :c:func:`PyThread_tss_create`." msgstr "" -#: ../Doc/c-api/init.rst:1570 +#: c-api/init.rst:1609 msgid "" "Return a zero value on successful initialization of a TSS key. The behavior " "is undefined if the value pointed to by the *key* argument is not " @@ -1833,7 +1884,7 @@ msgid "" "no-op and immediately returns success." msgstr "" -#: ../Doc/c-api/init.rst:1579 +#: c-api/init.rst:1618 msgid "" "Destroy a TSS key to forget the values associated with the key across all " "threads, and change the key's initialization state to uninitialized. A " @@ -1842,31 +1893,31 @@ msgid "" "key -- calling it on an already destroyed key is a no-op." msgstr "" -#: ../Doc/c-api/init.rst:1588 +#: c-api/init.rst:1627 msgid "" -"Return a zero value to indicate successfully associating a :c:type:`void\\*` " +"Return a zero value to indicate successfully associating a :c:type:`void*` " "value with a TSS key in the current thread. Each thread has a distinct " -"mapping of the key to a :c:type:`void\\*` value." +"mapping of the key to a :c:type:`void*` value." msgstr "" -#: ../Doc/c-api/init.rst:1595 +#: c-api/init.rst:1634 msgid "" -"Return the :c:type:`void\\*` value associated with a TSS key in the current " -"thread. This returns *NULL* if no value is associated with the key in the " +"Return the :c:type:`void*` value associated with a TSS key in the current " +"thread. This returns ``NULL`` if no value is associated with the key in the " "current thread." msgstr "" -#: ../Doc/c-api/init.rst:1603 +#: c-api/init.rst:1642 msgid "Thread Local Storage (TLS) API" msgstr "" -#: ../Doc/c-api/init.rst:1605 +#: c-api/init.rst:1644 msgid "" "This API is superseded by :ref:`Thread Specific Storage (TSS) API `." msgstr "" -#: ../Doc/c-api/init.rst:1610 +#: c-api/init.rst:1649 msgid "" "This version of the API does not support platforms where the native TLS key " "is defined in a way that cannot be safely cast to ``int``. On such " @@ -1875,7 +1926,7 @@ msgid "" "platforms." msgstr "" -#: ../Doc/c-api/init.rst:1615 +#: c-api/init.rst:1654 msgid "" "Due to the compatibility problem noted above, this version of the API should " "not be used in new code." diff --git a/c-api/init_config.po b/c-api/init_config.po index d3dcfff695..d26bb3c787 100644 --- a/c-api/init_config.po +++ b/c-api/init_config.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.8\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-09-04 11:42+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,411 +14,412 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/init_config.rst:7 +#: c-api/init_config.rst:7 msgid "Python Initialization Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:11 +#: c-api/init_config.rst:11 msgid "Structures:" msgstr "" -#: ../Doc/c-api/init_config.rst:13 +#: c-api/init_config.rst:13 msgid ":c:type:`PyConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:14 +#: c-api/init_config.rst:14 msgid ":c:type:`PyPreConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:15 +#: c-api/init_config.rst:15 msgid ":c:type:`PyStatus`" msgstr "" -#: ../Doc/c-api/init_config.rst:16 +#: c-api/init_config.rst:16 msgid ":c:type:`PyWideStringList`" msgstr "" -#: ../Doc/c-api/init_config.rst:18 +#: c-api/init_config.rst:18 +#, fuzzy msgid "Functions:" -msgstr "" +msgstr "Fonctions" -#: ../Doc/c-api/init_config.rst:20 +#: c-api/init_config.rst:20 msgid ":c:func:`PyConfig_Clear`" msgstr "" -#: ../Doc/c-api/init_config.rst:21 +#: c-api/init_config.rst:21 msgid ":c:func:`PyConfig_InitIsolatedConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:22 +#: c-api/init_config.rst:22 msgid ":c:func:`PyConfig_InitPythonConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:23 +#: c-api/init_config.rst:23 msgid ":c:func:`PyConfig_Read`" msgstr "" -#: ../Doc/c-api/init_config.rst:24 +#: c-api/init_config.rst:24 msgid ":c:func:`PyConfig_SetArgv`" msgstr "" -#: ../Doc/c-api/init_config.rst:25 +#: c-api/init_config.rst:25 msgid ":c:func:`PyConfig_SetBytesArgv`" msgstr "" -#: ../Doc/c-api/init_config.rst:26 +#: c-api/init_config.rst:26 msgid ":c:func:`PyConfig_SetBytesString`" msgstr "" -#: ../Doc/c-api/init_config.rst:27 +#: c-api/init_config.rst:27 msgid ":c:func:`PyConfig_SetString`" msgstr "" -#: ../Doc/c-api/init_config.rst:28 +#: c-api/init_config.rst:28 msgid ":c:func:`PyConfig_SetWideStringList`" msgstr "" -#: ../Doc/c-api/init_config.rst:29 +#: c-api/init_config.rst:29 msgid ":c:func:`PyPreConfig_InitIsolatedConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:30 +#: c-api/init_config.rst:30 msgid ":c:func:`PyPreConfig_InitPythonConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:31 +#: c-api/init_config.rst:31 msgid ":c:func:`PyStatus_Error`" msgstr "" -#: ../Doc/c-api/init_config.rst:32 +#: c-api/init_config.rst:32 msgid ":c:func:`PyStatus_Exception`" msgstr "" -#: ../Doc/c-api/init_config.rst:33 +#: c-api/init_config.rst:33 msgid ":c:func:`PyStatus_Exit`" msgstr "" -#: ../Doc/c-api/init_config.rst:34 +#: c-api/init_config.rst:34 msgid ":c:func:`PyStatus_IsError`" msgstr "" -#: ../Doc/c-api/init_config.rst:35 +#: c-api/init_config.rst:35 msgid ":c:func:`PyStatus_IsExit`" msgstr "" -#: ../Doc/c-api/init_config.rst:36 +#: c-api/init_config.rst:36 msgid ":c:func:`PyStatus_NoMemory`" msgstr "" -#: ../Doc/c-api/init_config.rst:37 +#: c-api/init_config.rst:37 msgid ":c:func:`PyStatus_Ok`" msgstr "" -#: ../Doc/c-api/init_config.rst:38 +#: c-api/init_config.rst:38 msgid ":c:func:`PyWideStringList_Append`" msgstr "" -#: ../Doc/c-api/init_config.rst:39 +#: c-api/init_config.rst:39 msgid ":c:func:`PyWideStringList_Insert`" msgstr "" -#: ../Doc/c-api/init_config.rst:40 +#: c-api/init_config.rst:40 msgid ":c:func:`Py_ExitStatusException`" msgstr "" -#: ../Doc/c-api/init_config.rst:41 +#: c-api/init_config.rst:41 msgid ":c:func:`Py_InitializeFromConfig`" msgstr "" -#: ../Doc/c-api/init_config.rst:42 +#: c-api/init_config.rst:42 msgid ":c:func:`Py_PreInitialize`" msgstr "" -#: ../Doc/c-api/init_config.rst:43 +#: c-api/init_config.rst:43 msgid ":c:func:`Py_PreInitializeFromArgs`" msgstr "" -#: ../Doc/c-api/init_config.rst:44 +#: c-api/init_config.rst:44 msgid ":c:func:`Py_PreInitializeFromBytesArgs`" msgstr "" -#: ../Doc/c-api/init_config.rst:45 +#: c-api/init_config.rst:45 msgid ":c:func:`Py_RunMain`" msgstr "" -#: ../Doc/c-api/init_config.rst:47 +#: c-api/init_config.rst:47 msgid "" "The preconfiguration (``PyPreConfig`` type) is stored in ``_PyRuntime." "preconfig`` and the configuration (``PyConfig`` type) is stored in " "``PyInterpreterState.config``." msgstr "" -#: ../Doc/c-api/init_config.rst:51 +#: c-api/init_config.rst:51 msgid "" "See also :ref:`Initialization, Finalization, and Threads `." msgstr "" -#: ../Doc/c-api/init_config.rst:54 +#: c-api/init_config.rst:54 msgid ":pep:`587` \"Python Initialization Configuration\"." msgstr "" -#: ../Doc/c-api/init_config.rst:58 +#: c-api/init_config.rst:58 msgid "PyWideStringList" msgstr "" -#: ../Doc/c-api/init_config.rst:62 +#: c-api/init_config.rst:62 msgid "List of ``wchar_t*`` strings." msgstr "" -#: ../Doc/c-api/init_config.rst:64 +#: c-api/init_config.rst:64 msgid "" -"If *length* is non-zero, *items* must be non-NULL and all strings must be " -"non-NULL." +"If *length* is non-zero, *items* must be non-``NULL`` and all strings must " +"be non-``NULL``." msgstr "" -#: ../Doc/c-api/init_config.rst:67 +#: c-api/init_config.rst:67 +#, fuzzy msgid "Methods:" -msgstr "" +msgstr "Méthodes" -#: ../Doc/c-api/init_config.rst:71 +#: c-api/init_config.rst:71 msgid "Append *item* to *list*." msgstr "" -#: ../Doc/c-api/init_config.rst:73 ../Doc/c-api/init_config.rst:84 +#: c-api/init_config.rst:84 msgid "Python must be preinitialized to call this function." msgstr "" -#: ../Doc/c-api/init_config.rst:77 +#: c-api/init_config.rst:77 msgid "Insert *item* into *list* at *index*." msgstr "" -#: ../Doc/c-api/init_config.rst:79 +#: c-api/init_config.rst:79 msgid "" "If *index* is greater than or equal to *list* length, append *item* to " "*list*." msgstr "" -#: ../Doc/c-api/init_config.rst:82 +#: c-api/init_config.rst:82 msgid "*index* must be greater than or equal to 0." msgstr "" -#: ../Doc/c-api/init_config.rst:86 ../Doc/c-api/init_config.rst:106 -#: ../Doc/c-api/init_config.rst:209 ../Doc/c-api/init_config.rst:416 +#: c-api/init_config.rst:106 c-api/init_config.rst:416 msgid "Structure fields:" msgstr "" -#: ../Doc/c-api/init_config.rst:90 +#: c-api/init_config.rst:90 msgid "List length." msgstr "" -#: ../Doc/c-api/init_config.rst:94 +#: c-api/init_config.rst:94 msgid "List items." msgstr "" -#: ../Doc/c-api/init_config.rst:97 +#: c-api/init_config.rst:97 msgid "PyStatus" msgstr "" -#: ../Doc/c-api/init_config.rst:101 +#: c-api/init_config.rst:101 msgid "" "Structure to store an initialization function status: success, error or exit." msgstr "" -#: ../Doc/c-api/init_config.rst:104 +#: c-api/init_config.rst:104 msgid "For an error, it can store the C function name which created the error." msgstr "" -#: ../Doc/c-api/init_config.rst:110 +#: c-api/init_config.rst:110 msgid "Exit code. Argument passed to ``exit()``." msgstr "" -#: ../Doc/c-api/init_config.rst:114 +#: c-api/init_config.rst:114 msgid "Error message." msgstr "" -#: ../Doc/c-api/init_config.rst:118 +#: c-api/init_config.rst:118 msgid "Name of the function which created an error, can be ``NULL``." msgstr "" -#: ../Doc/c-api/init_config.rst:120 +#: c-api/init_config.rst:120 msgid "Functions to create a status:" msgstr "" -#: ../Doc/c-api/init_config.rst:124 +#: c-api/init_config.rst:124 msgid "Success." msgstr "" -#: ../Doc/c-api/init_config.rst:128 +#: c-api/init_config.rst:128 msgid "Initialization error with a message." msgstr "" -#: ../Doc/c-api/init_config.rst:132 +#: c-api/init_config.rst:132 msgid "Memory allocation failure (out of memory)." msgstr "" -#: ../Doc/c-api/init_config.rst:136 +#: c-api/init_config.rst:136 msgid "Exit Python with the specified exit code." msgstr "" -#: ../Doc/c-api/init_config.rst:138 +#: c-api/init_config.rst:138 msgid "Functions to handle a status:" msgstr "" -#: ../Doc/c-api/init_config.rst:142 +#: c-api/init_config.rst:142 msgid "" "Is the status an error or an exit? If true, the exception must be handled; " "by calling :c:func:`Py_ExitStatusException` for example." msgstr "" -#: ../Doc/c-api/init_config.rst:147 +#: c-api/init_config.rst:147 msgid "Is the result an error?" msgstr "" -#: ../Doc/c-api/init_config.rst:151 +#: c-api/init_config.rst:151 msgid "Is the result an exit?" msgstr "" -#: ../Doc/c-api/init_config.rst:155 +#: c-api/init_config.rst:155 msgid "" "Call ``exit(exitcode)`` if *status* is an exit. Print the error message and " "exit with a non-zero exit code if *status* is an error. Must only be called " "if ``PyStatus_Exception(status)`` is non-zero." msgstr "" -#: ../Doc/c-api/init_config.rst:160 +#: c-api/init_config.rst:160 msgid "" "Internally, Python uses macros which set ``PyStatus.func``, whereas " "functions to create a status set ``func`` to ``NULL``." msgstr "" -#: ../Doc/c-api/init_config.rst:163 +#: c-api/init_config.rst:163 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/c-api/init_config.rst:187 +#: c-api/init_config.rst:187 msgid "PyPreConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:191 +#: c-api/init_config.rst:191 msgid "Structure used to preinitialize Python:" msgstr "" -#: ../Doc/c-api/init_config.rst:193 +#: c-api/init_config.rst:193 msgid "Set the Python memory allocator" msgstr "" -#: ../Doc/c-api/init_config.rst:194 +#: c-api/init_config.rst:194 msgid "Configure the LC_CTYPE locale" msgstr "" -#: ../Doc/c-api/init_config.rst:195 +#: c-api/init_config.rst:195 msgid "Set the UTF-8 mode" msgstr "" -#: ../Doc/c-api/init_config.rst:197 +#: c-api/init_config.rst:197 msgid "Function to initialize a preconfiguration:" msgstr "" -#: ../Doc/c-api/init_config.rst:201 +#: c-api/init_config.rst:201 msgid "" "Initialize the preconfiguration with :ref:`Python Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:206 +#: c-api/init_config.rst:206 msgid "" "Initialize the preconfiguration with :ref:`Isolated Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:213 +#: c-api/init_config.rst:213 msgid "Name of the memory allocator:" msgstr "" -#: ../Doc/c-api/init_config.rst:215 +#: c-api/init_config.rst:215 msgid "" "``PYMEM_ALLOCATOR_NOT_SET`` (``0``): don't change memory allocators (use " "defaults)" msgstr "" -#: ../Doc/c-api/init_config.rst:217 +#: c-api/init_config.rst:217 msgid "``PYMEM_ALLOCATOR_DEFAULT`` (``1``): default memory allocators" msgstr "" -#: ../Doc/c-api/init_config.rst:218 +#: c-api/init_config.rst:218 msgid "" "``PYMEM_ALLOCATOR_DEBUG`` (``2``): default memory allocators with debug hooks" msgstr "" -#: ../Doc/c-api/init_config.rst:220 +#: c-api/init_config.rst:220 msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): force usage of ``malloc()``" msgstr "" -#: ../Doc/c-api/init_config.rst:221 +#: c-api/init_config.rst:221 msgid "" "``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` with " "debug hooks" msgstr "" -#: ../Doc/c-api/init_config.rst:223 +#: c-api/init_config.rst:223 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " "`" msgstr "" -#: ../Doc/c-api/init_config.rst:225 +#: c-api/init_config.rst:225 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " "allocator ` with debug hooks" msgstr "" -#: ../Doc/c-api/init_config.rst:228 +#: c-api/init_config.rst:228 msgid "" "``PYMEM_ALLOCATOR_PYMALLOC`` and ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` are not " "supported if Python is configured using ``--without-pymalloc``" msgstr "" -#: ../Doc/c-api/init_config.rst:231 +#: c-api/init_config.rst:231 msgid "See :ref:`Memory Management `." msgstr "" -#: ../Doc/c-api/init_config.rst:235 +#: c-api/init_config.rst:235 msgid "" "Set the LC_CTYPE locale to the user preferred locale? If equals to 0, set :c:" "member:`coerce_c_locale` and :c:member:`coerce_c_locale_warn` to 0." msgstr "" -#: ../Doc/c-api/init_config.rst:240 +#: c-api/init_config.rst:240 msgid "" "If equals to 2, coerce the C locale; if equals to 1, read the LC_CTYPE " "locale to decide if it should be coerced." msgstr "" -#: ../Doc/c-api/init_config.rst:245 +#: c-api/init_config.rst:245 msgid "If non-zero, emit a warning if the C locale is coerced." msgstr "" -#: ../Doc/c-api/init_config.rst:249 +#: c-api/init_config.rst:249 msgid "See :c:member:`PyConfig.dev_mode`." msgstr "" -#: ../Doc/c-api/init_config.rst:253 +#: c-api/init_config.rst:253 msgid "See :c:member:`PyConfig.isolated`." msgstr "" -#: ../Doc/c-api/init_config.rst:257 +#: c-api/init_config.rst:257 msgid "" "If non-zero, disable UTF-8 Mode, set the Python filesystem encoding to " "``mbcs``, set the filesystem error handler to ``replace``." msgstr "" -#: ../Doc/c-api/init_config.rst:260 ../Doc/c-api/init_config.rst:546 +#: c-api/init_config.rst:546 msgid "" "Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for " "Windows specific code." msgstr "" -#: ../Doc/c-api/init_config.rst:265 +#: c-api/init_config.rst:265 msgid "" "If non-zero, :c:func:`Py_PreInitializeFromArgs` and :c:func:" "`Py_PreInitializeFromBytesArgs` parse their ``argv`` argument the same way " @@ -426,45 +427,45 @@ msgid "" "Arguments `." msgstr "" -#: ../Doc/c-api/init_config.rst:272 +#: c-api/init_config.rst:272 msgid "See :c:member:`PyConfig.use_environment`." msgstr "" -#: ../Doc/c-api/init_config.rst:276 +#: c-api/init_config.rst:276 msgid "If non-zero, enable the UTF-8 mode." msgstr "" -#: ../Doc/c-api/init_config.rst:279 +#: c-api/init_config.rst:279 msgid "Preinitialization with PyPreConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:281 +#: c-api/init_config.rst:281 msgid "Functions to preinitialize Python:" msgstr "" -#: ../Doc/c-api/init_config.rst:285 +#: c-api/init_config.rst:285 msgid "Preinitialize Python from *preconfig* preconfiguration." msgstr "" -#: ../Doc/c-api/init_config.rst:289 +#: c-api/init_config.rst:289 msgid "" "Preinitialize Python from *preconfig* preconfiguration and command line " "arguments (bytes strings)." msgstr "" -#: ../Doc/c-api/init_config.rst:294 +#: c-api/init_config.rst:294 msgid "" "Preinitialize Python from *preconfig* preconfiguration and command line " "arguments (wide strings)." msgstr "" -#: ../Doc/c-api/init_config.rst:297 ../Doc/c-api/init_config.rst:715 +#: c-api/init_config.rst:715 msgid "" "The caller is responsible to handle exceptions (error or exit) using :c:func:" "`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." msgstr "" -#: ../Doc/c-api/init_config.rst:300 +#: c-api/init_config.rst:300 msgid "" "For :ref:`Python Configuration ` (:c:func:" "`PyPreConfig_InitPythonConfig`), if Python is initialized with command line " @@ -474,7 +475,7 @@ msgid "" "UTF-8 Mode." msgstr "" -#: ../Doc/c-api/init_config.rst:307 +#: c-api/init_config.rst:307 msgid "" "``PyMem_SetAllocator()`` can be called after :c:func:`Py_PreInitialize` and " "before :c:func:`Py_InitializeFromConfig` to install a custom memory " @@ -482,7 +483,7 @@ msgid "" "`PyPreConfig.allocator` is set to ``PYMEM_ALLOCATOR_NOT_SET``." msgstr "" -#: ../Doc/c-api/init_config.rst:312 +#: c-api/init_config.rst:312 msgid "" "Python memory allocation functions like :c:func:`PyMem_RawMalloc` must not " "be used before Python preinitialization, whereas calling directly " @@ -490,76 +491,75 @@ msgid "" "not be called before the preinitialization." msgstr "" -#: ../Doc/c-api/init_config.rst:317 +#: c-api/init_config.rst:317 msgid "Example using the preinitialization to enable the UTF-8 Mode::" msgstr "" -#: ../Doc/c-api/init_config.rst:338 +#: c-api/init_config.rst:338 msgid "PyConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:342 +#: c-api/init_config.rst:342 msgid "Structure containing most parameters to configure Python." msgstr "" -#: ../Doc/c-api/init_config.rst:344 +#: c-api/init_config.rst:344 msgid "Structure methods:" msgstr "" -#: ../Doc/c-api/init_config.rst:348 +#: c-api/init_config.rst:348 msgid "" "Initialize configuration with :ref:`Python Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:353 +#: c-api/init_config.rst:353 msgid "" "Initialize configuration with :ref:`Isolated Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:358 +#: c-api/init_config.rst:358 msgid "Copy the wide character string *str* into ``*config_str``." msgstr "" -#: ../Doc/c-api/init_config.rst:360 ../Doc/c-api/init_config.rst:366 -#: ../Doc/c-api/init_config.rst:372 ../Doc/c-api/init_config.rst:378 -#: ../Doc/c-api/init_config.rst:384 ../Doc/c-api/init_config.rst:392 +#: c-api/init_config.rst:366 c-api/init_config.rst:378 +#: c-api/init_config.rst:392 msgid "Preinitialize Python if needed." msgstr "" -#: ../Doc/c-api/init_config.rst:364 +#: c-api/init_config.rst:364 msgid "" "Decode *str* using ``Py_DecodeLocale()`` and set the result into " "``*config_str``." msgstr "" -#: ../Doc/c-api/init_config.rst:370 +#: c-api/init_config.rst:370 msgid "Set command line arguments from wide character strings." msgstr "" -#: ../Doc/c-api/init_config.rst:376 +#: c-api/init_config.rst:376 msgid "" "Set command line arguments: decode bytes using :c:func:`Py_DecodeLocale`." msgstr "" -#: ../Doc/c-api/init_config.rst:382 +#: c-api/init_config.rst:382 msgid "Set the list of wide strings *list* to *length* and *items*." msgstr "" -#: ../Doc/c-api/init_config.rst:388 +#: c-api/init_config.rst:388 msgid "Read all Python configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:390 +#: c-api/init_config.rst:390 msgid "Fields which are already initialized are left unchanged." msgstr "" -#: ../Doc/c-api/init_config.rst:396 +#: c-api/init_config.rst:396 msgid "Release configuration memory." msgstr "" -#: ../Doc/c-api/init_config.rst:398 +#: c-api/init_config.rst:398 msgid "" "Most ``PyConfig`` methods preinitialize Python if needed. In that case, the " "Python preinitialization configuration in based on the :c:type:`PyConfig`. " @@ -567,23 +567,23 @@ msgid "" "tuned, they must be set before calling a :c:type:`PyConfig` method:" msgstr "" -#: ../Doc/c-api/init_config.rst:403 +#: c-api/init_config.rst:403 msgid ":c:member:`~PyConfig.dev_mode`" msgstr "" -#: ../Doc/c-api/init_config.rst:404 +#: c-api/init_config.rst:404 msgid ":c:member:`~PyConfig.isolated`" msgstr "" -#: ../Doc/c-api/init_config.rst:405 +#: c-api/init_config.rst:405 msgid ":c:member:`~PyConfig.parse_argv`" msgstr "" -#: ../Doc/c-api/init_config.rst:406 +#: c-api/init_config.rst:406 msgid ":c:member:`~PyConfig.use_environment`" msgstr "" -#: ../Doc/c-api/init_config.rst:408 +#: c-api/init_config.rst:408 msgid "" "Moreover, if :c:func:`PyConfig_SetArgv` or :c:func:`PyConfig_SetBytesArgv` " "is used, this method must be called first, before other methods, since the " @@ -591,13 +591,13 @@ msgid "" "member:`parse_argv` is non-zero)." msgstr "" -#: ../Doc/c-api/init_config.rst:413 +#: c-api/init_config.rst:413 msgid "" "The caller of these methods is responsible to handle exceptions (error or " "exit) using ``PyStatus_Exception()`` and ``Py_ExitStatusException()``." msgstr "" -#: ../Doc/c-api/init_config.rst:420 +#: c-api/init_config.rst:420 msgid "" "Command line arguments, :data:`sys.argv`. See :c:member:`~PyConfig." "parse_argv` to parse :c:member:`~PyConfig.argv` the same way the regular " @@ -606,388 +606,389 @@ msgid "" "exists and is never empty." msgstr "" -#: ../Doc/c-api/init_config.rst:428 +#: c-api/init_config.rst:428 msgid ":data:`sys.base_exec_prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:432 +#: c-api/init_config.rst:432 msgid "" ":data:`sys._base_executable`: ``__PYVENV_LAUNCHER__`` environment variable " "value, or copy of :c:member:`PyConfig.executable`." msgstr "" -#: ../Doc/c-api/init_config.rst:437 +#: c-api/init_config.rst:437 msgid ":data:`sys.base_prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:441 +#: c-api/init_config.rst:441 msgid "" "If equals to 0, enable unbuffered mode, making the stdout and stderr streams " "unbuffered." msgstr "" -#: ../Doc/c-api/init_config.rst:444 +#: c-api/init_config.rst:444 msgid "stdin is always opened in buffered mode." msgstr "" -#: ../Doc/c-api/init_config.rst:448 +#: c-api/init_config.rst:448 msgid "" "If equals to 1, issue a warning when comparing :class:`bytes` or :class:" "`bytearray` with :class:`str`, or comparing :class:`bytes` with :class:" "`int`. If equal or greater to 2, raise a :exc:`BytesWarning` exception." msgstr "" -#: ../Doc/c-api/init_config.rst:455 +#: c-api/init_config.rst:455 msgid "" "Control the validation behavior of hash-based ``.pyc`` files (see :pep:" "`552`): :option:`--check-hash-based-pycs` command line option value." msgstr "" -#: ../Doc/c-api/init_config.rst:458 +#: c-api/init_config.rst:458 msgid "Valid values: ``always``, ``never`` and ``default``." msgstr "" -#: ../Doc/c-api/init_config.rst:460 +#: c-api/init_config.rst:460 msgid "The default value is: ``default``." msgstr "" -#: ../Doc/c-api/init_config.rst:464 +#: c-api/init_config.rst:464 msgid "" "If non-zero, configure C standard streams (``stdio``, ``stdout``, " "``stdout``). For example, set their mode to ``O_BINARY`` on Windows." msgstr "" -#: ../Doc/c-api/init_config.rst:469 +#: c-api/init_config.rst:469 msgid "Development mode: see :option:`-X dev <-X>`." msgstr "" -#: ../Doc/c-api/init_config.rst:473 +#: c-api/init_config.rst:473 msgid "If non-zero, dump all objects which are still alive at exit." msgstr "" -#: ../Doc/c-api/init_config.rst:475 +#: c-api/init_config.rst:475 msgid "" "Require a debug build of Python (``Py_REF_DEBUG`` macro must be defined)." msgstr "" -#: ../Doc/c-api/init_config.rst:479 +#: c-api/init_config.rst:479 msgid ":data:`sys.exec_prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:483 +#: c-api/init_config.rst:483 msgid ":data:`sys.executable`." msgstr "" -#: ../Doc/c-api/init_config.rst:487 +#: c-api/init_config.rst:487 msgid "If non-zero, call :func:`faulthandler.enable` at startup." msgstr "" -#: ../Doc/c-api/init_config.rst:491 +#: c-api/init_config.rst:491 msgid "Filesystem encoding, :func:`sys.getfilesystemencoding`." msgstr "" -#: ../Doc/c-api/init_config.rst:495 +#: c-api/init_config.rst:495 msgid "Filesystem encoding errors, :func:`sys.getfilesystemencodeerrors`." msgstr "" -#: ../Doc/c-api/init_config.rst:500 +#: c-api/init_config.rst:500 msgid "Randomized hash function seed." msgstr "" -#: ../Doc/c-api/init_config.rst:502 +#: c-api/init_config.rst:502 msgid "" "If :c:member:`~PyConfig.use_hash_seed` is zero, a seed is chosen randomly at " "Pythonstartup, and :c:member:`~PyConfig.hash_seed` is ignored." msgstr "" -#: ../Doc/c-api/init_config.rst:507 +#: c-api/init_config.rst:507 msgid "Python home directory." msgstr "" -#: ../Doc/c-api/init_config.rst:509 +#: c-api/init_config.rst:509 msgid "" "Initialized from :envvar:`PYTHONHOME` environment variable value by default." msgstr "" -#: ../Doc/c-api/init_config.rst:514 +#: c-api/init_config.rst:514 msgid "If non-zero, profile import time." msgstr "" -#: ../Doc/c-api/init_config.rst:518 +#: c-api/init_config.rst:518 msgid "Enter interactive mode after executing a script or a command." msgstr "" -#: ../Doc/c-api/init_config.rst:522 +#: c-api/init_config.rst:522 msgid "Install signal handlers?" msgstr "" -#: ../Doc/c-api/init_config.rst:526 +#: c-api/init_config.rst:526 +#, fuzzy msgid "Interactive mode." -msgstr "" +msgstr "Mode interactif" -#: ../Doc/c-api/init_config.rst:530 +#: c-api/init_config.rst:530 msgid "If greater than 0, enable isolated mode:" msgstr "" -#: ../Doc/c-api/init_config.rst:532 +#: c-api/init_config.rst:532 msgid "" ":data:`sys.path` contains neither the script's directory (computed from " "``argv[0]`` or the current directory) nor the user's site-packages directory." msgstr "" -#: ../Doc/c-api/init_config.rst:535 +#: c-api/init_config.rst:535 msgid "" "Python REPL doesn't import :mod:`readline` nor enable default readline " "configuration on interactive prompts." msgstr "" -#: ../Doc/c-api/init_config.rst:537 +#: c-api/init_config.rst:537 msgid "" "Set :c:member:`~PyConfig.use_environment` and :c:member:`~PyConfig." "user_site_directory` to 0." msgstr "" -#: ../Doc/c-api/init_config.rst:542 +#: c-api/init_config.rst:542 msgid "" "If non-zero, use :class:`io.FileIO` instead of :class:`io.WindowsConsoleIO` " "for :data:`sys.stdin`, :data:`sys.stdout` and :data:`sys.stderr`." msgstr "" -#: ../Doc/c-api/init_config.rst:551 +#: c-api/init_config.rst:551 msgid "" "If non-zero, dump statistics on :ref:`Python pymalloc memory allocator " "` at exit." msgstr "" -#: ../Doc/c-api/init_config.rst:554 +#: c-api/init_config.rst:554 msgid "The option is ignored if Python is built using ``--without-pymalloc``." msgstr "" -#: ../Doc/c-api/init_config.rst:558 +#: c-api/init_config.rst:558 msgid "" "Module search paths as a string separated by ``DELIM`` (:data:`os.path." "pathsep`)." msgstr "" -#: ../Doc/c-api/init_config.rst:561 +#: c-api/init_config.rst:561 msgid "" "Initialized from :envvar:`PYTHONPATH` environment variable value by default." msgstr "" -#: ../Doc/c-api/init_config.rst:567 +#: c-api/init_config.rst:567 msgid "" ":data:`sys.path`. If :c:member:`~PyConfig.module_search_paths_set` is equal " "to 0, the :c:member:`~PyConfig.module_search_paths` is overridden by the " "function calculating the :ref:`Path Configuration `." msgstr "" -#: ../Doc/c-api/init_config.rst:574 +#: c-api/init_config.rst:574 msgid "Compilation optimization level:" msgstr "" -#: ../Doc/c-api/init_config.rst:576 +#: c-api/init_config.rst:576 msgid "0: Peephole optimizer (and ``__debug__`` is set to ``True``)" msgstr "" -#: ../Doc/c-api/init_config.rst:577 +#: c-api/init_config.rst:577 msgid "1: Remove assertions, set ``__debug__`` to ``False``" msgstr "" -#: ../Doc/c-api/init_config.rst:578 +#: c-api/init_config.rst:578 msgid "2: Strip docstrings" msgstr "" -#: ../Doc/c-api/init_config.rst:582 +#: c-api/init_config.rst:582 msgid "" "If non-zero, parse :c:member:`~PyConfig.argv` the same way the regular " "Python command line arguments, and strip Python arguments from :c:member:" "`~PyConfig.argv`: see :ref:`Command Line Arguments `." msgstr "" -#: ../Doc/c-api/init_config.rst:589 +#: c-api/init_config.rst:589 msgid "" "If non-zero, turn on parser debugging output (for expert only, depending on " "compilation options)." msgstr "" -#: ../Doc/c-api/init_config.rst:594 +#: c-api/init_config.rst:594 msgid "" "If equal to 0, suppress warnings when calculating the :ref:`Path " "Configuration ` (Unix only, Windows does not log any " "warning). Otherwise, warnings are written into ``stderr``." msgstr "" -#: ../Doc/c-api/init_config.rst:600 +#: c-api/init_config.rst:600 msgid ":data:`sys.prefix`." msgstr "" -#: ../Doc/c-api/init_config.rst:604 +#: c-api/init_config.rst:604 msgid "" "Program name. Used to initialize :c:member:`~PyConfig.executable`, and in " "early error messages." msgstr "" -#: ../Doc/c-api/init_config.rst:609 +#: c-api/init_config.rst:609 msgid ":data:`sys.pycache_prefix`: ``.pyc`` cache prefix." msgstr "" -#: ../Doc/c-api/init_config.rst:611 -msgid "If NULL, :data:`sys.pycache_prefix` is set to ``None``." +#: c-api/init_config.rst:611 +msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``." msgstr "" -#: ../Doc/c-api/init_config.rst:615 +#: c-api/init_config.rst:615 msgid "" "Quiet mode. For example, don't display the copyright and version messages in " "interactive mode." msgstr "" -#: ../Doc/c-api/init_config.rst:620 +#: c-api/init_config.rst:620 msgid "``python3 -c COMMAND`` argument. Used by :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:624 +#: c-api/init_config.rst:624 msgid "``python3 FILENAME`` argument. Used by :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:628 +#: c-api/init_config.rst:628 msgid "``python3 -m MODULE`` argument. Used by :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:632 +#: c-api/init_config.rst:632 msgid "Show allocation counts at exit?" msgstr "" -#: ../Doc/c-api/init_config.rst:634 +#: c-api/init_config.rst:634 msgid "Set to 1 by :option:`-X showalloccount <-X>` command line option." msgstr "" -#: ../Doc/c-api/init_config.rst:636 +#: c-api/init_config.rst:636 msgid "Need a special Python build with ``COUNT_ALLOCS`` macro defined." msgstr "" -#: ../Doc/c-api/init_config.rst:640 +#: c-api/init_config.rst:640 msgid "Show total reference count at exit?" msgstr "" -#: ../Doc/c-api/init_config.rst:642 +#: c-api/init_config.rst:642 msgid "Set to 1 by :option:`-X showrefcount <-X>` command line option." msgstr "" -#: ../Doc/c-api/init_config.rst:644 +#: c-api/init_config.rst:644 msgid "Need a debug build of Python (``Py_REF_DEBUG`` macro must be defined)." msgstr "" -#: ../Doc/c-api/init_config.rst:648 +#: c-api/init_config.rst:648 msgid "Import the :mod:`site` module at startup?" msgstr "" -#: ../Doc/c-api/init_config.rst:652 +#: c-api/init_config.rst:652 msgid "Skip the first line of the source?" msgstr "" -#: ../Doc/c-api/init_config.rst:657 +#: c-api/init_config.rst:657 msgid "" "Encoding and encoding errors of :data:`sys.stdin`, :data:`sys.stdout` and :" "data:`sys.stderr`." msgstr "" -#: ../Doc/c-api/init_config.rst:662 +#: c-api/init_config.rst:662 msgid "If non-zero, call :func:`tracemalloc.start` at startup." msgstr "" -#: ../Doc/c-api/init_config.rst:666 +#: c-api/init_config.rst:666 msgid "If greater than 0, use :ref:`environment variables `." msgstr "" -#: ../Doc/c-api/init_config.rst:670 +#: c-api/init_config.rst:670 msgid "If non-zero, add user site directory to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:674 +#: c-api/init_config.rst:674 msgid "If non-zero, enable verbose mode." msgstr "" -#: ../Doc/c-api/init_config.rst:678 +#: c-api/init_config.rst:678 msgid "" ":data:`sys.warnoptions`: options of the :mod:`warnings` module to build " "warnings filters: lowest to highest priority." msgstr "" -#: ../Doc/c-api/init_config.rst:681 +#: c-api/init_config.rst:681 msgid "" "The :mod:`warnings` module adds :data:`sys.warnoptions` in the reverse " "order: the last :c:member:`PyConfig.warnoptions` item becomes the first item " "of :data:`warnings.filters` which is checked first (highest priority)." msgstr "" -#: ../Doc/c-api/init_config.rst:688 +#: c-api/init_config.rst:688 msgid "If non-zero, write ``.pyc`` files." msgstr "" -#: ../Doc/c-api/init_config.rst:690 +#: c-api/init_config.rst:690 msgid "" ":data:`sys.dont_write_bytecode` is initialized to the inverted value of :c:" "member:`~PyConfig.write_bytecode`." msgstr "" -#: ../Doc/c-api/init_config.rst:695 +#: c-api/init_config.rst:695 msgid ":data:`sys._xoptions`." msgstr "" -#: ../Doc/c-api/init_config.rst:697 +#: c-api/init_config.rst:697 msgid "" "If ``parse_argv`` is non-zero, ``argv`` arguments are parsed the same way " "the regular Python parses command line arguments, and Python arguments are " "stripped from ``argv``: see :ref:`Command Line Arguments `." msgstr "" -#: ../Doc/c-api/init_config.rst:702 +#: c-api/init_config.rst:702 msgid "" "The ``xoptions`` options are parsed to set other options: see :option:`-X` " "option." msgstr "" -#: ../Doc/c-api/init_config.rst:707 +#: c-api/init_config.rst:707 msgid "Initialization with PyConfig" msgstr "" -#: ../Doc/c-api/init_config.rst:709 +#: c-api/init_config.rst:709 msgid "Function to initialize Python:" msgstr "" -#: ../Doc/c-api/init_config.rst:713 +#: c-api/init_config.rst:713 msgid "Initialize Python from *config* configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:718 +#: c-api/init_config.rst:718 msgid "" "If ``PyImport_FrozenModules``, ``PyImport_AppendInittab()`` or " "``PyImport_ExtendInittab()`` are used, they must be set or called after " "Python preinitialization and before the Python initialization." msgstr "" -#: ../Doc/c-api/init_config.rst:722 +#: c-api/init_config.rst:722 msgid "Example setting the program name::" msgstr "" -#: ../Doc/c-api/init_config.rst:750 +#: c-api/init_config.rst:750 msgid "" "More complete example modifying the default configuration, read the " "configuration, and then override some parameters::" msgstr "" -#: ../Doc/c-api/init_config.rst:801 +#: c-api/init_config.rst:801 msgid "Isolated Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:803 +#: c-api/init_config.rst:803 msgid "" ":c:func:`PyPreConfig_InitIsolatedConfig` and :c:func:" "`PyConfig_InitIsolatedConfig` functions create a configuration to isolate " "Python from the system. For example, to embed Python into an application." msgstr "" -#: ../Doc/c-api/init_config.rst:808 +#: c-api/init_config.rst:808 msgid "" "This configuration ignores global configuration variables, environments " "variables, command line arguments (:c:member:`PyConfig.argv` is not parsed) " @@ -995,7 +996,7 @@ msgid "" "LC_CTYPE locale are left unchanged. Signal handlers are not installed." msgstr "" -#: ../Doc/c-api/init_config.rst:813 +#: c-api/init_config.rst:813 msgid "" "Configuration files are still used with this configuration. Set the :ref:" "`Path Configuration ` (\"output fields\") to ignore these " @@ -1003,118 +1004,118 @@ msgid "" "configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:822 +#: c-api/init_config.rst:822 msgid "Python Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:824 +#: c-api/init_config.rst:824 msgid "" ":c:func:`PyPreConfig_InitPythonConfig` and :c:func:" "`PyConfig_InitPythonConfig` functions create a configuration to build a " "customized Python which behaves as the regular Python." msgstr "" -#: ../Doc/c-api/init_config.rst:828 +#: c-api/init_config.rst:828 msgid "" "Environments variables and command line arguments are used to configure " "Python, whereas global configuration variables are ignored." msgstr "" -#: ../Doc/c-api/init_config.rst:831 +#: c-api/init_config.rst:831 msgid "" "This function enables C locale coercion (:pep:`538`) and UTF-8 Mode (:pep:" "`540`) depending on the LC_CTYPE locale, :envvar:`PYTHONUTF8` and :envvar:" "`PYTHONCOERCECLOCALE` environment variables." msgstr "" -#: ../Doc/c-api/init_config.rst:835 +#: c-api/init_config.rst:835 msgid "Example of customized Python always running in isolated mode::" msgstr "" -#: ../Doc/c-api/init_config.rst:874 +#: c-api/init_config.rst:874 msgid "Path Configuration" msgstr "" -#: ../Doc/c-api/init_config.rst:876 +#: c-api/init_config.rst:876 msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:" msgstr "" -#: ../Doc/c-api/init_config.rst:878 +#: c-api/init_config.rst:878 msgid "Path configuration inputs:" msgstr "" -#: ../Doc/c-api/init_config.rst:880 +#: c-api/init_config.rst:880 msgid ":c:member:`PyConfig.home`" msgstr "" -#: ../Doc/c-api/init_config.rst:881 +#: c-api/init_config.rst:881 msgid ":c:member:`PyConfig.pathconfig_warnings`" msgstr "" -#: ../Doc/c-api/init_config.rst:882 +#: c-api/init_config.rst:882 msgid ":c:member:`PyConfig.program_name`" msgstr "" -#: ../Doc/c-api/init_config.rst:883 +#: c-api/init_config.rst:883 msgid ":c:member:`PyConfig.pythonpath_env`" msgstr "" -#: ../Doc/c-api/init_config.rst:884 +#: c-api/init_config.rst:884 msgid "current working directory: to get absolute paths" msgstr "" -#: ../Doc/c-api/init_config.rst:885 +#: c-api/init_config.rst:885 msgid "" "``PATH`` environment variable to get the program full path (from :c:member:" "`PyConfig.program_name`)" msgstr "" -#: ../Doc/c-api/init_config.rst:887 +#: c-api/init_config.rst:887 msgid "``__PYVENV_LAUNCHER__`` environment variable" msgstr "" -#: ../Doc/c-api/init_config.rst:888 +#: c-api/init_config.rst:888 msgid "" -"(Windows only) Application paths in the registry under \"Software\\Python" -"\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and HKEY_LOCAL_MACHINE " -"(where X.Y is the Python version)." +"(Windows only) Application paths in the registry under " +"\"Software\\Python\\PythonCore\\X.Y\\PythonPath\" of HKEY_CURRENT_USER and " +"HKEY_LOCAL_MACHINE (where X.Y is the Python version)." msgstr "" -#: ../Doc/c-api/init_config.rst:892 +#: c-api/init_config.rst:892 msgid "Path configuration output fields:" msgstr "" -#: ../Doc/c-api/init_config.rst:894 +#: c-api/init_config.rst:894 msgid ":c:member:`PyConfig.base_exec_prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:895 +#: c-api/init_config.rst:895 msgid ":c:member:`PyConfig.base_executable`" msgstr "" -#: ../Doc/c-api/init_config.rst:896 +#: c-api/init_config.rst:896 msgid ":c:member:`PyConfig.base_prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:897 +#: c-api/init_config.rst:897 msgid ":c:member:`PyConfig.exec_prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:898 +#: c-api/init_config.rst:898 msgid ":c:member:`PyConfig.executable`" msgstr "" -#: ../Doc/c-api/init_config.rst:899 +#: c-api/init_config.rst:899 msgid "" ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig." "module_search_paths`" msgstr "" -#: ../Doc/c-api/init_config.rst:901 +#: c-api/init_config.rst:901 msgid ":c:member:`PyConfig.prefix`" msgstr "" -#: ../Doc/c-api/init_config.rst:903 +#: c-api/init_config.rst:903 msgid "" "If at least one \"output field\" is not set, Python calculates the path " "configuration to fill unset fields. If :c:member:`~PyConfig." @@ -1123,7 +1124,7 @@ msgid "" "module_search_paths_set` is set to 1." msgstr "" -#: ../Doc/c-api/init_config.rst:909 +#: c-api/init_config.rst:909 msgid "" "It is possible to completely ignore the function calculating the default " "path configuration by setting explicitly all path configuration output " @@ -1133,52 +1134,52 @@ msgid "" "well." msgstr "" -#: ../Doc/c-api/init_config.rst:916 +#: c-api/init_config.rst:916 msgid "" "Set :c:member:`~PyConfig.pathconfig_warnings` to 0 to suppress warnings when " "calculating the path configuration (Unix only, Windows does not log any " "warning)." msgstr "" -#: ../Doc/c-api/init_config.rst:919 +#: c-api/init_config.rst:919 msgid "" "If :c:member:`~PyConfig.base_prefix` or :c:member:`~PyConfig." "base_exec_prefix` fields are not set, they inherit their value from :c:" "member:`~PyConfig.prefix` and :c:member:`~PyConfig.exec_prefix` respectively." msgstr "" -#: ../Doc/c-api/init_config.rst:923 +#: c-api/init_config.rst:923 msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:" msgstr "" -#: ../Doc/c-api/init_config.rst:925 +#: c-api/init_config.rst:925 msgid "" "If :c:member:`~PyConfig.run_filename` is set and is a directory which " "contains a ``__main__.py`` script, prepend :c:member:`~PyConfig." "run_filename` to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:928 +#: c-api/init_config.rst:928 msgid "If :c:member:`~PyConfig.isolated` is zero:" msgstr "" -#: ../Doc/c-api/init_config.rst:930 +#: c-api/init_config.rst:930 msgid "" "If :c:member:`~PyConfig.run_module` is set, prepend the current directory " "to :data:`sys.path`. Do nothing if the current directory cannot be read." msgstr "" -#: ../Doc/c-api/init_config.rst:932 +#: c-api/init_config.rst:932 msgid "" "If :c:member:`~PyConfig.run_filename` is set, prepend the directory of the " "filename to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:934 +#: c-api/init_config.rst:934 msgid "Otherwise, prepend an empty string to :data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:936 +#: c-api/init_config.rst:936 msgid "" "If :c:member:`~PyConfig.site_import` is non-zero, :data:`sys.path` can be " "modified by the :mod:`site` module. If :c:member:`~PyConfig." @@ -1187,138 +1188,138 @@ msgid "" "data:`sys.path`." msgstr "" -#: ../Doc/c-api/init_config.rst:942 +#: c-api/init_config.rst:942 msgid "The following configuration files are used by the path configuration:" msgstr "" -#: ../Doc/c-api/init_config.rst:944 +#: c-api/init_config.rst:944 msgid "``pyvenv.cfg``" msgstr "" -#: ../Doc/c-api/init_config.rst:945 +#: c-api/init_config.rst:945 msgid "``python._pth`` (Windows only)" msgstr "" -#: ../Doc/c-api/init_config.rst:946 +#: c-api/init_config.rst:946 msgid "``pybuilddir.txt`` (Unix only)" msgstr "" -#: ../Doc/c-api/init_config.rst:948 +#: c-api/init_config.rst:948 msgid "" "The ``__PYVENV_LAUNCHER__`` environment variable is used to set :c:member:" "`PyConfig.base_executable`" msgstr "" -#: ../Doc/c-api/init_config.rst:953 +#: c-api/init_config.rst:953 msgid "Py_RunMain()" msgstr "" -#: ../Doc/c-api/init_config.rst:957 +#: c-api/init_config.rst:957 msgid "" "Execute the command (:c:member:`PyConfig.run_command`), the script (:c:" "member:`PyConfig.run_filename`) or the module (:c:member:`PyConfig." "run_module`) specified on the command line or in the configuration." msgstr "" -#: ../Doc/c-api/init_config.rst:962 +#: c-api/init_config.rst:962 msgid "By default and when if :option:`-i` option is used, run the REPL." msgstr "" -#: ../Doc/c-api/init_config.rst:964 +#: c-api/init_config.rst:964 msgid "" "Finally, finalizes Python and returns an exit status that can be passed to " "the ``exit()`` function." msgstr "" -#: ../Doc/c-api/init_config.rst:967 +#: c-api/init_config.rst:967 msgid "" "See :ref:`Python Configuration ` for an example of " "customized Python always running in isolated mode using :c:func:`Py_RunMain`." msgstr "" -#: ../Doc/c-api/init_config.rst:973 +#: c-api/init_config.rst:973 msgid "Multi-Phase Initialization Private Provisional API" msgstr "" -#: ../Doc/c-api/init_config.rst:975 +#: c-api/init_config.rst:975 msgid "" "This section is a private provisional API introducing multi-phase " "initialization, the core feature of the :pep:`432`:" msgstr "" -#: ../Doc/c-api/init_config.rst:978 +#: c-api/init_config.rst:978 msgid "\"Core\" initialization phase, \"bare minimum Python\":" msgstr "" -#: ../Doc/c-api/init_config.rst:980 +#: c-api/init_config.rst:980 msgid "Builtin types;" msgstr "" -#: ../Doc/c-api/init_config.rst:981 +#: c-api/init_config.rst:981 msgid "Builtin exceptions;" msgstr "" -#: ../Doc/c-api/init_config.rst:982 +#: c-api/init_config.rst:982 msgid "Builtin and frozen modules;" msgstr "" -#: ../Doc/c-api/init_config.rst:983 +#: c-api/init_config.rst:983 msgid "" "The :mod:`sys` module is only partially initialized (ex: :data:`sys.path` " "doesn't exist yet)." msgstr "" -#: ../Doc/c-api/init_config.rst:986 +#: c-api/init_config.rst:986 msgid "\"Main\" initialization phase, Python is fully initialized:" msgstr "" -#: ../Doc/c-api/init_config.rst:988 +#: c-api/init_config.rst:988 msgid "Install and configure :mod:`importlib`;" msgstr "" -#: ../Doc/c-api/init_config.rst:989 +#: c-api/init_config.rst:989 msgid "Apply the :ref:`Path Configuration `;" msgstr "" -#: ../Doc/c-api/init_config.rst:990 +#: c-api/init_config.rst:990 msgid "Install signal handlers;" msgstr "" -#: ../Doc/c-api/init_config.rst:991 +#: c-api/init_config.rst:991 msgid "" "Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` and :" "data:`sys.path`);" msgstr "" -#: ../Doc/c-api/init_config.rst:993 +#: c-api/init_config.rst:993 msgid "" "Enable optional features like :mod:`faulthandler` and :mod:`tracemalloc`;" msgstr "" -#: ../Doc/c-api/init_config.rst:994 +#: c-api/init_config.rst:994 msgid "Import the :mod:`site` module;" msgstr "" -#: ../Doc/c-api/init_config.rst:995 +#: c-api/init_config.rst:995 msgid "etc." msgstr "" -#: ../Doc/c-api/init_config.rst:997 +#: c-api/init_config.rst:997 msgid "Private provisional API:" msgstr "" -#: ../Doc/c-api/init_config.rst:999 +#: c-api/init_config.rst:999 msgid "" ":c:member:`PyConfig._init_main`: if set to 0, :c:func:" "`Py_InitializeFromConfig` stops at the \"Core\" initialization phase." msgstr "" -#: ../Doc/c-api/init_config.rst:1004 +#: c-api/init_config.rst:1004 msgid "" "Move to the \"Main\" initialization phase, finish the Python initialization." msgstr "" -#: ../Doc/c-api/init_config.rst:1006 +#: c-api/init_config.rst:1006 msgid "" "No module is imported during the \"Core\" phase and the ``importlib`` module " "is not configured: the :ref:`Path Configuration ` is only " @@ -1327,14 +1328,14 @@ msgid "" "maybe install a custom :data:`sys.meta_path` importer or an import hook, etc." msgstr "" -#: ../Doc/c-api/init_config.rst:1012 +#: c-api/init_config.rst:1012 msgid "" "It may become possible to calculatin the :ref:`Path Configuration ` in Python, after the Core phase and before the Main phase, which is " "one of the :pep:`432` motivation." msgstr "" -#: ../Doc/c-api/init_config.rst:1016 +#: c-api/init_config.rst:1016 msgid "" "The \"Core\" phase is not properly defined: what should be and what should " "not be available at this phase is not specified yet. The API is marked as " @@ -1342,7 +1343,7 @@ msgid "" "until a proper public API is designed." msgstr "" -#: ../Doc/c-api/init_config.rst:1021 +#: c-api/init_config.rst:1021 msgid "" "Example running Python code between \"Core\" and \"Main\" initialization " "phases::" diff --git a/c-api/intro.po b/c-api/intro.po index 8a9ea28035..8d989fc80d 100644 --- a/c-api/intro.po +++ b/c-api/intro.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/intro.rst:8 +#: c-api/intro.rst:8 msgid "Introduction" msgstr "Introduction" -#: ../Doc/c-api/intro.rst:10 +#: c-api/intro.rst:10 msgid "" "The Application Programmer's Interface to Python gives C and C++ programmers " "access to the Python interpreter at a variety of levels. The API is equally " @@ -31,7 +31,7 @@ msgid "" "`embedding` Python in an application." msgstr "" -#: ../Doc/c-api/intro.rst:20 +#: c-api/intro.rst:20 msgid "" "Writing an extension module is a relatively well-understood process, where a " "\"cookbook\" approach works well. There are several tools that automate the " @@ -40,7 +40,7 @@ msgid "" "less straightforward than writing an extension." msgstr "" -#: ../Doc/c-api/intro.rst:26 +#: c-api/intro.rst:26 msgid "" "Many API functions are useful independent of whether you're embedding or " "extending Python; moreover, most applications that embed Python will need " @@ -49,11 +49,11 @@ msgid "" "in a real application." msgstr "" -#: ../Doc/c-api/intro.rst:34 +#: c-api/intro.rst:34 msgid "Coding standards" msgstr "" -#: ../Doc/c-api/intro.rst:36 +#: c-api/intro.rst:36 msgid "" "If you're writing C code for inclusion in CPython, you **must** follow the " "guidelines and standards defined in :PEP:`7`. These guidelines apply " @@ -62,24 +62,24 @@ msgid "" "modules, unless you eventually expect to contribute them to Python." msgstr "" -#: ../Doc/c-api/intro.rst:46 +#: c-api/intro.rst:46 msgid "Include Files" msgstr "" -#: ../Doc/c-api/intro.rst:48 +#: c-api/intro.rst:48 msgid "" "All function, type and macro definitions needed to use the Python/C API are " "included in your code by the following line::" msgstr "" -#: ../Doc/c-api/intro.rst:54 +#: c-api/intro.rst:54 msgid "" "This implies inclusion of the following standard headers: ````, " "````, ````, ````, ```` and ```` (if available)." msgstr "" -#: ../Doc/c-api/intro.rst:60 +#: c-api/intro.rst:60 msgid "" "Since Python may define some pre-processor definitions which affect the " "standard headers on some systems, you *must* include :file:`Python.h` before " @@ -89,13 +89,17 @@ msgstr "" "les têtes standard sur certains systèmes, vous *devez* inclure :file:`Python." "h` avant les en-têtes standards." -#: ../Doc/c-api/intro.rst:64 +#: c-api/intro.rst:64 +#, fuzzy msgid "" "It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " "``Python.h``. See :ref:`arg-parsing` for a description of this macro." msgstr "" +"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure " +"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " +"macro." -#: ../Doc/c-api/intro.rst:67 +#: c-api/intro.rst:67 msgid "" "All user visible names defined by Python.h (except those defined by the " "included standard headers) have one of the prefixes ``Py`` or ``_Py``. " @@ -104,7 +108,7 @@ msgid "" "names do not have a reserved prefix." msgstr "" -#: ../Doc/c-api/intro.rst:74 +#: c-api/intro.rst:74 msgid "" "User code should never define names that begin with ``Py`` or ``_Py``. This " "confuses the reader, and jeopardizes the portability of the user code to " @@ -112,7 +116,7 @@ msgid "" "of these prefixes." msgstr "" -#: ../Doc/c-api/intro.rst:79 +#: c-api/intro.rst:79 msgid "" "The header files are typically installed with Python. On Unix, these are " "located in the directories :file:`{prefix}/include/pythonversion/` and :file:" @@ -124,7 +128,7 @@ msgid "" "specified to the installer." msgstr "" -#: ../Doc/c-api/intro.rst:88 +#: c-api/intro.rst:88 msgid "" "To include the headers, place both directories (if different) on your " "compiler's search path for includes. Do *not* place the parent directories " @@ -134,18 +138,18 @@ msgid "" "`exec_prefix`." msgstr "" -#: ../Doc/c-api/intro.rst:95 +#: c-api/intro.rst:95 msgid "" "C++ users should note that although the API is defined entirely using C, the " "header files properly declare the entry points to be ``extern \"C\"``. As a " "result, there is no need to do anything special to use the API from C++." msgstr "" -#: ../Doc/c-api/intro.rst:101 +#: c-api/intro.rst:101 msgid "Useful macros" msgstr "" -#: ../Doc/c-api/intro.rst:103 +#: c-api/intro.rst:103 msgid "" "Several useful macros are defined in the Python header files. Many are " "defined closer to where they are useful (e.g. :c:macro:`Py_RETURN_NONE`). " @@ -153,7 +157,7 @@ msgid "" "a complete listing." msgstr "" -#: ../Doc/c-api/intro.rst:110 +#: c-api/intro.rst:110 msgid "" "Use this when you have a code path that you do not expect to be reached. For " "example, in the ``default:`` clause in a ``switch`` statement for which all " @@ -161,79 +165,104 @@ msgid "" "where you might be tempted to put an ``assert(0)`` or ``abort()`` call." msgstr "" -#: ../Doc/c-api/intro.rst:119 +#: c-api/intro.rst:119 +#, fuzzy msgid "Return the absolute value of ``x``." -msgstr "" +msgstr "Renvoie la valeur absolue de *x*." -#: ../Doc/c-api/intro.rst:125 +#: c-api/intro.rst:125 msgid "Return the minimum value between ``x`` and ``y``." msgstr "" -#: ../Doc/c-api/intro.rst:131 +#: c-api/intro.rst:131 msgid "Return the maximum value between ``x`` and ``y``." msgstr "" -#: ../Doc/c-api/intro.rst:137 +#: c-api/intro.rst:137 msgid "" "Convert ``x`` to a C string. E.g. ``Py_STRINGIFY(123)`` returns ``\"123\"``." msgstr "" -#: ../Doc/c-api/intro.rst:144 +#: c-api/intro.rst:144 msgid "Return the size of a structure (``type``) ``member`` in bytes." msgstr "" -#: ../Doc/c-api/intro.rst:150 +#: c-api/intro.rst:150 msgid "" "Argument must be a character or an integer in the range [-128, 127] or [0, " "255]. This macro returns ``c`` cast to an ``unsigned char``." msgstr "" -#: ../Doc/c-api/intro.rst:155 +#: c-api/intro.rst:155 msgid "" -"Like ``getenv(s)``, but returns *NULL* if :option:`-E` was passed on the " +"Like ``getenv(s)``, but returns ``NULL`` if :option:`-E` was passed on the " "command line (i.e. if ``Py_IgnoreEnvironmentFlag`` is set)." msgstr "" -#: ../Doc/c-api/intro.rst:160 +#: c-api/intro.rst:160 msgid "" "Use this for unused arguments in a function definition to silence compiler " "warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``." msgstr "" -#: ../Doc/c-api/intro.rst:167 +#: c-api/intro.rst:167 msgid "" "Use this for deprecated declarations. The macro must be placed before the " "symbol name." msgstr "" -#: ../Doc/c-api/intro.rst:170 +#: c-api/intro.rst:185 c-api/intro.rst:203 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/c-api/intro.rst:174 +#: c-api/intro.rst:174 msgid "MSVC support was added." msgstr "" -#: ../Doc/c-api/intro.rst:181 +#: c-api/intro.rst:179 +msgid "" +"Creates a variable with name ``name`` that can be used in docstrings. If " +"Python is built without docstrings, the value will be empty." +msgstr "" + +#: c-api/intro.rst:182 +msgid "" +"Use :c:macro:`PyDoc_STRVAR` for docstrings to support building Python " +"without docstrings, as specified in :pep:`7`." +msgstr "" + +#: c-api/intro.rst:197 +msgid "" +"Creates a docstring for the given input string or an empty string if " +"docstrings are disabled." +msgstr "" + +#: c-api/intro.rst:200 +msgid "" +"Use :c:macro:`PyDoc_STR` in specifying docstrings to support building Python " +"without docstrings, as specified in :pep:`7`." +msgstr "" + +#: c-api/intro.rst:214 msgid "Objects, Types and Reference Counts" msgstr "" -#: ../Doc/c-api/intro.rst:185 +#: c-api/intro.rst:218 msgid "" "Most Python/C API functions have one or more arguments as well as a return " -"value of type :c:type:`PyObject\\*`. This type is a pointer to an opaque " -"data type representing an arbitrary Python object. Since all Python object " -"types are treated the same way by the Python language in most situations (e." -"g., assignments, scope rules, and argument passing), it is only fitting that " +"value of type :c:type:`PyObject*`. This type is a pointer to an opaque data " +"type representing an arbitrary Python object. Since all Python object types " +"are treated the same way by the Python language in most situations (e.g., " +"assignments, scope rules, and argument passing), it is only fitting that " "they should be represented by a single C type. Almost all Python objects " "live on the heap: you never declare an automatic or static variable of type :" -"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject\\*` can " +"c:type:`PyObject`, only pointer variables of type :c:type:`PyObject*` can " "be declared. The sole exception are the type objects; since these must " "never be deallocated, they are typically static :c:type:`PyTypeObject` " "objects." msgstr "" -#: ../Doc/c-api/intro.rst:196 +#: c-api/intro.rst:229 msgid "" "All Python objects (even Python integers) have a :dfn:`type` and a :dfn:" "`reference count`. An object's type determines what kind of object it is (e." @@ -244,11 +273,11 @@ msgid "" "a Python list." msgstr "" -#: ../Doc/c-api/intro.rst:207 +#: c-api/intro.rst:240 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" -#: ../Doc/c-api/intro.rst:209 +#: c-api/intro.rst:242 msgid "" "The reference count is important because today's computers have a finite " "(and often severely limited) memory size; it counts how many different " @@ -262,7 +291,7 @@ msgid "" "for now, the solution is \"don't do that.\")" msgstr "" -#: ../Doc/c-api/intro.rst:224 +#: c-api/intro.rst:257 msgid "" "Reference counts are always manipulated explicitly. The normal way is to " "use the macro :c:func:`Py_INCREF` to increment an object's reference count " @@ -280,7 +309,7 @@ msgid "" "reference count increment is a simple operation." msgstr "" -#: ../Doc/c-api/intro.rst:238 +#: c-api/intro.rst:271 msgid "" "It is not necessary to increment an object's reference count for every " "local variable that contains a pointer to an object. In theory, the " @@ -297,7 +326,7 @@ msgid "" "to hold a reference to every argument for the duration of the call." msgstr "" -#: ../Doc/c-api/intro.rst:252 +#: c-api/intro.rst:285 msgid "" "However, a common pitfall is to extract an object from a list and hold on to " "it for a while without incrementing its reference count. Some other " @@ -308,7 +337,7 @@ msgid "" "from a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." msgstr "" -#: ../Doc/c-api/intro.rst:260 +#: c-api/intro.rst:293 msgid "" "A safe approach is to always use the generic operations (functions whose " "name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " @@ -318,11 +347,11 @@ msgid "" "becomes second nature." msgstr "" -#: ../Doc/c-api/intro.rst:270 +#: c-api/intro.rst:303 msgid "Reference Count Details" msgstr "" -#: ../Doc/c-api/intro.rst:272 +#: c-api/intro.rst:305 msgid "" "The reference count behavior of functions in the Python/C API is best " "explained in terms of *ownership of references*. Ownership pertains to " @@ -339,7 +368,7 @@ msgid "" "reference." msgstr "" -#: ../Doc/c-api/intro.rst:285 +#: c-api/intro.rst:318 msgid "" "Conversely, when a calling function passes in a reference to an object, " "there are two possibilities: the function *steals* a reference to the " @@ -348,7 +377,7 @@ msgid "" "reference, and you are not responsible for it any longer." msgstr "" -#: ../Doc/c-api/intro.rst:295 +#: c-api/intro.rst:328 msgid "" "Few functions steal references; the two notable exceptions are :c:func:" "`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a reference to " @@ -360,7 +389,7 @@ msgid "" "below)::" msgstr "" -#: ../Doc/c-api/intro.rst:310 +#: c-api/intro.rst:343 msgid "" "Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately " "stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object " @@ -368,7 +397,7 @@ msgid "" "another reference before calling the reference-stealing function." msgstr "" -#: ../Doc/c-api/intro.rst:315 +#: c-api/intro.rst:348 msgid "" "Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple " "items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to " @@ -376,13 +405,13 @@ msgid "" "func:`PyTuple_SetItem` for tuples that you are creating yourself." msgstr "" -#: ../Doc/c-api/intro.rst:320 +#: c-api/intro.rst:353 msgid "" "Equivalent code for populating a list can be written using :c:func:" "`PyList_New` and :c:func:`PyList_SetItem`." msgstr "" -#: ../Doc/c-api/intro.rst:323 +#: c-api/intro.rst:356 msgid "" "However, in practice, you will rarely use these ways of creating and " "populating a tuple or list. There's a generic function, :c:func:" @@ -391,7 +420,7 @@ msgid "" "be replaced by the following (which also takes care of the error checking)::" msgstr "" -#: ../Doc/c-api/intro.rst:334 +#: c-api/intro.rst:367 msgid "" "It is much more common to use :c:func:`PyObject_SetItem` and friends with " "items whose references you are only borrowing, like arguments that were " @@ -402,7 +431,7 @@ msgid "" "sequence) to a given item::" msgstr "" -#: ../Doc/c-api/intro.rst:364 +#: c-api/intro.rst:397 msgid "" "The situation is slightly different for function return values. While " "passing a reference to most functions does not change your ownership " @@ -415,7 +444,7 @@ msgid "" "becomes the owner of the reference)." msgstr "" -#: ../Doc/c-api/intro.rst:373 +#: c-api/intro.rst:406 msgid "" "It is important to realize that whether you own a reference returned by a " "function depends on which function you call only --- *the plumage* (the type " @@ -426,33 +455,33 @@ msgid "" "the same arguments), you do own a reference to the returned object." msgstr "" -#: ../Doc/c-api/intro.rst:385 +#: c-api/intro.rst:418 msgid "" "Here is an example of how you could write a function that computes the sum " "of the items in a list of integers; once using :c:func:`PyList_GetItem`, " "and once using :c:func:`PySequence_GetItem`. ::" msgstr "" -#: ../Doc/c-api/intro.rst:449 +#: c-api/intro.rst:482 msgid "Types" msgstr "" -#: ../Doc/c-api/intro.rst:451 +#: c-api/intro.rst:484 msgid "" "There are few other data types that play a significant role in the Python/C " "API; most are simple C types such as :c:type:`int`, :c:type:`long`, :c:type:" -"`double` and :c:type:`char\\*`. A few structure types are used to describe " +"`double` and :c:type:`char*`. A few structure types are used to describe " "static tables used to list the functions exported by a module or the data " "attributes of a new object type, and another is used to describe the value " "of a complex number. These will be discussed together with the functions " "that use them." msgstr "" -#: ../Doc/c-api/intro.rst:463 +#: c-api/intro.rst:496 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/c-api/intro.rst:465 +#: c-api/intro.rst:498 msgid "" "The Python programmer only needs to deal with exceptions if specific error " "handling is required; unhandled exceptions are automatically propagated to " @@ -461,14 +490,14 @@ msgid "" "stack traceback." msgstr "" -#: ../Doc/c-api/intro.rst:473 +#: c-api/intro.rst:506 msgid "" "For C programmers, however, error checking always has to be explicit. All " "functions in the Python/C API can raise exceptions, unless an explicit claim " "is made otherwise in a function's documentation. In general, when a " "function encounters an error, it sets an exception, discards any object " "references that it owns, and returns an error indicator. If not documented " -"otherwise, this indicator is either *NULL* or ``-1``, depending on the " +"otherwise, this indicator is either ``NULL`` or ``-1``, depending on the " "function's return type. A few functions return a Boolean true/false result, " "with false indicating an error. Very few functions return no explicit error " "indicator or have an ambiguous return value, and require explicit testing " @@ -476,23 +505,23 @@ msgid "" "explicitly documented." msgstr "" -#: ../Doc/c-api/intro.rst:488 +#: c-api/intro.rst:521 msgid "" "Exception state is maintained in per-thread storage (this is equivalent to " "using global storage in an unthreaded application). A thread can be in one " "of two states: an exception has occurred, or not. The function :c:func:" "`PyErr_Occurred` can be used to check for this: it returns a borrowed " "reference to the exception type object when an exception has occurred, and " -"*NULL* otherwise. There are a number of functions to set the exception " +"``NULL`` otherwise. There are a number of functions to set the exception " "state: :c:func:`PyErr_SetString` is the most common (though not the most " "general) function to set the exception state, and :c:func:`PyErr_Clear` " "clears the exception state." msgstr "" -#: ../Doc/c-api/intro.rst:498 +#: c-api/intro.rst:531 msgid "" "The full exception state consists of three objects (all of which can be " -"*NULL*): the exception type, the corresponding exception value, and the " +"``NULL``): the exception type, the corresponding exception value, and the " "traceback. These have the same meanings as the Python result of ``sys." "exc_info()``; however, they are not the same: the Python objects represent " "the last exception being handled by a Python :keyword:`try` ... :keyword:" @@ -502,7 +531,7 @@ msgid "" "``sys.exc_info()`` and friends." msgstr "" -#: ../Doc/c-api/intro.rst:510 +#: c-api/intro.rst:543 msgid "" "Note that starting with Python 1.5, the preferred, thread-safe way to access " "the exception state from Python code is to call the function :func:`sys." @@ -516,7 +545,7 @@ msgid "" "referenced by the stack frames in the traceback." msgstr "" -#: ../Doc/c-api/intro.rst:521 +#: c-api/intro.rst:554 msgid "" "As a general principle, a function that calls another function to perform " "some task should check whether the called function raised an exception, and " @@ -527,7 +556,7 @@ msgid "" "of the error." msgstr "" -#: ../Doc/c-api/intro.rst:530 +#: c-api/intro.rst:563 msgid "" "A simple example of detecting exceptions and passing them on is shown in " "the :c:func:`sum_sequence` example above. It so happens that this example " @@ -536,28 +565,28 @@ msgid "" "why you like Python, we show the equivalent Python code::" msgstr "" -#: ../Doc/c-api/intro.rst:545 +#: c-api/intro.rst:578 msgid "Here is the corresponding C code, in all its glory::" msgstr "" -#: ../Doc/c-api/intro.rst:597 +#: c-api/intro.rst:630 msgid "" "This example represents an endorsed use of the ``goto`` statement in C! It " "illustrates the use of :c:func:`PyErr_ExceptionMatches` and :c:func:" "`PyErr_Clear` to handle specific exceptions, and the use of :c:func:" -"`Py_XDECREF` to dispose of owned references that may be *NULL* (note the " +"`Py_XDECREF` to dispose of owned references that may be ``NULL`` (note the " "``'X'`` in the name; :c:func:`Py_DECREF` would crash when confronted with a " -"*NULL* reference). It is important that the variables used to hold owned " -"references are initialized to *NULL* for this to work; likewise, the " +"``NULL`` reference). It is important that the variables used to hold owned " +"references are initialized to ``NULL`` for this to work; likewise, the " "proposed return value is initialized to ``-1`` (failure) and only set to " "success after the final call made is successful." msgstr "" -#: ../Doc/c-api/intro.rst:611 +#: c-api/intro.rst:644 msgid "Embedding Python" msgstr "Embarquer Python" -#: ../Doc/c-api/intro.rst:613 +#: c-api/intro.rst:646 msgid "" "The one important task that only embedders (as opposed to extension writers) " "of the Python interpreter have to worry about is the initialization, and " @@ -565,7 +594,7 @@ msgid "" "the interpreter can only be used after the interpreter has been initialized." msgstr "" -#: ../Doc/c-api/intro.rst:626 +#: c-api/intro.rst:659 msgid "" "The basic initialization function is :c:func:`Py_Initialize`. This " "initializes the table of loaded modules, and creates the fundamental " @@ -573,7 +602,7 @@ msgid "" "initializes the module search path (``sys.path``)." msgstr "" -#: ../Doc/c-api/intro.rst:633 +#: c-api/intro.rst:666 msgid "" ":c:func:`Py_Initialize` does not set the \"script argument list\" (``sys." "argv``). If this variable is needed by Python code that will be executed " @@ -581,7 +610,7 @@ msgid "" "argv, updatepath)`` after the call to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/intro.rst:638 +#: c-api/intro.rst:671 msgid "" "On most systems (in particular, on Unix and Windows, although the details " "are slightly different), :c:func:`Py_Initialize` calculates the module " @@ -593,7 +622,7 @@ msgid "" "on the shell command search path (the environment variable :envvar:`PATH`)." msgstr "" -#: ../Doc/c-api/intro.rst:647 +#: c-api/intro.rst:680 msgid "" "For instance, if the Python executable is found in :file:`/usr/local/bin/" "python`, it will assume that the libraries are in :file:`/usr/local/lib/" @@ -604,7 +633,7 @@ msgid "" "in front of the standard path by setting :envvar:`PYTHONPATH`." msgstr "" -#: ../Doc/c-api/intro.rst:662 +#: c-api/intro.rst:695 msgid "" "The embedding application can steer the search by calling " "``Py_SetProgramName(file)`` *before* calling :c:func:`Py_Initialize`. Note " @@ -615,7 +644,7 @@ msgid "" "func:`Py_GetProgramFullPath` (all defined in :file:`Modules/getpath.c`)." msgstr "" -#: ../Doc/c-api/intro.rst:672 +#: c-api/intro.rst:705 msgid "" "Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " "application may want to start over (make another call to :c:func:" @@ -629,18 +658,18 @@ msgid "" "released." msgstr "" -#: ../Doc/c-api/intro.rst:686 +#: c-api/intro.rst:719 msgid "Debugging Builds" msgstr "" -#: ../Doc/c-api/intro.rst:688 +#: c-api/intro.rst:721 msgid "" "Python can be built with several macros to enable extra checks of the " "interpreter and extension modules. These checks tend to add a large amount " "of overhead to the runtime so they are not enabled by default." msgstr "" -#: ../Doc/c-api/intro.rst:692 +#: c-api/intro.rst:725 msgid "" "A full list of the various types of debugging builds is in the file :file:" "`Misc/SpecialBuilds.txt` in the Python source distribution. Builds are " @@ -650,7 +679,7 @@ msgid "" "section." msgstr "" -#: ../Doc/c-api/intro.rst:698 +#: c-api/intro.rst:731 msgid "" "Compiling the interpreter with the :c:macro:`Py_DEBUG` macro defined " "produces what is generally meant by \"a debug build\" of Python. :c:macro:" @@ -660,61 +689,61 @@ msgid "" "enabled in the Unix build, compiler optimization is disabled." msgstr "" -#: ../Doc/c-api/intro.rst:705 +#: c-api/intro.rst:738 msgid "" "In addition to the reference count debugging described below, the following " "extra checks are performed:" msgstr "" -#: ../Doc/c-api/intro.rst:708 +#: c-api/intro.rst:741 msgid "Extra checks are added to the object allocator." msgstr "" -#: ../Doc/c-api/intro.rst:710 +#: c-api/intro.rst:743 msgid "Extra checks are added to the parser and compiler." msgstr "" -#: ../Doc/c-api/intro.rst:712 +#: c-api/intro.rst:745 msgid "" "Downcasts from wide types to narrow types are checked for loss of " "information." msgstr "" -#: ../Doc/c-api/intro.rst:714 +#: c-api/intro.rst:747 msgid "" "A number of assertions are added to the dictionary and set implementations. " "In addition, the set object acquires a :meth:`test_c_api` method." msgstr "" -#: ../Doc/c-api/intro.rst:717 +#: c-api/intro.rst:750 msgid "Sanity checks of the input arguments are added to frame creation." msgstr "" -#: ../Doc/c-api/intro.rst:719 +#: c-api/intro.rst:752 msgid "" "The storage for ints is initialized with a known invalid pattern to catch " "reference to uninitialized digits." msgstr "" -#: ../Doc/c-api/intro.rst:722 +#: c-api/intro.rst:755 msgid "" "Low-level tracing and extra exception checking are added to the runtime " "virtual machine." msgstr "" -#: ../Doc/c-api/intro.rst:725 +#: c-api/intro.rst:758 msgid "Extra checks are added to the memory arena implementation." msgstr "" -#: ../Doc/c-api/intro.rst:727 +#: c-api/intro.rst:760 msgid "Extra debugging is added to the thread module." msgstr "" -#: ../Doc/c-api/intro.rst:729 +#: c-api/intro.rst:762 msgid "There may be additional checks not mentioned here." msgstr "" -#: ../Doc/c-api/intro.rst:731 +#: c-api/intro.rst:764 msgid "" "Defining :c:macro:`Py_TRACE_REFS` enables reference tracing. When defined, " "a circular doubly linked list of active objects is maintained by adding two " @@ -724,7 +753,7 @@ msgid "" "macro:`Py_DEBUG`." msgstr "" -#: ../Doc/c-api/intro.rst:737 +#: c-api/intro.rst:770 msgid "" "Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " "distribution for more detailed information." diff --git a/c-api/iter.po b/c-api/iter.po index 4b93f6dde8..1b82e55aa8 100644 --- a/c-api/iter.po +++ b/c-api/iter.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-02-15 00:33+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -27,11 +27,12 @@ msgid "Return true if the object *o* supports the iterator protocol." msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération." #: ../Doc/c-api/iter.rst:17 +#, fuzzy msgid "" "Return the next value from the iteration *o*. The object must be an " "iterator (it is up to the caller to check this). If there are no remaining " -"values, returns *NULL* with no exception set. If an error occurs while " -"retrieving the item, returns *NULL* and passes along the exception." +"values, returns ``NULL`` with no exception set. If an error occurs while " +"retrieving the item, returns ``NULL`` and passes along the exception." msgstr "" "Renvoie la valeur suivante d'une itération de *o*. L'objet doit être un " "itérateur (c'est à l'appelant de faire cette vérification). Renvoie *NULL* " @@ -45,4 +46,4 @@ msgid "" "something like this::" msgstr "" "Pour écrire une boucle itérant un itérateur, le code C devrait ressembler " -"à : ::" +"à ::" diff --git a/c-api/iterator.po b/c-api/iterator.po index 644360afe0..ae99854a91 100644 --- a/c-api/iterator.po +++ b/c-api/iterator.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2019-03-26 17:16+0100\n" diff --git a/c-api/list.po b/c-api/list.po index b8acbad3a8..e8343cf6b6 100644 --- a/c-api/list.po +++ b/c-api/list.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -19,14 +19,20 @@ msgid "List Objects" msgstr "" #: ../Doc/c-api/list.rst:13 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python list object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." #: ../Doc/c-api/list.rst:18 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python list type. " "This is the same object as :class:`list` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." #: ../Doc/c-api/list.rst:24 msgid "" @@ -41,7 +47,7 @@ msgid "" msgstr "" #: ../Doc/c-api/list.rst:36 -msgid "Return a new list of length *len* on success, or *NULL* on failure." +msgid "Return a new list of length *len* on success, or ``NULL`` on failure." msgstr "" #: ../Doc/c-api/list.rst:40 @@ -66,7 +72,7 @@ msgstr "" msgid "" "Return the object at position *index* in the list pointed to by *list*. The " "position must be non-negative; indexing from the end of the list is not " -"supported. If *index* is out of bounds (<0 or >=len(list)), return *NULL* " +"supported. If *index* is out of bounds (<0 or >=len(list)), return ``NULL`` " "and set an :exc:`IndexError` exception." msgstr "" @@ -76,58 +82,59 @@ msgstr "" #: ../Doc/c-api/list.rst:74 msgid "" -"Set the item at index *index* in list to *item*. Return ``0`` on success or " -"``-1`` on failure." +"Set the item at index *index* in list to *item*. Return ``0`` on success. " +"If *index* is out of bounds, return ``-1`` and set an :exc:`IndexError` " +"exception." msgstr "" -#: ../Doc/c-api/list.rst:79 +#: ../Doc/c-api/list.rst:80 msgid "" "This function \"steals\" a reference to *item* and discards a reference to " "an item already in the list at the affected position." msgstr "" -#: ../Doc/c-api/list.rst:85 +#: ../Doc/c-api/list.rst:86 msgid "" "Macro form of :c:func:`PyList_SetItem` without error checking. This is " "normally only used to fill in new lists where there is no previous content." msgstr "" -#: ../Doc/c-api/list.rst:90 +#: ../Doc/c-api/list.rst:91 msgid "" "This macro \"steals\" a reference to *item*, and, unlike :c:func:" "`PyList_SetItem`, does *not* discard a reference to any item that is being " "replaced; any reference in *list* at position *i* will be leaked." msgstr "" -#: ../Doc/c-api/list.rst:98 +#: ../Doc/c-api/list.rst:99 msgid "" "Insert the item *item* into list *list* in front of index *index*. Return " "``0`` if successful; return ``-1`` and set an exception if unsuccessful. " "Analogous to ``list.insert(index, item)``." msgstr "" -#: ../Doc/c-api/list.rst:105 +#: ../Doc/c-api/list.rst:106 msgid "" "Append the object *item* at the end of list *list*. Return ``0`` if " "successful; return ``-1`` and set an exception if unsuccessful. Analogous " "to ``list.append(item)``." msgstr "" -#: ../Doc/c-api/list.rst:112 +#: ../Doc/c-api/list.rst:113 msgid "" "Return a list of the objects in *list* containing the objects *between* " -"*low* and *high*. Return *NULL* and set an exception if unsuccessful. " -"Analogous to ``list[low:high]``. Negative indices, as when slicing from " -"Python, are not supported." +"*low* and *high*. Return ``NULL`` and set an exception if unsuccessful. " +"Analogous to ``list[low:high]``. Indexing from the end of the list is not " +"supported." msgstr "" #: ../Doc/c-api/list.rst:120 msgid "" "Set the slice of *list* between *low* and *high* to the contents of " "*itemlist*. Analogous to ``list[low:high] = itemlist``. The *itemlist* may " -"be *NULL*, indicating the assignment of an empty list (slice deletion). " -"Return ``0`` on success, ``-1`` on failure. Negative indices, as when " -"slicing from Python, are not supported." +"be ``NULL``, indicating the assignment of an empty list (slice deletion). " +"Return ``0`` on success, ``-1`` on failure. Indexing from the end of the " +"list is not supported." msgstr "" #: ../Doc/c-api/list.rst:129 diff --git a/c-api/long.po b/c-api/long.po index 906f1df181..22f86ec134 100644 --- a/c-api/long.po +++ b/c-api/long.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,50 +14,62 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/long.rst:6 +#: c-api/long.rst:6 msgid "Integer Objects" msgstr "Objets *Integer*" -#: ../Doc/c-api/long.rst:11 +#: c-api/long.rst:11 msgid "" "All integers are implemented as \"long\" integer objects of arbitrary size." msgstr "" -#: ../Doc/c-api/long.rst:13 +#: c-api/long.rst:13 msgid "" "On error, most ``PyLong_As*`` APIs return ``(return type)-1`` which cannot " "be distinguished from a number. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:18 +#: c-api/long.rst:18 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python integer object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/long.rst:23 +#: c-api/long.rst:23 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python integer type. " "This is the same object as :class:`int` in the Python layer." msgstr "" +"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " +"virgule flottante en Python. C'est le même objet que la classe :class:" +"`float` de la couche Python." -#: ../Doc/c-api/long.rst:29 +#: c-api/long.rst:29 +#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyLongObject` or a subtype of :c:" "type:`PyLongObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" +"type de :c:type:`PyFloatObject`." -#: ../Doc/c-api/long.rst:35 +#: c-api/long.rst:35 +#, fuzzy msgid "" "Return true if its argument is a :c:type:`PyLongObject`, but not a subtype " "of :c:type:`PyLongObject`." msgstr "" +"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " +"sous-type de :c:type:`PyFloatObject`." -#: ../Doc/c-api/long.rst:41 +#: c-api/long.rst:41 msgid "" -"Return a new :c:type:`PyLongObject` object from *v*, or *NULL* on failure." +"Return a new :c:type:`PyLongObject` object from *v*, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:43 +#: c-api/long.rst:43 msgid "" "The current implementation keeps an array of integer objects for all " "integers between ``-5`` and ``256``, when you create an int in that range " @@ -66,47 +78,47 @@ msgid "" "in this case is undefined. :-)" msgstr "" -#: ../Doc/c-api/long.rst:52 +#: c-api/long.rst:52 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long`, " -"or *NULL* on failure." +"or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:58 +#: c-api/long.rst:58 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or " -"*NULL* on failure." +"``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:64 +#: c-api/long.rst:64 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or " -"*NULL* on failure." +"``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:70 +#: c-api/long.rst:70 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`long long`, or " -"*NULL* on failure." +"``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:76 +#: c-api/long.rst:76 msgid "" "Return a new :c:type:`PyLongObject` object from a C :c:type:`unsigned long " -"long`, or *NULL* on failure." +"long`, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:82 +#: c-api/long.rst:82 msgid "" "Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " -"*NULL* on failure." +"``NULL`` on failure." msgstr "" -#: ../Doc/c-api/long.rst:88 +#: c-api/long.rst:88 msgid "" "Return a new :c:type:`PyLongObject` based on the string value in *str*, " "which is interpreted according to the radix in *base*. If *pend* is non-" -"*NULL*, *\\*pend* will point to the first character in *str* which follows " +"``NULL``, *\\*pend* will point to the first character in *str* which follows " "the representation of the number. If *base* is ``0``, *str* is interpreted " "using the :ref:`integers` definition; in this case, leading zeros in a non-" "zero decimal number raises a :exc:`ValueError`. If *base* is not ``0``, it " @@ -115,66 +127,54 @@ msgid "" "are no digits, :exc:`ValueError` will be raised." msgstr "" -#: ../Doc/c-api/long.rst:101 -msgid "" -"Convert a sequence of Unicode digits to a Python integer value. The Unicode " -"string is first encoded to a byte string using :c:func:" -"`PyUnicode_EncodeDecimal` and then converted using :c:func:" -"`PyLong_FromString`." +#: c-api/long.rst:101 +msgid "Convert a sequence of Unicode digits to a Python integer value." msgstr "" -#: ../Doc/c-api/long.rst:107 +#: c-api/long.rst:105 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyLong_FromUnicodeObject`." msgstr "" -#: ../Doc/c-api/long.rst:112 +#: c-api/long.rst:110 msgid "" "Convert a sequence of Unicode digits in the string *u* to a Python integer " -"value. The Unicode string is first encoded to a byte string using :c:func:" -"`PyUnicode_EncodeDecimal` and then converted using :c:func:" -"`PyLong_FromString`." +"value." msgstr "" -#: ../Doc/c-api/long.rst:122 +#: c-api/long.rst:118 msgid "" "Create a Python integer from the pointer *p*. The pointer value can be " "retrieved from the resulting value using :c:func:`PyLong_AsVoidPtr`." msgstr "" -#: ../Doc/c-api/long.rst:133 ../Doc/c-api/long.rst:152 +#: c-api/long.rst:148 msgid "" "Return a C :c:type:`long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :" "meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:138 ../Doc/c-api/long.rst:181 +#: c-api/long.rst:134 msgid "" "Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" "type:`long`." msgstr "" -#: ../Doc/c-api/long.rst:141 ../Doc/c-api/long.rst:162 -#: ../Doc/c-api/long.rst:184 ../Doc/c-api/long.rst:205 -#: ../Doc/c-api/long.rst:228 +#: c-api/long.rst:158 c-api/long.rst:201 c-api/long.rst:224 msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:143 ../Doc/c-api/long.rst:164 -#: ../Doc/c-api/long.rst:186 ../Doc/c-api/long.rst:209 -#: ../Doc/c-api/long.rst:294 ../Doc/c-api/long.rst:314 +#: c-api/long.rst:160 c-api/long.rst:205 c-api/long.rst:310 msgid "Use :meth:`__index__` if available." msgstr "" -#: ../Doc/c-api/long.rst:146 ../Doc/c-api/long.rst:167 -#: ../Doc/c-api/long.rst:189 ../Doc/c-api/long.rst:212 -#: ../Doc/c-api/long.rst:297 ../Doc/c-api/long.rst:317 +#: c-api/long.rst:163 c-api/long.rst:208 c-api/long.rst:313 msgid "Using :meth:`__int__` is deprecated." msgstr "" -#: ../Doc/c-api/long.rst:157 +#: c-api/long.rst:153 msgid "" "If the value of *obj* is greater than :const:`LONG_MAX` or less than :const:" "`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, and return " @@ -182,14 +182,20 @@ msgid "" "occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: ../Doc/c-api/long.rst:176 ../Doc/c-api/long.rst:195 +#: c-api/long.rst:191 msgid "" "Return a C :c:type:`long long` representation of *obj*. If *obj* is not an " "instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :" "meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:200 +#: c-api/long.rst:177 +msgid "" +"Raise :exc:`OverflowError` if the value of *obj* is out of range for a :c:" +"type:`long long`." +msgstr "" + +#: c-api/long.rst:196 msgid "" "If the value of *obj* is greater than :const:`PY_LLONG_MAX` or less than :" "const:`PY_LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, respectively, " @@ -197,97 +203,97 @@ msgid "" "exception occurs set *\\*overflow* to ``0`` and return ``-1`` as usual." msgstr "" -#: ../Doc/c-api/long.rst:222 +#: c-api/long.rst:218 msgid "" "Return a C :c:type:`Py_ssize_t` representation of *pylong*. *pylong* must " "be an instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:225 +#: c-api/long.rst:221 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`Py_ssize_t`." msgstr "" -#: ../Doc/c-api/long.rst:237 +#: c-api/long.rst:233 msgid "" "Return a C :c:type:`unsigned long` representation of *pylong*. *pylong* " "must be an instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:240 +#: c-api/long.rst:236 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`unsigned long`." msgstr "" -#: ../Doc/c-api/long.rst:243 +#: c-api/long.rst:239 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:253 +#: c-api/long.rst:249 msgid "" "Return a C :c:type:`size_t` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:256 +#: c-api/long.rst:252 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`size_t`." msgstr "" -#: ../Doc/c-api/long.rst:259 +#: c-api/long.rst:255 msgid "" "Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:268 +#: c-api/long.rst:264 msgid "" "Return a C :c:type:`unsigned long long` representation of *pylong*. " "*pylong* must be an instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:271 +#: c-api/long.rst:267 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for an :" "c:type:`unsigned long long`." msgstr "" -#: ../Doc/c-api/long.rst:274 +#: c-api/long.rst:270 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:277 +#: c-api/long.rst:273 msgid "" "A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/long.rst:283 +#: c-api/long.rst:279 msgid "" "Return a C :c:type:`unsigned long` representation of *obj*. If *obj* is not " "an instance of :c:type:`PyLongObject`, first call its :meth:`__index__` or :" "meth:`__int__` method (if present) to convert it to a :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:288 +#: c-api/long.rst:284 msgid "" "If the value of *obj* is out of range for an :c:type:`unsigned long`, return " "the reduction of that value modulo ``ULONG_MAX + 1``." msgstr "" -#: ../Doc/c-api/long.rst:291 +#: c-api/long.rst:287 msgid "" "Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " "disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:303 +#: c-api/long.rst:299 msgid "" "Return a C :c:type:`unsigned long long` representation of *obj*. If *obj* " "is not an instance of :c:type:`PyLongObject`, first call its :meth:" @@ -295,36 +301,36 @@ msgid "" "type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:308 +#: c-api/long.rst:304 msgid "" "If the value of *obj* is out of range for an :c:type:`unsigned long long`, " "return the reduction of that value modulo ``PY_ULLONG_MAX + 1``." msgstr "" -#: ../Doc/c-api/long.rst:311 +#: c-api/long.rst:307 msgid "" "Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " "to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:323 +#: c-api/long.rst:319 msgid "" "Return a C :c:type:`double` representation of *pylong*. *pylong* must be an " "instance of :c:type:`PyLongObject`." msgstr "" -#: ../Doc/c-api/long.rst:326 +#: c-api/long.rst:322 msgid "" "Raise :exc:`OverflowError` if the value of *pylong* is out of range for a :c:" "type:`double`." msgstr "" -#: ../Doc/c-api/long.rst:329 +#: c-api/long.rst:325 msgid "" "Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" -#: ../Doc/c-api/long.rst:334 +#: c-api/long.rst:330 msgid "" "Convert a Python integer *pylong* to a C :c:type:`void` pointer. If *pylong* " "cannot be converted, an :exc:`OverflowError` will be raised. This is only " @@ -332,6 +338,7 @@ msgid "" "c:func:`PyLong_FromVoidPtr`." msgstr "" -#: ../Doc/c-api/long.rst:339 -msgid "Returns *NULL* on error. Use :c:func:`PyErr_Occurred` to disambiguate." +#: c-api/long.rst:335 +msgid "" +"Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." msgstr "" diff --git a/c-api/mapping.po b/c-api/mapping.po index c94973f9ce..64612d6a49 100644 --- a/c-api/mapping.po +++ b/c-api/mapping.po @@ -3,54 +3,76 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" +"PO-Revision-Date: 2019-11-17 21:20+0100\n" +"Last-Translator: Aveheuzed \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/c-api/mapping.rst:6 msgid "Mapping Protocol" -msgstr "" +msgstr "Protocole de correspondance" #: ../Doc/c-api/mapping.rst:8 msgid "" "See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` and :c:func:" "`PyObject_DelItem`." msgstr "" +"Voir aussi :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` et :c:func:" +"`PyObject_DelItem`." +# - " in general case it is impossible to determine what the type of keys it +# supports." +# → pas correct en VO ! +# - "This function always succeeds." équivaut-il à "jamais d'erreur" ? #: ../Doc/c-api/mapping.rst:14 msgid "" "Return ``1`` if the object provides mapping protocol or supports slicing, " "and ``0`` otherwise. Note that it returns ``1`` for Python classes with a :" "meth:`__getitem__` method since in general case it is impossible to " -"determine what the type of keys it supports. This function always succeeds." +"determine what type of keys it supports. This function always succeeds." msgstr "" +"Renvoie ``1`` si l'objet prend en charge le protocole de correspondance ou " +"le découpage en tranches et ``0`` sinon. Notez qu'elle renvoie ``1`` pour " +"les classes Python avec une méthode :meth:`__getitem__` puisque, dans le cas " +"général, il est impossible de déterminer quel type de clef est pris en " +"charge. Cette fonction ne provoque jamais d'erreur." -#: ../Doc/c-api/mapping.rst:26 +#: ../Doc/c-api/mapping.rst:25 msgid "" "Returns the number of keys in object *o* on success, and ``-1`` on failure. " "This is equivalent to the Python expression ``len(o)``." msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." -#: ../Doc/c-api/mapping.rst:32 +#: ../Doc/c-api/mapping.rst:31 msgid "" -"Return element of *o* corresponding to the string *key* or *NULL* on " +"Return element of *o* corresponding to the string *key* or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o[key]``. See " "also :c:func:`PyObject_GetItem`." msgstr "" +"Renvoie les éléments de *o* qui correspondent à la chaîne *key* ou *NULL* en " +"cas d'échec. C'est l'équivalent de l'expression Python ``o[key]``. Voir " +"aussi :c:func:`PyObject_GetItem`." -#: ../Doc/c-api/mapping.rst:39 +#: ../Doc/c-api/mapping.rst:38 msgid "" "Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``o[key] = v``. See " -"also :c:func:`PyObject_SetItem`." +"also :c:func:`PyObject_SetItem`. This function *does not* steal a reference " +"to *v*." msgstr "" +"Fait correspondre la chaîne *key* à la valeur *v* dans l'objet *o*. Renvoie " +"``-1`` en cas d'échec. C'est l'équivalent de la commande Python ``o[key] = " +"v``. Voir aussi :c:func:`PyObject_SetItem`. Cette fonction *ne vole pas* de " +"référence à *v*." #: ../Doc/c-api/mapping.rst:46 msgid "" @@ -58,12 +80,18 @@ msgid "" "on failure. This is equivalent to the Python statement ``del o[key]``. This " "is an alias of :c:func:`PyObject_DelItem`." msgstr "" +"Supprime la correspondance associée à l'objet *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``. C'est un alias pour :c:func:`PyObject_DelItem`." #: ../Doc/c-api/mapping.rst:53 msgid "" "Remove the mapping for the string *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." #: ../Doc/c-api/mapping.rst:59 ../Doc/c-api/mapping.rst:70 msgid "" @@ -71,6 +99,9 @@ msgid "" "This is equivalent to the Python expression ``key in o``. This function " "always succeeds." msgstr "" +"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " +"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " +"fonction ne provoque jamais d'erreur." #: ../Doc/c-api/mapping.rst:63 msgid "" @@ -78,6 +109,9 @@ msgid "" "method will get suppressed. To get error reporting use :c:func:" "`PyObject_GetItem()` instead." msgstr "" +"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:" +"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez " +"plutôt :c:func:`PyObject_GetItem()`." #: ../Doc/c-api/mapping.rst:74 msgid "" @@ -85,26 +119,35 @@ msgid "" "method and creating a temporary string object will get suppressed. To get " "error reporting use :c:func:`PyMapping_GetItemString()` instead." msgstr "" +"Notez que les exceptions qui surviennent en créant une chaîne de caractères " +"temporaire pendant l'appel de la méthode :meth:`__getitem__` seront " +"supprimées. Pour obtenir le rapport d'erreur, utilisez plutôt :c:func:" +"`PyMapping_GetItemString()`." #: ../Doc/c-api/mapping.rst:81 msgid "" "On success, return a list of the keys in object *o*. On failure, return " -"*NULL*." +"``NULL``." msgstr "" +"Renvoie la liste des clefs dans l'objet *o*. En cas d'échec, renvoie *NULL*." #: ../Doc/c-api/mapping.rst:84 ../Doc/c-api/mapping.rst:93 #: ../Doc/c-api/mapping.rst:102 msgid "Previously, the function returned a list or a tuple." -msgstr "" +msgstr "Auparavant, la fonction renvoyait une liste ou un n-uplet." #: ../Doc/c-api/mapping.rst:90 msgid "" "On success, return a list of the values in object *o*. On failure, return " -"*NULL*." +"``NULL``." msgstr "" +"Renvoie la liste des valeurs dans l'objet *o*. En cas d'échec, renvoie " +"*NULL*." #: ../Doc/c-api/mapping.rst:99 msgid "" "On success, return a list of the items in object *o*, where each item is a " -"tuple containing a key-value pair. On failure, return *NULL*." +"tuple containing a key-value pair. On failure, return ``NULL``." msgstr "" +"Renvoie la liste des éléments dans l'objet *o*, où chaque élément est un n-" +"uplet contenant une paire clef-valeur. En cas d'échec, renvoie *NULL*." diff --git a/c-api/marshal.po b/c-api/marshal.po index 3b3eee189b..f348065de4 100644 --- a/c-api/marshal.po +++ b/c-api/marshal.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-08-03 17:52+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/marshal.rst:6 +#: c-api/marshal.rst:6 msgid "Data marshalling support" msgstr "" -#: ../Doc/c-api/marshal.rst:8 +#: c-api/marshal.rst:8 msgid "" "These routines allow C code to work with serialized objects using the same " "data format as the :mod:`marshal` module. There are functions to write data " @@ -27,78 +27,77 @@ msgid "" "binary mode." msgstr "" -#: ../Doc/c-api/marshal.rst:14 +#: c-api/marshal.rst:14 msgid "Numeric values are stored with the least significant byte first." msgstr "" -#: ../Doc/c-api/marshal.rst:16 +#: c-api/marshal.rst:16 msgid "" "The module supports two versions of the data format: version 0 is the " "historical version, version 1 shares interned strings in the file, and upon " "unmarshalling. Version 2 uses a binary format for floating point numbers. " -"*Py_MARSHAL_VERSION* indicates the current file format (currently 2)." +"``Py_MARSHAL_VERSION`` indicates the current file format (currently 2)." msgstr "" -#: ../Doc/c-api/marshal.rst:24 +#: c-api/marshal.rst:24 msgid "" "Marshal a :c:type:`long` integer, *value*, to *file*. This will only write " "the least-significant 32 bits of *value*; regardless of the size of the " "native :c:type:`long` type. *version* indicates the file format." msgstr "" -#: ../Doc/c-api/marshal.rst:31 +#: c-api/marshal.rst:31 msgid "" "Marshal a Python object, *value*, to *file*. *version* indicates the file " "format." msgstr "" -#: ../Doc/c-api/marshal.rst:37 +#: c-api/marshal.rst:37 msgid "" "Return a bytes object containing the marshalled representation of *value*. " "*version* indicates the file format." msgstr "" -#: ../Doc/c-api/marshal.rst:41 +#: c-api/marshal.rst:41 msgid "The following functions allow marshalled values to be read back in." msgstr "" -#: ../Doc/c-api/marshal.rst:46 +#: c-api/marshal.rst:46 msgid "" -"Return a C :c:type:`long` from the data stream in a :c:type:`FILE\\*` opened " +"Return a C :c:type:`long` from the data stream in a :c:type:`FILE*` opened " "for reading. Only a 32-bit value can be read in using this function, " "regardless of the native size of :c:type:`long`." msgstr "" -#: ../Doc/c-api/marshal.rst:50 ../Doc/c-api/marshal.rst:60 +#: c-api/marshal.rst:60 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`) and returns " "``-1``." msgstr "" -#: ../Doc/c-api/marshal.rst:56 +#: c-api/marshal.rst:56 msgid "" -"Return a C :c:type:`short` from the data stream in a :c:type:`FILE\\*` " -"opened for reading. Only a 16-bit value can be read in using this function, " +"Return a C :c:type:`short` from the data stream in a :c:type:`FILE*` opened " +"for reading. Only a 16-bit value can be read in using this function, " "regardless of the native size of :c:type:`short`." msgstr "" -#: ../Doc/c-api/marshal.rst:66 +#: c-api/marshal.rst:66 msgid "" -"Return a Python object from the data stream in a :c:type:`FILE\\*` opened " -"for reading." +"Return a Python object from the data stream in a :c:type:`FILE*` opened for " +"reading." msgstr "" -#: ../Doc/c-api/marshal.rst:69 ../Doc/c-api/marshal.rst:83 -#: ../Doc/c-api/marshal.rst:92 +#: c-api/marshal.rst:83 c-api/marshal.rst:92 msgid "" "On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " -"or :exc:`TypeError`) and returns *NULL*." +"or :exc:`TypeError`) and returns ``NULL``." msgstr "" -#: ../Doc/c-api/marshal.rst:75 +#: c-api/marshal.rst:75 msgid "" -"Return a Python object from the data stream in a :c:type:`FILE\\*` opened " -"for reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " +"Return a Python object from the data stream in a :c:type:`FILE*` opened for " +"reading. Unlike :c:func:`PyMarshal_ReadObjectFromFile`, this function " "assumes that no further objects will be read from the file, allowing it to " "aggressively load file data into memory so that the de-serialization can " "operate from data in memory rather than reading a byte at a time from the " @@ -106,7 +105,7 @@ msgid "" "anything else from the file." msgstr "" -#: ../Doc/c-api/marshal.rst:89 +#: c-api/marshal.rst:89 msgid "" "Return a Python object from the data stream in a byte buffer containing " "*len* bytes pointed to by *data*." diff --git a/c-api/memory.po b/c-api/memory.po index acf4e2781f..36cbb4a9b4 100644 --- a/c-api/memory.po +++ b/c-api/memory.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,15 +14,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/memory.rst:8 +#: c-api/memory.rst:8 msgid "Memory Management" msgstr "" -#: ../Doc/c-api/memory.rst:17 +#: c-api/memory.rst:17 msgid "Overview" msgstr "Aperçu" -#: ../Doc/c-api/memory.rst:19 +#: c-api/memory.rst:19 msgid "" "Memory management in Python involves a private heap containing all Python " "objects and data structures. The management of this private heap is ensured " @@ -31,7 +31,7 @@ msgid "" "aspects, like sharing, segmentation, preallocation or caching." msgstr "" -#: ../Doc/c-api/memory.rst:25 +#: c-api/memory.rst:25 msgid "" "At the lowest level, a raw memory allocator ensures that there is enough " "room in the private heap for storing all Python-related data by interacting " @@ -45,7 +45,7 @@ msgid "" "but ensures that the latter operate within the bounds of the private heap." msgstr "" -#: ../Doc/c-api/memory.rst:36 +#: c-api/memory.rst:36 msgid "" "It is important to understand that the management of the Python heap is " "performed by the interpreter itself and that the user has no control over " @@ -55,7 +55,7 @@ msgid "" "the Python/C API functions listed in this document." msgstr "" -#: ../Doc/c-api/memory.rst:49 +#: c-api/memory.rst:49 msgid "" "To avoid memory corruption, extension writers should never try to operate on " "Python objects with the functions exported by the C library: :c:func:" @@ -67,14 +67,14 @@ msgid "" "in the following example::" msgstr "" -#: ../Doc/c-api/memory.rst:68 +#: c-api/memory.rst:68 msgid "" "In this example, the memory request for the I/O buffer is handled by the C " "library allocator. The Python memory manager is involved only in the " "allocation of the bytes object returned as a result." msgstr "" -#: ../Doc/c-api/memory.rst:72 +#: c-api/memory.rst:72 msgid "" "In most situations, however, it is recommended to allocate memory from the " "Python heap specifically because the latter is under control of the Python " @@ -92,31 +92,31 @@ msgid "" "completely the Python memory manager." msgstr "" -#: ../Doc/c-api/memory.rst:88 +#: c-api/memory.rst:88 msgid "" "The :envvar:`PYTHONMALLOC` environment variable can be used to configure the " "memory allocators used by Python." msgstr "" -#: ../Doc/c-api/memory.rst:91 +#: c-api/memory.rst:91 msgid "" "The :envvar:`PYTHONMALLOCSTATS` environment variable can be used to print " "statistics of the :ref:`pymalloc memory allocator ` every time a " "new pymalloc object arena is created, and on shutdown." msgstr "" -#: ../Doc/c-api/memory.rst:97 +#: c-api/memory.rst:97 msgid "Raw Memory Interface" msgstr "" -#: ../Doc/c-api/memory.rst:99 +#: c-api/memory.rst:99 msgid "" "The following function sets are wrappers to the system allocator. These " "functions are thread-safe, the :term:`GIL ` does " "not need to be held." msgstr "" -#: ../Doc/c-api/memory.rst:103 +#: c-api/memory.rst:103 msgid "" "The :ref:`default raw memory allocator ` uses the " "following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " @@ -124,63 +124,60 @@ msgid "" "zero bytes." msgstr "" -#: ../Doc/c-api/memory.rst:112 ../Doc/c-api/memory.rst:183 -#: ../Doc/c-api/memory.rst:285 +#: c-api/memory.rst:183 c-api/memory.rst:285 msgid "" -"Allocates *n* bytes and returns a pointer of type :c:type:`void\\*` to the " -"allocated memory, or *NULL* if the request fails." +"Allocates *n* bytes and returns a pointer of type :c:type:`void*` to the " +"allocated memory, or ``NULL`` if the request fails." msgstr "" -#: ../Doc/c-api/memory.rst:115 +#: c-api/memory.rst:115 msgid "" -"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as " -"if ``PyMem_RawMalloc(1)`` had been called instead. The memory will not have " -"been initialized in any way." +"Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " +"as if ``PyMem_RawMalloc(1)`` had been called instead. The memory will not " +"have been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:122 ../Doc/c-api/memory.rst:193 -#: ../Doc/c-api/memory.rst:295 +#: c-api/memory.rst:193 c-api/memory.rst:295 msgid "" "Allocates *nelem* elements each whose size in bytes is *elsize* and returns " -"a pointer of type :c:type:`void\\*` to the allocated memory, or *NULL* if " +"a pointer of type :c:type:`void*` to the allocated memory, or ``NULL`` if " "the request fails. The memory is initialized to zeros." msgstr "" -#: ../Doc/c-api/memory.rst:126 +#: c-api/memory.rst:126 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " -"non-*NULL* pointer if possible, as if ``PyMem_RawCalloc(1, 1)`` had been " +"non-``NULL`` pointer if possible, as if ``PyMem_RawCalloc(1, 1)`` had been " "called instead." msgstr "" -#: ../Doc/c-api/memory.rst:135 ../Doc/c-api/memory.rst:206 -#: ../Doc/c-api/memory.rst:308 +#: c-api/memory.rst:206 c-api/memory.rst:308 msgid "" "Resizes the memory block pointed to by *p* to *n* bytes. The contents will " "be unchanged to the minimum of the old and the new sizes." msgstr "" -#: ../Doc/c-api/memory.rst:138 +#: c-api/memory.rst:138 msgid "" -"If *p* is *NULL*, the call is equivalent to ``PyMem_RawMalloc(n)``; else if " -"*n* is equal to zero, the memory block is resized but is not freed, and the " -"returned pointer is non-*NULL*." +"If *p* is ``NULL``, the call is equivalent to ``PyMem_RawMalloc(n)``; else " +"if *n* is equal to zero, the memory block is resized but is not freed, and " +"the returned pointer is non-``NULL``." msgstr "" -#: ../Doc/c-api/memory.rst:142 +#: c-api/memory.rst:142 msgid "" -"Unless *p* is *NULL*, it must have been returned by a previous call to :c:" +"Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:func:" "`PyMem_RawCalloc`." msgstr "" -#: ../Doc/c-api/memory.rst:146 +#: c-api/memory.rst:146 msgid "" -"If the request fails, :c:func:`PyMem_RawRealloc` returns *NULL* and *p* " +"If the request fails, :c:func:`PyMem_RawRealloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." msgstr "" -#: ../Doc/c-api/memory.rst:152 +#: c-api/memory.rst:152 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyMem_RawMalloc`, :c:func:`PyMem_RawRealloc` or :c:" @@ -188,73 +185,72 @@ msgid "" "called before, undefined behavior occurs." msgstr "" -#: ../Doc/c-api/memory.rst:157 ../Doc/c-api/memory.rst:227 -#: ../Doc/c-api/memory.rst:329 -msgid "If *p* is *NULL*, no operation is performed." +#: c-api/memory.rst:227 c-api/memory.rst:329 +msgid "If *p* is ``NULL``, no operation is performed." msgstr "" -#: ../Doc/c-api/memory.rst:163 +#: c-api/memory.rst:163 msgid "Memory Interface" msgstr "" -#: ../Doc/c-api/memory.rst:165 ../Doc/c-api/memory.rst:271 +#: c-api/memory.rst:271 msgid "" "The following function sets, modeled after the ANSI C standard, but " "specifying behavior when requesting zero bytes, are available for allocating " "and releasing memory from the Python heap." msgstr "" -#: ../Doc/c-api/memory.rst:169 +#: c-api/memory.rst:169 msgid "" "The :ref:`default memory allocator ` uses the :" "ref:`pymalloc memory allocator `." msgstr "" -#: ../Doc/c-api/memory.rst:174 ../Doc/c-api/memory.rst:280 +#: c-api/memory.rst:280 msgid "" "The :term:`GIL ` must be held when using these " "functions." msgstr "" -#: ../Doc/c-api/memory.rst:179 +#: c-api/memory.rst:179 msgid "" "The default allocator is now pymalloc instead of system :c:func:`malloc`." msgstr "" -#: ../Doc/c-api/memory.rst:186 +#: c-api/memory.rst:186 msgid "" -"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as " -"if ``PyMem_Malloc(1)`` had been called instead. The memory will not have " +"Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " +"as if ``PyMem_Malloc(1)`` had been called instead. The memory will not have " "been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:197 +#: c-api/memory.rst:197 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " -"non-*NULL* pointer if possible, as if ``PyMem_Calloc(1, 1)`` had been called " -"instead." +"non-``NULL`` pointer if possible, as if ``PyMem_Calloc(1, 1)`` had been " +"called instead." msgstr "" -#: ../Doc/c-api/memory.rst:209 +#: c-api/memory.rst:209 msgid "" -"If *p* is *NULL*, the call is equivalent to ``PyMem_Malloc(n)``; else if *n* " -"is equal to zero, the memory block is resized but is not freed, and the " -"returned pointer is non-*NULL*." +"If *p* is ``NULL``, the call is equivalent to ``PyMem_Malloc(n)``; else if " +"*n* is equal to zero, the memory block is resized but is not freed, and the " +"returned pointer is non-``NULL``." msgstr "" -#: ../Doc/c-api/memory.rst:213 +#: c-api/memory.rst:213 msgid "" -"Unless *p* is *NULL*, it must have been returned by a previous call to :c:" +"Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:`PyMem_Calloc`." msgstr "" -#: ../Doc/c-api/memory.rst:216 +#: c-api/memory.rst:216 msgid "" -"If the request fails, :c:func:`PyMem_Realloc` returns *NULL* and *p* remains " -"a valid pointer to the previous memory area." +"If the request fails, :c:func:`PyMem_Realloc` returns ``NULL`` and *p* " +"remains a valid pointer to the previous memory area." msgstr "" -#: ../Doc/c-api/memory.rst:222 +#: c-api/memory.rst:222 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyMem_Malloc`, :c:func:`PyMem_Realloc` or :c:func:" @@ -262,38 +258,38 @@ msgid "" "undefined behavior occurs." msgstr "" -#: ../Doc/c-api/memory.rst:229 +#: c-api/memory.rst:229 msgid "" "The following type-oriented macros are provided for convenience. Note that " "*TYPE* refers to any C type." msgstr "" -#: ../Doc/c-api/memory.rst:235 +#: c-api/memory.rst:235 msgid "" "Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " -"of memory. Returns a pointer cast to :c:type:`TYPE\\*`. The memory will " -"not have been initialized in any way." +"of memory. Returns a pointer cast to :c:type:`TYPE*`. The memory will not " +"have been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:242 +#: c-api/memory.rst:242 msgid "" "Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " -"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE\\*`. On " -"return, *p* will be a pointer to the new memory area, or *NULL* in the event " -"of failure." +"sizeof(TYPE))`` bytes. Returns a pointer cast to :c:type:`TYPE*`. On " +"return, *p* will be a pointer to the new memory area, or ``NULL`` in the " +"event of failure." msgstr "" -#: ../Doc/c-api/memory.rst:247 +#: c-api/memory.rst:247 msgid "" "This is a C preprocessor macro; *p* is always reassigned. Save the original " "value of *p* to avoid losing memory when handling errors." msgstr "" -#: ../Doc/c-api/memory.rst:253 +#: c-api/memory.rst:253 msgid "Same as :c:func:`PyMem_Free`." msgstr "" -#: ../Doc/c-api/memory.rst:255 +#: c-api/memory.rst:255 msgid "" "In addition, the following macro sets are provided for calling the Python " "memory allocator directly, without involving the C API functions listed " @@ -301,75 +297,75 @@ msgid "" "across Python versions and is therefore deprecated in extension modules." msgstr "" -#: ../Doc/c-api/memory.rst:260 +#: c-api/memory.rst:260 msgid "``PyMem_MALLOC(size)``" msgstr "" -#: ../Doc/c-api/memory.rst:261 +#: c-api/memory.rst:261 msgid "``PyMem_NEW(type, size)``" msgstr "" -#: ../Doc/c-api/memory.rst:262 +#: c-api/memory.rst:262 msgid "``PyMem_REALLOC(ptr, size)``" msgstr "" -#: ../Doc/c-api/memory.rst:263 +#: c-api/memory.rst:263 msgid "``PyMem_RESIZE(ptr, type, size)``" msgstr "" -#: ../Doc/c-api/memory.rst:264 +#: c-api/memory.rst:264 msgid "``PyMem_FREE(ptr)``" msgstr "" -#: ../Doc/c-api/memory.rst:265 +#: c-api/memory.rst:265 msgid "``PyMem_DEL(ptr)``" msgstr "" -#: ../Doc/c-api/memory.rst:269 +#: c-api/memory.rst:269 msgid "Object allocators" msgstr "" -#: ../Doc/c-api/memory.rst:275 +#: c-api/memory.rst:275 msgid "" "The :ref:`default object allocator ` uses the :" "ref:`pymalloc memory allocator `." msgstr "" -#: ../Doc/c-api/memory.rst:288 +#: c-api/memory.rst:288 msgid "" -"Requesting zero bytes returns a distinct non-*NULL* pointer if possible, as " -"if ``PyObject_Malloc(1)`` had been called instead. The memory will not have " -"been initialized in any way." +"Requesting zero bytes returns a distinct non-``NULL`` pointer if possible, " +"as if ``PyObject_Malloc(1)`` had been called instead. The memory will not " +"have been initialized in any way." msgstr "" -#: ../Doc/c-api/memory.rst:299 +#: c-api/memory.rst:299 msgid "" "Requesting zero elements or elements of size zero bytes returns a distinct " -"non-*NULL* pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been " +"non-``NULL`` pointer if possible, as if ``PyObject_Calloc(1, 1)`` had been " "called instead." msgstr "" -#: ../Doc/c-api/memory.rst:311 +#: c-api/memory.rst:311 msgid "" -"If *p* is *NULL*, the call is equivalent to ``PyObject_Malloc(n)``; else if " -"*n* is equal to zero, the memory block is resized but is not freed, and the " -"returned pointer is non-*NULL*." +"If *p* is ``NULL``, the call is equivalent to ``PyObject_Malloc(n)``; else " +"if *n* is equal to zero, the memory block is resized but is not freed, and " +"the returned pointer is non-``NULL``." msgstr "" -#: ../Doc/c-api/memory.rst:315 +#: c-api/memory.rst:315 msgid "" -"Unless *p* is *NULL*, it must have been returned by a previous call to :c:" +"Unless *p* is ``NULL``, it must have been returned by a previous call to :c:" "func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:func:" "`PyObject_Calloc`." msgstr "" -#: ../Doc/c-api/memory.rst:318 +#: c-api/memory.rst:318 msgid "" -"If the request fails, :c:func:`PyObject_Realloc` returns *NULL* and *p* " +"If the request fails, :c:func:`PyObject_Realloc` returns ``NULL`` and *p* " "remains a valid pointer to the previous memory area." msgstr "" -#: ../Doc/c-api/memory.rst:324 +#: c-api/memory.rst:324 msgid "" "Frees the memory block pointed to by *p*, which must have been returned by a " "previous call to :c:func:`PyObject_Malloc`, :c:func:`PyObject_Realloc` or :c:" @@ -377,291 +373,297 @@ msgid "" "called before, undefined behavior occurs." msgstr "" -#: ../Doc/c-api/memory.rst:335 +#: c-api/memory.rst:335 msgid "Default Memory Allocators" msgstr "" -#: ../Doc/c-api/memory.rst:337 +#: c-api/memory.rst:337 msgid "Default memory allocators:" msgstr "" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "Configuration" msgstr "Configuration" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "Name" msgstr "Nom" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "PyMem_RawMalloc" msgstr "" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "PyMem_Malloc" msgstr "" -#: ../Doc/c-api/memory.rst:340 +#: c-api/memory.rst:340 msgid "PyObject_Malloc" msgstr "" -#: ../Doc/c-api/memory.rst:342 +#: c-api/memory.rst:342 msgid "Release build" msgstr "" -#: ../Doc/c-api/memory.rst:342 +#: c-api/memory.rst:342 msgid "``\"pymalloc\"``" msgstr "" -#: ../Doc/c-api/memory.rst:342 ../Doc/c-api/memory.rst:344 +#: c-api/memory.rst:344 msgid "``malloc``" msgstr "" -#: ../Doc/c-api/memory.rst:342 +#: c-api/memory.rst:342 msgid "``pymalloc``" msgstr "" -#: ../Doc/c-api/memory.rst:343 +#: c-api/memory.rst:343 msgid "Debug build" msgstr "" -#: ../Doc/c-api/memory.rst:343 +#: c-api/memory.rst:343 msgid "``\"pymalloc_debug\"``" msgstr "" -#: ../Doc/c-api/memory.rst:343 ../Doc/c-api/memory.rst:345 +#: c-api/memory.rst:345 msgid "``malloc`` + debug" msgstr "" -#: ../Doc/c-api/memory.rst:343 +#: c-api/memory.rst:343 msgid "``pymalloc`` + debug" msgstr "" -#: ../Doc/c-api/memory.rst:344 +#: c-api/memory.rst:344 msgid "Release build, without pymalloc" msgstr "" -#: ../Doc/c-api/memory.rst:344 +#: c-api/memory.rst:344 msgid "``\"malloc\"``" msgstr "" -#: ../Doc/c-api/memory.rst:345 +#: c-api/memory.rst:345 msgid "Debug build, without pymalloc" msgstr "" -#: ../Doc/c-api/memory.rst:345 +#: c-api/memory.rst:345 msgid "``\"malloc_debug\"``" msgstr "" -#: ../Doc/c-api/memory.rst:348 +#: c-api/memory.rst:348 msgid "Legend:" msgstr "" -#: ../Doc/c-api/memory.rst:350 +#: c-api/memory.rst:350 msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable" msgstr "" -#: ../Doc/c-api/memory.rst:351 +#: c-api/memory.rst:351 msgid "" "``malloc``: system allocators from the standard C library, C functions: :c:" "func:`malloc`, :c:func:`calloc`, :c:func:`realloc` and :c:func:`free`" msgstr "" -#: ../Doc/c-api/memory.rst:353 +#: c-api/memory.rst:353 msgid "``pymalloc``: :ref:`pymalloc memory allocator `" msgstr "" -#: ../Doc/c-api/memory.rst:354 +#: c-api/memory.rst:354 msgid "" "\"+ debug\": with debug hooks installed by :c:func:`PyMem_SetupDebugHooks`" msgstr "" -#: ../Doc/c-api/memory.rst:358 +#: c-api/memory.rst:358 msgid "Customize Memory Allocators" msgstr "" -#: ../Doc/c-api/memory.rst:364 +#: c-api/memory.rst:364 msgid "" "Structure used to describe a memory block allocator. The structure has four " "fields:" msgstr "" -#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 +#: c-api/memory.rst:513 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/memory.rst:368 ../Doc/c-api/memory.rst:513 +#: c-api/memory.rst:513 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 +#: c-api/memory.rst:515 msgid "``void *ctx``" msgstr "``void *ctx``" -#: ../Doc/c-api/memory.rst:370 ../Doc/c-api/memory.rst:515 +#: c-api/memory.rst:515 msgid "user context passed as first argument" msgstr "" -#: ../Doc/c-api/memory.rst:372 +#: c-api/memory.rst:372 msgid "``void* malloc(void *ctx, size_t size)``" msgstr "``void* malloc(void *ctx, size_t size)``" -#: ../Doc/c-api/memory.rst:372 +#: c-api/memory.rst:372 msgid "allocate a memory block" msgstr "" -#: ../Doc/c-api/memory.rst:374 +#: c-api/memory.rst:374 msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" msgstr "" -#: ../Doc/c-api/memory.rst:374 +#: c-api/memory.rst:374 msgid "allocate a memory block initialized with zeros" msgstr "" -#: ../Doc/c-api/memory.rst:377 +#: c-api/memory.rst:377 msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" msgstr "" -#: ../Doc/c-api/memory.rst:377 +#: c-api/memory.rst:377 msgid "allocate or resize a memory block" msgstr "" -#: ../Doc/c-api/memory.rst:379 +#: c-api/memory.rst:379 msgid "``void free(void *ctx, void *ptr)``" msgstr "``void free(void *ctx, void *ptr)``" -#: ../Doc/c-api/memory.rst:379 +#: c-api/memory.rst:379 msgid "free a memory block" msgstr "" -#: ../Doc/c-api/memory.rst:382 +#: c-api/memory.rst:382 msgid "" "The :c:type:`PyMemAllocator` structure was renamed to :c:type:" "`PyMemAllocatorEx` and a new ``calloc`` field was added." msgstr "" -#: ../Doc/c-api/memory.rst:389 +#: c-api/memory.rst:389 msgid "Enum used to identify an allocator domain. Domains:" msgstr "" -#: ../Doc/c-api/memory.rst:393 ../Doc/c-api/memory.rst:402 -#: ../Doc/c-api/memory.rst:411 +#: c-api/memory.rst:402 c-api/memory.rst:411 +#, fuzzy msgid "Functions:" -msgstr "" +msgstr "Fonctions" -#: ../Doc/c-api/memory.rst:395 +#: c-api/memory.rst:395 +#, fuzzy msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/memory.rst:396 +#: c-api/memory.rst:396 +#, fuzzy msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/memory.rst:397 +#: c-api/memory.rst:397 +#, fuzzy msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" +msgstr ":c:func:`PyMem_RawCalloc`," -#: ../Doc/c-api/memory.rst:398 +#: c-api/memory.rst:398 msgid ":c:func:`PyMem_RawFree`" msgstr "" -#: ../Doc/c-api/memory.rst:404 +#: c-api/memory.rst:404 +#, fuzzy msgid ":c:func:`PyMem_Malloc`," -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," -#: ../Doc/c-api/memory.rst:405 +#: c-api/memory.rst:405 +#, fuzzy msgid ":c:func:`PyMem_Realloc`" -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," -#: ../Doc/c-api/memory.rst:406 +#: c-api/memory.rst:406 +#, fuzzy msgid ":c:func:`PyMem_Calloc`" -msgstr "" +msgstr ":c:func:`PyMem_Calloc`," -#: ../Doc/c-api/memory.rst:407 +#: c-api/memory.rst:407 msgid ":c:func:`PyMem_Free`" msgstr "" -#: ../Doc/c-api/memory.rst:413 +#: c-api/memory.rst:413 msgid ":c:func:`PyObject_Malloc`" msgstr "" -#: ../Doc/c-api/memory.rst:414 +#: c-api/memory.rst:414 msgid ":c:func:`PyObject_Realloc`" msgstr "" -#: ../Doc/c-api/memory.rst:415 +#: c-api/memory.rst:415 msgid ":c:func:`PyObject_Calloc`" msgstr "" -#: ../Doc/c-api/memory.rst:416 +#: c-api/memory.rst:416 msgid ":c:func:`PyObject_Free`" msgstr "" -#: ../Doc/c-api/memory.rst:420 +#: c-api/memory.rst:420 msgid "Get the memory block allocator of the specified domain." msgstr "" -#: ../Doc/c-api/memory.rst:425 +#: c-api/memory.rst:425 msgid "Set the memory block allocator of the specified domain." msgstr "" -#: ../Doc/c-api/memory.rst:427 +#: c-api/memory.rst:427 msgid "" -"The new allocator must return a distinct non-NULL pointer when requesting " -"zero bytes." +"The new allocator must return a distinct non-``NULL`` pointer when " +"requesting zero bytes." msgstr "" -#: ../Doc/c-api/memory.rst:430 +#: c-api/memory.rst:430 msgid "" "For the :c:data:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" "safe: the :term:`GIL ` is not held when the " "allocator is called." msgstr "" -#: ../Doc/c-api/memory.rst:434 +#: c-api/memory.rst:434 msgid "" "If the new allocator is not a hook (does not call the previous allocator), " "the :c:func:`PyMem_SetupDebugHooks` function must be called to reinstall the " "debug hooks on top on the new allocator." msgstr "" -#: ../Doc/c-api/memory.rst:441 +#: c-api/memory.rst:441 msgid "Setup hooks to detect bugs in the Python memory allocator functions." msgstr "" -#: ../Doc/c-api/memory.rst:443 +#: c-api/memory.rst:443 msgid "" "Newly allocated memory is filled with the byte ``0xCD`` (``CLEANBYTE``), " "freed memory is filled with the byte ``0xDD`` (``DEADBYTE``). Memory blocks " "are surrounded by \"forbidden bytes\" (``FORBIDDENBYTE``: byte ``0xFD``)." msgstr "" -#: ../Doc/c-api/memory.rst:447 +#: c-api/memory.rst:447 msgid "Runtime checks:" msgstr "" -#: ../Doc/c-api/memory.rst:449 +#: c-api/memory.rst:449 msgid "" "Detect API violations, ex: :c:func:`PyObject_Free` called on a buffer " "allocated by :c:func:`PyMem_Malloc`" msgstr "" -#: ../Doc/c-api/memory.rst:451 +#: c-api/memory.rst:451 msgid "Detect write before the start of the buffer (buffer underflow)" msgstr "" -#: ../Doc/c-api/memory.rst:452 +#: c-api/memory.rst:452 msgid "Detect write after the end of the buffer (buffer overflow)" msgstr "" -#: ../Doc/c-api/memory.rst:453 +#: c-api/memory.rst:453 msgid "" "Check that the :term:`GIL ` is held when allocator " "functions of :c:data:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) and :" "c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are called" msgstr "" -#: ../Doc/c-api/memory.rst:458 +#: c-api/memory.rst:458 msgid "" "On error, the debug hooks use the :mod:`tracemalloc` module to get the " "traceback where a memory block was allocated. The traceback is only " @@ -669,7 +671,7 @@ msgid "" "memory block was traced." msgstr "" -#: ../Doc/c-api/memory.rst:463 +#: c-api/memory.rst:463 msgid "" "These hooks are :ref:`installed by default ` if " "Python is compiled in debug mode. The :envvar:`PYTHONMALLOC` environment " @@ -677,7 +679,7 @@ msgid "" "mode." msgstr "" -#: ../Doc/c-api/memory.rst:468 +#: c-api/memory.rst:468 msgid "" "This function now also works on Python compiled in release mode. On error, " "the debug hooks now use :mod:`tracemalloc` to get the traceback where a " @@ -686,18 +688,18 @@ msgid "" "`PYMEM_DOMAIN_MEM` domains are called." msgstr "" -#: ../Doc/c-api/memory.rst:475 +#: c-api/memory.rst:475 msgid "" "Byte patterns ``0xCB`` (``CLEANBYTE``), ``0xDB`` (``DEADBYTE``) and ``0xFB`` " "(``FORBIDDENBYTE``) have been replaced with ``0xCD``, ``0xDD`` and ``0xFD`` " "to use the same values than Windows CRT debug ``malloc()`` and ``free()``." msgstr "" -#: ../Doc/c-api/memory.rst:485 +#: c-api/memory.rst:485 msgid "The pymalloc allocator" msgstr "" -#: ../Doc/c-api/memory.rst:487 +#: c-api/memory.rst:487 msgid "" "Python has a *pymalloc* allocator optimized for small objects (smaller or " "equal to 512 bytes) with a short lifetime. It uses memory mappings called " @@ -706,83 +708,108 @@ msgid "" "512 bytes." msgstr "" -#: ../Doc/c-api/memory.rst:492 +#: c-api/memory.rst:492 msgid "" "*pymalloc* is the :ref:`default allocator ` of " "the :c:data:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) and :c:data:" "`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." msgstr "" -#: ../Doc/c-api/memory.rst:496 +#: c-api/memory.rst:496 msgid "The arena allocator uses the following functions:" msgstr "" -#: ../Doc/c-api/memory.rst:498 +#: c-api/memory.rst:498 msgid ":c:func:`VirtualAlloc` and :c:func:`VirtualFree` on Windows," msgstr "" -#: ../Doc/c-api/memory.rst:499 +#: c-api/memory.rst:499 msgid ":c:func:`mmap` and :c:func:`munmap` if available," msgstr "" -#: ../Doc/c-api/memory.rst:500 +#: c-api/memory.rst:500 msgid ":c:func:`malloc` and :c:func:`free` otherwise." msgstr "" -#: ../Doc/c-api/memory.rst:503 +#: c-api/memory.rst:503 msgid "Customize pymalloc Arena Allocator" msgstr "" -#: ../Doc/c-api/memory.rst:509 +#: c-api/memory.rst:509 msgid "" "Structure used to describe an arena allocator. The structure has three " "fields:" msgstr "" -#: ../Doc/c-api/memory.rst:517 +#: c-api/memory.rst:517 msgid "``void* alloc(void *ctx, size_t size)``" msgstr "``void* alloc(void *ctx, size_t size)``" -#: ../Doc/c-api/memory.rst:517 +#: c-api/memory.rst:517 msgid "allocate an arena of size bytes" msgstr "" -#: ../Doc/c-api/memory.rst:519 -msgid "``void free(void *ctx, size_t size, void *ptr)``" -msgstr "``void free(void *ctx, size_t size, void *ptr)``" +#: c-api/memory.rst:519 +#, fuzzy +msgid "``void free(void *ctx, void *ptr, size_t size)``" +msgstr "``void free(void *ctx, void *ptr)``" -#: ../Doc/c-api/memory.rst:519 +#: c-api/memory.rst:519 msgid "free an arena" msgstr "" -#: ../Doc/c-api/memory.rst:524 +#: c-api/memory.rst:524 msgid "Get the arena allocator." msgstr "" -#: ../Doc/c-api/memory.rst:528 +#: c-api/memory.rst:528 msgid "Set the arena allocator." msgstr "" -#: ../Doc/c-api/memory.rst:532 +#: c-api/memory.rst:532 msgid "tracemalloc C API" msgstr "" -#: ../Doc/c-api/memory.rst:556 +#: c-api/memory.rst:538 +msgid "Track an allocated memory block in the :mod:`tracemalloc` module." +msgstr "" + +#: c-api/memory.rst:540 +msgid "" +"Return ``0`` on success, return ``-1`` on error (failed to allocate memory " +"to store the trace). Return ``-2`` if tracemalloc is disabled." +msgstr "" + +#: c-api/memory.rst:543 +msgid "If memory block is already tracked, update the existing trace." +msgstr "" + +#: c-api/memory.rst:547 +msgid "" +"Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " +"nothing if the block was not tracked." +msgstr "" + +#: c-api/memory.rst:550 +msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." +msgstr "" + +#: c-api/memory.rst:556 msgid "Examples" msgstr "Exemples" -#: ../Doc/c-api/memory.rst:558 +#: c-api/memory.rst:558 msgid "" "Here is the example from section :ref:`memoryoverview`, rewritten so that " "the I/O buffer is allocated from the Python heap by using the first function " "set::" msgstr "" -#: ../Doc/c-api/memory.rst:571 +#: c-api/memory.rst:571 msgid "The same code using the type-oriented function set::" msgstr "" -#: ../Doc/c-api/memory.rst:583 +#: c-api/memory.rst:583 msgid "" "Note that in the two examples above, the buffer is always manipulated via " "functions belonging to the same set. Indeed, it is required to use the same " @@ -792,15 +819,18 @@ msgid "" "different allocators operating on different heaps. ::" msgstr "" -#: ../Doc/c-api/memory.rst:598 +#: c-api/memory.rst:598 msgid "" "In addition to the functions aimed at handling raw memory blocks from the " "Python heap, objects in Python are allocated and released with :c:func:" "`PyObject_New`, :c:func:`PyObject_NewVar` and :c:func:`PyObject_Del`." msgstr "" -#: ../Doc/c-api/memory.rst:602 +#: c-api/memory.rst:602 msgid "" "These will be explained in the next chapter on defining and implementing new " "object types in C." msgstr "" + +#~ msgid "``void free(void *ctx, size_t size, void *ptr)``" +#~ msgstr "``void free(void *ctx, size_t size, void *ptr)``" diff --git a/c-api/memoryview.po b/c-api/memoryview.po index 733a129017..872ace562d 100644 --- a/c-api/memoryview.po +++ b/c-api/memoryview.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -24,6 +24,9 @@ msgid "" "` as a Python object which can then be passed around like any " "other object." msgstr "" +"Un objet Python :class:`memoryview` expose le :ref:`protocole tampon " +"` du C. Cet objet peut ensuite être passé comme n'importe " +"quel objet." #: ../Doc/c-api/memoryview.rst:18 msgid "" @@ -32,12 +35,18 @@ msgid "" "will be read/write, otherwise it may be either read-only or read/write at " "the discretion of the exporter." msgstr "" +"Crée un objet *memoryview* à partir d'un objet implémentant le protocole " +"tampon. Si *obj* permet d'exporter des tampons modifiables, l'objet " +"*memoryview* crée acceptera la lecture et écriture, sinon l'objet crée est " +"soit en lecture seule ou lecture/écriture, à la discrétion de l'*exporteur*." #: ../Doc/c-api/memoryview.rst:25 msgid "" "Create a memoryview object using *mem* as the underlying buffer. *flags* can " "be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." msgstr "" +"Crée un objet *memoryview* utilisant *mem* comme un tampon sous-jacent. " +"*flags* peut être :c:macro:`PyBUF_READ` ou :c:macro:`PyBUF_WRITE`." #: ../Doc/c-api/memoryview.rst:32 msgid "" @@ -45,6 +54,8 @@ msgid "" "simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " "function." msgstr "" +"Crée un objet *memoryview* à partir de la structure tampon *view*. Pour de " +"simples tampons d'octets, :c:func:`PyMemoryView_FromMemory` est préférée." #: ../Doc/c-api/memoryview.rst:38 msgid "" @@ -54,12 +65,19 @@ msgid "" "original memory. Otherwise, a copy is made and the memoryview points to a " "new bytes object." msgstr "" +"Crée un objet *memoryview* vers un segment de mémoire :term:`contiguous` " +"(organisé comme en ``'C'`` ou comme en ``'F'`` pour Fortran) à partir d'un " +"objet qui expose le protocole tampon. Si la mémoire est contiguë, l'objet " +"*memoryview* pointe vers la mémoire d'origine. Sinon une copie est faite et " +"la *memoryview* pointe vers un nouvel objet *bytes*." #: ../Doc/c-api/memoryview.rst:47 msgid "" "Return true if the object *obj* is a memoryview object. It is not currently " "allowed to create subclasses of :class:`memoryview`." msgstr "" +"Renvoie vrai si l'objet *obj* est un objet *memoryview*. Il n'est pas permis " +"de créer une sous-classe de :class:`memoryview`." #: ../Doc/c-api/memoryview.rst:53 msgid "" @@ -67,11 +85,19 @@ msgid "" "*mview* **must** be a memoryview instance; this macro doesn't check its " "type, you must do it yourself or you will risk crashes." msgstr "" +"Retourne un pointeur vers la copie privée du tampon de l'*exporteur* de " +"*memoryview*. *mview* **doit** être une instance de *memoryview*; cette " +"macro ne vérifie pas le type, vous devez le faire vous-même sinon vous " +"pourriez subir un crash." #: ../Doc/c-api/memoryview.rst:59 msgid "" "Return either a pointer to the exporting object that the memoryview is based " -"on or *NULL* if the memoryview has been created by one of the functions :c:" +"on or ``NULL`` if the memoryview has been created by one of the functions :c:" "func:`PyMemoryView_FromMemory` or :c:func:`PyMemoryView_FromBuffer`. *mview* " "**must** be a memoryview instance." msgstr "" +"Renvoie soit un pointeur vers l'objet exporté sur lequel est basé la " +"*memoryview* ou ``NULL`` si la *memoryview* a été crée par :c:func:" +"`PyMemoryView_FromMemory` ou :c:func:`PyMemoryView_FromBuffer`. *mview* " +"**doit** être une instance de *memoryview*." diff --git a/c-api/method.po b/c-api/method.po index a99b94ba31..03d36377ef 100644 --- a/c-api/method.po +++ b/c-api/method.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/c-api/method.rst:23 msgid "" "Return true if *o* is an instance method object (has type :c:data:" -"`PyInstanceMethod_Type`). The parameter must not be *NULL*." +"`PyInstanceMethod_Type`). The parameter must not be ``NULL``." msgstr "" #: ../Doc/c-api/method.rst:29 @@ -74,14 +74,14 @@ msgstr "" #: ../Doc/c-api/method.rst:66 msgid "" "Return true if *o* is a method object (has type :c:data:`PyMethod_Type`). " -"The parameter must not be *NULL*." +"The parameter must not be ``NULL``." msgstr "" #: ../Doc/c-api/method.rst:72 msgid "" "Return a new method object, with *func* being any callable object and *self* " "the instance the method should be bound. *func* is the function that will be " -"called when the method is called. *self* must not be *NULL*." +"called when the method is called. *self* must not be ``NULL``." msgstr "" #: ../Doc/c-api/method.rst:79 diff --git a/c-api/module.po b/c-api/module.po index 90e5e77ebd..31f26906f3 100644 --- a/c-api/module.po +++ b/c-api/module.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -58,7 +58,7 @@ msgid "" "Return the dictionary object that implements *module*'s namespace; this " "object is the same as the :attr:`~object.__dict__` attribute of the module " "object. If *module* is not a module object (or a subtype of a module " -"object), :exc:`SystemError` is raised and *NULL* is returned." +"object), :exc:`SystemError` is raised and ``NULL`` is returned." msgstr "" #: ../Doc/c-api/module.rst:66 @@ -71,7 +71,7 @@ msgstr "" #: ../Doc/c-api/module.rst:77 msgid "" "Return *module*'s :attr:`__name__` value. If the module does not provide " -"one, or if it is not a string, :exc:`SystemError` is raised and *NULL* is " +"one, or if it is not a string, :exc:`SystemError` is raised and ``NULL`` is " "returned." msgstr "" @@ -84,22 +84,22 @@ msgstr "" #: ../Doc/c-api/module.rst:90 msgid "" "Return the \"state\" of the module, that is, a pointer to the block of " -"memory allocated at module creation time, or *NULL*. See :c:member:" +"memory allocated at module creation time, or ``NULL``. See :c:member:" "`PyModuleDef.m_size`." msgstr "" #: ../Doc/c-api/module.rst:97 msgid "" "Return a pointer to the :c:type:`PyModuleDef` struct from which the module " -"was created, or *NULL* if the module wasn't created from a definition." +"was created, or ``NULL`` if the module wasn't created from a definition." msgstr "" #: ../Doc/c-api/module.rst:107 msgid "" "Return the name of the file from which *module* was loaded using *module*'s :" "attr:`__file__` attribute. If this is not defined, or if it is not a " -"unicode string, raise :exc:`SystemError` and return *NULL*; otherwise return " -"a reference to a Unicode object." +"unicode string, raise :exc:`SystemError` and return ``NULL``; otherwise " +"return a reference to a Unicode object." msgstr "" #: ../Doc/c-api/module.rst:117 @@ -150,7 +150,7 @@ msgstr "" #: ../Doc/c-api/module.rst:155 msgid "" -"Docstring for the module; usually a docstring variable created with :c:func:" +"Docstring for the module; usually a docstring variable created with :c:macro:" "`PyDoc_STRVAR` is used." msgstr "" @@ -189,41 +189,41 @@ msgstr "" #: ../Doc/c-api/module.rst:180 msgid "" "A pointer to a table of module-level functions, described by :c:type:" -"`PyMethodDef` values. Can be *NULL* if no functions are present." +"`PyMethodDef` values. Can be ``NULL`` if no functions are present." msgstr "" #: ../Doc/c-api/module.rst:185 msgid "" "An array of slot definitions for multi-phase initialization, terminated by a " "``{0, NULL}`` entry. When using single-phase initialization, *m_slots* must " -"be *NULL*." +"be ``NULL``." msgstr "" #: ../Doc/c-api/module.rst:191 msgid "" -"Prior to version 3.5, this member was always set to *NULL*, and was defined " -"as:" +"Prior to version 3.5, this member was always set to ``NULL``, and was " +"defined as:" 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. This function may be called before module state is " +"``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:205 msgid "" -"A clear function to call during GC clearing of the module object, or *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." +"A clear function to call during GC clearing of the module object, or " +"``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:212 msgid "" -"A function to call during deallocation of the module object, or *NULL* if " +"A function to call during deallocation of the module object, or ``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." @@ -316,7 +316,7 @@ msgid "" msgstr "" #: ../Doc/c-api/module.rst:281 -msgid "Returns *def* cast to ``PyObject*``, or *NULL* if an error occurred." +msgid "Returns *def* cast to ``PyObject*``, or ``NULL`` if an error occurred." msgstr "" #: ../Doc/c-api/module.rst:285 @@ -351,7 +351,7 @@ msgstr "" 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*." +"return a new module object, or set an error and return ``NULL``." msgstr "" #: ../Doc/c-api/module.rst:316 @@ -381,7 +381,7 @@ 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 " "getting import-related attributes. However, only ``PyModule_Type`` instances " -"may be returned if the ``PyModuleDef`` has non-*NULL* ``m_traverse``, " +"may be returned if the ``PyModuleDef`` has non-``NULL`` ``m_traverse``, " "``m_clear``, ``m_free``; non-zero ``m_size``; or slots other than " "``Py_mod_create``." msgstr "" @@ -450,12 +450,12 @@ msgstr "" #: ../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 " -"entries (due to the lack of a shared module namespace, module level " -"\"functions\" implemented in C typically receive the module as their first " -"parameter, making them similar to instance methods on Python classes). This " -"function is called automatically when creating a module from " +"Add the functions from the ``NULL`` terminated *functions* array to " +"*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " +"individual entries (due to the lack of a shared module namespace, module " +"level \"functions\" implemented in C typically receive the module as their " +"first parameter, making them similar to instance methods on Python classes). " +"This function is called automatically when creating a module from " "``PyModuleDef``, using either ``PyModule_Create`` or " "``PyModule_FromDefAndSpec``." msgstr "" @@ -502,7 +502,7 @@ msgstr "" 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." +"be ``NULL``-terminated. Return ``-1`` on error, ``0`` on success." msgstr "" #: ../Doc/c-api/module.rst:453 @@ -541,7 +541,7 @@ msgid "" "interpreter. This method requires that the module object has been attached " "to the interpreter state with :c:func:`PyState_AddModule` beforehand. In " "case the corresponding module object is not found or has not been attached " -"to the interpreter state yet, it returns *NULL*." +"to the interpreter state yet, it returns ``NULL``." msgstr "" #: ../Doc/c-api/module.rst:483 @@ -555,7 +555,23 @@ msgstr "" msgid "Only effective on modules created using single-phase initialization." msgstr "" -#: ../Doc/c-api/module.rst:492 +#: ../Doc/c-api/module.rst:488 +msgid "" +"Python calls ``PyState_AddModule`` automatically after importing a module, " +"so it is unnecessary (but harmless) to call it from module initialization " +"code. An explicit call is needed only if the module's own init code " +"subsequently calls ``PyState_FindModule``. The function is mainly intended " +"for implementing alternative import mechanisms (either by calling it " +"directly, or by referring to its implementation for details of the required " +"state updates)." +msgstr "" + +#: ../Doc/c-api/module.rst:496 +msgid "Return 0 on success or -1 on failure." +msgstr "" + +#: ../Doc/c-api/module.rst:502 msgid "" -"Removes the module object created from *def* from the interpreter state." +"Removes the module object created from *def* from the interpreter state. " +"Return 0 on success or -1 on failure." msgstr "" diff --git a/c-api/none.po b/c-api/none.po index cf01198d00..c3c30f5459 100644 --- a/c-api/none.po +++ b/c-api/none.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-11-05 11:18+0100\n" diff --git a/c-api/number.po b/c-api/number.po index 216ff83c83..b5e769fd8c 100644 --- a/c-api/number.po +++ b/c-api/number.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -30,148 +30,148 @@ msgstr "" #: ../Doc/c-api/number.rst:20 msgid "" -"Returns the result of adding *o1* and *o2*, or *NULL* on failure. This is " +"Returns the result of adding *o1* and *o2*, or ``NULL`` on failure. This is " "the equivalent of the Python expression ``o1 + o2``." msgstr "" #: ../Doc/c-api/number.rst:26 msgid "" -"Returns the result of subtracting *o2* from *o1*, or *NULL* on failure. " +"Returns the result of subtracting *o2* from *o1*, or ``NULL`` on failure. " "This is the equivalent of the Python expression ``o1 - o2``." msgstr "" #: ../Doc/c-api/number.rst:32 msgid "" -"Returns the result of multiplying *o1* and *o2*, or *NULL* on failure. This " -"is the equivalent of the Python expression ``o1 * o2``." +"Returns the result of multiplying *o1* and *o2*, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``o1 * o2``." msgstr "" #: ../Doc/c-api/number.rst:38 msgid "" -"Returns the result of matrix multiplication on *o1* and *o2*, or *NULL* on " +"Returns the result of matrix multiplication on *o1* and *o2*, or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o1 @ o2``." msgstr "" #: ../Doc/c-api/number.rst:46 msgid "" -"Return the floor of *o1* divided by *o2*, or *NULL* on failure. This is " +"Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is " "equivalent to the \"classic\" division of integers." msgstr "" #: ../Doc/c-api/number.rst:52 msgid "" "Return a reasonable approximation for the mathematical value of *o1* divided " -"by *o2*, or *NULL* on failure. The return value is \"approximate\" because " -"binary floating point numbers are approximate; it is not possible to " +"by *o2*, or ``NULL`` on failure. The return value is \"approximate\" " +"because binary floating point numbers are approximate; it is not possible to " "represent all real numbers in base two. This function can return a floating " "point value when passed two integers." msgstr "" #: ../Doc/c-api/number.rst:61 msgid "" -"Returns the remainder of dividing *o1* by *o2*, or *NULL* on failure. This " -"is the equivalent of the Python expression ``o1 % o2``." +"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``o1 % o2``." msgstr "" #: ../Doc/c-api/number.rst:69 msgid "" -"See the built-in function :func:`divmod`. Returns *NULL* on failure. This " +"See the built-in function :func:`divmod`. Returns ``NULL`` on failure. This " "is the equivalent of the Python expression ``divmod(o1, o2)``." msgstr "" #: ../Doc/c-api/number.rst:77 msgid "" -"See the built-in function :func:`pow`. Returns *NULL* on failure. This is " +"See the built-in function :func:`pow`. Returns ``NULL`` on failure. This is " "the equivalent of the Python expression ``pow(o1, o2, o3)``, where *o3* is " "optional. If *o3* is to be ignored, pass :c:data:`Py_None` in its place " -"(passing *NULL* for *o3* would cause an illegal memory access)." +"(passing ``NULL`` for *o3* would cause an illegal memory access)." msgstr "" #: ../Doc/c-api/number.rst:85 msgid "" -"Returns the negation of *o* on success, or *NULL* on failure. This is the " +"Returns the negation of *o* on success, or ``NULL`` on failure. This is the " "equivalent of the Python expression ``-o``." msgstr "" #: ../Doc/c-api/number.rst:91 msgid "" -"Returns *o* on success, or *NULL* on failure. This is the equivalent of the " -"Python expression ``+o``." +"Returns *o* on success, or ``NULL`` on failure. This is the equivalent of " +"the Python expression ``+o``." msgstr "" #: ../Doc/c-api/number.rst:99 msgid "" -"Returns the absolute value of *o*, or *NULL* on failure. This is the " +"Returns the absolute value of *o*, or ``NULL`` on failure. This is the " "equivalent of the Python expression ``abs(o)``." msgstr "" #: ../Doc/c-api/number.rst:105 msgid "" -"Returns the bitwise negation of *o* on success, or *NULL* on failure. This " -"is the equivalent of the Python expression ``~o``." +"Returns the bitwise negation of *o* on success, or ``NULL`` on failure. " +"This is the equivalent of the Python expression ``~o``." msgstr "" #: ../Doc/c-api/number.rst:111 msgid "" -"Returns the result of left shifting *o1* by *o2* on success, or *NULL* on " +"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o1 << o2``." msgstr "" #: ../Doc/c-api/number.rst:117 msgid "" -"Returns the result of right shifting *o1* by *o2* on success, or *NULL* on " +"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o1 >> o2``." msgstr "" #: ../Doc/c-api/number.rst:123 msgid "" -"Returns the \"bitwise and\" of *o1* and *o2* on success and *NULL* on " +"Returns the \"bitwise and\" of *o1* and *o2* on success and ``NULL`` on " "failure. This is the equivalent of the Python expression ``o1 & o2``." msgstr "" #: ../Doc/c-api/number.rst:129 msgid "" -"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or *NULL* " +"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` " "on failure. This is the equivalent of the Python expression ``o1 ^ o2``." msgstr "" #: ../Doc/c-api/number.rst:135 msgid "" -"Returns the \"bitwise or\" of *o1* and *o2* on success, or *NULL* on " +"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o1 | o2``." msgstr "" #: ../Doc/c-api/number.rst:141 msgid "" -"Returns the result of adding *o1* and *o2*, or *NULL* on failure. The " +"Returns the result of adding *o1* and *o2*, or ``NULL`` on failure. The " "operation is done *in-place* when *o1* supports it. This is the equivalent " "of the Python statement ``o1 += o2``." msgstr "" #: ../Doc/c-api/number.rst:148 msgid "" -"Returns the result of subtracting *o2* from *o1*, or *NULL* on failure. The " -"operation is done *in-place* when *o1* supports it. This is the equivalent " -"of the Python statement ``o1 -= o2``." +"Returns the result of subtracting *o2* from *o1*, or ``NULL`` on failure. " +"The operation is done *in-place* when *o1* supports it. This is the " +"equivalent of the Python statement ``o1 -= o2``." msgstr "" #: ../Doc/c-api/number.rst:155 msgid "" -"Returns the result of multiplying *o1* and *o2*, or *NULL* on failure. The " -"operation is done *in-place* when *o1* supports it. This is the equivalent " -"of the Python statement ``o1 *= o2``." +"Returns the result of multiplying *o1* and *o2*, or ``NULL`` on failure. " +"The operation is done *in-place* when *o1* supports it. This is the " +"equivalent of the Python statement ``o1 *= o2``." msgstr "" #: ../Doc/c-api/number.rst:162 msgid "" -"Returns the result of matrix multiplication on *o1* and *o2*, or *NULL* on " +"Returns the result of matrix multiplication on *o1* and *o2*, or ``NULL`` on " "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 @= o2``." msgstr "" #: ../Doc/c-api/number.rst:171 msgid "" -"Returns the mathematical floor of dividing *o1* by *o2*, or *NULL* on " +"Returns the mathematical floor of dividing *o1* by *o2*, or ``NULL`` on " "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 //= o2``." msgstr "" @@ -179,8 +179,8 @@ msgstr "" #: ../Doc/c-api/number.rst:178 msgid "" "Return a reasonable approximation for the mathematical value of *o1* divided " -"by *o2*, or *NULL* on failure. The return value is \"approximate\" because " -"binary floating point numbers are approximate; it is not possible to " +"by *o2*, or ``NULL`` on failure. The return value is \"approximate\" " +"because binary floating point numbers are approximate; it is not possible to " "represent all real numbers in base two. This function can return a floating " "point value when passed two integers. The operation is done *in-place* when " "*o1* supports it." @@ -188,71 +188,71 @@ msgstr "" #: ../Doc/c-api/number.rst:187 msgid "" -"Returns the remainder of dividing *o1* by *o2*, or *NULL* on failure. The " +"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. The " "operation is done *in-place* when *o1* supports it. This is the equivalent " "of the Python statement ``o1 %= o2``." msgstr "" #: ../Doc/c-api/number.rst:196 msgid "" -"See the built-in function :func:`pow`. Returns *NULL* on failure. The " +"See the built-in function :func:`pow`. Returns ``NULL`` on failure. The " "operation is done *in-place* when *o1* supports it. This is the equivalent " "of the Python statement ``o1 **= o2`` when o3 is :c:data:`Py_None`, or an in-" "place variant of ``pow(o1, o2, o3)`` otherwise. If *o3* is to be ignored, " -"pass :c:data:`Py_None` in its place (passing *NULL* for *o3* would cause an " -"illegal memory access)." +"pass :c:data:`Py_None` in its place (passing ``NULL`` for *o3* would cause " +"an illegal memory access)." msgstr "" #: ../Doc/c-api/number.rst:205 msgid "" -"Returns the result of left shifting *o1* by *o2* on success, or *NULL* on " +"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on " "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 <<= o2``." msgstr "" #: ../Doc/c-api/number.rst:212 msgid "" -"Returns the result of right shifting *o1* by *o2* on success, or *NULL* on " +"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on " "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 >>= o2``." msgstr "" #: ../Doc/c-api/number.rst:219 msgid "" -"Returns the \"bitwise and\" of *o1* and *o2* on success and *NULL* on " +"Returns the \"bitwise and\" 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 statement ``o1 &= o2``." msgstr "" #: ../Doc/c-api/number.rst:226 msgid "" -"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or *NULL* " +"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` " "on failure. The operation is done *in-place* when *o1* supports it. This " "is the equivalent of the Python statement ``o1 ^= o2``." msgstr "" #: ../Doc/c-api/number.rst:233 msgid "" -"Returns the \"bitwise or\" of *o1* and *o2* on success, or *NULL* on " +"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on " "failure. The operation is done *in-place* when *o1* supports it. This is " "the equivalent of the Python statement ``o1 |= o2``." msgstr "" #: ../Doc/c-api/number.rst:242 msgid "" -"Returns the *o* converted to an integer object on success, or *NULL* on " +"Returns the *o* converted to an integer object on success, or ``NULL`` on " "failure. This is the equivalent of the Python expression ``int(o)``." msgstr "" #: ../Doc/c-api/number.rst:250 msgid "" -"Returns the *o* converted to a float object on success, or *NULL* on " +"Returns the *o* converted to a float object on success, or ``NULL`` on " "failure. This is the equivalent of the Python expression ``float(o)``." msgstr "" #: ../Doc/c-api/number.rst:256 msgid "" -"Returns the *o* converted to a Python int on success or *NULL* with a :exc:" +"Returns the *o* converted to a Python int on success or ``NULL`` with a :exc:" "`TypeError` exception raised on failure." msgstr "" @@ -276,9 +276,9 @@ msgid "" "If *o* can be converted to a Python int but the attempt to convert to a " "Py_ssize_t value would raise an :exc:`OverflowError`, then the *exc* " "argument is the type of exception that will be raised (usually :exc:" -"`IndexError` or :exc:`OverflowError`). If *exc* is *NULL*, then the " -"exception is cleared and the value is clipped to *PY_SSIZE_T_MIN* for a " -"negative integer or *PY_SSIZE_T_MAX* for a positive integer." +"`IndexError` or :exc:`OverflowError`). If *exc* is ``NULL``, then the " +"exception is cleared and the value is clipped to ``PY_SSIZE_T_MIN`` for a " +"negative integer or ``PY_SSIZE_T_MAX`` for a positive integer." msgstr "" #: ../Doc/c-api/number.rst:284 diff --git a/c-api/objbuffer.po b/c-api/objbuffer.po index b8fa1e5031..4fc5ec1d35 100644 --- a/c-api/objbuffer.po +++ b/c-api/objbuffer.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-04-10 09:35+0200\n" "PO-Revision-Date: 2019-04-11 19:43+0200\n" diff --git a/c-api/object.po b/c-api/object.po index a73dc30b38..d0706750b0 100644 --- a/c-api/object.po +++ b/c-api/object.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-08-16 22:56+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2\n" -#: ../Doc/c-api/object.rst:6 +#: c-api/object.rst:6 msgid "Object Protocol" msgstr "Protocole Objet" -#: ../Doc/c-api/object.rst:11 +#: c-api/object.rst:11 msgid "" "The ``NotImplemented`` singleton, used to signal that an operation is not " "implemented for the given type combination." @@ -27,7 +27,7 @@ msgstr "" "Le singleton ``NotImplemented``, utilisé pour signaler qu'une opération " "n'est pas implémentée pour la combinaison de types en question." -#: ../Doc/c-api/object.rst:17 +#: c-api/object.rst:17 msgid "" "Properly handle returning :c:data:`Py_NotImplemented` from within a C " "function (that is, increment the reference count of NotImplemented and " @@ -37,7 +37,7 @@ msgstr "" "l'intérieur d'une fonction C (c'est-à-dire, incrémente le compteur de " "référence de `NotImplemented` et le renvoie)." -#: ../Doc/c-api/object.rst:24 +#: c-api/object.rst:24 msgid "" "Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags " "argument is used to enable certain printing options. The only option " @@ -50,7 +50,7 @@ msgstr "" "est fourni, le :func:`str` de l'objet est utilisé pour le rendu à la place " "de :func:`repr`." -#: ../Doc/c-api/object.rst:32 ../Doc/c-api/object.rst:43 +#: c-api/object.rst:43 msgid "" "Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " "This is equivalent to the Python expression ``hasattr(o, attr_name)``. This " @@ -60,14 +60,18 @@ msgstr "" "équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " "réussit toujours." -#: ../Doc/c-api/object.rst:36 +#: c-api/object.rst:36 +#, fuzzy msgid "" "Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" "`__getattribute__` methods will get suppressed. To get error reporting use :" "c:func:`PyObject_GetAttr()` instead." msgstr "" +"Notez que les exceptions qui surviennent pendant l'appel de la méthode :meth:" +"`__getitem__` seront supprimées. Pour obtenir le rapport d'erreur, utilisez " +"plutôt :c:func:`PyObject_GetItem()`." -#: ../Doc/c-api/object.rst:47 +#: c-api/object.rst:47 msgid "" "Note that exceptions which occur while calling :meth:`__getattr__` and :meth:" "`__getattribute__` methods and creating a temporary string object will get " @@ -75,27 +79,29 @@ msgid "" "instead." msgstr "" -#: ../Doc/c-api/object.rst:55 +#: c-api/object.rst:55 +#, fuzzy msgid "" "Retrieve an attribute named *attr_name* from object *o*. Returns the " -"attribute value on success, or *NULL* on failure. This is the equivalent of " -"the Python expression ``o.attr_name``." +"attribute value on success, or ``NULL`` on failure. This is the equivalent " +"of the Python expression ``o.attr_name``." msgstr "" "Récupère l'attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " "l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " "l'expression Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:62 +#: c-api/object.rst:62 +#, fuzzy msgid "" "Retrieve an attribute named *attr_name* from object *o*. Returns the " -"attribute value on success, or *NULL* on failure. This is the equivalent of " -"the Python expression ``o.attr_name``." +"attribute value on success, or ``NULL`` on failure. This is the equivalent " +"of the Python expression ``o.attr_name``." msgstr "" "Récupère un attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " "l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " "l'expression Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:69 +#: c-api/object.rst:69 msgid "" "Generic attribute getter function that is meant to be put into a type " "object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary " @@ -112,7 +118,7 @@ msgstr "" "attributs d'instance, contrairement aux autres descripteurs. Sinon, une :exc:" "`AttributeError` est levée." -#: ../Doc/c-api/object.rst:79 ../Doc/c-api/object.rst:90 +#: c-api/object.rst:90 msgid "" "Set the value of the attribute named *attr_name*, for object *o*, to the " "value *v*. Raise an exception and return ``-1`` on failure; return ``0`` on " @@ -123,23 +129,25 @@ msgstr "" "``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o." "attr_name = v``." -#: ../Doc/c-api/object.rst:84 +#: c-api/object.rst:84 +#, fuzzy msgid "" -"If *v* is *NULL*, the attribute is deleted, however this feature is " +"If *v* is ``NULL``, the attribute is deleted, however this feature is " "deprecated in favour of using :c:func:`PyObject_DelAttr`." msgstr "" "Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " "obsolète,nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." -#: ../Doc/c-api/object.rst:95 +#: c-api/object.rst:95 +#, fuzzy msgid "" -"If *v* is *NULL*, the attribute is deleted, however this feature is " +"If *v* is ``NULL``, the attribute is deleted, however this feature is " "deprecated in favour of using :c:func:`PyObject_DelAttrString`." msgstr "" "Si *v* est *NULL*, l'attribut est supprimé. Cette fonctionnalité est " "obsolète, nous vous conseillons d'utiliser :c:func:`PyObject_DelAttr`." -#: ../Doc/c-api/object.rst:101 +#: c-api/object.rst:101 msgid "" "Generic attribute setter and deleter function that is meant to be put into a " "type object's :c:member:`~PyTypeObject.tp_setattro` slot. It looks for a " @@ -159,7 +167,7 @@ msgstr "" "attr:`~object.__dict__` de l'objet (si présent). En cas de succès, ``0`` est " "renvoyé, sinon une :exc:`AttributeError` est levée et ``-1`` est renvoyé." -#: ../Doc/c-api/object.rst:113 ../Doc/c-api/object.rst:119 +#: c-api/object.rst:119 msgid "" "Delete attribute named *attr_name*, for object *o*. Returns ``-1`` on " "failure. This is the equivalent of the Python statement ``del o.attr_name``." @@ -168,7 +176,7 @@ msgstr "" "cas d'échec. Ceci est l'équivalent de l'expression Python ``del o." "attr_name``." -#: ../Doc/c-api/object.rst:125 +#: c-api/object.rst:125 msgid "" "A generic implementation for the getter of a ``__dict__`` descriptor. It " "creates the dictionary if necessary." @@ -176,7 +184,7 @@ msgstr "" "Une implémentation générique de l'accesseur d'un descripteur d'un " "``__dict__``. Crée le dictionnaire si nécessaire." -#: ../Doc/c-api/object.rst:133 +#: c-api/object.rst:133 msgid "" "A generic implementation for the setter of a ``__dict__`` descriptor. This " "implementation does not allow the dictionary to be deleted." @@ -184,14 +192,15 @@ msgstr "" "Une implémentation générique du mutateur d'un descripteur de ``__dict__``. " "Cette implémentation n'autorise pas la suppression du dictionnaire." -#: ../Doc/c-api/object.rst:141 +#: c-api/object.rst:141 +#, fuzzy msgid "" "Compare the values of *o1* and *o2* using the operation specified by *opid*, " "which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" "`Py_NE`, :const:`Py_GT`, or :const:`Py_GE`, corresponding to ``<``, ``<=``, " "``==``, ``!=``, ``>``, or ``>=`` respectively. This is the equivalent of the " "Python expression ``o1 op o2``, where ``op`` is the operator corresponding " -"to *opid*. Returns the value of the comparison on success, or *NULL* on " +"to *opid*. Returns the value of the comparison on success, or ``NULL`` on " "failure." msgstr "" "Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " @@ -202,7 +211,7 @@ msgstr "" "*opid*. Renvoie la valeur de la comparaison en cas de succès, ou *NULL* en " "cas d'échec." -#: ../Doc/c-api/object.rst:151 +#: c-api/object.rst:151 msgid "" "Compare the values of *o1* and *o2* using the operation specified by *opid*, " "which must be one of :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:" @@ -220,7 +229,7 @@ msgstr "" "l'équivalent de l'expression Python ``o1 op o2``, où ``op`` est l'opérateur " "correspondant à *opid*." -#: ../Doc/c-api/object.rst:160 +#: c-api/object.rst:160 msgid "" "If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " "will always return ``1`` for :const:`Py_EQ` and ``0`` for :const:`Py_NE`." @@ -228,18 +237,20 @@ msgstr "" "Si *o1* et *o2* sont le même objet, :c:func:`PyObject_RichCompareBool` " "renvoie toujours ``1`` pour :const:`Py_EQ` et ``0`` pour :const:`Py_NE`." -#: ../Doc/c-api/object.rst:167 +#: c-api/object.rst:167 +#, fuzzy msgid "" "Compute a string representation of object *o*. Returns the string " -"representation on success, *NULL* on failure. This is the equivalent of the " -"Python expression ``repr(o)``. Called by the :func:`repr` built-in function." +"representation on success, ``NULL`` on failure. This is the equivalent of " +"the Python expression ``repr(o)``. Called by the :func:`repr` built-in " +"function." msgstr "" "Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " "la représentation en chaîne de caractères en cas de succès, *NULL* en cas " "d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé " "par la fonction native :func:`repr`." -#: ../Doc/c-api/object.rst:171 ../Doc/c-api/object.rst:195 +#: c-api/object.rst:195 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -247,7 +258,7 @@ msgstr "" "Cette fonction inclut maintenant une assertion de débogage afin d'assurer " "qu'elle ne passe pas sous silence une exception active." -#: ../Doc/c-api/object.rst:179 +#: c-api/object.rst:179 msgid "" "As :c:func:`PyObject_Repr`, compute a string representation of object *o*, " "but escape the non-ASCII characters in the string returned by :c:func:" @@ -257,17 +268,18 @@ msgid "" msgstr "" "Comme :c:Func:`PyObject_Repr`, calcule une représentation en chaîne de " "caractères de l'objet *o*, mais échappe les caractères non ASCII dans la " -"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, ``" -"\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle " +"chaîne de caractères renvoyée par :c:Func:`PyObject_Repr` avec' ``\\x``, " +"``\\u`` ou ``\\U``. Cela génère une chaîne de caractères similaire à celle " "renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction " "native :func:`ascii`." -#: ../Doc/c-api/object.rst:190 +#: c-api/object.rst:190 +#, fuzzy msgid "" "Compute a string representation of object *o*. Returns the string " -"representation on success, *NULL* on failure. This is the equivalent of the " -"Python expression ``str(o)``. Called by the :func:`str` built-in function " -"and, therefore, by the :func:`print` function." +"representation on success, ``NULL`` on failure. This is the equivalent of " +"the Python expression ``str(o)``. Called by the :func:`str` built-in " +"function and, therefore, by the :func:`print` function." msgstr "" "Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " "la représentation en chaîne de caractères en cas de succès, *NULL* en cas " @@ -275,12 +287,14 @@ msgstr "" "par la fonction native :func:`str`, et, par conséquent, par la fonction :" "func:`print`." -#: ../Doc/c-api/object.rst:203 +#: c-api/object.rst:203 +#, fuzzy msgid "" -"Compute a bytes representation of object *o*. *NULL* is returned on failure " -"and a bytes object on success. This is equivalent to the Python expression " -"``bytes(o)``, when *o* is not an integer. Unlike ``bytes(o)``, a TypeError " -"is raised when *o* is an integer instead of a zero-initialized bytes object." +"Compute a bytes representation of object *o*. ``NULL`` is returned on " +"failure and a bytes object on success. This is equivalent to the Python " +"expression ``bytes(o)``, when *o* is not an integer. Unlike ``bytes(o)``, a " +"TypeError is raised when *o* is an integer instead of a zero-initialized " +"bytes object." msgstr "" "Calcule une représentation en octets de l'objet *o*. *NULL* est renvoyé en " "cas d'échec, un objet séquence d'octets est renvoyé en cas de succès. Ceci " @@ -288,7 +302,7 @@ msgstr "" "entier. Contrairement à ``bytes(o)``, une exception *TypeError* est levée " "lorsque *o* est un entier au lieu d'un objet octet initialisé avec des zéros." -#: ../Doc/c-api/object.rst:212 +#: c-api/object.rst:212 msgid "" "Return ``1`` if the class *derived* is identical to or derived from the " "class *cls*, otherwise return ``0``. In case of an error, return ``-1``." @@ -296,7 +310,7 @@ msgstr "" "Renvoie ``1`` si la classe *derived* est identique à ou dérivée de la classe " "*cls*, renvoie ``0`` sinon. En cas d'erreur, renvoie ``-1``." -#: ../Doc/c-api/object.rst:215 ../Doc/c-api/object.rst:234 +#: c-api/object.rst:234 msgid "" "If *cls* is a tuple, the check will be done against every entry in *cls*. " "The result will be ``1`` when at least one of the checks returns ``1``, " @@ -306,7 +320,7 @@ msgstr "" "Le résultat sera ``1`` quand au moins une des vérifications renvoie ``1``, " "sinon ce sera ``0``." -#: ../Doc/c-api/object.rst:219 +#: c-api/object.rst:219 msgid "" "If *cls* has a :meth:`~class.__subclasscheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -318,7 +332,7 @@ msgstr "" "Sinon, *derived* est une sous-classe de *cls* si c'est une sous-classe " "directe ou indirecte, c'est-à-dire contenue dans ``cls.__mro__``." -#: ../Doc/c-api/object.rst:224 +#: c-api/object.rst:224 msgid "" "Normally only class objects, i.e. instances of :class:`type` or a derived " "class, are considered classes. However, objects can override this by having " @@ -329,7 +343,7 @@ msgstr "" "les objets peuvent surcharger cela en ayant un attribut :attr:`__bases__` " "(qui doit être un tuple de classes de bases)." -#: ../Doc/c-api/object.rst:231 +#: c-api/object.rst:231 msgid "" "Return ``1`` if *inst* is an instance of the class *cls* or a subclass of " "*cls*, or ``0`` if not. On error, returns ``-1`` and sets an exception." @@ -338,7 +352,7 @@ msgstr "" "classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et " "initialise une exception." -#: ../Doc/c-api/object.rst:238 +#: c-api/object.rst:238 msgid "" "If *cls* has a :meth:`~class.__instancecheck__` method, it will be called to " "determine the subclass status as described in :pep:`3119`. Otherwise, " @@ -349,7 +363,7 @@ msgstr "" "Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de " "*cls*." -#: ../Doc/c-api/object.rst:242 +#: c-api/object.rst:242 msgid "" "An instance *inst* can override what is considered its class by having a :" "attr:`__class__` attribute." @@ -357,7 +371,7 @@ msgstr "" "Une instance *inst* peut surcharger ce qui est considéré comme sa classe en " "ayant un attribut :attr:`__class__`." -#: ../Doc/c-api/object.rst:245 +#: c-api/object.rst:245 msgid "" "An object *cls* can override if it is considered a class, and what its base " "classes are, by having a :attr:`__bases__` attribute (which must be a tuple " @@ -367,7 +381,7 @@ msgstr "" "que ses classes de bases sont, en ayant un attribut :attr:`__bases__` (qui " "doit être un tuple des classes de base)." -#: ../Doc/c-api/object.rst:252 +#: c-api/object.rst:252 msgid "" "Determine if the object *o* is callable. Return ``1`` if the object is " "callable and ``0`` otherwise. This function always succeeds." @@ -375,7 +389,7 @@ msgstr "" "Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et " "``0`` sinon. Cette fonction réussit toujours." -#: ../Doc/c-api/object.rst:258 +#: c-api/object.rst:258 msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " "*args*, and named arguments given by the dictionary *kwargs*." @@ -383,161 +397,175 @@ msgstr "" "Appelle un objet Python appelable *callable*, avec des arguments donnés par " "le tuple *args*, et des arguments nommés donnés par le dictionnaire *kwargs*." -#: ../Doc/c-api/object.rst:261 +#: c-api/object.rst:261 +#, fuzzy msgid "" -"*args* must not be *NULL*, use an empty tuple if no arguments are needed. If " -"no named arguments are needed, *kwargs* can be *NULL*." +"*args* must not be ``NULL``, use an empty tuple if no arguments are needed. " +"If no named arguments are needed, *kwargs* can be ``NULL``." msgstr "" "*args* ne doit pas être égal à *NULL*, utilisez un tuple vide si aucun " "argument n'est nécessaire. Si aucun argument nommé n'est nécessaire, " "*kwargs* peut être égal à *NULL*." -#: ../Doc/c-api/object.rst:264 ../Doc/c-api/object.rst:276 -#: ../Doc/c-api/object.rst:288 ../Doc/c-api/object.rst:308 -#: ../Doc/c-api/object.rst:327 ../Doc/c-api/object.rst:341 -#: ../Doc/c-api/object.rst:365 +#: c-api/object.rst:276 c-api/object.rst:308 c-api/object.rst:341 +#: c-api/object.rst:365 +#, fuzzy msgid "" "Return the result of the call on success, or raise an exception and return " -"*NULL* on failure." +"``NULL`` on failure." msgstr "" "Renvoie le résultat de l'appel en cas de succès, ou lève une exception et " "renvoie *NULL* en cas d'échec." -#: ../Doc/c-api/object.rst:267 +#: c-api/object.rst:267 msgid "" "This is the equivalent of the Python expression: ``callable(*args, " "**kwargs)``." msgstr "" "Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``." -#: ../Doc/c-api/object.rst:273 +#: c-api/object.rst:273 +#, fuzzy msgid "" "Call a callable Python object *callable*, with arguments given by the tuple " -"*args*. If no arguments are needed, then *args* can be *NULL*." +"*args*. If no arguments are needed, then *args* can be ``NULL``." msgstr "" "Appelle un objet Python appelable *callable*, avec des arguments donnés par " "le tuple *args*. Si aucun argument n'est nécessaire, alors *args* peut être " "égal à *NULL*." -#: ../Doc/c-api/object.rst:279 ../Doc/c-api/object.rst:291 +#: c-api/object.rst:291 msgid "This is the equivalent of the Python expression: ``callable(*args)``." msgstr "Ceci est l'équivalent de l'expression Python : ``callable(*args)``." -#: ../Doc/c-api/object.rst:284 +#: c-api/object.rst:284 +#, fuzzy msgid "" "Call a callable Python object *callable*, with a variable number of C " "arguments. The C arguments are described using a :c:func:`Py_BuildValue` " -"style format string. The format can be *NULL*, indicating that no arguments " -"are provided." +"style format string. The format can be ``NULL``, indicating that no " +"arguments are provided." msgstr "" "Appelle un objet Python appelable, avec un nombre variable d'arguments C. " "Les arguments C sont décrits par une chaîne de caractères de format de type :" "c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " "argument n'est donné." -#: ../Doc/c-api/object.rst:293 +#: c-api/object.rst:293 msgid "" -"Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" +"Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallFunctionObjArgs` is a faster alternative." msgstr "" -#: ../Doc/c-api/object.rst:296 +#: c-api/object.rst:296 msgid "The type of *format* was changed from ``char *``." msgstr "" -#: ../Doc/c-api/object.rst:302 +#: c-api/object.rst:302 msgid "" "Call the method named *name* of object *obj* with a variable number of C " "arguments. The C arguments are described by a :c:func:`Py_BuildValue` " "format string that should produce a tuple." msgstr "" -#: ../Doc/c-api/object.rst:306 -msgid "The format can be *NULL*, indicating that no arguments are provided." +#: c-api/object.rst:306 +msgid "The format can be ``NULL``, indicating that no arguments are provided." msgstr "" -#: ../Doc/c-api/object.rst:311 +#: c-api/object.rst:311 msgid "" "This is the equivalent of the Python expression: ``obj.name(arg1, " "arg2, ...)``." msgstr "" -#: ../Doc/c-api/object.rst:314 +#: c-api/object.rst:314 msgid "" -"Note that if you only pass :c:type:`PyObject \\*` args, :c:func:" +"Note that if you only pass :c:type:`PyObject *` args, :c:func:" "`PyObject_CallMethodObjArgs` is a faster alternative." msgstr "" -#: ../Doc/c-api/object.rst:317 +#: c-api/object.rst:317 msgid "The types of *name* and *format* were changed from ``char *``." msgstr "" -#: ../Doc/c-api/object.rst:323 +#: c-api/object.rst:323 +#, fuzzy msgid "" "Call a callable Python object *callable*, with a variable number of :c:type:" -"`PyObject\\*` arguments. The arguments are provided as a variable number of " -"parameters followed by *NULL*." +"`PyObject*` arguments. The arguments are provided as a variable number of " +"parameters followed by ``NULL``." msgstr "" +"Appelle un objet Python appelable, avec un nombre variable d'arguments C. " +"Les arguments C sont décrits par une chaîne de caractères de format de type :" +"c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " +"argument n'est donné." -#: ../Doc/c-api/object.rst:330 +#: c-api/object.rst:330 +#, fuzzy msgid "" "This is the equivalent of the Python expression: ``callable(arg1, " "arg2, ...)``." msgstr "" +"Ceci est l'équivalent de l'expression Python : ``callable(*args, **kwargs)``." -#: ../Doc/c-api/object.rst:336 +#: c-api/object.rst:336 +#, fuzzy msgid "" "Calls a method of the Python object *obj*, where the name of the method is " "given as a Python string object in *name*. It is called with a variable " -"number of :c:type:`PyObject\\*` arguments. The arguments are provided as a " -"variable number of parameters followed by *NULL*." +"number of :c:type:`PyObject*` arguments. The arguments are provided as a " +"variable number of parameters followed by ``NULL``." msgstr "" +"Appelle un objet Python appelable, avec un nombre variable d'arguments C. " +"Les arguments C sont décrits par une chaîne de caractères de format de type :" +"c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant qu'aucun " +"argument n'est donné." -#: ../Doc/c-api/object.rst:347 +#: c-api/object.rst:347 msgid "" "Call a callable Python object *callable*, using :c:data:`vectorcall " "` if possible." msgstr "" -#: ../Doc/c-api/object.rst:350 +#: c-api/object.rst:350 msgid "*args* is a C array with the positional arguments." msgstr "" -#: ../Doc/c-api/object.rst:352 +#: c-api/object.rst:352 msgid "" "*nargsf* is the number of positional arguments plus optionally the flag :" "const:`PY_VECTORCALL_ARGUMENTS_OFFSET` (see below). To get actual number of " "arguments, use :c:func:`PyVectorcall_NARGS(nargsf) `." msgstr "" -#: ../Doc/c-api/object.rst:357 +#: c-api/object.rst:357 msgid "" -"*kwnames* can be either NULL (no keyword arguments) or a tuple of keyword " -"names. In the latter case, the values of the keyword arguments are stored in " -"*args* after the positional arguments. The number of keyword arguments does " -"not influence *nargsf*." +"*kwnames* can be either ``NULL`` (no keyword arguments) or a tuple of " +"keyword names. In the latter case, the values of the keyword arguments are " +"stored in *args* after the positional arguments. The number of keyword " +"arguments does not influence *nargsf*." msgstr "" -#: ../Doc/c-api/object.rst:362 +#: c-api/object.rst:362 msgid "" "*kwnames* must contain only objects of type ``str`` (not a subclass), and " "all keys must be unique." msgstr "" -#: ../Doc/c-api/object.rst:368 +#: c-api/object.rst:368 msgid "" "This uses the vectorcall protocol if the callable supports it; otherwise, " "the arguments are converted to use :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: ../Doc/c-api/object.rst:374 ../Doc/c-api/object.rst:416 +#: c-api/object.rst:416 msgid "" "This function is provisional and expected to become public in Python 3.9, " "with a different name and, possibly, changed semantics. If you use the " "function, plan for updating your code for Python 3.9." msgstr "" -#: ../Doc/c-api/object.rst:382 +#: c-api/object.rst:382 msgid "" "If set in a vectorcall *nargsf* argument, the callee is allowed to " "temporarily change ``args[-1]``. In other words, *args* points to argument 1 " @@ -545,7 +573,7 @@ msgid "" "``args[-1]`` before returning." msgstr "" -#: ../Doc/c-api/object.rst:387 +#: c-api/object.rst:387 msgid "" "Whenever they can do so cheaply (without additional allocation), callers are " "encouraged to use :const:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " @@ -553,20 +581,20 @@ msgid "" "include a prepended *self* argument) cheaply." msgstr "" -#: ../Doc/c-api/object.rst:396 +#: c-api/object.rst:396 msgid "" "Given a vectorcall *nargsf* argument, return the actual number of arguments. " "Currently equivalent to ``nargsf & ~PY_VECTORCALL_ARGUMENTS_OFFSET``." msgstr "" -#: ../Doc/c-api/object.rst:404 +#: c-api/object.rst:404 msgid "" "Same as :c:func:`_PyObject_Vectorcall` except that the keyword arguments are " -"passed as a dictionary in *kwdict*. This may be *NULL* if there are no " +"passed as a dictionary in *kwdict*. This may be ``NULL`` if there are no " "keyword arguments." msgstr "" -#: ../Doc/c-api/object.rst:408 +#: c-api/object.rst:408 msgid "" "For callables supporting :c:data:`vectorcall `, the arguments are internally converted to the " @@ -575,19 +603,19 @@ msgid "" "already has a dictionary ready to use." msgstr "" -#: ../Doc/c-api/object.rst:427 +#: c-api/object.rst:427 msgid "" "Compute and return the hash value of an object *o*. On failure, return " "``-1``. This is the equivalent of the Python expression ``hash(o)``." msgstr "" -#: ../Doc/c-api/object.rst:430 +#: c-api/object.rst:430 msgid "" "The return type is now Py_hash_t. This is a signed integer the same size as " "Py_ssize_t." msgstr "" -#: ../Doc/c-api/object.rst:437 +#: c-api/object.rst:437 msgid "" "Set a :exc:`TypeError` indicating that ``type(o)`` is not hashable and " "return ``-1``. This function receives special treatment when stored in a " @@ -595,38 +623,38 @@ msgid "" "that it is not hashable." msgstr "" -#: ../Doc/c-api/object.rst:445 +#: c-api/object.rst:445 msgid "" "Returns ``1`` if the object *o* is considered to be true, and ``0`` " "otherwise. This is equivalent to the Python expression ``not not o``. On " "failure, return ``-1``." msgstr "" -#: ../Doc/c-api/object.rst:452 +#: c-api/object.rst:452 msgid "" "Returns ``0`` if the object *o* is considered to be true, and ``1`` " "otherwise. This is equivalent to the Python expression ``not o``. On " "failure, return ``-1``." msgstr "" -#: ../Doc/c-api/object.rst:461 +#: c-api/object.rst:461 msgid "" -"When *o* is non-*NULL*, returns a type object corresponding to the object " +"When *o* is non-``NULL``, returns a type object corresponding to the object " "type of object *o*. On failure, raises :exc:`SystemError` and returns " -"*NULL*. This is equivalent to the Python expression ``type(o)``. This " +"``NULL``. This is equivalent to the Python expression ``type(o)``. This " "function increments the reference count of the return value. There's really " "no reason to use this function instead of the common expression ``o-" -">ob_type``, which returns a pointer of type :c:type:`PyTypeObject\\*`, " -"except when the incremented reference count is needed." +">ob_type``, which returns a pointer of type :c:type:`PyTypeObject*`, except " +"when the incremented reference count is needed." msgstr "" -#: ../Doc/c-api/object.rst:472 +#: c-api/object.rst:472 msgid "" "Return true if the object *o* is of type *type* or a subtype of *type*. " -"Both parameters must be non-*NULL*." +"Both parameters must be non-``NULL``." msgstr "" -#: ../Doc/c-api/object.rst:481 +#: c-api/object.rst:481 msgid "" "Return the length of object *o*. If the object *o* provides either the " "sequence and mapping protocols, the sequence length is returned. On error, " @@ -634,7 +662,7 @@ msgid "" "``len(o)``." msgstr "" -#: ../Doc/c-api/object.rst:488 +#: c-api/object.rst:488 msgid "" "Return an estimated length for the object *o*. First try to return its " "actual length, then an estimate using :meth:`~object.__length_hint__`, and " @@ -642,39 +670,52 @@ msgid "" "equivalent to the Python expression ``operator.length_hint(o, default)``." msgstr "" -#: ../Doc/c-api/object.rst:498 +#: c-api/object.rst:498 +#, fuzzy msgid "" -"Return element of *o* corresponding to the object *key* or *NULL* on " +"Return element of *o* corresponding to the object *key* or ``NULL`` on " "failure. This is the equivalent of the Python expression ``o[key]``." msgstr "" +"Récupère un attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " +"l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est équivalent à " +"l'expression Python ``o.attr_name``." -#: ../Doc/c-api/object.rst:504 +#: c-api/object.rst:504 +#, fuzzy msgid "" "Map the object *key* to the value *v*. Raise an exception and return ``-1`` " "on failure; return ``0`` on success. This is the equivalent of the Python " -"statement ``o[key] = v``." +"statement ``o[key] = v``. This function *does not* steal a reference to *v*." msgstr "" +"Définit la valeur de l'attribut nommé *attr_name*, pour l'objet *o*, à la " +"valeur *v*. Lève une exception et renvoie ``-1`` en cas d'échec ; renvoie " +"``0`` en cas de succès. Ceci est équivalent à l'instruction Python ``o." +"attr_name = v``." -#: ../Doc/c-api/object.rst:511 +#: c-api/object.rst:512 +#, fuzzy msgid "" "Remove the mapping for the object *key* from the object *o*. Return ``-1`` " "on failure. This is equivalent to the Python statement ``del o[key]``." msgstr "" +"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " +"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " +"``del o[key]``." -#: ../Doc/c-api/object.rst:517 +#: c-api/object.rst:518 msgid "" "This is equivalent to the Python expression ``dir(o)``, returning a " "(possibly empty) list of strings appropriate for the object argument, or " -"*NULL* if there was an error. If the argument is *NULL*, this is like the " -"Python ``dir()``, returning the names of the current locals; in this case, " -"if no execution frame is active then *NULL* is returned but :c:func:" +"``NULL`` if there was an error. If the argument is ``NULL``, this is like " +"the Python ``dir()``, returning the names of the current locals; in this " +"case, if no execution frame is active then ``NULL`` is returned but :c:func:" "`PyErr_Occurred` will return false." msgstr "" -#: ../Doc/c-api/object.rst:526 +#: c-api/object.rst:527 msgid "" "This is equivalent to the Python expression ``iter(o)``. It returns a new " "iterator for the object argument, or the object itself if the object is " -"already an iterator. Raises :exc:`TypeError` and returns *NULL* if the " +"already an iterator. Raises :exc:`TypeError` and returns ``NULL`` if the " "object cannot be iterated." msgstr "" diff --git a/c-api/objimpl.po b/c-api/objimpl.po index 178166cd8c..ce82e6c035 100644 --- a/c-api/objimpl.po +++ b/c-api/objimpl.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-10-18 09:23+0200\n" diff --git a/c-api/refcounting.po b/c-api/refcounting.po index 5c00368105..d06afb2a8f 100644 --- a/c-api/refcounting.po +++ b/c-api/refcounting.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -23,25 +23,30 @@ msgid "" "The macros in this section are used for managing reference counts of Python " "objects." msgstr "" +"Les macros dans cette section permettent de gérer le compteur de références " +"des objets Python." #: ../Doc/c-api/refcounting.rst:16 msgid "" "Increment the reference count for object *o*. The object must not be " -"*NULL*; if you aren't sure that it isn't *NULL*, use :c:func:`Py_XINCREF`." +"``NULL``; if you aren't sure that it isn't ``NULL``, use :c:func:" +"`Py_XINCREF`." msgstr "" #: ../Doc/c-api/refcounting.rst:22 msgid "" -"Increment the reference count for object *o*. The object may be *NULL*, in " -"which case the macro has no effect." +"Increment the reference count for object *o*. The object may be ``NULL``, " +"in which case the macro has no effect." msgstr "" +"Incrémente le compteur de références de l'objet *o*. La macro n'a pas " +"d'effet si l'objet est ``NULL``." #: ../Doc/c-api/refcounting.rst:28 msgid "" "Decrement the reference count for object *o*. The object must not be " -"*NULL*; if you aren't sure that it isn't *NULL*, use :c:func:`Py_XDECREF`. " -"If the reference count reaches zero, the object's type's deallocation " -"function (which must not be *NULL*) is invoked." +"``NULL``; if you aren't sure that it isn't ``NULL``, use :c:func:" +"`Py_XDECREF`. If the reference count reaches zero, the object's type's " +"deallocation function (which must not be ``NULL``) is invoked." msgstr "" #: ../Doc/c-api/refcounting.rst:35 @@ -56,29 +61,50 @@ msgid "" "update the list data structure, and then call :c:func:`Py_DECREF` for the " "temporary variable." msgstr "" +"La fonction de dés-allocation peut invoquer du code Python arbitraire (par " +"exemple quand une instance d'une classe avec une méthode :meth:`__del__` est " +"supprimée). Le code exécuté a accès à toutes les variables Python globales " +"mais les exceptions lors de l'exécution de ce code ne sont pas propagées. " +"Tous les objets qui peuvent être atteints à partir d'une variable globale " +"doivent être dans un état cohérent avant d'appeler :c:func:`Py_DECREF`. Par " +"exemple le code pour supprimer un élément d'une liste doit copier une " +"référence à l'objet dans une variable temporaire, mettre à jour la liste, et " +"enfin appeler :c:func:`Py_DECREF` avec la variable temporaire." #: ../Doc/c-api/refcounting.rst:47 msgid "" -"Decrement the reference count for object *o*. The object may be *NULL*, in " -"which case the macro has no effect; otherwise the effect is the same as for :" -"c:func:`Py_DECREF`, and the same warning applies." +"Decrement the reference count for object *o*. The object may be ``NULL``, " +"in which case the macro has no effect; otherwise the effect is the same as " +"for :c:func:`Py_DECREF`, and the same warning applies." msgstr "" +"Décrémente le compteur de références de l'objet *o*. L'objet peut être " +"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le " +"comportement est identique à :c:func:`Py_DECREF` et les mêmes avertissements " +"sont de rigueur." #: ../Doc/c-api/refcounting.rst:54 msgid "" -"Decrement the reference count for object *o*. The object may be *NULL*, in " -"which case the macro has no effect; otherwise the effect is the same as for :" -"c:func:`Py_DECREF`, except that the argument is also set to *NULL*. The " -"warning for :c:func:`Py_DECREF` does not apply with respect to the object " -"passed because the macro carefully uses a temporary variable and sets the " -"argument to *NULL* before decrementing its reference count." +"Decrement the reference count for object *o*. The object may be ``NULL``, " +"in which case the macro has no effect; otherwise the effect is the same as " +"for :c:func:`Py_DECREF`, except that the argument is also set to ``NULL``. " +"The warning for :c:func:`Py_DECREF` does not apply with respect to the " +"object passed because the macro carefully uses a temporary variable and sets " +"the argument to ``NULL`` before decrementing its reference count." msgstr "" +"Décrémente le compteur de références de l'objet *o*. L'objet peut être " +"``NULL``, dans ce cas la macro n'a pas d'effet. Dans le cas contraire le " +"comportement est identique à :c:func:`Py_DECREF`, puis l'argument est mis à " +"``NULL``. L'avertissement au sujet de l'objet passé en argument à :c:func:" +"`Py_DECREF` ne s'applique pas car la macro utilise une variable temporaire " +"et met l'objet à ``NULL`` avant de décrémenter le compteur de références." #: ../Doc/c-api/refcounting.rst:61 msgid "" "It is a good idea to use this macro whenever decrementing the reference " "count of an object that might be traversed during garbage collection." msgstr "" +"Il est recommandé d'utiliser cette macro lorsqu'on décrémente le compteur de " +"référence d'un objet qui peut être parcouru par le ramasse-miette." #: ../Doc/c-api/refcounting.rst:65 msgid "" @@ -94,3 +120,7 @@ msgid "" "core: :c:func:`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:" "`_Py_NewReference`, as well as the global variable :c:data:`_Py_RefTotal`." msgstr "" +"Les fonctions ou macros suivantes doivent être uniquement utilisées au sein " +"de l'interpréteur et ne font pas partie de l'API publique : :c:func:" +"`_Py_Dealloc`, :c:func:`_Py_ForgetReference`, :c:func:`_Py_NewReference`, " +"ainsi que la variable globale :c:data:`_Py_RefTotal`." diff --git a/c-api/reflection.po b/c-api/reflection.po index 3fc439a99e..c6fba04b1f 100644 --- a/c-api/reflection.po +++ b/c-api/reflection.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-02-26 12:01+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/reflection.rst:6 +#: c-api/reflection.rst:6 msgid "Reflection" msgstr "Réflexion" -#: ../Doc/c-api/reflection.rst:10 +#: c-api/reflection.rst:10 msgid "" "Return a dictionary of the builtins in the current execution frame, or the " "interpreter of the thread state if no frame is currently executing." @@ -27,35 +27,38 @@ msgstr "" "d'exécution, ou si aucune *frame* n'est exécutée, les fonctions natives du " "*thread* indiqué par le *thread state*." -#: ../Doc/c-api/reflection.rst:16 +#: c-api/reflection.rst:16 +#, fuzzy msgid "" "Return a dictionary of the local variables in the current execution frame, " -"or *NULL* if no frame is currently executing." +"or ``NULL`` if no frame is currently executing." msgstr "" "Renvoie un dictionnaire des variables locales de la *frame* en cours " "d'exécution, ou *NULL* si aucune *frame* n'est en cours d'exécution." -#: ../Doc/c-api/reflection.rst:22 +#: c-api/reflection.rst:22 +#, fuzzy msgid "" "Return a dictionary of the global variables in the current execution frame, " -"or *NULL* if no frame is currently executing." +"or ``NULL`` if no frame is currently executing." msgstr "" "Renvoie un dictionnaire des variables globales de la *frame* en cours " "d'exécution ou *NULL* si aucune *frame* n'est en cours d'exécution." -#: ../Doc/c-api/reflection.rst:28 +#: c-api/reflection.rst:28 +#, fuzzy msgid "" -"Return the current thread state's frame, which is *NULL* if no frame is " +"Return the current thread state's frame, which is ``NULL`` if no frame is " "currently executing." msgstr "" "Renvoie la *frame* actuelle selon le *thread state*, qui est *NULL* si " "aucune *frame* n'est en cours d'exécution." -#: ../Doc/c-api/reflection.rst:34 +#: c-api/reflection.rst:34 msgid "Return the line number that *frame* is currently executing." msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter" -#: ../Doc/c-api/reflection.rst:39 +#: c-api/reflection.rst:39 msgid "" "Return the name of *func* if it is a function, class or instance object, " "else the name of *func*\\s type." @@ -63,7 +66,7 @@ msgstr "" "Renvoie le nom de *func* s'il s'agit d'une fonction, d'une classe ou d'un " "objet d'instance, sinon le nom du type de *func*" -#: ../Doc/c-api/reflection.rst:45 +#: c-api/reflection.rst:45 msgid "" "Return a description string, depending on the type of *func*. Return values " "include \"()\" for functions and methods, \" constructor\", \" instance\", " @@ -72,6 +75,6 @@ msgid "" msgstr "" "Renvoie une description en chaîne de caractères, en fonction du type de " "*func*. Les valeurs renvoyées peuvent être ``\"()\"`` pour les fonction et " -"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" object" -"\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le " +"les méthodes, ``\\\" constructor\\\"``, ``\\\" instance\\\"``, ``\\\" " +"object\\\"``. Concaténé avec le résultat de :c:func:`PyEval_GetFuncName`, le " "résultat sera une description de *func*" diff --git a/c-api/sequence.po b/c-api/sequence.po index 35a1345343..de4fc1dc23 100644 --- a/c-api/sequence.po +++ b/c-api/sequence.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -28,47 +28,51 @@ msgid "" msgstr "" #: ../Doc/c-api/sequence.rst:23 +#, fuzzy msgid "" "Returns the number of objects in sequence *o* on success, and ``-1`` on " "failure. This is equivalent to the Python expression ``len(o)``." msgstr "" +"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " +"l'équivalent de l'expression Python ``len(o)``." #: ../Doc/c-api/sequence.rst:29 msgid "" -"Return the concatenation of *o1* and *o2* on success, and *NULL* on failure. " -"This is the equivalent of the Python expression ``o1 + o2``." +"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:35 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``." +"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:41 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``." +"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:48 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``." +"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:55 msgid "" -"Return the *i*\\ th element of *o*, or *NULL* on failure. This is the " +"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:61 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]``." +"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:67 @@ -81,8 +85,8 @@ msgstr "" #: ../Doc/c-api/sequence.rst:72 msgid "" -"If *v* is *NULL*, the element is deleted, however this feature is deprecated " -"in favour of using :c:func:`PySequence_DelItem`." +"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:78 @@ -126,14 +130,14 @@ msgstr "" #: ../Doc/c-api/sequence.rst:116 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 " +"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:125 msgid "" "Return a tuple object with the same contents as the sequence or iterable " -"*o*, or *NULL* on failure. If *o* is a tuple, a new reference will be " +"*o*, or ``NULL`` on failure. If *o* is a tuple, a new reference will be " "returned, otherwise a tuple will be constructed with the appropriate " "contents. This is equivalent to the Python expression ``tuple(o)``." msgstr "" @@ -143,7 +147,7 @@ msgid "" "Return the sequence or iterable *o* as an object usable by the other " "``PySequence_Fast*`` family of functions. If the object is not a sequence or " "iterable, raises :exc:`TypeError` with *m* as the message text. Returns " -"*NULL* on failure." +"``NULL`` on failure." msgstr "" #: ../Doc/c-api/sequence.rst:138 @@ -162,7 +166,7 @@ msgstr "" #: ../Doc/c-api/sequence.rst:148 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 " +"`PySequence_Fast` and that *o* is not ``NULL``. The size can also be gotten " "by calling :c:func:`PySequence_Size` on *o*, but :c:func:" "`PySequence_Fast_GET_SIZE` is faster because it can assume *o* is a list or " "tuple." @@ -171,13 +175,13 @@ msgstr "" #: ../Doc/c-api/sequence.rst:157 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." +"func:`PySequence_Fast`, *o* is not ``NULL``, and that *i* is within bounds." msgstr "" #: ../Doc/c-api/sequence.rst:163 msgid "" "Return the underlying array of PyObject pointers. Assumes that *o* was " -"returned by :c:func:`PySequence_Fast` and *o* is not *NULL*." +"returned by :c:func:`PySequence_Fast` and *o* is not ``NULL``." msgstr "" #: ../Doc/c-api/sequence.rst:166 @@ -189,7 +193,7 @@ msgstr "" #: ../Doc/c-api/sequence.rst:173 msgid "" -"Return the *i*\\ th element of *o* or *NULL* on failure. Faster form of :c:" +"Return the *i*\\ th element of *o* or ``NULL`` on failure. Faster form of :c:" "func:`PySequence_GetItem` but without checking that :c:func:" "`PySequence_Check` on *o* is true and without adjustment for negative " "indices." diff --git a/c-api/set.po b/c-api/set.po index c2e658a331..6631fa55c6 100644 --- a/c-api/set.po +++ b/c-api/set.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -45,16 +45,22 @@ msgid "" msgstr "" #: ../Doc/c-api/set.rst:40 +#, fuzzy msgid "" "This is an instance of :c:type:`PyTypeObject` representing the Python :class:" "`set` type." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :" +"class:`code`." #: ../Doc/c-api/set.rst:46 +#, fuzzy msgid "" "This is an instance of :c:type:`PyTypeObject` representing the Python :class:" "`frozenset` type." msgstr "" +"C'est une instance de :c:type:`PyTypeObject` représentant le type Python :" +"class:`code`." #: ../Doc/c-api/set.rst:49 msgid "" @@ -94,18 +100,18 @@ msgstr "" #: ../Doc/c-api/set.rst:82 msgid "" "Return a new :class:`set` containing objects returned by the *iterable*. " -"The *iterable* may be *NULL* to create a new empty set. Return the new set " -"on success or *NULL* on failure. Raise :exc:`TypeError` if *iterable* is " -"not actually iterable. The constructor is also useful for copying a set " +"The *iterable* may be ``NULL`` to create a new empty set. Return the new " +"set on success or ``NULL`` on failure. Raise :exc:`TypeError` if *iterable* " +"is not actually iterable. The constructor is also useful for copying a set " "(``c=set(s)``)." msgstr "" #: ../Doc/c-api/set.rst:91 msgid "" "Return a new :class:`frozenset` containing objects returned by the " -"*iterable*. The *iterable* may be *NULL* to create a new empty frozenset. " -"Return the new set on success or *NULL* on failure. Raise :exc:`TypeError` " -"if *iterable* is not actually iterable." +"*iterable*. The *iterable* may be ``NULL`` to create a new empty frozenset. " +"Return the new set on success or ``NULL`` on failure. Raise :exc:" +"`TypeError` if *iterable* is not actually iterable." msgstr "" #: ../Doc/c-api/set.rst:97 @@ -166,9 +172,9 @@ msgstr "" #: ../Doc/c-api/set.rst:151 msgid "" "Return a new reference to an arbitrary object in the *set*, and removes the " -"object from the *set*. Return *NULL* on failure. Raise :exc:`KeyError` if " -"the set is empty. Raise a :exc:`SystemError` if *set* is not an instance of :" -"class:`set` or its subtype." +"object from the *set*. Return ``NULL`` on failure. Raise :exc:`KeyError` " +"if the set is empty. Raise a :exc:`SystemError` if *set* is not an instance " +"of :class:`set` or its subtype." msgstr "" #: ../Doc/c-api/set.rst:159 diff --git a/c-api/slice.po b/c-api/slice.po index 5481ed6c95..4f81430334 100644 --- a/c-api/slice.po +++ b/c-api/slice.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -15,8 +15,9 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" #: ../Doc/c-api/slice.rst:6 +#, fuzzy msgid "Slice Objects" -msgstr "" +msgstr "Objets tranches" #: ../Doc/c-api/slice.rst:11 msgid "" @@ -25,16 +26,16 @@ msgid "" msgstr "" #: ../Doc/c-api/slice.rst:17 -msgid "Return true if *ob* is a slice object; *ob* must not be *NULL*." +msgid "Return true if *ob* is a slice object; *ob* must not be ``NULL``." msgstr "" #: ../Doc/c-api/slice.rst:22 msgid "" "Return a new slice object with the given values. The *start*, *stop*, and " "*step* parameters are used as the values of the slice object attributes of " -"the same names. Any of the values may be *NULL*, in which case the ``None`` " -"will be used for the corresponding attribute. Return *NULL* if the new " -"object could not be allocated." +"the same names. Any of the values may be ``NULL``, in which case the " +"``None`` will be used for the corresponding attribute. Return ``NULL`` if " +"the new object could not be allocated." msgstr "" #: ../Doc/c-api/slice.rst:31 diff --git a/c-api/stable.po b/c-api/stable.po index 2eb5a69c62..68b52fe884 100644 --- a/c-api/stable.po +++ b/c-api/stable.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-10-04 12:26+0200\n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/stable.rst:7 +#: c-api/stable.rst:7 msgid "Stable Application Binary Interface" msgstr "ABI Stable" -#: ../Doc/c-api/stable.rst:9 +#: c-api/stable.rst:9 msgid "" "Traditionally, the C API of Python will change with every release. Most " "changes will be source-compatible, typically by only adding API, rather than " @@ -30,7 +30,7 @@ msgstr "" "API sont ajoutées, mais ni modifiées ni supprimées (bien que certaines " "interfaces puissent être supprimées, après avoir d'abord été dépréciées)." -#: ../Doc/c-api/stable.rst:14 +#: c-api/stable.rst:14 msgid "" "Unfortunately, the API compatibility does not extend to binary compatibility " "(the ABI). The reason is primarily the evolution of struct definitions, " @@ -51,13 +51,13 @@ msgstr "" "d'extension sont liés à un *pythonXY.dll* spécifique, ils est donc " "nécessaire de les recompiler pour les lier au nouveau DLL." -#: ../Doc/c-api/stable.rst:23 +#: c-api/stable.rst:23 msgid "" "Since Python 3.2, a subset of the API has been declared to guarantee a " -"stable ABI. Extension modules wishing to use this API (called \"limited API" -"\") need to define ``Py_LIMITED_API``. A number of interpreter details then " -"become hidden from the extension module; in return, a module is built that " -"works on any 3.x version (x>=2) without recompilation." +"stable ABI. Extension modules wishing to use this API (called \"limited " +"API\") need to define ``Py_LIMITED_API``. A number of interpreter details " +"then become hidden from the extension module; in return, a module is built " +"that works on any 3.x version (x>=2) without recompilation." msgstr "" "Depuis Python 3.2 il est garanti qu'une certaine partie de l'API gardera une " "ABI stable. Les modules d'extension souhaitant utiliser cette API (Appellée " @@ -66,7 +66,7 @@ msgstr "" "devient compatible avec toutes les versions de Python 3.x (x>=2) sans " "recompilation." -#: ../Doc/c-api/stable.rst:29 +#: c-api/stable.rst:29 msgid "" "In some cases, the stable ABI needs to be extended with new functions. " "Extension modules wishing to use these new APIs need to set " @@ -85,7 +85,7 @@ msgstr "" "ultérieures de Python, mais ne pourront pas se charger (dû à des symboles " "manquants) sur les versions plus anciennes." -#: ../Doc/c-api/stable.rst:36 +#: c-api/stable.rst:36 msgid "" "As of Python 3.2, the set of functions available to the limited API is " "documented in :pep:`384`. In the C API documentation, API elements that are " diff --git a/c-api/structures.po b/c-api/structures.po index 5fc5248d00..ada5b73acc 100644 --- a/c-api/structures.po +++ b/c-api/structures.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-06-19 22:32+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,18 +14,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/structures.rst:6 +#: c-api/structures.rst:6 msgid "Common Object Structures" msgstr "" -#: ../Doc/c-api/structures.rst:8 +#: c-api/structures.rst:8 msgid "" "There are a large number of structures which are used in the definition of " "object types for Python. This section describes these structures and how " "they are used." msgstr "" -#: ../Doc/c-api/structures.rst:12 +#: c-api/structures.rst:12 msgid "" "All Python objects ultimately share a small number of fields at the " "beginning of the object's representation in memory. These are represented " @@ -34,7 +34,7 @@ msgid "" "directly or indirectly, in the definition of all other Python objects." msgstr "" -#: ../Doc/c-api/structures.rst:21 +#: c-api/structures.rst:21 msgid "" "All object types are extensions of this type. This is a type which contains " "the information Python needs to treat a pointer to an object as an object. " @@ -45,7 +45,7 @@ msgid "" "macros :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." msgstr "" -#: ../Doc/c-api/structures.rst:33 +#: c-api/structures.rst:33 msgid "" "This is an extension of :c:type:`PyObject` that adds the :attr:`ob_size` " "field. This is only used for objects that have some notion of *length*. " @@ -54,240 +54,235 @@ msgid "" "and :c:macro:`Py_SIZE`." msgstr "" -#: ../Doc/c-api/structures.rst:42 +#: c-api/structures.rst:42 msgid "" "This is a macro used when declaring new types which represent objects " "without a varying length. The PyObject_HEAD macro expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:47 +#: c-api/structures.rst:47 msgid "See documentation of :c:type:`PyObject` above." msgstr "" -#: ../Doc/c-api/structures.rst:52 +#: c-api/structures.rst:52 msgid "" "This is a macro used when declaring new types which represent objects with a " "length that varies from instance to instance. The PyObject_VAR_HEAD macro " "expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:58 +#: c-api/structures.rst:58 msgid "See documentation of :c:type:`PyVarObject` above." msgstr "" -#: ../Doc/c-api/structures.rst:63 +#: c-api/structures.rst:63 msgid "" "This macro is used to access the :attr:`ob_type` member of a Python object. " "It expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:71 +#: c-api/structures.rst:71 msgid "" "This macro is used to access the :attr:`ob_refcnt` member of a Python " "object. It expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:80 +#: c-api/structures.rst:80 msgid "" "This macro is used to access the :attr:`ob_size` member of a Python object. " "It expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:88 +#: c-api/structures.rst:88 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyObject` type. This macro expands to::" msgstr "" -#: ../Doc/c-api/structures.rst:97 +#: c-api/structures.rst:97 msgid "" "This is a macro which expands to initialization values for a new :c:type:" "`PyVarObject` type, including the :attr:`ob_size` field. This macro expands " "to::" msgstr "" -#: ../Doc/c-api/structures.rst:107 +#: c-api/structures.rst:107 msgid "" "Type of the functions used to implement most Python callables in C. " -"Functions of this type take two :c:type:`PyObject\\*` parameters and return " -"one such value. If the return value is *NULL*, an exception shall have been " -"set. If not *NULL*, the return value is interpreted as the return value of " -"the function as exposed in Python. The function must return a new reference." +"Functions of this type take two :c:type:`PyObject*` parameters and return " +"one such value. If the return value is ``NULL``, an exception shall have " +"been set. If not ``NULL``, the return value is interpreted as the return " +"value of the function as exposed in Python. The function must return a new " +"reference." msgstr "" -#: ../Doc/c-api/structures.rst:117 +#: c-api/structures.rst:117 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_VARARGS | METH_KEYWORDS`." msgstr "" -#: ../Doc/c-api/structures.rst:123 +#: c-api/structures.rst:123 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL`." msgstr "" -#: ../Doc/c-api/structures.rst:129 +#: c-api/structures.rst:129 msgid "" "Type of the functions used to implement Python callables in C with " "signature :const:`METH_FASTCALL | METH_KEYWORDS`." msgstr "" -#: ../Doc/c-api/structures.rst:135 +#: c-api/structures.rst:135 msgid "" "Structure used to describe a method of an extension type. This structure " "has four fields:" msgstr "" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 -#: ../Doc/c-api/structures.rst:345 +#: c-api/structures.rst:279 c-api/structures.rst:345 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 -#: ../Doc/c-api/structures.rst:345 +#: c-api/structures.rst:279 c-api/structures.rst:345 msgid "C Type" msgstr "Type C" -#: ../Doc/c-api/structures.rst:139 ../Doc/c-api/structures.rst:279 -#: ../Doc/c-api/structures.rst:345 +#: c-api/structures.rst:279 c-api/structures.rst:345 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/structures.rst:141 +#: c-api/structures.rst:141 msgid ":attr:`ml_name`" -msgstr "" +msgstr ":attr:`ml_name`" -#: ../Doc/c-api/structures.rst:141 ../Doc/c-api/structures.rst:149 -#: ../Doc/c-api/structures.rst:281 ../Doc/c-api/structures.rst:294 -#: ../Doc/c-api/structures.rst:310 ../Doc/c-api/structures.rst:347 -#: ../Doc/c-api/structures.rst:355 +#: c-api/structures.rst:149 c-api/structures.rst:294 c-api/structures.rst:347 +#: c-api/structures.rst:355 msgid "const char \\*" msgstr "" -#: ../Doc/c-api/structures.rst:141 +#: c-api/structures.rst:141 msgid "name of the method" msgstr "" -#: ../Doc/c-api/structures.rst:143 +#: c-api/structures.rst:143 msgid ":attr:`ml_meth`" -msgstr "" +msgstr ":attr:`ml_meth`" -#: ../Doc/c-api/structures.rst:143 +#: c-api/structures.rst:143 msgid "PyCFunction" msgstr "PyCFunction" -#: ../Doc/c-api/structures.rst:143 +#: c-api/structures.rst:143 msgid "pointer to the C implementation" msgstr "" -#: ../Doc/c-api/structures.rst:146 +#: c-api/structures.rst:146 msgid ":attr:`ml_flags`" -msgstr "" +msgstr ":attr:`ml_flags`" -#: ../Doc/c-api/structures.rst:146 ../Doc/c-api/structures.rst:283 -#: ../Doc/c-api/structures.rst:290 ../Doc/c-api/structures.rst:306 +#: c-api/structures.rst:283 c-api/structures.rst:306 msgid "int" msgstr "*int*" -#: ../Doc/c-api/structures.rst:146 +#: c-api/structures.rst:146 msgid "flag bits indicating how the call should be constructed" msgstr "" -#: ../Doc/c-api/structures.rst:149 +#: c-api/structures.rst:149 msgid ":attr:`ml_doc`" -msgstr "" +msgstr ":attr:`ml_doc`" -#: ../Doc/c-api/structures.rst:149 ../Doc/c-api/structures.rst:294 +#: c-api/structures.rst:294 msgid "points to the contents of the docstring" msgstr "" -#: ../Doc/c-api/structures.rst:153 +#: c-api/structures.rst:153 msgid "" "The :attr:`ml_meth` is a C function pointer. The functions may be of " -"different types, but they always return :c:type:`PyObject\\*`. If the " +"different types, but they always return :c:type:`PyObject*`. If the " "function is not of the :c:type:`PyCFunction`, the compiler will require a " "cast in the method table. Even though :c:type:`PyCFunction` defines the " -"first parameter as :c:type:`PyObject\\*`, it is common that the method " +"first parameter as :c:type:`PyObject*`, it is common that the method " "implementation uses the specific C type of the *self* object." msgstr "" -#: ../Doc/c-api/structures.rst:160 +#: c-api/structures.rst:160 msgid "" "The :attr:`ml_flags` field is a bitfield which can include the following " "flags. The individual flags indicate either a calling convention or a " "binding convention." msgstr "" -#: ../Doc/c-api/structures.rst:164 +#: c-api/structures.rst:164 msgid "" "There are four basic calling conventions for positional arguments and two of " "them can be combined with :const:`METH_KEYWORDS` to support also keyword " "arguments. So there are a total of 6 calling conventions:" msgstr "" -#: ../Doc/c-api/structures.rst:170 +#: c-api/structures.rst:170 msgid "" "This is the typical calling convention, where the methods have the type :c:" -"type:`PyCFunction`. The function expects two :c:type:`PyObject\\*` values. " -"The first one is the *self* object for methods; for module functions, it is " -"the module object. The second parameter (often called *args*) is a tuple " -"object representing all arguments. This parameter is typically processed " -"using :c:func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." +"type:`PyCFunction`. The function expects two :c:type:`PyObject*` values. The " +"first one is the *self* object for methods; for module functions, it is the " +"module object. The second parameter (often called *args*) is a tuple object " +"representing all arguments. This parameter is typically processed using :c:" +"func:`PyArg_ParseTuple` or :c:func:`PyArg_UnpackTuple`." msgstr "" -#: ../Doc/c-api/structures.rst:180 +#: c-api/structures.rst:180 msgid "" "Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " "The function expects three parameters: *self*, *args*, *kwargs* where " -"*kwargs* is a dictionary of all the keyword arguments or possibly *NULL* if " -"there are no keyword arguments. The parameters are typically processed " +"*kwargs* is a dictionary of all the keyword arguments or possibly ``NULL`` " +"if there are no keyword arguments. The parameters are typically processed " "using :c:func:`PyArg_ParseTupleAndKeywords`." msgstr "" -#: ../Doc/c-api/structures.rst:189 +#: c-api/structures.rst:189 msgid "" "Fast calling convention supporting only positional arguments. The methods " "have the type :c:type:`_PyCFunctionFast`. The first parameter is *self*, the " -"second parameter is a C array of :c:type:`PyObject\\*` values indicating the " +"second parameter is a C array of :c:type:`PyObject*` values indicating the " "arguments and the third parameter is the number of arguments (the length of " "the array)." msgstr "" -#: ../Doc/c-api/structures.rst:195 ../Doc/c-api/structures.rst:210 +#: c-api/structures.rst:210 msgid "This is not part of the :ref:`limited API `." msgstr "" -#: ../Doc/c-api/structures.rst:202 +#: c-api/structures.rst:202 msgid "" "Extension of :const:`METH_FASTCALL` supporting also keyword arguments, with " "methods of type :c:type:`_PyCFunctionFastWithKeywords`. Keyword arguments " "are passed the same way as in the vectorcall protocol: there is an " -"additional fourth :c:type:`PyObject\\*` parameter which is a tuple " -"representing the names of the keyword arguments or possibly *NULL* if there " -"are no keywords. The values of the keyword arguments are stored in the " -"*args* array, after the positional arguments." +"additional fourth :c:type:`PyObject*` parameter which is a tuple " +"representing the names of the keyword arguments or possibly ``NULL`` if " +"there are no keywords. The values of the keyword arguments are stored in " +"the *args* array, after the positional arguments." msgstr "" -#: ../Doc/c-api/structures.rst:217 +#: c-api/structures.rst:217 msgid "" "Methods without parameters don't need to check whether arguments are given " "if they are listed with the :const:`METH_NOARGS` flag. They need to be of " "type :c:type:`PyCFunction`. The first parameter is typically named *self* " "and will hold a reference to the module or object instance. In all cases " -"the second parameter will be *NULL*." +"the second parameter will be ``NULL``." msgstr "" -#: ../Doc/c-api/structures.rst:226 +#: c-api/structures.rst:226 msgid "" "Methods with a single object argument can be listed with the :const:`METH_O` " "flag, instead of invoking :c:func:`PyArg_ParseTuple` with a ``\"O\"`` " "argument. They have the type :c:type:`PyCFunction`, with the *self* " -"parameter, and a :c:type:`PyObject\\*` parameter representing the single " +"parameter, and a :c:type:`PyObject*` parameter representing the single " "argument." msgstr "" -#: ../Doc/c-api/structures.rst:232 +#: c-api/structures.rst:232 msgid "" "These two constants are not used to indicate the calling convention but the " "binding when use with methods of classes. These may not be used for " @@ -295,27 +290,27 @@ msgid "" "any given method." msgstr "" -#: ../Doc/c-api/structures.rst:242 +#: c-api/structures.rst:242 msgid "" "The method will be passed the type object as the first parameter rather than " "an instance of the type. This is used to create *class methods*, similar to " "what is created when using the :func:`classmethod` built-in function." msgstr "" -#: ../Doc/c-api/structures.rst:252 +#: c-api/structures.rst:252 msgid "" -"The method will be passed *NULL* as the first parameter rather than an " +"The method will be passed ``NULL`` as the first parameter rather than an " "instance of the type. This is used to create *static methods*, similar to " "what is created when using the :func:`staticmethod` built-in function." msgstr "" -#: ../Doc/c-api/structures.rst:256 +#: c-api/structures.rst:256 msgid "" "One other constant controls whether a method is loaded in place of another " "definition with the same method name." msgstr "" -#: ../Doc/c-api/structures.rst:262 +#: c-api/structures.rst:262 msgid "" "The method will be loaded in place of existing definitions. Without " "*METH_COEXIST*, the default is to skip repeated definitions. Since slot " @@ -328,290 +323,288 @@ msgid "" "calls." msgstr "" -#: ../Doc/c-api/structures.rst:275 +#: c-api/structures.rst:275 msgid "" "Structure which describes an attribute of a type which corresponds to a C " "struct member. Its fields are:" msgstr "" -#: ../Doc/c-api/structures.rst:281 +#: c-api/structures.rst:281 msgid ":attr:`name`" -msgstr "" +msgstr ":attr:`name`" -#: ../Doc/c-api/structures.rst:281 +#: c-api/structures.rst:281 msgid "name of the member" msgstr "" -#: ../Doc/c-api/structures.rst:283 +#: c-api/structures.rst:283 msgid ":attr:`!type`" -msgstr "" +msgstr ":attr:`!type`" -#: ../Doc/c-api/structures.rst:283 +#: c-api/structures.rst:283 msgid "the type of the member in the C struct" msgstr "" -#: ../Doc/c-api/structures.rst:286 +#: c-api/structures.rst:286 msgid ":attr:`offset`" -msgstr "" +msgstr ":attr:`offset`" -#: ../Doc/c-api/structures.rst:286 ../Doc/c-api/structures.rst:322 +#: c-api/structures.rst:322 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/structures.rst:286 +#: c-api/structures.rst:286 msgid "" "the offset in bytes that the member is located on the type's object struct" msgstr "" -#: ../Doc/c-api/structures.rst:290 +#: c-api/structures.rst:290 msgid ":attr:`flags`" -msgstr "" +msgstr ":attr:`flags`" -#: ../Doc/c-api/structures.rst:290 +#: c-api/structures.rst:290 msgid "flag bits indicating if the field should be read-only or writable" msgstr "" -#: ../Doc/c-api/structures.rst:294 +#: c-api/structures.rst:294 msgid ":attr:`doc`" -msgstr "" +msgstr ":attr:`doc`" -#: ../Doc/c-api/structures.rst:298 +#: c-api/structures.rst:298 msgid "" ":attr:`!type` can be one of many ``T_`` macros corresponding to various C " "types. When the member is accessed in Python, it will be converted to the " "equivalent Python type." msgstr "" -#: ../Doc/c-api/structures.rst:303 +#: c-api/structures.rst:303 msgid "Macro name" msgstr "" -#: ../Doc/c-api/structures.rst:303 +#: c-api/structures.rst:303 msgid "C type" msgstr "Type C" -#: ../Doc/c-api/structures.rst:305 +#: c-api/structures.rst:305 msgid "T_SHORT" msgstr "" -#: ../Doc/c-api/structures.rst:305 +#: c-api/structures.rst:305 msgid "short" msgstr "" -#: ../Doc/c-api/structures.rst:306 +#: c-api/structures.rst:306 msgid "T_INT" msgstr "" -#: ../Doc/c-api/structures.rst:307 +#: c-api/structures.rst:307 msgid "T_LONG" msgstr "" -#: ../Doc/c-api/structures.rst:307 +#: c-api/structures.rst:307 msgid "long" msgstr "" -#: ../Doc/c-api/structures.rst:308 +#: c-api/structures.rst:308 msgid "T_FLOAT" msgstr "" -#: ../Doc/c-api/structures.rst:308 +#: c-api/structures.rst:308 msgid "float" msgstr "*float*" -#: ../Doc/c-api/structures.rst:309 +#: c-api/structures.rst:309 msgid "T_DOUBLE" msgstr "" -#: ../Doc/c-api/structures.rst:309 +#: c-api/structures.rst:309 msgid "double" msgstr "double" -#: ../Doc/c-api/structures.rst:310 +#: c-api/structures.rst:310 msgid "T_STRING" msgstr "" -#: ../Doc/c-api/structures.rst:311 +#: c-api/structures.rst:311 msgid "T_OBJECT" msgstr "" -#: ../Doc/c-api/structures.rst:311 ../Doc/c-api/structures.rst:312 +#: c-api/structures.rst:312 msgid "PyObject \\*" msgstr "PyObject \\*" -#: ../Doc/c-api/structures.rst:312 +#: c-api/structures.rst:312 msgid "T_OBJECT_EX" msgstr "" -#: ../Doc/c-api/structures.rst:313 +#: c-api/structures.rst:313 msgid "T_CHAR" msgstr "" -#: ../Doc/c-api/structures.rst:313 ../Doc/c-api/structures.rst:314 -#: ../Doc/c-api/structures.rst:319 +#: c-api/structures.rst:314 c-api/structures.rst:319 msgid "char" msgstr "char" -#: ../Doc/c-api/structures.rst:314 +#: c-api/structures.rst:314 msgid "T_BYTE" msgstr "" -#: ../Doc/c-api/structures.rst:315 +#: c-api/structures.rst:315 msgid "T_UBYTE" msgstr "" -#: ../Doc/c-api/structures.rst:315 +#: c-api/structures.rst:315 msgid "unsigned char" msgstr "``unsigned char``" -#: ../Doc/c-api/structures.rst:316 +#: c-api/structures.rst:316 msgid "T_UINT" msgstr "" -#: ../Doc/c-api/structures.rst:316 +#: c-api/structures.rst:316 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/structures.rst:317 +#: c-api/structures.rst:317 msgid "T_USHORT" msgstr "" -#: ../Doc/c-api/structures.rst:317 +#: c-api/structures.rst:317 msgid "unsigned short" msgstr "``unsigned short``" -#: ../Doc/c-api/structures.rst:318 +#: c-api/structures.rst:318 msgid "T_ULONG" msgstr "" -#: ../Doc/c-api/structures.rst:318 +#: c-api/structures.rst:318 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/structures.rst:319 +#: c-api/structures.rst:319 msgid "T_BOOL" msgstr "" -#: ../Doc/c-api/structures.rst:320 +#: c-api/structures.rst:320 msgid "T_LONGLONG" msgstr "" -#: ../Doc/c-api/structures.rst:320 +#: c-api/structures.rst:320 msgid "long long" msgstr "" -#: ../Doc/c-api/structures.rst:321 +#: c-api/structures.rst:321 msgid "T_ULONGLONG" msgstr "" -#: ../Doc/c-api/structures.rst:321 +#: c-api/structures.rst:321 msgid "unsigned long long" msgstr "``unsigned long long``" -#: ../Doc/c-api/structures.rst:322 +#: c-api/structures.rst:322 msgid "T_PYSSIZET" msgstr "" -#: ../Doc/c-api/structures.rst:325 +#: c-api/structures.rst:325 msgid "" ":c:macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` differ in that :c:macro:" -"`T_OBJECT` returns ``None`` if the member is *NULL* and :c:macro:" +"`T_OBJECT` returns ``None`` if the member is ``NULL`` and :c:macro:" "`T_OBJECT_EX` raises an :exc:`AttributeError`. Try to use :c:macro:" "`T_OBJECT_EX` over :c:macro:`T_OBJECT` because :c:macro:`T_OBJECT_EX` " "handles use of the :keyword:`del` statement on that attribute more correctly " "than :c:macro:`T_OBJECT`." msgstr "" -#: ../Doc/c-api/structures.rst:332 +#: c-api/structures.rst:332 msgid "" ":attr:`flags` can be ``0`` for write and read access or :c:macro:`READONLY` " "for read-only access. Using :c:macro:`T_STRING` for :attr:`type` implies :c:" "macro:`READONLY`. :c:macro:`T_STRING` data is interpreted as UTF-8. Only :c:" "macro:`T_OBJECT` and :c:macro:`T_OBJECT_EX` members can be deleted. (They " -"are set to *NULL*)." +"are set to ``NULL``)." msgstr "" -#: ../Doc/c-api/structures.rst:341 +#: c-api/structures.rst:341 msgid "" "Structure to define property-like access for a type. See also description of " "the :c:member:`PyTypeObject.tp_getset` slot." msgstr "" -#: ../Doc/c-api/structures.rst:347 +#: c-api/structures.rst:347 msgid "name" -msgstr "" +msgstr "nom" -#: ../Doc/c-api/structures.rst:347 +#: c-api/structures.rst:347 msgid "attribute name" msgstr "" -#: ../Doc/c-api/structures.rst:349 +#: c-api/structures.rst:349 msgid "get" msgstr "" -#: ../Doc/c-api/structures.rst:349 +#: c-api/structures.rst:349 msgid "getter" msgstr "" -#: ../Doc/c-api/structures.rst:349 +#: c-api/structures.rst:349 msgid "C Function to get the attribute" msgstr "" -#: ../Doc/c-api/structures.rst:351 +#: c-api/structures.rst:351 msgid "set" msgstr "" -#: ../Doc/c-api/structures.rst:351 +#: c-api/structures.rst:351 msgid "setter" msgstr "" -#: ../Doc/c-api/structures.rst:351 +#: c-api/structures.rst:351 msgid "" "optional C function to set or delete the attribute, if omitted the attribute " "is readonly" msgstr "" -#: ../Doc/c-api/structures.rst:355 +#: c-api/structures.rst:355 msgid "doc" msgstr "" -#: ../Doc/c-api/structures.rst:355 +#: c-api/structures.rst:355 msgid "optional docstring" msgstr "" -#: ../Doc/c-api/structures.rst:357 +#: c-api/structures.rst:357 msgid "closure" msgstr "" -#: ../Doc/c-api/structures.rst:357 +#: c-api/structures.rst:357 msgid "void \\*" msgstr "" -#: ../Doc/c-api/structures.rst:357 +#: c-api/structures.rst:357 msgid "" "optional function pointer, providing additional data for getter and setter" msgstr "" -#: ../Doc/c-api/structures.rst:362 +#: c-api/structures.rst:362 msgid "" -"The ``get`` function takes one :c:type:`PyObject\\*` parameter (the " -"instance) and a function pointer (the associated ``closure``)::" +"The ``get`` function takes one :c:type:`PyObject*` parameter (the instance) " +"and a function pointer (the associated ``closure``)::" msgstr "" -#: ../Doc/c-api/structures.rst:367 +#: c-api/structures.rst:367 msgid "" -"It should return a new reference on success or *NULL* with a set exception " +"It should return a new reference on success or ``NULL`` with a set exception " "on failure." msgstr "" -#: ../Doc/c-api/structures.rst:370 +#: c-api/structures.rst:370 msgid "" -"``set`` functions take two :c:type:`PyObject\\*` parameters (the instance " -"and the value to be set) and a function pointer (the associated " -"``closure``)::" +"``set`` functions take two :c:type:`PyObject*` parameters (the instance and " +"the value to be set) and a function pointer (the associated ``closure``)::" msgstr "" -#: ../Doc/c-api/structures.rst:375 +#: c-api/structures.rst:375 msgid "" -"In case the attribute should be deleted the second parameter is *NULL*. " +"In case the attribute should be deleted the second parameter is ``NULL``. " "Should return ``0`` on success or ``-1`` with a set exception on failure." msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po index 1447a744a7..dfcc67a7d5 100644 --- a/c-api/sys.po +++ b/c-api/sys.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -34,7 +34,7 @@ msgid "" "deemed interactive. This is the case for files for which " "``isatty(fileno(fp))`` is true. If the global flag :c:data:" "`Py_InteractiveFlag` is true, this function also returns true if the " -"*filename* pointer is *NULL* or if the name is equal to one of the strings " +"*filename* pointer is ``NULL`` or if the name is equal to one of the strings " "``''`` or ``'???'``." msgstr "" @@ -46,7 +46,14 @@ msgid "" "defined." msgstr "" -#: ../Doc/c-api/sys.rst:41 +#: ../Doc/c-api/sys.rst:37 +msgid "" +"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " +"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_BeforeFork()``." +msgstr "" + +#: ../Doc/c-api/sys.rst:47 msgid "" "Function to update some internal state after a process fork. This should be " "called from the parent process after calling :c:func:`fork` or any similar " @@ -55,7 +62,14 @@ msgid "" "defined." msgstr "" -#: ../Doc/c-api/sys.rst:52 +#: ../Doc/c-api/sys.rst:54 +msgid "" +"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " +"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_AfterFork_Parent()``." +msgstr "" + +#: ../Doc/c-api/sys.rst:64 msgid "" "Function to update internal interpreter state after a process fork. This " "must be called from the child process after calling :c:func:`fork`, or any " @@ -64,14 +78,21 @@ msgid "" "systems where :c:func:`fork` is defined." msgstr "" -#: ../Doc/c-api/sys.rst:61 +#: ../Doc/c-api/sys.rst:71 +msgid "" +"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " +"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_AfterFork_Child()``." +msgstr "" + +#: ../Doc/c-api/sys.rst:79 msgid "" ":func:`os.register_at_fork` allows registering custom Python functions to be " "called by :c:func:`PyOS_BeforeFork()`, :c:func:`PyOS_AfterFork_Parent` and :" "c:func:`PyOS_AfterFork_Child`." msgstr "" -#: ../Doc/c-api/sys.rst:68 +#: ../Doc/c-api/sys.rst:86 msgid "" "Function to update some internal state after a process fork; this should be " "called in the new process if the Python interpreter will continue to be " @@ -79,11 +100,11 @@ msgid "" "not need to be called." msgstr "" -#: ../Doc/c-api/sys.rst:73 +#: ../Doc/c-api/sys.rst:91 msgid "This function is superseded by :c:func:`PyOS_AfterFork_Child()`." msgstr "" -#: ../Doc/c-api/sys.rst:79 +#: ../Doc/c-api/sys.rst:97 msgid "" "Return true when the interpreter runs out of stack space. This is a " "reliable check, but is only available when :const:`USE_STACKCHECK` is " @@ -92,7 +113,7 @@ msgid "" "change the definition in your own code." msgstr "" -#: ../Doc/c-api/sys.rst:88 +#: ../Doc/c-api/sys.rst:106 msgid "" "Return the current signal handler for signal *i*. This is a thin wrapper " "around either :c:func:`sigaction` or :c:func:`signal`. Do not call those " @@ -100,7 +121,7 @@ msgid "" "type:`void (\\*)(int)`." msgstr "" -#: ../Doc/c-api/sys.rst:96 +#: ../Doc/c-api/sys.rst:114 msgid "" "Set the signal handler for signal *i* to be *h*; return the old signal " "handler. This is a thin wrapper around either :c:func:`sigaction` or :c:func:" @@ -108,7 +129,7 @@ msgid "" "`PyOS_sighandler_t` is a typedef alias for :c:type:`void (\\*)(int)`." msgstr "" -#: ../Doc/c-api/sys.rst:103 +#: ../Doc/c-api/sys.rst:121 msgid "" "Decode a byte string from the locale encoding with the :ref:`surrogateescape " "error handler `: undecodable bytes are decoded as " @@ -117,116 +138,116 @@ msgid "" "handler instead of decoding them." msgstr "" -#: ../Doc/c-api/sys.rst:109 ../Doc/c-api/sys.rst:155 +#: ../Doc/c-api/sys.rst:127 ../Doc/c-api/sys.rst:173 msgid "Encoding, highest priority to lowest priority:" msgstr "" -#: ../Doc/c-api/sys.rst:111 ../Doc/c-api/sys.rst:157 +#: ../Doc/c-api/sys.rst:129 ../Doc/c-api/sys.rst:175 msgid "``UTF-8`` on macOS, Android, and VxWorks;" msgstr "" -#: ../Doc/c-api/sys.rst:112 ../Doc/c-api/sys.rst:158 +#: ../Doc/c-api/sys.rst:130 ../Doc/c-api/sys.rst:176 msgid "" "``UTF-8`` on Windows if :c:data:`Py_LegacyWindowsFSEncodingFlag` is zero;" msgstr "" -#: ../Doc/c-api/sys.rst:113 ../Doc/c-api/sys.rst:159 +#: ../Doc/c-api/sys.rst:131 ../Doc/c-api/sys.rst:177 msgid "``UTF-8`` if the Python UTF-8 mode is enabled;" msgstr "" -#: ../Doc/c-api/sys.rst:114 ../Doc/c-api/sys.rst:160 +#: ../Doc/c-api/sys.rst:132 ../Doc/c-api/sys.rst:178 msgid "" "``ASCII`` if the ``LC_CTYPE`` locale is ``\"C\"``, ``nl_langinfo(CODESET)`` " "returns the ``ASCII`` encoding (or an alias), and :c:func:`mbstowcs` and :c:" "func:`wcstombs` functions uses the ``ISO-8859-1`` encoding." msgstr "" -#: ../Doc/c-api/sys.rst:118 ../Doc/c-api/sys.rst:164 +#: ../Doc/c-api/sys.rst:136 ../Doc/c-api/sys.rst:182 msgid "the current locale encoding." msgstr "" -#: ../Doc/c-api/sys.rst:120 +#: ../Doc/c-api/sys.rst:138 msgid "" "Return a pointer to a newly allocated wide character string, use :c:func:" "`PyMem_RawFree` to free the memory. If size is not ``NULL``, write the " "number of wide characters excluding the null character into ``*size``" msgstr "" -#: ../Doc/c-api/sys.rst:124 +#: ../Doc/c-api/sys.rst:142 msgid "" "Return ``NULL`` on decoding error or memory allocation error. If *size* is " "not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to " "``(size_t)-2`` on decoding error." msgstr "" -#: ../Doc/c-api/sys.rst:128 +#: ../Doc/c-api/sys.rst:146 msgid "" "Decoding errors should never happen, unless there is a bug in the C library." msgstr "" -#: ../Doc/c-api/sys.rst:131 +#: ../Doc/c-api/sys.rst:149 msgid "" "Use the :c:func:`Py_EncodeLocale` function to encode the character string " "back to a byte string." msgstr "" -#: ../Doc/c-api/sys.rst:136 +#: ../Doc/c-api/sys.rst:154 msgid "" "The :c:func:`PyUnicode_DecodeFSDefaultAndSize` and :c:func:" "`PyUnicode_DecodeLocaleAndSize` functions." msgstr "" -#: ../Doc/c-api/sys.rst:141 ../Doc/c-api/sys.rst:185 +#: ../Doc/c-api/sys.rst:159 ../Doc/c-api/sys.rst:203 msgid "The function now uses the UTF-8 encoding in the UTF-8 mode." msgstr "" -#: ../Doc/c-api/sys.rst:144 ../Doc/c-api/sys.rst:188 +#: ../Doc/c-api/sys.rst:162 ../Doc/c-api/sys.rst:206 msgid "" "The function now uses the UTF-8 encoding on Windows if :c:data:" "`Py_LegacyWindowsFSEncodingFlag` is zero;" msgstr "" -#: ../Doc/c-api/sys.rst:151 +#: ../Doc/c-api/sys.rst:169 msgid "" "Encode a wide character string to the locale encoding with the :ref:" "`surrogateescape error handler `: surrogate characters in " "the range U+DC80..U+DCFF are converted to bytes 0x80..0xFF." msgstr "" -#: ../Doc/c-api/sys.rst:166 +#: ../Doc/c-api/sys.rst:184 msgid "The function uses the UTF-8 encoding in the Python UTF-8 mode." msgstr "" -#: ../Doc/c-api/sys.rst:168 +#: ../Doc/c-api/sys.rst:186 msgid "" "Return a pointer to a newly allocated byte string, use :c:func:`PyMem_Free` " "to free the memory. Return ``NULL`` on encoding error or memory allocation " "error" msgstr "" -#: ../Doc/c-api/sys.rst:172 +#: ../Doc/c-api/sys.rst:190 msgid "" "If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on " "success, or set to the index of the invalid character on encoding error." msgstr "" -#: ../Doc/c-api/sys.rst:175 +#: ../Doc/c-api/sys.rst:193 msgid "" "Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " "to a wide character string." msgstr "" -#: ../Doc/c-api/sys.rst:180 +#: ../Doc/c-api/sys.rst:198 msgid "" "The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " "functions." msgstr "" -#: ../Doc/c-api/sys.rst:196 +#: ../Doc/c-api/sys.rst:214 msgid "System Functions" msgstr "" -#: ../Doc/c-api/sys.rst:198 +#: ../Doc/c-api/sys.rst:216 msgid "" "These are utility functions that make functionality from the :mod:`sys` " "module accessible to C code. They all work with the current interpreter " @@ -234,36 +255,36 @@ msgid "" "state structure." msgstr "" -#: ../Doc/c-api/sys.rst:204 +#: ../Doc/c-api/sys.rst:222 msgid "" -"Return the object *name* from the :mod:`sys` module or *NULL* if it does not " -"exist, without setting an exception." +"Return the object *name* from the :mod:`sys` module or ``NULL`` if it does " +"not exist, without setting an exception." msgstr "" -#: ../Doc/c-api/sys.rst:209 +#: ../Doc/c-api/sys.rst:227 msgid "" -"Set *name* in the :mod:`sys` module to *v* unless *v* is *NULL*, in which " +"Set *name* in the :mod:`sys` module to *v* unless *v* is ``NULL``, in which " "case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` " "on error." msgstr "" -#: ../Doc/c-api/sys.rst:215 +#: ../Doc/c-api/sys.rst:233 msgid "" "Reset :data:`sys.warnoptions` to an empty list. This function may be called " "prior to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/sys.rst:220 +#: ../Doc/c-api/sys.rst:238 msgid "" "Append *s* to :data:`sys.warnoptions`. This function must be called prior " "to :c:func:`Py_Initialize` in order to affect the warnings filter list." msgstr "" -#: ../Doc/c-api/sys.rst:225 +#: ../Doc/c-api/sys.rst:243 msgid "Append *unicode* to :data:`sys.warnoptions`." msgstr "" -#: ../Doc/c-api/sys.rst:227 +#: ../Doc/c-api/sys.rst:245 msgid "" "Note: this function is not currently usable from outside the CPython " "implementation, as it must be called prior to the implicit import of :mod:" @@ -272,20 +293,20 @@ msgid "" "Unicode objects." msgstr "" -#: ../Doc/c-api/sys.rst:235 +#: ../Doc/c-api/sys.rst:253 msgid "" "Set :data:`sys.path` to a list object of paths found in *path* which should " "be a list of paths separated with the platform's search path delimiter (``:" "`` on Unix, ``;`` on Windows)." msgstr "" -#: ../Doc/c-api/sys.rst:241 +#: ../Doc/c-api/sys.rst:259 msgid "" "Write the output string described by *format* to :data:`sys.stdout`. No " "exceptions are raised, even if truncation occurs (see below)." msgstr "" -#: ../Doc/c-api/sys.rst:244 +#: ../Doc/c-api/sys.rst:262 msgid "" "*format* should limit the total size of the formatted output string to 1000 " "bytes or less -- after 1000 bytes, the output string is truncated. In " @@ -296,51 +317,51 @@ msgid "" "of digits for very large numbers." msgstr "" -#: ../Doc/c-api/sys.rst:252 +#: ../Doc/c-api/sys.rst:270 msgid "" "If a problem occurs, or :data:`sys.stdout` is unset, the formatted message " "is written to the real (C level) *stdout*." msgstr "" -#: ../Doc/c-api/sys.rst:257 +#: ../Doc/c-api/sys.rst:275 msgid "" "As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" -#: ../Doc/c-api/sys.rst:262 +#: ../Doc/c-api/sys.rst:280 msgid "" "Function similar to PySys_WriteStdout() but format the message using :c:func:" "`PyUnicode_FromFormatV` and don't truncate the message to an arbitrary " "length." msgstr "" -#: ../Doc/c-api/sys.rst:270 +#: ../Doc/c-api/sys.rst:288 msgid "" "As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " "instead." msgstr "" -#: ../Doc/c-api/sys.rst:277 +#: ../Doc/c-api/sys.rst:295 msgid "" "Parse *s* as a set of :option:`-X` options and add them to the current " "options mapping as returned by :c:func:`PySys_GetXOptions`. This function " "may be called prior to :c:func:`Py_Initialize`." msgstr "" -#: ../Doc/c-api/sys.rst:285 +#: ../Doc/c-api/sys.rst:303 msgid "" "Return the current dictionary of :option:`-X` options, similarly to :data:" -"`sys._xoptions`. On error, *NULL* is returned and an exception is set." +"`sys._xoptions`. On error, ``NULL`` is returned and an exception is set." msgstr "" -#: ../Doc/c-api/sys.rst:294 +#: ../Doc/c-api/sys.rst:312 msgid "" -"Raises an auditing event with any active hooks. Returns zero for success and " +"Raise an auditing event with any active hooks. Return zero for success and " "non-zero with an exception set on failure." msgstr "" -#: ../Doc/c-api/sys.rst:297 +#: ../Doc/c-api/sys.rst:315 msgid "" "If any hooks have been added, *format* and other arguments will be used to " "construct a tuple to pass. Apart from ``N``, the same format characters as " @@ -351,19 +372,38 @@ msgid "" "leaks.)" msgstr "" -#: ../Doc/c-api/sys.rst:305 +#: ../Doc/c-api/sys.rst:323 +msgid "" +"Note that ``#`` format characters should always be treated as " +"``Py_ssize_t``, regardless of whether ``PY_SSIZE_T_CLEAN`` was defined." +msgstr "" + +#: ../Doc/c-api/sys.rst:326 msgid ":func:`sys.audit` performs the same function from Python code." msgstr "" -#: ../Doc/c-api/sys.rst:312 +#: ../Doc/c-api/sys.rst:332 +msgid "" +"Require ``Py_ssize_t`` for ``#`` format characters. Previously, an " +"unavoidable deprecation warning was raised." +msgstr "" + +#: ../Doc/c-api/sys.rst:338 msgid "" -"Adds to the collection of active auditing hooks. Returns zero for success " -"and non-zero on failure. If the runtime has been initialized, also sets an " -"error on failure. Hooks added through this API are called for all " -"interpreters created by the runtime." +"Append the callable *hook* to the list of active auditing hooks. Return zero " +"for success and non-zero on failure. If the runtime has been initialized, " +"also set an error on failure. Hooks added through this API are called for " +"all interpreters created by the runtime." +msgstr "" + +#: ../Doc/c-api/sys.rst:344 +msgid "" +"The *userData* pointer is passed into the hook function. Since hook " +"functions may be called from different runtimes, this pointer should not " +"refer directly to Python state." msgstr "" -#: ../Doc/c-api/sys.rst:317 +#: ../Doc/c-api/sys.rst:348 msgid "" "This function is safe to call before :c:func:`Py_Initialize`. When called " "after runtime initialization, existing audit hooks are notified and may " @@ -371,7 +411,7 @@ msgid "" "`Exception` (other errors will not be silenced)." msgstr "" -#: ../Doc/c-api/sys.rst:322 +#: ../Doc/c-api/sys.rst:353 msgid "" "The hook function is of type :c:type:`int (*)(const char *event, PyObject " "*args, void *userData)`, where *args* is guaranteed to be a :c:type:" @@ -379,25 +419,35 @@ msgid "" "Python interpreter that raised the event." msgstr "" -#: ../Doc/c-api/sys.rst:327 +#: ../Doc/c-api/sys.rst:358 msgid "" -"The *userData* pointer is passed into the hook function. Since hook " -"functions may be called from different runtimes, this pointer should not " -"refer directly to Python state." +"See :pep:`578` for a detailed description of auditing. Functions in the " +"runtime and standard library that raise events are listed in the :ref:`audit " +"events table `. Details are in each function's documentation." msgstr "" -#: ../Doc/c-api/sys.rst:331 +#: ../Doc/c-api/sys.rst:None msgid "" -"See :pep:`578` for a detailed description of auditing. Functions in the " -"runtime and standard library that raise events include the details in each " -"function's documentation." +"Raises an :ref:`auditing event ` ``sys.addaudithook`` with no " +"arguments." msgstr "" +"Déclenche un :ref:`événement d'audit ` ``sys.addaudithook`` sans " +"arguments." -#: ../Doc/c-api/sys.rst:341 +#: ../Doc/c-api/sys.rst:365 +msgid "" +"If the interpreter is initialized, this function raises a auditing event " +"``sys.addaudithook`` with no arguments. If any existing hooks raise an " +"exception derived from :class:`Exception`, the new hook will not be added " +"and the exception is cleared. As a result, callers cannot assume that their " +"hook has been added unless they control all existing hooks." +msgstr "" + +#: ../Doc/c-api/sys.rst:377 msgid "Process Control" msgstr "" -#: ../Doc/c-api/sys.rst:348 +#: ../Doc/c-api/sys.rst:384 msgid "" "Print a fatal error message and kill the process. No cleanup is performed. " "This function should only be invoked when a condition is detected that would " @@ -407,18 +457,18 @@ msgid "" "file:`core` file." msgstr "" -#: ../Doc/c-api/sys.rst:362 +#: ../Doc/c-api/sys.rst:398 msgid "" "Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls " "the standard C library function ``exit(status)``. If :c:func:" "`Py_FinalizeEx` indicates an error, the exit status is set to 120." msgstr "" -#: ../Doc/c-api/sys.rst:366 +#: ../Doc/c-api/sys.rst:402 msgid "Errors from finalization no longer ignored." msgstr "" -#: ../Doc/c-api/sys.rst:376 +#: ../Doc/c-api/sys.rst:412 msgid "" "Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The " "cleanup function will be called with no arguments and should return no " diff --git a/c-api/tuple.po b/c-api/tuple.po index 4a3ac347c0..b1df2628f2 100644 --- a/c-api/tuple.po +++ b/c-api/tuple.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,89 +14,104 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/tuple.rst:6 +#: c-api/tuple.rst:6 msgid "Tuple Objects" msgstr "" -#: ../Doc/c-api/tuple.rst:13 +#: c-api/tuple.rst:13 +#, fuzzy msgid "This subtype of :c:type:`PyObject` represents a Python tuple object." msgstr "" +"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." -#: ../Doc/c-api/tuple.rst:18 +#: c-api/tuple.rst:18 +#, fuzzy msgid "" "This instance of :c:type:`PyTypeObject` represents the Python tuple type; it " "is the same object as :class:`tuple` in the Python layer." msgstr "" +"Cette instance de :c:type:`PyTypeObject` représente le type Python " +"*bytearray*, c'est le même que :class:`bytearray` côté Python." -#: ../Doc/c-api/tuple.rst:24 +#: c-api/tuple.rst:24 msgid "" "Return true if *p* is a tuple object or an instance of a subtype of the " "tuple type." msgstr "" -#: ../Doc/c-api/tuple.rst:30 +#: c-api/tuple.rst:30 msgid "" "Return true if *p* is a tuple object, but not an instance of a subtype of " "the tuple type." msgstr "" -#: ../Doc/c-api/tuple.rst:36 -msgid "Return a new tuple object of size *len*, or *NULL* on failure." +#: c-api/tuple.rst:36 +msgid "Return a new tuple object of size *len*, or ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/tuple.rst:41 +#: c-api/tuple.rst:41 msgid "" -"Return a new tuple object of size *n*, or *NULL* on failure. The tuple " +"Return a new tuple object of size *n*, or ``NULL`` on failure. The tuple " "values are initialized to the subsequent *n* C arguments pointing to Python " "objects. ``PyTuple_Pack(2, a, b)`` is equivalent to " "``Py_BuildValue(\"(OO)\", a, b)``." msgstr "" -#: ../Doc/c-api/tuple.rst:48 +#: c-api/tuple.rst:48 msgid "Take a pointer to a tuple object, and return the size of that tuple." msgstr "" -#: ../Doc/c-api/tuple.rst:53 +#: c-api/tuple.rst:53 msgid "" -"Return the size of the tuple *p*, which must be non-*NULL* and point to a " +"Return the size of the tuple *p*, which must be non-``NULL`` and point to a " "tuple; no error checking is performed." msgstr "" -#: ../Doc/c-api/tuple.rst:59 +#: c-api/tuple.rst:59 msgid "" "Return the object at position *pos* in the tuple pointed to by *p*. If " -"*pos* is out of bounds, return *NULL* and sets an :exc:`IndexError` " +"*pos* is out of bounds, return ``NULL`` and set an :exc:`IndexError` " "exception." msgstr "" -#: ../Doc/c-api/tuple.rst:65 +#: c-api/tuple.rst:65 msgid "Like :c:func:`PyTuple_GetItem`, but does no checking of its arguments." msgstr "" -#: ../Doc/c-api/tuple.rst:70 +#: c-api/tuple.rst:70 msgid "" -"Take a slice of the tuple pointed to by *p* from *low* to *high* and return " -"it as a new tuple." +"Return the slice of the tuple pointed to by *p* between *low* and *high*, or " +"``NULL`` on failure. This is the equivalent of the Python expression " +"``p[low:high]``. Indexing from the end of the list is not supported." msgstr "" -#: ../Doc/c-api/tuple.rst:76 +#: c-api/tuple.rst:77 msgid "" "Insert a reference to object *o* at position *pos* of the tuple pointed to " -"by *p*. Return ``0`` on success." +"by *p*. Return ``0`` on success. If *pos* is out of bounds, return ``-1`` " +"and set an :exc:`IndexError` exception." msgstr "" -#: ../Doc/c-api/tuple.rst:81 ../Doc/c-api/tuple.rst:91 -#: ../Doc/c-api/tuple.rst:209 ../Doc/c-api/tuple.rst:218 -msgid "This function \"steals\" a reference to *o*." +#: c-api/tuple.rst:83 +msgid "" +"This function \"steals\" a reference to *o* and discards a reference to an " +"item already in the tuple at the affected position." msgstr "" -#: ../Doc/c-api/tuple.rst:86 +#: c-api/tuple.rst:89 msgid "" "Like :c:func:`PyTuple_SetItem`, but does no error checking, and should " "*only* be used to fill in brand new tuples." msgstr "" -#: ../Doc/c-api/tuple.rst:96 +#: c-api/tuple.rst:94 +msgid "" +"This macro \"steals\" a reference to *o*, and, unlike :c:func:" +"`PyTuple_SetItem`, does *not* discard a reference to any item that is being " +"replaced; any reference in the tuple at position *pos* will be leaked." +msgstr "" + +#: c-api/tuple.rst:102 msgid "" "Can be used to resize a tuple. *newsize* will be the new length of the " "tuple. Because tuples are *supposed* to be immutable, this should only be " @@ -107,19 +122,19 @@ msgid "" "Client code should never assume that the resulting value of ``*p`` will be " "the same as before calling this function. If the object referenced by ``*p`` " "is replaced, the original ``*p`` is destroyed. On failure, returns ``-1`` " -"and sets ``*p`` to *NULL*, and raises :exc:`MemoryError` or :exc:" +"and sets ``*p`` to ``NULL``, and raises :exc:`MemoryError` or :exc:" "`SystemError`." msgstr "" -#: ../Doc/c-api/tuple.rst:110 +#: c-api/tuple.rst:116 msgid "Clear the free list. Return the total number of freed items." msgstr "" -#: ../Doc/c-api/tuple.rst:114 +#: c-api/tuple.rst:120 msgid "Struct Sequence Objects" msgstr "" -#: ../Doc/c-api/tuple.rst:116 +#: c-api/tuple.rst:122 msgid "" "Struct sequence objects are the C equivalent of :func:`~collections." "namedtuple` objects, i.e. a sequence whose items can also be accessed " @@ -127,129 +142,132 @@ msgid "" "specific struct sequence type." msgstr "" -#: ../Doc/c-api/tuple.rst:123 +#: c-api/tuple.rst:129 msgid "" "Create a new struct sequence type from the data in *desc*, described below. " "Instances of the resulting type can be created with :c:func:" "`PyStructSequence_New`." msgstr "" -#: ../Doc/c-api/tuple.rst:129 +#: c-api/tuple.rst:135 msgid "Initializes a struct sequence type *type* from *desc* in place." msgstr "" -#: ../Doc/c-api/tuple.rst:134 +#: c-api/tuple.rst:140 msgid "" "The same as ``PyStructSequence_InitType``, but returns ``0`` on success and " "``-1`` on failure." msgstr "" -#: ../Doc/c-api/tuple.rst:142 +#: c-api/tuple.rst:148 msgid "Contains the meta information of a struct sequence type to create." msgstr "" -#: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 +#: c-api/tuple.rst:174 msgid "Field" -msgstr "" +msgstr "Champ" -#: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 +#: c-api/tuple.rst:174 msgid "C Type" msgstr "Type C" -#: ../Doc/c-api/tuple.rst:145 ../Doc/c-api/tuple.rst:168 +#: c-api/tuple.rst:174 msgid "Meaning" msgstr "Signification" -#: ../Doc/c-api/tuple.rst:147 ../Doc/c-api/tuple.rst:170 +#: c-api/tuple.rst:176 msgid "``name``" msgstr "``name``" -#: ../Doc/c-api/tuple.rst:147 ../Doc/c-api/tuple.rst:149 -#: ../Doc/c-api/tuple.rst:170 ../Doc/c-api/tuple.rst:175 +#: c-api/tuple.rst:155 c-api/tuple.rst:181 msgid "``const char *``" msgstr "" -#: ../Doc/c-api/tuple.rst:147 +#: c-api/tuple.rst:153 msgid "name of the struct sequence type" msgstr "" -#: ../Doc/c-api/tuple.rst:149 ../Doc/c-api/tuple.rst:175 +#: c-api/tuple.rst:181 msgid "``doc``" msgstr "" -#: ../Doc/c-api/tuple.rst:149 -msgid "pointer to docstring for the type or NULL to omit" +#: c-api/tuple.rst:155 +msgid "pointer to docstring for the type or ``NULL`` to omit" msgstr "" -#: ../Doc/c-api/tuple.rst:152 +#: c-api/tuple.rst:158 msgid "``fields``" msgstr "" -#: ../Doc/c-api/tuple.rst:152 +#: c-api/tuple.rst:158 msgid "``PyStructSequence_Field *``" msgstr "``PyStructSequence_Field *``" -#: ../Doc/c-api/tuple.rst:152 -msgid "pointer to *NULL*-terminated array with field names of the new type" +#: c-api/tuple.rst:158 +msgid "pointer to ``NULL``-terminated array with field names of the new type" msgstr "" -#: ../Doc/c-api/tuple.rst:155 +#: c-api/tuple.rst:161 msgid "``n_in_sequence``" msgstr "``n_in_sequence``" -#: ../Doc/c-api/tuple.rst:155 +#: c-api/tuple.rst:161 msgid "``int``" msgstr "``int``" -#: ../Doc/c-api/tuple.rst:155 +#: c-api/tuple.rst:161 msgid "number of fields visible to the Python side (if used as tuple)" msgstr "" -#: ../Doc/c-api/tuple.rst:162 +#: c-api/tuple.rst:168 msgid "" "Describes a field of a struct sequence. As a struct sequence is modeled as a " -"tuple, all fields are typed as :c:type:`PyObject\\*`. The index in the :" -"attr:`fields` array of the :c:type:`PyStructSequence_Desc` determines which " -"field of the struct sequence is described." +"tuple, all fields are typed as :c:type:`PyObject*`. The index in the :attr:" +"`fields` array of the :c:type:`PyStructSequence_Desc` determines which field " +"of the struct sequence is described." msgstr "" -#: ../Doc/c-api/tuple.rst:170 +#: c-api/tuple.rst:176 msgid "" -"name for the field or *NULL* to end the list of named fields, set to " -"PyStructSequence_UnnamedField to leave unnamed" +"name for the field or ``NULL`` to end the list of named fields, set to :c:" +"data:`PyStructSequence_UnnamedField` to leave unnamed" msgstr "" -#: ../Doc/c-api/tuple.rst:175 -msgid "field docstring or *NULL* to omit" +#: c-api/tuple.rst:181 +msgid "field docstring or ``NULL`` to omit" msgstr "" -#: ../Doc/c-api/tuple.rst:181 +#: c-api/tuple.rst:187 msgid "Special value for a field name to leave it unnamed." msgstr "" -#: ../Doc/c-api/tuple.rst:186 +#: c-api/tuple.rst:192 msgid "" "Creates an instance of *type*, which must have been created with :c:func:" "`PyStructSequence_NewType`." msgstr "" -#: ../Doc/c-api/tuple.rst:192 +#: c-api/tuple.rst:198 msgid "" "Return the object at position *pos* in the struct sequence pointed to by " "*p*. No bounds checking is performed." msgstr "" -#: ../Doc/c-api/tuple.rst:198 +#: c-api/tuple.rst:204 msgid "Macro equivalent of :c:func:`PyStructSequence_GetItem`." msgstr "" -#: ../Doc/c-api/tuple.rst:203 +#: c-api/tuple.rst:209 msgid "" "Sets the field at index *pos* of the struct sequence *p* to value *o*. " "Like :c:func:`PyTuple_SET_ITEM`, this should only be used to fill in brand " "new instances." msgstr "" -#: ../Doc/c-api/tuple.rst:214 +#: c-api/tuple.rst:224 +msgid "This function \"steals\" a reference to *o*." +msgstr "" + +#: c-api/tuple.rst:220 msgid "Macro equivalent of :c:func:`PyStructSequence_SetItem`." msgstr "" diff --git a/c-api/type.po b/c-api/type.po index 56ef778672..c2ee30c0f7 100644 --- a/c-api/type.po +++ b/c-api/type.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-02-15 00:33+0100\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,37 +14,37 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/type.rst:6 +#: c-api/type.rst:6 msgid "Type Objects" msgstr "Objets type" -#: ../Doc/c-api/type.rst:13 +#: c-api/type.rst:13 msgid "The C structure of the objects used to describe built-in types." msgstr "" -#: ../Doc/c-api/type.rst:18 +#: c-api/type.rst:18 msgid "" "This is the type object for type objects; it is the same object as :class:" "`type` in the Python layer." msgstr "" -#: ../Doc/c-api/type.rst:24 +#: c-api/type.rst:24 msgid "" "Return true if the object *o* is a type object, including instances of types " "derived from the standard type object. Return false in all other cases." msgstr "" -#: ../Doc/c-api/type.rst:30 +#: c-api/type.rst:30 msgid "" "Return true if the object *o* is a type object, but not a subtype of the " "standard type object. Return false in all other cases." msgstr "" -#: ../Doc/c-api/type.rst:36 +#: c-api/type.rst:36 msgid "Clear the internal lookup cache. Return the current version tag." msgstr "" -#: ../Doc/c-api/type.rst:40 +#: c-api/type.rst:40 msgid "" "Return the :c:member:`~PyTypeObject.tp_flags` member of *type*. This " "function is primarily meant for use with `Py_LIMITED_API`; the individual " @@ -52,55 +52,55 @@ msgid "" "c:member:`~PyTypeObject.tp_flags` itself is not part of the limited API." msgstr "" -#: ../Doc/c-api/type.rst:47 +#: c-api/type.rst:47 msgid "The return type is now ``unsigned long`` rather than ``long``." msgstr "" -#: ../Doc/c-api/type.rst:53 +#: c-api/type.rst:53 msgid "" "Invalidate the internal lookup cache for the type and all of its subtypes. " "This function must be called after any manual modification of the attributes " "or base classes of the type." msgstr "" -#: ../Doc/c-api/type.rst:60 +#: c-api/type.rst:60 msgid "" "Return true if the type object *o* sets the feature *feature*. Type " "features are denoted by single bit flags." msgstr "" -#: ../Doc/c-api/type.rst:66 +#: c-api/type.rst:66 msgid "" "Return true if the type object includes support for the cycle detector; this " "tests the type flag :const:`Py_TPFLAGS_HAVE_GC`." msgstr "" -#: ../Doc/c-api/type.rst:72 +#: c-api/type.rst:72 msgid "Return true if *a* is a subtype of *b*." msgstr "" -#: ../Doc/c-api/type.rst:74 +#: c-api/type.rst:74 msgid "" "This function only checks for actual subtypes, which means that :meth:" "`~class.__subclasscheck__` is not called on *b*. Call :c:func:" "`PyObject_IsSubclass` to do the same check that :func:`issubclass` would do." msgstr "" -#: ../Doc/c-api/type.rst:82 +#: c-api/type.rst:82 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " "object. Use Python's default memory allocation mechanism to allocate a new " -"instance and initialize all its contents to *NULL*." +"instance and initialize all its contents to ``NULL``." msgstr "" -#: ../Doc/c-api/type.rst:88 +#: c-api/type.rst:88 msgid "" "Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " "object. Create a new instance using the type's :c:member:`~PyTypeObject." "tp_alloc` slot." msgstr "" -#: ../Doc/c-api/type.rst:93 +#: c-api/type.rst:93 msgid "" "Finalize a type object. This should be called on all type objects to finish " "their initialization. This function is responsible for adding inherited " @@ -108,100 +108,101 @@ msgid "" "and sets an exception on error." msgstr "" -#: ../Doc/c-api/type.rst:100 +#: c-api/type.rst:100 msgid "" "Return the function pointer stored in the given slot. If the result is " -"*NULL*, this indicates that either the slot is *NULL*, or that the function " -"was called with invalid parameters. Callers will typically cast the result " -"pointer into the appropriate function type." +"``NULL``, this indicates that either the slot is ``NULL``, or that the " +"function was called with invalid parameters. Callers will typically cast the " +"result pointer into the appropriate function type." msgstr "" -#: ../Doc/c-api/type.rst:106 +#: c-api/type.rst:106 msgid "" "See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." msgstr "" -#: ../Doc/c-api/type.rst:108 +#: c-api/type.rst:108 msgid "An exception is raised if *type* is not a heap type." msgstr "" -#: ../Doc/c-api/type.rst:114 +#: c-api/type.rst:114 msgid "Creating Heap-Allocated Types" msgstr "" -#: ../Doc/c-api/type.rst:116 +#: c-api/type.rst:116 msgid "" "The following functions and structs are used to create :ref:`heap types " "`." msgstr "" -#: ../Doc/c-api/type.rst:121 +#: c-api/type.rst:121 msgid "" "Creates and returns a heap type object from the *spec* (:const:" "`Py_TPFLAGS_HEAPTYPE`)." msgstr "" -#: ../Doc/c-api/type.rst:124 +#: c-api/type.rst:124 msgid "" "If *bases* is a tuple, the created heap type contains all types contained in " "it as base types." msgstr "" -#: ../Doc/c-api/type.rst:127 +#: c-api/type.rst:127 msgid "" -"If *bases* is *NULL*, the *Py_tp_base* slot is used instead. If that also is " -"*NULL*, the new type derives from :class:`object`." +"If *bases* is ``NULL``, the *Py_tp_bases* slot is used instead. If that also " +"is ``NULL``, the *Py_tp_base* slot is used instead. If that also is " +"``NULL``, the new type derives from :class:`object`." msgstr "" -#: ../Doc/c-api/type.rst:130 +#: c-api/type.rst:131 msgid "This function calls :c:func:`PyType_Ready` on the new type." msgstr "" -#: ../Doc/c-api/type.rst:136 +#: c-api/type.rst:137 msgid "Equivalent to ``PyType_FromSpecWithBases(spec, NULL)``." msgstr "" -#: ../Doc/c-api/type.rst:140 +#: c-api/type.rst:141 msgid "Structure defining a type's behavior." msgstr "" -#: ../Doc/c-api/type.rst:144 +#: c-api/type.rst:145 msgid "Name of the type, used to set :c:member:`PyTypeObject.tp_name`." msgstr "" -#: ../Doc/c-api/type.rst:149 +#: c-api/type.rst:150 msgid "" "Size of the instance in bytes, used to set :c:member:`PyTypeObject." "tp_basicsize` and :c:member:`PyTypeObject.tp_itemsize`." msgstr "" -#: ../Doc/c-api/type.rst:155 +#: c-api/type.rst:156 msgid "Type flags, used to set :c:member:`PyTypeObject.tp_flags`." msgstr "" -#: ../Doc/c-api/type.rst:157 +#: c-api/type.rst:158 msgid "" "If the ``Py_TPFLAGS_HEAPTYPE`` flag is not set, :c:func:" "`PyType_FromSpecWithBases` sets it automatically." msgstr "" -#: ../Doc/c-api/type.rst:162 +#: c-api/type.rst:163 msgid "" "Array of :c:type:`PyType_Slot` structures. Terminated by the special slot " "value ``{0, NULL}``." msgstr "" -#: ../Doc/c-api/type.rst:167 +#: c-api/type.rst:168 msgid "" "Structure defining optional functionality of a type, containing a slot ID " "and a value pointer." msgstr "" -#: ../Doc/c-api/type.rst:172 +#: c-api/type.rst:173 msgid "A slot ID." msgstr "" -#: ../Doc/c-api/type.rst:174 +#: c-api/type.rst:175 msgid "" "Slot IDs are named like the field names of the structures :c:type:" "`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:" @@ -209,76 +210,77 @@ msgid "" "prefix. For example, use:" msgstr "" -#: ../Doc/c-api/type.rst:180 +#: c-api/type.rst:181 msgid "``Py_tp_dealloc`` to set :c:member:`PyTypeObject.tp_dealloc`" msgstr "" -#: ../Doc/c-api/type.rst:181 +#: c-api/type.rst:182 msgid "``Py_nb_add`` to set :c:member:`PyNumberMethods.nb_add`" msgstr "" -#: ../Doc/c-api/type.rst:182 +#: c-api/type.rst:183 msgid "``Py_sq_length`` to set :c:member:`PySequenceMethods.sq_length`" msgstr "" -#: ../Doc/c-api/type.rst:184 +#: c-api/type.rst:185 msgid "" -"The following fields cannot be set using *PyType_Spec* and *PyType_Slot*:" +"The following fields cannot be set using :c:type:`PyType_Spec` and :c:type:" +"`PyType_Slot`:" msgstr "" -#: ../Doc/c-api/type.rst:186 +#: c-api/type.rst:187 msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr "" -#: ../Doc/c-api/type.rst:187 +#: c-api/type.rst:188 msgid ":c:member:`~PyTypeObject.tp_mro`" msgstr "" -#: ../Doc/c-api/type.rst:188 +#: c-api/type.rst:189 msgid ":c:member:`~PyTypeObject.tp_cache`" msgstr "" -#: ../Doc/c-api/type.rst:189 +#: c-api/type.rst:190 msgid ":c:member:`~PyTypeObject.tp_subclasses`" msgstr "" -#: ../Doc/c-api/type.rst:190 +#: c-api/type.rst:191 msgid ":c:member:`~PyTypeObject.tp_weaklist`" msgstr "" -#: ../Doc/c-api/type.rst:191 +#: c-api/type.rst:192 msgid ":c:member:`~PyTypeObject.tp_print`" msgstr "" -#: ../Doc/c-api/type.rst:192 +#: c-api/type.rst:193 msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`" msgstr "" -#: ../Doc/c-api/type.rst:193 +#: c-api/type.rst:194 msgid ":c:member:`~PyTypeObject.tp_dictoffset`" msgstr "" -#: ../Doc/c-api/type.rst:194 +#: c-api/type.rst:195 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" msgstr "" -#: ../Doc/c-api/type.rst:195 +#: c-api/type.rst:196 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr "" -#: ../Doc/c-api/type.rst:197 +#: c-api/type.rst:198 msgid "" -"Setting :c:data:`Py_tp_bases` may be problematic on some platforms. To avoid " -"issues, use the *bases* argument of :py:func:`PyType_FromSpecWithBases` " -"instead." +"Setting :c:data:`Py_tp_bases` or :c:data:`Py_tp_base` may be problematic on " +"some platforms. To avoid issues, use the *bases* argument of :py:func:" +"`PyType_FromSpecWithBases` instead." msgstr "" -#: ../Doc/c-api/type.rst:203 +#: c-api/type.rst:205 msgid "" "The desired value of the slot. In most cases, this is a pointer to a " "function." msgstr "" -#: ../Doc/c-api/type.rst:206 -msgid "May not be *NULL*." +#: c-api/type.rst:208 +msgid "May not be ``NULL``." msgstr "" diff --git a/c-api/typeobj.po b/c-api/typeobj.po index a5d4844d0b..df0e38f03a 100644 --- a/c-api/typeobj.po +++ b/c-api/typeobj.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,22 +14,22 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/typeobj.rst:6 +#: c-api/typeobj.rst:6 msgid "Type Objects" msgstr "Objets type" -#: ../Doc/c-api/typeobj.rst:8 +#: c-api/typeobj.rst:8 msgid "" "Perhaps one of the most important structures of the Python object system is " "the structure that defines a new type: the :c:type:`PyTypeObject` " -"structure. Type objects can be handled using any of the :c:func:`PyObject_" -"\\*` or :c:func:`PyType_\\*` functions, but do not offer much that's " -"interesting to most Python applications. These objects are fundamental to " -"how objects behave, so they are very important to the interpreter itself and " -"to any extension module that implements new types." +"structure. Type objects can be handled using any of the :c:func:" +"`PyObject_\\*` or :c:func:`PyType_\\*` functions, but do not offer much " +"that's interesting to most Python applications. These objects are " +"fundamental to how objects behave, so they are very important to the " +"interpreter itself and to any extension module that implements new types." msgstr "" -#: ../Doc/c-api/typeobj.rst:16 +#: c-api/typeobj.rst:16 msgid "" "Type objects are fairly large compared to most of the standard types. The " "reason for the size is that each type object stores a large number of " @@ -39,1109 +39,1056 @@ msgid "" "they occur in the structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:23 +#: c-api/typeobj.rst:23 msgid "" "In addition to the following quick reference, the :ref:`typedef-examples` " "section provides at-a-glance insight into the meaning and use of :c:type:" "`PyTypeObject`." msgstr "" -#: ../Doc/c-api/typeobj.rst:29 +#: c-api/typeobj.rst:29 msgid "Quick Reference" msgstr "" -#: ../Doc/c-api/typeobj.rst:34 +#: c-api/typeobj.rst:34 msgid "\"tp slots\"" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 +#: c-api/typeobj.rst:40 msgid "PyTypeObject Slot [#slots]_" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 ../Doc/c-api/typeobj.rst:200 +#: c-api/typeobj.rst:200 msgid ":ref:`Type `" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 +#: c-api/typeobj.rst:40 msgid "special methods/attrs" msgstr "" -#: ../Doc/c-api/typeobj.rst:40 +#: c-api/typeobj.rst:40 msgid "Info [#cols]_" msgstr "" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "O" msgstr "O" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "T" msgstr "T" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "D" msgstr "D" -#: ../Doc/c-api/typeobj.rst:42 +#: c-api/typeobj.rst:42 msgid "I" msgstr "" -#: ../Doc/c-api/typeobj.rst:44 +#: c-api/typeobj.rst:44 msgid " :c:member:`~PyTypeObject.tp_name`" msgstr "" -#: ../Doc/c-api/typeobj.rst:44 ../Doc/c-api/typeobj.rst:86 -#: ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:86 c-api/typeobj.rst:0 msgid "const char *" msgstr "" -#: ../Doc/c-api/typeobj.rst:44 +#: c-api/typeobj.rst:44 msgid "__name__" msgstr "__name__" -#: ../Doc/c-api/typeobj.rst:44 ../Doc/c-api/typeobj.rst:46 -#: ../Doc/c-api/typeobj.rst:48 ../Doc/c-api/typeobj.rst:50 -#: ../Doc/c-api/typeobj.rst:62 ../Doc/c-api/typeobj.rst:70 -#: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:74 -#: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:79 -#: ../Doc/c-api/typeobj.rst:84 ../Doc/c-api/typeobj.rst:86 -#: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:90 -#: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:99 -#: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:103 -#: ../Doc/c-api/typeobj.rst:105 ../Doc/c-api/typeobj.rst:107 -#: ../Doc/c-api/typeobj.rst:109 ../Doc/c-api/typeobj.rst:111 -#: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:117 -#: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:122 -#: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:126 -#: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:130 -#: ../Doc/c-api/typeobj.rst:146 +#: c-api/typeobj.rst:46 c-api/typeobj.rst:50 c-api/typeobj.rst:70 +#: c-api/typeobj.rst:74 c-api/typeobj.rst:79 c-api/typeobj.rst:86 +#: c-api/typeobj.rst:90 c-api/typeobj.rst:99 c-api/typeobj.rst:103 +#: c-api/typeobj.rst:107 c-api/typeobj.rst:111 c-api/typeobj.rst:117 +#: c-api/typeobj.rst:122 c-api/typeobj.rst:126 c-api/typeobj.rst:130 +#: c-api/typeobj.rst:146 msgid "X" msgstr "" -#: ../Doc/c-api/typeobj.rst:46 +#: c-api/typeobj.rst:46 msgid ":c:member:`~PyTypeObject.tp_basicsize`" msgstr "" -#: ../Doc/c-api/typeobj.rst:46 ../Doc/c-api/typeobj.rst:48 -#: ../Doc/c-api/typeobj.rst:52 ../Doc/c-api/typeobj.rst:99 -#: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:413 +#: c-api/typeobj.rst:48 c-api/typeobj.rst:99 c-api/typeobj.rst:0 +#: c-api/typeobj.rst:413 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/typeobj.rst:48 +#: c-api/typeobj.rst:48 msgid ":c:member:`~PyTypeObject.tp_itemsize`" msgstr "" -#: ../Doc/c-api/typeobj.rst:50 +#: c-api/typeobj.rst:50 msgid ":c:member:`~PyTypeObject.tp_dealloc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:50 ../Doc/c-api/typeobj.rst:142 -#: ../Doc/c-api/typeobj.rst:146 ../Doc/c-api/typeobj.rst:343 +#: c-api/typeobj.rst:142 c-api/typeobj.rst:343 msgid ":c:type:`destructor`" msgstr "" -#: ../Doc/c-api/typeobj.rst:52 +#: c-api/typeobj.rst:52 msgid ":c:member:`~PyTypeObject.tp_vectorcall_offset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:52 ../Doc/c-api/typeobj.rst:84 -#: ../Doc/c-api/typeobj.rst:99 ../Doc/c-api/typeobj.rst:113 -#: ../Doc/c-api/typeobj.rst:120 ../Doc/c-api/typeobj.rst:124 -#: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:128 +#: c-api/typeobj.rst:84 c-api/typeobj.rst:113 c-api/typeobj.rst:124 +#: c-api/typeobj.rst:128 msgid "?" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 +#: c-api/typeobj.rst:54 msgid "(:c:member:`~PyTypeObject.tp_getattr`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:367 +#: c-api/typeobj.rst:367 msgid ":c:type:`getattrfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:76 +#: c-api/typeobj.rst:76 msgid "__getattribute__, __getattr__" msgstr "" -#: ../Doc/c-api/typeobj.rst:54 ../Doc/c-api/typeobj.rst:57 -#: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:76 -#: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:88 -#: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:92 +#: c-api/typeobj.rst:57 c-api/typeobj.rst:76 c-api/typeobj.rst:88 +#: c-api/typeobj.rst:92 msgid "G" msgstr "" -#: ../Doc/c-api/typeobj.rst:57 +#: c-api/typeobj.rst:57 msgid "(:c:member:`~PyTypeObject.tp_setattr`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:372 +#: c-api/typeobj.rst:372 msgid ":c:type:`setattrfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:57 ../Doc/c-api/typeobj.rst:79 +#: c-api/typeobj.rst:79 msgid "__setattr__, __delattr__" msgstr "" -#: ../Doc/c-api/typeobj.rst:60 +#: c-api/typeobj.rst:60 msgid ":c:member:`~PyTypeObject.tp_as_async`" msgstr "" -#: ../Doc/c-api/typeobj.rst:60 +#: c-api/typeobj.rst:60 msgid ":c:type:`PyAsyncMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:60 ../Doc/c-api/typeobj.rst:64 -#: ../Doc/c-api/typeobj.rst:66 ../Doc/c-api/typeobj.rst:68 +#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 msgid ":ref:`sub-slots`" -msgstr "" +msgstr ":ref:`sub-slots`" -#: ../Doc/c-api/typeobj.rst:60 ../Doc/c-api/typeobj.rst:64 -#: ../Doc/c-api/typeobj.rst:66 ../Doc/c-api/typeobj.rst:68 -#: ../Doc/c-api/typeobj.rst:82 +#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82 msgid "%" msgstr "%" -#: ../Doc/c-api/typeobj.rst:62 +#: c-api/typeobj.rst:62 msgid ":c:member:`~PyTypeObject.tp_repr`" msgstr "" -#: ../Doc/c-api/typeobj.rst:62 ../Doc/c-api/typeobj.rst:74 -#: ../Doc/c-api/typeobj.rst:365 +#: c-api/typeobj.rst:74 c-api/typeobj.rst:365 msgid ":c:type:`reprfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:62 +#: c-api/typeobj.rst:62 msgid "__repr__" msgstr "" -#: ../Doc/c-api/typeobj.rst:64 +#: c-api/typeobj.rst:64 msgid ":c:member:`~PyTypeObject.tp_as_number`" msgstr "" -#: ../Doc/c-api/typeobj.rst:64 +#: c-api/typeobj.rst:64 msgid ":c:type:`PyNumberMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:66 +#: c-api/typeobj.rst:66 msgid ":c:member:`~PyTypeObject.tp_as_sequence`" msgstr "" -#: ../Doc/c-api/typeobj.rst:66 +#: c-api/typeobj.rst:66 msgid ":c:type:`PySequenceMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:68 +#: c-api/typeobj.rst:68 msgid ":c:member:`~PyTypeObject.tp_as_mapping`" msgstr "" -#: ../Doc/c-api/typeobj.rst:68 +#: c-api/typeobj.rst:68 msgid ":c:type:`PyMappingMethods` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:70 +#: c-api/typeobj.rst:70 msgid ":c:member:`~PyTypeObject.tp_hash`" msgstr "" -#: ../Doc/c-api/typeobj.rst:70 ../Doc/c-api/typeobj.rst:401 +#: c-api/typeobj.rst:401 msgid ":c:type:`hashfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:70 +#: c-api/typeobj.rst:70 msgid "__hash__" msgstr "" -#: ../Doc/c-api/typeobj.rst:72 +#: c-api/typeobj.rst:72 msgid ":c:member:`~PyTypeObject.tp_call`" msgstr "" -#: ../Doc/c-api/typeobj.rst:72 ../Doc/c-api/typeobj.rst:234 -#: ../Doc/c-api/typeobj.rst:237 ../Doc/c-api/typeobj.rst:437 +#: c-api/typeobj.rst:234 c-api/typeobj.rst:437 msgid ":c:type:`ternaryfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:72 +#: c-api/typeobj.rst:72 msgid "__call__" msgstr "" -#: ../Doc/c-api/typeobj.rst:74 +#: c-api/typeobj.rst:74 msgid ":c:member:`~PyTypeObject.tp_str`" msgstr "" -#: ../Doc/c-api/typeobj.rst:74 +#: c-api/typeobj.rst:74 msgid "__str__" msgstr "" -#: ../Doc/c-api/typeobj.rst:76 +#: c-api/typeobj.rst:76 msgid ":c:member:`~PyTypeObject.tp_getattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:76 ../Doc/c-api/typeobj.rst:378 +#: c-api/typeobj.rst:378 msgid ":c:type:`getattrofunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:79 +#: c-api/typeobj.rst:79 msgid ":c:member:`~PyTypeObject.tp_setattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:79 ../Doc/c-api/typeobj.rst:383 +#: c-api/typeobj.rst:383 msgid ":c:type:`setattrofunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:82 +#: c-api/typeobj.rst:82 msgid ":c:member:`~PyTypeObject.tp_as_buffer`" msgstr "" -#: ../Doc/c-api/typeobj.rst:82 +#: c-api/typeobj.rst:82 msgid ":c:type:`PyBufferProcs` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:84 +#: c-api/typeobj.rst:84 msgid ":c:member:`~PyTypeObject.tp_flags`" msgstr "" -#: ../Doc/c-api/typeobj.rst:84 +#: c-api/typeobj.rst:84 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/typeobj.rst:86 +#: c-api/typeobj.rst:86 msgid ":c:member:`~PyTypeObject.tp_doc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:86 +#: c-api/typeobj.rst:86 msgid "__doc__" msgstr "__doc__" -#: ../Doc/c-api/typeobj.rst:88 +#: c-api/typeobj.rst:88 msgid ":c:member:`~PyTypeObject.tp_traverse`" msgstr "" -#: ../Doc/c-api/typeobj.rst:88 ../Doc/c-api/typeobj.rst:347 +#: c-api/typeobj.rst:347 msgid ":c:type:`traverseproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:90 +#: c-api/typeobj.rst:90 msgid ":c:member:`~PyTypeObject.tp_clear`" msgstr "" -#: ../Doc/c-api/typeobj.rst:90 ../Doc/c-api/typeobj.rst:130 -#: ../Doc/c-api/typeobj.rst:245 ../Doc/c-api/typeobj.rst:426 +#: c-api/typeobj.rst:130 c-api/typeobj.rst:426 msgid ":c:type:`inquiry`" msgstr "" -#: ../Doc/c-api/typeobj.rst:92 +#: c-api/typeobj.rst:92 msgid ":c:member:`~PyTypeObject.tp_richcompare`" msgstr "" -#: ../Doc/c-api/typeobj.rst:92 ../Doc/c-api/typeobj.rst:403 +#: c-api/typeobj.rst:403 msgid ":c:type:`richcmpfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:92 +#: c-api/typeobj.rst:92 msgid "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" msgstr "" -#: ../Doc/c-api/typeobj.rst:99 +#: c-api/typeobj.rst:99 msgid ":c:member:`~PyTypeObject.tp_weaklistoffset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:101 +#: c-api/typeobj.rst:101 msgid ":c:member:`~PyTypeObject.tp_iter`" msgstr "" -#: ../Doc/c-api/typeobj.rst:101 ../Doc/c-api/typeobj.rst:409 +#: c-api/typeobj.rst:409 msgid ":c:type:`getiterfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:101 +#: c-api/typeobj.rst:101 msgid "__iter__" msgstr "" -#: ../Doc/c-api/typeobj.rst:103 +#: c-api/typeobj.rst:103 msgid ":c:member:`~PyTypeObject.tp_iternext`" msgstr "" -#: ../Doc/c-api/typeobj.rst:103 ../Doc/c-api/typeobj.rst:411 +#: c-api/typeobj.rst:411 msgid ":c:type:`iternextfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:103 +#: c-api/typeobj.rst:103 msgid "__next__" msgstr "" -#: ../Doc/c-api/typeobj.rst:105 +#: c-api/typeobj.rst:105 msgid ":c:member:`~PyTypeObject.tp_methods`" msgstr "" -#: ../Doc/c-api/typeobj.rst:105 +#: c-api/typeobj.rst:105 msgid ":c:type:`PyMethodDef` []" msgstr "" -#: ../Doc/c-api/typeobj.rst:107 +#: c-api/typeobj.rst:107 msgid ":c:member:`~PyTypeObject.tp_members`" msgstr "" -#: ../Doc/c-api/typeobj.rst:107 +#: c-api/typeobj.rst:107 msgid ":c:type:`PyMemberDef` []" msgstr "" -#: ../Doc/c-api/typeobj.rst:109 +#: c-api/typeobj.rst:109 msgid ":c:member:`~PyTypeObject.tp_getset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:109 +#: c-api/typeobj.rst:109 msgid ":c:type:`PyGetSetDef` []" msgstr "" -#: ../Doc/c-api/typeobj.rst:111 +#: c-api/typeobj.rst:111 msgid ":c:member:`~PyTypeObject.tp_base`" msgstr "" -#: ../Doc/c-api/typeobj.rst:111 ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:0 msgid ":c:type:`PyTypeObject` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:111 +#: c-api/typeobj.rst:111 msgid "__base__" msgstr "" -#: ../Doc/c-api/typeobj.rst:113 +#: c-api/typeobj.rst:113 msgid ":c:member:`~PyTypeObject.tp_dict`" msgstr "" -#: ../Doc/c-api/typeobj.rst:113 ../Doc/c-api/typeobj.rst:132 -#: ../Doc/c-api/typeobj.rst:134 ../Doc/c-api/typeobj.rst:136 -#: ../Doc/c-api/typeobj.rst:138 ../Doc/c-api/typeobj.rst:140 -#: ../Doc/c-api/typeobj.rst:338 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:353 ../Doc/c-api/typeobj.rst:365 -#: ../Doc/c-api/typeobj.rst:367 ../Doc/c-api/typeobj.rst:378 -#: ../Doc/c-api/typeobj.rst:389 ../Doc/c-api/typeobj.rst:401 -#: ../Doc/c-api/typeobj.rst:403 ../Doc/c-api/typeobj.rst:409 -#: ../Doc/c-api/typeobj.rst:411 ../Doc/c-api/typeobj.rst:413 -#: ../Doc/c-api/typeobj.rst:428 ../Doc/c-api/typeobj.rst:432 -#: ../Doc/c-api/typeobj.rst:437 ../Doc/c-api/typeobj.rst:443 +#: c-api/typeobj.rst:132 c-api/typeobj.rst:136 c-api/typeobj.rst:140 +#: c-api/typeobj.rst:0 c-api/typeobj.rst:365 c-api/typeobj.rst:378 +#: c-api/typeobj.rst:401 c-api/typeobj.rst:409 c-api/typeobj.rst:413 +#: c-api/typeobj.rst:432 c-api/typeobj.rst:443 msgid ":c:type:`PyObject` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:113 +#: c-api/typeobj.rst:113 msgid "__dict__" msgstr "" -#: ../Doc/c-api/typeobj.rst:115 +#: c-api/typeobj.rst:115 msgid ":c:member:`~PyTypeObject.tp_descr_get`" msgstr "" -#: ../Doc/c-api/typeobj.rst:115 ../Doc/c-api/typeobj.rst:389 +#: c-api/typeobj.rst:389 msgid ":c:type:`descrgetfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:115 +#: c-api/typeobj.rst:115 msgid "__get__" msgstr "" -#: ../Doc/c-api/typeobj.rst:117 +#: c-api/typeobj.rst:117 msgid ":c:member:`~PyTypeObject.tp_descr_set`" msgstr "" -#: ../Doc/c-api/typeobj.rst:117 ../Doc/c-api/typeobj.rst:395 +#: c-api/typeobj.rst:395 msgid ":c:type:`descrsetfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:117 +#: c-api/typeobj.rst:117 msgid "__set__, __delete__" msgstr "" -#: ../Doc/c-api/typeobj.rst:120 +#: c-api/typeobj.rst:120 msgid ":c:member:`~PyTypeObject.tp_dictoffset`" msgstr "" -#: ../Doc/c-api/typeobj.rst:122 +#: c-api/typeobj.rst:122 msgid ":c:member:`~PyTypeObject.tp_init`" msgstr "" -#: ../Doc/c-api/typeobj.rst:122 ../Doc/c-api/typeobj.rst:359 +#: c-api/typeobj.rst:359 msgid ":c:type:`initproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:122 +#: c-api/typeobj.rst:122 msgid "__init__" msgstr "" -#: ../Doc/c-api/typeobj.rst:124 +#: c-api/typeobj.rst:124 msgid ":c:member:`~PyTypeObject.tp_alloc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:124 ../Doc/c-api/typeobj.rst:338 +#: c-api/typeobj.rst:338 msgid ":c:type:`allocfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:126 +#: c-api/typeobj.rst:126 msgid ":c:member:`~PyTypeObject.tp_new`" msgstr "" -#: ../Doc/c-api/typeobj.rst:126 ../Doc/c-api/typeobj.rst:353 +#: c-api/typeobj.rst:353 msgid ":c:type:`newfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:126 +#: c-api/typeobj.rst:126 msgid "__new__" msgstr "" -#: ../Doc/c-api/typeobj.rst:128 +#: c-api/typeobj.rst:128 msgid ":c:member:`~PyTypeObject.tp_free`" msgstr "" -#: ../Doc/c-api/typeobj.rst:128 ../Doc/c-api/typeobj.rst:345 +#: c-api/typeobj.rst:345 msgid ":c:type:`freefunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:130 +#: c-api/typeobj.rst:130 msgid ":c:member:`~PyTypeObject.tp_is_gc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:132 +#: c-api/typeobj.rst:132 msgid "<:c:member:`~PyTypeObject.tp_bases`>" msgstr "" -#: ../Doc/c-api/typeobj.rst:132 +#: c-api/typeobj.rst:132 msgid "__bases__" msgstr "" -#: ../Doc/c-api/typeobj.rst:132 ../Doc/c-api/typeobj.rst:134 +#: c-api/typeobj.rst:134 msgid "~" msgstr "" -#: ../Doc/c-api/typeobj.rst:134 +#: c-api/typeobj.rst:134 msgid "<:c:member:`~PyTypeObject.tp_mro`>" msgstr "" -#: ../Doc/c-api/typeobj.rst:134 +#: c-api/typeobj.rst:134 msgid "__mro__" msgstr "" -#: ../Doc/c-api/typeobj.rst:136 +#: c-api/typeobj.rst:136 msgid "[:c:member:`~PyTypeObject.tp_cache`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:138 +#: c-api/typeobj.rst:138 msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:138 +#: c-api/typeobj.rst:138 msgid "__subclasses__" msgstr "" -#: ../Doc/c-api/typeobj.rst:140 +#: c-api/typeobj.rst:140 msgid "[:c:member:`~PyTypeObject.tp_weaklist`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:142 +#: c-api/typeobj.rst:142 msgid "(:c:member:`~PyTypeObject.tp_del`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:144 +#: c-api/typeobj.rst:144 msgid "[:c:member:`~PyTypeObject.tp_version_tag`]" msgstr "" -#: ../Doc/c-api/typeobj.rst:144 +#: c-api/typeobj.rst:144 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/typeobj.rst:146 +#: c-api/typeobj.rst:146 msgid ":c:member:`~PyTypeObject.tp_finalize`" msgstr "" -#: ../Doc/c-api/typeobj.rst:146 +#: c-api/typeobj.rst:146 msgid "__del__" msgstr "" -#: ../Doc/c-api/typeobj.rst:149 +#: c-api/typeobj.rst:149 msgid "" "If :const:`COUNT_ALLOCS` is defined then the following (internal-only) " "fields exist as well:" msgstr "" -#: ../Doc/c-api/typeobj.rst:152 +#: c-api/typeobj.rst:152 msgid ":c:member:`~PyTypeObject.tp_allocs`" msgstr "" -#: ../Doc/c-api/typeobj.rst:153 +#: c-api/typeobj.rst:153 msgid ":c:member:`~PyTypeObject.tp_frees`" msgstr "" -#: ../Doc/c-api/typeobj.rst:154 +#: c-api/typeobj.rst:154 msgid ":c:member:`~PyTypeObject.tp_maxalloc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:155 +#: c-api/typeobj.rst:155 msgid ":c:member:`~PyTypeObject.tp_prev`" msgstr "" -#: ../Doc/c-api/typeobj.rst:156 +#: c-api/typeobj.rst:156 msgid ":c:member:`~PyTypeObject.tp_next`" msgstr "" -#: ../Doc/c-api/typeobj.rst:159 +#: c-api/typeobj.rst:159 msgid "" "A slot name in parentheses indicates it is (effectively) deprecated. Names " "in angle brackets should be treated as read-only. Names in square brackets " "are for internal use only. \"\" (as a prefix) means the field is required " -"(must be non-*NULL*)." +"(must be non-``NULL``)." msgstr "" -#: ../Doc/c-api/typeobj.rst:163 +#: c-api/typeobj.rst:163 msgid "Columns:" msgstr "" -#: ../Doc/c-api/typeobj.rst:165 +#: c-api/typeobj.rst:165 msgid "**\"O\"**: set on :c:type:`PyBaseObject_Type`" msgstr "" -#: ../Doc/c-api/typeobj.rst:167 +#: c-api/typeobj.rst:167 msgid "**\"T\"**: set on :c:type:`PyType_Type`" msgstr "" -#: ../Doc/c-api/typeobj.rst:169 -msgid "**\"D\"**: default (if slot is set to *NULL*)" +#: c-api/typeobj.rst:169 +msgid "**\"D\"**: default (if slot is set to ``NULL``)" msgstr "" -#: ../Doc/c-api/typeobj.rst:179 +#: c-api/typeobj.rst:179 msgid "**\"I\"**: inheritance" msgstr "" -#: ../Doc/c-api/typeobj.rst:188 +#: c-api/typeobj.rst:188 msgid "" "Note that some slots are effectively inherited through the normal attribute " "lookup chain." msgstr "" -#: ../Doc/c-api/typeobj.rst:194 +#: c-api/typeobj.rst:194 msgid "sub-slots" msgstr "" -#: ../Doc/c-api/typeobj.rst:200 +#: c-api/typeobj.rst:200 msgid "Slot" msgstr "" -#: ../Doc/c-api/typeobj.rst:200 +#: c-api/typeobj.rst:200 +#, fuzzy msgid "special methods" -msgstr "" +msgstr "méthode spéciale" -#: ../Doc/c-api/typeobj.rst:203 +#: c-api/typeobj.rst:203 msgid ":c:member:`~PyAsyncMethods.am_await`" msgstr "" -#: ../Doc/c-api/typeobj.rst:203 ../Doc/c-api/typeobj.rst:205 -#: ../Doc/c-api/typeobj.rst:207 ../Doc/c-api/typeobj.rst:239 -#: ../Doc/c-api/typeobj.rst:241 ../Doc/c-api/typeobj.rst:243 -#: ../Doc/c-api/typeobj.rst:247 ../Doc/c-api/typeobj.rst:274 -#: ../Doc/c-api/typeobj.rst:278 ../Doc/c-api/typeobj.rst:288 -#: ../Doc/c-api/typeobj.rst:428 +#: c-api/typeobj.rst:205 c-api/typeobj.rst:239 c-api/typeobj.rst:243 +#: c-api/typeobj.rst:274 c-api/typeobj.rst:288 c-api/typeobj.rst:428 msgid ":c:type:`unaryfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:203 +#: c-api/typeobj.rst:203 msgid "__await__" msgstr "" -#: ../Doc/c-api/typeobj.rst:205 +#: c-api/typeobj.rst:205 msgid ":c:member:`~PyAsyncMethods.am_aiter`" msgstr "" -#: ../Doc/c-api/typeobj.rst:205 +#: c-api/typeobj.rst:205 msgid "__aiter__" msgstr "" -#: ../Doc/c-api/typeobj.rst:207 +#: c-api/typeobj.rst:207 msgid ":c:member:`~PyAsyncMethods.am_anext`" msgstr "" -#: ../Doc/c-api/typeobj.rst:207 +#: c-api/typeobj.rst:207 msgid "__anext__" msgstr "" -#: ../Doc/c-api/typeobj.rst:211 +#: c-api/typeobj.rst:211 msgid ":c:member:`~PyNumberMethods.nb_add`" msgstr "" -#: ../Doc/c-api/typeobj.rst:211 ../Doc/c-api/typeobj.rst:214 -#: ../Doc/c-api/typeobj.rst:216 ../Doc/c-api/typeobj.rst:219 -#: ../Doc/c-api/typeobj.rst:221 ../Doc/c-api/typeobj.rst:224 -#: ../Doc/c-api/typeobj.rst:226 ../Doc/c-api/typeobj.rst:229 -#: ../Doc/c-api/typeobj.rst:231 ../Doc/c-api/typeobj.rst:249 -#: ../Doc/c-api/typeobj.rst:252 ../Doc/c-api/typeobj.rst:254 -#: ../Doc/c-api/typeobj.rst:257 ../Doc/c-api/typeobj.rst:259 -#: ../Doc/c-api/typeobj.rst:262 ../Doc/c-api/typeobj.rst:264 -#: ../Doc/c-api/typeobj.rst:267 ../Doc/c-api/typeobj.rst:269 -#: ../Doc/c-api/typeobj.rst:272 ../Doc/c-api/typeobj.rst:280 -#: ../Doc/c-api/typeobj.rst:282 ../Doc/c-api/typeobj.rst:284 -#: ../Doc/c-api/typeobj.rst:286 ../Doc/c-api/typeobj.rst:290 -#: ../Doc/c-api/typeobj.rst:293 ../Doc/c-api/typeobj.rst:299 -#: ../Doc/c-api/typeobj.rst:308 ../Doc/c-api/typeobj.rst:319 -#: ../Doc/c-api/typeobj.rst:432 +#: c-api/typeobj.rst:214 c-api/typeobj.rst:219 c-api/typeobj.rst:224 +#: c-api/typeobj.rst:229 c-api/typeobj.rst:249 c-api/typeobj.rst:254 +#: c-api/typeobj.rst:259 c-api/typeobj.rst:264 c-api/typeobj.rst:269 +#: c-api/typeobj.rst:280 c-api/typeobj.rst:284 c-api/typeobj.rst:290 +#: c-api/typeobj.rst:299 c-api/typeobj.rst:319 c-api/typeobj.rst:432 msgid ":c:type:`binaryfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:211 +#: c-api/typeobj.rst:211 msgid "__add__ __radd__" msgstr "" -#: ../Doc/c-api/typeobj.rst:214 +#: c-api/typeobj.rst:214 msgid ":c:member:`~PyNumberMethods.nb_inplace_add`" msgstr "" -#: ../Doc/c-api/typeobj.rst:214 ../Doc/c-api/typeobj.rst:319 +#: c-api/typeobj.rst:319 msgid "__iadd__" msgstr "" -#: ../Doc/c-api/typeobj.rst:216 +#: c-api/typeobj.rst:216 msgid ":c:member:`~PyNumberMethods.nb_subtract`" msgstr "" -#: ../Doc/c-api/typeobj.rst:216 +#: c-api/typeobj.rst:216 msgid "__sub__ __rsub__" msgstr "" -#: ../Doc/c-api/typeobj.rst:219 +#: c-api/typeobj.rst:219 msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`" msgstr "" -#: ../Doc/c-api/typeobj.rst:219 +#: c-api/typeobj.rst:219 msgid "__sub__" msgstr "" -#: ../Doc/c-api/typeobj.rst:221 +#: c-api/typeobj.rst:221 msgid ":c:member:`~PyNumberMethods.nb_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:221 +#: c-api/typeobj.rst:221 msgid "__mul__ __rmul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:224 +#: c-api/typeobj.rst:224 msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:224 ../Doc/c-api/typeobj.rst:310 +#: c-api/typeobj.rst:310 msgid "__mul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:226 +#: c-api/typeobj.rst:226 msgid ":c:member:`~PyNumberMethods.nb_remainder`" msgstr "" -#: ../Doc/c-api/typeobj.rst:226 +#: c-api/typeobj.rst:226 msgid "__mod__ __rmod__" msgstr "" -#: ../Doc/c-api/typeobj.rst:229 +#: c-api/typeobj.rst:229 msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`" msgstr "" -#: ../Doc/c-api/typeobj.rst:229 +#: c-api/typeobj.rst:229 msgid "__mod__" msgstr "" -#: ../Doc/c-api/typeobj.rst:231 +#: c-api/typeobj.rst:231 msgid ":c:member:`~PyNumberMethods.nb_divmod`" msgstr "" -#: ../Doc/c-api/typeobj.rst:231 +#: c-api/typeobj.rst:231 msgid "__divmod__ __rdivmod__" msgstr "" -#: ../Doc/c-api/typeobj.rst:234 +#: c-api/typeobj.rst:234 msgid ":c:member:`~PyNumberMethods.nb_power`" msgstr "" -#: ../Doc/c-api/typeobj.rst:234 +#: c-api/typeobj.rst:234 msgid "__pow__ __rpow__" msgstr "" -#: ../Doc/c-api/typeobj.rst:237 +#: c-api/typeobj.rst:237 msgid ":c:member:`~PyNumberMethods.nb_inplace_power`" msgstr "" -#: ../Doc/c-api/typeobj.rst:237 +#: c-api/typeobj.rst:237 msgid "__pow__" msgstr "" -#: ../Doc/c-api/typeobj.rst:239 +#: c-api/typeobj.rst:239 msgid ":c:member:`~PyNumberMethods.nb_negative`" msgstr "" -#: ../Doc/c-api/typeobj.rst:239 +#: c-api/typeobj.rst:239 msgid "__neg__" msgstr "" -#: ../Doc/c-api/typeobj.rst:241 +#: c-api/typeobj.rst:241 msgid ":c:member:`~PyNumberMethods.nb_positive`" msgstr "" -#: ../Doc/c-api/typeobj.rst:241 +#: c-api/typeobj.rst:241 msgid "__pos__" msgstr "" -#: ../Doc/c-api/typeobj.rst:243 +#: c-api/typeobj.rst:243 msgid ":c:member:`~PyNumberMethods.nb_absolute`" msgstr "" -#: ../Doc/c-api/typeobj.rst:243 +#: c-api/typeobj.rst:243 msgid "__abs__" msgstr "" -#: ../Doc/c-api/typeobj.rst:245 +#: c-api/typeobj.rst:245 msgid ":c:member:`~PyNumberMethods.nb_bool`" msgstr "" -#: ../Doc/c-api/typeobj.rst:245 +#: c-api/typeobj.rst:245 msgid "__bool__" msgstr "" -#: ../Doc/c-api/typeobj.rst:247 +#: c-api/typeobj.rst:247 msgid ":c:member:`~PyNumberMethods.nb_invert`" msgstr "" -#: ../Doc/c-api/typeobj.rst:247 +#: c-api/typeobj.rst:247 msgid "__invert__" msgstr "" -#: ../Doc/c-api/typeobj.rst:249 +#: c-api/typeobj.rst:249 msgid ":c:member:`~PyNumberMethods.nb_lshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:249 +#: c-api/typeobj.rst:249 msgid "__lshift__ __rlshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:252 +#: c-api/typeobj.rst:252 msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:252 +#: c-api/typeobj.rst:252 msgid "__lshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:254 +#: c-api/typeobj.rst:254 msgid ":c:member:`~PyNumberMethods.nb_rshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:254 +#: c-api/typeobj.rst:254 msgid "__rshift__ __rrshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:257 +#: c-api/typeobj.rst:257 msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`" msgstr "" -#: ../Doc/c-api/typeobj.rst:257 +#: c-api/typeobj.rst:257 msgid "__rshift__" msgstr "" -#: ../Doc/c-api/typeobj.rst:259 +#: c-api/typeobj.rst:259 msgid ":c:member:`~PyNumberMethods.nb_and`" msgstr "" -#: ../Doc/c-api/typeobj.rst:259 +#: c-api/typeobj.rst:259 msgid "__and__ __rand__" msgstr "" -#: ../Doc/c-api/typeobj.rst:262 +#: c-api/typeobj.rst:262 msgid ":c:member:`~PyNumberMethods.nb_inplace_and`" msgstr "" -#: ../Doc/c-api/typeobj.rst:262 +#: c-api/typeobj.rst:262 msgid "__and__" msgstr "" -#: ../Doc/c-api/typeobj.rst:264 +#: c-api/typeobj.rst:264 msgid ":c:member:`~PyNumberMethods.nb_xor`" msgstr "" -#: ../Doc/c-api/typeobj.rst:264 +#: c-api/typeobj.rst:264 msgid "__xor__ __rxor__" msgstr "" -#: ../Doc/c-api/typeobj.rst:267 +#: c-api/typeobj.rst:267 msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`" msgstr "" -#: ../Doc/c-api/typeobj.rst:267 +#: c-api/typeobj.rst:267 msgid "__xor__" msgstr "" -#: ../Doc/c-api/typeobj.rst:269 +#: c-api/typeobj.rst:269 msgid ":c:member:`~PyNumberMethods.nb_or`" msgstr "" -#: ../Doc/c-api/typeobj.rst:269 +#: c-api/typeobj.rst:269 msgid "__or__ __ror__" msgstr "" -#: ../Doc/c-api/typeobj.rst:272 +#: c-api/typeobj.rst:272 msgid ":c:member:`~PyNumberMethods.nb_inplace_or`" msgstr "" -#: ../Doc/c-api/typeobj.rst:272 +#: c-api/typeobj.rst:272 msgid "__or__" msgstr "" -#: ../Doc/c-api/typeobj.rst:274 +#: c-api/typeobj.rst:274 msgid ":c:member:`~PyNumberMethods.nb_int`" msgstr "" -#: ../Doc/c-api/typeobj.rst:274 +#: c-api/typeobj.rst:274 msgid "__int__" msgstr "" -#: ../Doc/c-api/typeobj.rst:276 +#: c-api/typeobj.rst:276 msgid ":c:member:`~PyNumberMethods.nb_reserved`" msgstr "" -#: ../Doc/c-api/typeobj.rst:276 ../Doc/c-api/typeobj.rst:343 -#: ../Doc/c-api/typeobj.rst:345 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:426 +#: c-api/typeobj.rst:343 c-api/typeobj.rst:0 c-api/typeobj.rst:426 msgid "void *" msgstr "" -#: ../Doc/c-api/typeobj.rst:278 +#: c-api/typeobj.rst:278 msgid ":c:member:`~PyNumberMethods.nb_float`" msgstr "" -#: ../Doc/c-api/typeobj.rst:278 +#: c-api/typeobj.rst:278 msgid "__float__" msgstr "" -#: ../Doc/c-api/typeobj.rst:280 +#: c-api/typeobj.rst:280 msgid ":c:member:`~PyNumberMethods.nb_floor_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:280 ../Doc/c-api/typeobj.rst:282 +#: c-api/typeobj.rst:282 msgid "__floordiv__" msgstr "" -#: ../Doc/c-api/typeobj.rst:282 +#: c-api/typeobj.rst:282 msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:284 +#: c-api/typeobj.rst:284 msgid ":c:member:`~PyNumberMethods.nb_true_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:284 ../Doc/c-api/typeobj.rst:286 +#: c-api/typeobj.rst:286 msgid "__truediv__" msgstr "" -#: ../Doc/c-api/typeobj.rst:286 +#: c-api/typeobj.rst:286 msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" msgstr "" -#: ../Doc/c-api/typeobj.rst:288 +#: c-api/typeobj.rst:288 msgid ":c:member:`~PyNumberMethods.nb_index`" msgstr "" -#: ../Doc/c-api/typeobj.rst:288 +#: c-api/typeobj.rst:288 msgid "__index__" msgstr "" -#: ../Doc/c-api/typeobj.rst:290 +#: c-api/typeobj.rst:290 msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:290 +#: c-api/typeobj.rst:290 msgid "__matmul__ __rmatmul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:293 +#: c-api/typeobj.rst:293 msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" msgstr "" -#: ../Doc/c-api/typeobj.rst:293 +#: c-api/typeobj.rst:293 msgid "__matmul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:297 +#: c-api/typeobj.rst:297 msgid ":c:member:`~PyMappingMethods.mp_length`" msgstr "" -#: ../Doc/c-api/typeobj.rst:297 ../Doc/c-api/typeobj.rst:306 -#: ../Doc/c-api/typeobj.rst:413 +#: c-api/typeobj.rst:306 c-api/typeobj.rst:413 msgid ":c:type:`lenfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:297 ../Doc/c-api/typeobj.rst:306 +#: c-api/typeobj.rst:306 msgid "__len__" msgstr "" -#: ../Doc/c-api/typeobj.rst:299 +#: c-api/typeobj.rst:299 msgid ":c:member:`~PyMappingMethods.mp_subscript`" msgstr "" -#: ../Doc/c-api/typeobj.rst:299 ../Doc/c-api/typeobj.rst:312 +#: c-api/typeobj.rst:312 msgid "__getitem__" msgstr "" -#: ../Doc/c-api/typeobj.rst:301 +#: c-api/typeobj.rst:301 msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" msgstr "" -#: ../Doc/c-api/typeobj.rst:301 ../Doc/c-api/typeobj.rst:458 +#: c-api/typeobj.rst:458 msgid ":c:type:`objobjargproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:301 +#: c-api/typeobj.rst:301 msgid "__setitem__, __delitem__" msgstr "" -#: ../Doc/c-api/typeobj.rst:306 +#: c-api/typeobj.rst:306 msgid ":c:member:`~PySequenceMethods.sq_length`" msgstr "" -#: ../Doc/c-api/typeobj.rst:308 +#: c-api/typeobj.rst:308 msgid ":c:member:`~PySequenceMethods.sq_concat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:308 +#: c-api/typeobj.rst:308 msgid "__add__" msgstr "" -#: ../Doc/c-api/typeobj.rst:310 +#: c-api/typeobj.rst:310 msgid ":c:member:`~PySequenceMethods.sq_repeat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:310 ../Doc/c-api/typeobj.rst:312 -#: ../Doc/c-api/typeobj.rst:321 ../Doc/c-api/typeobj.rst:443 +#: c-api/typeobj.rst:312 c-api/typeobj.rst:443 msgid ":c:type:`ssizeargfunc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:312 +#: c-api/typeobj.rst:312 msgid ":c:member:`~PySequenceMethods.sq_item`" msgstr "" -#: ../Doc/c-api/typeobj.rst:314 +#: c-api/typeobj.rst:314 msgid ":c:member:`~PySequenceMethods.sq_ass_item`" msgstr "" -#: ../Doc/c-api/typeobj.rst:314 ../Doc/c-api/typeobj.rst:448 +#: c-api/typeobj.rst:448 msgid ":c:type:`ssizeobjargproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:314 +#: c-api/typeobj.rst:314 msgid "__setitem__ __delitem__" msgstr "" -#: ../Doc/c-api/typeobj.rst:317 +#: c-api/typeobj.rst:317 msgid ":c:member:`~PySequenceMethods.sq_contains`" msgstr "" -#: ../Doc/c-api/typeobj.rst:317 ../Doc/c-api/typeobj.rst:453 +#: c-api/typeobj.rst:453 msgid ":c:type:`objobjproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:317 +#: c-api/typeobj.rst:317 msgid "__contains__" msgstr "" -#: ../Doc/c-api/typeobj.rst:319 +#: c-api/typeobj.rst:319 msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:321 +#: c-api/typeobj.rst:321 msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`" msgstr "" -#: ../Doc/c-api/typeobj.rst:321 +#: c-api/typeobj.rst:321 msgid "__imul__" msgstr "" -#: ../Doc/c-api/typeobj.rst:325 +#: c-api/typeobj.rst:325 msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" msgstr "" -#: ../Doc/c-api/typeobj.rst:325 +#: c-api/typeobj.rst:325 msgid ":c:func:`getbufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:327 +#: c-api/typeobj.rst:327 msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" msgstr "" -#: ../Doc/c-api/typeobj.rst:327 +#: c-api/typeobj.rst:327 msgid ":c:func:`releasebufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:333 +#: c-api/typeobj.rst:333 msgid "slot typedefs" msgstr "" -#: ../Doc/c-api/typeobj.rst:336 +#: c-api/typeobj.rst:336 msgid "typedef" msgstr "" -#: ../Doc/c-api/typeobj.rst:336 +#: c-api/typeobj.rst:336 msgid "Parameter Types" msgstr "" -#: ../Doc/c-api/typeobj.rst:336 +#: c-api/typeobj.rst:336 msgid "Return Type" msgstr "" -#: ../Doc/c-api/typeobj.rst:343 ../Doc/c-api/typeobj.rst:345 -#: ../Doc/c-api/typeobj.rst:421 +#: c-api/typeobj.rst:345 c-api/typeobj.rst:421 msgid "void" msgstr "" -#: ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:0 msgid ":c:type:`visitproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:347 ../Doc/c-api/typeobj.rst:359 -#: ../Doc/c-api/typeobj.rst:372 ../Doc/c-api/typeobj.rst:383 -#: ../Doc/c-api/typeobj.rst:395 ../Doc/c-api/typeobj.rst:0 -#: ../Doc/c-api/typeobj.rst:415 ../Doc/c-api/typeobj.rst:426 -#: ../Doc/c-api/typeobj.rst:448 ../Doc/c-api/typeobj.rst:453 -#: ../Doc/c-api/typeobj.rst:458 +#: c-api/typeobj.rst:359 c-api/typeobj.rst:383 c-api/typeobj.rst:0 +#: c-api/typeobj.rst:426 c-api/typeobj.rst:453 c-api/typeobj.rst:458 msgid "int" msgstr "*int*" -#: ../Doc/c-api/typeobj.rst:401 +#: c-api/typeobj.rst:401 msgid "Py_hash_t" msgstr "" -#: ../Doc/c-api/typeobj.rst:415 +#: c-api/typeobj.rst:415 msgid ":c:type:`getbufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:0 +#: c-api/typeobj.rst:0 msgid ":c:type:`Py_buffer` *" msgstr "" -#: ../Doc/c-api/typeobj.rst:421 +#: c-api/typeobj.rst:421 msgid ":c:type:`releasebufferproc`" msgstr "" -#: ../Doc/c-api/typeobj.rst:465 +#: c-api/typeobj.rst:465 msgid "See :ref:`slot-typedefs` below for more detail." msgstr "" -#: ../Doc/c-api/typeobj.rst:469 +#: c-api/typeobj.rst:469 msgid "PyTypeObject Definition" msgstr "" -#: ../Doc/c-api/typeobj.rst:471 +#: c-api/typeobj.rst:471 msgid "" "The structure definition for :c:type:`PyTypeObject` can be found in :file:" "`Include/object.h`. For convenience of reference, this repeats the " "definition found there:" msgstr "" -#: ../Doc/c-api/typeobj.rst:481 +#: c-api/typeobj.rst:481 #, fuzzy msgid "PyObject Slots" msgstr "Objets type" -#: ../Doc/c-api/typeobj.rst:483 +#: c-api/typeobj.rst:483 msgid "" "The type object structure extends the :c:type:`PyVarObject` structure. The :" "attr:`ob_size` field is used for dynamic types (created by :func:" @@ -1151,55 +1098,36 @@ msgid "" "the :attr:`ob_size` field." msgstr "" -#: ../Doc/c-api/typeobj.rst:493 +#: c-api/typeobj.rst:493 msgid "" "These fields are only present when the macro ``Py_TRACE_REFS`` is defined. " -"Their initialization to *NULL* is taken care of by the " +"Their initialization to ``NULL`` is taken care of by the " "``PyObject_HEAD_INIT`` macro. For statically allocated objects, these " -"fields always remain *NULL*. For dynamically allocated objects, these two " +"fields always remain ``NULL``. For dynamically allocated objects, these two " "fields are used to link the object into a doubly-linked list of *all* live " "objects on the heap. This could be used for various debugging purposes; " "currently the only use is to print the objects that are still alive at the " "end of a run when the environment variable :envvar:`PYTHONDUMPREFS` is set." msgstr "" -#: ../Doc/c-api/typeobj.rst:502 ../Doc/c-api/typeobj.rst:515 -#: ../Doc/c-api/typeobj.rst:538 ../Doc/c-api/typeobj.rst:551 -#: ../Doc/c-api/typeobj.rst:593 ../Doc/c-api/typeobj.rst:636 -#: ../Doc/c-api/typeobj.rst:682 ../Doc/c-api/typeobj.rst:738 -#: ../Doc/c-api/typeobj.rst:757 ../Doc/c-api/typeobj.rst:774 -#: ../Doc/c-api/typeobj.rst:792 ../Doc/c-api/typeobj.rst:816 -#: ../Doc/c-api/typeobj.rst:833 ../Doc/c-api/typeobj.rst:845 -#: ../Doc/c-api/typeobj.rst:857 ../Doc/c-api/typeobj.rst:890 -#: ../Doc/c-api/typeobj.rst:908 ../Doc/c-api/typeobj.rst:928 -#: ../Doc/c-api/typeobj.rst:949 ../Doc/c-api/typeobj.rst:975 -#: ../Doc/c-api/typeobj.rst:994 ../Doc/c-api/typeobj.rst:1010 -#: ../Doc/c-api/typeobj.rst:1047 ../Doc/c-api/typeobj.rst:1058 -#: ../Doc/c-api/typeobj.rst:1068 ../Doc/c-api/typeobj.rst:1078 -#: ../Doc/c-api/typeobj.rst:1092 ../Doc/c-api/typeobj.rst:1111 -#: ../Doc/c-api/typeobj.rst:1134 ../Doc/c-api/typeobj.rst:1179 -#: ../Doc/c-api/typeobj.rst:1203 ../Doc/c-api/typeobj.rst:1245 -#: ../Doc/c-api/typeobj.rst:1306 ../Doc/c-api/typeobj.rst:1365 -#: ../Doc/c-api/typeobj.rst:1395 ../Doc/c-api/typeobj.rst:1427 -#: ../Doc/c-api/typeobj.rst:1450 ../Doc/c-api/typeobj.rst:1463 -#: ../Doc/c-api/typeobj.rst:1478 ../Doc/c-api/typeobj.rst:1492 -#: ../Doc/c-api/typeobj.rst:1522 ../Doc/c-api/typeobj.rst:1542 -#: ../Doc/c-api/typeobj.rst:1568 ../Doc/c-api/typeobj.rst:1586 -#: ../Doc/c-api/typeobj.rst:1626 ../Doc/c-api/typeobj.rst:1677 -#: ../Doc/c-api/typeobj.rst:1694 ../Doc/c-api/typeobj.rst:1732 -#: ../Doc/c-api/typeobj.rst:1753 ../Doc/c-api/typeobj.rst:1785 -#: ../Doc/c-api/typeobj.rst:1802 ../Doc/c-api/typeobj.rst:1813 -#: ../Doc/c-api/typeobj.rst:1823 ../Doc/c-api/typeobj.rst:1832 -#: ../Doc/c-api/typeobj.rst:1842 ../Doc/c-api/typeobj.rst:1856 -#: ../Doc/c-api/typeobj.rst:1894 +#: c-api/typeobj.rst:515 c-api/typeobj.rst:551 c-api/typeobj.rst:636 +#: c-api/typeobj.rst:738 c-api/typeobj.rst:774 c-api/typeobj.rst:816 +#: c-api/typeobj.rst:845 c-api/typeobj.rst:890 c-api/typeobj.rst:928 +#: c-api/typeobj.rst:975 c-api/typeobj.rst:1010 c-api/typeobj.rst:1058 +#: c-api/typeobj.rst:1078 c-api/typeobj.rst:1111 c-api/typeobj.rst:1179 +#: c-api/typeobj.rst:1257 c-api/typeobj.rst:1377 c-api/typeobj.rst:1439 +#: c-api/typeobj.rst:1475 c-api/typeobj.rst:1504 c-api/typeobj.rst:1554 +#: c-api/typeobj.rst:1598 c-api/typeobj.rst:1689 c-api/typeobj.rst:1744 +#: c-api/typeobj.rst:1797 c-api/typeobj.rst:1825 c-api/typeobj.rst:1844 +#: c-api/typeobj.rst:1868 c-api/typeobj.rst:1906 msgid "**Inheritance:**" msgstr "" -#: ../Doc/c-api/typeobj.rst:504 +#: c-api/typeobj.rst:504 msgid "These fields are not inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:509 +#: c-api/typeobj.rst:509 msgid "" "This is the type object's reference count, initialized to ``1`` by the " "``PyObject_HEAD_INIT`` macro. Note that for statically allocated type " @@ -1208,65 +1136,60 @@ msgid "" "objects, the instances *do* count as references." msgstr "" -#: ../Doc/c-api/typeobj.rst:517 ../Doc/c-api/typeobj.rst:553 -#: ../Doc/c-api/typeobj.rst:595 +#: c-api/typeobj.rst:553 c-api/typeobj.rst:595 msgid "This field is not inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:522 +#: c-api/typeobj.rst:522 msgid "" "This is the type's type, in other words its metatype. It is initialized by " "the argument to the ``PyObject_HEAD_INIT`` macro, and its value should " "normally be ``&PyType_Type``. However, for dynamically loadable extension " "modules that must be usable on Windows (at least), the compiler complains " "that this is not a valid initializer. Therefore, the convention is to pass " -"*NULL* to the ``PyObject_HEAD_INIT`` macro and to initialize this field " +"``NULL`` to the ``PyObject_HEAD_INIT`` macro and to initialize this field " "explicitly at the start of the module's initialization function, before " "doing anything else. This is typically done like this::" msgstr "" -#: ../Doc/c-api/typeobj.rst:533 +#: c-api/typeobj.rst:533 msgid "" "This should be done before any instances of the type are created. :c:func:" -"`PyType_Ready` checks if :attr:`ob_type` is *NULL*, and if so, initializes " +"`PyType_Ready` checks if :attr:`ob_type` is ``NULL``, and if so, initializes " "it to the :attr:`ob_type` field of the base class. :c:func:`PyType_Ready` " "will not change this field if it is non-zero." msgstr "" -#: ../Doc/c-api/typeobj.rst:540 ../Doc/c-api/typeobj.rst:684 -#: ../Doc/c-api/typeobj.rst:818 ../Doc/c-api/typeobj.rst:910 -#: ../Doc/c-api/typeobj.rst:930 ../Doc/c-api/typeobj.rst:1429 -#: ../Doc/c-api/typeobj.rst:1452 ../Doc/c-api/typeobj.rst:1570 -#: ../Doc/c-api/typeobj.rst:1588 ../Doc/c-api/typeobj.rst:1679 -#: ../Doc/c-api/typeobj.rst:1787 ../Doc/c-api/typeobj.rst:1896 +#: c-api/typeobj.rst:684 c-api/typeobj.rst:910 c-api/typeobj.rst:1441 +#: c-api/typeobj.rst:1582 c-api/typeobj.rst:1691 c-api/typeobj.rst:1908 msgid "This field is inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:544 +#: c-api/typeobj.rst:544 msgid "PyVarObject Slots" msgstr "" -#: ../Doc/c-api/typeobj.rst:548 +#: c-api/typeobj.rst:548 msgid "" "For statically allocated type objects, this should be initialized to zero. " "For dynamically allocated type objects, this field has a special internal " "meaning." msgstr "" -#: ../Doc/c-api/typeobj.rst:557 +#: c-api/typeobj.rst:557 #, fuzzy msgid "PyTypeObject Slots" msgstr "Objets type" -#: ../Doc/c-api/typeobj.rst:559 +#: c-api/typeobj.rst:559 msgid "" "Each slot has a section describing inheritance. If :c:func:`PyType_Ready` " -"may set a value when the field is set to *NULL* then there will also be a " +"may set a value when the field is set to ``NULL`` then there will also be a " "\"Default\" section. (Note that many fields set on :c:type:" "`PyBaseObject_Type` and :c:type:`PyType_Type` effectively act as defaults.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:566 +#: c-api/typeobj.rst:566 msgid "" "Pointer to a NUL-terminated string containing the name of the type. For " "types that are accessible as module globals, the string should be the full " @@ -1278,14 +1201,14 @@ msgid "" "tp_name` initializer ``\"P.Q.M.T\"``." msgstr "" -#: ../Doc/c-api/typeobj.rst:574 +#: c-api/typeobj.rst:574 msgid "" "For dynamically allocated type objects, this should just be the type name, " "and the module name explicitly stored in the type dict as the value for key " "``'__module__'``." msgstr "" -#: ../Doc/c-api/typeobj.rst:578 +#: c-api/typeobj.rst:578 msgid "" "For statically allocated type objects, the tp_name field should contain a " "dot. Everything before the last dot is made accessible as the :attr:" @@ -1293,7 +1216,7 @@ msgid "" "as the :attr:`~definition.__name__` attribute." msgstr "" -#: ../Doc/c-api/typeobj.rst:583 +#: c-api/typeobj.rst:583 msgid "" "If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " "made accessible as the :attr:`~definition.__name__` attribute, and the :attr:" @@ -1303,19 +1226,19 @@ msgid "" "created with pydoc." msgstr "" -#: ../Doc/c-api/typeobj.rst:589 +#: c-api/typeobj.rst:589 msgid "" -"This field must not be *NULL*. It is the only required field in :c:func:" +"This field must not be ``NULL``. It is the only required field in :c:func:" "`PyTypeObject` (other than potentially :c:member:`~PyTypeObject." "tp_itemsize`)." msgstr "" -#: ../Doc/c-api/typeobj.rst:601 +#: c-api/typeobj.rst:601 msgid "" "These fields allow calculating the size in bytes of instances of the type." msgstr "" -#: ../Doc/c-api/typeobj.rst:603 +#: c-api/typeobj.rst:603 msgid "" "There are two kinds of types: types with fixed-length instances have a zero :" "c:member:`~PyTypeObject.tp_itemsize` field, types with variable-length " @@ -1324,7 +1247,7 @@ msgid "" "in :c:member:`~PyTypeObject.tp_basicsize`." msgstr "" -#: ../Doc/c-api/typeobj.rst:608 +#: c-api/typeobj.rst:608 msgid "" "For a type with variable-length instances, the instances must have an :attr:" "`ob_size` field, and the instance size is :c:member:`~PyTypeObject." @@ -1338,7 +1261,7 @@ msgid "" "instances, yet those instances have a meaningful :attr:`ob_size` field)." msgstr "" -#: ../Doc/c-api/typeobj.rst:619 +#: c-api/typeobj.rst:619 msgid "" "The basic size includes the fields in the instance declared by the macro :c:" "macro:`PyObject_HEAD` or :c:macro:`PyObject_VAR_HEAD` (whichever is used to " @@ -1350,7 +1273,7 @@ msgid "" "size." msgstr "" -#: ../Doc/c-api/typeobj.rst:627 +#: c-api/typeobj.rst:627 msgid "" "A note about alignment: if the variable items require a particular " "alignment, this should be taken care of by the value of :c:member:" @@ -1361,12 +1284,12 @@ msgid "" "alignment requirement for ``double``)." msgstr "" -#: ../Doc/c-api/typeobj.rst:634 +#: c-api/typeobj.rst:634 msgid "" -"For any type with variable-length instances, this field must not be *NULL*." +"For any type with variable-length instances, this field must not be ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:638 +#: c-api/typeobj.rst:638 msgid "" "These fields are inherited separately by subtypes. If the base type has a " "non-zero :c:member:`~PyTypeObject.tp_itemsize`, it is generally not safe to " @@ -1374,7 +1297,7 @@ msgid "" "subtype (though this depends on the implementation of the base type)." msgstr "" -#: ../Doc/c-api/typeobj.rst:646 +#: c-api/typeobj.rst:646 msgid "" "A pointer to the instance destructor function. This function must be " "defined unless the type guarantees that its instances will never be " @@ -1382,7 +1305,7 @@ msgid "" "The function signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:652 +#: c-api/typeobj.rst:652 msgid "" "The destructor function is called by the :c:func:`Py_DECREF` and :c:func:" "`Py_XDECREF` macros when the new reference count is zero. At this point, " @@ -1400,7 +1323,7 @@ msgid "" "allocated using :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`." msgstr "" -#: ../Doc/c-api/typeobj.rst:667 +#: c-api/typeobj.rst:667 msgid "" "Finally, if the type is heap allocated (:const:`Py_TPFLAGS_HEAPTYPE`), the " "deallocator should decrement the reference count for its type object after " @@ -1408,14 +1331,14 @@ msgid "" "recommended way to achieve this is:" msgstr "" -#: ../Doc/c-api/typeobj.rst:689 +#: c-api/typeobj.rst:689 msgid "" "An optional offset to a per-instance function that implements calling the " "object using the *vectorcall* protocol, a more efficient alternative of the " "simpler :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: ../Doc/c-api/typeobj.rst:693 +#: c-api/typeobj.rst:693 msgid "" "This field is only used if the flag :const:`_Py_TPFLAGS_HAVE_VECTORCALL` is " "set. If so, this must be a positive integer containing the offset in the " @@ -1423,14 +1346,14 @@ msgid "" "for :c:func:`_PyObject_Vectorcall`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:700 +#: c-api/typeobj.rst:700 msgid "" "The *vectorcallfunc* pointer may be zero, in which case the instance behaves " "as if :const:`_Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the instance " "falls back to :c:member:`~PyTypeObject.tp_call`." msgstr "" -#: ../Doc/c-api/typeobj.rst:704 +#: c-api/typeobj.rst:704 msgid "" "Any class that sets ``_Py_TPFLAGS_HAVE_VECTORCALL`` must also set :c:member:" "`~PyTypeObject.tp_call` and make sure its behaviour is consistent with the " @@ -1438,13 +1361,13 @@ msgid "" "``PyVectorcall_Call``:" msgstr "" -#: ../Doc/c-api/typeobj.rst:711 +#: c-api/typeobj.rst:711 msgid "" "Call *callable*'s *vectorcallfunc* with positional and keyword arguments " "given in a tuple and dict, respectively." msgstr "" -#: ../Doc/c-api/typeobj.rst:714 +#: c-api/typeobj.rst:714 msgid "" "This function is intended to be used in the ``tp_call`` slot. It does not " "fall back to ``tp_call`` and it currently does not check the " @@ -1452,7 +1375,7 @@ msgid "" "func:`PyObject_Call ` functions instead." msgstr "" -#: ../Doc/c-api/typeobj.rst:722 +#: c-api/typeobj.rst:722 msgid "" "It is not recommended for :ref:`heap types ` to implement the " "vectorcall protocol. When a user sets ``__call__`` in Python code, only " @@ -1460,38 +1383,38 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:729 +#: c-api/typeobj.rst:729 msgid "" "The semantics of the ``tp_vectorcall_offset`` slot are provisional and " "expected to be finalized in Python 3.9. If you use vectorcall, plan for " "updating your code for Python 3.9." msgstr "" -#: ../Doc/c-api/typeobj.rst:735 +#: c-api/typeobj.rst:735 msgid "" "This slot was used for print formatting in Python 2.x. In Python 3.0 to 3.7, " "it was reserved and named ``tp_print``." msgstr "" -#: ../Doc/c-api/typeobj.rst:740 +#: c-api/typeobj.rst:740 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_call`: a subtype inherits :c:member:`~PyTypeObject.tp_vectorcall_offset` " "from its base type when the subtype’s :c:member:`~PyTypeObject.tp_call` is " -"NULL." +"``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:745 +#: c-api/typeobj.rst:745 msgid "" "Note that `heap types`_ (including subclasses defined in Python) do not " "inherit the :const:`_Py_TPFLAGS_HAVE_VECTORCALL` flag." msgstr "" -#: ../Doc/c-api/typeobj.rst:751 +#: c-api/typeobj.rst:751 msgid "An optional pointer to the get-attribute-string function." msgstr "" -#: ../Doc/c-api/typeobj.rst:753 +#: c-api/typeobj.rst:753 msgid "" "This field is deprecated. When it is defined, it should point to a function " "that acts the same as the :c:member:`~PyTypeObject.tp_getattro` function, " @@ -1499,25 +1422,25 @@ msgid "" "attribute name." msgstr "" -#: ../Doc/c-api/typeobj.rst:759 ../Doc/c-api/typeobj.rst:951 +#: c-api/typeobj.rst:951 msgid "Group: :attr:`tp_getattr`, :attr:`tp_getattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:761 +#: c-api/typeobj.rst:761 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " "and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " "subtype's :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject." -"tp_getattro` are both *NULL*." +"tp_getattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:768 ../Doc/c-api/typeobj.rst:964 +#: c-api/typeobj.rst:964 msgid "" "An optional pointer to the function for setting and deleting attributes." msgstr "" -#: ../Doc/c-api/typeobj.rst:770 +#: c-api/typeobj.rst:770 msgid "" "This field is deprecated. When it is defined, it should point to a function " "that acts the same as the :c:member:`~PyTypeObject.tp_setattro` function, " @@ -1525,47 +1448,47 @@ msgid "" "attribute name." msgstr "" -#: ../Doc/c-api/typeobj.rst:776 ../Doc/c-api/typeobj.rst:977 +#: c-api/typeobj.rst:977 msgid "Group: :attr:`tp_setattr`, :attr:`tp_setattro`" msgstr "" -#: ../Doc/c-api/typeobj.rst:778 +#: c-api/typeobj.rst:778 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattro`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " "and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " "subtype's :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject." -"tp_setattro` are both *NULL*." +"tp_setattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:785 +#: c-api/typeobj.rst:785 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement :term:`awaitable` and :term:`asynchronous iterator` " "protocols at the C-level. See :ref:`async-structs` for details." msgstr "" -#: ../Doc/c-api/typeobj.rst:789 +#: c-api/typeobj.rst:789 msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." msgstr "" -#: ../Doc/c-api/typeobj.rst:794 +#: c-api/typeobj.rst:794 msgid "" "The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:802 +#: c-api/typeobj.rst:802 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`repr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:805 +#: c-api/typeobj.rst:805 msgid "The signature is the same as for :c:func:`PyObject_Repr`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:809 +#: c-api/typeobj.rst:809 msgid "" "The function must return a string or a Unicode object. Ideally, this " "function should return a string that, when passed to :func:`eval`, given a " @@ -1574,87 +1497,83 @@ msgid "" "``'>'`` from which both the type and the value of the object can be deduced." msgstr "" -#: ../Doc/c-api/typeobj.rst:820 ../Doc/c-api/typeobj.rst:932 -#: ../Doc/c-api/typeobj.rst:957 ../Doc/c-api/typeobj.rst:983 -#: ../Doc/c-api/typeobj.rst:1025 ../Doc/c-api/typeobj.rst:1374 -#: ../Doc/c-api/typeobj.rst:1526 ../Doc/c-api/typeobj.rst:1547 -#: ../Doc/c-api/typeobj.rst:1645 ../Doc/c-api/typeobj.rst:1681 -#: ../Doc/c-api/typeobj.rst:1699 ../Doc/c-api/typeobj.rst:1737 -#: ../Doc/c-api/typeobj.rst:1758 ../Doc/c-api/typeobj.rst:1789 +#: c-api/typeobj.rst:932 c-api/typeobj.rst:983 c-api/typeobj.rst:1386 +#: c-api/typeobj.rst:1559 c-api/typeobj.rst:1693 c-api/typeobj.rst:1749 +#: c-api/typeobj.rst:1801 msgid "**Default:**" msgstr "" -#: ../Doc/c-api/typeobj.rst:822 +#: c-api/typeobj.rst:822 msgid "" "When this field is not set, a string of the form ``<%s object at %p>`` is " "returned, where ``%s`` is replaced by the type name, and ``%p`` by the " "object's memory address." msgstr "" -#: ../Doc/c-api/typeobj.rst:829 +#: c-api/typeobj.rst:829 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the number protocol. These fields are documented " "in :ref:`number-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:835 +#: c-api/typeobj.rst:835 msgid "" "The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:841 +#: c-api/typeobj.rst:841 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the sequence protocol. These fields are documented " "in :ref:`sequence-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:847 +#: c-api/typeobj.rst:847 msgid "" "The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:853 +#: c-api/typeobj.rst:853 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the mapping protocol. These fields are documented " "in :ref:`mapping-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:859 +#: c-api/typeobj.rst:859 msgid "" "The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:867 +#: c-api/typeobj.rst:867 msgid "" "An optional pointer to a function that implements the built-in function :" "func:`hash`." msgstr "" -#: ../Doc/c-api/typeobj.rst:870 +#: c-api/typeobj.rst:870 msgid "The signature is the same as for :c:func:`PyObject_Hash`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:874 +#: c-api/typeobj.rst:874 msgid "" "The value ``-1`` should not be returned as a normal return value; when an " "error occurs during the computation of the hash value, the function should " "set an exception and return ``-1``." msgstr "" -#: ../Doc/c-api/typeobj.rst:878 +#: c-api/typeobj.rst:878 msgid "" "When this field is not set (*and* :attr:`tp_richcompare` is not set), an " "attempt to take the hash of the object raises :exc:`TypeError`. This is the " "same as setting it to :c:func:`PyObject_HashNotImplemented`." msgstr "" -#: ../Doc/c-api/typeobj.rst:882 +#: c-api/typeobj.rst:882 msgid "" "This field can be set explicitly to :c:func:`PyObject_HashNotImplemented` to " "block inheritance of the hash method from a parent type. This is interpreted " @@ -1665,27 +1584,27 @@ msgid "" "`PyObject_HashNotImplemented`." msgstr "" -#: ../Doc/c-api/typeobj.rst:892 ../Doc/c-api/typeobj.rst:1367 +#: c-api/typeobj.rst:1379 msgid "Group: :attr:`tp_hash`, :attr:`tp_richcompare`" msgstr "" -#: ../Doc/c-api/typeobj.rst:894 +#: c-api/typeobj.rst:894 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_richcompare`: a subtype inherits both of :c:member:`~PyTypeObject." "tp_richcompare` and :c:member:`~PyTypeObject.tp_hash`, when the subtype's :c:" "member:`~PyTypeObject.tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` " -"are both *NULL*." +"are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:902 +#: c-api/typeobj.rst:902 msgid "" "An optional pointer to a function that implements calling the object. This " -"should be *NULL* if the object is not callable. The signature is the same " +"should be ``NULL`` if the object is not callable. The signature is the same " "as for :c:func:`PyObject_Call`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:915 +#: c-api/typeobj.rst:915 msgid "" "An optional pointer to a function that implements the built-in operation :" "func:`str`. (Note that :class:`str` is a type now, and :func:`str` calls " @@ -1694,11 +1613,11 @@ msgid "" "this handler.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:920 +#: c-api/typeobj.rst:920 msgid "The signature is the same as for :c:func:`PyObject_Str`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:924 +#: c-api/typeobj.rst:924 msgid "" "The function must return a string or a Unicode object. It should be a " "\"friendly\" string representation of the object, as this is the " @@ -1706,79 +1625,79 @@ msgid "" "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:934 +#: c-api/typeobj.rst:934 msgid "" "When this field is not set, :c:func:`PyObject_Repr` is called to return a " "string representation." msgstr "" -#: ../Doc/c-api/typeobj.rst:940 +#: c-api/typeobj.rst:940 msgid "An optional pointer to the get-attribute function." msgstr "" -#: ../Doc/c-api/typeobj.rst:942 +#: c-api/typeobj.rst:942 msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:946 +#: c-api/typeobj.rst:946 msgid "" "It is usually convenient to set this field to :c:func:" "`PyObject_GenericGetAttr`, which implements the normal way of looking for " "object attributes." msgstr "" -#: ../Doc/c-api/typeobj.rst:953 +#: c-api/typeobj.rst:953 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_getattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_getattr` " "and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " "subtype's :c:member:`~PyTypeObject.tp_getattr` and :c:member:`~PyTypeObject." -"tp_getattro` are both *NULL*." +"tp_getattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:959 +#: c-api/typeobj.rst:959 msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:966 +#: c-api/typeobj.rst:966 msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:970 +#: c-api/typeobj.rst:970 msgid "" -"In addition, setting *value* to *NULL* to delete an attribute must be " +"In addition, setting *value* to ``NULL`` to delete an attribute must be " "supported. It is usually convenient to set this field to :c:func:" "`PyObject_GenericSetAttr`, which implements the normal way of setting object " "attributes." msgstr "" -#: ../Doc/c-api/typeobj.rst:979 +#: c-api/typeobj.rst:979 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_setattr`: a subtype inherits both :c:member:`~PyTypeObject.tp_setattr` " "and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " "subtype's :c:member:`~PyTypeObject.tp_setattr` and :c:member:`~PyTypeObject." -"tp_setattro` are both *NULL*." +"tp_setattro` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:985 +#: c-api/typeobj.rst:985 msgid ":c:type:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:990 +#: c-api/typeobj.rst:990 msgid "" "Pointer to an additional structure that contains fields relevant only to " "objects which implement the buffer interface. These fields are documented " "in :ref:`buffer-structs`." msgstr "" -#: ../Doc/c-api/typeobj.rst:996 +#: c-api/typeobj.rst:996 msgid "" "The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " "contained fields are inherited individually." msgstr "" -#: ../Doc/c-api/typeobj.rst:1002 +#: c-api/typeobj.rst:1002 msgid "" "This field is a bit mask of various flags. Some flags indicate variant " "semantics for certain situations; others are used to indicate that certain " @@ -1787,10 +1706,10 @@ msgid "" "tp_as_sequence`, :c:member:`~PyTypeObject.tp_as_mapping`, and :c:member:" "`~PyTypeObject.tp_as_buffer`) that were historically not always present are " "valid; if such a flag bit is clear, the type fields it guards must not be " -"accessed and must be considered to have a zero or *NULL* value instead." +"accessed and must be considered to have a zero or ``NULL`` value instead." msgstr "" -#: ../Doc/c-api/typeobj.rst:1012 +#: c-api/typeobj.rst:1012 msgid "" "Inheritance of this field is complicated. Most flag bits are inherited " "individually, i.e. if the base type has a flag bit set, the subtype inherits " @@ -1802,20 +1721,20 @@ msgid "" "and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if the :const:" "`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the :c:member:" "`~PyTypeObject.tp_traverse` and :c:member:`~PyTypeObject.tp_clear` fields in " -"the subtype exist and have *NULL* values." +"the subtype exist and have ``NULL`` values." msgstr "" -#: ../Doc/c-api/typeobj.rst:1027 +#: c-api/typeobj.rst:1027 msgid "" ":c:type:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " "Py_TPFLAGS_BASETYPE``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1030 +#: c-api/typeobj.rst:1030 msgid "**Bit Masks:**" msgstr "" -#: ../Doc/c-api/typeobj.rst:1032 +#: c-api/typeobj.rst:1032 msgid "" "The following bit masks are currently defined; these can be ORed together " "using the ``|`` operator to form the value of the :c:member:`~PyTypeObject." @@ -1824,7 +1743,7 @@ msgid "" "zero." msgstr "" -#: ../Doc/c-api/typeobj.rst:1039 +#: c-api/typeobj.rst:1039 msgid "" "This bit is set when the type object itself is allocated on the heap, for " "example, types created dynamically using :c:func:`PyType_FromSpec`. In this " @@ -1835,32 +1754,30 @@ msgid "" "gets INCREF'ed or DECREF'ed)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1049 ../Doc/c-api/typeobj.rst:1060 -#: ../Doc/c-api/typeobj.rst:1070 ../Doc/c-api/typeobj.rst:1080 -#: ../Doc/c-api/typeobj.rst:1113 +#: c-api/typeobj.rst:1060 c-api/typeobj.rst:1080 c-api/typeobj.rst:1113 msgid "???" msgstr "" -#: ../Doc/c-api/typeobj.rst:1054 +#: c-api/typeobj.rst:1054 msgid "" "This bit is set when the type can be used as the base type of another type. " "If this bit is clear, the type cannot be subtyped (similar to a \"final\" " "class in Java)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1065 +#: c-api/typeobj.rst:1065 msgid "" "This bit is set when the type object has been fully initialized by :c:func:" "`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1075 +#: c-api/typeobj.rst:1075 msgid "" "This bit is set while :c:func:`PyType_Ready` is in the process of " "initializing the type object." msgstr "" -#: ../Doc/c-api/typeobj.rst:1085 +#: c-api/typeobj.rst:1085 msgid "" "This bit is set when the object supports garbage collection. If this bit is " "set, instances must be created using :c:func:`PyObject_GC_New` and destroyed " @@ -1870,22 +1787,21 @@ msgid "" "tp_clear` are present in the type object." msgstr "" -#: ../Doc/c-api/typeobj.rst:1094 ../Doc/c-api/typeobj.rst:1247 -#: ../Doc/c-api/typeobj.rst:1308 +#: c-api/typeobj.rst:1259 c-api/typeobj.rst:1320 msgid "" "Group: :const:`Py_TPFLAGS_HAVE_GC`, :attr:`tp_traverse`, :attr:`tp_clear`" msgstr "" -#: ../Doc/c-api/typeobj.rst:1096 +#: c-api/typeobj.rst:1096 msgid "" "The :const:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with the :" "attr:`tp_traverse` and :attr:`tp_clear` fields, i.e. if the :const:" "`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and the :attr:" "`tp_traverse` and :attr:`tp_clear` fields in the subtype exist and have " -"*NULL* values." +"``NULL`` values." msgstr "" -#: ../Doc/c-api/typeobj.rst:1106 +#: c-api/typeobj.rst:1106 msgid "" "This is a bitmask of all the bits that pertain to the existence of certain " "fields in the type object and its extension structures. Currently, it " @@ -1893,40 +1809,40 @@ msgid "" "const:`Py_TPFLAGS_HAVE_VERSION_TAG`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1118 +#: c-api/typeobj.rst:1118 msgid "This bit indicates that objects behave like unbound methods." msgstr "" -#: ../Doc/c-api/typeobj.rst:1120 +#: c-api/typeobj.rst:1120 msgid "If this flag is set for ``type(meth)``, then:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1122 +#: c-api/typeobj.rst:1122 msgid "" "``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " "equivalent to ``meth(obj, *args, **kwds)``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1125 +#: c-api/typeobj.rst:1125 msgid "" "``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " "``meth(*args, **kwds)``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1128 +#: c-api/typeobj.rst:1128 msgid "" "This flag enables an optimization for typical method calls like ``obj." "meth()``: it avoids creating a temporary \"bound method\" object for ``obj." "meth``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1136 +#: c-api/typeobj.rst:1136 msgid "" "This flag is never inherited by heap types. For extension types, it is " "inherited whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." msgstr "" -#: ../Doc/c-api/typeobj.rst:1153 +#: c-api/typeobj.rst:1153 msgid "" "These flags are used by functions such as :c:func:`PyLong_Check` to quickly " "determine if a type is a subclass of a built-in type; such specific checks " @@ -1936,100 +1852,113 @@ msgid "" "behave differently depending on what kind of check is used." msgstr "" -#: ../Doc/c-api/typeobj.rst:1164 +#: c-api/typeobj.rst:1164 msgid "" "This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " "present in the type structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:1169 +#: c-api/typeobj.rst:1169 msgid "" "This flag isn't necessary anymore, as the interpreter assumes the :c:member:" "`~PyTypeObject.tp_finalize` slot is always present in the type structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:1176 +#: c-api/typeobj.rst:1176 msgid "" "This bit is set when the class implements the vectorcall protocol. See :c:" "member:`~PyTypeObject.tp_vectorcall_offset` for details." msgstr "" -#: ../Doc/c-api/typeobj.rst:1181 +#: c-api/typeobj.rst:1181 msgid "" "This bit is set on *static* subtypes if ``tp_flags`` is not overridden: a " "subtype inherits ``_Py_TPFLAGS_HAVE_VECTORCALL`` from its base type when the " -"subtype’s :c:member:`~PyTypeObject.tp_call` is NULL and the subtype's " +"subtype’s :c:member:`~PyTypeObject.tp_call` is ``NULL`` and the subtype's " "``Py_TPFLAGS_HEAPTYPE`` is not set." msgstr "" -#: ../Doc/c-api/typeobj.rst:1186 +#: c-api/typeobj.rst:1186 msgid "`Heap types`_ do not inherit ``_Py_TPFLAGS_HAVE_VECTORCALL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1190 +#: c-api/typeobj.rst:1190 msgid "" "This flag is provisional and expected to become public in Python 3.9, with a " "different name and, possibly, changed semantics. If you use vectorcall, plan " "for updating your code for Python 3.9." msgstr "" -#: ../Doc/c-api/typeobj.rst:1199 +#: c-api/typeobj.rst:1199 msgid "" "An optional pointer to a NUL-terminated C string giving the docstring for " "this type object. This is exposed as the :attr:`__doc__` attribute on the " "type and instances of the type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1205 +#: c-api/typeobj.rst:1205 msgid "This field is *not* inherited by subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:1210 +#: c-api/typeobj.rst:1210 msgid "" "An optional pointer to a traversal function for the garbage collector. This " "is only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The " "signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1215 ../Doc/c-api/typeobj.rst:1303 +#: c-api/typeobj.rst:1315 msgid "" "More information about Python's garbage collection scheme can be found in " "section :ref:`supporting-cycle-detection`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1218 +#: c-api/typeobj.rst:1218 msgid "" "The :c:member:`~PyTypeObject.tp_traverse` pointer is used by the garbage " "collector to detect reference cycles. A typical implementation of a :c:" "member:`~PyTypeObject.tp_traverse` function simply calls :c:func:`Py_VISIT` " -"on each of the instance's members that are Python objects. For example, " -"this is function :c:func:`local_traverse` from the :mod:`_thread` extension " -"module::" +"on each of the instance's members that are Python objects that the instance " +"owns. For example, this is function :c:func:`local_traverse` from the :mod:" +"`_thread` extension module::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1233 +#: c-api/typeobj.rst:1233 msgid "" "Note that :c:func:`Py_VISIT` is called only on those members that can " "participate in reference cycles. Although there is also a ``self->key`` " -"member, it can only be *NULL* or a Python string and therefore cannot be " +"member, it can only be ``NULL`` or a Python string and therefore cannot be " "part of a reference cycle." msgstr "" -#: ../Doc/c-api/typeobj.rst:1237 +#: c-api/typeobj.rst:1237 msgid "" "On the other hand, even if you know a member can never be part of a cycle, " "as a debugging aid you may want to visit it anyway just so the :mod:`gc` " "module's :func:`~gc.get_referents` function will include it." msgstr "" -#: ../Doc/c-api/typeobj.rst:1241 +#: c-api/typeobj.rst:1242 +msgid "" +"When implementing :c:member:`~PyTypeObject.tp_traverse`, only the members " +"that the instance *owns* (by having strong references to them) must be " +"visited. For instance, if an object supports weak references via the :c:" +"member:`~PyTypeObject.tp_weaklist` slot, the pointer supporting the linked " +"list (what *tp_weaklist* points to) must **not** be visited as the instance " +"does not directly own the weak references to itself (the weakreference list " +"is there to support the weak reference machinery, but the instance has no " +"strong reference to the elements inside it, as they are allowed to be " +"removed even if the instance is still alive)." +msgstr "" + +#: c-api/typeobj.rst:1253 msgid "" "Note that :c:func:`Py_VISIT` requires the *visit* and *arg* parameters to :c:" "func:`local_traverse` to have these specific names; don't name them just " "anything." msgstr "" -#: ../Doc/c-api/typeobj.rst:1249 +#: c-api/typeobj.rst:1261 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_clear` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" @@ -2037,14 +1966,14 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: ../Doc/c-api/typeobj.rst:1257 +#: c-api/typeobj.rst:1269 msgid "" "An optional pointer to a clear function for the garbage collector. This is " "only used if the :const:`Py_TPFLAGS_HAVE_GC` flag bit is set. The signature " "is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1262 +#: c-api/typeobj.rst:1274 msgid "" "The :c:member:`~PyTypeObject.tp_clear` member function is used to break " "reference cycles in cyclic garbage detected by the garbage collector. Taken " @@ -2059,30 +1988,30 @@ msgid "" "good reason to avoid implementing :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1272 +#: c-api/typeobj.rst:1284 msgid "" "Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " "instance's references to those of its members that may be Python objects, " -"and set its pointers to those members to *NULL*, as in the following " +"and set its pointers to those members to ``NULL``, as in the following " "example::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1286 +#: c-api/typeobj.rst:1298 msgid "" "The :c:func:`Py_CLEAR` macro should be used, because clearing references is " "delicate: the reference to the contained object must not be decremented " -"until after the pointer to the contained object is set to *NULL*. This is " +"until after the pointer to the contained object is set to ``NULL``. This is " "because decrementing the reference count may cause the contained object to " "become trash, triggering a chain of reclamation activity that may include " "invoking arbitrary Python code (due to finalizers, or weakref callbacks, " "associated with the contained object). If it's possible for such code to " "reference *self* again, it's important that the pointer to the contained " -"object be *NULL* at that time, so that *self* knows the contained object can " -"no longer be used. The :c:func:`Py_CLEAR` macro performs the operations in " -"a safe order." +"object be ``NULL`` at that time, so that *self* knows the contained object " +"can no longer be used. The :c:func:`Py_CLEAR` macro performs the operations " +"in a safe order." msgstr "" -#: ../Doc/c-api/typeobj.rst:1297 +#: c-api/typeobj.rst:1309 msgid "" "Because the goal of :c:member:`~PyTypeObject.tp_clear` functions is to break " "reference cycles, it's not necessary to clear contained objects like Python " @@ -2092,7 +2021,7 @@ msgid "" "invoke :c:member:`~PyTypeObject.tp_clear`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1310 +#: c-api/typeobj.rst:1322 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_traverse` and the :const:`Py_TPFLAGS_HAVE_GC` flag bit: the flag bit, :c:" @@ -2100,93 +2029,93 @@ msgid "" "are all inherited from the base type if they are all zero in the subtype." msgstr "" -#: ../Doc/c-api/typeobj.rst:1318 +#: c-api/typeobj.rst:1330 msgid "" "An optional pointer to the rich comparison function, whose signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1322 +#: c-api/typeobj.rst:1334 msgid "" "The first parameter is guaranteed to be an instance of the type that is " "defined by :c:type:`PyTypeObject`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1325 +#: c-api/typeobj.rst:1337 msgid "" "The function should return the result of the comparison (usually ``Py_True`` " "or ``Py_False``). If the comparison is undefined, it must return " -"``Py_NotImplemented``, if another error occurred it must return *NULL* and " +"``Py_NotImplemented``, if another error occurred it must return ``NULL`` and " "set an exception condition." msgstr "" -#: ../Doc/c-api/typeobj.rst:1330 +#: c-api/typeobj.rst:1342 msgid "" "The following constants are defined to be used as the third argument for :c:" "member:`~PyTypeObject.tp_richcompare` and for :c:func:`PyObject_RichCompare`:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1334 +#: c-api/typeobj.rst:1346 msgid "Constant" msgstr "Constante" -#: ../Doc/c-api/typeobj.rst:1334 +#: c-api/typeobj.rst:1346 msgid "Comparison" msgstr "Comparaison" -#: ../Doc/c-api/typeobj.rst:1336 +#: c-api/typeobj.rst:1348 msgid ":const:`Py_LT`" -msgstr "" +msgstr ":const:`Py_LT`" -#: ../Doc/c-api/typeobj.rst:1336 +#: c-api/typeobj.rst:1348 msgid "``<``" msgstr "``<``" -#: ../Doc/c-api/typeobj.rst:1338 +#: c-api/typeobj.rst:1350 msgid ":const:`Py_LE`" -msgstr "" +msgstr ":const:`Py_LE`" -#: ../Doc/c-api/typeobj.rst:1338 +#: c-api/typeobj.rst:1350 msgid "``<=``" msgstr "``<=``" -#: ../Doc/c-api/typeobj.rst:1340 +#: c-api/typeobj.rst:1352 msgid ":const:`Py_EQ`" -msgstr "" +msgstr ":const:`Py_EQ`" -#: ../Doc/c-api/typeobj.rst:1340 +#: c-api/typeobj.rst:1352 msgid "``==``" msgstr "``==``" -#: ../Doc/c-api/typeobj.rst:1342 +#: c-api/typeobj.rst:1354 msgid ":const:`Py_NE`" -msgstr "" +msgstr ":const:`Py_NE`" -#: ../Doc/c-api/typeobj.rst:1342 +#: c-api/typeobj.rst:1354 msgid "``!=``" msgstr "``!=``" -#: ../Doc/c-api/typeobj.rst:1344 +#: c-api/typeobj.rst:1356 msgid ":const:`Py_GT`" -msgstr "" +msgstr ":const:`Py_GT`" -#: ../Doc/c-api/typeobj.rst:1344 +#: c-api/typeobj.rst:1356 msgid "``>``" msgstr "``>``" -#: ../Doc/c-api/typeobj.rst:1346 +#: c-api/typeobj.rst:1358 msgid ":const:`Py_GE`" -msgstr "" +msgstr ":const:`Py_GE`" -#: ../Doc/c-api/typeobj.rst:1346 +#: c-api/typeobj.rst:1358 msgid "``>=``" msgstr "``>=``" -#: ../Doc/c-api/typeobj.rst:1349 +#: c-api/typeobj.rst:1361 msgid "" "The following macro is defined to ease writing rich comparison functions:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1353 +#: c-api/typeobj.rst:1365 msgid "" "Return ``Py_True`` or ``Py_False`` from the function, depending on the " "result of a comparison. VAL_A and VAL_B must be orderable by C comparison " @@ -2194,23 +2123,23 @@ msgid "" "specifies the requested operation, as for :c:func:`PyObject_RichCompare`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1359 +#: c-api/typeobj.rst:1371 msgid "The return value's reference count is properly incremented." msgstr "" -#: ../Doc/c-api/typeobj.rst:1361 -msgid "On error, sets an exception and returns *NULL* from the function." +#: c-api/typeobj.rst:1373 +msgid "On error, sets an exception and returns ``NULL`` from the function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1369 +#: c-api/typeobj.rst:1381 msgid "" "This field is inherited by subtypes together with :c:member:`~PyTypeObject." "tp_hash`: a subtype inherits :c:member:`~PyTypeObject.tp_richcompare` and :c:" "member:`~PyTypeObject.tp_hash` when the subtype's :c:member:`~PyTypeObject." -"tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both *NULL*." +"tp_richcompare` and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1376 +#: c-api/typeobj.rst:1388 msgid "" ":c:type:`PyBaseObject_Type` provides a :attr:`tp_richcompare` " "implementation, which may be inherited. However, if only :attr:`tp_hash` is " @@ -2218,23 +2147,23 @@ msgid "" "will not be able to participate in any comparisons." msgstr "" -#: ../Doc/c-api/typeobj.rst:1385 +#: c-api/typeobj.rst:1397 msgid "" "If the instances of this type are weakly referenceable, this field is " "greater than zero and contains the offset in the instance structure of the " "weak reference list head (ignoring the GC header, if present); this offset " "is used by :c:func:`PyObject_ClearWeakRefs` and the :c:func:`PyWeakref_\\*` " "functions. The instance structure needs to include a field of type :c:type:" -"`PyObject\\*` which is initialized to *NULL*." +"`PyObject*` which is initialized to ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1392 +#: c-api/typeobj.rst:1404 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_weaklist`; that " "is the list head for weak references to the type object itself." msgstr "" -#: ../Doc/c-api/typeobj.rst:1397 +#: c-api/typeobj.rst:1409 msgid "" "This field is inherited by subtypes, but see the rules listed below. A " "subtype may override this offset; this means that the subtype uses a " @@ -2243,7 +2172,7 @@ msgid "" "not be a problem." msgstr "" -#: ../Doc/c-api/typeobj.rst:1402 +#: c-api/typeobj.rst:1414 msgid "" "When a type defined by a class statement has no :attr:`~object.__slots__` " "declaration, and none of its base types are weakly referenceable, the type " @@ -2252,7 +2181,7 @@ msgid "" "tp_weaklistoffset` of that slot's offset." msgstr "" -#: ../Doc/c-api/typeobj.rst:1407 +#: c-api/typeobj.rst:1419 msgid "" "When a type's :attr:`__slots__` declaration contains a slot named :attr:" "`__weakref__`, that slot becomes the weak reference list head for instances " @@ -2260,106 +2189,106 @@ msgid "" "`~PyTypeObject.tp_weaklistoffset`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1412 +#: c-api/typeobj.rst:1424 msgid "" "When a type's :attr:`__slots__` declaration does not contain a slot named :" "attr:`__weakref__`, the type inherits its :c:member:`~PyTypeObject." "tp_weaklistoffset` from its base type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1419 +#: c-api/typeobj.rst:1431 msgid "" "An optional pointer to a function that returns an iterator for the object. " "Its presence normally signals that the instances of this type are iterable " "(although sequences may be iterable without this function)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1423 +#: c-api/typeobj.rst:1435 msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1434 +#: c-api/typeobj.rst:1446 msgid "" "An optional pointer to a function that returns the next item in an iterator. " "The signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1439 +#: c-api/typeobj.rst:1451 msgid "" -"When the iterator is exhausted, it must return *NULL*; a :exc:" +"When the iterator is exhausted, it must return ``NULL``; a :exc:" "`StopIteration` exception may or may not be set. When another error occurs, " -"it must return *NULL* too. Its presence signals that the instances of this " -"type are iterators." +"it must return ``NULL`` too. Its presence signals that the instances of " +"this type are iterators." msgstr "" -#: ../Doc/c-api/typeobj.rst:1444 +#: c-api/typeobj.rst:1456 msgid "" "Iterator types should also define the :c:member:`~PyTypeObject.tp_iter` " "function, and that function should return the iterator instance itself (not " "a new iterator instance)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1448 +#: c-api/typeobj.rst:1460 msgid "This function has the same signature as :c:func:`PyIter_Next`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1457 +#: c-api/typeobj.rst:1469 msgid "" -"An optional pointer to a static *NULL*-terminated array of :c:type:" +"An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMethodDef` structures, declaring regular methods of this type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1460 +#: c-api/typeobj.rst:1472 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a method descriptor." msgstr "" -#: ../Doc/c-api/typeobj.rst:1465 +#: c-api/typeobj.rst:1477 msgid "" "This field is not inherited by subtypes (methods are inherited through a " "different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1471 +#: c-api/typeobj.rst:1483 msgid "" -"An optional pointer to a static *NULL*-terminated array of :c:type:" +"An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyMemberDef` structures, declaring regular data members (fields or slots) " "of instances of this type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1475 +#: c-api/typeobj.rst:1487 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a member descriptor." msgstr "" -#: ../Doc/c-api/typeobj.rst:1480 +#: c-api/typeobj.rst:1492 msgid "" "This field is not inherited by subtypes (members are inherited through a " "different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1486 +#: c-api/typeobj.rst:1498 msgid "" -"An optional pointer to a static *NULL*-terminated array of :c:type:" +"An optional pointer to a static ``NULL``-terminated array of :c:type:" "`PyGetSetDef` structures, declaring computed attributes of instances of this " "type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1489 +#: c-api/typeobj.rst:1501 msgid "" "For each entry in the array, an entry is added to the type's dictionary " "(see :c:member:`~PyTypeObject.tp_dict` below) containing a getset descriptor." msgstr "" -#: ../Doc/c-api/typeobj.rst:1494 +#: c-api/typeobj.rst:1506 msgid "" "This field is not inherited by subtypes (computed attributes are inherited " "through a different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1500 +#: c-api/typeobj.rst:1512 msgid "" "An optional pointer to a base type from which type properties are " "inherited. At this level, only single inheritance is supported; multiple " @@ -2367,7 +2296,7 @@ msgid "" "metatype." msgstr "" -#: ../Doc/c-api/typeobj.rst:1508 +#: c-api/typeobj.rst:1520 msgid "" "Slot initialization is subject to the rules of initializing globals. C99 " "requires the initializers to be \"address constants\". Function designators " @@ -2375,7 +2304,7 @@ msgid "" "valid C99 address constants." msgstr "" -#: ../Doc/c-api/typeobj.rst:1513 +#: c-api/typeobj.rst:1525 msgid "" "However, the unary '&' operator applied to a non-static variable like :c:" "func:`PyBaseObject_Type` is not required to produce an address constant. " @@ -2383,74 +2312,72 @@ msgid "" "strictly standard conforming in this particular behavior." msgstr "" -#: ../Doc/c-api/typeobj.rst:1519 +#: c-api/typeobj.rst:1531 msgid "" "Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " "extension module's init function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1524 +#: c-api/typeobj.rst:1536 msgid "This field is not inherited by subtypes (obviously)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1528 +#: c-api/typeobj.rst:1540 msgid "" "This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " "is known as the type :class:`object`)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1534 +#: c-api/typeobj.rst:1546 msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1536 +#: c-api/typeobj.rst:1548 msgid "" -"This field should normally be initialized to *NULL* before PyType_Ready is " +"This field should normally be initialized to ``NULL`` before PyType_Ready is " "called; it may also be initialized to a dictionary containing initial " "attributes for the type. Once :c:func:`PyType_Ready` has initialized the " "type, extra attributes for the type may be added to this dictionary only if " "they don't correspond to overloaded operations (like :meth:`__add__`)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1544 +#: c-api/typeobj.rst:1556 msgid "" "This field is not inherited by subtypes (though the attributes defined in " "here are inherited through a different mechanism)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1549 +#: c-api/typeobj.rst:1561 msgid "" -"If this field is *NULL*, :c:func:`PyType_Ready` will assign a new dictionary " -"to it." +"If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " +"dictionary to it." msgstr "" -#: ../Doc/c-api/typeobj.rst:1554 +#: c-api/typeobj.rst:1566 msgid "" "It is not safe to use :c:func:`PyDict_SetItem` on or otherwise modify :c:" "member:`~PyTypeObject.tp_dict` with the dictionary C-API." msgstr "" -#: ../Doc/c-api/typeobj.rst:1560 +#: c-api/typeobj.rst:1572 msgid "An optional pointer to a \"descriptor get\" function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1562 ../Doc/c-api/typeobj.rst:1578 -#: ../Doc/c-api/typeobj.rst:1660 ../Doc/c-api/typeobj.rst:1690 -#: ../Doc/c-api/typeobj.rst:1714 +#: c-api/typeobj.rst:1590 c-api/typeobj.rst:1702 c-api/typeobj.rst:1726 msgid "The function signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1575 +#: c-api/typeobj.rst:1587 msgid "" "An optional pointer to a function for setting and deleting a descriptor's " "value." msgstr "" -#: ../Doc/c-api/typeobj.rst:1582 -msgid "The *value* argument is set to *NULL* to delete the value." +#: c-api/typeobj.rst:1594 +msgid "The *value* argument is set to ``NULL`` to delete the value." msgstr "" -#: ../Doc/c-api/typeobj.rst:1593 +#: c-api/typeobj.rst:1605 msgid "" "If the instances of this type have a dictionary containing instance " "variables, this field is non-zero and contains the offset in the instances " @@ -2458,13 +2385,13 @@ msgid "" "func:`PyObject_GenericGetAttr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1598 +#: c-api/typeobj.rst:1610 msgid "" "Do not confuse this field with :c:member:`~PyTypeObject.tp_dict`; that is " "the dictionary for attributes of the type object itself." msgstr "" -#: ../Doc/c-api/typeobj.rst:1601 +#: c-api/typeobj.rst:1613 msgid "" "If the value of this field is greater than zero, it specifies the offset " "from the start of the instance structure. If the value is less than zero, " @@ -2480,13 +2407,13 @@ msgid "" "the very end of the structure." msgstr "" -#: ../Doc/c-api/typeobj.rst:1613 +#: c-api/typeobj.rst:1625 msgid "" "The real dictionary offset in an instance can be computed from a negative :c:" "member:`~PyTypeObject.tp_dictoffset` as follows::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1620 +#: c-api/typeobj.rst:1632 msgid "" "where :c:member:`~PyTypeObject.tp_basicsize`, :c:member:`~PyTypeObject." "tp_itemsize` and :c:member:`~PyTypeObject.tp_dictoffset` are taken from the " @@ -2496,7 +2423,7 @@ msgid "" "it is done for you by :c:func:`_PyObject_GetDictPtr`.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1628 +#: c-api/typeobj.rst:1640 msgid "" "This field is inherited by subtypes, but see the rules listed below. A " "subtype may override this offset; this means that the subtype instances " @@ -2505,7 +2432,7 @@ msgid "" "should not be a problem." msgstr "" -#: ../Doc/c-api/typeobj.rst:1633 +#: c-api/typeobj.rst:1645 msgid "" "When a type defined by a class statement has no :attr:`~object.__slots__` " "declaration, and none of its base types has an instance variable dictionary, " @@ -2513,14 +2440,14 @@ msgid "" "`~PyTypeObject.tp_dictoffset` is set to that slot's offset." msgstr "" -#: ../Doc/c-api/typeobj.rst:1638 +#: c-api/typeobj.rst:1650 msgid "" "When a type defined by a class statement has a :attr:`__slots__` " "declaration, the type inherits its :c:member:`~PyTypeObject.tp_dictoffset` " "from its base type." msgstr "" -#: ../Doc/c-api/typeobj.rst:1641 +#: c-api/typeobj.rst:1653 msgid "" "(Adding a slot named :attr:`~object.__dict__` to the :attr:`__slots__` " "declaration does not have the expected effect, it just causes confusion. " @@ -2528,17 +2455,17 @@ msgid "" "though.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1647 +#: c-api/typeobj.rst:1659 msgid "" -"This slot has no default. For static types, if the field is *NULL* then no :" -"attr:`__dict__` gets created for instances." +"This slot has no default. For static types, if the field is ``NULL`` then " +"no :attr:`__dict__` gets created for instances." msgstr "" -#: ../Doc/c-api/typeobj.rst:1653 +#: c-api/typeobj.rst:1665 msgid "An optional pointer to an instance initialization function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1655 +#: c-api/typeobj.rst:1667 msgid "" "This function corresponds to the :meth:`__init__` method of classes. Like :" "meth:`__init__`, it is possible to create an instance without calling :meth:" @@ -2546,16 +2473,16 @@ msgid "" "meth:`__init__` method again." msgstr "" -#: ../Doc/c-api/typeobj.rst:1664 +#: c-api/typeobj.rst:1676 msgid "" "The self argument is the instance to be initialized; the *args* and *kwds* " "arguments represent positional and keyword arguments of the call to :meth:" "`__init__`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1668 +#: c-api/typeobj.rst:1680 msgid "" -"The :c:member:`~PyTypeObject.tp_init` function, if not *NULL*, is called " +"The :c:member:`~PyTypeObject.tp_init` function, if not ``NULL``, is called " "when an instance is created normally by calling its type, after the type's :" "c:member:`~PyTypeObject.tp_new` function has returned an instance of the " "type. If the :c:member:`~PyTypeObject.tp_new` function returns an instance " @@ -2565,42 +2492,42 @@ msgid "" "subtype's :c:member:`~PyTypeObject.tp_init` is called." msgstr "" -#: ../Doc/c-api/typeobj.rst:1675 +#: c-api/typeobj.rst:1687 msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." msgstr "" -#: ../Doc/c-api/typeobj.rst:1683 +#: c-api/typeobj.rst:1695 msgid "For static types this field does not have a default." msgstr "" -#: ../Doc/c-api/typeobj.rst:1688 +#: c-api/typeobj.rst:1700 msgid "An optional pointer to an instance allocation function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1696 +#: c-api/typeobj.rst:1708 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1701 +#: c-api/typeobj.rst:1713 msgid "" "For dynamic subtypes, this field is always set to :c:func:" "`PyType_GenericAlloc`, to force a standard heap allocation strategy." msgstr "" -#: ../Doc/c-api/typeobj.rst:1705 +#: c-api/typeobj.rst:1717 msgid "" "For static subtypes, :c:type:`PyBaseObject_Type` uses :c:func:" "`PyType_GenericAlloc`. That is the recommended value for all statically " "defined types." msgstr "" -#: ../Doc/c-api/typeobj.rst:1712 +#: c-api/typeobj.rst:1724 msgid "An optional pointer to an instance creation function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1718 +#: c-api/typeobj.rst:1730 msgid "" "The subtype argument is the type of the object being created; the *args* and " "*kwds* arguments represent positional and keyword arguments of the call to " @@ -2609,7 +2536,7 @@ msgid "" "(but not an unrelated type)." msgstr "" -#: ../Doc/c-api/typeobj.rst:1724 +#: c-api/typeobj.rst:1736 msgid "" "The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" ">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " @@ -2621,54 +2548,54 @@ msgid "" "be deferred to :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1734 +#: c-api/typeobj.rst:1746 msgid "" "This field is inherited by subtypes, except it is not inherited by static " -"types whose :c:member:`~PyTypeObject.tp_base` is *NULL* or " +"types whose :c:member:`~PyTypeObject.tp_base` is ``NULL`` or " "``&PyBaseObject_Type``." msgstr "" -#: ../Doc/c-api/typeobj.rst:1739 +#: c-api/typeobj.rst:1751 msgid "" "For static types this field has no default. This means if the slot is " -"defined as *NULL*, the type cannot be called to create new instances; " +"defined as ``NULL``, the type cannot be called to create new instances; " "presumably there is some other way to create instances, like a factory " "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:1747 +#: c-api/typeobj.rst:1759 msgid "" "An optional pointer to an instance deallocation function. Its signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1751 +#: c-api/typeobj.rst:1763 msgid "" "An initializer that is compatible with this signature is :c:func:" "`PyObject_Free`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1755 +#: c-api/typeobj.rst:1767 msgid "" "This field is inherited by static subtypes, but not by dynamic subtypes " "(subtypes created by a class statement)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1760 +#: c-api/typeobj.rst:1772 msgid "" "In dynamic subtypes, this field is set to a deallocator suitable to match :c:" "func:`PyType_GenericAlloc` and the value of the :const:`Py_TPFLAGS_HAVE_GC` " "flag bit." msgstr "" -#: ../Doc/c-api/typeobj.rst:1764 +#: c-api/typeobj.rst:1776 msgid "For static subtypes, :c:type:`PyBaseObject_Type` uses PyObject_Del." msgstr "" -#: ../Doc/c-api/typeobj.rst:1769 +#: c-api/typeobj.rst:1781 msgid "An optional pointer to a function called by the garbage collector." msgstr "" -#: ../Doc/c-api/typeobj.rst:1771 +#: c-api/typeobj.rst:1783 msgid "" "The garbage collector needs to know whether a particular object is " "collectible or not. Normally, it is sufficient to look at the object's " @@ -2680,76 +2607,74 @@ msgid "" "instance. The signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1781 +#: c-api/typeobj.rst:1793 msgid "" "(The only example of this are types themselves. The metatype, :c:data:" "`PyType_Type`, defines this function to distinguish between statically and " "dynamically allocated types.)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1791 +#: c-api/typeobj.rst:1803 msgid "" -"This slot has no default. If this field is *NULL*, :const:" +"This slot has no default. If this field is ``NULL``, :const:" "`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." msgstr "" -#: ../Doc/c-api/typeobj.rst:1797 +#: c-api/typeobj.rst:1809 msgid "Tuple of base types." msgstr "" -#: ../Doc/c-api/typeobj.rst:1799 +#: c-api/typeobj.rst:1811 msgid "" -"This is set for types created by a class statement. It should be *NULL* for " -"statically defined types." +"This is set for types created by a class statement. It should be ``NULL`` " +"for statically defined types." msgstr "" -#: ../Doc/c-api/typeobj.rst:1804 ../Doc/c-api/typeobj.rst:1825 -#: ../Doc/c-api/typeobj.rst:1834 ../Doc/c-api/typeobj.rst:1844 -#: ../Doc/c-api/typeobj.rst:1858 +#: c-api/typeobj.rst:1837 c-api/typeobj.rst:1856 c-api/typeobj.rst:1870 msgid "This field is not inherited." msgstr "" -#: ../Doc/c-api/typeobj.rst:1809 +#: c-api/typeobj.rst:1821 msgid "" "Tuple containing the expanded set of base types, starting with the type " "itself and ending with :class:`object`, in Method Resolution Order." msgstr "" -#: ../Doc/c-api/typeobj.rst:1815 +#: c-api/typeobj.rst:1827 msgid "" "This field is not inherited; it is calculated fresh by :c:func:" "`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1821 +#: c-api/typeobj.rst:1833 msgid "Unused. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1830 +#: c-api/typeobj.rst:1842 msgid "List of weak references to subclasses. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1839 +#: c-api/typeobj.rst:1851 msgid "" "Weak reference list head, for weak references to this type object. Not " "inherited. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1849 +#: c-api/typeobj.rst:1861 msgid "" "This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." msgstr "" -#: ../Doc/c-api/typeobj.rst:1854 +#: c-api/typeobj.rst:1866 msgid "Used to index into the method cache. Internal use only." msgstr "" -#: ../Doc/c-api/typeobj.rst:1863 +#: c-api/typeobj.rst:1875 msgid "" "An optional pointer to an instance finalization function. Its signature is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1867 +#: c-api/typeobj.rst:1879 msgid "" "If :c:member:`~PyTypeObject.tp_finalize` is set, the interpreter calls it " "once when finalizing an instance. It is called either from the garbage " @@ -2759,24 +2684,24 @@ msgid "" "object in a sane state." msgstr "" -#: ../Doc/c-api/typeobj.rst:1874 +#: c-api/typeobj.rst:1886 msgid "" ":c:member:`~PyTypeObject.tp_finalize` should not mutate the current " "exception status; therefore, a recommended way to write a non-trivial " "finalizer is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:1891 +#: c-api/typeobj.rst:1903 msgid "" "For this field to be taken into account (even through inheritance), you must " "also set the :const:`Py_TPFLAGS_HAVE_FINALIZE` flags bit." msgstr "" -#: ../Doc/c-api/typeobj.rst:1900 +#: c-api/typeobj.rst:1912 msgid "\"Safe object finalization\" (:pep:`442`)" msgstr "" -#: ../Doc/c-api/typeobj.rst:1903 +#: c-api/typeobj.rst:1915 msgid "" "The remaining fields are only defined if the feature test macro :const:" "`COUNT_ALLOCS` is defined, and are for internal use only. They are " @@ -2784,31 +2709,31 @@ msgid "" "subtypes." msgstr "" -#: ../Doc/c-api/typeobj.rst:1910 +#: c-api/typeobj.rst:1922 msgid "Number of allocations." msgstr "" -#: ../Doc/c-api/typeobj.rst:1914 +#: c-api/typeobj.rst:1926 msgid "Number of frees." msgstr "" -#: ../Doc/c-api/typeobj.rst:1918 +#: c-api/typeobj.rst:1930 msgid "Maximum simultaneously allocated objects." msgstr "" -#: ../Doc/c-api/typeobj.rst:1922 +#: c-api/typeobj.rst:1934 msgid "" "Pointer to the previous type object with a non-zero :c:member:`~PyTypeObject." "tp_allocs` field." msgstr "" -#: ../Doc/c-api/typeobj.rst:1926 +#: c-api/typeobj.rst:1938 msgid "" "Pointer to the next type object with a non-zero :c:member:`~PyTypeObject." "tp_allocs` field." msgstr "" -#: ../Doc/c-api/typeobj.rst:1928 +#: c-api/typeobj.rst:1940 msgid "" "Also, note that, in a garbage collected Python, :c:member:`~PyTypeObject." "tp_dealloc` may be called from any Python thread, not just the thread which " @@ -2821,138 +2746,138 @@ msgid "" "which called tp_dealloc will not violate any assumptions of the library." msgstr "" -#: ../Doc/c-api/typeobj.rst:1942 +#: c-api/typeobj.rst:1954 msgid "Heap Types" msgstr "" -#: ../Doc/c-api/typeobj.rst:1944 +#: c-api/typeobj.rst:1956 msgid "" "Traditionally, types defined in C code are *static*, that is, a static :c:" "type:`PyTypeObject` structure is defined directly in code and initialized " "using :c:func:`PyType_Ready`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1948 +#: c-api/typeobj.rst:1960 msgid "" "This results in types that are limited relative to types defined in Python:" msgstr "" -#: ../Doc/c-api/typeobj.rst:1950 +#: c-api/typeobj.rst:1962 msgid "" "Static types are limited to one base, i.e. they cannot use multiple " "inheritance." msgstr "" -#: ../Doc/c-api/typeobj.rst:1952 +#: c-api/typeobj.rst:1964 msgid "" "Static type objects (but not necessarily their instances) are immutable. It " "is not possible to add or modify the type object's attributes from Python." msgstr "" -#: ../Doc/c-api/typeobj.rst:1954 +#: c-api/typeobj.rst:1966 msgid "" "Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" "specific state." msgstr "" -#: ../Doc/c-api/typeobj.rst:1958 +#: c-api/typeobj.rst:1970 msgid "" -"Also, since *PyTypeObject* is not part of the :ref:`stable ABI `, " -"any extension modules using static types must be compiled for a specific " -"Python minor version." +"Also, since :c:type:`PyTypeObject` is not part of the :ref:`stable ABI " +"`, any extension modules using static types must be compiled for a " +"specific Python minor version." msgstr "" -#: ../Doc/c-api/typeobj.rst:1962 +#: c-api/typeobj.rst:1974 msgid "" "An alternative to static types is *heap-allocated types*, or *heap types* " "for short, which correspond closely to classes created by Python's ``class`` " "statement." msgstr "" -#: ../Doc/c-api/typeobj.rst:1966 +#: c-api/typeobj.rst:1978 msgid "" "This is done by filling a :c:type:`PyType_Spec` structure and calling :c:" "func:`PyType_FromSpecWithBases`." msgstr "" -#: ../Doc/c-api/typeobj.rst:1973 +#: c-api/typeobj.rst:1985 msgid "Number Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:1980 +#: c-api/typeobj.rst:1992 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the number protocol. Each function is used by the function of " "similar name documented in the :ref:`number` section." msgstr "" -#: ../Doc/c-api/typeobj.rst:1986 ../Doc/c-api/typeobj.rst:2310 +#: c-api/typeobj.rst:2322 msgid "Here is the structure definition::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2033 +#: c-api/typeobj.rst:2045 msgid "" "Binary and ternary functions must check the type of all their operands, and " "implement the necessary conversions (at least one of the operands is an " "instance of the defined type). If the operation is not defined for the " "given operands, binary and ternary functions must return " -"``Py_NotImplemented``, if another error occurred they must return *NULL* and " -"set an exception." +"``Py_NotImplemented``, if another error occurred they must return ``NULL`` " +"and set an exception." msgstr "" -#: ../Doc/c-api/typeobj.rst:2042 +#: c-api/typeobj.rst:2054 msgid "" -"The :c:data:`nb_reserved` field should always be *NULL*. It was previously " -"called :c:data:`nb_long`, and was renamed in Python 3.0.1." +"The :c:data:`nb_reserved` field should always be ``NULL``. It was " +"previously called :c:data:`nb_long`, and was renamed in Python 3.0.1." msgstr "" -#: ../Doc/c-api/typeobj.rst:2087 +#: c-api/typeobj.rst:2099 msgid "Mapping Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2094 +#: c-api/typeobj.rst:2106 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the mapping protocol. It has three members:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2099 +#: c-api/typeobj.rst:2111 msgid "" "This function is used by :c:func:`PyMapping_Size` and :c:func:" -"`PyObject_Size`, and has the same signature. This slot may be set to *NULL* " -"if the object has no defined length." +"`PyObject_Size`, and has the same signature. This slot may be set to " +"``NULL`` if the object has no defined length." msgstr "" -#: ../Doc/c-api/typeobj.rst:2105 +#: c-api/typeobj.rst:2117 msgid "" "This function is used by :c:func:`PyObject_GetItem` and :c:func:" "`PySequence_GetSlice`, and has the same signature as :c:func:`!" "PyObject_GetItem`. This slot must be filled for the :c:func:" -"`PyMapping_Check` function to return ``1``, it can be *NULL* otherwise." +"`PyMapping_Check` function to return ``1``, it can be ``NULL`` otherwise." msgstr "" -#: ../Doc/c-api/typeobj.rst:2113 +#: c-api/typeobj.rst:2125 msgid "" "This function is used by :c:func:`PyObject_SetItem`, :c:func:" "`PyObject_DelItem`, :c:func:`PyObject_SetSlice` and :c:func:" "`PyObject_DelSlice`. It has the same signature as :c:func:`!" -"PyObject_SetItem`, but *v* can also be set to *NULL* to delete an item. If " -"this slot is *NULL*, the object does not support item assignment and " +"PyObject_SetItem`, but *v* can also be set to ``NULL`` to delete an item. " +"If this slot is ``NULL``, the object does not support item assignment and " "deletion." msgstr "" -#: ../Doc/c-api/typeobj.rst:2124 +#: c-api/typeobj.rst:2136 msgid "Sequence Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2131 +#: c-api/typeobj.rst:2143 msgid "" "This structure holds pointers to the functions which an object uses to " "implement the sequence protocol." msgstr "" -#: ../Doc/c-api/typeobj.rst:2136 +#: c-api/typeobj.rst:2148 msgid "" "This function is used by :c:func:`PySequence_Size` and :c:func:" "`PyObject_Size`, and has the same signature. It is also used for handling " @@ -2960,139 +2885,137 @@ msgid "" "member:`~PySequenceMethods.sq_ass_item` slots." msgstr "" -#: ../Doc/c-api/typeobj.rst:2143 +#: c-api/typeobj.rst:2155 msgid "" "This function is used by :c:func:`PySequence_Concat` and has the same " "signature. It is also used by the ``+`` operator, after trying the numeric " "addition via the :c:member:`~PyNumberMethods.nb_add` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2149 +#: c-api/typeobj.rst:2161 msgid "" "This function is used by :c:func:`PySequence_Repeat` and has the same " "signature. It is also used by the ``*`` operator, after trying numeric " "multiplication via the :c:member:`~PyNumberMethods.nb_multiply` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2155 +#: c-api/typeobj.rst:2167 msgid "" "This function is used by :c:func:`PySequence_GetItem` and has the same " "signature. It is also used by :c:func:`PyObject_GetItem`, after trying the " "subscription via the :c:member:`~PyMappingMethods.mp_subscript` slot. This " "slot must be filled for the :c:func:`PySequence_Check` function to return " -"``1``, it can be *NULL* otherwise." +"``1``, it can be ``NULL`` otherwise." msgstr "" -#: ../Doc/c-api/typeobj.rst:2161 +#: c-api/typeobj.rst:2173 msgid "" "Negative indexes are handled as follows: if the :attr:`sq_length` slot is " "filled, it is called and the sequence length is used to compute a positive " -"index which is passed to :attr:`sq_item`. If :attr:`sq_length` is *NULL*, " +"index which is passed to :attr:`sq_item`. If :attr:`sq_length` is ``NULL``, " "the index is passed as is to the function." msgstr "" -#: ../Doc/c-api/typeobj.rst:2168 +#: c-api/typeobj.rst:2180 msgid "" "This function is used by :c:func:`PySequence_SetItem` and has the same " "signature. It is also used by :c:func:`PyObject_SetItem` and :c:func:" "`PyObject_DelItem`, after trying the item assignment and deletion via the :c:" "member:`~PyMappingMethods.mp_ass_subscript` slot. This slot may be left to " -"*NULL* if the object does not support item assignment and deletion." +"``NULL`` if the object does not support item assignment and deletion." msgstr "" -#: ../Doc/c-api/typeobj.rst:2177 +#: c-api/typeobj.rst:2189 msgid "" "This function may be used by :c:func:`PySequence_Contains` and has the same " -"signature. This slot may be left to *NULL*, in this case :c:func:`!" +"signature. This slot may be left to ``NULL``, in this case :c:func:`!" "PySequence_Contains` simply traverses the sequence until it finds a match." msgstr "" -#: ../Doc/c-api/typeobj.rst:2184 +#: c-api/typeobj.rst:2196 msgid "" "This function is used by :c:func:`PySequence_InPlaceConcat` and has the same " "signature. It should modify its first operand, and return it. This slot " -"may be left to *NULL*, in this case :c:func:`!PySequence_InPlaceConcat` will " -"fall back to :c:func:`PySequence_Concat`. It is also used by the augmented " -"assignment ``+=``, after trying numeric in-place addition via the :c:member:" -"`~PyNumberMethods.nb_inplace_add` slot." +"may be left to ``NULL``, in this case :c:func:`!PySequence_InPlaceConcat` " +"will fall back to :c:func:`PySequence_Concat`. It is also used by the " +"augmented assignment ``+=``, after trying numeric in-place addition via the :" +"c:member:`~PyNumberMethods.nb_inplace_add` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2193 +#: c-api/typeobj.rst:2205 msgid "" "This function is used by :c:func:`PySequence_InPlaceRepeat` and has the same " "signature. It should modify its first operand, and return it. This slot " -"may be left to *NULL*, in this case :c:func:`!PySequence_InPlaceRepeat` will " -"fall back to :c:func:`PySequence_Repeat`. It is also used by the augmented " -"assignment ``*=``, after trying numeric in-place multiplication via the :c:" -"member:`~PyNumberMethods.nb_inplace_multiply` slot." +"may be left to ``NULL``, in this case :c:func:`!PySequence_InPlaceRepeat` " +"will fall back to :c:func:`PySequence_Repeat`. It is also used by the " +"augmented assignment ``*=``, after trying numeric in-place multiplication " +"via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." msgstr "" -#: ../Doc/c-api/typeobj.rst:2204 +#: c-api/typeobj.rst:2216 msgid "Buffer Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2212 +#: c-api/typeobj.rst:2224 msgid "" "This structure holds pointers to the functions required by the :ref:`Buffer " "protocol `. The protocol defines how an exporter object can " "expose its internal data to consumer objects." msgstr "" -#: ../Doc/c-api/typeobj.rst:2218 ../Doc/c-api/typeobj.rst:2267 -#: ../Doc/c-api/typeobj.rst:2320 ../Doc/c-api/typeobj.rst:2331 -#: ../Doc/c-api/typeobj.rst:2342 +#: c-api/typeobj.rst:2279 c-api/typeobj.rst:2343 c-api/typeobj.rst:2354 msgid "The signature of this function is::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2222 +#: c-api/typeobj.rst:2234 msgid "" "Handle a request to *exporter* to fill in *view* as specified by *flags*. " "Except for point (3), an implementation of this function MUST take these " "steps:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2226 +#: c-api/typeobj.rst:2238 msgid "" "Check if the request can be met. If not, raise :c:data:`PyExc_BufferError`, " -"set :c:data:`view->obj` to *NULL* and return ``-1``." +"set :c:data:`view->obj` to ``NULL`` and return ``-1``." msgstr "" -#: ../Doc/c-api/typeobj.rst:2229 +#: c-api/typeobj.rst:2241 msgid "Fill in the requested fields." msgstr "" -#: ../Doc/c-api/typeobj.rst:2231 +#: c-api/typeobj.rst:2243 msgid "Increment an internal counter for the number of exports." msgstr "" -#: ../Doc/c-api/typeobj.rst:2233 +#: c-api/typeobj.rst:2245 msgid "" "Set :c:data:`view->obj` to *exporter* and increment :c:data:`view->obj`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2235 +#: c-api/typeobj.rst:2247 msgid "Return ``0``." msgstr "" -#: ../Doc/c-api/typeobj.rst:2237 +#: c-api/typeobj.rst:2249 msgid "" "If *exporter* is part of a chain or tree of buffer providers, two main " "schemes can be used:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2240 +#: c-api/typeobj.rst:2252 msgid "" "Re-export: Each member of the tree acts as the exporting object and sets :c:" "data:`view->obj` to a new reference to itself." msgstr "" -#: ../Doc/c-api/typeobj.rst:2243 +#: c-api/typeobj.rst:2255 msgid "" "Redirect: The buffer request is redirected to the root object of the tree. " "Here, :c:data:`view->obj` will be a new reference to the root object." msgstr "" -#: ../Doc/c-api/typeobj.rst:2247 +#: c-api/typeobj.rst:2259 msgid "" "The individual fields of *view* are described in section :ref:`Buffer " "structure `, the rules how an exporter must react to " @@ -3100,7 +3023,7 @@ msgid "" "types>`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2252 +#: c-api/typeobj.rst:2264 msgid "" "All memory pointed to in the :c:type:`Py_buffer` structure belongs to the " "exporter and must remain valid until there are no consumers left. :c:member:" @@ -3109,35 +3032,35 @@ msgid "" "internal` are read-only for the consumer." msgstr "" -#: ../Doc/c-api/typeobj.rst:2259 +#: c-api/typeobj.rst:2271 msgid "" ":c:func:`PyBuffer_FillInfo` provides an easy way of exposing a simple bytes " "buffer while dealing correctly with all request types." msgstr "" -#: ../Doc/c-api/typeobj.rst:2262 +#: c-api/typeobj.rst:2274 msgid "" ":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " "this function." msgstr "" -#: ../Doc/c-api/typeobj.rst:2271 +#: c-api/typeobj.rst:2283 msgid "" "Handle a request to release the resources of the buffer. If no resources " "need to be released, :c:member:`PyBufferProcs.bf_releasebuffer` may be " -"*NULL*. Otherwise, a standard implementation of this function will take " +"``NULL``. Otherwise, a standard implementation of this function will take " "these optional steps:" msgstr "" -#: ../Doc/c-api/typeobj.rst:2276 +#: c-api/typeobj.rst:2288 msgid "Decrement an internal counter for the number of exports." msgstr "" -#: ../Doc/c-api/typeobj.rst:2278 +#: c-api/typeobj.rst:2290 msgid "If the counter is ``0``, free all memory associated with *view*." msgstr "" -#: ../Doc/c-api/typeobj.rst:2280 +#: c-api/typeobj.rst:2292 msgid "" "The exporter MUST use the :c:member:`~Py_buffer.internal` field to keep " "track of buffer-specific resources. This field is guaranteed to remain " @@ -3145,62 +3068,62 @@ msgid "" "*view* argument." msgstr "" -#: ../Doc/c-api/typeobj.rst:2286 +#: c-api/typeobj.rst:2298 msgid "" "This function MUST NOT decrement :c:data:`view->obj`, since that is done " "automatically in :c:func:`PyBuffer_Release` (this scheme is useful for " "breaking reference cycles)." msgstr "" -#: ../Doc/c-api/typeobj.rst:2291 +#: c-api/typeobj.rst:2303 msgid "" ":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " "function." msgstr "" -#: ../Doc/c-api/typeobj.rst:2299 +#: c-api/typeobj.rst:2311 msgid "Async Object Structures" msgstr "" -#: ../Doc/c-api/typeobj.rst:2307 +#: c-api/typeobj.rst:2319 msgid "" "This structure holds pointers to the functions required to implement :term:" "`awaitable` and :term:`asynchronous iterator` objects." msgstr "" -#: ../Doc/c-api/typeobj.rst:2324 +#: c-api/typeobj.rst:2336 msgid "" "The returned object must be an iterator, i.e. :c:func:`PyIter_Check` must " "return ``1`` for it." msgstr "" -#: ../Doc/c-api/typeobj.rst:2327 +#: c-api/typeobj.rst:2339 msgid "" -"This slot may be set to *NULL* if an object is not an :term:`awaitable`." +"This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2335 +#: c-api/typeobj.rst:2347 msgid "" "Must return an :term:`awaitable` object. See :meth:`__anext__` for details." msgstr "" -#: ../Doc/c-api/typeobj.rst:2337 +#: c-api/typeobj.rst:2349 msgid "" -"This slot may be set to *NULL* if an object does not implement asynchronous " -"iteration protocol." +"This slot may be set to ``NULL`` if an object does not implement " +"asynchronous iteration protocol." msgstr "" -#: ../Doc/c-api/typeobj.rst:2346 +#: c-api/typeobj.rst:2358 msgid "" "Must return an :term:`awaitable` object. See :meth:`__anext__` for details. " -"This slot may be set to *NULL*." +"This slot may be set to ``NULL``." msgstr "" -#: ../Doc/c-api/typeobj.rst:2353 +#: c-api/typeobj.rst:2365 msgid "Slot Type typedefs" msgstr "" -#: ../Doc/c-api/typeobj.rst:2357 +#: c-api/typeobj.rst:2369 msgid "" "The purpose of this function is to separate memory allocation from memory " "initialization. It should return a pointer to a block of memory of adequate " @@ -3214,86 +3137,86 @@ msgid "" "member:`~PyTypeObject.tp_basicsize`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2367 +#: c-api/typeobj.rst:2379 msgid "" "This function should not do any other instance initialization, not even to " "allocate additional memory; that should be done by :c:member:`~PyTypeObject." "tp_new`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2374 +#: c-api/typeobj.rst:2386 msgid "See :c:member:`~PyTypeObject.tp_vectorcall_offset`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2376 +#: c-api/typeobj.rst:2388 msgid "" "Arguments to ``vectorcallfunc`` are the same as for :c:func:" "`_PyObject_Vectorcall`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2382 +#: c-api/typeobj.rst:2394 msgid "See :c:member:`~PyTypeObject.tp_free`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2386 +#: c-api/typeobj.rst:2398 msgid "See :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2390 +#: c-api/typeobj.rst:2402 msgid "See :c:member:`~PyTypeObject.tp_init`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2394 +#: c-api/typeobj.rst:2406 msgid "See :c:member:`~PyTypeObject.tp_repr`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2398 ../Doc/c-api/typeobj.rst:2407 +#: c-api/typeobj.rst:2419 msgid "Return the value of the named attribute for the object." msgstr "" -#: ../Doc/c-api/typeobj.rst:2402 ../Doc/c-api/typeobj.rst:2413 +#: c-api/typeobj.rst:2425 msgid "" "Set the value of the named attribute for the object. The value argument is " -"set to *NULL* to delete the attribute." +"set to ``NULL`` to delete the attribute." msgstr "" -#: ../Doc/c-api/typeobj.rst:2409 +#: c-api/typeobj.rst:2421 msgid "See :c:member:`~PyTypeObject.tp_getattro`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2416 +#: c-api/typeobj.rst:2428 msgid "See :c:member:`~PyTypeObject.tp_setattro`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2420 +#: c-api/typeobj.rst:2432 msgid "See :c:member:`~PyTypeObject.tp_descrget`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2424 +#: c-api/typeobj.rst:2436 msgid "See :c:member:`~PyTypeObject.tp_descrset`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2428 +#: c-api/typeobj.rst:2440 msgid "See :c:member:`~PyTypeObject.tp_hash`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2432 +#: c-api/typeobj.rst:2444 msgid "See :c:member:`~PyTypeObject.tp_richcompare`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2436 +#: c-api/typeobj.rst:2448 msgid "See :c:member:`~PyTypeObject.tp_iter`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2440 +#: c-api/typeobj.rst:2452 msgid "See :c:member:`~PyTypeObject.tp_iternext`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2466 +#: c-api/typeobj.rst:2478 msgid "Examples" msgstr "Exemples" -#: ../Doc/c-api/typeobj.rst:2468 +#: c-api/typeobj.rst:2480 msgid "" "The following are simple examples of Python type definitions. They include " "common usage you may encounter. Some demonstrate tricky corner cases. For " @@ -3301,30 +3224,30 @@ msgid "" "and :ref:`new-types-topics`." msgstr "" -#: ../Doc/c-api/typeobj.rst:2473 +#: c-api/typeobj.rst:2485 msgid "A basic static type::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2490 +#: c-api/typeobj.rst:2502 msgid "" "You may also find older code (especially in the CPython code base) with a " "more verbose initializer::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2534 +#: c-api/typeobj.rst:2546 msgid "A type that supports weakrefs, instance dicts, and hashing::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2561 +#: c-api/typeobj.rst:2573 msgid "" "A str subclass that cannot be subclassed and cannot be called to create " "instances (e.g. uses a separate factory func)::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2580 +#: c-api/typeobj.rst:2592 msgid "The simplest static type (with fixed-length instances)::" msgstr "" -#: ../Doc/c-api/typeobj.rst:2591 +#: c-api/typeobj.rst:2603 msgid "The simplest static type (with variable-length instances)::" msgstr "" diff --git a/c-api/unicode.po b/c-api/unicode.po index 328d307f1e..8e1bb2b6be 100644 --- a/c-api/unicode.po +++ b/c-api/unicode.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-04 12:27+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,15 +14,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/unicode.rst:6 +#: c-api/unicode.rst:6 msgid "Unicode Objects and Codecs" -msgstr "" +msgstr "Objets Unicode et Codecs" -#: ../Doc/c-api/unicode.rst:12 +#: c-api/unicode.rst:12 msgid "Unicode Objects" -msgstr "" +msgstr "Objets Unicode" -#: ../Doc/c-api/unicode.rst:14 +#: c-api/unicode.rst:14 msgid "" "Since the implementation of :pep:`393` in Python 3.3, Unicode objects " "internally use a variety of representations, in order to allow handling the " @@ -31,29 +31,40 @@ msgid "" "65536; otherwise, code points must be below 1114112 (which is the full " "Unicode range)." msgstr "" +"Depuis l'implémentation de :pep:`393` dans Python 3.3, les objets Unicode " +"utilisent une variété de représentations internes, pour permettre de gérer " +"l'intervalle complet des caractères Unicode en restant efficace en termes de " +"mémoire. Il y a des cas spéciaux pour les chaînes où tous les points de code " +"sont inférieurs à 128, 256, ou 65536 ; sinon, les points de code doivent " +"être inférieurs à 1114112 (qui est l'intervalle Unicode complet)." -#: ../Doc/c-api/unicode.rst:20 +#: c-api/unicode.rst:20 msgid "" ":c:type:`Py_UNICODE*` and UTF-8 representations are created on demand and " "cached in the Unicode object. The :c:type:`Py_UNICODE*` representation is " -"deprecated and inefficient; it should be avoided in performance- or memory-" -"sensitive situations." +"deprecated and inefficient." msgstr "" -#: ../Doc/c-api/unicode.rst:25 +#: c-api/unicode.rst:24 msgid "" "Due to the transition between the old APIs and the new APIs, Unicode objects " "can internally be in two states depending on how they were created:" msgstr "" +"En raison de la transition des anciennes APIs vers les nouvelles APIs, les " +"objets Unicode peuvent être dans deux états internes selon comment ils ont " +"été créés :" -#: ../Doc/c-api/unicode.rst:28 +#: c-api/unicode.rst:27 msgid "" "\"canonical\" Unicode objects are all objects created by a non-deprecated " "Unicode API. They use the most efficient representation allowed by the " "implementation." msgstr "" +"Les objets Unicode « canoniques » sont tous les objets créés par une API " +"Unicode non-dépréciée. Ils utilisent la représentation la plus efficace " +"permise par l'implémentation." -#: ../Doc/c-api/unicode.rst:32 +#: c-api/unicode.rst:31 msgid "" "\"legacy\" Unicode objects have been created through one of the deprecated " "APIs (typically :c:func:`PyUnicode_FromUnicode`) and only bear the :c:type:" @@ -61,86 +72,108 @@ msgid "" "`PyUnicode_READY` on them before calling any other API." msgstr "" -#: ../Doc/c-api/unicode.rst:39 -msgid "Unicode Type" +#: c-api/unicode.rst:37 +msgid "" +"The \"legacy\" Unicode object will be removed in Python 3.12 with deprecated " +"APIs. All Unicode objects will be \"canonical\" since then. See :pep:`623` " +"for more information." msgstr "" +"Les objets Unicode « historiques » vont être supprimés de Python 3.12 avec " +"les APIs dépréciées. Tous les objets Unicode vont être « canoniques » à " +"partir de là. Voir :pep:`623` pour plus d'information." + +#: c-api/unicode.rst:43 +msgid "Unicode Type" +msgstr "Type Unicode" -#: ../Doc/c-api/unicode.rst:41 +#: c-api/unicode.rst:45 msgid "" "These are the basic Unicode object types used for the Unicode implementation " "in Python:" msgstr "" +"Voici les types d'objets Unicode utilisés pour l'implémentation Unicode en " +"Python :" -#: ../Doc/c-api/unicode.rst:48 +#: c-api/unicode.rst:52 msgid "" "These types are typedefs for unsigned integer types wide enough to contain " "characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " "single Unicode characters, use :c:type:`Py_UCS4`." msgstr "" +"Voici les *typedefs* pour les types entiers non signés suffisamment large " +"pour contenir des caractères de 32 bits, 16 bits et 8 bits, respectivement. " +"Pour traiter des caractères uniques, utilisez :c:type:`Py_UCS4`." -#: ../Doc/c-api/unicode.rst:57 +#: c-api/unicode.rst:61 msgid "" "This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " "type depending on the platform." msgstr "" -#: ../Doc/c-api/unicode.rst:60 +#: c-api/unicode.rst:64 msgid "" "In previous versions, this was a 16-bit type or a 32-bit type depending on " "whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " "build time." msgstr "" +"Dans les versions précédentes, ceci était un type 16-bit ou un type 32-bit " +"selon que vous choisissiez une version Unicode *narrow* ou *wide* de Python " +"à la compilation." -#: ../Doc/c-api/unicode.rst:70 +#: c-api/unicode.rst:74 msgid "" "These subtypes of :c:type:`PyObject` represent a Python Unicode object. In " "almost all cases, they shouldn't be used directly, since all API functions " "that deal with Unicode objects take and return :c:type:`PyObject` pointers." msgstr "" -#: ../Doc/c-api/unicode.rst:79 +#: c-api/unicode.rst:83 msgid "" "This instance of :c:type:`PyTypeObject` represents the Python Unicode type. " "It is exposed to Python code as ``str``." msgstr "" -#: ../Doc/c-api/unicode.rst:83 +#: c-api/unicode.rst:87 msgid "" "The following APIs are really C macros and can be used to do fast checks and " "to access internal read-only data of Unicode objects:" msgstr "" -#: ../Doc/c-api/unicode.rst:88 +#: c-api/unicode.rst:92 msgid "" "Return true if the object *o* is a Unicode object or an instance of a " "Unicode subtype." msgstr "" -#: ../Doc/c-api/unicode.rst:94 +#: c-api/unicode.rst:98 msgid "" "Return true if the object *o* is a Unicode object, but not an instance of a " "subtype." msgstr "" -#: ../Doc/c-api/unicode.rst:100 +#: c-api/unicode.rst:104 msgid "" "Ensure the string object *o* is in the \"canonical\" representation. This " "is required before using any of the access macros described below." msgstr "" -#: ../Doc/c-api/unicode.rst:105 +#: c-api/unicode.rst:109 msgid "" "Returns ``0`` on success and ``-1`` with an exception set on failure, which " "in particular happens if memory allocation fails." msgstr "" -#: ../Doc/c-api/unicode.rst:113 +#: c-api/unicode.rst:115 +msgid "This API will be removed with :c:func:`PyUnicode_FromUnicode`." +msgstr "" + +#: c-api/unicode.rst:120 msgid "" "Return the length of the Unicode string, in code points. *o* has to be a " "Unicode object in the \"canonical\" representation (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:123 +#: c-api/unicode.rst:130 msgid "" "Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 " "integer types for direct character access. No checks are performed if the " @@ -149,24 +182,28 @@ msgid "" "`PyUnicode_READY` has been called before accessing this." msgstr "" -#: ../Doc/c-api/unicode.rst:137 +#: c-api/unicode.rst:144 msgid "Return values of the :c:func:`PyUnicode_KIND` macro." msgstr "" -#: ../Doc/c-api/unicode.rst:144 +#: c-api/unicode.rst:149 +msgid "``PyUnicode_WCHAR_KIND`` is deprecated." +msgstr "" + +#: c-api/unicode.rst:154 msgid "" "Return one of the PyUnicode kind constants (see above) that indicate how " "many bytes per character this Unicode object uses to store its data. *o* " "has to be a Unicode object in the \"canonical\" representation (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:155 +#: c-api/unicode.rst:165 msgid "" "Return a void pointer to the raw Unicode buffer. *o* has to be a Unicode " "object in the \"canonical\" representation (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:164 +#: c-api/unicode.rst:174 msgid "" "Write into a canonical representation *data* (as obtained with :c:func:" "`PyUnicode_DATA`). This macro does not do any sanity checks and is intended " @@ -176,50 +213,50 @@ msgid "" "written to that location." msgstr "" -#: ../Doc/c-api/unicode.rst:176 +#: c-api/unicode.rst:186 msgid "" "Read a code point from a canonical representation *data* (as obtained with :" "c:func:`PyUnicode_DATA`). No checks or ready calls are performed." msgstr "" -#: ../Doc/c-api/unicode.rst:184 +#: c-api/unicode.rst:194 msgid "" -"Read a character from a Unicode object *o*, which must be in the \"canonical" -"\" representation. This is less efficient than :c:func:`PyUnicode_READ` if " -"you do multiple consecutive reads." +"Read a character from a Unicode object *o*, which must be in the " +"\"canonical\" representation. This is less efficient than :c:func:" +"`PyUnicode_READ` if you do multiple consecutive reads." msgstr "" -#: ../Doc/c-api/unicode.rst:193 +#: c-api/unicode.rst:203 msgid "" "Return the maximum code point that is suitable for creating another string " "based on *o*, which must be in the \"canonical\" representation. This is " "always an approximation but more efficient than iterating over the string." msgstr "" -#: ../Doc/c-api/unicode.rst:202 +#: c-api/unicode.rst:212 msgid "Clear the free list. Return the total number of freed items." msgstr "" -#: ../Doc/c-api/unicode.rst:207 +#: c-api/unicode.rst:217 msgid "" "Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " "code units (this includes surrogate pairs as 2 units). *o* has to be a " "Unicode object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:213 ../Doc/c-api/unicode.rst:223 +#: c-api/unicode.rst:233 c-api/unicode.rst:767 msgid "" "Part of the old-style Unicode API, please migrate to using :c:func:" "`PyUnicode_GET_LENGTH`." msgstr "" -#: ../Doc/c-api/unicode.rst:218 +#: c-api/unicode.rst:228 msgid "" "Return the size of the deprecated :c:type:`Py_UNICODE` representation in " "bytes. *o* has to be a Unicode object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:229 +#: c-api/unicode.rst:239 msgid "" "Return a pointer to a :c:type:`Py_UNICODE` representation of the object. " "The returned buffer is always terminated with an extra null code point. It " @@ -229,80 +266,80 @@ msgid "" "object (not checked)." msgstr "" -#: ../Doc/c-api/unicode.rst:236 +#: c-api/unicode.rst:246 msgid "" "This macro is now inefficient -- because in many cases the :c:type:" "`Py_UNICODE` representation does not exist and needs to be created -- and " -"can fail (return *NULL* with an exception set). Try to port the code to use " -"the new :c:func:`PyUnicode_nBYTE_DATA` macros or use :c:func:" +"can fail (return ``NULL`` with an exception set). Try to port the code to " +"use the new :c:func:`PyUnicode_nBYTE_DATA` macros or use :c:func:" "`PyUnicode_WRITE` or :c:func:`PyUnicode_READ`." msgstr "" -#: ../Doc/c-api/unicode.rst:245 +#: c-api/unicode.rst:255 msgid "" "Part of the old-style Unicode API, please migrate to using the :c:func:" "`PyUnicode_nBYTE_DATA` family of macros." msgstr "" -#: ../Doc/c-api/unicode.rst:249 +#: c-api/unicode.rst:259 msgid "Unicode Character Properties" msgstr "" -#: ../Doc/c-api/unicode.rst:251 +#: c-api/unicode.rst:261 msgid "" "Unicode provides many different character properties. The most often needed " "ones are available through these macros which are mapped to C functions " "depending on the Python configuration." msgstr "" -#: ../Doc/c-api/unicode.rst:258 +#: c-api/unicode.rst:268 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." msgstr "" -#: ../Doc/c-api/unicode.rst:263 +#: c-api/unicode.rst:273 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." msgstr "" -#: ../Doc/c-api/unicode.rst:268 +#: c-api/unicode.rst:278 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." msgstr "" -#: ../Doc/c-api/unicode.rst:273 +#: c-api/unicode.rst:283 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." msgstr "" -#: ../Doc/c-api/unicode.rst:278 +#: c-api/unicode.rst:288 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." msgstr "" -#: ../Doc/c-api/unicode.rst:283 +#: c-api/unicode.rst:293 msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." msgstr "" -#: ../Doc/c-api/unicode.rst:288 +#: c-api/unicode.rst:298 msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." msgstr "" -#: ../Doc/c-api/unicode.rst:293 +#: c-api/unicode.rst:303 msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." msgstr "" -#: ../Doc/c-api/unicode.rst:298 +#: c-api/unicode.rst:308 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." msgstr "" -#: ../Doc/c-api/unicode.rst:303 +#: c-api/unicode.rst:313 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." msgstr "" -#: ../Doc/c-api/unicode.rst:308 +#: c-api/unicode.rst:318 msgid "" "Return ``1`` or ``0`` depending on whether *ch* is a printable character. " "Nonprintable characters are those characters defined in the Unicode " @@ -313,92 +350,91 @@ msgid "" "to :data:`sys.stdout` or :data:`sys.stderr`.)" msgstr "" -#: ../Doc/c-api/unicode.rst:317 +#: c-api/unicode.rst:327 msgid "These APIs can be used for fast direct character conversions:" msgstr "" -#: ../Doc/c-api/unicode.rst:322 +#: c-api/unicode.rst:332 msgid "Return the character *ch* converted to lower case." msgstr "" -#: ../Doc/c-api/unicode.rst:324 ../Doc/c-api/unicode.rst:332 -#: ../Doc/c-api/unicode.rst:340 +#: c-api/unicode.rst:342 c-api/unicode.rst:350 msgid "This function uses simple case mappings." msgstr "" -#: ../Doc/c-api/unicode.rst:330 +#: c-api/unicode.rst:340 msgid "Return the character *ch* converted to upper case." msgstr "" -#: ../Doc/c-api/unicode.rst:338 +#: c-api/unicode.rst:348 msgid "Return the character *ch* converted to title case." msgstr "" -#: ../Doc/c-api/unicode.rst:346 +#: c-api/unicode.rst:356 msgid "" "Return the character *ch* converted to a decimal positive integer. Return " "``-1`` if this is not possible. This macro does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:352 +#: c-api/unicode.rst:362 msgid "" "Return the character *ch* converted to a single digit integer. Return ``-1`` " "if this is not possible. This macro does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:358 +#: c-api/unicode.rst:368 msgid "" "Return the character *ch* converted to a double. Return ``-1.0`` if this is " "not possible. This macro does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:362 +#: c-api/unicode.rst:372 msgid "These APIs can be used to work with surrogates:" msgstr "" -#: ../Doc/c-api/unicode.rst:366 +#: c-api/unicode.rst:376 msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." msgstr "" -#: ../Doc/c-api/unicode.rst:370 +#: c-api/unicode.rst:380 msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." msgstr "" -#: ../Doc/c-api/unicode.rst:374 +#: c-api/unicode.rst:384 msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." msgstr "" -#: ../Doc/c-api/unicode.rst:378 +#: c-api/unicode.rst:388 msgid "" "Join two surrogate characters and return a single Py_UCS4 value. *high* and " "*low* are respectively the leading and trailing surrogates in a surrogate " "pair." msgstr "" -#: ../Doc/c-api/unicode.rst:384 +#: c-api/unicode.rst:394 msgid "Creating and accessing Unicode strings" msgstr "" -#: ../Doc/c-api/unicode.rst:386 +#: c-api/unicode.rst:396 msgid "" "To create Unicode objects and access their basic sequence properties, use " "these APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:391 +#: c-api/unicode.rst:401 msgid "" "Create a new Unicode object. *maxchar* should be the true maximum code " "point to be placed in the string. As an approximation, it can be rounded up " "to the nearest value in the sequence 127, 255, 65535, 1114111." msgstr "" -#: ../Doc/c-api/unicode.rst:395 +#: c-api/unicode.rst:405 msgid "" "This is the recommended way to allocate a new Unicode object. Objects " "created using this function are not resizable." msgstr "" -#: ../Doc/c-api/unicode.rst:404 +#: c-api/unicode.rst:414 msgid "" "Create a new Unicode object with the given *kind* (possible values are :c:" "macro:`PyUnicode_1BYTE_KIND` etc., as returned by :c:func:" @@ -406,27 +442,28 @@ msgid "" "1, 2 or 4 bytes per character, as given by the kind." msgstr "" -#: ../Doc/c-api/unicode.rst:414 +#: c-api/unicode.rst:424 msgid "" "Create a Unicode object from the char buffer *u*. The bytes will be " "interpreted as being UTF-8 encoded. The buffer is copied into the new " -"object. If the buffer is not *NULL*, the return value might be a shared " +"object. If the buffer is not ``NULL``, the return value might be a shared " "object, i.e. modification of the data is not allowed." msgstr "" -#: ../Doc/c-api/unicode.rst:419 +#: c-api/unicode.rst:429 msgid "" -"If *u* is *NULL*, this function behaves like :c:func:`PyUnicode_FromUnicode` " -"with the buffer set to *NULL*. This usage is deprecated in favor of :c:func:" -"`PyUnicode_New`." +"If *u* is ``NULL``, this function behaves like :c:func:" +"`PyUnicode_FromUnicode` with the buffer set to ``NULL``. This usage is " +"deprecated in favor of :c:func:`PyUnicode_New`, and will be removed in " +"Python 3.12." msgstr "" -#: ../Doc/c-api/unicode.rst:426 +#: c-api/unicode.rst:436 msgid "" "Create a Unicode object from a UTF-8 encoded null-terminated char buffer *u*." msgstr "" -#: ../Doc/c-api/unicode.rst:432 +#: c-api/unicode.rst:442 msgid "" "Take a C :c:func:`printf`\\ -style *format* string and a variable number of " "arguments, calculate the size of the resulting Python Unicode string and " @@ -435,325 +472,324 @@ msgid "" "*format* ASCII-encoded string. The following format characters are allowed:" msgstr "" -#: ../Doc/c-api/unicode.rst:447 +#: c-api/unicode.rst:457 msgid "Format Characters" -msgstr "" +msgstr "Caractères de format" -#: ../Doc/c-api/unicode.rst:447 +#: c-api/unicode.rst:457 msgid "Type" msgstr "Type" -#: ../Doc/c-api/unicode.rst:447 +#: c-api/unicode.rst:457 +#, fuzzy msgid "Comment" -msgstr "" +msgstr "Commentaires" -#: ../Doc/c-api/unicode.rst:449 +#: c-api/unicode.rst:459 msgid ":attr:`%%`" -msgstr "" +msgstr ":attr:`%%`" -#: ../Doc/c-api/unicode.rst:449 +#: c-api/unicode.rst:459 msgid "*n/a*" msgstr "" -#: ../Doc/c-api/unicode.rst:449 +#: c-api/unicode.rst:459 msgid "The literal % character." msgstr "" -#: ../Doc/c-api/unicode.rst:451 +#: c-api/unicode.rst:461 msgid ":attr:`%c`" -msgstr "" +msgstr ":attr:`%c`" -#: ../Doc/c-api/unicode.rst:451 ../Doc/c-api/unicode.rst:454 -#: ../Doc/c-api/unicode.rst:487 ../Doc/c-api/unicode.rst:490 +#: c-api/unicode.rst:464 c-api/unicode.rst:500 msgid "int" msgstr "*int*" -#: ../Doc/c-api/unicode.rst:451 +#: c-api/unicode.rst:461 msgid "A single character, represented as a C int." msgstr "" -#: ../Doc/c-api/unicode.rst:454 +#: c-api/unicode.rst:464 msgid ":attr:`%d`" -msgstr "" +msgstr ":attr:`%d`" -#: ../Doc/c-api/unicode.rst:454 +#: c-api/unicode.rst:464 msgid "Equivalent to ``printf(\"%d\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid ":attr:`%u`" -msgstr "" +msgstr ":attr:`%u`" -#: ../Doc/c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/c-api/unicode.rst:457 +#: c-api/unicode.rst:467 msgid "Equivalent to ``printf(\"%u\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:460 +#: c-api/unicode.rst:470 msgid ":attr:`%ld`" -msgstr "" +msgstr ":attr:`%ld`" -#: ../Doc/c-api/unicode.rst:460 ../Doc/c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid "long" msgstr "" -#: ../Doc/c-api/unicode.rst:460 +#: c-api/unicode.rst:470 msgid "Equivalent to ``printf(\"%ld\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid ":attr:`%li`" -msgstr "" +msgstr ":attr:`%li`" -#: ../Doc/c-api/unicode.rst:463 +#: c-api/unicode.rst:473 msgid "Equivalent to ``printf(\"%li\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid ":attr:`%lu`" -msgstr "" +msgstr ":attr:`%lu`" -#: ../Doc/c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/c-api/unicode.rst:466 +#: c-api/unicode.rst:476 msgid "Equivalent to ``printf(\"%lu\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:469 +#: c-api/unicode.rst:479 msgid ":attr:`%lld`" -msgstr "" +msgstr ":attr:`%lld`" -#: ../Doc/c-api/unicode.rst:469 ../Doc/c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid "long long" msgstr "" -#: ../Doc/c-api/unicode.rst:469 +#: c-api/unicode.rst:479 msgid "Equivalent to ``printf(\"%lld\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid ":attr:`%lli`" -msgstr "" +msgstr ":attr:`%lli`" -#: ../Doc/c-api/unicode.rst:472 +#: c-api/unicode.rst:482 msgid "Equivalent to ``printf(\"%lli\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid ":attr:`%llu`" -msgstr "" +msgstr ":attr:`%llu`" -#: ../Doc/c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid "unsigned long long" msgstr "``unsigned long long``" -#: ../Doc/c-api/unicode.rst:475 +#: c-api/unicode.rst:485 msgid "Equivalent to ``printf(\"%llu\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:478 +#: c-api/unicode.rst:488 msgid ":attr:`%zd`" -msgstr "" +msgstr ":attr:`%zd`" -#: ../Doc/c-api/unicode.rst:478 ../Doc/c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid "Py_ssize_t" msgstr "" -#: ../Doc/c-api/unicode.rst:478 +#: c-api/unicode.rst:488 msgid "Equivalent to ``printf(\"%zd\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid ":attr:`%zi`" -msgstr "" +msgstr ":attr:`%zi`" -#: ../Doc/c-api/unicode.rst:481 +#: c-api/unicode.rst:491 msgid "Equivalent to ``printf(\"%zi\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid ":attr:`%zu`" -msgstr "" +msgstr ":attr:`%zu`" -#: ../Doc/c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid "size_t" msgstr "" -#: ../Doc/c-api/unicode.rst:484 +#: c-api/unicode.rst:494 msgid "Equivalent to ``printf(\"%zu\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:487 +#: c-api/unicode.rst:497 msgid ":attr:`%i`" -msgstr "" +msgstr ":attr:`%i`" -#: ../Doc/c-api/unicode.rst:487 +#: c-api/unicode.rst:497 msgid "Equivalent to ``printf(\"%i\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:490 +#: c-api/unicode.rst:500 msgid ":attr:`%x`" -msgstr "" +msgstr ":attr:`%x`" -#: ../Doc/c-api/unicode.rst:490 +#: c-api/unicode.rst:500 msgid "Equivalent to ``printf(\"%x\")``. [1]_" msgstr "" -#: ../Doc/c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid ":attr:`%s`" -msgstr "" +msgstr ":attr:`%s`" -#: ../Doc/c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid "const char\\*" msgstr "" -#: ../Doc/c-api/unicode.rst:493 +#: c-api/unicode.rst:503 msgid "A null-terminated C character array." msgstr "" -#: ../Doc/c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid ":attr:`%p`" -msgstr "" +msgstr ":attr:`%p`" -#: ../Doc/c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid "const void\\*" msgstr "" -#: ../Doc/c-api/unicode.rst:496 +#: c-api/unicode.rst:506 msgid "" -"The hex representation of a C pointer. Mostly equivalent to ``printf(\"%p" -"\")`` except that it is guaranteed to start with the literal ``0x`` " -"regardless of what the platform's ``printf`` yields." +"The hex representation of a C pointer. Mostly equivalent to " +"``printf(\"%p\")`` except that it is guaranteed to start with the literal " +"``0x`` regardless of what the platform's ``printf`` yields." msgstr "" -#: ../Doc/c-api/unicode.rst:504 +#: c-api/unicode.rst:514 msgid ":attr:`%A`" -msgstr "" +msgstr ":attr:`%A`" -#: ../Doc/c-api/unicode.rst:504 ../Doc/c-api/unicode.rst:507 -#: ../Doc/c-api/unicode.rst:516 ../Doc/c-api/unicode.rst:519 +#: c-api/unicode.rst:517 c-api/unicode.rst:529 msgid "PyObject\\*" msgstr "PyObject\\*" -#: ../Doc/c-api/unicode.rst:504 +#: c-api/unicode.rst:514 msgid "The result of calling :func:`ascii`." msgstr "" -#: ../Doc/c-api/unicode.rst:507 +#: c-api/unicode.rst:517 msgid ":attr:`%U`" -msgstr "" +msgstr ":attr:`%U`" -#: ../Doc/c-api/unicode.rst:507 +#: c-api/unicode.rst:517 #, fuzzy msgid "A Unicode object." msgstr "Un objet Unicode." -#: ../Doc/c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid ":attr:`%V`" -msgstr "" +msgstr ":attr:`%V`" -#: ../Doc/c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid "PyObject\\*, const char\\*" msgstr "" -#: ../Doc/c-api/unicode.rst:509 +#: c-api/unicode.rst:519 msgid "" -"A Unicode object (which may be *NULL*) and a null-terminated C character " +"A Unicode object (which may be ``NULL``) and a null-terminated C character " "array as a second parameter (which will be used, if the first parameter is " -"*NULL*)." +"``NULL``)." msgstr "" -#: ../Doc/c-api/unicode.rst:516 +#: c-api/unicode.rst:526 msgid ":attr:`%S`" -msgstr "" +msgstr ":attr:`%S`" -#: ../Doc/c-api/unicode.rst:516 +#: c-api/unicode.rst:526 msgid "The result of calling :c:func:`PyObject_Str`." msgstr "" -#: ../Doc/c-api/unicode.rst:519 +#: c-api/unicode.rst:529 msgid ":attr:`%R`" -msgstr "" +msgstr ":attr:`%R`" -#: ../Doc/c-api/unicode.rst:519 +#: c-api/unicode.rst:529 msgid "The result of calling :c:func:`PyObject_Repr`." msgstr "" -#: ../Doc/c-api/unicode.rst:523 +#: c-api/unicode.rst:533 msgid "" "An unrecognized format character causes all the rest of the format string to " "be copied as-is to the result string, and any extra arguments discarded." msgstr "" -#: ../Doc/c-api/unicode.rst:527 +#: c-api/unicode.rst:537 msgid "" "The width formatter unit is number of characters rather than bytes. The " "precision formatter unit is number of bytes for ``\"%s\"`` and ``\"%V\"`` " -"(if the ``PyObject*`` argument is NULL), and a number of characters for ``" -"\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` and ``\"%V\"`` (if the " -"``PyObject*`` argument is not NULL)." +"(if the ``PyObject*`` argument is ``NULL``), and a number of characters for " +"``\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` and ``\"%V\"`` (if the " +"``PyObject*`` argument is not ``NULL``)." msgstr "" -#: ../Doc/c-api/unicode.rst:533 +#: c-api/unicode.rst:543 msgid "" "For integer specifiers (d, u, ld, li, lu, lld, lli, llu, zd, zi, zu, i, x): " "the 0-conversion flag has effect even when a precision is given." msgstr "" -#: ../Doc/c-api/unicode.rst:536 +#: c-api/unicode.rst:546 msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." msgstr "" -#: ../Doc/c-api/unicode.rst:539 +#: c-api/unicode.rst:549 msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." msgstr "" -#: ../Doc/c-api/unicode.rst:542 +#: c-api/unicode.rst:552 msgid "" -"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, ``\"%U" -"\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." +"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " +"``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." msgstr "" -#: ../Doc/c-api/unicode.rst:549 +#: c-api/unicode.rst:559 msgid "" "Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " "arguments." msgstr "" -#: ../Doc/c-api/unicode.rst:556 +#: c-api/unicode.rst:566 msgid "Decode an encoded object *obj* to a Unicode object." msgstr "" -#: ../Doc/c-api/unicode.rst:558 +#: c-api/unicode.rst:568 msgid "" ":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " "` are decoded according to the given *encoding* and using " -"the error handling defined by *errors*. Both can be *NULL* to have the " +"the error handling defined by *errors*. Both can be ``NULL`` to have the " "interface use the default values (see :ref:`builtincodecs` for details)." msgstr "" -#: ../Doc/c-api/unicode.rst:564 +#: c-api/unicode.rst:574 msgid "" "All other objects, including Unicode objects, cause a :exc:`TypeError` to be " "set." msgstr "" -#: ../Doc/c-api/unicode.rst:567 +#: c-api/unicode.rst:577 msgid "" -"The API returns *NULL* if there was an error. The caller is responsible for " -"decref'ing the returned objects." +"The API returns ``NULL`` if there was an error. The caller is responsible " +"for decref'ing the returned objects." msgstr "" -#: ../Doc/c-api/unicode.rst:573 +#: c-api/unicode.rst:583 msgid "Return the length of the Unicode object, in code points." msgstr "" -#: ../Doc/c-api/unicode.rst:584 +#: c-api/unicode.rst:594 msgid "" "Copy characters from one Unicode object into another. This function " "performs character conversion when necessary and falls back to :c:func:" @@ -761,71 +797,72 @@ msgid "" "otherwise returns the number of copied characters." msgstr "" -#: ../Doc/c-api/unicode.rst:595 +#: c-api/unicode.rst:605 msgid "" -"Fill a string with a character: write *fill_char* into ``unicode[start:start" -"+length]``." +"Fill a string with a character: write *fill_char* into ``unicode[start:" +"start+length]``." msgstr "" -#: ../Doc/c-api/unicode.rst:598 +#: c-api/unicode.rst:608 msgid "" "Fail if *fill_char* is bigger than the string maximum character, or if the " "string has more than 1 reference." msgstr "" -#: ../Doc/c-api/unicode.rst:601 +#: c-api/unicode.rst:611 msgid "" "Return the number of written character, or return ``-1`` and raise an " "exception on error." msgstr "" -#: ../Doc/c-api/unicode.rst:610 +#: c-api/unicode.rst:620 msgid "" "Write a character to a string. The string must have been created through :c:" "func:`PyUnicode_New`. Since Unicode strings are supposed to be immutable, " "the string must not be shared, or have been hashed yet." msgstr "" -#: ../Doc/c-api/unicode.rst:614 +#: c-api/unicode.rst:624 msgid "" "This function checks that *unicode* is a Unicode object, that the index is " "not out of bounds, and that the object can be modified safely (i.e. that it " "its reference count is one)." msgstr "" -#: ../Doc/c-api/unicode.rst:623 +#: c-api/unicode.rst:633 msgid "" "Read a character from a string. This function checks that *unicode* is a " "Unicode object and the index is not out of bounds, in contrast to the macro " "version :c:func:`PyUnicode_READ_CHAR`." msgstr "" -#: ../Doc/c-api/unicode.rst:633 +#: c-api/unicode.rst:643 msgid "" "Return a substring of *str*, from character index *start* (included) to " "character index *end* (excluded). Negative indices are not supported." msgstr "" -#: ../Doc/c-api/unicode.rst:642 +#: c-api/unicode.rst:652 msgid "" "Copy the string *u* into a UCS4 buffer, including a null character, if " -"*copy_null* is set. Returns *NULL* and sets an exception on error (in " +"*copy_null* is set. Returns ``NULL`` and sets an exception on error (in " "particular, a :exc:`SystemError` if *buflen* is smaller than the length of " "*u*). *buffer* is returned on success." msgstr "" -#: ../Doc/c-api/unicode.rst:652 +#: c-api/unicode.rst:662 msgid "" "Copy the string *u* into a new UCS4 buffer that is allocated using :c:func:" -"`PyMem_Malloc`. If this fails, *NULL* is returned with a :exc:`MemoryError` " -"set. The returned buffer always has an extra null code point appended." +"`PyMem_Malloc`. If this fails, ``NULL`` is returned with a :exc:" +"`MemoryError` set. The returned buffer always has an extra null code point " +"appended." msgstr "" -#: ../Doc/c-api/unicode.rst:661 +#: c-api/unicode.rst:671 msgid "Deprecated Py_UNICODE APIs" msgstr "" -#: ../Doc/c-api/unicode.rst:665 +#: c-api/unicode.rst:675 msgid "" "These API functions are deprecated with the implementation of :pep:`393`. " "Extension modules can continue using them, as they will not be removed in " @@ -833,38 +870,39 @@ msgid "" "and memory hits." msgstr "" -#: ../Doc/c-api/unicode.rst:672 +#: c-api/unicode.rst:682 msgid "" "Create a Unicode object from the Py_UNICODE buffer *u* of the given size. " -"*u* may be *NULL* which causes the contents to be undefined. It is the " +"*u* may be ``NULL`` which causes the contents to be undefined. It is the " "user's responsibility to fill in the needed data. The buffer is copied into " "the new object." msgstr "" -#: ../Doc/c-api/unicode.rst:677 +#: c-api/unicode.rst:687 msgid "" -"If the buffer is not *NULL*, the return value might be a shared object. " +"If the buffer is not ``NULL``, the return value might be a shared object. " "Therefore, modification of the resulting Unicode object is only allowed when " -"*u* is *NULL*." +"*u* is ``NULL``." msgstr "" -#: ../Doc/c-api/unicode.rst:681 +#: c-api/unicode.rst:691 msgid "" -"If the buffer is *NULL*, :c:func:`PyUnicode_READY` must be called once the " +"If the buffer is ``NULL``, :c:func:`PyUnicode_READY` must be called once the " "string content has been filled before using any of the access macros such " "as :c:func:`PyUnicode_KIND`." msgstr "" -#: ../Doc/c-api/unicode.rst:685 +#: c-api/unicode.rst:698 msgid "" -"Please migrate to using :c:func:`PyUnicode_FromKindAndData`, :c:func:" -"`PyUnicode_FromWideChar` or :c:func:`PyUnicode_New`." +"Part of the old-style Unicode API, please migrate to using :c:func:" +"`PyUnicode_FromKindAndData`, :c:func:`PyUnicode_FromWideChar`, or :c:func:" +"`PyUnicode_New`." msgstr "" -#: ../Doc/c-api/unicode.rst:691 +#: c-api/unicode.rst:703 msgid "" "Return a read-only pointer to the Unicode object's internal :c:type:" -"`Py_UNICODE` buffer, or *NULL* on error. This will create the :c:type:" +"`Py_UNICODE` buffer, or ``NULL`` on error. This will create the :c:type:" "`Py_UNICODE*` representation of the object if it is not yet available. The " "buffer is always terminated with an extra null code point. Note that the " "resulting :c:type:`Py_UNICODE` string may also contain embedded null code " @@ -872,20 +910,27 @@ msgid "" "functions." msgstr "" -#: ../Doc/c-api/unicode.rst:699 +#: c-api/unicode.rst:743 msgid "" -"Please migrate to using :c:func:`PyUnicode_AsUCS4`, :c:func:" -"`PyUnicode_AsWideChar`, :c:func:`PyUnicode_ReadChar` or similar new APIs." +"Part of the old-style Unicode API, please migrate to using :c:func:" +"`PyUnicode_AsUCS4`, :c:func:`PyUnicode_AsWideChar`, :c:func:" +"`PyUnicode_ReadChar` or similar new APIs." msgstr "" -#: ../Doc/c-api/unicode.rst:706 +#: c-api/unicode.rst:721 msgid "" "Create a Unicode object by replacing all decimal digits in :c:type:" "`Py_UNICODE` buffer of the given *size* by ASCII digits 0--9 according to " -"their decimal value. Return *NULL* if an exception occurs." +"their decimal value. Return ``NULL`` if an exception occurs." +msgstr "" + +#: c-api/unicode.rst:727 +msgid "" +"Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" +"func:`Py_UNICODE_TODECIMAL`." msgstr "" -#: ../Doc/c-api/unicode.rst:713 +#: c-api/unicode.rst:732 msgid "" "Like :c:func:`PyUnicode_AsUnicode`, but also saves the :c:func:`Py_UNICODE` " "array length (excluding the extra null terminator) in *size*. Note that the " @@ -894,78 +939,74 @@ msgid "" "functions." msgstr "" -#: ../Doc/c-api/unicode.rst:724 +#: c-api/unicode.rst:748 msgid "" "Create a copy of a Unicode string ending with a null code point. Return " -"*NULL* and raise a :exc:`MemoryError` exception on memory allocation " +"``NULL`` and raise a :exc:`MemoryError` exception on memory allocation " "failure, otherwise return a new allocated buffer (use :c:func:`PyMem_Free` " "to free the buffer). Note that the resulting :c:type:`Py_UNICODE*` string " "may contain embedded null code points, which would cause the string to be " "truncated when used in most C functions." msgstr "" -#: ../Doc/c-api/unicode.rst:733 +#: c-api/unicode.rst:757 msgid "" "Please migrate to using :c:func:`PyUnicode_AsUCS4Copy` or similar new APIs." msgstr "" -#: ../Doc/c-api/unicode.rst:738 +#: c-api/unicode.rst:762 msgid "" "Return the size of the deprecated :c:type:`Py_UNICODE` representation, in " "code units (this includes surrogate pairs as 2 units)." msgstr "" -#: ../Doc/c-api/unicode.rst:741 -msgid "Please migrate to using :c:func:`PyUnicode_GetLength`." -msgstr "" - -#: ../Doc/c-api/unicode.rst:746 +#: c-api/unicode.rst:772 msgid "" "Copy an instance of a Unicode subtype to a new true Unicode object if " "necessary. If *obj* is already a true Unicode object (not a subtype), return " "the reference with incremented refcount." msgstr "" -#: ../Doc/c-api/unicode.rst:750 +#: c-api/unicode.rst:776 msgid "" "Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." msgstr "" -#: ../Doc/c-api/unicode.rst:754 +#: c-api/unicode.rst:780 msgid "Locale Encoding" msgstr "" -#: ../Doc/c-api/unicode.rst:756 +#: c-api/unicode.rst:782 msgid "" "The current locale encoding can be used to decode text from the operating " "system." msgstr "" -#: ../Doc/c-api/unicode.rst:763 +#: c-api/unicode.rst:789 msgid "" "Decode a string from UTF-8 on Android and VxWorks, or from the current " -"locale encoding on other platforms. The supported error handlers are ``" -"\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The decoder uses ``" -"\"strict\"`` error handler if *errors* is ``NULL``. *str* must end with a " +"locale encoding on other platforms. The supported error handlers are " +"``\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The decoder uses " +"``\"strict\"`` error handler if *errors* is ``NULL``. *str* must end with a " "null character but cannot contain embedded null characters." msgstr "" -#: ../Doc/c-api/unicode.rst:770 +#: c-api/unicode.rst:796 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from :c:" "data:`Py_FileSystemDefaultEncoding` (the locale encoding read at Python " "startup)." msgstr "" -#: ../Doc/c-api/unicode.rst:774 ../Doc/c-api/unicode.rst:810 +#: c-api/unicode.rst:836 msgid "This function ignores the Python UTF-8 mode." msgstr "" -#: ../Doc/c-api/unicode.rst:778 ../Doc/c-api/unicode.rst:882 +#: c-api/unicode.rst:908 msgid "The :c:func:`Py_DecodeLocale` function." msgstr "" -#: ../Doc/c-api/unicode.rst:782 +#: c-api/unicode.rst:808 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -973,32 +1014,32 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: ../Doc/c-api/unicode.rst:791 +#: c-api/unicode.rst:817 msgid "" "Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " "length using :c:func:`strlen`." msgstr "" -#: ../Doc/c-api/unicode.rst:799 +#: c-api/unicode.rst:825 msgid "" "Encode a Unicode object to UTF-8 on Android and VxWorks, or to the current " -"locale encoding on other platforms. The supported error handlers are ``" -"\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The encoder uses ``" -"\"strict\"`` error handler if *errors* is ``NULL``. Return a :class:`bytes` " -"object. *unicode* cannot contain embedded null characters." +"locale encoding on other platforms. The supported error handlers are " +"``\"strict\"`` and ``\"surrogateescape\"`` (:pep:`383`). The encoder uses " +"``\"strict\"`` error handler if *errors* is ``NULL``. Return a :class:" +"`bytes` object. *unicode* cannot contain embedded null characters." msgstr "" -#: ../Doc/c-api/unicode.rst:806 +#: c-api/unicode.rst:832 msgid "" "Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to :c:data:" "`Py_FileSystemDefaultEncoding` (the locale encoding read at Python startup)." msgstr "" -#: ../Doc/c-api/unicode.rst:814 ../Doc/c-api/unicode.rst:918 +#: c-api/unicode.rst:944 msgid "The :c:func:`Py_EncodeLocale` function." msgstr "" -#: ../Doc/c-api/unicode.rst:818 +#: c-api/unicode.rst:844 msgid "" "The function now also uses the current locale encoding for the " "``surrogateescape`` error handler, except on Android. Previously, :c:func:" @@ -1006,11 +1047,11 @@ msgid "" "locale encoding was used for ``strict``." msgstr "" -#: ../Doc/c-api/unicode.rst:827 +#: c-api/unicode.rst:853 msgid "File System Encoding" msgstr "" -#: ../Doc/c-api/unicode.rst:829 +#: c-api/unicode.rst:855 msgid "" "To encode and decode file names and other environment strings, :c:data:" "`Py_FileSystemDefaultEncoding` should be used as the encoding, and :c:data:" @@ -1020,7 +1061,7 @@ msgid "" "`PyUnicode_FSConverter` as the conversion function:" msgstr "" -#: ../Doc/c-api/unicode.rst:838 +#: c-api/unicode.rst:864 msgid "" "ParseTuple converter: encode :class:`str` objects -- obtained directly or " "through the :class:`os.PathLike` interface -- to :class:`bytes` using :c:" @@ -1029,18 +1070,18 @@ msgid "" "is no longer used." msgstr "" -#: ../Doc/c-api/unicode.rst:846 ../Doc/c-api/unicode.rst:863 +#: c-api/unicode.rst:889 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/c-api/unicode.rst:849 +#: c-api/unicode.rst:875 msgid "" "To decode file names to :class:`str` during argument parsing, the ``\"O&\"`` " "converter should be used, passing :c:func:`PyUnicode_FSDecoder` as the " "conversion function:" msgstr "" -#: ../Doc/c-api/unicode.rst:855 +#: c-api/unicode.rst:881 msgid "" "ParseTuple converter: decode :class:`bytes` objects -- obtained either " "directly or indirectly through the :class:`os.PathLike` interface -- to :" @@ -1049,20 +1090,19 @@ msgid "" "which must be released when it is no longer used." msgstr "" -#: ../Doc/c-api/unicode.rst:869 +#: c-api/unicode.rst:895 msgid "" "Decode a string using :c:data:`Py_FileSystemDefaultEncoding` and the :c:data:" "`Py_FileSystemDefaultEncodeErrors` error handler." msgstr "" -#: ../Doc/c-api/unicode.rst:872 ../Doc/c-api/unicode.rst:893 -#: ../Doc/c-api/unicode.rst:909 +#: c-api/unicode.rst:919 c-api/unicode.rst:935 msgid "" "If :c:data:`Py_FileSystemDefaultEncoding` is not set, fall back to the " "locale encoding." msgstr "" -#: ../Doc/c-api/unicode.rst:875 +#: c-api/unicode.rst:901 msgid "" ":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " "locale encoding and cannot be modified later. If you need to decode a string " @@ -1070,23 +1110,22 @@ msgid "" "`PyUnicode_DecodeLocaleAndSize`." msgstr "" -#: ../Doc/c-api/unicode.rst:884 ../Doc/c-api/unicode.rst:898 -#: ../Doc/c-api/unicode.rst:922 +#: c-api/unicode.rst:924 c-api/unicode.rst:948 msgid "Use :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." msgstr "" -#: ../Doc/c-api/unicode.rst:890 +#: c-api/unicode.rst:916 msgid "" "Decode a null-terminated string using :c:data:`Py_FileSystemDefaultEncoding` " "and the :c:data:`Py_FileSystemDefaultEncodeErrors` error handler." msgstr "" -#: ../Doc/c-api/unicode.rst:896 +#: c-api/unicode.rst:922 msgid "" "Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` if you know the string length." msgstr "" -#: ../Doc/c-api/unicode.rst:904 +#: c-api/unicode.rst:930 msgid "" "Encode a Unicode object to :c:data:`Py_FileSystemDefaultEncoding` with the :" "c:data:`Py_FileSystemDefaultEncodeErrors` error handler, and return :class:" @@ -1094,29 +1133,29 @@ msgid "" "bytes." msgstr "" -#: ../Doc/c-api/unicode.rst:912 +#: c-api/unicode.rst:938 msgid "" ":c:data:`Py_FileSystemDefaultEncoding` is initialized at startup from the " "locale encoding and cannot be modified later. If you need to encode a string " "to the current locale encoding, use :c:func:`PyUnicode_EncodeLocale`." msgstr "" -#: ../Doc/c-api/unicode.rst:926 +#: c-api/unicode.rst:952 msgid "wchar_t Support" msgstr "" -#: ../Doc/c-api/unicode.rst:928 +#: c-api/unicode.rst:954 msgid ":c:type:`wchar_t` support for platforms which support it:" msgstr "" -#: ../Doc/c-api/unicode.rst:932 +#: c-api/unicode.rst:958 msgid "" "Create a Unicode object from the :c:type:`wchar_t` buffer *w* of the given " "*size*. Passing ``-1`` as the *size* indicates that the function must itself " -"compute the length, using wcslen. Return *NULL* on failure." +"compute the length, using wcslen. Return ``NULL`` on failure." msgstr "" -#: ../Doc/c-api/unicode.rst:940 +#: c-api/unicode.rst:966 msgid "" "Copy the Unicode object contents into the :c:type:`wchar_t` buffer *w*. At " "most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " @@ -1129,50 +1168,51 @@ msgid "" "would cause the string to be truncated when used with most C functions." msgstr "" -#: ../Doc/c-api/unicode.rst:953 +#: c-api/unicode.rst:979 msgid "" "Convert the Unicode object to a wide character string. The output string " -"always ends with a null character. If *size* is not *NULL*, write the number " -"of wide characters (excluding the trailing null termination character) into *" -"\\*size*. Note that the resulting :c:type:`wchar_t` string might contain " -"null characters, which would cause the string to be truncated when used with " -"most C functions. If *size* is *NULL* and the :c:type:`wchar_t*` string " -"contains null characters a :exc:`ValueError` is raised." +"always ends with a null character. If *size* is not ``NULL``, write the " +"number of wide characters (excluding the trailing null termination " +"character) into *\\*size*. Note that the resulting :c:type:`wchar_t` string " +"might contain null characters, which would cause the string to be truncated " +"when used with most C functions. If *size* is ``NULL`` and the :c:type:" +"`wchar_t*` string contains null characters a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/c-api/unicode.rst:961 +#: c-api/unicode.rst:987 msgid "" "Returns a buffer allocated by :c:func:`PyMem_Alloc` (use :c:func:" -"`PyMem_Free` to free it) on success. On error, returns *NULL* and *\\*size* " -"is undefined. Raises a :exc:`MemoryError` if memory allocation is failed." +"`PyMem_Free` to free it) on success. On error, returns ``NULL`` and " +"*\\*size* is undefined. Raises a :exc:`MemoryError` if memory allocation is " +"failed." msgstr "" -#: ../Doc/c-api/unicode.rst:968 +#: c-api/unicode.rst:994 msgid "" -"Raises a :exc:`ValueError` if *size* is *NULL* and the :c:type:`wchar_t*` " +"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:type:`wchar_t*` " "string contains null characters." msgstr "" -#: ../Doc/c-api/unicode.rst:976 +#: c-api/unicode.rst:1002 msgid "Built-in Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:978 +#: c-api/unicode.rst:1004 msgid "" "Python provides a set of built-in codecs which are written in C for speed. " "All of these codecs are directly usable via the following functions." msgstr "" -#: ../Doc/c-api/unicode.rst:981 +#: c-api/unicode.rst:1007 msgid "" "Many of the following APIs take two arguments encoding and errors, and they " "have the same semantics as the ones of the built-in :func:`str` string " "object constructor." msgstr "" -#: ../Doc/c-api/unicode.rst:985 +#: c-api/unicode.rst:1011 msgid "" -"Setting encoding to *NULL* causes the default encoding to be used which is " +"Setting encoding to ``NULL`` causes the default encoding to be used which is " "ASCII. The file system calls should use :c:func:`PyUnicode_FSConverter` for " "encoding file names. This uses the variable :c:data:" "`Py_FileSystemDefaultEncoding` internally. This variable should be treated " @@ -1181,155 +1221,155 @@ msgid "" "setlocale)." msgstr "" -#: ../Doc/c-api/unicode.rst:993 +#: c-api/unicode.rst:1019 msgid "" -"Error handling is set by errors which may also be set to *NULL* meaning to " +"Error handling is set by errors which may also be set to ``NULL`` meaning to " "use the default handling defined for the codec. Default error handling for " "all built-in codecs is \"strict\" (:exc:`ValueError` is raised)." msgstr "" -#: ../Doc/c-api/unicode.rst:997 +#: c-api/unicode.rst:1023 msgid "" "The codecs all use a similar interface. Only deviation from the following " "generic ones are documented for simplicity." msgstr "" -#: ../Doc/c-api/unicode.rst:1002 +#: c-api/unicode.rst:1028 msgid "Generic Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1004 +#: c-api/unicode.rst:1030 msgid "These are the generic codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1010 +#: c-api/unicode.rst:1036 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *s*. " "*encoding* and *errors* have the same meaning as the parameters of the same " "name in the :func:`str` built-in function. The codec to be used is looked " -"up using the Python codec registry. Return *NULL* if an exception was " +"up using the Python codec registry. Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1020 +#: c-api/unicode.rst:1046 msgid "" "Encode a Unicode object and return the result as Python bytes object. " "*encoding* and *errors* have the same meaning as the parameters of the same " "name in the Unicode :meth:`~str.encode` method. The codec to be used is " -"looked up using the Python codec registry. Return *NULL* if an exception was " -"raised by the codec." +"looked up using the Python codec registry. Return ``NULL`` if an exception " +"was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1030 +#: c-api/unicode.rst:1056 msgid "" "Encode the :c:type:`Py_UNICODE` buffer *s* of the given *size* and return a " "Python bytes object. *encoding* and *errors* have the same meaning as the " "parameters of the same name in the Unicode :meth:`~str.encode` method. The " "codec to be used is looked up using the Python codec registry. Return " -"*NULL* if an exception was raised by the codec." +"``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1038 ../Doc/c-api/unicode.rst:1295 +#: c-api/unicode.rst:1321 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1042 +#: c-api/unicode.rst:1068 msgid "UTF-8 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1044 +#: c-api/unicode.rst:1070 msgid "These are the UTF-8 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1049 +#: c-api/unicode.rst:1075 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " -"*s*. Return *NULL* if an exception was raised by the codec." +"*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1056 +#: c-api/unicode.rst:1082 msgid "" -"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF8`. If " -"*consumed* is not *NULL*, trailing incomplete UTF-8 byte sequences will not " -"be treated as an error. Those bytes will not be decoded and the number of " -"bytes that have been decoded will be stored in *consumed*." +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " +"*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " +"not be treated as an error. Those bytes will not be decoded and the number " +"of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1064 +#: c-api/unicode.rst:1090 msgid "" "Encode a Unicode object using UTF-8 and return the result as Python bytes " -"object. Error handling is \"strict\". Return *NULL* if an exception was " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1071 +#: c-api/unicode.rst:1097 msgid "" "Return a pointer to the UTF-8 encoding of the Unicode object, and store the " "size of the encoded representation (in bytes) in *size*. The *size* " -"argument can be *NULL*; in this case no size will be stored. The returned " +"argument can be ``NULL``; in this case no size will be stored. The returned " "buffer always has an extra null byte appended (not included in *size*), " "regardless of whether there are any other null code points." msgstr "" -#: ../Doc/c-api/unicode.rst:1077 +#: c-api/unicode.rst:1103 msgid "" -"In the case of an error, *NULL* is returned with an exception set and no " +"In the case of an error, ``NULL`` is returned with an exception set and no " "*size* is stored." msgstr "" -#: ../Doc/c-api/unicode.rst:1080 +#: c-api/unicode.rst:1106 msgid "" "This caches the UTF-8 representation of the string in the Unicode object, " "and subsequent calls will return a pointer to the same buffer. The caller " "is not responsible for deallocating the buffer." msgstr "" -#: ../Doc/c-api/unicode.rst:1086 ../Doc/c-api/unicode.rst:1096 +#: c-api/unicode.rst:1122 msgid "The return type is now ``const char *`` rather of ``char *``." msgstr "" -#: ../Doc/c-api/unicode.rst:1092 +#: c-api/unicode.rst:1118 msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." msgstr "" -#: ../Doc/c-api/unicode.rst:1102 +#: c-api/unicode.rst:1128 msgid "" "Encode the :c:type:`Py_UNICODE` buffer *s* of the given *size* using UTF-8 " -"and return a Python bytes object. Return *NULL* if an exception was raised " -"by the codec." +"and return a Python bytes object. Return ``NULL`` if an exception was " +"raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1109 +#: c-api/unicode.rst:1135 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUTF8String`, :c:func:`PyUnicode_AsUTF8AndSize` or :c:func:" "`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1113 +#: c-api/unicode.rst:1139 msgid "UTF-32 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1115 +#: c-api/unicode.rst:1141 msgid "These are the UTF-32 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1121 +#: c-api/unicode.rst:1147 msgid "" "Decode *size* bytes from a UTF-32 encoded buffer string and return the " -"corresponding Unicode object. *errors* (if non-*NULL*) defines the error " +"corresponding Unicode object. *errors* (if non-``NULL``) defines the error " "handling. It defaults to \"strict\"." msgstr "" -#: ../Doc/c-api/unicode.rst:1125 ../Doc/c-api/unicode.rst:1198 +#: c-api/unicode.rst:1224 msgid "" -"If *byteorder* is non-*NULL*, the decoder starts decoding using the given " +"If *byteorder* is non-``NULL``, the decoder starts decoding using the given " "byte order::" msgstr "" -#: ../Doc/c-api/unicode.rst:1132 +#: c-api/unicode.rst:1158 msgid "" "If ``*byteorder`` is zero, and the first four bytes of the input data are a " "byte order mark (BOM), the decoder switches to this byte order and the BOM " @@ -1337,77 +1377,76 @@ msgid "" "``-1`` or ``1``, any byte order mark is copied to the output." msgstr "" -#: ../Doc/c-api/unicode.rst:1137 ../Doc/c-api/unicode.rst:1211 +#: c-api/unicode.rst:1237 msgid "" "After completion, *\\*byteorder* is set to the current byte order at the end " "of input data." msgstr "" -#: ../Doc/c-api/unicode.rst:1140 ../Doc/c-api/unicode.rst:1214 -msgid "If *byteorder* is *NULL*, the codec starts in native order mode." +#: c-api/unicode.rst:1240 +msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." msgstr "" -#: ../Doc/c-api/unicode.rst:1142 ../Doc/c-api/unicode.rst:1178 -#: ../Doc/c-api/unicode.rst:1216 ../Doc/c-api/unicode.rst:1253 -msgid "Return *NULL* if an exception was raised by the codec." +#: c-api/unicode.rst:1204 c-api/unicode.rst:1279 +msgid "Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1148 +#: c-api/unicode.rst:1174 msgid "" -"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF32`. If " -"*consumed* is not *NULL*, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " +"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " "treat trailing incomplete UTF-32 byte sequences (such as a number of bytes " "not divisible by four) as an error. Those bytes will not be decoded and the " "number of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1157 +#: c-api/unicode.rst:1183 msgid "" "Return a Python byte string using the UTF-32 encoding in native byte order. " "The string always starts with a BOM mark. Error handling is \"strict\". " -"Return *NULL* if an exception was raised by the codec." +"Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1165 +#: c-api/unicode.rst:1191 msgid "" "Return a Python bytes object holding the UTF-32 encoded value of the Unicode " "data in *s*. Output is written according to the following byte order::" msgstr "" -#: ../Doc/c-api/unicode.rst:1172 ../Doc/c-api/unicode.rst:1246 +#: c-api/unicode.rst:1272 msgid "" "If byteorder is ``0``, the output string will always start with the Unicode " "BOM mark (U+FEFF). In the other two modes, no BOM mark is prepended." msgstr "" -#: ../Doc/c-api/unicode.rst:1175 +#: c-api/unicode.rst:1201 msgid "" -"If *Py_UNICODE_WIDE* is not defined, surrogate pairs will be output as a " +"If ``Py_UNICODE_WIDE`` is not defined, surrogate pairs will be output as a " "single code point." msgstr "" -#: ../Doc/c-api/unicode.rst:1182 +#: c-api/unicode.rst:1208 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUTF32String` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1186 +#: c-api/unicode.rst:1212 msgid "UTF-16 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1188 +#: c-api/unicode.rst:1214 msgid "These are the UTF-16 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1194 +#: c-api/unicode.rst:1220 msgid "" "Decode *size* bytes from a UTF-16 encoded buffer string and return the " -"corresponding Unicode object. *errors* (if non-*NULL*) defines the error " +"corresponding Unicode object. *errors* (if non-``NULL``) defines the error " "handling. It defaults to \"strict\"." msgstr "" -#: ../Doc/c-api/unicode.rst:1205 +#: c-api/unicode.rst:1231 msgid "" "If ``*byteorder`` is zero, and the first two bytes of the input data are a " "byte order mark (BOM), the decoder switches to this byte order and the BOM " @@ -1416,72 +1455,72 @@ msgid "" "result in either a ``\\ufeff`` or a ``\\ufffe`` character)." msgstr "" -#: ../Doc/c-api/unicode.rst:1222 +#: c-api/unicode.rst:1248 msgid "" -"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF16`. If " -"*consumed* is not *NULL*, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " +"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " "treat trailing incomplete UTF-16 byte sequences (such as an odd number of " "bytes or a split surrogate pair) as an error. Those bytes will not be " "decoded and the number of bytes that have been decoded will be stored in " "*consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1231 +#: c-api/unicode.rst:1257 msgid "" "Return a Python byte string using the UTF-16 encoding in native byte order. " "The string always starts with a BOM mark. Error handling is \"strict\". " -"Return *NULL* if an exception was raised by the codec." +"Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1239 +#: c-api/unicode.rst:1265 msgid "" "Return a Python bytes object holding the UTF-16 encoded value of the Unicode " "data in *s*. Output is written according to the following byte order::" msgstr "" -#: ../Doc/c-api/unicode.rst:1249 +#: c-api/unicode.rst:1275 msgid "" -"If *Py_UNICODE_WIDE* is defined, a single :c:type:`Py_UNICODE` value may get " -"represented as a surrogate pair. If it is not defined, each :c:type:" +"If ``Py_UNICODE_WIDE`` is defined, a single :c:type:`Py_UNICODE` value may " +"get represented as a surrogate pair. If it is not defined, each :c:type:" "`Py_UNICODE` values is interpreted as a UCS-2 character." msgstr "" -#: ../Doc/c-api/unicode.rst:1257 +#: c-api/unicode.rst:1283 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUTF16String` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1261 +#: c-api/unicode.rst:1287 msgid "UTF-7 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1263 +#: c-api/unicode.rst:1289 msgid "These are the UTF-7 codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1268 +#: c-api/unicode.rst:1294 msgid "" "Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " -"*s*. Return *NULL* if an exception was raised by the codec." +"*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1275 +#: c-api/unicode.rst:1301 msgid "" -"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeUTF7`. If " -"*consumed* is not *NULL*, trailing incomplete UTF-7 base-64 sections will " +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " +"*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " "not be treated as an error. Those bytes will not be decoded and the number " "of bytes that have been decoded will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1284 +#: c-api/unicode.rst:1310 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given size using UTF-7 and " -"return a Python bytes object. Return *NULL* if an exception was raised by " +"return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1288 +#: c-api/unicode.rst:1314 msgid "" "If *base64SetO* is nonzero, \"Set O\" (punctuation that has no otherwise " "special meaning) will be encoded in base-64. If *base64WhiteSpace* is " @@ -1489,152 +1528,152 @@ msgid "" "the Python \"utf-7\" codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1299 +#: c-api/unicode.rst:1325 msgid "Unicode-Escape Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1301 +#: c-api/unicode.rst:1327 msgid "These are the \"Unicode Escape\" codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1307 +#: c-api/unicode.rst:1333 msgid "" "Create a Unicode object by decoding *size* bytes of the Unicode-Escape " -"encoded string *s*. Return *NULL* if an exception was raised by the codec." +"encoded string *s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1313 +#: c-api/unicode.rst:1339 msgid "" "Encode a Unicode object using Unicode-Escape and return the result as a " -"bytes object. Error handling is \"strict\". Return *NULL* if an exception " -"was raised by the codec." +"bytes object. Error handling is \"strict\". Return ``NULL`` if an " +"exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1320 +#: c-api/unicode.rst:1346 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Unicode-" -"Escape and return a bytes object. Return *NULL* if an exception was raised " -"by the codec." +"Escape and return a bytes object. Return ``NULL`` if an exception was " +"raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1325 +#: c-api/unicode.rst:1351 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsUnicodeEscapeString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1329 +#: c-api/unicode.rst:1355 msgid "Raw-Unicode-Escape Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1331 +#: c-api/unicode.rst:1357 msgid "These are the \"Raw Unicode Escape\" codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1337 +#: c-api/unicode.rst:1363 msgid "" "Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " -"encoded string *s*. Return *NULL* if an exception was raised by the codec." +"encoded string *s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1343 +#: c-api/unicode.rst:1369 msgid "" "Encode a Unicode object using Raw-Unicode-Escape and return the result as a " -"bytes object. Error handling is \"strict\". Return *NULL* if an exception " -"was raised by the codec." +"bytes object. Error handling is \"strict\". Return ``NULL`` if an " +"exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1351 +#: c-api/unicode.rst:1377 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Raw-Unicode-" -"Escape and return a bytes object. Return *NULL* if an exception was raised " -"by the codec." +"Escape and return a bytes object. Return ``NULL`` if an exception was " +"raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1357 +#: c-api/unicode.rst:1383 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsRawUnicodeEscapeString` or :c:func:" "`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1361 +#: c-api/unicode.rst:1387 msgid "Latin-1 Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1363 +#: c-api/unicode.rst:1389 msgid "" "These are the Latin-1 codec APIs: Latin-1 corresponds to the first 256 " "Unicode ordinals and only these are accepted by the codecs during encoding." msgstr "" -#: ../Doc/c-api/unicode.rst:1369 +#: c-api/unicode.rst:1395 msgid "" "Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " -"string *s*. Return *NULL* if an exception was raised by the codec." +"string *s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1375 +#: c-api/unicode.rst:1401 msgid "" "Encode a Unicode object using Latin-1 and return the result as Python bytes " -"object. Error handling is \"strict\". Return *NULL* if an exception was " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1382 +#: c-api/unicode.rst:1408 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using Latin-1 and " -"return a Python bytes object. Return *NULL* if an exception was raised by " +"return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1389 +#: c-api/unicode.rst:1415 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsLatin1String` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1393 +#: c-api/unicode.rst:1419 msgid "ASCII Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1395 +#: c-api/unicode.rst:1421 msgid "" "These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " "other codes generate errors." msgstr "" -#: ../Doc/c-api/unicode.rst:1401 +#: c-api/unicode.rst:1427 msgid "" "Create a Unicode object by decoding *size* bytes of the ASCII encoded string " -"*s*. Return *NULL* if an exception was raised by the codec." +"*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1407 +#: c-api/unicode.rst:1433 msgid "" "Encode a Unicode object using ASCII and return the result as Python bytes " -"object. Error handling is \"strict\". Return *NULL* if an exception was " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1414 +#: c-api/unicode.rst:1440 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using ASCII and " -"return a Python bytes object. Return *NULL* if an exception was raised by " +"return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1421 +#: c-api/unicode.rst:1447 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsASCIIString` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1425 +#: c-api/unicode.rst:1451 msgid "Character Map Codecs" msgstr "" -#: ../Doc/c-api/unicode.rst:1427 +#: c-api/unicode.rst:1453 msgid "" "This codec is special in that it can be used to implement many different " "codecs (and this is in fact what was done to obtain most of the standard " @@ -1644,20 +1683,20 @@ msgid "" "well." msgstr "" -#: ../Doc/c-api/unicode.rst:1433 +#: c-api/unicode.rst:1459 msgid "These are the mapping codec APIs:" msgstr "" -#: ../Doc/c-api/unicode.rst:1438 +#: c-api/unicode.rst:1464 msgid "" "Create a Unicode object by decoding *size* bytes of the encoded string *s* " -"using the given *mapping* object. Return *NULL* if an exception was raised " -"by the codec." +"using the given *mapping* object. Return ``NULL`` if an exception was " +"raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1442 +#: c-api/unicode.rst:1468 msgid "" -"If *mapping* is *NULL*, Latin-1 decoding will be applied. Else *mapping* " +"If *mapping* is ``NULL``, Latin-1 decoding will be applied. Else *mapping* " "must map bytes ordinals (integers in the range from 0 to 255) to Unicode " "strings, integers (which are then interpreted as Unicode ordinals) or " "``None``. Unmapped data bytes -- ones which cause a :exc:`LookupError`, as " @@ -1665,14 +1704,14 @@ msgid "" "treated as undefined mappings and cause an error." msgstr "" -#: ../Doc/c-api/unicode.rst:1453 +#: c-api/unicode.rst:1479 msgid "" "Encode a Unicode object using the given *mapping* object and return the " -"result as a bytes object. Error handling is \"strict\". Return *NULL* if " +"result as a bytes object. Error handling is \"strict\". Return ``NULL`` if " "an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1457 +#: c-api/unicode.rst:1483 msgid "" "The *mapping* object must map Unicode ordinal integers to bytes objects, " "integers in the range from 0 to 255 or ``None``. Unmapped character " @@ -1680,57 +1719,68 @@ msgid "" "``None`` are treated as \"undefined mapping\" and cause an error." msgstr "" -#: ../Doc/c-api/unicode.rst:1466 +#: c-api/unicode.rst:1492 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using the given " -"*mapping* object and return the result as a bytes object. Return *NULL* if " -"an exception was raised by the codec." +"*mapping* object and return the result as a bytes object. Return ``NULL`` " +"if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1473 +#: c-api/unicode.rst:1499 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsCharmapString` or :c:func:`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1476 +#: c-api/unicode.rst:1502 msgid "The following codec API is special in that maps Unicode to Unicode." msgstr "" -#: ../Doc/c-api/unicode.rst:1481 +#: c-api/unicode.rst:1506 +msgid "" +"Translate a string by applying a character mapping table to it and return " +"the resulting Unicode object. Return ``NULL`` if an exception was raised by " +"the codec." +msgstr "" + +#: c-api/unicode.rst:1510 msgid "" -"Translate a Unicode object using the given *mapping* object and return the " -"resulting Unicode object. Return *NULL* if an exception was raised by the " -"codec." +"The mapping table must map Unicode ordinal integers to Unicode ordinal " +"integers or ``None`` (causing deletion of the character)." msgstr "" -#: ../Doc/c-api/unicode.rst:1485 +#: c-api/unicode.rst:1513 msgid "" -"The *mapping* object must map Unicode ordinal integers to Unicode strings, " -"integers (which are then interpreted as Unicode ordinals) or ``None`` " -"(causing deletion of the character). Unmapped character ordinals (ones " +"Mapping tables need only provide the :meth:`__getitem__` interface; " +"dictionaries and sequences work well. Unmapped character ordinals (ones " "which cause a :exc:`LookupError`) are left untouched and are copied as-is." msgstr "" -#: ../Doc/c-api/unicode.rst:1494 +#: c-api/unicode.rst:1517 +msgid "" +"*errors* has the usual meaning for codecs. It may be ``NULL`` which " +"indicates to use the default error handling." +msgstr "" + +#: c-api/unicode.rst:1524 msgid "" "Translate a :c:type:`Py_UNICODE` buffer of the given *size* by applying a " "character *mapping* table to it and return the resulting Unicode object. " -"Return *NULL* when an exception was raised by the codec." +"Return ``NULL`` when an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1501 +#: c-api/unicode.rst:1531 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_Translate`. or :ref:`generic codec based API `" msgstr "" -#: ../Doc/c-api/unicode.rst:1505 +#: c-api/unicode.rst:1535 msgid "MBCS codecs for Windows" msgstr "" -#: ../Doc/c-api/unicode.rst:1507 +#: c-api/unicode.rst:1537 msgid "" "These are the MBCS codec APIs. They are currently only available on Windows " "and use the Win32 MBCS converters to implement the conversions. Note that " @@ -1738,126 +1788,101 @@ msgid "" "is defined by the user settings on the machine running the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1514 +#: c-api/unicode.rst:1544 msgid "" "Create a Unicode object by decoding *size* bytes of the MBCS encoded string " -"*s*. Return *NULL* if an exception was raised by the codec." +"*s*. Return ``NULL`` if an exception was raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1521 +#: c-api/unicode.rst:1551 msgid "" -"If *consumed* is *NULL*, behave like :c:func:`PyUnicode_DecodeMBCS`. If " -"*consumed* is not *NULL*, :c:func:`PyUnicode_DecodeMBCSStateful` will not " +"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " +"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " "decode trailing lead byte and the number of bytes that have been decoded " "will be stored in *consumed*." msgstr "" -#: ../Doc/c-api/unicode.rst:1529 +#: c-api/unicode.rst:1559 msgid "" "Encode a Unicode object using MBCS and return the result as Python bytes " -"object. Error handling is \"strict\". Return *NULL* if an exception was " +"object. Error handling is \"strict\". Return ``NULL`` if an exception was " "raised by the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1536 +#: c-api/unicode.rst:1566 msgid "" "Encode the Unicode object using the specified code page and return a Python " -"bytes object. Return *NULL* if an exception was raised by the codec. Use :c:" -"data:`CP_ACP` code page to get the MBCS encoder." +"bytes object. Return ``NULL`` if an exception was raised by the codec. Use :" +"c:data:`CP_ACP` code page to get the MBCS encoder." msgstr "" -#: ../Doc/c-api/unicode.rst:1545 +#: c-api/unicode.rst:1575 msgid "" "Encode the :c:type:`Py_UNICODE` buffer of the given *size* using MBCS and " -"return a Python bytes object. Return *NULL* if an exception was raised by " +"return a Python bytes object. Return ``NULL`` if an exception was raised by " "the codec." msgstr "" -#: ../Doc/c-api/unicode.rst:1552 +#: c-api/unicode.rst:1582 msgid "" "Part of the old-style :c:type:`Py_UNICODE` API; please migrate to using :c:" "func:`PyUnicode_AsMBCSString`, :c:func:`PyUnicode_EncodeCodePage` or :c:func:" "`PyUnicode_AsEncodedString`." msgstr "" -#: ../Doc/c-api/unicode.rst:1556 +#: c-api/unicode.rst:1586 msgid "Methods & Slots" msgstr "" -#: ../Doc/c-api/unicode.rst:1562 +#: c-api/unicode.rst:1592 msgid "Methods and Slot Functions" msgstr "" -#: ../Doc/c-api/unicode.rst:1564 +#: c-api/unicode.rst:1594 msgid "" "The following APIs are capable of handling Unicode objects and strings on " "input (we refer to them as strings in the descriptions) and return Unicode " "objects or integers as appropriate." msgstr "" -#: ../Doc/c-api/unicode.rst:1568 -msgid "They all return *NULL* or ``-1`` if an exception occurs." +#: c-api/unicode.rst:1598 +msgid "They all return ``NULL`` or ``-1`` if an exception occurs." msgstr "" -#: ../Doc/c-api/unicode.rst:1573 +#: c-api/unicode.rst:1603 msgid "Concat two strings giving a new Unicode string." msgstr "" -#: ../Doc/c-api/unicode.rst:1578 +#: c-api/unicode.rst:1608 msgid "" -"Split a string giving a list of Unicode strings. If *sep* is *NULL*, " +"Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " "splitting will be done at all whitespace substrings. Otherwise, splits " "occur at the given separator. At most *maxsplit* splits will be done. If " "negative, no limit is set. Separators are not included in the resulting " "list." msgstr "" -#: ../Doc/c-api/unicode.rst:1586 +#: c-api/unicode.rst:1616 msgid "" "Split a Unicode string at line breaks, returning a list of Unicode strings. " "CRLF is considered to be one line break. If *keepend* is ``0``, the Line " "break characters are not included in the resulting strings." msgstr "" -#: ../Doc/c-api/unicode.rst:1594 -msgid "" -"Translate a string by applying a character mapping table to it and return " -"the resulting Unicode object." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1597 -msgid "" -"The mapping table must map Unicode ordinal integers to Unicode ordinal " -"integers or ``None`` (causing deletion of the character)." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1600 -msgid "" -"Mapping tables need only provide the :meth:`__getitem__` interface; " -"dictionaries and sequences work well. Unmapped character ordinals (ones " -"which cause a :exc:`LookupError`) are left untouched and are copied as-is." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1604 -msgid "" -"*errors* has the usual meaning for codecs. It may be *NULL* which indicates " -"to use the default error handling." -msgstr "" - -#: ../Doc/c-api/unicode.rst:1610 +#: c-api/unicode.rst:1623 msgid "" "Join a sequence of strings using the given *separator* and return the " "resulting Unicode string." msgstr "" -#: ../Doc/c-api/unicode.rst:1617 +#: c-api/unicode.rst:1630 msgid "" "Return ``1`` if *substr* matches ``str[start:end]`` at the given tail end " "(*direction* == ``-1`` means to do a prefix match, *direction* == ``1`` a " "suffix match), ``0`` otherwise. Return ``-1`` if an error occurred." msgstr "" -#: ../Doc/c-api/unicode.rst:1625 +#: c-api/unicode.rst:1638 msgid "" "Return the first position of *substr* in ``str[start:end]`` using the given " "*direction* (*direction* == ``1`` means to do a forward search, *direction* " @@ -1866,7 +1891,7 @@ msgid "" "indicates that an error occurred and an exception has been set." msgstr "" -#: ../Doc/c-api/unicode.rst:1635 +#: c-api/unicode.rst:1648 msgid "" "Return the first position of the character *ch* in ``str[start:end]`` using " "the given *direction* (*direction* == ``1`` means to do a forward search, " @@ -1875,36 +1900,36 @@ msgid "" "``-2`` indicates that an error occurred and an exception has been set." msgstr "" -#: ../Doc/c-api/unicode.rst:1643 +#: c-api/unicode.rst:1656 msgid "*start* and *end* are now adjusted to behave like ``str[start:end]``." msgstr "" -#: ../Doc/c-api/unicode.rst:1650 +#: c-api/unicode.rst:1663 msgid "" "Return the number of non-overlapping occurrences of *substr* in ``str[start:" "end]``. Return ``-1`` if an error occurred." msgstr "" -#: ../Doc/c-api/unicode.rst:1657 +#: c-api/unicode.rst:1670 msgid "" "Replace at most *maxcount* occurrences of *substr* in *str* with *replstr* " "and return the resulting Unicode object. *maxcount* == ``-1`` means replace " "all occurrences." msgstr "" -#: ../Doc/c-api/unicode.rst:1664 +#: c-api/unicode.rst:1677 msgid "" "Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " "and greater than, respectively." msgstr "" -#: ../Doc/c-api/unicode.rst:1667 +#: c-api/unicode.rst:1680 msgid "" "This function returns ``-1`` upon failure, so one should call :c:func:" "`PyErr_Occurred` to check for errors." msgstr "" -#: ../Doc/c-api/unicode.rst:1673 +#: c-api/unicode.rst:1686 msgid "" "Compare a Unicode object, *uni*, with *string* and return ``-1``, ``0``, " "``1`` for less than, equal, and greater than, respectively. It is best to " @@ -1912,56 +1937,56 @@ msgid "" "string as ISO-8859-1 if it contains non-ASCII characters." msgstr "" -#: ../Doc/c-api/unicode.rst:1678 +#: c-api/unicode.rst:1691 msgid "This function does not raise exceptions." msgstr "" -#: ../Doc/c-api/unicode.rst:1683 +#: c-api/unicode.rst:1696 msgid "Rich compare two Unicode strings and return one of the following:" msgstr "" -#: ../Doc/c-api/unicode.rst:1685 +#: c-api/unicode.rst:1698 msgid "``NULL`` in case an exception was raised" msgstr "" -#: ../Doc/c-api/unicode.rst:1686 +#: c-api/unicode.rst:1699 msgid ":const:`Py_True` or :const:`Py_False` for successful comparisons" msgstr "" -#: ../Doc/c-api/unicode.rst:1687 +#: c-api/unicode.rst:1700 msgid ":const:`Py_NotImplemented` in case the type combination is unknown" msgstr "" -#: ../Doc/c-api/unicode.rst:1689 +#: c-api/unicode.rst:1702 msgid "" "Possible values for *op* are :const:`Py_GT`, :const:`Py_GE`, :const:" "`Py_EQ`, :const:`Py_NE`, :const:`Py_LT`, and :const:`Py_LE`." msgstr "" -#: ../Doc/c-api/unicode.rst:1695 +#: c-api/unicode.rst:1708 msgid "" "Return a new string object from *format* and *args*; this is analogous to " "``format % args``." msgstr "" -#: ../Doc/c-api/unicode.rst:1701 +#: c-api/unicode.rst:1714 msgid "" "Check whether *element* is contained in *container* and return true or false " "accordingly." msgstr "" -#: ../Doc/c-api/unicode.rst:1704 +#: c-api/unicode.rst:1717 msgid "" "*element* has to coerce to a one element Unicode string. ``-1`` is returned " "if there was an error." msgstr "" -#: ../Doc/c-api/unicode.rst:1710 +#: c-api/unicode.rst:1723 msgid "" "Intern the argument *\\*string* in place. The argument must be the address " "of a pointer variable pointing to a Python Unicode string object. If there " -"is an existing interned string that is the same as *\\*string*, it sets *" -"\\*string* to it (decrementing the reference count of the old string object " +"is an existing interned string that is the same as *\\*string*, it sets " +"*\\*string* to it (decrementing the reference count of the old string object " "and incrementing the reference count of the interned string object), " "otherwise it leaves *\\*string* alone and interns it (incrementing its " "reference count). (Clarification: even though there is a lot of talk about " @@ -1969,7 +1994,7 @@ msgid "" "the object after the call if and only if you owned it before the call.)" msgstr "" -#: ../Doc/c-api/unicode.rst:1723 +#: c-api/unicode.rst:1736 msgid "" "A combination of :c:func:`PyUnicode_FromString` and :c:func:" "`PyUnicode_InternInPlace`, returning either a new Unicode string object that " diff --git a/c-api/utilities.po b/c-api/utilities.po index 4a8b48b7b1..084e32874e 100644 --- a/c-api/utilities.po +++ b/c-api/utilities.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-10-04 12:27+0200\n" diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po index f2b66f9e34..c6c8d45002 100644 --- a/c-api/veryhigh.po +++ b/c-api/veryhigh.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,18 +14,18 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/c-api/veryhigh.rst:8 +#: c-api/veryhigh.rst:8 msgid "The Very High Level Layer" msgstr "" -#: ../Doc/c-api/veryhigh.rst:10 +#: c-api/veryhigh.rst:10 msgid "" "The functions in this chapter will let you execute Python source code given " "in a file or a buffer, but they will not let you interact in a more detailed " "way with the interpreter." msgstr "" -#: ../Doc/c-api/veryhigh.rst:14 +#: c-api/veryhigh.rst:14 msgid "" "Several of these functions accept a start symbol from the grammar as a " "parameter. The available start symbols are :const:`Py_eval_input`, :const:" @@ -33,19 +33,19 @@ msgid "" "following the functions which accept them as parameters." msgstr "" -#: ../Doc/c-api/veryhigh.rst:19 +#: c-api/veryhigh.rst:19 msgid "" -"Note also that several of these functions take :c:type:`FILE\\*` " -"parameters. One particular issue which needs to be handled carefully is " -"that the :c:type:`FILE` structure for different C libraries can be different " -"and incompatible. Under Windows (at least), it is possible for dynamically " +"Note also that several of these functions take :c:type:`FILE*` parameters. " +"One particular issue which needs to be handled carefully is that the :c:type:" +"`FILE` structure for different C libraries can be different and " +"incompatible. Under Windows (at least), it is possible for dynamically " "linked extensions to actually use different libraries, so care should be " -"taken that :c:type:`FILE\\*` parameters are only passed to these functions " -"if it is certain that they were created by the same library that the Python " +"taken that :c:type:`FILE*` parameters are only passed to these functions if " +"it is certain that they were created by the same library that the Python " "runtime is using." msgstr "" -#: ../Doc/c-api/veryhigh.rst:30 +#: c-api/veryhigh.rst:30 msgid "" "The main program for the standard interpreter. This is made available for " "programs which embed Python. The *argc* and *argv* parameters should be " @@ -58,52 +58,52 @@ msgid "" "the parameter list does not represent a valid Python command line." msgstr "" -#: ../Doc/c-api/veryhigh.rst:40 +#: c-api/veryhigh.rst:40 msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " "function will not return ``1``, but exit the process, as long as " "``Py_InspectFlag`` is not set." msgstr "" -#: ../Doc/c-api/veryhigh.rst:47 +#: c-api/veryhigh.rst:47 msgid "Similar to :c:func:`Py_Main` but *argv* is an array of bytes strings." msgstr "" -#: ../Doc/c-api/veryhigh.rst:54 +#: c-api/veryhigh.rst:54 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " -"leaving *closeit* set to ``0`` and *flags* set to *NULL*." +"leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:60 +#: c-api/veryhigh.rst:60 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " "leaving the *closeit* argument set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:66 +#: c-api/veryhigh.rst:66 msgid "" "This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " -"leaving the *flags* argument set to *NULL*." +"leaving the *flags* argument set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:72 +#: c-api/veryhigh.rst:72 msgid "" "If *fp* refers to a file associated with an interactive device (console or " "terminal input or Unix pseudo-terminal), return the value of :c:func:" "`PyRun_InteractiveLoop`, otherwise return the result of :c:func:" "`PyRun_SimpleFile`. *filename* is decoded from the filesystem encoding (:" -"func:`sys.getfilesystemencoding`). If *filename* is *NULL*, this function " +"func:`sys.getfilesystemencoding`). If *filename* is ``NULL``, this function " "uses ``\"???\"`` as the filename." msgstr "" -#: ../Doc/c-api/veryhigh.rst:82 +#: c-api/veryhigh.rst:82 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " -"leaving the *PyCompilerFlags\\** argument set to NULL." +"leaving the :c:type:`PyCompilerFlags`\\* argument set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:88 +#: c-api/veryhigh.rst:88 msgid "" "Executes the Python source code from *command* in the :mod:`__main__` module " "according to the *flags* argument. If :mod:`__main__` does not already " @@ -112,26 +112,26 @@ msgid "" "information. For the meaning of *flags*, see below." msgstr "" -#: ../Doc/c-api/veryhigh.rst:94 +#: c-api/veryhigh.rst:94 msgid "" "Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " "function will not return ``-1``, but exit the process, as long as " "``Py_InspectFlag`` is not set." msgstr "" -#: ../Doc/c-api/veryhigh.rst:101 +#: c-api/veryhigh.rst:101 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " -"leaving *closeit* set to ``0`` and *flags* set to *NULL*." +"leaving *closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:107 +#: c-api/veryhigh.rst:107 msgid "" "This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " -"leaving *flags* set to *NULL*." +"leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:113 +#: c-api/veryhigh.rst:113 msgid "" "Similar to :c:func:`PyRun_SimpleStringFlags`, but the Python source code is " "read from *fp* instead of an in-memory string. *filename* should be the name " @@ -140,20 +140,20 @@ msgid "" "PyRun_SimpleFileExFlags returns." msgstr "" -#: ../Doc/c-api/veryhigh.rst:120 +#: c-api/veryhigh.rst:120 msgid "" -"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, \"rb" -"\")``. Otherwise, Python may not handle script file with LF line ending " +"On Windows, *fp* should be opened as binary mode (e.g. ``fopen(filename, " +"\"rb\")``. Otherwise, Python may not handle script file with LF line ending " "correctly." msgstr "" -#: ../Doc/c-api/veryhigh.rst:126 +#: c-api/veryhigh.rst:126 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " -"leaving *flags* set to *NULL*." +"leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:132 +#: c-api/veryhigh.rst:132 msgid "" "Read and execute a single statement from a file associated with an " "interactive device according to the *flags* argument. The user will be " @@ -161,7 +161,7 @@ msgid "" "filesystem encoding (:func:`sys.getfilesystemencoding`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:137 +#: c-api/veryhigh.rst:137 msgid "" "Returns ``0`` when the input was executed successfully, ``-1`` if there was " "an exception, or an error code from the :file:`errcode.h` include file " @@ -170,13 +170,13 @@ msgid "" "specifically if needed.)" msgstr "" -#: ../Doc/c-api/veryhigh.rst:146 +#: c-api/veryhigh.rst:146 msgid "" "This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " -"below, leaving *flags* set to *NULL*." +"below, leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:152 +#: c-api/veryhigh.rst:152 msgid "" "Read and execute statements from a file associated with an interactive " "device until EOF is reached. The user will be prompted using ``sys.ps1`` " @@ -185,7 +185,7 @@ msgid "" "upon failure." msgstr "" -#: ../Doc/c-api/veryhigh.rst:161 +#: c-api/veryhigh.rst:161 msgid "" "Can be set to point to a function with the prototype ``int func(void)``. " "The function will be called when Python's interpreter prompt is about to " @@ -195,45 +195,45 @@ msgid "" "the Python source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:172 +#: c-api/veryhigh.rst:172 msgid "" "Can be set to point to a function with the prototype ``char *func(FILE " "*stdin, FILE *stdout, char *prompt)``, overriding the default function used " "to read a single line of input at the interpreter's prompt. The function is " -"expected to output the string *prompt* if it's not *NULL*, and then read a " +"expected to output the string *prompt* if it's not ``NULL``, and then read a " "line of input from the provided standard input file, returning the resulting " "string. For example, The :mod:`readline` module sets this hook to provide " "line-editing and tab-completion features." msgstr "" -#: ../Doc/c-api/veryhigh.rst:181 +#: c-api/veryhigh.rst:181 msgid "" "The result must be a string allocated by :c:func:`PyMem_RawMalloc` or :c:" -"func:`PyMem_RawRealloc`, or *NULL* if an error occurred." +"func:`PyMem_RawRealloc`, or ``NULL`` if an error occurred." msgstr "" -#: ../Doc/c-api/veryhigh.rst:184 +#: c-api/veryhigh.rst:184 msgid "" "The result must be allocated by :c:func:`PyMem_RawMalloc` or :c:func:" "`PyMem_RawRealloc`, instead of being allocated by :c:func:`PyMem_Malloc` or :" "c:func:`PyMem_Realloc`." msgstr "" -#: ../Doc/c-api/veryhigh.rst:192 +#: c-api/veryhigh.rst:192 msgid "" "This is a simplified interface to :c:func:" "`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " -"*NULL* and *flags* set to ``0``." +"``NULL`` and *flags* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:199 +#: c-api/veryhigh.rst:199 msgid "" "This is a simplified interface to :c:func:" "`PyParser_SimpleParseStringFlagsFilename` below, leaving *filename* set to " -"*NULL*." +"``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:206 +#: c-api/veryhigh.rst:206 msgid "" "Parse Python source code from *str* using the start token *start* according " "to the *flags* argument. The result can be used to create a code object " @@ -242,25 +242,25 @@ msgid "" "(:func:`sys.getfilesystemencoding`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:215 +#: c-api/veryhigh.rst:215 msgid "" "This is a simplified interface to :c:func:`PyParser_SimpleParseFileFlags` " "below, leaving *flags* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:221 +#: c-api/veryhigh.rst:221 msgid "" "Similar to :c:func:`PyParser_SimpleParseStringFlagsFilename`, but the Python " "source code is read from *fp* instead of an in-memory string." msgstr "" -#: ../Doc/c-api/veryhigh.rst:227 +#: c-api/veryhigh.rst:227 msgid "" "This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " -"*flags* set to *NULL*." +"*flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:233 +#: c-api/veryhigh.rst:233 msgid "" "Execute Python source code from *str* in the context specified by the " "objects *globals* and *locals* with the compiler flags specified by " @@ -269,31 +269,31 @@ msgid "" "token that should be used to parse the source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:239 +#: c-api/veryhigh.rst:239 msgid "" -"Returns the result of executing the code as a Python object, or *NULL* if an " -"exception was raised." +"Returns the result of executing the code as a Python object, or ``NULL`` if " +"an exception was raised." msgstr "" -#: ../Doc/c-api/veryhigh.rst:245 +#: c-api/veryhigh.rst:245 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " -"*closeit* set to ``0`` and *flags* set to *NULL*." +"*closeit* set to ``0`` and *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:251 +#: c-api/veryhigh.rst:251 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " -"*flags* set to *NULL*." +"*flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:257 +#: c-api/veryhigh.rst:257 msgid "" "This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " "*closeit* set to ``0``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:263 +#: c-api/veryhigh.rst:263 msgid "" "Similar to :c:func:`PyRun_StringFlags`, but the Python source code is read " "from *fp* instead of an in-memory string. *filename* should be the name of " @@ -302,19 +302,19 @@ msgid "" "func:`PyRun_FileExFlags` returns." msgstr "" -#: ../Doc/c-api/veryhigh.rst:272 +#: c-api/veryhigh.rst:272 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " -"leaving *flags* set to *NULL*." +"leaving *flags* set to ``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:278 +#: c-api/veryhigh.rst:278 msgid "" "This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " "with *optimize* set to ``-1``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:284 +#: c-api/veryhigh.rst:284 msgid "" "Parse and compile the Python source code in *str*, returning the resulting " "code object. The start token is given by *start*; this can be used to " @@ -322,10 +322,10 @@ msgid "" "`Py_eval_input`, :const:`Py_file_input`, or :const:`Py_single_input`. The " "filename specified by *filename* is used to construct the code object and " "may appear in tracebacks or :exc:`SyntaxError` exception messages. This " -"returns *NULL* if the code cannot be parsed or compiled." +"returns ``NULL`` if the code cannot be parsed or compiled." msgstr "" -#: ../Doc/c-api/veryhigh.rst:292 +#: c-api/veryhigh.rst:292 msgid "" "The integer *optimize* specifies the optimization level of the compiler; a " "value of ``-1`` selects the optimization level of the interpreter as given " @@ -334,20 +334,20 @@ msgid "" "or ``2`` (docstrings are removed too)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:303 +#: c-api/veryhigh.rst:303 msgid "" "Like :c:func:`Py_CompileStringObject`, but *filename* is a byte string " "decoded from the filesystem encoding (:func:`os.fsdecode`)." msgstr "" -#: ../Doc/c-api/veryhigh.rst:310 +#: c-api/veryhigh.rst:310 msgid "" "This is a simplified interface to :c:func:`PyEval_EvalCodeEx`, with just the " "code object, and global and local variables. The other arguments are set to " -"*NULL*." +"``NULL``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:317 +#: c-api/veryhigh.rst:317 msgid "" "Evaluate a precompiled code object, given a particular environment for its " "evaluation. This environment consists of a dictionary of global variables, " @@ -356,19 +356,22 @@ msgid "" "only_parameter>` arguments and a closure tuple of cells." msgstr "" -#: ../Doc/c-api/veryhigh.rst:326 +#: c-api/veryhigh.rst:326 +#, fuzzy msgid "" "The C structure of the objects used to describe frame objects. The fields of " "this type are subject to change at any time." msgstr "" +"La structure C utilisée pour décrire les objets *Code*. Les attributs de " +"cette structure sont sujets à changer à tout moment." -#: ../Doc/c-api/veryhigh.rst:332 +#: c-api/veryhigh.rst:332 msgid "" "Evaluate an execution frame. This is a simplified interface to :c:func:" "`PyEval_EvalFrameEx`, for backward compatibility." msgstr "" -#: ../Doc/c-api/veryhigh.rst:338 +#: c-api/veryhigh.rst:338 msgid "" "This is the main, unvarnished function of Python interpretation. The code " "object associated with the execution frame *f* is executed, interpreting " @@ -378,7 +381,7 @@ msgid "" "of generator objects." msgstr "" -#: ../Doc/c-api/veryhigh.rst:345 +#: c-api/veryhigh.rst:345 msgid "" "This function now includes a debug assertion to help ensure that it does not " "silently discard an active exception." @@ -386,33 +389,33 @@ msgstr "" "Cette fonction inclut maintenant une assertion de débogage afin d'assurer " "qu'elle ne passe pas sous silence une exception active." -#: ../Doc/c-api/veryhigh.rst:352 +#: c-api/veryhigh.rst:352 msgid "" "This function changes the flags of the current evaluation frame, and returns " "true on success, false on failure." msgstr "" -#: ../Doc/c-api/veryhigh.rst:360 +#: c-api/veryhigh.rst:360 msgid "" "The start symbol from the Python grammar for isolated expressions; for use " "with :c:func:`Py_CompileString`." msgstr "" -#: ../Doc/c-api/veryhigh.rst:368 +#: c-api/veryhigh.rst:368 msgid "" "The start symbol from the Python grammar for sequences of statements as read " "from a file or other source; for use with :c:func:`Py_CompileString`. This " "is the symbol to use when compiling arbitrarily long Python source code." msgstr "" -#: ../Doc/c-api/veryhigh.rst:377 +#: c-api/veryhigh.rst:377 msgid "" "The start symbol from the Python grammar for a single statement; for use " "with :c:func:`Py_CompileString`. This is the symbol used for the interactive " "interpreter loop." msgstr "" -#: ../Doc/c-api/veryhigh.rst:384 +#: c-api/veryhigh.rst:384 msgid "" "This is the structure used to hold compiler flags. In cases where code is " "only being compiled, it is passed as ``int flags``, and in cases where code " @@ -420,34 +423,34 @@ msgid "" "case, ``from __future__ import`` can modify *flags*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:389 +#: c-api/veryhigh.rst:389 msgid "" -"Whenever ``PyCompilerFlags *flags`` is *NULL*, :attr:`cf_flags` is treated " +"Whenever ``PyCompilerFlags *flags`` is ``NULL``, :attr:`cf_flags` is treated " "as equal to ``0``, and any modification due to ``from __future__ import`` is " "discarded." msgstr "" -#: ../Doc/c-api/veryhigh.rst:395 +#: c-api/veryhigh.rst:395 msgid "Compiler flags." msgstr "" -#: ../Doc/c-api/veryhigh.rst:399 +#: c-api/veryhigh.rst:399 msgid "" "*cf_feature_version* is the minor Python version. It should be initialized " "to ``PY_MINOR_VERSION``." msgstr "" -#: ../Doc/c-api/veryhigh.rst:402 +#: c-api/veryhigh.rst:402 msgid "" "The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " "flag is set in *cf_flags*." msgstr "" -#: ../Doc/c-api/veryhigh.rst:405 +#: c-api/veryhigh.rst:405 msgid "Added *cf_feature_version* field." msgstr "" -#: ../Doc/c-api/veryhigh.rst:411 +#: c-api/veryhigh.rst:411 msgid "" "This bit can be set in *flags* to cause division operator ``/`` to be " "interpreted as \"true division\" according to :pep:`238`." diff --git a/c-api/weakref.po b/c-api/weakref.po index d3a18d9ca0..cbb5a3d37c 100644 --- a/c-api/weakref.po +++ b/c-api/weakref.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-03-29 14:17+0100\n" "Last-Translator: Andy Kwok \n" "Language-Team: FRENCH \n" @@ -44,15 +44,16 @@ msgid "Return true if *ob* is a proxy object." msgstr "Retourne vrai si *ob* est un objet proxy" #: ../Doc/c-api/weakref.rst:31 +#, fuzzy msgid "" "Return a weak reference object for the object *ob*. This will always return " "a new reference, but is not guaranteed to create a new object; an existing " "reference object may be returned. The second parameter, *callback*, can be " "a callable object that receives notification when *ob* is garbage collected; " "it should accept a single parameter, which will be the weak reference object " -"itself. *callback* may also be ``None`` or *NULL*. If *ob* is not a weakly-" -"referencable object, or if *callback* is not callable, ``None``, or *NULL*, " -"this will return *NULL* and raise :exc:`TypeError`." +"itself. *callback* may also be ``None`` or ``NULL``. If *ob* is not a " +"weakly-referencable object, or if *callback* is not callable, ``None``, or " +"``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." msgstr "" "Retourne un objet de référence faible pour l'objet *ob*. Elle renvoie " "toujours une nouvelle référence, mais cela ne signifie pas qu'un nouvel " @@ -66,15 +67,16 @@ msgstr "" "*NULL* et lève une :exc:`TypeError`." #: ../Doc/c-api/weakref.rst:43 +#, fuzzy msgid "" "Return a weak reference proxy object for the object *ob*. This will always " "return a new reference, but is not guaranteed to create a new object; an " "existing proxy object may be returned. The second parameter, *callback*, " "can be a callable object that receives notification when *ob* is garbage " "collected; it should accept a single parameter, which will be the weak " -"reference object itself. *callback* may also be ``None`` or *NULL*. If *ob* " -"is not a weakly-referencable object, or if *callback* is not callable, " -"``None``, or *NULL*, this will return *NULL* and raise :exc:`TypeError`." +"reference object itself. *callback* may also be ``None`` or ``NULL``. If " +"*ob* is not a weakly-referencable object, or if *callback* is not callable, " +"``None``, or ``NULL``, this will return ``NULL`` and raise :exc:`TypeError`." msgstr "" "Retourne un objet mandataire à référence faible pour l'objet *ob*. Ceci " "renvoie toujours une nouvelle référence, mais ne garantit pas la création " diff --git a/contents.po b/contents.po index a1c7d8991c..7a90f8e88d 100644 --- a/contents.po +++ b/contents.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/copyright.po b/copyright.po index c816adfd64..9346c00daa 100644 --- a/copyright.po +++ b/copyright.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-01-03 16:57+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-01-03 16:59+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,24 +14,25 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/copyright.rst:3 +#: copyright.rst:3 msgid "Copyright" msgstr "Copyright" -#: ../Doc/copyright.rst:5 +#: copyright.rst:5 msgid "Python and this documentation is:" msgstr "Python et cette documentation sont :" -#: ../Doc/copyright.rst:7 -msgid "Copyright © 2001-2019 Python Software Foundation. All rights reserved." +#: copyright.rst:7 +#, fuzzy +msgid "Copyright © 2001-2023 Python Software Foundation. All rights reserved." msgstr "" "Copyright © 2001-2019 Python Software Foundation. Tous droits réservés." -#: ../Doc/copyright.rst:9 +#: copyright.rst:9 msgid "Copyright © 2000 BeOpen.com. All rights reserved." msgstr "Copyright © 2000 *BeOpen.com*. Tous droits réservés." -#: ../Doc/copyright.rst:11 +#: copyright.rst:11 msgid "" "Copyright © 1995-2000 Corporation for National Research Initiatives. All " "rights reserved." @@ -39,13 +40,13 @@ msgstr "" "Copyright © 1995-2000 *Corporation for National Research Initiatives*. Tous " "droits réservés." -#: ../Doc/copyright.rst:14 +#: copyright.rst:14 msgid "" "Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved." msgstr "" "Copyright © 1991-1995 *Stichting Mathematisch Centrum*. Tous droits réservés." -#: ../Doc/copyright.rst:18 +#: copyright.rst:18 msgid "" "See :ref:`history-and-license` for complete license and permissions " "information." diff --git a/dict b/dict index 121eefeddd..a9bbba8190 100644 --- a/dict +++ b/dict @@ -1,6 +1,11 @@ -017F -212A -Ahlstrom +#python-fr +-1 +-ième +-uplet +-uplets +017f +212a +ahlstrom allocateur allocateurs base16 @@ -8,107 +13,135 @@ base32 base64 base85 batch +boguer +c++ c- -C- -C99 +c/c++ +C14N +C89 +c99 +chacha20 cadriciel cadriciels -Catucci -CObjects -Composabilité +catucci +cobjects +composabilité concourance +contravariante +contravariantes +configurateurs contribués coroutine -coroutine coroutines -CPython +cpython curryfication -Cython +cython d'allocateurs +d'indifférentiabilité +d'itérateurs +docstrings décodables déduplication délimitants désenregistre +déserialisables +déserialisation déserialisations déserialise -désérialise -désérialisé -désérialisées déserialiser -désérialiser -déserialisés déserialiseur déserialiseurs -d'indifférentiabilité -d'itérateurs -docstrings -émoji +désérialiseur +désérialiseurs +déserialisées +déserialisés +désérialisés +désérialise +désérialiser +désérialisé +désérialisées encodable -Farrugia +ethnomathématiques +farrugia finaliseur -Frederik -Fredrik +frederik +fredrik freeze -Guido +glibc +guido hachabilité hachable hachables -Hettinger +hettinger html --ième indiçage indo-arabes ininterruptible interchangés -iOS -IPv4 +intralignes +ios +ipv4 itérateur itérateurs -ı -journalisé +ième +journalise journaliser -journalisés journaliseur -Jr. -Kuchling +journalisé +journalisée +journalisés +jr. +kolams +kuchling l'allocateur -lexicographiquement l'indiçage l'itérateur +lexicographiquement lorsqu'aucune +lorsqu'aucun +mar mar. -Marc-André -mémoïsant -mémoïsation -Mersenne -Mertz -métacaractère -métacaractères -métaclasse -métaclasses +marc-andré +mersenne +mertz +Monty muabilité muable muables multiensemble multiensembles mutex +mémoïsant +mémoïsation +métacaractère +métacaractères +métaclasse +métaclasses +n-ième namespace -N-ième +non-hachable +non-hachables pdb pip pourcent +proleptique précompilé préemptif préremplis -proleptique py2exe pyc -PyChecker -Pydb -Pylint -PythonWin +pychecker +pydb +pylint +pythonwin +qu +re recompilation -Reedy +reedy +relationelle +retraçage +réentrant +réentrante réentrants réessayable réexécuter @@ -117,36 +150,41 @@ référençables réimplémente réimplémenter réimplémentez -relationelle résolveurs -retraçage réusinage réusinages réusiné -ſ -sérialisable +réutilisabilité +serwy +shell +slot +smalltalk +sqlite +surprenamment sérialisable sérialisables +sérialiser +sérialiseur sérialisé sérialisée sérialisées -sérialiser sérialisés -sérialiseur -Serwy -shell -slot -Smalltalk -SQLite -surprenamment tk tokenisation tokenisé tokenisés tty --uplets +uplets +utf-8 +utf-16 +utf-32 von -W3C -wxWidgets -X11 -Zope +w3c +world +wxwidgets +x11 +x86 +zope +émoji +ı +ſ diff --git a/distributing/index.po b/distributing/index.po index b0f8269fad..13470f2ec2 100644 --- a/distributing/index.po +++ b/distributing/index.po @@ -3,30 +3,31 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2019-05-23 20:39+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-02-04 09:33+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/distributing/index.rst:5 +#: distributing/index.rst:5 msgid "Distributing Python Modules" msgstr "Distribuer des modules Python" -#: ../Doc/distributing/index.rst:0 +#: distributing/index.rst:0 msgid "Email" msgstr "Email" -#: ../Doc/distributing/index.rst:7 +#: distributing/index.rst:7 msgid "distutils-sig@python.org" msgstr "distutils-sig@python.org" -#: ../Doc/distributing/index.rst:10 +#: distributing/index.rst:10 msgid "" "As a popular open source development project, Python has an active " "supporting community of contributors and users that also make their software " @@ -37,7 +38,7 @@ msgstr "" "logiciels disponibles, sous licence libre, pour les autres développeurs " "Python." -#: ../Doc/distributing/index.rst:14 +#: distributing/index.rst:14 msgid "" "This allows Python users to share and collaborate effectively, benefiting " "from the solutions others have already created to common (and sometimes even " @@ -49,7 +50,7 @@ msgstr "" "résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " "partager leurs propres solutions à tous." -#: ../Doc/distributing/index.rst:19 +#: distributing/index.rst:19 msgid "" "This guide covers the distribution part of the process. For a guide to " "installing other Python projects, refer to the :ref:`installation guide " @@ -59,7 +60,7 @@ msgstr "" "l'installation d'autres projets Python, voir :ref:`installation guide " "`." -#: ../Doc/distributing/index.rst:25 +#: distributing/index.rst:25 msgid "" "For corporate and other institutional users, be aware that many " "organisations have their own policies around using and contributing to open " @@ -67,15 +68,15 @@ msgid "" "the distribution and installation tools provided with Python." msgstr "" "Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leur propres règles sur l'utilisation et la contribution " +"organisations ont leurs propres règles sur l'utilisation et la contribution " "au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " "outils de distribution et d'installation fournis par Python." -#: ../Doc/distributing/index.rst:32 +#: distributing/index.rst:32 msgid "Key terms" msgstr "Vocabulaire" -#: ../Doc/distributing/index.rst:34 +#: distributing/index.rst:34 msgid "" "the `Python Packaging Index `__ is a public repository of " "open source licensed packages made available for use by other Python users" @@ -84,13 +85,13 @@ msgstr "" "paquets sous licence libre rendus disponibles par d'autres utilisateurs " "Python" -#: ../Doc/distributing/index.rst:37 +#: distributing/index.rst:37 msgid "" "the `Python Packaging Authority `__ are the group of " "developers and documentation authors responsible for the maintenance and " "evolution of the standard packaging tools and the associated metadata and " "file format standards. They maintain a variety of tools, documentation and " -"issue trackers on both `GitHub `__ and `BitBucket " +"issue trackers on both `GitHub `__ and `Bitbucket " "`__." msgstr "" "le `Python Packaging Authority `__ est le groupe de " @@ -98,9 +99,9 @@ msgstr "" "de l'évolution des outils standards de création de paquets, des métadonnées, " "et des formats de fichiers standards. Ils maintiennent quelques outils, " "documentation, et gestionnaires de ticket, aussi bien sur `GitHub `__ que sur `BitBucket `__." +"github.com/pypa>`__ que sur `Bitbucket `__." -#: ../Doc/distributing/index.rst:44 +#: distributing/index.rst:44 msgid "" ":mod:`distutils` is the original build and distribution system first added " "to the Python standard library in 1998. While direct use of :mod:`distutils` " @@ -117,7 +118,7 @@ msgstr "" "d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " "développement et les standards de la création de paquet." -#: ../Doc/distributing/index.rst:51 +#: distributing/index.rst:51 msgid "" "`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` first " "published in 2004. Its most notable addition over the unmodified :mod:" @@ -133,7 +134,7 @@ msgstr "" "régulièrement mise à jour que :mod:`distutils` et gère mieux les standards " "de création de paquets actuels, pour un large choix de version de Python." -#: ../Doc/distributing/index.rst:57 +#: distributing/index.rst:57 msgid "" "`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` " "command to :mod:`distutils`/`setuptools`_. This produces a cross platform " @@ -148,11 +149,11 @@ msgstr "" "incluant des extensions binaires, d'être installées sur un système sans " "avoir à les compiler localement." -#: ../Doc/distributing/index.rst:68 +#: distributing/index.rst:68 msgid "Open source licensing and collaboration" msgstr "Licence libre et collaboration" -#: ../Doc/distributing/index.rst:70 +#: distributing/index.rst:70 msgid "" "In most parts of the world, software is automatically covered by copyright. " "This means that other developers require explicit permission to copy, use, " @@ -163,7 +164,7 @@ msgstr "" "besoin d'une autorisation explicite pour copier, utiliser, modifier, et " "redistribuer le logiciel." -#: ../Doc/distributing/index.rst:74 +#: distributing/index.rst:74 msgid "" "Open source licensing is a way of explicitly granting such permission in a " "relatively consistent way, allowing developers to share and collaborate " @@ -178,7 +179,7 @@ msgstr "" "de dépenser plus de temps concentrés sur des problèmes relativement uniques " "à leur cas spécifiques." -#: ../Doc/distributing/index.rst:80 +#: distributing/index.rst:80 msgid "" "The distribution tools provided with Python are designed to make it " "reasonably straightforward for developers to make their own contributions " @@ -188,7 +189,7 @@ msgstr "" "vie des développeurs relativement simple lorsqu'ils souhaitent contribuer, " "s'il le désirent, à ces ressources communes." -#: ../Doc/distributing/index.rst:84 +#: distributing/index.rst:84 msgid "" "The same distribution tools can also be used to distribute software within " "an organisation, regardless of whether that software is published as open " @@ -198,11 +199,11 @@ msgstr "" "du logiciel à l'intérieur d'une organisation, que ce soit du logiciel libre " "ou non." -#: ../Doc/distributing/index.rst:90 +#: distributing/index.rst:90 msgid "Installing the tools" msgstr "Installer les outils" -#: ../Doc/distributing/index.rst:92 +#: distributing/index.rst:92 msgid "" "The standard library does not include build tools that support modern Python " "packaging standards, as the core development team has found that it is " @@ -215,7 +216,7 @@ msgstr "" "fonctionnent de manière cohérente, même avec de plus vieilles versions de " "Python." -#: ../Doc/distributing/index.rst:97 +#: distributing/index.rst:97 msgid "" "The currently recommended build and distribution tools can be installed by " "invoking the ``pip`` module at the command line::" @@ -224,7 +225,7 @@ msgstr "" "recommandées peuvent être installées en invoquant le module ``pip`` dans une " "invite de commande ::" -#: ../Doc/distributing/index.rst:104 +#: distributing/index.rst:104 msgid "" "For POSIX users (including Mac OS X and Linux users), these instructions " "assume the use of a :term:`virtual environment`." @@ -233,7 +234,7 @@ msgstr "" "utilisateurs de Linux), ces instructions supposent l'utilisation d'un :term:" "`environnement virtuel`." -#: ../Doc/distributing/index.rst:107 +#: distributing/index.rst:107 msgid "" "For Windows users, these instructions assume that the option to adjust the " "system PATH environment variable was selected when installing Python." @@ -242,7 +243,7 @@ msgstr "" "proposant de modifier la variable d'environnement PATH à été cochée lors de " "l'installation de Python." -#: ../Doc/distributing/index.rst:111 +#: distributing/index.rst:111 msgid "" "The Python Packaging User Guide includes more details on the `currently " "recommended tools`_." @@ -250,11 +251,11 @@ msgstr "" "Le *Python Packaging User Guide* contient plus de détails sur les `(en) " "outils actuellement recommandés `_." -#: ../Doc/distributing/index.rst:123 +#: distributing/index.rst:123 msgid "Reading the Python Packaging User Guide" msgstr "Consultez le *Python Packaging User Guide*" -#: ../Doc/distributing/index.rst:125 +#: distributing/index.rst:125 msgid "" "The Python Packaging User Guide covers the various key steps and elements " "involved in creating and publishing a project:" @@ -262,57 +263,61 @@ msgstr "" "Le *Python Packaging User Guide* couvre les différentes étapes et les " "éléments clés de la création et publication d'un projet :" -#: ../Doc/distributing/index.rst:128 +#: distributing/index.rst:128 msgid "`Project structure`_" msgstr "`(en) Structure d'un projet `_" -#: ../Doc/distributing/index.rst:129 +#: distributing/index.rst:129 msgid "`Building and packaging the project`_" msgstr "" "`(en) Construire et empaqueter le projet `_" -#: ../Doc/distributing/index.rst:130 +#: distributing/index.rst:130 msgid "`Uploading the project to the Python Packaging Index`_" msgstr "" "`(en) Téléverser le projet sur le Python Packaging Index `_" -#: ../Doc/distributing/index.rst:141 +#: distributing/index.rst:131 +msgid "`The .pypirc file`_" +msgstr "`(en) Le fichier .pypirc `_." + +#: distributing/index.rst:144 msgid "How do I...?" msgstr "Comment puis-je ...?" -#: ../Doc/distributing/index.rst:143 +#: distributing/index.rst:146 msgid "These are quick answers or links for some common tasks." msgstr "" "Ce sont des réponses rapides ou des liens pour certaines tâches courantes." -#: ../Doc/distributing/index.rst:146 +#: distributing/index.rst:149 msgid "... choose a name for my project?" msgstr "... choisir un nom pour mon projet ?" -#: ../Doc/distributing/index.rst:148 +#: distributing/index.rst:151 msgid "This isn't an easy topic, but here are a few tips:" msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :" -#: ../Doc/distributing/index.rst:150 +#: distributing/index.rst:153 msgid "check the Python Packaging Index to see if the name is already in use" msgstr "vérifiez dans le *Python Packaging Index* si le nom est déjà utilisé" -#: ../Doc/distributing/index.rst:151 +#: distributing/index.rst:154 msgid "" -"check popular hosting sites like GitHub, BitBucket, etc to see if there is " +"check popular hosting sites like GitHub, Bitbucket, etc to see if there is " "already a project with that name" msgstr "" "vérifiez sur quelques sites d'hébergement populaires tels que GitHub, " -"BitBucket, etc pour voir s'il y existe déjà un projet avec ce nom" +"Bitbucket, etc pour voir s'il y existe déjà un projet avec ce nom" -#: ../Doc/distributing/index.rst:153 +#: distributing/index.rst:156 msgid "check what comes up in a web search for the name you're considering" msgstr "" "vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez" -#: ../Doc/distributing/index.rst:154 +#: distributing/index.rst:157 msgid "" "avoid particularly common words, especially ones with multiple meanings, as " "they can make it difficult for users to find your software when searching " @@ -322,11 +327,11 @@ msgstr "" "significations, car pour vos utilisateurs, cela complique la recherche de " "votre logiciel" -#: ../Doc/distributing/index.rst:160 +#: distributing/index.rst:163 msgid "... create and distribute binary extensions?" msgstr "... créer et distribuer des extensions binaires ?" -#: ../Doc/distributing/index.rst:162 +#: distributing/index.rst:165 msgid "" "This is actually quite a complex topic, with a variety of alternatives " "available depending on exactly what you're aiming to achieve. See the Python " @@ -336,7 +341,7 @@ msgstr "" "disponibles dont le choix dépend de votre objectif exact. Voir le *Python " "Packaging User Guide* pour plus d'informations et de recommandations." -#: ../Doc/distributing/index.rst:168 +#: distributing/index.rst:171 msgid "" "`Python Packaging User Guide: Binary Extensions `__" diff --git a/distutils/_setuptools_disclaimer.po b/distutils/_setuptools_disclaimer.po index fbeade2b69..5ca7c7b21a 100644 --- a/distutils/_setuptools_disclaimer.po +++ b/distutils/_setuptools_disclaimer.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.8\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-09-04 11:42+0200\n" -"Last-Translator: FULL NAME \n" +"PO-Revision-Date: 2020-02-04 21:21+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -20,3 +21,7 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." diff --git a/distutils/apiref.po b/distutils/apiref.po index ab66e4b69f..a623273a0a 100644 --- a/distutils/apiref.po +++ b/distutils/apiref.po @@ -3,46 +3,54 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-04-11 18:00+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-05-09 12:00+0200\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/distutils/apiref.rst:5 +#: distutils/apiref.rst:5 msgid "API Reference" msgstr "Référence de l'API" -#: ../Doc/distutils/apiref.rst:11 +#: distutils/apiref.rst:11 msgid "`New and changed setup.py arguments in setuptools`_" -msgstr "" +msgstr "`Arguments nouveaux et modifiés de setup.py dans setuptools`_" -#: ../Doc/distutils/apiref.rst:10 +#: distutils/apiref.rst:10 msgid "" "The ``setuptools`` project adds new capabilities to the ``setup`` function " "and other APIs, makes the API consistent across different Python versions, " "and is hence recommended over using ``distutils`` directly." msgstr "" +"Le projet ``setuptools`` ajoute de nouvelles capacités à la fonction " +"``setup`` et à d'autres API, il rend l'API cohérente entre les différentes " +"versions de Python ; il est donc recommandé de l'utiliser plutôt que " +"d'utiliser directement les ``distutils``." -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/distutils/apiref.rst:19 +#: distutils/apiref.rst:19 msgid ":mod:`distutils.core` --- Core Distutils functionality" msgstr "" -":mod:`distutils.core` --- Fonctionnalités principales du module Distutils" +":mod:`distutils.core` — Fonctionnalités principales du module Distutils" -#: ../Doc/distutils/apiref.rst:25 +#: distutils/apiref.rst:25 msgid "" "The :mod:`distutils.core` module is the only module that needs to be " "installed to use the Distutils. It provides the :func:`setup` (which is " @@ -54,7 +62,7 @@ msgstr "" "appelé par le script *setup.py*). Il fournit indirectement les classes :" "class:`distutils.dist.Distribution` et :class:`distutils.cmd.Command`." -#: ../Doc/distutils/apiref.rst:33 +#: distutils/apiref.rst:33 msgid "" "The basic do-everything function that does most everything you could ever " "ask for from a Distutils method." @@ -62,7 +70,7 @@ msgstr "" "La fonction de base à tout faire qui fait presque tout ce dont vous pourriez " "attendre d'une méthode Distutils." -#: ../Doc/distutils/apiref.rst:36 +#: distutils/apiref.rst:36 msgid "" "The setup function takes a large number of arguments. These are laid out in " "the following table." @@ -70,82 +78,77 @@ msgstr "" "La fonction ``setup`` prend un grand nombre d'arguments. Ils sont présentés " "dans le tableau suivant." -#: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:185 +#: distutils/apiref.rst:185 msgid "argument name" msgstr "nom de l'argument" -#: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:143 -#: ../Doc/distutils/apiref.rst:185 +#: distutils/apiref.rst:143 distutils/apiref.rst:185 msgid "value" msgstr "valeur" -#: ../Doc/distutils/apiref.rst:42 ../Doc/distutils/apiref.rst:185 +#: distutils/apiref.rst:185 msgid "type" msgstr "type" -#: ../Doc/distutils/apiref.rst:44 ../Doc/distutils/apiref.rst:187 +#: distutils/apiref.rst:187 msgid "*name*" msgstr "*name*" -#: ../Doc/distutils/apiref.rst:44 +#: distutils/apiref.rst:44 msgid "The name of the package" msgstr "Le nom du paquet" -#: ../Doc/distutils/apiref.rst:44 ../Doc/distutils/apiref.rst:46 -#: ../Doc/distutils/apiref.rst:50 ../Doc/distutils/apiref.rst:53 -#: ../Doc/distutils/apiref.rst:56 ../Doc/distutils/apiref.rst:58 -#: ../Doc/distutils/apiref.rst:61 ../Doc/distutils/apiref.rst:68 -#: ../Doc/distutils/apiref.rst:72 ../Doc/distutils/apiref.rst:75 -#: ../Doc/distutils/apiref.rst:96 ../Doc/distutils/apiref.rst:106 -#: ../Doc/distutils/apiref.rst:187 ../Doc/distutils/apiref.rst:278 +#: distutils/apiref.rst:46 distutils/apiref.rst:53 distutils/apiref.rst:58 +#: distutils/apiref.rst:68 distutils/apiref.rst:75 distutils/apiref.rst:106 +#: distutils/apiref.rst:278 msgid "a string" msgstr "une chaîne de caractères" -#: ../Doc/distutils/apiref.rst:46 +#: distutils/apiref.rst:46 msgid "*version*" msgstr "*version*" -#: ../Doc/distutils/apiref.rst:46 +#: distutils/apiref.rst:46 msgid "The version number of the package; see :mod:`distutils.version`" msgstr "Le numéro de version du paquet, voir :mod:`distutils.version`" -#: ../Doc/distutils/apiref.rst:50 +#: distutils/apiref.rst:50 msgid "*description*" msgstr "*description*" -#: ../Doc/distutils/apiref.rst:50 +#: distutils/apiref.rst:50 msgid "A single line describing the package" msgstr "Une ligne unique décrivant le paquet" -#: ../Doc/distutils/apiref.rst:53 +#: distutils/apiref.rst:53 msgid "*long_description*" msgstr "*long_description*" -#: ../Doc/distutils/apiref.rst:53 +#: distutils/apiref.rst:53 msgid "Longer description of the package" msgstr "Une description plus longue du paquet" -#: ../Doc/distutils/apiref.rst:56 +#: distutils/apiref.rst:56 msgid "*author*" msgstr "*author*" -#: ../Doc/distutils/apiref.rst:56 +#: distutils/apiref.rst:56 msgid "The name of the package author" msgstr "Le nom de l'auteur du paquet" -#: ../Doc/distutils/apiref.rst:58 +#: distutils/apiref.rst:58 msgid "*author_email*" msgstr "*author_email*" -#: ../Doc/distutils/apiref.rst:58 +#: distutils/apiref.rst:58 msgid "The email address of the package author" msgstr "L'adresse e-mail de l'auteur du paquet" -#: ../Doc/distutils/apiref.rst:61 +#: distutils/apiref.rst:61 msgid "*maintainer*" msgstr "*maintainer*" -#: ../Doc/distutils/apiref.rst:61 +#: distutils/apiref.rst:61 msgid "" "The name of the current maintainer, if different from the author. Note that " "if the maintainer is provided, distutils will use it as the author in :file:" @@ -155,87 +158,82 @@ msgstr "" "si *maintainer* est fourni, *distutils* l'utilise à la place de *author* " "dans :file:`PKG-INFO`." -#: ../Doc/distutils/apiref.rst:68 +#: distutils/apiref.rst:68 msgid "*maintainer_email*" msgstr "*maintainer_email*" -#: ../Doc/distutils/apiref.rst:68 +#: distutils/apiref.rst:68 msgid "" "The email address of the current maintainer, if different from the author" msgstr "Le courriel de l'actuel mainteneur, si différent de l'auteur" -#: ../Doc/distutils/apiref.rst:72 +#: distutils/apiref.rst:72 msgid "*url*" msgstr "*url*" -#: ../Doc/distutils/apiref.rst:72 +#: distutils/apiref.rst:72 msgid "A URL for the package (homepage)" msgstr "Une URL pour le paquet (page d'accueil)" -#: ../Doc/distutils/apiref.rst:75 +#: distutils/apiref.rst:75 msgid "*download_url*" msgstr "*download_url*" -#: ../Doc/distutils/apiref.rst:75 +#: distutils/apiref.rst:75 msgid "A URL to download the package" msgstr "Une URL pour télécharger le paquet" -#: ../Doc/distutils/apiref.rst:77 +#: distutils/apiref.rst:77 msgid "*packages*" msgstr "*packages*" -#: ../Doc/distutils/apiref.rst:77 +#: distutils/apiref.rst:77 msgid "A list of Python packages that distutils will manipulate" msgstr "Une liste des paquets Python que *distutils* va manipuler" -#: ../Doc/distutils/apiref.rst:77 ../Doc/distutils/apiref.rst:80 -#: ../Doc/distutils/apiref.rst:83 ../Doc/distutils/apiref.rst:100 -#: ../Doc/distutils/apiref.rst:193 ../Doc/distutils/apiref.rst:207 -#: ../Doc/distutils/apiref.rst:223 ../Doc/distutils/apiref.rst:226 -#: ../Doc/distutils/apiref.rst:230 ../Doc/distutils/apiref.rst:234 -#: ../Doc/distutils/apiref.rst:240 ../Doc/distutils/apiref.rst:247 -#: ../Doc/distutils/apiref.rst:258 ../Doc/distutils/apiref.rst:267 -#: ../Doc/distutils/apiref.rst:275 +#: distutils/apiref.rst:80 distutils/apiref.rst:100 distutils/apiref.rst:207 +#: distutils/apiref.rst:226 distutils/apiref.rst:234 distutils/apiref.rst:247 +#: distutils/apiref.rst:267 distutils/apiref.rst:275 msgid "a list of strings" msgstr "une liste de chaînes de caractères" -#: ../Doc/distutils/apiref.rst:80 +#: distutils/apiref.rst:80 msgid "*py_modules*" msgstr "*py_modules*" -#: ../Doc/distutils/apiref.rst:80 +#: distutils/apiref.rst:80 msgid "A list of Python modules that distutils will manipulate" msgstr "Une liste de modules Python que *distutils* va manipuler" -#: ../Doc/distutils/apiref.rst:83 +#: distutils/apiref.rst:83 msgid "*scripts*" msgstr "*scripts*" -#: ../Doc/distutils/apiref.rst:83 +#: distutils/apiref.rst:83 msgid "A list of standalone script files to be built and installed" msgstr "Une liste de scripts autonomes à construire et à installer" -#: ../Doc/distutils/apiref.rst:87 +#: distutils/apiref.rst:87 msgid "*ext_modules*" msgstr "*ext_modules*" -#: ../Doc/distutils/apiref.rst:87 +#: distutils/apiref.rst:87 msgid "A list of Python extensions to be built" msgstr "Une liste des extensions Python à construire" -#: ../Doc/distutils/apiref.rst:87 +#: distutils/apiref.rst:87 msgid "a list of instances of :class:`distutils.core.Extension`" msgstr "une liste d'instances de :class:`distutils.core.Extension`" -#: ../Doc/distutils/apiref.rst:90 +#: distutils/apiref.rst:90 msgid "*classifiers*" msgstr "*classifiers*" -#: ../Doc/distutils/apiref.rst:90 +#: distutils/apiref.rst:90 msgid "A list of categories for the package" msgstr "Une liste de catégories pour le paquet" -#: ../Doc/distutils/apiref.rst:90 +#: distutils/apiref.rst:90 msgid "" "a list of strings; valid classifiers are listed on `PyPI `_." @@ -243,103 +241,102 @@ msgstr "" "une liste des chaînes de caractères, les classificateurs valides sont listés " "sur `PyPI `_." -#: ../Doc/distutils/apiref.rst:93 +#: distutils/apiref.rst:93 msgid "*distclass*" msgstr "*distclass*" -#: ../Doc/distutils/apiref.rst:93 +#: distutils/apiref.rst:93 msgid "the :class:`Distribution` class to use" msgstr "la classe :class:`Distribution` à utiliser" -#: ../Doc/distutils/apiref.rst:93 +#: distutils/apiref.rst:93 msgid "a subclass of :class:`distutils.core.Distribution`" msgstr "une sous classe de :class:`distutils.core.Distribution`" -#: ../Doc/distutils/apiref.rst:96 +#: distutils/apiref.rst:96 msgid "*script_name*" msgstr "*script_name*" -#: ../Doc/distutils/apiref.rst:96 +#: distutils/apiref.rst:96 msgid "The name of the setup.py script - defaults to ``sys.argv[0]``" msgstr "Le nom du script *setup.py* . Initialisé par ``sys.argv[0]``" -#: ../Doc/distutils/apiref.rst:100 +#: distutils/apiref.rst:100 msgid "*script_args*" msgstr "*script_args*" -#: ../Doc/distutils/apiref.rst:100 +#: distutils/apiref.rst:100 msgid "Arguments to supply to the setup script" msgstr "Arguments à fournir au script d'installation" -#: ../Doc/distutils/apiref.rst:103 +#: distutils/apiref.rst:103 msgid "*options*" msgstr "*options*" -#: ../Doc/distutils/apiref.rst:103 +#: distutils/apiref.rst:103 msgid "default options for the setup script" msgstr "options par défaut pour le script d'installation" -#: ../Doc/distutils/apiref.rst:103 ../Doc/distutils/apiref.rst:113 -#: ../Doc/distutils/apiref.rst:119 +#: distutils/apiref.rst:113 distutils/apiref.rst:119 msgid "a dictionary" msgstr "un dictionnaire" -#: ../Doc/distutils/apiref.rst:106 +#: distutils/apiref.rst:106 msgid "*license*" msgstr "*license*" -#: ../Doc/distutils/apiref.rst:106 +#: distutils/apiref.rst:106 msgid "The license for the package" msgstr "La licence pour le paquet" -#: ../Doc/distutils/apiref.rst:108 +#: distutils/apiref.rst:108 msgid "*keywords*" msgstr "*keywords*" -#: ../Doc/distutils/apiref.rst:108 +#: distutils/apiref.rst:108 msgid "Descriptive meta-data, see :pep:`314`" msgstr "Méta-données descriptives, voir :pep:`314`" -#: ../Doc/distutils/apiref.rst:108 ../Doc/distutils/apiref.rst:111 +#: distutils/apiref.rst:111 msgid "a list of strings or a comma-separated string" msgstr "" "Une liste de chaînes de caractères ou une chaîne de caractère dont les " "éléments sont séparés par des virgules." -#: ../Doc/distutils/apiref.rst:111 +#: distutils/apiref.rst:111 msgid "*platforms*" msgstr "*platforms*" -#: ../Doc/distutils/apiref.rst:113 +#: distutils/apiref.rst:113 msgid "*cmdclass*" msgstr "*cmdclass*" -#: ../Doc/distutils/apiref.rst:113 +#: distutils/apiref.rst:113 msgid "A mapping of command names to :class:`Command` subclasses" msgstr "" "Un dictionnaire des noms de commandes et des sous-classes :class:`Command`" -#: ../Doc/distutils/apiref.rst:116 +#: distutils/apiref.rst:116 msgid "*data_files*" msgstr "*data_files*" -#: ../Doc/distutils/apiref.rst:116 +#: distutils/apiref.rst:116 msgid "A list of data files to install" msgstr "Une liste de fichiers de données à installer" -#: ../Doc/distutils/apiref.rst:116 +#: distutils/apiref.rst:116 msgid "a list" msgstr "une liste" -#: ../Doc/distutils/apiref.rst:119 +#: distutils/apiref.rst:119 msgid "*package_dir*" msgstr "*package_dir*" -#: ../Doc/distutils/apiref.rst:119 +#: distutils/apiref.rst:119 msgid "A mapping of package to directory names" msgstr "Un dictionnaire des paquets et des noms de dossiers" -#: ../Doc/distutils/apiref.rst:127 +#: distutils/apiref.rst:127 msgid "" "Run a setup script in a somewhat controlled environment, and return the :" "class:`distutils.dist.Distribution` instance that drives things. This is " @@ -354,7 +351,7 @@ msgstr "" "*script* à la fonction :func:`setup`), ou le contenu des fichiers de " "configuration ou de la ligne de commande." -#: ../Doc/distutils/apiref.rst:133 +#: distutils/apiref.rst:133 msgid "" "*script_name* is a file that will be read and run with :func:`exec`. ``sys." "argv[0]`` will be replaced with *script* for the duration of the call. " @@ -366,21 +363,20 @@ msgstr "" "est une liste de chaînes de caractères; si fourni, ``sys.argv[1:]`` sera " "remplacé par *script_args* pour la durée de l'appel." -#: ../Doc/distutils/apiref.rst:138 +#: distutils/apiref.rst:138 msgid "" "*stop_after* tells :func:`setup` when to stop processing; possible values:" msgstr "*stop_after* dit à :func:`setup` quand s'arrêter; valeurs possibles:" -#: ../Doc/distutils/apiref.rst:143 ../Doc/distutils/apiref.rst:562 -#: ../Doc/distutils/apiref.rst:1583 +#: distutils/apiref.rst:562 distutils/apiref.rst:1583 msgid "description" msgstr "description" -#: ../Doc/distutils/apiref.rst:145 +#: distutils/apiref.rst:145 msgid "*init*" msgstr "*init*" -#: ../Doc/distutils/apiref.rst:145 +#: distutils/apiref.rst:145 msgid "" "Stop after the :class:`Distribution` instance has been created and " "populated with the keyword arguments to :func:`setup`" @@ -388,11 +384,11 @@ msgstr "" "S'arrête une fois que l'instance :class:`Distribution` a été créée et " "renseignée avec les arguments-clés de :func:`setup`" -#: ../Doc/distutils/apiref.rst:149 +#: distutils/apiref.rst:149 msgid "*config*" msgstr "*config*" -#: ../Doc/distutils/apiref.rst:149 +#: distutils/apiref.rst:149 msgid "" "Stop after config files have been parsed (and their data stored in the :" "class:`Distribution` instance)" @@ -400,24 +396,24 @@ msgstr "" "S'arrête une fois que les fichiers de configuration ont été parcouru (et que " "leurs données ont été stockées dans l'instance :class:`Distribution`)" -#: ../Doc/distutils/apiref.rst:153 +#: distutils/apiref.rst:153 msgid "*commandline*" msgstr "*commandline*" -#: ../Doc/distutils/apiref.rst:153 +#: distutils/apiref.rst:153 msgid "" "Stop after the command-line (``sys.argv[1:]`` or *script_args*) have been " "parsed (and the data stored in the :class:`Distribution` instance.)" msgstr "" "S'arrête une fois que la ligne de commande (``sys.argv[1:]`` ou " -"*script_args*) a été parcouru (et les données stockées dans l'instance :" -"class:`Distribution`)" +"*script_args*) a été parcourue (et les données stockées dans l'instance :" +"class:`Distribution`)." -#: ../Doc/distutils/apiref.rst:158 +#: distutils/apiref.rst:158 msgid "*run*" msgstr "*run*" -#: ../Doc/distutils/apiref.rst:158 +#: distutils/apiref.rst:158 msgid "" "Stop after all commands have been run (the same as if :func:`setup` had " "been called in the usual way). This is the default value." @@ -425,7 +421,7 @@ msgstr "" "S'arrête une fois que toutes les commandes ont été exécutées (comme si :func:" "`setup` fût appelé de la manière habituelle). Ceci est la valeur par défaut." -#: ../Doc/distutils/apiref.rst:164 +#: distutils/apiref.rst:164 msgid "" "In addition, the :mod:`distutils.core` module exposed a number of classes " "that live elsewhere." @@ -433,20 +429,20 @@ msgstr "" "De plus, le module :mod:`distutils.core` a exposé un nombre de classe qui " "existent ailleurs." -#: ../Doc/distutils/apiref.rst:167 +#: distutils/apiref.rst:167 msgid ":class:`~distutils.extension.Extension` from :mod:`distutils.extension`" msgstr "" ":class:`~distutils.extension.Extension` du module :mod:`distutils.extension`" -#: ../Doc/distutils/apiref.rst:169 +#: distutils/apiref.rst:169 msgid ":class:`~distutils.cmd.Command` from :mod:`distutils.cmd`" msgstr ":class:`~distutils.cmd.Command` du module :mod:`distutils.cmd`" -#: ../Doc/distutils/apiref.rst:171 +#: distutils/apiref.rst:171 msgid ":class:`~distutils.dist.Distribution` from :mod:`distutils.dist`" msgstr ":class:`~distutils.dist.Distribution` du module :mod:`distutils.dist`" -#: ../Doc/distutils/apiref.rst:173 +#: distutils/apiref.rst:173 msgid "" "A short description of each of these follows, but see the relevant module " "for the full reference." @@ -454,7 +450,7 @@ msgstr "" "Une courte description de chacune d'elle suit, mais consultez le module " "concerné pour une référence complète." -#: ../Doc/distutils/apiref.rst:179 +#: distutils/apiref.rst:179 msgid "" "The Extension class describes a single C or C++ extension module in a setup " "script. It accepts the following keyword arguments in its constructor:" @@ -463,20 +459,20 @@ msgstr "" "script d'installation. Elle accepte dans son constructeur les arguments " "nommés suivants:" -#: ../Doc/distutils/apiref.rst:187 +#: distutils/apiref.rst:187 msgid "" "the full name of the extension, including any packages --- ie. *not* a " "filename or pathname, but Python dotted name" msgstr "" -"Le nom complet de l'extension, incluant n'importe quel paquet --- c-à-d " +"Le nom complet de l'extension, incluant n'importe quel paquet — c.-à-d. " "*pas* un nom de fichier ou de chemin mais un nom Python séparé par des " "points." -#: ../Doc/distutils/apiref.rst:193 +#: distutils/apiref.rst:193 msgid "*sources*" msgstr "*sources*" -#: ../Doc/distutils/apiref.rst:193 +#: distutils/apiref.rst:193 msgid "" "list of source filenames, relative to the distribution root (where the setup " "script lives), in Unix form (slash-separated) for portability. Source files " @@ -491,11 +487,11 @@ msgstr "" "spécifiques à la plateforme ou tout autre reconnu par la commande :command:" "`build_ext` comme source d'une extension Python." -#: ../Doc/distutils/apiref.rst:207 +#: distutils/apiref.rst:207 msgid "*include_dirs*" msgstr "*include_dirs*" -#: ../Doc/distutils/apiref.rst:207 +#: distutils/apiref.rst:207 msgid "" "list of directories to search for C/C++ header files (in Unix form for " "portability)" @@ -503,11 +499,11 @@ msgstr "" "Liste des répertoires où chercher les fichiers d'entêtes C/C++ (en format " "Unix dans un souci de portabilité)." -#: ../Doc/distutils/apiref.rst:211 +#: distutils/apiref.rst:211 msgid "*define_macros*" msgstr "*define_macros*" -#: ../Doc/distutils/apiref.rst:211 +#: distutils/apiref.rst:211 msgid "" "list of macros to define; each macro is defined using a 2-tuple ``(name, " "value)``, where *value* is either the string to define it to or ``None`` to " @@ -520,43 +516,43 @@ msgstr "" "valeur particulière (équivalent à ``#define TRUC`` dans la source ou à :" "option:`!-DTRUC` dans la ligne de commande du compilateur C Unix." -#: ../Doc/distutils/apiref.rst:211 +#: distutils/apiref.rst:211 msgid "a list of tuples" msgstr "une liste de tuples" -#: ../Doc/distutils/apiref.rst:223 +#: distutils/apiref.rst:223 msgid "*undef_macros*" msgstr "*undef_macros*" -#: ../Doc/distutils/apiref.rst:223 +#: distutils/apiref.rst:223 msgid "list of macros to undefine explicitly" msgstr "Liste de macros à ignorer explicitement." -#: ../Doc/distutils/apiref.rst:226 +#: distutils/apiref.rst:226 msgid "*library_dirs*" msgstr "*library_dirs*" -#: ../Doc/distutils/apiref.rst:226 +#: distutils/apiref.rst:226 msgid "list of directories to search for C/C++ libraries at link time" msgstr "" "Liste de répertoires à parcourir pour chercher les bibliothèques C/C++ lors " "de la phase d'édition de liens." -#: ../Doc/distutils/apiref.rst:230 +#: distutils/apiref.rst:230 msgid "*libraries*" msgstr "*libraries*" -#: ../Doc/distutils/apiref.rst:230 +#: distutils/apiref.rst:230 msgid "list of library names (not filenames or paths) to link against" msgstr "" "Liste de noms de bibliothèques à lier à la compilation. Pas de noms de " "fichiers ou de chemin." -#: ../Doc/distutils/apiref.rst:234 +#: distutils/apiref.rst:234 msgid "*runtime_library_dirs*" msgstr "*runtime_library_dirs*" -#: ../Doc/distutils/apiref.rst:234 +#: distutils/apiref.rst:234 msgid "" "list of directories to search for C/C++ libraries at run time (for shared " "extensions, this is when the extension is loaded)" @@ -565,11 +561,11 @@ msgstr "" "phase d'exécution. Pour les extensions partagées, c'est à ce moment que " "l'extension est chargée. " -#: ../Doc/distutils/apiref.rst:240 +#: distutils/apiref.rst:240 msgid "*extra_objects*" msgstr "*extra_objects*" -#: ../Doc/distutils/apiref.rst:240 +#: distutils/apiref.rst:240 msgid "" "list of extra files to link with (eg. object files not implied by 'sources', " "static library that must be explicitly specified, binary resource files, " @@ -579,11 +575,11 @@ msgstr "" "non explicités dans les 'sources', bibliothèque statique qui doit être " "explicitement spécifiée, fichiers de ressources binaires, etc. )." -#: ../Doc/distutils/apiref.rst:247 +#: distutils/apiref.rst:247 msgid "*extra_compile_args*" msgstr "*extra_compile_args*" -#: ../Doc/distutils/apiref.rst:247 +#: distutils/apiref.rst:247 msgid "" "any extra platform- and compiler-specific information to use when compiling " "the source files in 'sources'. For platforms and compilers where a command " @@ -596,11 +592,11 @@ msgstr "" "commande a du sens, il s'agit généralement d'une liste d'arguments de ligne " "de commande, mais pour d'autres plates-formes, cela peut être n'importe quoi." -#: ../Doc/distutils/apiref.rst:258 +#: distutils/apiref.rst:258 msgid "*extra_link_args*" msgstr "*extra_link_args*" -#: ../Doc/distutils/apiref.rst:258 +#: distutils/apiref.rst:258 msgid "" "any extra platform- and compiler-specific information to use when linking " "object files together to create the extension (or to create a new static " @@ -611,11 +607,11 @@ msgstr "" "l'extension (ou pour créer un nouvel interpréteur Python statique). " "Interprétation similaire à celle de *extra_compile_args*." -#: ../Doc/distutils/apiref.rst:267 +#: distutils/apiref.rst:267 msgid "*export_symbols*" msgstr "*export_symbols*" -#: ../Doc/distutils/apiref.rst:267 +#: distutils/apiref.rst:267 msgid "" "list of symbols to be exported from a shared extension. Not used on all " "platforms, and not generally necessary for Python extensions, which " @@ -624,21 +620,21 @@ msgstr "" "Liste des symboles à exporter à partir d'une extension partagée. N'est pas " "utilisé sur toutes les plates-formes et n'est généralement pas nécessaire " "pour les extensions Python, qui exportent généralement exactement un " -"symbole : ``init`` + nom_de_l'extension." +"symbole : ``init + nom_de_l'extension``." -#: ../Doc/distutils/apiref.rst:275 +#: distutils/apiref.rst:275 msgid "*depends*" msgstr "*depends*" -#: ../Doc/distutils/apiref.rst:275 +#: distutils/apiref.rst:275 msgid "list of files that the extension depends on" msgstr "Liste des fichiers dont dépend l'extension." -#: ../Doc/distutils/apiref.rst:278 +#: distutils/apiref.rst:278 msgid "*language*" msgstr "*language*" -#: ../Doc/distutils/apiref.rst:278 +#: distutils/apiref.rst:278 msgid "" "extension language (i.e. ``'c'``, ``'c++'``, ``'objc'``). Will be detected " "from the source extensions if not provided." @@ -646,11 +642,11 @@ msgstr "" "Langage de l'extension (par exemple ``'c'``, ``'c++'``, ``'objc'``). Il sera " "détecté selon l'extension de la source s'il n'est pas précisé." -#: ../Doc/distutils/apiref.rst:284 +#: distutils/apiref.rst:284 msgid "*optional*" msgstr "*optional*" -#: ../Doc/distutils/apiref.rst:284 +#: distutils/apiref.rst:284 msgid "" "specifies that a build failure in the extension should not abort the build " "process, but simply skip the extension." @@ -658,17 +654,19 @@ msgstr "" "Spécifie qu'un échec de compilation dans l'extension ne doit pas interrompre " "le processus de compilation, mais simplement ignorer l'extension." -#: ../Doc/distutils/apiref.rst:284 +#: distutils/apiref.rst:284 msgid "a boolean" msgstr "un booléen" -#: ../Doc/distutils/apiref.rst:292 +#: distutils/apiref.rst:292 msgid "" "On Unix, C extensions are no longer linked to libpython except on Android " "and Cygwin." msgstr "" +"Sur Unix, les extensions C ne sont plus liées à *libpython* sauf sur Android " +"et Cygwin." -#: ../Doc/distutils/apiref.rst:298 +#: distutils/apiref.rst:298 msgid "" "A :class:`Distribution` describes how to build, install and package up a " "Python software package." @@ -676,7 +674,7 @@ msgstr "" "Une classe :class:`Distribution` décrit comment compiler, installer et " "empaqueter un paquet logiciel Python." -#: ../Doc/distutils/apiref.rst:301 +#: distutils/apiref.rst:301 msgid "" "See the :func:`setup` function for a list of keyword arguments accepted by " "the Distribution constructor. :func:`setup` creates a Distribution instance." @@ -685,7 +683,7 @@ msgstr "" "acceptés par le constructeur *Distribution*. :func:`setup` crée une instance " "de Distribution." -#: ../Doc/distutils/apiref.rst:304 +#: distutils/apiref.rst:304 msgid "" ":class:`~distutils.core.Distribution` now warns if ``classifiers``, " "``keywords`` and ``platforms`` fields are not specified as a list or a " @@ -695,7 +693,7 @@ msgstr "" "``classifiers``, ``keywords`` et ``platforms`` ne sont pas spécifiés comme " "une liste ou une chaîne de caractères." -#: ../Doc/distutils/apiref.rst:311 +#: distutils/apiref.rst:311 msgid "" "A :class:`Command` class (or rather, an instance of one of its subclasses) " "implement a single distutils command." @@ -703,11 +701,11 @@ msgstr "" "Une classe :class:`Command` (ou plutôt une instance d'une de ses sous-" "classes) implémente une commande *distutils* unique." -#: ../Doc/distutils/apiref.rst:316 +#: distutils/apiref.rst:316 msgid ":mod:`distutils.ccompiler` --- CCompiler base class" msgstr ":mod:`distutils.ccompiler` — Classe de base CCompiler" -#: ../Doc/distutils/apiref.rst:322 +#: distutils/apiref.rst:322 msgid "" "This module provides the abstract base class for the :class:`CCompiler` " "classes. A :class:`CCompiler` instance can be used for all the compile and " @@ -719,14 +717,14 @@ msgstr "" "`CCompiler`. Une instance de :class:`CCompiler` peut être utilisée pour " "toutes les étapes de compilation et de liaison nécessaires à la compilation " "d'un projet unique. Des méthodes sont fournies pour définir des options pour " -"le compilateur --- définitions de macros, inclusion des répertoires, des " +"le compilateur — définitions de macros, inclusion des répertoires, des " "chemins de liens, des bibliothèques, etc." -#: ../Doc/distutils/apiref.rst:328 +#: distutils/apiref.rst:328 msgid "This module provides the following functions." msgstr "Ce module fournit les fonctions suivantes." -#: ../Doc/distutils/apiref.rst:333 +#: distutils/apiref.rst:333 msgid "" "Generate linker options for searching library directories and linking with " "specific libraries. *libraries* and *library_dirs* are, respectively, lists " @@ -742,7 +740,7 @@ msgstr "" "avec certains compilateurs (en fonction des deux chaînes de format " "transmises)." -#: ../Doc/distutils/apiref.rst:342 +#: distutils/apiref.rst:342 msgid "" "Generate C pre-processor options (:option:`!-D`, :option:`!-U`, :option:`!-" "I`) as used by at least two types of compilers: the typical Unix compiler " @@ -754,7 +752,7 @@ msgid "" "suitable for either Unix compilers or Visual C++." msgstr "" "Génère les options du préprocesseur C (:option:`!-D`, :option:`!-U`, :option:" -"`!-I`) utilisées par au moins deux types de compilateurs : les compilateurs " +"`!-I`) utilisées par au moins deux types de compilateurs : les compilateurs " "type Unix et Visual C++. *macros* est une liste de couples où ``(name,)`` " "est traité comme *non définie* (:option:`!-U`); ``(name, value)`` est traité " "comme *définie* (:option:`!-D`). *include_dirs* est la liste de noms de " @@ -762,12 +760,12 @@ msgstr "" "`!-I`). Renvoie une liste d'options de ligne de commande pour les " "compilateurs Unix ou Visual C+++." -#: ../Doc/distutils/apiref.rst:354 +#: distutils/apiref.rst:354 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." -#: ../Doc/distutils/apiref.rst:356 +#: distutils/apiref.rst:356 msgid "" "*osname* should be one of the standard Python OS names (i.e. the ones " "returned by ``os.name``) and *platform* the common value returned by ``sys." @@ -777,7 +775,7 @@ msgstr "" "noms renvoyés par ``os.name``) et *platform* la valeur commune renvoyés par " "``sys.platform`` pour la plate-forme en question." -#: ../Doc/distutils/apiref.rst:360 +#: distutils/apiref.rst:360 msgid "" "The default values are ``os.name`` and ``sys.platform`` in case the " "parameters are not given." @@ -785,7 +783,7 @@ msgstr "" "Les valeurs par défaut sont ``os.name`` et ``sys.platform`` si les " "paramètres ne sont pas fournis." -#: ../Doc/distutils/apiref.rst:366 +#: distutils/apiref.rst:366 msgid "" "Factory function to generate an instance of some CCompiler subclass for the " "supplied platform/compiler combination. *plat* defaults to ``os.name`` (eg. " @@ -808,7 +806,7 @@ msgstr "" "Microsoft sous Unix. Si vous fournissez une valeur pour *compiler*, *plat* " "est ignoré." -#: ../Doc/distutils/apiref.rst:382 +#: distutils/apiref.rst:382 msgid "" "Print list of available compilers (used by the :option:`!--help-compiler` " "options to :command:`build`, :command:`build_ext`, :command:`build_clib`)." @@ -817,7 +815,7 @@ msgstr "" "`!--help-compiler` pour les commandes :command:`build`, :command:" "`build_ext`, :command:`build_clib`)." -#: ../Doc/distutils/apiref.rst:388 +#: distutils/apiref.rst:388 msgid "" "The abstract base class :class:`CCompiler` defines the interface that must " "be implemented by real compiler classes. The class also has some utility " @@ -828,7 +826,7 @@ msgstr "" "possède également quelques méthodes utilitaires utilisées par plusieurs " "classes de compilateurs." -#: ../Doc/distutils/apiref.rst:392 +#: distutils/apiref.rst:392 msgid "" "The basic idea behind a compiler abstraction class is that each instance can " "be used for all the compile/link steps in building a single project. Thus, " @@ -847,7 +845,7 @@ msgstr "" "dont chaque fichier est traité, la plupart de ces attributs peuvent être " "modifiés en fonction de chaque compilation ou de chaque lien." -#: ../Doc/distutils/apiref.rst:400 +#: distutils/apiref.rst:400 msgid "" "The constructor for each subclass creates an instance of the Compiler " "object. Flags are *verbose* (show verbose output), *dry_run* (don't actually " @@ -866,7 +864,7 @@ msgstr "" "ou une de ses sous-classes. Utilisez plutôt la fonction génératrice :func:" "`distutils.CCompiler.new_compiler`." -#: ../Doc/distutils/apiref.rst:407 +#: distutils/apiref.rst:407 msgid "" "The following methods allow you to manually alter compiler options for the " "instance of the Compiler class." @@ -874,7 +872,7 @@ msgstr "" "Les méthodes suivantes vous permettent de modifier manuellement les options " "du compilateur de l'instance de la classe *Compiler*." -#: ../Doc/distutils/apiref.rst:413 +#: distutils/apiref.rst:413 msgid "" "Add *dir* to the list of directories that will be searched for header files. " "The compiler is instructed to search directories in the order in which they " @@ -885,7 +883,7 @@ msgstr "" "dans l'ordre dans lequel ils sont fournis par des appels successifs à :meth:" "`add_include_dir`." -#: ../Doc/distutils/apiref.rst:420 +#: distutils/apiref.rst:420 msgid "" "Set the list of directories that will be searched to *dirs* (a list of " "strings). Overrides any preceding calls to :meth:`add_include_dir`; " @@ -900,7 +898,7 @@ msgstr "" "pas la liste des répertoires d'inclusion standard que le compilateur peut " "rechercher par défaut." -#: ../Doc/distutils/apiref.rst:429 +#: distutils/apiref.rst:429 msgid "" "Add *libname* to the list of libraries that will be included in all links " "driven by this compiler object. Note that *libname* should \\*not\\* be the " @@ -911,10 +909,10 @@ msgstr "" "Ajoute *libname* à la liste des bibliothèques qui seront incluses dans tous " "les liens gérés par l'objet compilateur. Notez que *libname* ne *doit pas " "être* le nom d'un fichier contenant une bibliothèque, mais le nom de la " -"bibliothèque elle-même : le nom du fichier sera déduit par l'éditeur de " +"bibliothèque elle-même : le nom du fichier sera déduit par l'éditeur de " "liens, le compilateur ou la classe de compilation (selon la plate-forme)." -#: ../Doc/distutils/apiref.rst:435 +#: distutils/apiref.rst:435 msgid "" "The linker will be instructed to link against libraries in the order they " "were supplied to :meth:`add_library` and/or :meth:`set_libraries`. It is " @@ -927,7 +925,7 @@ msgstr "" "bibliothèques ; l'éditeur de liens est chargé de créer des liens avec les " "bibliothèques autant de fois que les noms sont mentionnées." -#: ../Doc/distutils/apiref.rst:443 +#: distutils/apiref.rst:443 msgid "" "Set the list of libraries to be included in all links driven by this " "compiler object to *libnames* (a list of strings). This does not affect any " @@ -938,7 +936,7 @@ msgstr "" "caractères). Ceci n'affecte pas les bibliothèques système standard que " "l'éditeur de liens peut inclure par défaut." -#: ../Doc/distutils/apiref.rst:450 +#: distutils/apiref.rst:450 msgid "" "Add *dir* to the list of directories that will be searched for libraries " "specified to :meth:`add_library` and :meth:`set_libraries`. The linker will " @@ -951,7 +949,7 @@ msgstr "" "dans lequel elles sont fournies à :meth:`add_library_dir` et/ou :meth:" "`set_library_dirs`." -#: ../Doc/distutils/apiref.rst:458 +#: distutils/apiref.rst:458 msgid "" "Set the list of library search directories to *dirs* (a list of strings). " "This does not affect any standard library search path that the linker may " @@ -962,7 +960,7 @@ msgstr "" "chemin de recherche standard de la bibliothèque que l'éditeur de liens peut " "rechercher par défaut." -#: ../Doc/distutils/apiref.rst:465 +#: distutils/apiref.rst:465 msgid "" "Add *dir* to the list of directories that will be searched for shared " "libraries at runtime." @@ -970,7 +968,7 @@ msgstr "" "Ajoute *dir* à la liste des répertoires qui seront recherchés par les " "bibliothèques partagées au moment de l'exécution." -#: ../Doc/distutils/apiref.rst:471 +#: distutils/apiref.rst:471 msgid "" "Set the list of directories to search for shared libraries at runtime to " "*dirs* (a list of strings). This does not affect any standard search path " @@ -981,7 +979,7 @@ msgstr "" "caractères). Ceci n'affecte aucun chemin de recherche standard que " "l'éditeur de liens d'exécution peut rechercher par défaut." -#: ../Doc/distutils/apiref.rst:478 +#: distutils/apiref.rst:478 msgid "" "Define a preprocessor macro for all compilations driven by this compiler " "object. The optional parameter *value* should be a string; if it is not " @@ -993,7 +991,7 @@ msgstr "" "de caractères ; s'il n'est pas fourni, alors la macro sera définie sans " "valeur explicite et le résultat exact dépendra du compilateur utilisé." -#: ../Doc/distutils/apiref.rst:488 +#: distutils/apiref.rst:488 msgid "" "Undefine a preprocessor macro for all compilations driven by this compiler " "object. If the same macro is defined by :meth:`define_macro` and undefined " @@ -1009,7 +1007,7 @@ msgstr "" "multiples). Si la macro est redéfinie/désactivée par compilation (c'est-à-" "dire dans l'appel à :meth:`compile`), alors cet appel prévaut." -#: ../Doc/distutils/apiref.rst:498 +#: distutils/apiref.rst:498 msgid "" "Add *object* to the list of object files (or analogues, such as explicitly " "named library files or the output of \"resource compilers\") to be included " @@ -1020,7 +1018,7 @@ msgstr "" "\"compilateurs de ressources\") à inclure dans chaque lien qui est géré par " "ce compilateur d'objets." -#: ../Doc/distutils/apiref.rst:505 +#: distutils/apiref.rst:505 msgid "" "Set the list of object files (or analogues) to be included in every link to " "*objects*. This does not affect any standard object files that the linker " @@ -1031,7 +1029,7 @@ msgstr "" "standard que l'éditeur de liens peut inclure par défaut (comme les " "bibliothèques système)." -#: ../Doc/distutils/apiref.rst:509 +#: distutils/apiref.rst:509 msgid "" "The following methods implement methods for autodetection of compiler " "options, providing some functionality similar to GNU :program:`autoconf`." @@ -1040,7 +1038,7 @@ msgstr "" "du compilateur. Elles offrent des fonctionnalités similaires à celles du " "programme GNU :program:`autoconf`." -#: ../Doc/distutils/apiref.rst:515 +#: distutils/apiref.rst:515 msgid "" "Detect the language of a given file, or list of files. Uses the instance " "attributes :attr:`language_map` (a dictionary), and :attr:`language_order` " @@ -1050,7 +1048,7 @@ msgstr "" "les attributs d'instance :attr:`language_map` (un dictionnaire) et :attr:" "`language_order` (une liste) pour faire le travail." -#: ../Doc/distutils/apiref.rst:522 +#: distutils/apiref.rst:522 msgid "" "Search the specified list of directories for a static or shared library file " "*lib* and return the full path to that file. If *debug* is true, look for a " @@ -1063,7 +1061,7 @@ msgstr "" "la plate-forme actuelle). Renvoie ``None`` si *lib* n'a pas été trouvé dans " "l'un des répertoires spécifiés." -#: ../Doc/distutils/apiref.rst:530 +#: distutils/apiref.rst:530 msgid "" "Return a boolean indicating whether *funcname* is supported on the current " "platform. The optional arguments can be used to augment the compilation " @@ -1076,7 +1074,7 @@ msgstr "" "répertoires de fichiers, des bibliothèques, des répertoires de bibliothèques " "supplémentaires" -#: ../Doc/distutils/apiref.rst:538 +#: distutils/apiref.rst:538 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for libraries." @@ -1084,7 +1082,7 @@ msgstr "" "Renvoie l'option de compilation pour ajouter *dir* à la liste des " "répertoires recherchés pour les bibliothèques." -#: ../Doc/distutils/apiref.rst:544 +#: distutils/apiref.rst:544 msgid "" "Return the compiler option to add *lib* to the list of libraries linked into " "the shared library or executable." @@ -1092,7 +1090,7 @@ msgstr "" "Renvoie l'option de compilation pour ajouter *lib* à la liste des " "bibliothèques liées à la bibliothèque partagée ou à l'exécutable." -#: ../Doc/distutils/apiref.rst:550 +#: distutils/apiref.rst:550 msgid "" "Return the compiler option to add *dir* to the list of directories searched " "for runtime libraries." @@ -1100,7 +1098,7 @@ msgstr "" "Renvoie l'option de compilation pour ajouter *dir* à la liste des " "répertoires recherchés par les bibliothèques d'exécution." -#: ../Doc/distutils/apiref.rst:556 +#: distutils/apiref.rst:556 msgid "" "Define the executables (and options for them) that will be run to perform " "the various stages of compilation. The exact set of executables that may be " @@ -1113,45 +1111,45 @@ msgstr "" "compilateur (via l'attribut de classe *executables*), mais la plupart " "utilisent :" -#: ../Doc/distutils/apiref.rst:562 +#: distutils/apiref.rst:562 msgid "attribute" msgstr "attribut" -#: ../Doc/distutils/apiref.rst:564 +#: distutils/apiref.rst:564 msgid "*compiler*" msgstr "*compiler*" -#: ../Doc/distutils/apiref.rst:564 +#: distutils/apiref.rst:564 msgid "the C/C++ compiler" msgstr "Le compilateur C/C++." -#: ../Doc/distutils/apiref.rst:566 +#: distutils/apiref.rst:566 msgid "*linker_so*" msgstr "*linker_so*" -#: ../Doc/distutils/apiref.rst:566 +#: distutils/apiref.rst:566 msgid "linker used to create shared objects and libraries" msgstr "" "L'éditeur de liens utilisé pour la création d'objets ou de bibliothèques " "partagées." -#: ../Doc/distutils/apiref.rst:569 +#: distutils/apiref.rst:569 msgid "*linker_exe*" msgstr "*linker_exe*" -#: ../Doc/distutils/apiref.rst:569 +#: distutils/apiref.rst:569 msgid "linker used to create binary executables" msgstr "L'éditeur de lien utilisé pour créer des exécutables binaires." -#: ../Doc/distutils/apiref.rst:571 +#: distutils/apiref.rst:571 msgid "*archiver*" msgstr "*archiver*" -#: ../Doc/distutils/apiref.rst:571 +#: distutils/apiref.rst:571 msgid "static library creator" msgstr "Créateur de bibliothèque statique." -#: ../Doc/distutils/apiref.rst:574 +#: distutils/apiref.rst:574 msgid "" "On platforms with a command-line (Unix, DOS/Windows), each of these is a " "string that will be split into executable name and (optional) list of " @@ -1167,13 +1165,13 @@ msgstr "" "guillemets et les antislashs permettent de les ignorer. Voir :func:" "`distutils.util.split_quoted`." -#: ../Doc/distutils/apiref.rst:580 +#: distutils/apiref.rst:580 msgid "The following methods invoke stages in the build process." msgstr "" "Les méthodes suivantes permettent d'exécuter des étapes lors de processus de " "construction." -#: ../Doc/distutils/apiref.rst:585 +#: distutils/apiref.rst:585 msgid "" "Compile one or more source files. Generates object files (e.g. transforms " "a :file:`.c` file to a :file:`.o` file.)" @@ -1181,7 +1179,7 @@ msgstr "" "Compile un ou plusieurs fichiers source. Génère des fichiers objets (par " "exemple, transforme un fichier :file:`.c` en fichier :file:`.o`)." -#: ../Doc/distutils/apiref.rst:588 +#: distutils/apiref.rst:588 msgid "" "*sources* must be a list of filenames, most likely C/C++ files, but in " "reality anything that can be handled by a particular compiler and compiler " @@ -1198,7 +1196,7 @@ msgstr "" "les cas, tous les fichiers source ne seront pas forcément compilés, mais " "tous les noms de fichiers objet correspondants seront renvoyés." -#: ../Doc/distutils/apiref.rst:595 +#: distutils/apiref.rst:595 msgid "" "If *output_dir* is given, object files will be put under it, while retaining " "their original path component. That is, :file:`foo/bar.c` normally compiles " @@ -1211,7 +1209,7 @@ msgstr "" "implémentation Unix) ; si *output_dir* a la valeur *build*, alors il " "compilera en :file:`build/truc/machin.o`." -#: ../Doc/distutils/apiref.rst:600 +#: distutils/apiref.rst:600 msgid "" "*macros*, if given, must be a list of macro definitions. A macro definition " "is either a ``(name, value)`` 2-tuple or a ``(name,)`` 1-tuple. The former " @@ -1226,7 +1224,7 @@ msgstr "" "singleton désactive la macro. Les définitions, redéfinitions ou " "désactivations ultérieures priment." -#: ../Doc/distutils/apiref.rst:606 +#: distutils/apiref.rst:606 msgid "" "*include_dirs*, if given, must be a list of strings, the directories to add " "to the default include file search path for this compilation only." @@ -1235,7 +1233,7 @@ msgstr "" "répertoires à ajouter au chemin de recherche par défaut pour cette " "compilation uniquement." -#: ../Doc/distutils/apiref.rst:609 +#: distutils/apiref.rst:609 msgid "" "*debug* is a boolean; if true, the compiler will be instructed to output " "debug symbols in (or alongside) the object file(s)." @@ -1244,7 +1242,7 @@ msgstr "" "d'afficher les symboles de débogage dans (ou à côté) du ou des fichiers " "objets." -#: ../Doc/distutils/apiref.rst:612 +#: distutils/apiref.rst:612 msgid "" "*extra_preargs* and *extra_postargs* are implementation-dependent. On " "platforms that have the notion of a command-line (e.g. Unix, DOS/Windows), " @@ -1262,7 +1260,7 @@ msgstr "" "la documentation de la classe d'implémentation. Ces paramètres sont exposés " "pour permettre de sortir du cadre de la classe abstraite en cas de nécessité." -#: ../Doc/distutils/apiref.rst:619 +#: distutils/apiref.rst:619 msgid "" "*depends*, if given, is a list of filenames that all targets depend on. If " "a source file is older than any file in depends, then the source file will " @@ -1274,11 +1272,11 @@ msgstr "" "alors le fichier source sera recompilé. Cela permet un suivi des " "dépendances à un niveau macro. " -#: ../Doc/distutils/apiref.rst:624 +#: distutils/apiref.rst:624 msgid "Raises :exc:`CompileError` on failure." msgstr "Lève :exc:`CompileError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:629 +#: distutils/apiref.rst:629 msgid "" "Link a bunch of stuff together to create a static library file. The \"bunch " "of stuff\" consists of the list of object files supplied as *objects*, the " @@ -1293,7 +1291,7 @@ msgstr "" "à :meth:`add_library` et/ou :meth:`set_libraries` et les bibliothèques " "fournies à *libraries* (le cas échéant)." -#: ../Doc/distutils/apiref.rst:635 +#: distutils/apiref.rst:635 msgid "" "*output_libname* should be a library name, not a filename; the filename will " "be inferred from the library name. *output_dir* is the directory where the " @@ -1303,7 +1301,7 @@ msgstr "" "le nom de fichier sera déduit du nom de bibliothèque. *output_dir* est le " "répertoire dans lequel le fichier bibliothèque sera placé." -#: ../Doc/distutils/apiref.rst:641 +#: distutils/apiref.rst:641 msgid "" "*debug* is a boolean; if true, debugging information will be included in the " "library (note that on most platforms, it is the compile step where this " @@ -1312,9 +1310,9 @@ msgstr "" "*debug* est un booléen ; si sa valeur est *vraie*, les informations de " "débogage seront incluses dans la bibliothèque (notez que sur la plupart des " "plateformes, c'est à l'étape de compilation que ce paramètre est pris en " -"compte : le paramètre *debug* est inclus ici pour assurer une cohérence)." +"compte : le paramètre *debug* est inclus ici pour assurer une cohérence)." -#: ../Doc/distutils/apiref.rst:645 ../Doc/distutils/apiref.rst:687 +#: distutils/apiref.rst:687 msgid "" "*target_lang* is the target language for which the given objects are being " "compiled. This allows specific linkage time treatment of certain languages." @@ -1323,11 +1321,11 @@ msgstr "" "compilés. Cela permet un traitement spécifique du temps de liaison dans " "certains langages." -#: ../Doc/distutils/apiref.rst:648 +#: distutils/apiref.rst:648 msgid "Raises :exc:`LibError` on failure." msgstr "Lève :exc:`LibError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:653 +#: distutils/apiref.rst:653 msgid "" "Link a bunch of stuff together to create an executable or shared library " "file." @@ -1335,7 +1333,7 @@ msgstr "" "Relie un ensemble d'éléments pour créer un fichier exécutable ou une " "bibliothèque partagée." -#: ../Doc/distutils/apiref.rst:655 +#: distutils/apiref.rst:655 msgid "" "The \"bunch of stuff\" consists of the list of object files supplied as " "*objects*. *output_filename* should be a filename. If *output_dir* is " @@ -1347,7 +1345,7 @@ msgstr "" "*output_dir* est fourni, *output_filename* lui est relatif (c'est-à-dire que " "*output_filename* peut être un chemin vers un fichier )." -#: ../Doc/distutils/apiref.rst:660 +#: distutils/apiref.rst:660 msgid "" "*libraries* is a list of libraries to link against. These are library " "names, not filenames, since they're translated into filenames in a platform-" @@ -1364,15 +1362,15 @@ msgstr "" "inclure un chemin, ce qui signifie que l'éditeur de liens cherchera dans ce " "chemin spécifique plutôt que de rechercher tous les emplacements standard." -#: ../Doc/distutils/apiref.rst:667 +#: distutils/apiref.rst:667 msgid "" "*library_dirs*, if supplied, should be a list of directories to search for " "libraries that were specified as bare library names (ie. no directory " "component). These are on top of the system default and those supplied to :" "meth:`add_library_dir` and/or :meth:`set_library_dirs`. " "*runtime_library_dirs* is a list of directories that will be embedded into " -"the shared library and used to search for other shared libraries that \\*it" -"\\* depends on at run-time. (This may only be relevant on Unix.)" +"the shared library and used to search for other shared libraries that " +"\\*it\\* depends on at run-time. (This may only be relevant on Unix.)" msgstr "" "*library_dirs*, s'il est fourni, doit être une liste de répertoires à " "rechercher pour les bibliothèques qui ont été spécifiées comme des " @@ -1384,7 +1382,7 @@ msgstr "" "elle dépend à l'exécution. (Ceci est probablement valable uniquement sous " "UNIX.)" -#: ../Doc/distutils/apiref.rst:675 +#: distutils/apiref.rst:675 msgid "" "*export_symbols* is a list of symbols that the shared library will export. " "(This appears to be relevant only on Windows.)" @@ -1392,7 +1390,7 @@ msgstr "" "*export_symbols* est une liste de symboles que la bibliothèque partagée va " "exporter. (Ceci est probablement valable uniquement sous Window.)" -#: ../Doc/distutils/apiref.rst:678 +#: distutils/apiref.rst:678 msgid "" "*debug* is as for :meth:`compile` and :meth:`create_static_lib`, with the " "slight distinction that it actually matters on most platforms (as opposed " @@ -1404,7 +1402,7 @@ msgstr "" "(par opposition à :meth:`create_static_lib` qui inclut une option *debug* " "pour se conformer à l'interface)." -#: ../Doc/distutils/apiref.rst:683 +#: distutils/apiref.rst:683 msgid "" "*extra_preargs* and *extra_postargs* are as for :meth:`compile` (except of " "course that they supply command-line arguments for the particular linker " @@ -1414,11 +1412,11 @@ msgstr "" "(sauf bien sûr qu'ils fournissent des arguments à la ligne de commande pour " "l'éditeur de liens spécifique utilisé)." -#: ../Doc/distutils/apiref.rst:690 +#: distutils/apiref.rst:690 msgid "Raises :exc:`LinkError` on failure." msgstr "Lève :exc:`LinkError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:695 +#: distutils/apiref.rst:695 msgid "" "Link an executable. *output_progname* is the name of the file executable, " "while *objects* are a list of object filenames to link in. Other arguments " @@ -1428,7 +1426,7 @@ msgstr "" "tandis que *objects* est une liste de noms de fichiers objets à lier. Les " "autres arguments sont les mêmes que pour la méthode :meth:`link`." -#: ../Doc/distutils/apiref.rst:702 +#: distutils/apiref.rst:702 msgid "" "Link a shared library. *output_libname* is the name of the output library, " "while *objects* is a list of object filenames to link in. Other arguments " @@ -1439,7 +1437,7 @@ msgstr "" "fichiers d'objets à lier. Les autres arguments sont les mêmes que pour la " "méthode :meth:`link`." -#: ../Doc/distutils/apiref.rst:709 +#: distutils/apiref.rst:709 msgid "" "Link a shared object. *output_filename* is the name of the shared object " "that will be created, while *objects* is a list of object filenames to link " @@ -1449,7 +1447,7 @@ msgstr "" "sera créé, tandis que *objects* est une liste de noms de fichiers d'objets à " "lier. Les autres arguments sont les mêmes que pour la méthode :meth:`link`." -#: ../Doc/distutils/apiref.rst:716 +#: distutils/apiref.rst:716 msgid "" "Preprocess a single C/C++ source file, named in *source*. Output will be " "written to file named *output_file*, or *stdout* if *output_file* not " @@ -1466,11 +1464,11 @@ msgstr "" "*include_dirs* est une liste de noms de répertoires qui seront ajoutés à la " "liste par défaut, de la même manière que :meth:`add_include_dir`." -#: ../Doc/distutils/apiref.rst:723 +#: distutils/apiref.rst:723 msgid "Raises :exc:`PreprocessError` on failure." msgstr "Lève :exc:`PreprocessError` en cas d'échec." -#: ../Doc/distutils/apiref.rst:725 +#: distutils/apiref.rst:725 msgid "" "The following utility methods are defined by the :class:`CCompiler` class, " "for use by the various concrete subclasses." @@ -1478,7 +1476,7 @@ msgstr "" "Les méthodes utilitaires suivantes sont définies par la classe :class:" "`CCompiler`, à l'usage des différentes sous-classes concrètes." -#: ../Doc/distutils/apiref.rst:731 +#: distutils/apiref.rst:731 msgid "" "Returns the filename of the executable for the given *basename*. Typically " "for non-Windows platforms this is the same as the basename, while Windows " @@ -1488,7 +1486,7 @@ msgstr "" "Généralement, pour les plates-formes non Windows, c'est le même nom que le " "nom de base, tandis que sur Windows l'extension :file:`.exe` sera ajouté." -#: ../Doc/distutils/apiref.rst:738 +#: distutils/apiref.rst:738 msgid "" "Returns the filename for the given library name on the current platform. On " "Unix a library with *lib_type* of ``'static'`` will typically be of the " @@ -1500,7 +1498,7 @@ msgstr "" "``static`` sera généralement de la forme :file:`liblibname.a`, tandis qu'un " "*lib_type* de type ``dynamic`` sera de la forme :file:`liblibname.so`." -#: ../Doc/distutils/apiref.rst:746 +#: distutils/apiref.rst:746 msgid "" "Returns the name of the object files for the given source files. " "*source_filenames* should be a list of filenames." @@ -1508,13 +1506,13 @@ msgstr "" "Renvoie le nom des fichiers objets pour les fichiers sources donnés. " "*source_filenames* doit être une liste de noms de fichiers." -#: ../Doc/distutils/apiref.rst:752 +#: distutils/apiref.rst:752 msgid "" "Returns the name of a shared object file for the given file name *basename*." msgstr "" "Renvoie le nom d'un fichier objet partagé pour le nom de fichier *basename*." -#: ../Doc/distutils/apiref.rst:757 +#: distutils/apiref.rst:757 msgid "" "Invokes :func:`distutils.util.execute`. This method invokes a Python " "function *func* with the given arguments *args*, after logging and taking " @@ -1524,7 +1522,7 @@ msgstr "" "Python *func* avec les arguments *args* , après journalisation et prise en " "compte de l'option *dry_run*." -#: ../Doc/distutils/apiref.rst:764 +#: distutils/apiref.rst:764 msgid "" "Invokes :func:`distutils.util.spawn`. This invokes an external process to " "run the given command." @@ -1532,7 +1530,7 @@ msgstr "" "Invoque :func:`distutils.util.spawn`. Invoque un processus externe pour " "exécuter la commande donnée." -#: ../Doc/distutils/apiref.rst:770 +#: distutils/apiref.rst:770 msgid "" "Invokes :func:`distutils.dir_util.mkpath`. This creates a directory and any " "missing ancestor directories." @@ -1540,20 +1538,20 @@ msgstr "" "Invoque :func:`distutils.dir_util.mkpath`. Crée un répertoire et tous les " "répertoires parents manquants." -#: ../Doc/distutils/apiref.rst:776 +#: distutils/apiref.rst:776 msgid "Invokes :meth:`distutils.file_util.move_file`. Renames *src* to *dst*." msgstr "Invoque :meth:`distutils.file_util.move_file`. Renomme *src* en *dst*." -#: ../Doc/distutils/apiref.rst:781 +#: distutils/apiref.rst:781 msgid "Write a message using :func:`distutils.log.debug`." msgstr "Écrit un message en utilisant :func:`distutils.log.debug`." -#: ../Doc/distutils/apiref.rst:786 +#: distutils/apiref.rst:786 msgid "Write a warning message *msg* to standard error." msgstr "" "Écris un message d'avertissement *msg* dans la sortie d'erreur standard." -#: ../Doc/distutils/apiref.rst:791 +#: distutils/apiref.rst:791 msgid "" "If the *debug* flag is set on this :class:`CCompiler` instance, print *msg* " "to standard output, otherwise do nothing." @@ -1561,11 +1559,11 @@ msgstr "" "Si l'option *debug* est activée pour cette instance de :class:`CCompiler`, " "affiche *msg* sur la sortie standard, sinon rien ne s'affiche." -#: ../Doc/distutils/apiref.rst:803 +#: distutils/apiref.rst:803 msgid ":mod:`distutils.unixccompiler` --- Unix C Compiler" msgstr ":mod:`distutils.unixccompiler` — Compilateur C Unix" -#: ../Doc/distutils/apiref.rst:809 +#: distutils/apiref.rst:809 msgid "" "This module provides the :class:`UnixCCompiler` class, a subclass of :class:" "`CCompiler` that handles the typical Unix-style command-line C compiler:" @@ -1574,30 +1572,30 @@ msgstr "" "classe :class:`CCompiler` qui gère les compilateurs C ayant une interface en " "ligne de commande conforme au standard Unix :" -#: ../Doc/distutils/apiref.rst:812 +#: distutils/apiref.rst:812 msgid "macros defined with :option:`!-Dname[=value]`" msgstr "macros définies avec l'option :option:`!-Dname[=value]`." -#: ../Doc/distutils/apiref.rst:814 +#: distutils/apiref.rst:814 msgid "macros undefined with :option:`!-Uname`" msgstr "macros désaffectées avec :option:`!-Uname`." -#: ../Doc/distutils/apiref.rst:816 +#: distutils/apiref.rst:816 msgid "include search directories specified with :option:`!-Idir`" msgstr "" "inclut les répertoires de recherche spécifiés avec l'option :option:`!-Idir`." -#: ../Doc/distutils/apiref.rst:818 +#: distutils/apiref.rst:818 msgid "libraries specified with :option:`!-llib`" msgstr "bibliothèques spécifiées avec l'option :option:`!-llib`" -#: ../Doc/distutils/apiref.rst:820 +#: distutils/apiref.rst:820 msgid "library search directories specified with :option:`!-Ldir`" msgstr "" "répertoires de recherche des bibliothèques définis avec l'option :option:`!-" "Ldir`." -#: ../Doc/distutils/apiref.rst:822 +#: distutils/apiref.rst:822 msgid "" "compile handled by :program:`cc` (or similar) executable with :option:`!-c` " "option: compiles :file:`.c` to :file:`.o`" @@ -1605,7 +1603,7 @@ msgstr "" "compilation gérée par :program:`cc` (ou similaire) exécutable avec l'option :" "option:`!-c` compile :file:`.c` vers :file:`.o`." -#: ../Doc/distutils/apiref.rst:825 +#: distutils/apiref.rst:825 msgid "" "link static library handled by :program:`ar` command (possibly with :program:" "`ranlib`)" @@ -1614,17 +1612,17 @@ msgstr "" "ligne de commande :program:`ar` (éventuellement avec le programme :program:" "`ranlib`)." -#: ../Doc/distutils/apiref.rst:828 +#: distutils/apiref.rst:828 msgid "link shared library handled by :program:`cc` :option:`!-shared`" msgstr "" "édition de liens pour une bibliothèque gérée par :program:`cc` :option:`!-" "shared`." -#: ../Doc/distutils/apiref.rst:832 +#: distutils/apiref.rst:832 msgid ":mod:`distutils.msvccompiler` --- Microsoft Compiler" msgstr ":mod:`distutils.msvccompiler` — Compilateur Microsoft" -#: ../Doc/distutils/apiref.rst:839 +#: distutils/apiref.rst:839 msgid "" "This module provides :class:`MSVCCompiler`, an implementation of the " "abstract :class:`CCompiler` class for Microsoft Visual Studio. Typically, " @@ -1639,7 +1637,7 @@ msgstr "" "le compilateur était Visual Studio 6. Pour Python 2.4 et 2.5, le compilateur " "est Visual Studio .NET 2003." -#: ../Doc/distutils/apiref.rst:845 +#: distutils/apiref.rst:845 msgid "" ":class:`MSVCCompiler` will normally choose the right compiler, linker etc. " "on its own. To override this choice, the environment variables " @@ -1659,11 +1657,11 @@ msgstr "" "choisi explicitement de remplacer le compilateur utilisé par :class:" "`MSVCCompiler`." -#: ../Doc/distutils/apiref.rst:855 +#: distutils/apiref.rst:855 msgid ":mod:`distutils.bcppcompiler` --- Borland Compiler" msgstr ":mod:`distutils.bcppcompiler` — Compilateur Borland" -#: ../Doc/distutils/apiref.rst:860 +#: distutils/apiref.rst:860 msgid "" "This module provides :class:`BorlandCCompiler`, a subclass of the abstract :" "class:`CCompiler` class for the Borland C++ compiler." @@ -1671,11 +1669,11 @@ msgstr "" "Ce module fournit :class:`BorlandCCompiler`, une sous-classe de la classe " "abstraite :class:`CCompiler` classe pour le compilateur Borland C++." -#: ../Doc/distutils/apiref.rst:865 +#: distutils/apiref.rst:865 msgid ":mod:`distutils.cygwincompiler` --- Cygwin Compiler" msgstr ":mod:`distutils.cygwincompiler` — Compilateur Cygwin" -#: ../Doc/distutils/apiref.rst:870 +#: distutils/apiref.rst:870 msgid "" "This module provides the :class:`CygwinCCompiler` class, a subclass of :" "class:`UnixCCompiler` that handles the Cygwin port of the GNU C compiler to " @@ -1687,11 +1685,11 @@ msgstr "" "GNU C sur Windows. Il contient également la classe Mingw32CCompiler qui " "gère le portage *mingw32* de GCC (comme *cygwin* en mode *no-cygwin*)." -#: ../Doc/distutils/apiref.rst:877 +#: distutils/apiref.rst:877 msgid ":mod:`distutils.archive_util` --- Archiving utilities" msgstr ":mod:`distutils.archive_util` — Utilitaires d'archivage" -#: ../Doc/distutils/apiref.rst:883 +#: distutils/apiref.rst:883 msgid "" "This module provides a few functions for creating archive files, such as " "tarballs or zipfiles." @@ -1699,7 +1697,7 @@ msgstr "" "Ce module fournit quelques fonctions pour créer des fichiers d'archive, tels " "que des archives aux formats *tarballs* ou *zipfiles*." -#: ../Doc/distutils/apiref.rst:889 +#: distutils/apiref.rst:889 msgid "" "Create an archive file (eg. ``zip`` or ``tar``). *base_name* is the name " "of the file to create, minus any format-specific extension; *format* is the " @@ -1713,7 +1711,7 @@ msgid "" msgstr "" "Crée un fichier d'archive (par exemple ``zip`` ou ``tar``). *base_name* est " "le nom du fichier à créer, sans extension spécifique indiquant le format. " -"*format* est le format d'archive : un parmi ``zip``, ``tar``, ``gztar``, " +"*format* est le format d'archive : un parmi ``zip``, ``tar``, ``gztar``, " "``bztar``, ``xztar``, ``xztar``, ou ``ztar``. *root_dir* est un répertoire " "qui sera le répertoire racine de l'archive ; c'est-à-dire que le programme " "se positionne dans *root_dir* avant de créer l'archive. *base_dir* est le " @@ -1722,11 +1720,11 @@ msgstr "" "*root_dir* et *base_dir* sont tous deux par défaut dans le répertoire " "courant. Renvoie le nom du fichier archive." -#: ../Doc/distutils/apiref.rst:899 +#: distutils/apiref.rst:899 msgid "Added support for the ``xztar`` format." msgstr "Ajout du support des fichiers ``xztar``." -#: ../Doc/distutils/apiref.rst:905 +#: distutils/apiref.rst:905 msgid "" "'Create an (optional compressed) archive as a tar file from all files in and " "under *base_dir*. *compress* must be ``'gzip'`` (the default), ``'bzip2'``, " @@ -1746,11 +1744,11 @@ msgstr "" "nommé :file:`base_dir.tar`, avec l'extension de compression appropriée (``." "gz``, ``.bz2``, ``.xz`` ou ``.Z``). Renvoie le nom du fichier de sortie." -#: ../Doc/distutils/apiref.rst:914 +#: distutils/apiref.rst:914 msgid "Added support for the ``xz`` compression." msgstr "Ajout du support de la compression ``xz``." -#: ../Doc/distutils/apiref.rst:920 +#: distutils/apiref.rst:920 msgid "" "Create a zip file from all files in and under *base_dir*. The output zip " "file will be named *base_name* + :file:`.zip`. Uses either the :mod:" @@ -1766,11 +1764,11 @@ msgstr "" "défaut). Si aucun des deux outils n'est disponible, lève :exc:" "`DistutilsExecError`. Renvoie le nom du fichier zip de sortie." -#: ../Doc/distutils/apiref.rst:928 +#: distutils/apiref.rst:928 msgid ":mod:`distutils.dep_util` --- Dependency checking" msgstr ":mod:`distutils.dep_util` — Vérification des dépendances" -#: ../Doc/distutils/apiref.rst:934 +#: distutils/apiref.rst:934 msgid "" "This module provides functions for performing simple, timestamp-based " "dependency of files and groups of files; also, functions based entirely on " @@ -1781,7 +1779,7 @@ msgstr "" "fichiers, ainsi que des fonctionnalités entièrement basées sur ces analyses " "de dépendance par rapport aux horodatages." -#: ../Doc/distutils/apiref.rst:941 +#: distutils/apiref.rst:941 msgid "" "Return true if *source* exists and is more recently modified than *target*, " "or if *source* exists and *target* doesn't. Return false if both exist and " @@ -1793,7 +1791,7 @@ msgstr "" "valeur *false* si les deux existent et que *target* est aussi ou plus récent " "que *source*. Lève :exc:`DistutilsFileError` si *source* n'existe pas." -#: ../Doc/distutils/apiref.rst:949 +#: distutils/apiref.rst:949 msgid "" "Walk two filename lists in parallel, testing if each source is newer than " "its corresponding target. Return a pair of lists (*sources*, *targets*) " @@ -1805,7 +1803,7 @@ msgstr "" "paire de listes (*sources*, *cibles*) où la source est plus récente que la " "cible, selon la sémantique de :func:`newer`." -#: ../Doc/distutils/apiref.rst:958 +#: distutils/apiref.rst:958 msgid "" "Return true if *target* is out-of-date with respect to any file listed in " "*sources*. In other words, if *target* exists and is newer than every file " @@ -1826,16 +1824,16 @@ msgstr "" "est de lever une exception :exc:`OSError` à l'intérieur de :func:`os.stat` ; " "si *missing* vaut ``'ignore'``,tout fichier source manquant est ignoré. Si " "*missing* vaut ``'newer'``, tout fichier source manquant indique que " -"*target* n'est plus à jour (ce qui est utile en mode *dry-run* : cela permet " +"*target* n'est plus à jour (ce qui est utile en mode *dry-run* : cela permet " "d'exécuter des commandes qui ne fonctionneraient pas parce que des entrées " "sont manquantes sans les exécuter réellement)." -#: ../Doc/distutils/apiref.rst:971 +#: distutils/apiref.rst:971 msgid ":mod:`distutils.dir_util` --- Directory tree operations" msgstr "" -":mod:`distutils.dir_util` --- Opérations sur l'arborescence des répertoires" +":mod:`distutils.dir_util` — Opérations sur l'arborescence des répertoires" -#: ../Doc/distutils/apiref.rst:977 +#: distutils/apiref.rst:977 msgid "" "This module provides functions for operating on directories and trees of " "directories." @@ -1843,7 +1841,7 @@ msgstr "" "Ce module fournit des fonctions pour travailler sur des répertoires et des " "arborescences de répertoires." -#: ../Doc/distutils/apiref.rst:983 +#: distutils/apiref.rst:983 msgid "" "Create a directory and any missing ancestor directories. If the directory " "already exists (or if *name* is the empty string, which means the current " @@ -1862,7 +1860,7 @@ msgstr "" "chaque *mkdir* vers *stdout*. Renvoie la liste des répertoires réellement " "créés." -#: ../Doc/distutils/apiref.rst:994 +#: distutils/apiref.rst:994 msgid "" "Create all the empty directories under *base_dir* needed to put *files* " "there. *base_dir* is just the name of a directory which doesn't necessarily " @@ -1878,7 +1876,7 @@ msgstr "" "est créée si elle n'existe pas déjà. Les options *mode*, *verbose* et " "*dry_run* sont les mêmes que pour :func:`mkpath`." -#: ../Doc/distutils/apiref.rst:1004 +#: distutils/apiref.rst:1004 msgid "" "Copy an entire directory tree *src* to a new location *dst*. Both *src* and " "*dst* must be directory names. If *src* is not a directory, raise :exc:" @@ -1898,11 +1896,11 @@ msgstr "" "est copié dans *dst*, et les répertoires sous *src* sont récursivement " "copiés dans *dst*. Renvoie la liste des fichiers qui ont été copiés ou qui " "auraient pu l'être, en utilisant leur nom de sortie. La valeur renvoyée " -"n'est pas affectée par *update* ou *dry_run* : c'est tout simplement la " +"n'est pas affectée par *update* ou *dry_run* : c'est tout simplement la " "liste de tous les fichiers sous *src*, avec les noms modifiés pour être sous " "*dst*." -#: ../Doc/distutils/apiref.rst:1014 +#: distutils/apiref.rst:1014 msgid "" "*preserve_mode* and *preserve_times* are the same as for :func:`distutils." "file_util.copy_file`; note that they only apply to regular files, not to " @@ -1919,7 +1917,7 @@ msgstr "" "lien sera copiée. *update* et *verbose* sont les mêmes que pour :func:" "`copy_file`." -#: ../Doc/distutils/apiref.rst:1022 +#: distutils/apiref.rst:1022 msgid "" "Files in *src* that begin with :file:`.nfs` are skipped (more information on " "these files is available in answer D2 of the `NFS FAQ page `_)." -#: ../Doc/distutils/apiref.rst:1026 +#: distutils/apiref.rst:1026 msgid "NFS files are ignored." msgstr "Les fichiers NFS sont ignorés." -#: ../Doc/distutils/apiref.rst:1031 +#: distutils/apiref.rst:1031 msgid "" "Recursively remove *directory* and all files and directories underneath it. " "Any errors are ignored (apart from being reported to ``sys.stdout`` if " @@ -1943,11 +1941,11 @@ msgstr "" "dessous. Toutes les erreurs sont ignorées (sauf si *verbose* est vrai, elles " "sont affichées sur ``sys.stdout``)." -#: ../Doc/distutils/apiref.rst:1037 +#: distutils/apiref.rst:1037 msgid ":mod:`distutils.file_util` --- Single file operations" msgstr ":mod:`distutils.file_util` — Traitements mono-fichier" -#: ../Doc/distutils/apiref.rst:1043 +#: distutils/apiref.rst:1043 msgid "" "This module contains some utility functions for operating on individual " "files." @@ -1955,7 +1953,7 @@ msgstr "" "Ce module contient quelques fonctions de service pour travailler sur des " "fichiers individuels." -#: ../Doc/distutils/apiref.rst:1048 +#: distutils/apiref.rst:1048 msgid "" "Copy file *src* to *dst*. If *dst* is a directory, then *src* is copied " "there with the same name; otherwise, it must be a filename. (If the file " @@ -1975,7 +1973,7 @@ msgstr "" "*update* est vrai, *src* ne peut être copié que si *dst* n'existe pas, ou si " "*dst* existe mais est plus ancien que *src*." -#: ../Doc/distutils/apiref.rst:1057 +#: distutils/apiref.rst:1057 msgid "" "*link* allows you to make hard links (using :func:`os.link`) or symbolic " "links (using :func:`os.symlink`) instead of copying: set it to ``'hard'`` or " @@ -1985,24 +1983,24 @@ msgid "" "to copy file contents." msgstr "" "*link* permets de créer des liens physiques (en utilisant :func:`os.link`) " -"ou symboliques (en utilisant :func:`os.symlink`) au lieu de les copier : " +"ou symboliques (en utilisant :func:`os.symlink`) au lieu de les copier : " "paramétrez la valeur a ``'hard'`` ou ``'sym'`` ; si elle vaut ``None`` (par " "défaut), les fichiers sont copiés. Ne définissez pas *link* sur les systèmes " -"qui ne les gèrent pas : :func:`copy_file` ne vérifie pas si des liens " +"qui ne les gèrent pas : :func:`copy_file` ne vérifie pas si des liens " "symboliques ou physiques sont disponibles. La fonction :func:" "`_copy_file_contents` est utilisée pour copier le contenu des fichiers." -#: ../Doc/distutils/apiref.rst:1064 +#: distutils/apiref.rst:1064 msgid "" "Return a tuple ``(dest_name, copied)``: *dest_name* is the actual name of " "the output file, and *copied* is true if the file was copied (or would have " "been copied, if *dry_run* true)." msgstr "" -"Renvoie un couple ``(dest_name, copied)`` : *dest_name* est le nom réel du " +"Renvoie un couple ``(dest_name, copied)`` : *dest_name* est le nom réel du " "fichier de sortie, et *copied* est vrai si le fichier a été copié (ou aurait " "été copié, si *dry_run* est vrai)." -#: ../Doc/distutils/apiref.rst:1078 +#: distutils/apiref.rst:1078 msgid "" "Move file *src* to *dst*. If *dst* is a directory, the file will be moved " "into it with the same name; otherwise, *src* is just renamed to *dst*. " @@ -2012,7 +2010,7 @@ msgstr "" "y est déplacé avec le même nom ; sinon, *src* est simplement renommé *dst*. " "Renvoie le nouveau nom complet du fichier." -#: ../Doc/distutils/apiref.rst:1084 +#: distutils/apiref.rst:1084 msgid "" "Handles cross-device moves on Unix using :func:`copy_file`. What about " "other systems?" @@ -2020,7 +2018,7 @@ msgstr "" "Gère les déplacements inter-périphériques sous Unix en utilisant :func:" "`copy_file`. Qu'en est-il sur les autres systèmes ?" -#: ../Doc/distutils/apiref.rst:1090 +#: distutils/apiref.rst:1090 msgid "" "Create a file called *filename* and write *contents* (a sequence of strings " "without line terminators) to it." @@ -2028,11 +2026,11 @@ msgstr "" "Crée un fichier appelé *filename* et y écrit *contents* (une séquence de " "chaînes sans terminaison de ligne)." -#: ../Doc/distutils/apiref.rst:1095 +#: distutils/apiref.rst:1095 msgid ":mod:`distutils.util` --- Miscellaneous other utility functions" msgstr ":mod:`distutils.util` — Autres fonctions de service" -#: ../Doc/distutils/apiref.rst:1101 +#: distutils/apiref.rst:1101 msgid "" "This module contains other assorted bits and pieces that don't fit into any " "other utility module." @@ -2040,7 +2038,7 @@ msgstr "" "Ce module contient d'autres éléments qui ne correspondent à aucun autre " "module de service." -#: ../Doc/distutils/apiref.rst:1107 +#: distutils/apiref.rst:1107 msgid "" "Return a string that identifies the current platform. This is used mainly " "to distinguish platform-specific build directories and platform-specific " @@ -2057,29 +2055,29 @@ msgstr "" "l'information exacte dépend de l'OS, par exemple, sous Linux, la version " "noyau ne joue pas un grand rôle." -#: ../Doc/distutils/apiref.rst:1114 +#: distutils/apiref.rst:1114 msgid "Examples of returned values:" msgstr "Exemples de valeurs renvoyées :" -#: ../Doc/distutils/apiref.rst:1116 +#: distutils/apiref.rst:1116 msgid "``linux-i586``" msgstr "``linux-i586``" -#: ../Doc/distutils/apiref.rst:1117 +#: distutils/apiref.rst:1117 msgid "``linux-alpha``" msgstr "``linux-alpha``" -#: ../Doc/distutils/apiref.rst:1118 +#: distutils/apiref.rst:1118 msgid "``solaris-2.6-sun4u``" msgstr "``solaris-2.6-sun4u``" -#: ../Doc/distutils/apiref.rst:1120 +#: distutils/apiref.rst:1120 msgid "For non-POSIX platforms, currently just returns ``sys.platform``." msgstr "" "Pour les plates-formes qui ne sont pas POSIX, renvoie simplement ``sys." "platform``." -#: ../Doc/distutils/apiref.rst:1122 +#: distutils/apiref.rst:1122 msgid "" "For Mac OS X systems the OS version reflects the minimal version on which " "binaries will run (that is, the value of ``MACOSX_DEPLOYMENT_TARGET`` during " @@ -2090,7 +2088,7 @@ msgstr "" "(c'est-à-dire la valeur de ``MACOSX_DEPLOYMENT_TARGET`` pendant la " "compilation de Python), et non la version du système actuel." -#: ../Doc/distutils/apiref.rst:1126 +#: distutils/apiref.rst:1126 msgid "" "For universal binary builds on Mac OS X the architecture value reflects the " "universal binary status instead of the architecture of the current " @@ -2111,27 +2109,27 @@ msgstr "" "voies (*ppc*, *i386*, *x86_64*) et ``intel`` est utilisée pour une " "compilation universelle avec les architectures *i386* et *x86_64*" -#: ../Doc/distutils/apiref.rst:1135 +#: distutils/apiref.rst:1135 msgid "Examples of returned values on Mac OS X:" msgstr "Exemples de valeurs renvoyées sous Mac OS X :" -#: ../Doc/distutils/apiref.rst:1137 +#: distutils/apiref.rst:1137 msgid "``macosx-10.3-ppc``" msgstr "``macosx-10.3-ppc``" -#: ../Doc/distutils/apiref.rst:1139 +#: distutils/apiref.rst:1139 msgid "``macosx-10.3-fat``" msgstr "``macosx-10.3-fat``" -#: ../Doc/distutils/apiref.rst:1141 +#: distutils/apiref.rst:1141 msgid "``macosx-10.5-universal``" msgstr "``macosx-10.5-universal``" -#: ../Doc/distutils/apiref.rst:1143 +#: distutils/apiref.rst:1143 msgid "``macosx-10.6-intel``" msgstr "``macosx-10.6-intel``" -#: ../Doc/distutils/apiref.rst:1148 +#: distutils/apiref.rst:1148 msgid "" "Return 'pathname' as a name that will work on the native filesystem, i.e. " "split it on '/' and put it back together again using the current directory " @@ -2149,7 +2147,7 @@ msgstr "" "systèmes non UNIX si *pathname* commence ou se termine par une barre oblique " "(*slash* en anglais)." -#: ../Doc/distutils/apiref.rst:1158 +#: distutils/apiref.rst:1158 msgid "" "Return *pathname* with *new_root* prepended. If *pathname* is relative, " "this is equivalent to ``os.path.join(new_root,pathname)`` Otherwise, it " @@ -2161,7 +2159,7 @@ msgstr "" "faut rendre *pathname* relatif et joindre les deux, ce qui est dangereux " "sous DOS/Windows." -#: ../Doc/distutils/apiref.rst:1165 +#: distutils/apiref.rst:1165 msgid "" "Ensure that 'os.environ' has all the environment variables we guarantee that " "users can use in config files, command-line options, etc. Currently this " @@ -2171,12 +2169,12 @@ msgstr "" "utilisables dans les fichiers de configuration, les options en ligne de " "commande, etc. À l'heure actuelle, cela comprend :" -#: ../Doc/distutils/apiref.rst:1169 +#: distutils/apiref.rst:1169 msgid ":envvar:`HOME` - user's home directory (Unix only)" msgstr "" ":envvar:`HOME`. Répertoire d’accueil de l'utilisateur (Unix uniquement)" -#: ../Doc/distutils/apiref.rst:1170 +#: distutils/apiref.rst:1170 msgid "" ":envvar:`PLAT` - description of the current platform, including hardware and " "OS (see :func:`get_platform`)" @@ -2184,7 +2182,7 @@ msgstr "" ":envvar:`PLAT`. Description de la plate-forme actuelle, y compris le " "matériel et le l'OS (voir :func:`get_platform`)" -#: ../Doc/distutils/apiref.rst:1176 +#: distutils/apiref.rst:1176 msgid "" "Perform shell/Perl-style variable substitution on *s*. Every occurrence of " "``$`` followed by a name is considered a variable, and variable is " @@ -2199,11 +2197,11 @@ msgstr "" "variable est remplacée par la valeur trouvée dans le dictionnaire " "*local_vars*, ou dans ``os.environ`` si elle ne se trouve pas dans " "*local_vars*. *os.environ* est d'abord vérifié/étendu pour garantir qu'elle " -"contient certaines valeurs : voir :func:`check_environ`. Lève :exc:" +"contient certaines valeurs : voir :func:`check_environ`. Lève :exc:" "`ValueError` pour toute variable non trouvée dans *local_vars* ou ``os." "environ``." -#: ../Doc/distutils/apiref.rst:1183 +#: distutils/apiref.rst:1183 msgid "" "Note that this is not a fully-fledged string interpolation function. A valid " "``$variable`` can consist only of upper and lower case letters, numbers and " @@ -2214,7 +2212,7 @@ msgstr "" "majuscules et minuscules, de chiffres et d'un tiret bas. Aucune syntaxe de " "type {} ou () pour indiquer des variables n'est disponible." -#: ../Doc/distutils/apiref.rst:1190 +#: distutils/apiref.rst:1190 msgid "" "Split a string up according to Unix shell-like rules for quotes and " "backslashes. In short: words are delimited by spaces, as long as those " @@ -2225,7 +2223,7 @@ msgid "" "any quoted string. Returns a list of words." msgstr "" "Sépare une chaîne de caractères selon les règles de type shell Unix pour les " -"guillemets et les barres obliques inverses. En bref : les mots sont " +"guillemets et les barres obliques inverses. En bref : les mots sont " "délimités par des espaces, tant que ces espaces ne sont pas échappées par " "une barre oblique inversée, ou à l'intérieur d'une chaîne guillemets. Les " "guillemets simples et doubles sont équivalents, et les caractères entre " @@ -2235,7 +2233,7 @@ msgstr "" "sont supprimés de toute chaîne de caractères entre guillemets. Renvoie une " "liste de mots." -#: ../Doc/distutils/apiref.rst:1203 +#: distutils/apiref.rst:1203 msgid "" "Perform some action that affects the outside world (for instance, writing to " "the filesystem). Such actions are special because they are disabled by the " @@ -2250,14 +2248,14 @@ msgstr "" "devez simplement fournir la fonction à appeler avec un couple d'argument lui " "correspondant et un message facultatif à afficher." -#: ../Doc/distutils/apiref.rst:1212 +#: distutils/apiref.rst:1212 msgid "Convert a string representation of truth to true (1) or false (0)." msgstr "" "Convertit une chaîne de caractères représentant une valeur booléenne en " "``1`` (si elle est évaluée comme vraie) ou ``0`` (si elle est évaluée comme " "fausse)." -#: ../Doc/distutils/apiref.rst:1214 +#: distutils/apiref.rst:1214 msgid "" "True values are ``y``, ``yes``, ``t``, ``true``, ``on`` and ``1``; false " "values are ``n``, ``no``, ``f``, ``false``, ``off`` and ``0``. Raises :exc:" @@ -2267,7 +2265,7 @@ msgstr "" "``1``. Les valeurs *fausses* sont ``n``, ``no``, ``f``, ``false``, ``off`` " "et ``0``. Lève :exc:`ValueError` si *val* est autre chose." -#: ../Doc/distutils/apiref.rst:1221 +#: distutils/apiref.rst:1221 msgid "" "Byte-compile a collection of Python source files to :file:`.pyc` files in a :" "file:`__pycache__` subdirectory (see :pep:`3147` and :pep:`488`). *py_files* " @@ -2281,25 +2279,25 @@ msgstr "" "pas par :file:`.py` sont ignorés en silence. *optimize* doit être l'un des " "éléments suivants :" -#: ../Doc/distutils/apiref.rst:1226 +#: distutils/apiref.rst:1226 msgid "``0`` - don't optimize" msgstr "``0``: ne pas optimiser" -#: ../Doc/distutils/apiref.rst:1227 +#: distutils/apiref.rst:1227 msgid "``1`` - normal optimization (like ``python -O``)" msgstr "``1``: optimisation normale (comme ``python -O``)" -#: ../Doc/distutils/apiref.rst:1228 +#: distutils/apiref.rst:1228 msgid "``2`` - extra optimization (like ``python -OO``)" msgstr "``2``: optimisation supplémentaire (comme ``python -OO``)" -#: ../Doc/distutils/apiref.rst:1230 +#: distutils/apiref.rst:1230 msgid "If *force* is true, all files are recompiled regardless of timestamps." msgstr "" "Si *force* est vrai, tous les fichiers sont recompilés indépendamment des " "horodatages." -#: ../Doc/distutils/apiref.rst:1232 +#: distutils/apiref.rst:1232 msgid "" "The source filename encoded in each :term:`bytecode` file defaults to the " "filenames listed in *py_files*; you can modify these with *prefix* and " @@ -2314,9 +2312,9 @@ msgstr "" "*prefix* est une chaîne de caractères qui sera supprimée de chaque nom de " "fichier source, et *base_dir* est un nom de répertoire qui sera préfixé au " "nom (après que le *prefixe* soit supprimé). Vous pouvez choisir de fournir " -"l'un ou l'autre (ou les deux) paramètres : *prefixe* et *base_dir*." +"l'un ou l'autre (ou les deux) paramètres : *prefixe* et *base_dir*." -#: ../Doc/distutils/apiref.rst:1239 +#: distutils/apiref.rst:1239 msgid "" "If *dry_run* is true, doesn't actually do anything that would affect the " "filesystem." @@ -2324,7 +2322,7 @@ msgstr "" "Si *dry_run* est vrai, ne fait rien qui puisse affecter le système de " "fichiers." -#: ../Doc/distutils/apiref.rst:1242 +#: distutils/apiref.rst:1242 msgid "" "Byte-compilation is either done directly in this interpreter process with " "the standard :mod:`py_compile` module, or indirectly by writing a temporary " @@ -2341,7 +2339,7 @@ msgstr "" "script généré en mode indirect ; à moins que vous ne sachiez ce que vous " "faites, laissez le paramètre à ``None`` (Aucun)." -#: ../Doc/distutils/apiref.rst:1249 +#: distutils/apiref.rst:1249 msgid "" "Create ``.pyc`` files with an :func:`import magic tag ` in " "their name, in a :file:`__pycache__` subdirectory instead of files without " @@ -2351,11 +2349,11 @@ msgstr "" "` dans leur nom, dans le sous répertoire :file:`__pycache__` " "plutôt que dans le répertoire courant, sans tag." -#: ../Doc/distutils/apiref.rst:1254 +#: distutils/apiref.rst:1254 msgid "Create ``.pyc`` files according to :pep:`488`." msgstr "Crée des fichiers ``.pyc`` selon la :pep:`488`." -#: ../Doc/distutils/apiref.rst:1260 +#: distutils/apiref.rst:1260 msgid "" "Return a version of *header* escaped for inclusion in an :rfc:`822` header, " "by ensuring there are 8 spaces space after each newline. Note that it does " @@ -2366,11 +2364,11 @@ msgstr "" "nouvelle ligne. Notez qu'il ne fait aucune autre modification de la chaîne " "de caractères." -#: ../Doc/distutils/apiref.rst:1270 +#: distutils/apiref.rst:1270 msgid ":mod:`distutils.dist` --- The Distribution class" msgstr ":mod:`distutils.dist` — La classe Distribution" -#: ../Doc/distutils/apiref.rst:1277 +#: distutils/apiref.rst:1277 msgid "" "This module provides the :class:`~distutils.core.Distribution` class, which " "represents the module distribution being built/installed/distributed." @@ -2379,11 +2377,11 @@ msgstr "" "représente le module *distribution* en cours de construction/installation/" "distribution." -#: ../Doc/distutils/apiref.rst:1282 +#: distutils/apiref.rst:1282 msgid ":mod:`distutils.extension` --- The Extension class" msgstr ":mod:`distutils.extension` — La classe Extension" -#: ../Doc/distutils/apiref.rst:1289 +#: distutils/apiref.rst:1289 msgid "" "This module provides the :class:`Extension` class, used to describe C/C++ " "extension modules in setup scripts." @@ -2391,19 +2389,19 @@ msgstr "" "Ce module fournit la classe :class:`Extension`, utilisée pour décrire les " "modules d'extension C/C++ dans les scripts de configuration." -#: ../Doc/distutils/apiref.rst:1297 +#: distutils/apiref.rst:1297 msgid ":mod:`distutils.debug` --- Distutils debug mode" msgstr ":mod:`distutils.debug` — Mode de débogage du module *Distutils*" -#: ../Doc/distutils/apiref.rst:1303 +#: distutils/apiref.rst:1303 msgid "This module provides the DEBUG flag." msgstr "Ce module fournit l'option *DEBUG*." -#: ../Doc/distutils/apiref.rst:1307 +#: distutils/apiref.rst:1307 msgid ":mod:`distutils.errors` --- Distutils exceptions" msgstr ":mod:`distutils.errors` — Exceptions du module *Distutils*" -#: ../Doc/distutils/apiref.rst:1313 +#: distutils/apiref.rst:1313 msgid "" "Provides exceptions used by the Distutils modules. Note that Distutils " "modules may raise standard exceptions; in particular, SystemExit is usually " @@ -2413,10 +2411,10 @@ msgstr "" "Fournit les exceptions utilisées par les modules de *Distutils*. Notez que " "les modules *Distutils* peuvent soulever des exceptions standard ; en " "particulier, ``SystemExit`` est généralement levée pour les erreurs qui sont " -"manifestement de la responsabilité de l'utilisateur final (ex : mauvais " +"manifestement de la responsabilité de l'utilisateur final (ex : mauvais " "argument en ligne de commande)." -#: ../Doc/distutils/apiref.rst:1317 +#: distutils/apiref.rst:1317 msgid "" "This module is safe to use in ``from ... import *`` mode; it only exports " "symbols whose names start with ``Distutils`` and end with ``Error``." @@ -2425,13 +2423,13 @@ msgstr "" "n'exporte que des symboles dont le nom commence par ``Distutils`` et se " "termine par ``Error``." -#: ../Doc/distutils/apiref.rst:1322 +#: distutils/apiref.rst:1322 msgid "" ":mod:`distutils.fancy_getopt` --- Wrapper around the standard getopt module" msgstr "" -":mod:`distutils.fancy_getopt` --- Encapsulation du module *getopt* standard" +":mod:`distutils.fancy_getopt` — Encapsulation du module *getopt* standard" -#: ../Doc/distutils/apiref.rst:1328 +#: distutils/apiref.rst:1328 msgid "" "This module provides a wrapper around the standard :mod:`getopt` module " "that provides the following additional features:" @@ -2439,11 +2437,11 @@ msgstr "" "Ce module est une encapsulation du module standard :mod:`getopt` qui apporte " "les fonctionnalités supplémentaires suivantes :" -#: ../Doc/distutils/apiref.rst:1331 +#: distutils/apiref.rst:1331 msgid "short and long options are tied together" msgstr "Les options *short* et *long* sont liées entre elles." -#: ../Doc/distutils/apiref.rst:1333 +#: distutils/apiref.rst:1333 msgid "" "options have help strings, so :func:`fancy_getopt` could potentially create " "a complete usage summary" @@ -2451,21 +2449,21 @@ msgstr "" "Les options ont des pages d'aide, donc :func:`fancy_getopt` pourrait " "potentiellement créer un résumé d'utilisation complet" -#: ../Doc/distutils/apiref.rst:1336 +#: distutils/apiref.rst:1336 msgid "options set attributes of a passed-in object" msgstr "Les options définissent les attributs à partir d'un objet fourni." -#: ../Doc/distutils/apiref.rst:1338 +#: distutils/apiref.rst:1338 msgid "" "boolean options can have \"negative aliases\" --- eg. if :option:`!--quiet` " "is the \"negative alias\" of :option:`!--verbose`, then :option:`!--quiet` " "on the command line sets *verbose* to false." msgstr "" -"Les options booléennes peuvent avoir des \"alias négatifs\" --- par exemple " +"Les options booléennes peuvent avoir des \"alias négatifs\" — par exemple " "l'option :option:`!-quiet` est *l'alias négatif* de :option:`!--verbose`, " "l'option :option:`!-quiet` sur la ligne de commande met *verbose* à faux." -#: ../Doc/distutils/apiref.rst:1344 +#: distutils/apiref.rst:1344 msgid "" "Wrapper function. *options* is a list of ``(long_option, short_option, " "help_string)`` 3-tuples as described in the constructor for :class:" @@ -2484,13 +2482,13 @@ msgstr "" "classe :class:`FancyGetopt`). *args* est la liste des arguments. Utilise " "``sys.argv[1 :]`` si ``None`` est passé à *args*." -#: ../Doc/distutils/apiref.rst:1355 +#: distutils/apiref.rst:1355 msgid "Wraps *text* to less than *width* wide." msgstr "" "Ajoute des retours à la ligne à *texte* de manière à ce que la largeur soit " "inférieure à *largeur*." -#: ../Doc/distutils/apiref.rst:1360 +#: distutils/apiref.rst:1360 msgid "" "The option_table is a list of 3-tuples: ``(long_option, short_option, " "help_string)``" @@ -2498,7 +2496,7 @@ msgstr "" "La liste *option_table* est constituée de triplets : ``(long_option, " "short_option, help_string*)``" -#: ../Doc/distutils/apiref.rst:1363 +#: distutils/apiref.rst:1363 msgid "" "If an option takes an argument, its *long_option* should have ``'='`` " "appended; *short_option* should just be a single character, no ``':'`` in " @@ -2511,17 +2509,17 @@ msgstr "" "*short_option* correspondante. Tous les triplets d'options doivent avoir des " "options longues." -#: ../Doc/distutils/apiref.rst:1368 +#: distutils/apiref.rst:1368 msgid "The :class:`FancyGetopt` class provides the following methods:" msgstr "La classe :class:`FancyGetopt` fournit les méthodes suivantes :" -#: ../Doc/distutils/apiref.rst:1373 +#: distutils/apiref.rst:1373 msgid "Parse command-line options in args. Store as attributes on *object*." msgstr "" "Analyse les options de ligne de commande des arguments. Les stocke en tant " "qu'attributs de *objet*." -#: ../Doc/distutils/apiref.rst:1375 +#: distutils/apiref.rst:1375 msgid "" "If *args* is ``None`` or not supplied, uses ``sys.argv[1:]``. If *object* " "is ``None`` or not supplied, creates a new :class:`OptionDummy` instance, " @@ -2538,7 +2536,7 @@ msgstr "" "les deux cas, Les arguments *args* renvoyés sont une copie modifiée de la " "liste *args* transmise, qui est n'est pas modifiée." -#: ../Doc/distutils/apiref.rst:1387 +#: distutils/apiref.rst:1387 msgid "" "Returns the list of ``(option, value)`` tuples processed by the previous run " "of :meth:`getopt` Raises :exc:`RuntimeError` if :meth:`getopt` hasn't been " @@ -2548,7 +2546,7 @@ msgstr "" "précédente de :meth:`getopt`. Déclenche :exc:`RuntimeError` si :meth:" "`getopt` n'a pas encore été appelée." -#: ../Doc/distutils/apiref.rst:1394 +#: distutils/apiref.rst:1394 msgid "" "Generate help text (a list of strings, one per suggested line of output) " "from the option table for this :class:`FancyGetopt` object." @@ -2557,15 +2555,15 @@ msgstr "" "suggérée) de la liste d'options pour l'objet de la classe :class:" "`FancyGetopt`." -#: ../Doc/distutils/apiref.rst:1397 +#: distutils/apiref.rst:1397 msgid "If supplied, prints the supplied *header* at the top of the help." msgstr "S'il est fourni, affiche l'en-tête *header* en haut de l'aide." -#: ../Doc/distutils/apiref.rst:1401 +#: distutils/apiref.rst:1401 msgid ":mod:`distutils.filelist` --- The FileList class" msgstr ":mod:`distutils.filelist` — La classe *FileList* liste des fichiers" -#: ../Doc/distutils/apiref.rst:1408 +#: distutils/apiref.rst:1408 msgid "" "This module provides the :class:`FileList` class, used for poking about the " "filesystem and building lists of files." @@ -2573,17 +2571,16 @@ msgstr "" "Ce module fournit la classe :class:`FileList`, utilisée pour parcourir le " "système de fichiers et construire des listes de fichiers." -#: ../Doc/distutils/apiref.rst:1413 -#, fuzzy +#: distutils/apiref.rst:1413 msgid ":mod:`distutils.log` --- Simple :pep:`282`-style logging" msgstr "" -":mod:`distutils.log` --- Journalisation basée sur le style de la PEP 282" +":mod:`distutils.log` — Journalisation basée sur le style de la :pep:`282`" -#: ../Doc/distutils/apiref.rst:1420 +#: distutils/apiref.rst:1420 msgid ":mod:`distutils.spawn` --- Spawn a sub-process" msgstr ":mod:`distutils.spawn` — Crée un sous-processus" -#: ../Doc/distutils/apiref.rst:1426 +#: distutils/apiref.rst:1426 msgid "" "This module provides the :func:`spawn` function, a front-end to various " "platform-specific functions for launching another program in a sub-process. " @@ -2595,12 +2592,11 @@ msgstr "" "un sous-processus. Inclut également :func:`find_executable` pour rechercher " "le chemin d'accès pour un nom d'exécutable donné." -#: ../Doc/distutils/apiref.rst:1433 +#: distutils/apiref.rst:1433 msgid ":mod:`distutils.sysconfig` --- System configuration information" -msgstr "" -":mod:`distutils.sysconfig` --- Informations de configuration du système" +msgstr ":mod:`distutils.sysconfig` — Informations de configuration du système" -#: ../Doc/distutils/apiref.rst:1442 +#: distutils/apiref.rst:1442 msgid "" "The :mod:`distutils.sysconfig` module provides access to Python's low-level " "configuration information. The specific configuration variables available " @@ -2622,7 +2618,7 @@ msgstr "" "de Python commençant par 2.2, et :file:`config.h` pour les versions " "antérieures de Python." -#: ../Doc/distutils/apiref.rst:1451 +#: distutils/apiref.rst:1451 msgid "" "Some additional functions are provided which perform some useful " "manipulations for other parts of the :mod:`distutils` package." @@ -2630,15 +2626,15 @@ msgstr "" "Quelques fonctions supplémentaires sont fournies pour effectuer des " "manipulations utiles pour d'autres parties du paquet :mod:`distutils`." -#: ../Doc/distutils/apiref.rst:1457 +#: distutils/apiref.rst:1457 msgid "The result of ``os.path.normpath(sys.prefix)``." msgstr "Le résultat de ``os.path.normpath(sys.prefix)``." -#: ../Doc/distutils/apiref.rst:1462 +#: distutils/apiref.rst:1462 msgid "The result of ``os.path.normpath(sys.exec_prefix)``." msgstr "Le résultat de ``os.path.normpath(sys.exec_prefix)``." -#: ../Doc/distutils/apiref.rst:1467 +#: distutils/apiref.rst:1467 msgid "" "Return the value of a single variable. This is equivalent to " "``get_config_vars().get(name)``." @@ -2646,7 +2642,7 @@ msgstr "" "Retourne la valeur d'une seule variable. C'est l'équivalent de " "``get_config_vars().get(name)``." -#: ../Doc/distutils/apiref.rst:1473 +#: distutils/apiref.rst:1473 msgid "" "Return a set of variable definitions. If there are no arguments, this " "returns a dictionary mapping names of configuration variables to values. If " @@ -2661,7 +2657,7 @@ msgstr "" "donnant les valeurs correspondantes. Si un nom donné n'a pas de valeur " "correspondante, la valeur ``None`` sera utilisée pour cette variable." -#: ../Doc/distutils/apiref.rst:1482 +#: distutils/apiref.rst:1482 msgid "" "Return the full path name of the configuration header. For Unix, this will " "be the header generated by the :program:`configure` script; for other " @@ -2673,7 +2669,7 @@ msgstr "" "les autres plates-formes, l'en-tête provient directement de la distribution " "source Python. Le fichier est un fichier texte spécifique à la plate-forme." -#: ../Doc/distutils/apiref.rst:1490 +#: distutils/apiref.rst:1490 msgid "" "Return the full path name of the :file:`Makefile` used to build Python. For " "Unix, this will be a file generated by the :program:`configure` script; the " @@ -2686,7 +2682,7 @@ msgstr "" "existe, il s'agit d'un fichier texte spécifique à la plate-forme. Cette " "fonction n'est utile que sur les plates-formes POSIX." -#: ../Doc/distutils/apiref.rst:1498 +#: distutils/apiref.rst:1498 msgid "" "Return the directory for either the general or platform-dependent C include " "files. If *plat_specific* is true, the platform-dependent include directory " @@ -2703,7 +2699,7 @@ msgstr "" "`PREFIX`, soit comme préfixe d'exécution au lieu de :const:`EXEC_PREFIX` si " "*plat_specific* est vrai." -#: ../Doc/distutils/apiref.rst:1508 +#: distutils/apiref.rst:1508 msgid "" "Return the directory for either the general or platform-dependent library " "installation. If *plat_specific* is true, the platform-dependent include " @@ -2724,7 +2720,7 @@ msgstr "" "bibliothèque standard est renvoyé plutôt que le répertoire d'installation " "des extensions tierces." -#: ../Doc/distutils/apiref.rst:1517 +#: distutils/apiref.rst:1517 msgid "" "The following function is only intended for use within the :mod:`distutils` " "package." @@ -2732,7 +2728,7 @@ msgstr "" "La fonction suivante est uniquement destinée à être utilisée dans le paquet :" "mod:`distutils`." -#: ../Doc/distutils/apiref.rst:1523 +#: distutils/apiref.rst:1523 msgid "" "Do any platform-specific customization of a :class:`distutils.ccompiler." "CCompiler` instance." @@ -2740,7 +2736,7 @@ msgstr "" "Exécute toute personnalisation spécifique à la plate-forme d'une instance :" "class:`distutils.ccompiler.CCompiler`." -#: ../Doc/distutils/apiref.rst:1526 +#: distutils/apiref.rst:1526 msgid "" "This function is only needed on Unix at this time, but should be called " "consistently to support forward-compatibility. It inserts the information " @@ -2756,7 +2752,7 @@ msgstr "" "liens sélectionnés, ainsi que l'extension utilisée par l'éditeur de liens " "pour les objets partagés." -#: ../Doc/distutils/apiref.rst:1532 +#: distutils/apiref.rst:1532 msgid "" "This function is even more special-purpose, and should only be used from " "Python's own build procedures." @@ -2764,7 +2760,7 @@ msgstr "" "Cette fonction est encore plus spéciale, et ne devrait être utilisée que " "dans les procédures de compilation de Python." -#: ../Doc/distutils/apiref.rst:1538 +#: distutils/apiref.rst:1538 msgid "" "Inform the :mod:`distutils.sysconfig` module that it is being used as part " "of the build process for Python. This changes a lot of relative locations " @@ -2776,11 +2772,11 @@ msgstr "" "relatifs pour les fichiers, ce qui les place dans la zone de compilation " "plutôt que dans un interpréteur Python installé." -#: ../Doc/distutils/apiref.rst:1545 +#: distutils/apiref.rst:1545 msgid ":mod:`distutils.text_file` --- The TextFile class" msgstr ":mod:`distutils.text_file` — La classe TextFile" -#: ../Doc/distutils/apiref.rst:1551 +#: distutils/apiref.rst:1551 msgid "" "This module provides the :class:`TextFile` class, which gives an interface " "to text files that (optionally) takes care of stripping comments, ignoring " @@ -2790,7 +2786,7 @@ msgstr "" "fichiers texte qui s'occupe (optionnellement) de supprimer les commentaires, " "d'ignorer les lignes vides et de joindre les lignes avec des antislash." -#: ../Doc/distutils/apiref.rst:1558 +#: distutils/apiref.rst:1558 msgid "" "This class provides a file-like object that takes care of all the things " "you commonly want to do when processing a text file that has some line-by-" @@ -2801,14 +2797,14 @@ msgid "" msgstr "" "Cette classe fournit un objet de type fichier qui se charge de tout ce que " "vous voulez généralement faire lors du traitement d'un fichier texte ayant " -"une syntaxe ligne par ligne : Suppression des commentaires (tant que ``#`` " +"une syntaxe ligne par ligne : Suppression des commentaires (tant que ``#`` " "est votre caractère de commentaire), passer les lignes vides, joindre des " "lignes adjacentes en échappant la nouvelle ligne (les lignes se terminant " "par une antislash), supprime les espace blancs avant et après le texte etc. " "Toutes ces fonctions sont optionnelles et peuvent être commandées " "indépendamment." -#: ../Doc/distutils/apiref.rst:1565 +#: distutils/apiref.rst:1565 msgid "" "The class provides a :meth:`warn` method so you can generate warning " "messages that report physical line number, even if the logical line in " @@ -2820,7 +2816,7 @@ msgstr "" "logique en question couvre plusieurs lignes physiques. Fournit également :" "meth:`unreadline` pour implémenter un système prospectif ligne par ligne." -#: ../Doc/distutils/apiref.rst:1570 +#: distutils/apiref.rst:1570 msgid "" ":class:`TextFile` instances are create with either *filename*, *file*, or " "both. :exc:`RuntimeError` is raised if both are ``None``. *filename* should " @@ -2839,7 +2835,7 @@ msgstr "" "Si *file* n'est pas fourni, :class:`TextFile` crée son propre fichier en " "utilisant la fonction :func:`open`." -#: ../Doc/distutils/apiref.rst:1578 +#: distutils/apiref.rst:1578 msgid "" "The options are all boolean, and affect the values returned by :meth:" "`readline`" @@ -2847,51 +2843,49 @@ msgstr "" "Les options sont toutes booléennes et affectent les valeurs renvoyées par :" "meth:`readline`." -#: ../Doc/distutils/apiref.rst:1583 +#: distutils/apiref.rst:1583 msgid "option name" msgstr "Nom des options" -#: ../Doc/distutils/apiref.rst:1583 +#: distutils/apiref.rst:1583 msgid "default" msgstr "default" -#: ../Doc/distutils/apiref.rst:1585 +#: distutils/apiref.rst:1585 msgid "*strip_comments*" msgstr "*strip_comments*" -#: ../Doc/distutils/apiref.rst:1585 +#: distutils/apiref.rst:1585 msgid "" "strip from ``'#'`` to end-of-line, as well as any whitespace leading up to " "the ``'#'``\\ ---unless it is escaped by a backslash" msgstr "" "Supprime les caractères à partir de ``'#'`` jusqu'à la fin de la ligne, " -"ainsi que tout espace blanc menant au premier ``'#'`` --- à moins qu'il ne " +"ainsi que tout espace blanc menant au premier ``'#'`` — à moins qu'il ne " "soit échappé par une antislash" -#: ../Doc/distutils/apiref.rst:1585 ../Doc/distutils/apiref.rst:1594 -#: ../Doc/distutils/apiref.rst:1599 +#: distutils/apiref.rst:1594 distutils/apiref.rst:1599 msgid "true" msgstr "*true*" -#: ../Doc/distutils/apiref.rst:1591 +#: distutils/apiref.rst:1591 msgid "*lstrip_ws*" msgstr "*lstrip_ws*" -#: ../Doc/distutils/apiref.rst:1591 +#: distutils/apiref.rst:1591 msgid "strip leading whitespace from each line before returning it" msgstr "" "Efface les espaces blancs en début de chaque ligne avant de la renvoyer." -#: ../Doc/distutils/apiref.rst:1591 ../Doc/distutils/apiref.rst:1609 -#: ../Doc/distutils/apiref.rst:1620 +#: distutils/apiref.rst:1609 distutils/apiref.rst:1620 msgid "false" msgstr "*false*" -#: ../Doc/distutils/apiref.rst:1594 +#: distutils/apiref.rst:1594 msgid "*rstrip_ws*" msgstr "*rstrip_ws*" -#: ../Doc/distutils/apiref.rst:1594 +#: distutils/apiref.rst:1594 msgid "" "strip trailing whitespace (including line terminator!) from each line before " "returning it." @@ -2899,11 +2893,11 @@ msgstr "" "Efface les espaces blancs de fin de ligne (y compris le terminateur de " "ligne !) de chaque ligne avant de la renvoyer." -#: ../Doc/distutils/apiref.rst:1599 +#: distutils/apiref.rst:1599 msgid "*skip_blanks*" msgstr "*skip_blanks*" -#: ../Doc/distutils/apiref.rst:1599 +#: distutils/apiref.rst:1599 msgid "" "skip lines that are empty \\*after\\* stripping comments and whitespace. " "(If both lstrip_ws and rstrip_ws are false, then some lines may consist of " @@ -2912,14 +2906,14 @@ msgid "" msgstr "" "Ignore les lignes qui sont vides \\*après\\* la suppression des commentaires " "et des espaces. (Si *lstrip_ws* et *rstrip_ws* sont tous les deux faux, " -"alors certaines lignes peuvent être composées uniquement d'espaces : elles " +"alors certaines lignes peuvent être composées uniquement d'espaces : elles " "ne seront pas ignorées, même si *skip_blanks* est vrai." -#: ../Doc/distutils/apiref.rst:1609 +#: distutils/apiref.rst:1609 msgid "*join_lines*" msgstr "*join_lines*" -#: ../Doc/distutils/apiref.rst:1609 +#: distutils/apiref.rst:1609 msgid "" "if a backslash is the last non-newline character on a line after stripping " "comments and whitespace, join the following line to it to form one logical " @@ -2932,11 +2926,11 @@ msgstr "" "antislash, alors N+1 lignes physiques seront liées pour former une seul " "ligne logique." -#: ../Doc/distutils/apiref.rst:1620 +#: distutils/apiref.rst:1620 msgid "*collapse_join*" msgstr "*collapse_join*" -#: ../Doc/distutils/apiref.rst:1620 +#: distutils/apiref.rst:1620 msgid "" "strip leading whitespace from lines that are joined to their predecessor; " "only matters if ``(join_lines and not lstrip_ws)``" @@ -2944,7 +2938,7 @@ msgstr "" "Supprime les espaces blancs des lignes qui sont jointes à leur prédécesseur. " "n'est utile que que si ``(join_lines and not lstrip_ws)``." -#: ../Doc/distutils/apiref.rst:1627 +#: distutils/apiref.rst:1627 msgid "" "Note that since *rstrip_ws* can strip the trailing newline, the semantics " "of :meth:`readline` must differ from those of the built-in file object's :" @@ -2959,7 +2953,7 @@ msgstr "" "juste une ligne blanche (ou une ligne entièrement blanche), si *rstrip_ws* " "est vrai mais pas si *skip_blanks* est faux." -#: ../Doc/distutils/apiref.rst:1636 +#: distutils/apiref.rst:1636 msgid "" "Open a new file *filename*. This overrides any *file* or *filename* " "constructor arguments." @@ -2967,7 +2961,7 @@ msgstr "" "Ouvre un nouveau fichier *filename*. Remplace tous les arguments du " "constructeur *file* ou *filename*." -#: ../Doc/distutils/apiref.rst:1642 +#: distutils/apiref.rst:1642 msgid "" "Close the current file and forget everything we know about it (including the " "filename and the current line number)." @@ -2975,7 +2969,7 @@ msgstr "" "Ferme le fichier courant et oublie toutes les informations connues à son " "sujet (y compris le nom du fichier et le numéro de la ligne courante)." -#: ../Doc/distutils/apiref.rst:1648 +#: distutils/apiref.rst:1648 msgid "" "Print (to stderr) a warning message tied to the current logical line in the " "current file. If the current logical line in the file spans multiple " @@ -2992,7 +2986,7 @@ msgstr "" "liste ou d'un couple pour indiquer une plage de lignes physiques, ou d'un " "entier pour une seule ligne physique." -#: ../Doc/distutils/apiref.rst:1658 +#: distutils/apiref.rst:1658 msgid "" "Read and return a single logical line from the current file (or from an " "internal buffer if lines have previously been \"unread\" with :meth:" @@ -3013,7 +3007,7 @@ msgstr "" "puisque la chaîne vide peut se produire si *rstrip_ws* est vrai mais pas si " "*strip_blanks* est faux." -#: ../Doc/distutils/apiref.rst:1669 +#: distutils/apiref.rst:1669 msgid "" "Read and return the list of all logical lines remaining in the current file. " "This updates the current line number to the last line of the file." @@ -3022,7 +3016,7 @@ msgstr "" "fichier courant. Met à jour le numéro de la ligne courante à la dernière " "ligne du fichier." -#: ../Doc/distutils/apiref.rst:1675 +#: distutils/apiref.rst:1675 msgid "" "Push *line* (a string) onto an internal buffer that will be checked by " "future :meth:`readline` calls. Handy for implementing a parser with line-at-" @@ -3041,21 +3035,21 @@ msgstr "" "appel à :meth:`readline`, les lignes sont renvoyées dans l'ordre de la plus " "récente première à la plus ancienne." -#: ../Doc/distutils/apiref.rst:1684 +#: distutils/apiref.rst:1684 msgid ":mod:`distutils.version` --- Version number classes" msgstr ":mod:`distutils.version` — Classes de numéros de version" -#: ../Doc/distutils/apiref.rst:1699 +#: distutils/apiref.rst:1699 msgid ":mod:`distutils.cmd` --- Abstract base class for Distutils commands" msgstr "" -":mod:`distutils.cmd` --- Classe de base abstraite pour les commandes " +":mod:`distutils.cmd` — Classe de base abstraite pour les commandes " "*Distutils*" -#: ../Doc/distutils/apiref.rst:1706 +#: distutils/apiref.rst:1706 msgid "This module supplies the abstract base class :class:`Command`." msgstr "Ce module fournit la classe de base abstraite :class:`Command`." -#: ../Doc/distutils/apiref.rst:1711 +#: distutils/apiref.rst:1711 msgid "" "Abstract base class for defining command classes, the \"worker bees\" of the " "Distutils. A useful analogy for command classes is to think of them as " @@ -3079,12 +3073,12 @@ msgstr "" "commande. La distinction entre les deux est nécessaire parce que les " "valeurs des options peuvent venir de l'extérieur (ligne de commande, fichier " "de configuration, ....), et toutes les options dépendantes d'autres options " -"doivent être calculées après que ces options externes aient été traitées --- " +"doivent être calculées après que ces options externes aient été traitées — " "ce qui explique :meth:`finalize_options`. Le corps de la sous-routine, où " "s'effectue tout le travail est basé sur les valeurs de ses options, est la " "méthode :meth:`run`, qui doit être implémentée par chaque classe de commande." -#: ../Doc/distutils/apiref.rst:1724 +#: distutils/apiref.rst:1724 msgid "" "The class constructor takes a single argument *dist*, a :class:`~distutils." "core.Distribution` instance." @@ -3092,16 +3086,16 @@ msgstr "" "Le constructeur prend un seul argument, *dist*, une instance de :class:" "`~distutils.core.Distribution`." -#: ../Doc/distutils/apiref.rst:1729 +#: distutils/apiref.rst:1729 msgid "Creating a new Distutils command" msgstr "Créer une nouvelle commande *Distutils*" -#: ../Doc/distutils/apiref.rst:1731 +#: distutils/apiref.rst:1731 msgid "This section outlines the steps to create a new Distutils command." msgstr "" "Cette section décrit les étapes pour créer une nouvelle commande *Distutils*." -#: ../Doc/distutils/apiref.rst:1733 +#: distutils/apiref.rst:1733 msgid "" "A new command lives in a module in the :mod:`distutils.command` package. " "There is a sample template in that directory called :file:" @@ -3124,13 +3118,13 @@ msgstr "" "peel_banana.py`, puis l'éditer pour qu'il implémente la classe :class:" "`peel_banana`, une sous-classe de la classe :class:`distutils.cmd.Command`." -#: ../Doc/distutils/apiref.rst:1743 +#: distutils/apiref.rst:1743 msgid "Subclasses of :class:`Command` must define the following methods." msgstr "" "Les sous-classes de la classe :class:`Command` doivent définir les méthodes " "suivantes." -#: ../Doc/distutils/apiref.rst:1747 +#: distutils/apiref.rst:1747 msgid "" "Set default values for all the options that this command supports. Note " "that these defaults may be overridden by other commands, by the setup " @@ -3147,7 +3141,7 @@ msgstr "" "méthodes suivantes :meth:`initialize_options` ne font que des assignations " "de type ``self.truc = None``." -#: ../Doc/distutils/apiref.rst:1756 +#: distutils/apiref.rst:1756 msgid "" "Set final values for all the options that this command supports. This is " "always called as late as possible, ie. after any option assignments from " @@ -3165,7 +3159,7 @@ msgstr "" "toujours la même valeur qui lui a été attribué par :meth:" "`initialize_options`." -#: ../Doc/distutils/apiref.rst:1766 +#: distutils/apiref.rst:1766 msgid "" "A command's raison d'etre: carry out the action it exists to perform, " "controlled by the options initialized in :meth:`initialize_options`, " @@ -3173,14 +3167,14 @@ msgid "" "files, and finalized in :meth:`finalize_options`. All terminal output and " "filesystem interaction should be done by :meth:`run`." msgstr "" -"La raison d'être d'une commande : exécuter l'action programmée en étant " +"La raison d'être d'une commande : exécuter l'action programmée en étant " "contrôlée par les options initialisées dans :meth:`initialize_options`, " "personnalisées par d'autres commandes, par le script de configuration, par " "la ligne de commande et les fichiers de configuration, puis finalisée dans :" "meth:`finalize_options`. Toutes les interactions avec le système de fichiers " "et la sortie du terminal doivent être effectuées par :meth:`run`." -#: ../Doc/distutils/apiref.rst:1775 +#: distutils/apiref.rst:1775 msgid "" "*sub_commands* formalizes the notion of a \"family\" of commands, e.g. " "``install`` as the parent with sub-commands ``install_lib``, " @@ -3200,11 +3194,11 @@ msgstr "" "``(command_name, predicate)``, avec *command_name* le nom de la commande et " "*predicate* une fonction, une chaîne ou ``None``. *predicate* est une " "méthode de la commande parent qui détermine si la commande correspondante " -"est applicable dans la situation actuelle. Par exemple : ``install_headers`` " +"est applicable dans la situation actuelle. Par exemple : ``install_headers`` " "n'est applicable que s'il existe des fichiers d'en-tête C à installer. Si " "*predicate* est ``None``, cette commande est toujours effectuée." -#: ../Doc/distutils/apiref.rst:1786 +#: distutils/apiref.rst:1786 msgid "" "*sub_commands* is usually defined at the *end* of a class, because " "predicates can be methods of the class, so they must already have been " @@ -3214,39 +3208,39 @@ msgstr "" "prédicats peuvent être des méthodes de la classe, ils doivent donc déjà " "avoir été définis. L'exemple canonique est la commande :command:`install`." -#: ../Doc/distutils/apiref.rst:1792 +#: distutils/apiref.rst:1792 msgid ":mod:`distutils.command` --- Individual Distutils commands" msgstr ":mod:`distutils.command` — Commandes *Distutils* individuelles" -#: ../Doc/distutils/apiref.rst:1803 +#: distutils/apiref.rst:1803 msgid ":mod:`distutils.command.bdist` --- Build a binary installer" msgstr ":mod:`distutils.command.bdist` — Construit un installateur binaire" -#: ../Doc/distutils/apiref.rst:1813 +#: distutils/apiref.rst:1813 msgid "" ":mod:`distutils.command.bdist_packager` --- Abstract base class for packagers" msgstr "" -":mod:`distutils.command.bdist_packager` --- Classe de base abstraite pour " +":mod:`distutils.command.bdist_packager` — Classe de base abstraite pour " "empaqueteurs" -#: ../Doc/distutils/apiref.rst:1823 +#: distutils/apiref.rst:1823 msgid ":mod:`distutils.command.bdist_dumb` --- Build a \"dumb\" installer" msgstr "" -":mod:`distutils.command.bdist_dumb` --- Construit un installateur passif " +":mod:`distutils.command.bdist_dumb` — Construit un installateur passif " "(*dumb*)" -#: ../Doc/distutils/apiref.rst:1833 +#: distutils/apiref.rst:1833 msgid "" ":mod:`distutils.command.bdist_msi` --- Build a Microsoft Installer binary " "package" msgstr "" -":mod:`distutils.command.bdist_msi` --- Construit un installateur Microsoft" +":mod:`distutils.command.bdist_msi` — Construit un installateur Microsoft" -#: ../Doc/distutils/apiref.rst:1840 +#: distutils/apiref.rst:1840 msgid "Builds a `Windows Installer`_ (.msi) binary package." msgstr "Construit un installateur `Windows Installeur`_ (*.msi*)" -#: ../Doc/distutils/apiref.rst:1844 +#: distutils/apiref.rst:1844 msgid "" "In most cases, the ``bdist_msi`` installer is a better choice than the " "``bdist_wininst`` installer, because it provides better support for Win64 " @@ -3258,54 +3252,54 @@ msgstr "" "*Win64*, et permet en plus aux administrateurs d'effectuer des installations " "non interactives ainsi que des installations via des stratégies de groupe." -#: ../Doc/distutils/apiref.rst:1851 +#: distutils/apiref.rst:1851 msgid "" ":mod:`distutils.command.bdist_rpm` --- Build a binary distribution as a " "Redhat RPM and SRPM" msgstr "" -":mod:`distutils.command.bdist_rpm` --- Construit une distribution binaire au " +":mod:`distutils.command.bdist_rpm` — Construit une distribution binaire au " "format Redhat RPM et SRPM" -#: ../Doc/distutils/apiref.rst:1861 +#: distutils/apiref.rst:1861 msgid ":mod:`distutils.command.bdist_wininst` --- Build a Windows installer" msgstr "" -":mod:`distutils.command.bdist_wininst` --- Construit un installateur Windows" +":mod:`distutils.command.bdist_wininst` — Construit un installateur Windows" -#: ../Doc/distutils/apiref.rst:1866 +#: distutils/apiref.rst:1866 msgid "Use bdist_wheel (wheel packages) instead." -msgstr "" +msgstr "Utilisez *bdist_wheel* (paquet au format *wheel*) à la place." -#: ../Doc/distutils/apiref.rst:1874 +#: distutils/apiref.rst:1874 msgid ":mod:`distutils.command.sdist` --- Build a source distribution" msgstr ":mod:`distutils.command.sdist` — Construit une distribution source" -#: ../Doc/distutils/apiref.rst:1884 +#: distutils/apiref.rst:1884 msgid ":mod:`distutils.command.build` --- Build all files of a package" msgstr "" -":mod:`distutils.command.build` --- Construit tous les fichiers d'un paquet" +":mod:`distutils.command.build` — Construit tous les fichiers d'un paquet" -#: ../Doc/distutils/apiref.rst:1894 +#: distutils/apiref.rst:1894 msgid "" ":mod:`distutils.command.build_clib` --- Build any C libraries in a package" msgstr "" -":mod:`distutils.command.build_clib` --- Construit toutes les bibliothèques C " +":mod:`distutils.command.build_clib` — Construit toutes les bibliothèques C " "d'un paquet" -#: ../Doc/distutils/apiref.rst:1904 +#: distutils/apiref.rst:1904 msgid "" ":mod:`distutils.command.build_ext` --- Build any extensions in a package" msgstr "" -":mod:`distutils.command.build_ext` --- Construit toutes les extensions d'un " +":mod:`distutils.command.build_ext` — Construit toutes les extensions d'un " "paquet" -#: ../Doc/distutils/apiref.rst:1914 +#: distutils/apiref.rst:1914 msgid "" ":mod:`distutils.command.build_py` --- Build the .py/.pyc files of a package" msgstr "" -":mod:`distutils.command.build_py` --- Construit les fichiers *.py/.pyc* d'un " +":mod:`distutils.command.build_py` — Construit les fichiers *.py/.pyc* d'un " "paquet" -#: ../Doc/distutils/apiref.rst:1924 +#: distutils/apiref.rst:1924 msgid "" "Alternative implementation of build_py which also runs the 2to3 conversion " "library on each .py file that is going to be installed. To use this in a " @@ -3317,27 +3311,27 @@ msgstr "" "installé. Pour l'utiliser dans un fichier *setup.py* pour une distribution " "conçue pour fonctionner avec *Python 2.x* et *3.x*, ajouter ::" -#: ../Doc/distutils/apiref.rst:1934 +#: distutils/apiref.rst:1934 msgid "to your setup.py, and later::" msgstr "à votre *setup.py* et, plus tard ::" -#: ../Doc/distutils/apiref.rst:1938 +#: distutils/apiref.rst:1938 msgid "to the invocation of setup()." msgstr "à l'appel de *setup()*." -#: ../Doc/distutils/apiref.rst:1942 +#: distutils/apiref.rst:1942 msgid "" ":mod:`distutils.command.build_scripts` --- Build the scripts of a package" msgstr "" -":mod:`distutils.command.build_scripts` --- Construit les scripts d'un paquet" +":mod:`distutils.command.build_scripts` — Construit les scripts d'un paquet" -#: ../Doc/distutils/apiref.rst:1952 +#: distutils/apiref.rst:1952 msgid ":mod:`distutils.command.clean` --- Clean a package build area" msgstr "" -":mod:`distutils.command.clean` --- Nettoie un dossier de compilation d'un " +":mod:`distutils.command.clean` — Nettoie un dossier de compilation d'un " "paquet" -#: ../Doc/distutils/apiref.rst:1957 +#: distutils/apiref.rst:1957 msgid "" "This command removes the temporary files created by :command:`build` and its " "subcommands, like intermediary compiled object files. With the ``--all`` " @@ -3348,7 +3342,7 @@ msgstr "" "intermédiaires. Avec l'option ``--all``, le répertoire de compilation sera " "supprimé." -#: ../Doc/distutils/apiref.rst:1961 +#: distutils/apiref.rst:1961 msgid "" "Extension modules built :ref:`in place ` will " "not be cleaned, as they are not in the build directory." @@ -3357,54 +3351,54 @@ msgstr "" "inplace>` ne seront pas effacés, car ils ne sont pas dans le répertoire " "*build*." -#: ../Doc/distutils/apiref.rst:1966 +#: distutils/apiref.rst:1966 msgid ":mod:`distutils.command.config` --- Perform package configuration" msgstr "" -":mod:`distutils.command.config` --- Effectue la configuration d'un paquet" +":mod:`distutils.command.config` — Effectue la configuration d'un paquet" -#: ../Doc/distutils/apiref.rst:1976 +#: distutils/apiref.rst:1976 msgid ":mod:`distutils.command.install` --- Install a package" msgstr ":mod:`distutils.command.install` — Installe un paquet" -#: ../Doc/distutils/apiref.rst:1986 +#: distutils/apiref.rst:1986 msgid "" ":mod:`distutils.command.install_data` --- Install data files from a package" msgstr "" -":mod:`distutils.command.install_data` --- Installe les fichiers de données " +":mod:`distutils.command.install_data` — Installe les fichiers de données " "d'un paquet" -#: ../Doc/distutils/apiref.rst:1996 +#: distutils/apiref.rst:1996 msgid "" ":mod:`distutils.command.install_headers` --- Install C/C++ header files from " "a package" msgstr "" -":mod:`distutils.command.install_headers` --- Installe les fichiers d'en-tête " -"C/C++ d'un paquet" +":mod:`distutils.command.install_headers` — Installe les fichiers d'en-tête C/" +"C++ d'un paquet" -#: ../Doc/distutils/apiref.rst:2006 +#: distutils/apiref.rst:2006 msgid "" ":mod:`distutils.command.install_lib` --- Install library files from a package" msgstr "" -":mod:`distutils.command.install_lib` --- Installe les fichiers de " -"bibliothèque à partir d'un paquet" +":mod:`distutils.command.install_lib` — Installe les fichiers de bibliothèque " +"à partir d'un paquet" -#: ../Doc/distutils/apiref.rst:2016 +#: distutils/apiref.rst:2016 msgid "" ":mod:`distutils.command.install_scripts` --- Install script files from a " "package" msgstr "" -":mod:`distutils.command.install_scripts` --- Installe les fichiers de script " +":mod:`distutils.command.install_scripts` — Installe les fichiers de script " "d'un paquet" -#: ../Doc/distutils/apiref.rst:2026 +#: distutils/apiref.rst:2026 msgid "" ":mod:`distutils.command.register` --- Register a module with the Python " "Package Index" msgstr "" -":mod:`distutils.command.register` --- Enregistre un module dans l'Index des " +":mod:`distutils.command.register` — Enregistre un module dans l'Index des " "paquets Python (*Python Package Index* ou *PyPI* en anglais)" -#: ../Doc/distutils/apiref.rst:2032 +#: distutils/apiref.rst:2032 msgid "" "The ``register`` command registers the package with the Python Package " "Index. This is described in more detail in :pep:`301`." @@ -3412,12 +3406,11 @@ msgstr "" "La commande ``register`` enregistre le paquet dans l'index des paquets " "Python. Plus de détails à ce sujet dans la :pep:`301`." -#: ../Doc/distutils/apiref.rst:2039 +#: distutils/apiref.rst:2039 msgid ":mod:`distutils.command.check` --- Check the meta-data of a package" -msgstr "" -":mod:`distutils.command.check` --- Vérifie les méta-données d'un paquet" +msgstr ":mod:`distutils.command.check` — Vérifie les méta-données d'un paquet" -#: ../Doc/distutils/apiref.rst:2045 +#: distutils/apiref.rst:2045 msgid "" "The ``check`` command performs some tests on the meta-data of a package. For " "example, it verifies that all required meta-data are provided as the " diff --git a/distutils/builtdist.po b/distutils/builtdist.po index 36e47a2572..d9a43d3310 100644 --- a/distutils/builtdist.po +++ b/distutils/builtdist.po @@ -3,30 +3,34 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-06-08 15:19+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:19+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/distutils/builtdist.rst:5 +#: distutils/builtdist.rst:5 msgid "Creating Built Distributions" msgstr "Créer une distribution compilée" -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/distutils/builtdist.rst:9 +#: distutils/builtdist.rst:9 msgid "" "A \"built distribution\" is what you're probably used to thinking of either " "as a \"binary package\" or an \"installer\" (depending on your background). " @@ -35,14 +39,14 @@ msgid "" "word is already spoken for in Python. (And \"installer\" is a term specific " "to the world of mainstream desktop systems.)" msgstr "" -"Une \"distribution compilée\" vous fait surement penser à un \"paquet binaire" -"\" ou à un \"installateur\" (tout dépend de votre environnement). Ce n'est " -"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à utilisé dans Python (et \"installateur\" est un terme " -"spécifique au monde des systèmes de bureau)." - -#: ../Doc/distutils/builtdist.rst:16 +"Une \"distribution compilée\" vous fait surement penser à un \"paquet " +"binaire\" ou à un \"installateur\" (tout dépend de votre environnement). Ce " +"n'est 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à utilisé dans Python (et \"installateur\" " +"est un terme spécifique au monde des systèmes de bureau)." + +#: distutils/builtdist.rst:16 msgid "" "A built distribution is how you make life as easy as possible for installers " "of your module distribution: for users of RPM-based Linux systems, it's a " @@ -66,7 +70,7 @@ msgstr "" "distributions source --- pendant que d'autres, appelés *packagers* " "s'occupent de transformer les sources en paquets pour chaque plateforme." -#: ../Doc/distutils/builtdist.rst:26 +#: distutils/builtdist.rst:26 msgid "" "Of course, the module developer could be their own packager; or the packager " "could be a volunteer \"out there\" somewhere who has access to a platform " @@ -84,7 +88,7 @@ msgstr "" "ils sont, les *packagers* utilisent ``setup.py`` et la famille de commandes :" "command:`bdist` afin de générer une distribution compilée." -#: ../Doc/distutils/builtdist.rst:34 +#: distutils/builtdist.rst:34 msgid "" "As a simple example, if I run the following command in the Distutils source " "tree::" @@ -92,7 +96,7 @@ msgstr "" "Pour prendre un exemple simple, si je lance la commande suivante dans les " "sources de Distutils ::" -#: ../Doc/distutils/builtdist.rst:39 +#: distutils/builtdist.rst:39 msgid "" "then the Distutils builds my module distribution (the Distutils itself in " "this case), does a \"fake\" installation (also in the :file:`build` " @@ -110,7 +114,7 @@ msgstr "" "considéré comme \"bête\" car il doit être décompressé à un endroit précis " "pour fonctionner)." -#: ../Doc/distutils/builtdist.rst:46 +#: distutils/builtdist.rst:46 msgid "" "Thus, the above command on a Unix system creates :file:`Distutils-1.0.{plat}." "tar.gz`; unpacking this tarball from the right place installs the Distutils " @@ -129,7 +133,7 @@ msgstr "" "`bdist_dumb` ; la valeur par défaut est de créer une distribution \"bête\" " "relative à :file:`{prefix}`)." -#: ../Doc/distutils/builtdist.rst:54 +#: distutils/builtdist.rst:54 msgid "" "Obviously, for pure Python distributions, this isn't any simpler than just " "running ``python setup.py install``\\ ---but for non-pure distributions, " @@ -148,7 +152,7 @@ msgstr "" "est bien plus pratique pour les utilisateurs, même si votre module n'inclut " "aucune extension." -#: ../Doc/distutils/builtdist.rst:62 +#: distutils/builtdist.rst:62 msgid "" "The :command:`bdist` command has a :option:`!--formats` option, similar to " "the :command:`sdist` command, which you can use to select the types of built " @@ -156,9 +160,9 @@ msgid "" msgstr "" "La commande :command:`bdist` a l'option :option:`!--formats`, similaire à la " "commande :command:`sdist`, que vous pouvez utiliser pour sélectionner le " -"type de distribution compilée à générer : par exemple, ::" +"type de distribution compilée à générer : par exemple, ::" -#: ../Doc/distutils/builtdist.rst:68 +#: distutils/builtdist.rst:68 msgid "" "would, when run on a Unix system, create :file:`Distutils-1.0.{plat}.zip`\\ " "---again, this archive would be unpacked from the root directory to install " @@ -168,151 +172,151 @@ msgstr "" "{plat}.zip`\\ ---à nouveau, cette archive devra être décompressé depuis la " "racine pour installer Distutils." -#: ../Doc/distutils/builtdist.rst:72 +#: distutils/builtdist.rst:72 msgid "The available formats for built distributions are:" msgstr "Les formats disponibles pour les distributions compilées sont :" -#: ../Doc/distutils/builtdist.rst:75 +#: distutils/builtdist.rst:75 msgid "Format" msgstr "Format" -#: ../Doc/distutils/builtdist.rst:75 +#: distutils/builtdist.rst:75 msgid "Description" msgstr "Description" -#: ../Doc/distutils/builtdist.rst:75 +#: distutils/builtdist.rst:75 msgid "Notes" msgstr "Notes" -#: ../Doc/distutils/builtdist.rst:77 +#: distutils/builtdist.rst:77 msgid "``gztar``" msgstr "``gztar``" -#: ../Doc/distutils/builtdist.rst:77 +#: distutils/builtdist.rst:77 msgid "gzipped tar file (:file:`.tar.gz`)" msgstr "fichier *tar* *gzippé* (:file:`.tar.gz`)" -#: ../Doc/distutils/builtdist.rst:77 +#: distutils/builtdist.rst:77 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/distutils/builtdist.rst:80 +#: distutils/builtdist.rst:80 msgid "``bztar``" msgstr "``bztar``" -#: ../Doc/distutils/builtdist.rst:80 +#: distutils/builtdist.rst:80 msgid "bzipped tar file (:file:`.tar.bz2`)" msgstr "fichier *tar* de type *bzipped* (:file:`.tar.bz2`)" -#: ../Doc/distutils/builtdist.rst:83 +#: distutils/builtdist.rst:83 msgid "``xztar``" msgstr "``xztar``" -#: ../Doc/distutils/builtdist.rst:83 +#: distutils/builtdist.rst:83 msgid "xzipped tar file (:file:`.tar.xz`)" msgstr "fichier *tar* de type *xzipped* (:file:`.tar.xz`)" -#: ../Doc/distutils/builtdist.rst:86 +#: distutils/builtdist.rst:86 msgid "``ztar``" msgstr "``ztar``" -#: ../Doc/distutils/builtdist.rst:86 +#: distutils/builtdist.rst:86 msgid "compressed tar file (:file:`.tar.Z`)" msgstr "fichier *tar* compressé par *compress* (:file:`.tar.Z`)" -#: ../Doc/distutils/builtdist.rst:86 +#: distutils/builtdist.rst:86 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/distutils/builtdist.rst:89 +#: distutils/builtdist.rst:89 msgid "``tar``" msgstr "``tar``" -#: ../Doc/distutils/builtdist.rst:89 +#: distutils/builtdist.rst:89 msgid "tar file (:file:`.tar`)" msgstr "fichier *tar* (:file:`.tar`)" -#: ../Doc/distutils/builtdist.rst:91 +#: distutils/builtdist.rst:91 msgid "``zip``" msgstr "``zip``" -#: ../Doc/distutils/builtdist.rst:91 +#: distutils/builtdist.rst:91 msgid "zip file (:file:`.zip`)" msgstr "fichier *zip* (:file:`.zip`)" -#: ../Doc/distutils/builtdist.rst:91 +#: distutils/builtdist.rst:91 msgid "(2),(4)" msgstr "(2),(4)" -#: ../Doc/distutils/builtdist.rst:93 +#: distutils/builtdist.rst:93 msgid "``rpm``" msgstr "``rpm``" -#: ../Doc/distutils/builtdist.rst:93 +#: distutils/builtdist.rst:93 msgid "RPM" msgstr "RPM" -#: ../Doc/distutils/builtdist.rst:93 +#: distutils/builtdist.rst:93 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/distutils/builtdist.rst:95 +#: distutils/builtdist.rst:95 msgid "``pkgtool``" msgstr "``pkgtool``" -#: ../Doc/distutils/builtdist.rst:95 +#: distutils/builtdist.rst:95 msgid "Solaris :program:`pkgtool`" msgstr "Solaris :program:`pkgtool`" -#: ../Doc/distutils/builtdist.rst:97 +#: distutils/builtdist.rst:97 msgid "``sdux``" msgstr "``sdux``" -#: ../Doc/distutils/builtdist.rst:97 +#: distutils/builtdist.rst:97 msgid "HP-UX :program:`swinstall`" msgstr "HP-UX :program:`swinstall`" -#: ../Doc/distutils/builtdist.rst:99 +#: distutils/builtdist.rst:99 msgid "``wininst``" msgstr "``wininst``" -#: ../Doc/distutils/builtdist.rst:99 +#: distutils/builtdist.rst:99 msgid "self-extracting ZIP file for Windows" msgstr "fichier zip auto-extracteur Windows" -#: ../Doc/distutils/builtdist.rst:99 +#: distutils/builtdist.rst:99 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/distutils/builtdist.rst:102 +#: distutils/builtdist.rst:102 msgid "``msi``" msgstr "``msi``" -#: ../Doc/distutils/builtdist.rst:102 +#: distutils/builtdist.rst:102 msgid "Microsoft Installer." msgstr "Installateur Microsoft." -#: ../Doc/distutils/builtdist.rst:105 +#: distutils/builtdist.rst:105 msgid "Added support for the ``xztar`` format." msgstr "Ajout du support des fichiers ``xztar``." -#: ../Doc/distutils/builtdist.rst:109 +#: distutils/builtdist.rst:109 msgid "Notes:" msgstr "Notes :" -#: ../Doc/distutils/builtdist.rst:112 +#: distutils/builtdist.rst:112 msgid "default on Unix" msgstr "par défaut sur Unix" -#: ../Doc/distutils/builtdist.rst:115 +#: distutils/builtdist.rst:115 msgid "default on Windows" msgstr "par défaut sur Windows" -#: ../Doc/distutils/builtdist.rst:118 +#: distutils/builtdist.rst:118 msgid "requires external :program:`compress` utility." msgstr "nécessite un programme externe :program:`compress`." -#: ../Doc/distutils/builtdist.rst:121 +#: distutils/builtdist.rst:121 msgid "" "requires either external :program:`zip` utility or :mod:`zipfile` module " "(part of the standard Python library since Python 1.6)" @@ -320,7 +324,7 @@ msgstr "" "nécessite soit un utilitaire :program:`zip` extérieur ou le module :mod:" "`zipfile` (inclut dans la bibliothèque standard depuis Python 1.6)" -#: ../Doc/distutils/builtdist.rst:125 +#: distutils/builtdist.rst:125 msgid "" "requires external :program:`rpm` utility, version 3.0.4 or better (use ``rpm " "--version`` to find out which version you have)" @@ -328,16 +332,16 @@ msgstr "" "nécessite un programme externe :program:`rpm`, version 3.0.4 ou mieux " "(utilisez ``rpm --version`` pour connaître quelle version vous avez)" -#: ../Doc/distutils/builtdist.rst:128 +#: distutils/builtdist.rst:128 msgid "" "You don't have to use the :command:`bdist` command with the :option:`!--" "formats` option; you can also use the command that directly implements the " -"format you're interested in. Some of these :command:`bdist` \"sub-commands" -"\" actually generate several similar formats; for instance, the :command:" -"`bdist_dumb` command generates all the \"dumb\" archive formats (``tar``, " -"``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :command:" -"`bdist_rpm` generates both binary and source RPMs. The :command:`bdist` sub-" -"commands, and the formats generated by each, are:" +"format you're interested in. Some of these :command:`bdist` \"sub-" +"commands\" actually generate several similar formats; for instance, the :" +"command:`bdist_dumb` command generates all the \"dumb\" archive formats " +"(``tar``, ``gztar``, ``bztar``, ``xztar``, ``ztar``, and ``zip``), and :" +"command:`bdist_rpm` generates both binary and source RPMs. The :command:" +"`bdist` sub-commands, and the formats generated by each, are:" msgstr "" "Vous ne devez pas utiliser la commande :command:`bdist` avec l'option :" "option:`!--formats` ; Vous pouvez également utiliser la commande qui " @@ -349,52 +353,51 @@ msgstr "" "Les sous-commandes :command:`bdist`, et les formats générés par chacun, " "sont :" -#: ../Doc/distutils/builtdist.rst:138 +#: distutils/builtdist.rst:138 msgid "Command" msgstr "Commande" -#: ../Doc/distutils/builtdist.rst:138 +#: distutils/builtdist.rst:138 msgid "Formats" msgstr "Formats" -#: ../Doc/distutils/builtdist.rst:140 +#: distutils/builtdist.rst:140 msgid ":command:`bdist_dumb`" msgstr ":command:`bdist_dumb`" -#: ../Doc/distutils/builtdist.rst:140 +#: distutils/builtdist.rst:140 msgid "tar, gztar, bztar, xztar, ztar, zip" msgstr "tar, gztar, bztar, xztar, ztar, zip" -#: ../Doc/distutils/builtdist.rst:142 +#: distutils/builtdist.rst:142 msgid ":command:`bdist_rpm`" msgstr ":command:`bdist_rpm`" -#: ../Doc/distutils/builtdist.rst:142 +#: distutils/builtdist.rst:142 msgid "rpm, srpm" msgstr "rpm, srpm" -#: ../Doc/distutils/builtdist.rst:144 +#: distutils/builtdist.rst:144 msgid ":command:`bdist_wininst`" msgstr ":command:`bdist_wininst`" -#: ../Doc/distutils/builtdist.rst:144 +#: distutils/builtdist.rst:144 msgid "wininst" msgstr "wininst" -#: ../Doc/distutils/builtdist.rst:146 +#: distutils/builtdist.rst:146 msgid ":command:`bdist_msi`" msgstr ":command:`bdist_msi`" -#: ../Doc/distutils/builtdist.rst:146 +#: distutils/builtdist.rst:146 msgid "msi" msgstr "msi" -#: ../Doc/distutils/builtdist.rst:150 ../Doc/distutils/builtdist.rst:305 -#: ../Doc/distutils/builtdist.rst:470 +#: distutils/builtdist.rst:305 distutils/builtdist.rst:470 msgid "bdist_wininst is deprecated since Python 3.8." -msgstr "" +msgstr "`bdist_wininst` est obsolète depuis Python 3.8." -#: ../Doc/distutils/builtdist.rst:152 +#: distutils/builtdist.rst:152 msgid "" "The following sections give details on the individual :command:`bdist_\\*` " "commands." @@ -402,11 +405,11 @@ msgstr "" "Le chapitre suivant donne des détails individuel sur les commandes :command:" "`bdist_\\*`." -#: ../Doc/distutils/builtdist.rst:168 +#: distutils/builtdist.rst:168 msgid "Creating RPM packages" msgstr "Créer un paquet RPM" -#: ../Doc/distutils/builtdist.rst:170 +#: distutils/builtdist.rst:170 msgid "" "The RPM format is used by many popular Linux distributions, including Red " "Hat, SuSE, and Mandrake. If one of these (or any of the other RPM-based " @@ -424,7 +427,7 @@ msgstr "" "entre les distributions Linux, vous pourrez aussi créer des RPM qui " "fonctionneront sur des distributions RPM différentes." -#: ../Doc/distutils/builtdist.rst:177 +#: distutils/builtdist.rst:177 msgid "" "The usual way to create an RPM of your module distribution is to run the :" "command:`bdist_rpm` command::" @@ -432,11 +435,11 @@ msgstr "" "La manière habituelle de créer un RPM de votre module est d'utiliser la " "commande :command:`bdist_rpm` ::" -#: ../Doc/distutils/builtdist.rst:182 +#: distutils/builtdist.rst:182 msgid "or the :command:`bdist` command with the :option:`!--format` option::" msgstr "ou la commande :command:`bdist` avec l'option :option:`!--format` ::" -#: ../Doc/distutils/builtdist.rst:186 +#: distutils/builtdist.rst:186 msgid "" "The former allows you to specify RPM-specific options; the latter allows " "you to easily specify multiple formats in one run. If you need to do both, " @@ -448,7 +451,7 @@ msgstr "" "avez besoin d'utiliser les deux, vous pouvez explicitement spécifier " "plusieurs commandes :command:`bdist_\\*` et leurs options ::" -#: ../Doc/distutils/builtdist.rst:193 +#: distutils/builtdist.rst:193 msgid "" "Creating RPM packages is driven by a :file:`.spec` file, much as using the " "Distutils is driven by the setup script. To make your life easier, the :" @@ -465,43 +468,43 @@ msgstr "" "Beaucoup d'options du fichier :file:`.spec` sont dérivées des options du " "script de préparation suivant :" -#: ../Doc/distutils/builtdist.rst:201 ../Doc/distutils/builtdist.rst:225 +#: distutils/builtdist.rst:225 msgid "RPM :file:`.spec` file option or section" msgstr "Option de fichier RPM :file:`.spec`" -#: ../Doc/distutils/builtdist.rst:201 +#: distutils/builtdist.rst:201 msgid "Distutils setup script option" msgstr "Options du script de préparation Distutils" -#: ../Doc/distutils/builtdist.rst:203 +#: distutils/builtdist.rst:203 msgid "Name" msgstr "Nom" -#: ../Doc/distutils/builtdist.rst:203 +#: distutils/builtdist.rst:203 msgid "``name``" msgstr "``name``" -#: ../Doc/distutils/builtdist.rst:205 +#: distutils/builtdist.rst:205 msgid "Summary (in preamble)" msgstr "*Summary* (dans le préambule)" -#: ../Doc/distutils/builtdist.rst:205 +#: distutils/builtdist.rst:205 msgid "``description``" msgstr "``description``" -#: ../Doc/distutils/builtdist.rst:207 +#: distutils/builtdist.rst:207 msgid "Version" msgstr "Version" -#: ../Doc/distutils/builtdist.rst:207 +#: distutils/builtdist.rst:207 msgid "``version``" msgstr "``version``" -#: ../Doc/distutils/builtdist.rst:209 ../Doc/distutils/builtdist.rst:232 +#: distutils/builtdist.rst:232 msgid "Vendor" msgstr "Vendor" -#: ../Doc/distutils/builtdist.rst:209 +#: distutils/builtdist.rst:209 msgid "" "``author`` and ``author_email``, or --- & ``maintainer`` and " "``maintainer_email``" @@ -509,31 +512,31 @@ msgstr "" "``author`` et ``author_email``, ou --- & ``maintainer`` et " "``maintainer_email``" -#: ../Doc/distutils/builtdist.rst:213 +#: distutils/builtdist.rst:213 msgid "Copyright" msgstr "Copyright" -#: ../Doc/distutils/builtdist.rst:213 +#: distutils/builtdist.rst:213 msgid "``license``" msgstr "``license``" -#: ../Doc/distutils/builtdist.rst:215 +#: distutils/builtdist.rst:215 msgid "Url" msgstr "Url" -#: ../Doc/distutils/builtdist.rst:215 +#: distutils/builtdist.rst:215 msgid "``url``" msgstr "``url``" -#: ../Doc/distutils/builtdist.rst:217 +#: distutils/builtdist.rst:217 msgid "%description (section)" msgstr "%description (section)" -#: ../Doc/distutils/builtdist.rst:217 +#: distutils/builtdist.rst:217 msgid "``long_description``" msgstr "``long_description``" -#: ../Doc/distutils/builtdist.rst:220 +#: distutils/builtdist.rst:220 msgid "" "Additionally, there are many options in :file:`.spec` files that don't have " "corresponding options in the setup script. Most of these are handled " @@ -543,118 +546,116 @@ msgstr "" "aucun équivalent dans le script de préparation. La plupart de celles ci sont " "gérées par les options de la commande :command:`bdist_rpm` suivant :" -#: ../Doc/distutils/builtdist.rst:225 +#: distutils/builtdist.rst:225 msgid ":command:`bdist_rpm` option" msgstr "Option de :command:`bdist_rpm`" -#: ../Doc/distutils/builtdist.rst:225 +#: distutils/builtdist.rst:225 msgid "default value" msgstr "valeur par défaut" -#: ../Doc/distutils/builtdist.rst:228 +#: distutils/builtdist.rst:228 msgid "Release" msgstr "Version" -#: ../Doc/distutils/builtdist.rst:228 +#: distutils/builtdist.rst:228 msgid "``release``" msgstr "``release``" -#: ../Doc/distutils/builtdist.rst:228 +#: distutils/builtdist.rst:228 msgid "\"1\"" msgstr "\"1\"" -#: ../Doc/distutils/builtdist.rst:230 +#: distutils/builtdist.rst:230 msgid "Group" msgstr "Group" -#: ../Doc/distutils/builtdist.rst:230 +#: distutils/builtdist.rst:230 msgid "``group``" msgstr "``group``" -#: ../Doc/distutils/builtdist.rst:230 +#: distutils/builtdist.rst:230 msgid "\"Development/Libraries\"" msgstr "\"Développement/Bibliothèques\"" -#: ../Doc/distutils/builtdist.rst:232 +#: distutils/builtdist.rst:232 msgid "``vendor``" msgstr "``vendor``" -#: ../Doc/distutils/builtdist.rst:232 +#: distutils/builtdist.rst:232 msgid "(see above)" msgstr "(voir au-dessus)" -#: ../Doc/distutils/builtdist.rst:234 +#: distutils/builtdist.rst:234 msgid "Packager" msgstr "Packager" -#: ../Doc/distutils/builtdist.rst:234 +#: distutils/builtdist.rst:234 msgid "``packager``" msgstr "``packager``" -#: ../Doc/distutils/builtdist.rst:234 ../Doc/distutils/builtdist.rst:236 -#: ../Doc/distutils/builtdist.rst:238 ../Doc/distutils/builtdist.rst:240 -#: ../Doc/distutils/builtdist.rst:242 ../Doc/distutils/builtdist.rst:244 -#: ../Doc/distutils/builtdist.rst:246 ../Doc/distutils/builtdist.rst:248 +#: distutils/builtdist.rst:236 distutils/builtdist.rst:240 +#: distutils/builtdist.rst:244 distutils/builtdist.rst:248 msgid "(none)" msgstr "(none)" -#: ../Doc/distutils/builtdist.rst:236 +#: distutils/builtdist.rst:236 msgid "Provides" msgstr "Provides" -#: ../Doc/distutils/builtdist.rst:236 +#: distutils/builtdist.rst:236 msgid "``provides``" msgstr "``provides``" -#: ../Doc/distutils/builtdist.rst:238 +#: distutils/builtdist.rst:238 msgid "Requires" msgstr "Requires" -#: ../Doc/distutils/builtdist.rst:238 +#: distutils/builtdist.rst:238 msgid "``requires``" msgstr "``requires``" -#: ../Doc/distutils/builtdist.rst:240 +#: distutils/builtdist.rst:240 msgid "Conflicts" msgstr "Conflicts" -#: ../Doc/distutils/builtdist.rst:240 +#: distutils/builtdist.rst:240 msgid "``conflicts``" msgstr "``conflicts``" -#: ../Doc/distutils/builtdist.rst:242 +#: distutils/builtdist.rst:242 msgid "Obsoletes" msgstr "Obsoletes" -#: ../Doc/distutils/builtdist.rst:242 +#: distutils/builtdist.rst:242 msgid "``obsoletes``" msgstr "``obsoletes``" -#: ../Doc/distutils/builtdist.rst:244 +#: distutils/builtdist.rst:244 msgid "Distribution" msgstr "Distribution" -#: ../Doc/distutils/builtdist.rst:244 +#: distutils/builtdist.rst:244 msgid "``distribution_name``" msgstr "``distribution_name``" -#: ../Doc/distutils/builtdist.rst:246 +#: distutils/builtdist.rst:246 msgid "BuildRequires" msgstr "BuildRequires" -#: ../Doc/distutils/builtdist.rst:246 +#: distutils/builtdist.rst:246 msgid "``build_requires``" msgstr "``build_requires``" -#: ../Doc/distutils/builtdist.rst:248 +#: distutils/builtdist.rst:248 msgid "Icon" msgstr "Icon" -#: ../Doc/distutils/builtdist.rst:248 +#: distutils/builtdist.rst:248 msgid "``icon``" msgstr "``icon``" -#: ../Doc/distutils/builtdist.rst:251 +#: distutils/builtdist.rst:251 msgid "" "Obviously, supplying even a few of these options on the command-line would " "be tedious and error-prone, so it's usually best to put them in the setup " @@ -674,7 +675,7 @@ msgstr "" "pydistutils.cfg`). Si vous voulez temporairement désactiver ce fichier, vous " "pouvez passer l'option :option:`!--no-user-cfg` à :file:`setup.py`." -#: ../Doc/distutils/builtdist.rst:259 +#: distutils/builtdist.rst:259 msgid "" "There are three steps to building a binary RPM package, all of which are " "handled automatically by the Distutils:" @@ -682,7 +683,7 @@ msgstr "" "La création de binaire RPM se fait en trois étapes, chacune gérée " "automatiquement par Distutils :" -#: ../Doc/distutils/builtdist.rst:262 +#: distutils/builtdist.rst:262 msgid "" "create a :file:`.spec` file, which describes the package (analogous to the " "Distutils setup script; in fact, much of the information in the setup " @@ -692,11 +693,11 @@ msgstr "" "préparation Distutils, en réalité la plupart des informations du script de " "préparation se retrouve dans le fichier :file:`.spec`)" -#: ../Doc/distutils/builtdist.rst:266 +#: distutils/builtdist.rst:266 msgid "create the source RPM" msgstr "crée un RPM source" -#: ../Doc/distutils/builtdist.rst:268 +#: distutils/builtdist.rst:268 msgid "" "create the \"binary\" RPM (which may or may not contain binary code, " "depending on whether your module distribution contains Python extensions)" @@ -704,7 +705,7 @@ msgstr "" "crée le RPM \"binaire\" (qui peut ou non contenir des binaires, tout dépend " "de si votre module contiens des extensions)" -#: ../Doc/distutils/builtdist.rst:271 +#: distutils/builtdist.rst:271 msgid "" "Normally, RPM bundles the last two steps together; when you use the " "Distutils, all three steps are typically bundled together." @@ -712,7 +713,7 @@ msgstr "" "Normalement, RPM réunit les deux dernières étapes ensemble ; quand vous " "utilisez Distutils, les trois étapes sont regroupées." -#: ../Doc/distutils/builtdist.rst:274 +#: distutils/builtdist.rst:274 msgid "" "If you wish, you can separate these three steps. You can use the :option:" "`!--spec-only` option to make :command:`bdist_rpm` just create the :file:`." @@ -731,11 +732,11 @@ msgstr "" "fichier :file:`.spec` se retrouve profondément enfoui dans l'arborescence, " "dans un dossier temporaire créé par la commande :command:`bdist_rpm`.)" -#: ../Doc/distutils/builtdist.rst:302 +#: distutils/builtdist.rst:302 msgid "Creating Windows Installers" msgstr "Créer un installateur Windows" -#: ../Doc/distutils/builtdist.rst:307 +#: distutils/builtdist.rst:307 msgid "" "Executable installers are the natural format for binary distributions on " "Windows. They display a nice graphical user interface, display some " @@ -749,7 +750,7 @@ msgstr "" "dans le script de préparation, laisse l'utilisateur choisir quelques options " "et démarrer ou annuler l'installation." -#: ../Doc/distutils/builtdist.rst:313 +#: distutils/builtdist.rst:313 msgid "" "Since the metadata is taken from the setup script, creating Windows " "installers is usually as easy as running::" @@ -757,24 +758,24 @@ msgstr "" "Étant 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 ::" -#: ../Doc/distutils/builtdist.rst:318 +#: distutils/builtdist.rst:318 msgid "or the :command:`bdist` command with the :option:`!--formats` option::" msgstr "ou la commande :command:`bdist` avec l'option :option:`!--formats` ::" -#: ../Doc/distutils/builtdist.rst:322 -#, fuzzy +#: distutils/builtdist.rst:322 msgid "" "If you have a pure module distribution (only containing pure Python modules " "and packages), the resulting installer will be version independent and have " "a name like :file:`foo-1.0.win32.exe`. Note that creating ``wininst`` binary " "distributions in only supported on Windows systems." msgstr "" -"Si vous avez un module pur (contenant seulement des modules et des packages " -"en Python pur), l'installateur final ne sera lié a aucune version de Python " -"et aura un nom du type :file:`foo-1.0.win32.exe`. Ces installateurs peuvent " -"même être créés sur les plateformes Unix ou Mac OS X." +"Si vous avez une distribution de modules purs (contenant seulement des " +"modules et des packages en Python pur), l'installateur produit n'est lié à " +"aucune version de Python et a un nom du type :file:`foo-1.0.win32.exe`. " +"Notez que la création de distributions binaires ``wininst`` n'est prise en " +"charge que sur les systèmes Windows." -#: ../Doc/distutils/builtdist.rst:327 +#: distutils/builtdist.rst:327 msgid "" "If you have a non-pure distribution, the extensions can only be created on a " "Windows platform, and will be Python version dependent. The installer " @@ -788,7 +789,7 @@ msgstr "" "py2.0.exe`. Vous devrez créer un installateur pour chaque version de Python " "que vous voulez supporter." -#: ../Doc/distutils/builtdist.rst:333 +#: distutils/builtdist.rst:333 msgid "" "The installer will try to compile pure modules into :term:`bytecode` after " "installation on the target system in normal and optimizing mode. If you " @@ -802,7 +803,7 @@ msgstr "" "`bdist_wininst` avec l'option :option:`!--no-target-compile` et/ou l'option :" "option:`!--no-target-optimize`." -#: ../Doc/distutils/builtdist.rst:339 +#: distutils/builtdist.rst:339 msgid "" "By default the installer will display the cool \"Python Powered\" logo when " "it is run, but you can also supply your own 152x261 bitmap which must be a " @@ -812,7 +813,7 @@ msgstr "" "vous pouvez aussi donnez votre propre bitmap de 152x261 qui doit être un " "fichier :file:`.bmp` Windows avec l'option :option:`!--bitmap`." -#: ../Doc/distutils/builtdist.rst:343 +#: distutils/builtdist.rst:343 msgid "" "The installer will also display a large title on the desktop background " "window when it is run, which is constructed from the name of your " @@ -824,7 +825,7 @@ msgstr "" "version. Cela peut être changé avec un autre texte avec l'option :option:`!--" "title`." -#: ../Doc/distutils/builtdist.rst:348 +#: distutils/builtdist.rst:348 msgid "" "The installer file will be written to the \"distribution directory\" --- " "normally :file:`dist/`, but customizable with the :option:`!--dist-dir` " @@ -834,11 +835,11 @@ msgstr "" "(\"*distribution directory*\") --- normalement :file:`dist/`, mais " "personnalisable avec l'option :option:`!--dist-dir`." -#: ../Doc/distutils/builtdist.rst:354 +#: distutils/builtdist.rst:354 msgid "Cross-compiling on Windows" msgstr "Compiler pour toute les plateformes Windows" -#: ../Doc/distutils/builtdist.rst:356 +#: distutils/builtdist.rst:356 msgid "" "Starting with Python 2.6, distutils is capable of cross-compiling between " "Windows platforms. In practice, this means that with the correct tools " @@ -850,7 +851,7 @@ msgstr "" "installés, vous pouvez utiliser une version 32 bits de Windows pour créer " "une extension 64 bits et vice-versa." -#: ../Doc/distutils/builtdist.rst:361 +#: distutils/builtdist.rst:361 msgid "" "To build for an alternate platform, specify the :option:`!--plat-name` " "option to the build command. Valid values are currently 'win32', and 'win-" @@ -861,7 +862,7 @@ msgstr "" "actuellement **'win32'**, et **'win-amd64'**. Par exemple, sur une version " "*32bit* de Windows, vous pourriez exécuter ::" -#: ../Doc/distutils/builtdist.rst:367 +#: distutils/builtdist.rst:367 msgid "" "to build a 64bit version of your extension. The Windows Installers also " "support this option, so the command::" @@ -869,7 +870,7 @@ msgstr "" "pour construire une version 64 bits de votre module. L'installateur Windows " "supporte aussi cette option, donc la commande ::" -#: ../Doc/distutils/builtdist.rst:372 +#: distutils/builtdist.rst:372 msgid "" "would create a 64bit installation executable on your 32bit version of " "Windows." @@ -877,7 +878,7 @@ msgstr "" "créera un installateur exécutable 64 bits depuis votre version 32 bits de " "Windows." -#: ../Doc/distutils/builtdist.rst:374 +#: distutils/builtdist.rst:374 msgid "" "To cross-compile, you must download the Python source code and cross-compile " "Python itself for the platform you are targeting - it is not possible from a " @@ -897,7 +898,7 @@ msgstr "" "l'arborescence des sources de Python et construire la version *x64* du " "projet *pythoncore* avant de pouvoir compiler son extension." -#: ../Doc/distutils/builtdist.rst:383 +#: distutils/builtdist.rst:383 msgid "" "Note that by default, Visual Studio 2008 does not install 64bit compilers or " "tools. You may need to reexecute the Visual Studio setup process and select " @@ -910,11 +911,11 @@ msgstr "" "> [Ajouter/Supprimer]* est un bon moyen de vérifier ou modifier votre " "installation existante.)" -#: ../Doc/distutils/builtdist.rst:391 +#: distutils/builtdist.rst:391 msgid "The Postinstallation script" msgstr "Le script de post-installation" -#: ../Doc/distutils/builtdist.rst:393 +#: distutils/builtdist.rst:393 msgid "" "Starting with Python 2.3, a postinstallation script can be specified with " "the :option:`!--install-script` option. The basename of the script must be " @@ -925,7 +926,7 @@ msgstr "" "l'option :option:`!--install-script`. Le nom du script doit être spécifié et " "présent dans l'argument \"scripts\" de la fonction ``setup``." -#: ../Doc/distutils/builtdist.rst:398 +#: distutils/builtdist.rst:398 msgid "" "This script will be run at installation time on the target system after all " "the files have been copied, with ``argv[1]`` set to :option:`!-install`, and " @@ -938,7 +939,7 @@ msgstr "" "que les fichiers soient supprimés avec la valeur de ``argv[1]`` à :option:`!-" "remove`." -#: ../Doc/distutils/builtdist.rst:403 +#: distutils/builtdist.rst:403 msgid "" "The installation script runs embedded in the windows installer, every output " "(``sys.stdout``, ``sys.stderr``) is redirected into a buffer and will be " @@ -948,7 +949,7 @@ msgstr "" "chaque sortie (``sys.stdout``, ``sys.stderr``) est redirigé dans le tampon " "et sera affiché dans le GUI après que les scripts soient finis." -#: ../Doc/distutils/builtdist.rst:407 +#: distutils/builtdist.rst:407 msgid "" "Some functions especially useful in this context are available as additional " "built-in functions in the installation script." @@ -956,7 +957,7 @@ msgstr "" "Certaines fonctions spécialement utiles dans ce contexte sont disponibles " "comme fonctions natives additionnelles dans le script d'installation." -#: ../Doc/distutils/builtdist.rst:414 +#: distutils/builtdist.rst:414 msgid "" "These functions should be called when a directory or file is created by the " "postinstall script at installation time. It will register *path* with the " @@ -969,7 +970,7 @@ msgstr "" "lors de la des-installation de la distribution. pour être sûr, les " "répertoires sont uniquement retirés s'ils sont vides." -#: ../Doc/distutils/builtdist.rst:422 +#: distutils/builtdist.rst:422 msgid "" "This function can be used to retrieve special folder locations on Windows " "like the Start Menu or the Desktop. It returns the full path to the folder. " @@ -980,11 +981,11 @@ msgstr "" "renvoie le chemin complet pour le fichier. *csidl_string* doit être unes des " "chaines suivantes ::" -#: ../Doc/distutils/builtdist.rst:442 +#: distutils/builtdist.rst:442 msgid "If the folder cannot be retrieved, :exc:`OSError` is raised." msgstr "Si le fichier ne peut être extrait, :exc:`OSError` est obtenu.." -#: ../Doc/distutils/builtdist.rst:444 +#: distutils/builtdist.rst:444 msgid "" "Which folders are available depends on the exact Windows version, and " "probably also the configuration. For details refer to Microsoft's " @@ -994,7 +995,7 @@ msgstr "" "probablement aussi de la configuration. pour des détails se référer à la " "documentation Microsoft de la fonction :c:func:`SHGetSpecialFolderPath`." -#: ../Doc/distutils/builtdist.rst:451 +#: distutils/builtdist.rst:451 msgid "" "This function creates a shortcut. *target* is the path to the program to be " "started by the shortcut. *description* is the description of the shortcut. " @@ -1014,11 +1015,11 @@ msgstr "" "l’icône dans le fichier *cheminIcone*. Encore, pour les détails consulter la " "documentation Microsoft pour l'interface :class:`ILienShell`." -#: ../Doc/distutils/builtdist.rst:462 +#: distutils/builtdist.rst:462 msgid "Vista User Access Control (UAC)" msgstr "Contrôle d'accès utilisateur Vista (UAC)" -#: ../Doc/distutils/builtdist.rst:464 +#: distutils/builtdist.rst:464 msgid "" "Starting with Python 2.6, bdist_wininst supports a :option:`!--user-access-" "control` option. The default is 'none' (meaning no UAC handling is done), " diff --git a/distutils/commandref.po b/distutils/commandref.po index d33b0f3f3c..8c02e749dd 100644 --- a/distutils/commandref.po +++ b/distutils/commandref.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-10-04 15:27+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 20:09+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/commandref.rst:5 msgid "Command Reference" @@ -24,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/commandref.rst:24 msgid "Installing modules: the :command:`install` command family" diff --git a/distutils/configfile.po b/distutils/configfile.po index 455bf68265..334b1c4fc9 100644 --- a/distutils/configfile.po +++ b/distutils/configfile.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:19+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/configfile.rst:5 msgid "Writing the Setup Configuration File" @@ -24,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/configfile.rst:9 msgid "" diff --git a/distutils/examples.po b/distutils/examples.po index 67851d4222..2e560c7794 100644 --- a/distutils/examples.po +++ b/distutils/examples.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:20+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/examples.rst:5 #, fuzzy @@ -25,6 +26,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/examples.rst:9 msgid "" diff --git a/distutils/extending.po b/distutils/extending.po index c39f65dbc9..fe5eaaa32b 100644 --- a/distutils/extending.po +++ b/distutils/extending.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-11-30 14:00+0100\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:20+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/extending.rst:5 msgid "Extending Distutils" @@ -25,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/extending.rst:9 msgid "" diff --git a/distutils/index.po b/distutils/index.po index 73adcb472d..caef672127 100644 --- a/distutils/index.po +++ b/distutils/index.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-07-04 11:20+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:20+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/index.rst:5 msgid "Distributing Python Modules (Legacy version)" @@ -48,6 +49,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/index.rst:19 msgid "" @@ -65,7 +70,6 @@ msgstr "" "d'informations." #: ../Doc/distutils/index.rst:25 -#, fuzzy msgid "" "This document describes the Python Distribution Utilities (\"Distutils\") " "from the module developer's point of view, describing the underlying " @@ -73,7 +77,7 @@ msgid "" "make Python modules and extensions readily available to a wider audience." msgstr "" "Ce document décrit les outils de distribution de Python (\"Distutils\") du " -"point de vue d'un développeur de modules. Il décrit comment utiliser " -"`Distutils` pour rendre des modules et extensions Python disponible à une " -"large audience, simplement, avec un faible surcoût sur les mécaniques de " -"construction, déploiement et installation." +"point de vue d'un développeur de modules. Il décrit les capacités sous-" +"jacentes sur lesquelles ``setuptools`` s'appuie pour permettre aux " +"développeurs Python de créer des modules Python et des extensions " +"disponibles à une large audience." diff --git a/distutils/introduction.po b/distutils/introduction.po index 3feebbe558..3ebd83b55d 100644 --- a/distutils/introduction.po +++ b/distutils/introduction.po @@ -3,69 +3,82 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3.8\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-03-23 14:58+0100\n" +"Last-Translator: Eric Régnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/distutils/introduction.rst:5 +#: distutils/introduction.rst:5 msgid "An Introduction to Distutils" -msgstr "" +msgstr "Introduction à Distutils" -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/distutils/introduction.rst:9 +#: distutils/introduction.rst:9 msgid "" "This document covers using the Distutils to distribute your Python modules, " "concentrating on the role of developer/distributor: if you're looking for " "information on installing Python modules, you should refer to the :ref:" "`install-index` chapter." msgstr "" +"Ce document traite de l'utilisation de Distutils pour distribuer des modules " +"Python, en se concentrant sur le rôle de développeur/distributeur : si vous " +"cherchez des informations sur l'installation de modules Python, vous devriez " +"vous référer au chapitre :ref:`install-index`." -#: ../Doc/distutils/introduction.rst:18 +#: distutils/introduction.rst:18 msgid "Concepts & Terminology" msgstr "Concepts et Terminologie" -#: ../Doc/distutils/introduction.rst:20 +#: distutils/introduction.rst:20 msgid "" "Using the Distutils is quite simple, both for module developers and for " "users/administrators installing third-party modules. As a developer, your " "responsibilities (apart from writing solid, well-documented and well-tested " "code, of course!) are:" msgstr "" +"Utiliser Distuils est assez simple, à la fois pour les développeurs de " +"module et pour les utilisateurs/administrateurs qui installent des modules " +"tiers. En tant que développeur, vos responsabilités (en plus d'écrire du " +"code solide, bien documenté et bien testé, bien entendu !) sont :" -#: ../Doc/distutils/introduction.rst:25 +#: distutils/introduction.rst:25 msgid "write a setup script (:file:`setup.py` by convention)" -msgstr "" +msgstr "écrire un script d'installation (:file:`setup.py` par convention) ;" -#: ../Doc/distutils/introduction.rst:27 +#: distutils/introduction.rst:27 msgid "(optional) write a setup configuration file" -msgstr "" +msgstr "(optionnel) écrire un fichier de configuration pour l'installation ;" -#: ../Doc/distutils/introduction.rst:29 +#: distutils/introduction.rst:29 msgid "create a source distribution" -msgstr "" +msgstr "créer une distribution source ;" -#: ../Doc/distutils/introduction.rst:31 +#: distutils/introduction.rst:31 msgid "(optional) create one or more built (binary) distributions" -msgstr "" +msgstr "(optionnel) créer une ou plusieurs distributions compilées (binaires)." -#: ../Doc/distutils/introduction.rst:33 +#: distutils/introduction.rst:33 msgid "Each of these tasks is covered in this document." -msgstr "" +msgstr "Chacune de ces tâches est couverte dans ce document." -#: ../Doc/distutils/introduction.rst:35 +#: distutils/introduction.rst:35 msgid "" "Not all module developers have access to a multitude of platforms, so it's " "not always feasible to expect them to create a multitude of built " @@ -77,12 +90,22 @@ msgid "" "module distributions in the most natural way for their platform, without " "having to run a single setup script or compile a line of code." msgstr "" - -#: ../Doc/distutils/introduction.rst:49 +"Tous les développeurs de modules n'ont pas accès à une multitude de " +"plateformes, donc on ne peut pas exiger d'eux qu'ils créent une multitude de " +"distributions compilées. On s'attend à ce que certains intermédiaires, " +"appelés *packagers*, prennent en charge ce besoin. Les packagers vont " +"prendre les sources des distributions publiées par les développeurs de " +"modules, les construire sur on ou plusieurs plateformes, et publier les " +"distributions compilées résultantes. Ainsi, les utilisateurs sur les " +"plateformes les plus populaires vont pouvoir installer la plupart des " +"modules Python de la façon la plus naturelle qui soit pour leur plateforme, " +"sans avoir à exécuter de script ou à compiler du code." + +#: distutils/introduction.rst:49 msgid "A Simple Example" msgstr "Un exemple simple" -#: ../Doc/distutils/introduction.rst:51 +#: distutils/introduction.rst:51 msgid "" "The setup script is usually quite simple, although since it's written in " "Python, there are no arbitrary limits to what you can do with it, though you " @@ -91,78 +114,113 @@ msgid "" "script may be run multiple times in the course of building and installing " "your module distribution." msgstr "" +"Le script d'installation est habituellement assez simple, même s'il n'y a " +"pas de limite à ce qu'il peut faire (il est écrit en Python, n'est-ce " +"pas ?). Veillez d'ailleurs à ne pas surcharger ce script avec des opérations " +"coûteuses car, contrairement aux scripts de configuration façon Autoconf, le " +"script d'installation peut être amené à être exécuté plusieurs fois au cours " +"de la compilation et de l'installation du module. " -#: ../Doc/distutils/introduction.rst:58 +#: distutils/introduction.rst:58 msgid "" "If all you want to do is distribute a module called :mod:`foo`, contained in " "a file :file:`foo.py`, then your setup script can be as simple as this::" msgstr "" +"Si tout ce que vous voulez est de distribuer un module appelé :mod:`foo`, " +"contenu dans un fichier :file:`foo.py`, alors votre script d'installation " +"peut se résumer à :" -#: ../Doc/distutils/introduction.rst:67 +#: distutils/introduction.rst:67 msgid "Some observations:" -msgstr "" +msgstr "Quelques observations :" -#: ../Doc/distutils/introduction.rst:69 +#: distutils/introduction.rst:69 msgid "" "most information that you supply to the Distutils is supplied as keyword " "arguments to the :func:`setup` function" msgstr "" +"la plupart des informations que vous fournissez à Distutils sont fournies en " +"tant que qu'arguments nommés à la fonction :func:`setup`;" -#: ../Doc/distutils/introduction.rst:72 +#: distutils/introduction.rst:72 msgid "" "those keyword arguments fall into two categories: package metadata (name, " "version number) and information about what's in the package (a list of pure " "Python modules, in this case)" msgstr "" +"ces arguments nommés tombent dans deux catégories : métadonnées du paquet " +"(nom, numéro de version) et des informations sur le contenu du paquet paquet " +"(une liste de purs modules Python, dans ce cas) ; " -#: ../Doc/distutils/introduction.rst:76 +#: distutils/introduction.rst:76 msgid "" "modules are specified by module name, not filename (the same will hold true " "for packages and extensions)" msgstr "" +"les modules sont listés par nom de module, plutôt que par nom de fichier (le " +"cas est similaire pour les paquets et extensions) ;" -#: ../Doc/distutils/introduction.rst:79 +#: distutils/introduction.rst:79 msgid "" "it's recommended that you supply a little more metadata, in particular your " "name, email address and a URL for the project (see section :ref:`setup-" "script` for an example)" msgstr "" +"il est recommandé de fournir un minimum de métadonnées, en particulier votre " +"nom, une adresse de courriel et une URL pour le projet (voir section :ref:" +"`setup-script` pour un exemple)." -#: ../Doc/distutils/introduction.rst:83 +#: distutils/introduction.rst:83 msgid "" "To create a source distribution for this module, you would create a setup " "script, :file:`setup.py`, containing the above code, and run this command " "from a terminal::" msgstr "" +"Pour créer une distribution source pour ce module, il faut créer un script " +"d'installation, :file:`setup.py`, contenant le code ci-dessus, et exécuter " +"cette commande depuis un terminal :" -#: ../Doc/distutils/introduction.rst:89 +#: distutils/introduction.rst:89 msgid "" "For Windows, open a command prompt window (:menuselection:`Start --> " "Accessories`) and change the command to::" msgstr "" +"Pour Windows, ouvrez une invite de commande (:menuselection:`Démarrer --> " +"Accessoires`) et changez la commande en :" -#: ../Doc/distutils/introduction.rst:94 +#: distutils/introduction.rst:94 msgid "" ":command:`sdist` will create an archive file (e.g., tarball on Unix, ZIP " "file on Windows) containing your setup script :file:`setup.py`, and your " "module :file:`foo.py`. The archive file will be named :file:`foo-1.0.tar.gz` " "(or :file:`.zip`), and will unpack into a directory :file:`foo-1.0`." msgstr "" +":command:`sdist` va créer un fichier d'archive (p. ex. une archive *tar* sur " +"Unix, un fichier ZIP sous Windows) contenant votre script d'installation :" +"file:`setup.py`, et votre module :file:`foo.py`. Le fichier d'archive va " +"être nommé :file:`foo-1.0.tar.gz` (ou :file:`.zip`), et va se décompresser " +"dans un répertoire :file:`foo-1.0`." -#: ../Doc/distutils/introduction.rst:99 +#: distutils/introduction.rst:99 msgid "" "If an end-user wishes to install your :mod:`foo` module, all they have to do " "is download :file:`foo-1.0.tar.gz` (or :file:`.zip`), unpack it, and---from " "the :file:`foo-1.0` directory---run ::" msgstr "" +"Si un utilisateur final souhaite installer votre module :mod:`foo`, tout ce " +"qu'il aura à faire est de télécharger le fichier :file:`foo-1.0.tar.gz` (ou :" +"file:`.zip`), le décompresser et ---depuis le répertoire :file:`foo-1.0`--- " +"exécuter :" -#: ../Doc/distutils/introduction.rst:105 +#: distutils/introduction.rst:105 msgid "" "which will ultimately copy :file:`foo.py` to the appropriate directory for " "third-party modules in their Python installation." msgstr "" +"ce qui va finalement copier :file:`foo.py` dans le répertoire approprié pour " +"un module tiers dans son installation Python." -#: ../Doc/distutils/introduction.rst:108 +#: distutils/introduction.rst:108 msgid "" "This simple example demonstrates some fundamental concepts of the Distutils. " "First, both developers and installers have the same basic user interface, i." @@ -171,8 +229,15 @@ msgid "" "while :command:`install` is more often for installers (although most " "developers will want to install their own code occasionally)." msgstr "" +"Ce simple exemple démontre des concepts fondamentaux de Distutils, " +"Premièrement, les développeurs et installeurs ont la même interface " +"utilisateur basique, p. ex. le script d'installation. La différence est " +"quelle *commande* Distutils ils utilisent : la commande :command:`sdist` est " +"quasiment exclusivement pour les développeurs de modules Python, tandis que :" +"command:`install` est plus souvent pour les installeurs (bien que la plupart " +"des développeurs vont vouloir installer leur code occasionnellement)." -#: ../Doc/distutils/introduction.rst:115 +#: distutils/introduction.rst:115 msgid "" "If you want to make things really easy for your users, you can create one or " "more built distributions for them. For instance, if you are running on a " @@ -181,73 +246,101 @@ msgid "" "distribution for this platform) with the :command:`bdist_wininst` command. " "For example::" msgstr "" +"Si vous voulez rendre les choses vraiment faciles pour vos utilisateurs, " +"vous pouvez créer on ou plusieurs distributions compilées pour eux. En " +"l’occurrence, si vous tournez sous une machine Windows, et que vous voulez " +"rendre les choses faciles pour les autres utilisateurs Windows, vous pouvez " +"créer un installateur exécutable (le mode de distribution le plus approprié " +"pour cette plateforme) avec la commande :command:`bdist_wininst`. Par " +"exemple :" -#: ../Doc/distutils/introduction.rst:123 +#: distutils/introduction.rst:123 msgid "" "will create an executable installer, :file:`foo-1.0.win32.exe`, in the " "current directory." msgstr "" +"va créer une installeur exécutable, :file:`foo-1.0.win32.exe`, dans le " +"répertoire courant." -#: ../Doc/distutils/introduction.rst:126 +#: distutils/introduction.rst:126 msgid "" "Other useful built distribution formats are RPM, implemented by the :command:" "`bdist_rpm` command, Solaris :program:`pkgtool` (:command:`bdist_pkgtool`), " "and HP-UX :program:`swinstall` (:command:`bdist_sdux`). For example, the " "following command will create an RPM file called :file:`foo-1.0.noarch.rpm`::" msgstr "" +"D'autres formats de distributions compilés utiles sont RPM, implémenté par " +"la commande :command:`bdist_rpm`, Solaris :program:`pkgtool` (:command:" +"`bdist_pkgtool`), et HP-UX :program:`swinstall` (:command:`bdist_sdux`). Par " +"exemple, la commande suivante va créer un fichier RPM appelé :file:`foo-1.0." +"noarch.rpm`::" -#: ../Doc/distutils/introduction.rst:134 +#: distutils/introduction.rst:134 msgid "" "(The :command:`bdist_rpm` command uses the :command:`rpm` executable, " "therefore this has to be run on an RPM-based system such as Red Hat Linux, " "SuSE Linux, or Mandrake Linux.)" msgstr "" +"(La commande :command:`bdist_rpm` utilise l'exécutable :command:`rpm`, " +"cependant cela doit être exécuté sur un système basé sur RPM tel que Red Hat " +"Linux, SuSE Linux, or Mandrake Linux.)" -#: ../Doc/distutils/introduction.rst:138 +#: distutils/introduction.rst:138 msgid "" "You can find out what distribution formats are available at any time by " "running ::" msgstr "" +"Vous pouvez trouver quelles sont les formats de distribution disponibles à " +"n'importe quel moment en exécutant :" -#: ../Doc/distutils/introduction.rst:147 +#: distutils/introduction.rst:147 msgid "General Python terminology" -msgstr "" +msgstr "Terminologie Python générale" -#: ../Doc/distutils/introduction.rst:149 +#: distutils/introduction.rst:149 msgid "" "If you're reading this document, you probably have a good idea of what " "modules, extensions, and so forth are. Nevertheless, just to be sure that " "everyone is operating from a common starting point, we offer the following " "glossary of common Python terms:" msgstr "" +"Si vous lisez ce document, vous avez probablement une bonne idée de ce que " +"sont les modules, extensions, etc. Néanmoins, juste pour être sur que tout " +"le monde opère depuis un point d'entrée commun, nous reprécisons le " +"glossaire suivant des termes Python communs :" -#: ../Doc/distutils/introduction.rst:157 +#: distutils/introduction.rst:157 msgid "module" msgstr "module" -#: ../Doc/distutils/introduction.rst:155 +#: distutils/introduction.rst:155 msgid "" "the basic unit of code reusability in Python: a block of code imported by " "some other code. Three types of modules concern us here: pure Python " "modules, extension modules, and packages." msgstr "" +"unité de base de la réutilisabilité en Python : un bloc de code importé par " +"un autre code. Trois types de modules nous concernent ici : les purs modules " +"Python, les modules d'extension, et les packages." -#: ../Doc/distutils/introduction.rst:162 +#: distutils/introduction.rst:162 msgid "pure Python module" -msgstr "" +msgstr "pur module Python" -#: ../Doc/distutils/introduction.rst:160 +#: distutils/introduction.rst:160 msgid "" "a module written in Python and contained in a single :file:`.py` file (and " "possibly associated :file:`.pyc` files). Sometimes referred to as a \"pure " "module.\"" msgstr "" +"un module écrit en Python et contenu dans un seul fichier :file:`.py` (et " +"possiblement un fichier :file:`.pyc` associé). Parfois appelé \"pur module.\"" -#: ../Doc/distutils/introduction.rst:170 +#: distutils/introduction.rst:170 msgid "extension module" msgstr "module d'extension" -#: ../Doc/distutils/introduction.rst:165 +#: distutils/introduction.rst:165 msgid "" "a module written in the low-level language of the Python implementation: C/C+" "+ for Python, Java for Jython. Typically contained in a single dynamically " @@ -257,23 +350,33 @@ msgid "" "(Note that currently, the Distutils only handles C/C++ extensions for " "Python.)" msgstr "" +"un module écrit dans un langage de bas niveau de l'implémentation Python: C/" +"C++ pour Python, Java pour Jython. Typiquement contenu dans un unique " +"fichier pré-compilé chargeable, p. ex. un fichier objet partagé (:file:`." +"so`) pour des extensions Python sous Unix, un fichier DLL (étant donné " +"l'extension :file:`.pyd`) pour les extensions Python sous Windows, ou un " +"fichier de classe Java pour les extensions Jython (notez qu'actuellement, " +"Distutils gère seulement les extensions Python C/C++)." -#: ../Doc/distutils/introduction.rst:175 +#: distutils/introduction.rst:175 msgid "package" msgstr "paquet" -#: ../Doc/distutils/introduction.rst:173 +#: distutils/introduction.rst:173 msgid "" "a module that contains other modules; typically contained in a directory in " "the filesystem and distinguished from other directories by the presence of a " "file :file:`__init__.py`." msgstr "" +"un module qui contient d'autres modules ; très souvent contenu dans un " +"répertoire du système de fichier et qui se distingue des autres répertoires " +"par la présence d'un fichier :file:`__init__.py`." -#: ../Doc/distutils/introduction.rst:185 +#: distutils/introduction.rst:185 msgid "root package" msgstr "paquet racine" -#: ../Doc/distutils/introduction.rst:178 +#: distutils/introduction.rst:178 msgid "" "the root of the hierarchy of packages. (This isn't really a package, since " "it doesn't have an :file:`__init__.py` file. But we have to call it " @@ -283,22 +386,32 @@ msgid "" "package can be found in many directories: in fact, every directory listed in " "``sys.path`` contributes modules to the root package." msgstr "" +"la racine de la hiérarchie de paquets. (Ce n'est pas vraiment un paquet, " +"puisqu'il n'a pas un fichier :file:`__init__.py`. Mais nous devons bien le " +"nommer.) La grande majorité de la bibliothèque standard est dans le package " +"racine, comme le sont certains petits, des packages tiers autonomes qui " +"n'appartiennent pas à une un module plus grand. Contrairement aux packages " +"réguliers, les modules dans le package racine peuvent être trouvés dans " +"plusieurs répertoires : en effet, tous les répertoires listés ``sys.path`` " +"contribuent à faire partie du package racine." -#: ../Doc/distutils/introduction.rst:190 +#: distutils/introduction.rst:190 msgid "Distutils-specific terminology" -msgstr "" +msgstr "Terminologie spécifique à Distutils" -#: ../Doc/distutils/introduction.rst:192 +#: distutils/introduction.rst:192 msgid "" "The following terms apply more specifically to the domain of distributing " "Python modules using the Distutils:" msgstr "" +"Les termes suivant s'appliquent plus spécifiquement au domaine de la " +"distribution de modules Python en utilisant les Distutils :" -#: ../Doc/distutils/introduction.rst:201 +#: distutils/introduction.rst:201 msgid "module distribution" -msgstr "" +msgstr "module de distribution" -#: ../Doc/distutils/introduction.rst:196 +#: distutils/introduction.rst:196 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 " @@ -306,34 +419,47 @@ msgid "" "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 "" +"une collection de modules Python distribués ensemble, comme une unique " +"ressource téléchargeable et ayant pour but d'être installé *en bloc*. Des " +"exemples de modules distribués bien connus sont *NumPy*, *SciPy*, *Pillow*, " +"ou *mxBase*. (On pourrait les appeler des *packages*, malgré que le terme " +"soit déjà pris dans le contexte Python : une distribution de module simple " +"pourrait contenir zéro, on ou plusieurs packages Python" -#: ../Doc/distutils/introduction.rst:205 +#: distutils/introduction.rst:205 msgid "pure module distribution" -msgstr "" +msgstr "distribution de modules purs" -#: ../Doc/distutils/introduction.rst:204 +#: distutils/introduction.rst:204 msgid "" "a module distribution that contains only pure Python modules and packages. " "Sometimes referred to as a \"pure distribution.\"" msgstr "" +"une distribution de module qui contient seulement des modules purs et " +"packages Python. Parfois appelée « distribution pure »." -#: ../Doc/distutils/introduction.rst:209 +#: distutils/introduction.rst:209 msgid "non-pure module distribution" -msgstr "" +msgstr "distribution de module non pur" -#: ../Doc/distutils/introduction.rst:208 +#: distutils/introduction.rst:208 msgid "" "a module distribution that contains at least one extension module. " "Sometimes referred to as a \"non-pure distribution.\"" msgstr "" +"une distribution de module qui contient au moins un module d'extension. " +"Parfois appelée « distribution non-pure »." -#: ../Doc/distutils/introduction.rst:213 +#: distutils/introduction.rst:213 msgid "distribution root" -msgstr "" +msgstr "distribution racine" -#: ../Doc/distutils/introduction.rst:212 +#: distutils/introduction.rst:212 msgid "" "the top-level directory of your source tree (or source distribution); the " "directory where :file:`setup.py` exists. Generally :file:`setup.py` will " "be run from this directory." msgstr "" +"le répertoire de plus haut niveau de votre arborescence (ou distribution " +"source) ; le répertoire ou :file:`setup.py` existe. Généralement :file:" +"`setup.py` est exécuté depuis ce répertoire." diff --git a/distutils/packageindex.po b/distutils/packageindex.po index 509fb0e54c..bb01b8befc 100644 --- a/distutils/packageindex.po +++ b/distutils/packageindex.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2019-08-21 12:33+0200\n" diff --git a/distutils/setupscript.po b/distutils/setupscript.po index 4313bedda7..652af7e1c4 100644 --- a/distutils/setupscript.po +++ b/distutils/setupscript.po @@ -3,20 +3,21 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-04-16 22:30+0200\n" +"Last-Translator: Philippe GALVAN\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/distutils/setupscript.rst:5 msgid "Writing the Setup Script" -msgstr "" +msgstr "Rédaction du script ``setup.py``" #: ../Doc/distutils/_setuptools_disclaimer.rst:3 msgid "" @@ -24,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Ce document est conservé uniquement jusqu'à ce que la documentation de " +"``setuptools``, présente à l'adresse https://setuptools.readthedocs.io/en/" +"latest/setuptools.html, couvre indépendamment toutes les informations " +"pertinentes actuellement incluses ici." #: ../Doc/distutils/setupscript.rst:9 msgid "" @@ -36,6 +41,15 @@ msgid "" "Distutils by the module developer is supplied as keyword arguments to :func:" "`setup`." msgstr "" +"Le script ``setup.py`` est au centre de toute opération de construction, de " +"distribution et d'installation des modules utilisant les *Distutils*. " +"L'objectif principal du script ``setup.py`` est de décrire le module aux " +"*Distutils*, de telle sorte que les diverses commandes qui agissent sur " +"votre module fassent les bonnes choses. Comme nous avons vu dans la section :" +"ref:`distutils-simple-example` au-dessus, le script ``setup.py`` consiste " +"principalement à un appel à :func:`setup`, et la plupart des informations " +"fournies aux *Distutils* par le développeur du module sont fournies en tant " +"qu'arguments nommés à :func:`setup.py`." #: ../Doc/distutils/setupscript.rst:17 msgid "" @@ -46,6 +60,14 @@ msgid "" "install other module distributions. The Distutils' own setup script, shown " "here, is used to install the package into Python 1.5.2.) ::" msgstr "" +"Voici un exemple un peu plus concret, que nous allons suivre pour les " +"quelques sections suivantes : le propre script ``setup.py`` des *Distutils* " +"(gardez toujours à l'esprit qu'en dépit de l'inclusion des *Distutils* dans " +"python 1.6 et ses versions successives, ils ont aussi une existence à part " +"entière de telle sorte que les utilisateurs de Python 1.5.2 puissent les " +"utiliser pour installer d'autres modules. Le propre script ``setup.py`` des " +"*Distutils* montré ici est utilisé pour installer le paquet dans Python " +"1.5.2). ::" #: ../Doc/distutils/setupscript.rst:37 msgid "" @@ -57,6 +79,14 @@ msgid "" "module would be tedious to generate and difficult to maintain. For more " "information on the additional meta-data, see section :ref:`meta-data`." msgstr "" +"Il y a seulement deux différences entre cet exemple et l'exemple trivial de " +"la distribution d'un unique fichier présenté dans la partie :ref:`distutils-" +"simple-example` : plus de métadonnées, et la définition de modules purement " +"Python par paquet, plutôt que par module. C'est important car les " +"*Distutils* sont composés de quelques douzaines de modules séparés (pour le " +"moment) en deux paquets ; une liste explicite de chaque module serait " +"pénible à générer et difficile à maintenir. Pour plus d'information sur les " +"métadonnées supplémentaires, voir la partie :ref:`meta-data`." #: ../Doc/distutils/setupscript.rst:45 msgid "" @@ -68,6 +98,15 @@ msgid "" "systems, which of course is one of the major goals of the Distutils. In " "this spirit, all pathnames in this document are slash-separated." msgstr "" +"À noter que chaque chemin d'accès fourni au script ``setup.py`` doit être " +"écrit selon la convention Unix. Autrement dit, séparé par des barres " +"obliques (slash). Les *Distutils* prendront soin de convertir cette " +"représentation indépendante de la plateforme en une représentation adaptée à " +"votre plateforme actuelle avant d'effectivement utiliser le chemin d'accès. " +"Cela rend votre script ``setup.py`` portable d'un système d'exploitation à " +"l'autre, ce qui évidemment est l'un des buts majeurs des *Distutils*. Dans " +"cet esprit, tous les chemins d'accès dans ce document sont séparés par des " +"barres obliques (slash)." #: ../Doc/distutils/setupscript.rst:53 msgid "" @@ -76,10 +115,15 @@ msgid "" "or :func:`os.listdir` to specify files, you should be careful to write " "portable code instead of hardcoding path separators::" msgstr "" +"Cela, évidemment, s'applique uniquement aux chemins d'accès passés aux " +"fonctions de *Distutils*. Si vous, par exemple, vous utilisez les fonctions " +"standards de Python telles que :func:`glob.glob` or :func:`os.listdir` pour " +"définir des fichiers, vous devez prendre soin d'écrire du code portable au " +"lieu de coder en dur les séparateurs de chemin ::" #: ../Doc/distutils/setupscript.rst:65 msgid "Listing whole packages" -msgstr "" +msgstr "Lister l'ensemble des paquets" #: ../Doc/distutils/setupscript.rst:67 msgid "" @@ -96,6 +140,19 @@ msgid "" "break this promise, the Distutils will issue a warning but still process the " "broken package anyway." msgstr "" +"L'option ``packages`` dit aux *Distutils* de traiter (construire, " +"distribuer, installer, etc.) tous les modules en Python pur trouvés dans " +"chaque paquet mentionné dans la liste ``packages``. À cette fin, évidemment, " +"il faut une correspondance entre les noms des paquets et des répertoires " +"dans le système de fichiers. La correspondance par défaut est la plus " +"évidente. À savoir : le paquet :mod:`distutils` se trouve dans le " +"répertoire :file:`distutils` situé à la racine de la distribution. Ainsi, " +"quand vous écrivez ``packages = ['foo']`` dans votre script ``setup.py``, " +"vous vous engagez à ce que les *Distutils* trouvent un fichier ``foo/" +"__init__.py`` (qui peut s'épeler différemment sur votre système, mais vous " +"voyez l'idée) à un emplacement relatif au répertoire où se trouve le script " +"``setup.py``. Si ce n'est pas le cas, les *Distutils* lèvent un " +"avertissement mais traitent tout de même le paquet défectueux." #: ../Doc/distutils/setupscript.rst:79 msgid "" @@ -106,6 +163,14 @@ msgid "" "in any package at all) are in :file:`lib`, modules in the :mod:`foo` package " "are in :file:`lib/foo`, and so forth. Then you would put ::" msgstr "" +"Si vous utilisez une convention différente pour arranger votre répertoire de " +"sources, ce n'est pas un problème : vous avez seulement à fournir l'option " +"``package_dir`` pour prévenir les *Distutils* de l'usage de cette " +"convention. Par exemple, supposons que vous gardez toutes les sources Python " +"sous :file:`lib`, de telle sorte que les modules dans le « paquet " +"racine » (c'est-à-dire dans aucun paquet du tout) sont dans :file:`lib`, les " +"modules dans le paquet :mod:`foo` sont dans :file:`lib/foo`, et ainsi de " +"suite. Alors, vous pouvez mettre ::" #: ../Doc/distutils/setupscript.rst:88 msgid "" @@ -115,6 +180,11 @@ msgid "" "``packages = ['foo']``, you are promising that the file :file:`lib/foo/" "__init__.py` exists." msgstr "" +"dans votre script ``setup.py``. Les clés de ce dictionnaire sont les noms " +"des paquets, et un nom de paquet vide fait office de paquet racine. Les " +"valeurs sont des noms de répertoires relatifs à la racine de votre " +"distribution. Dans ce cas, lorsque vous dites ``packages = ['foo']``, vous " +"vous engagez à ce que le fichier :file:`lib/foo/__init__.py` existe." #: ../Doc/distutils/setupscript.rst:93 msgid "" @@ -122,6 +192,9 @@ msgid "" "`lib`, the :mod:`foo.bar` package in :file:`lib/bar`, etc. This would be " "written in the setup script as ::" msgstr "" +"Une autre convention possible est de mettre le paquet :mod:`foo` directement " +"dans :file:`lib`, le paquet :mod:`foo.bar` dans :file:`lib/bar`, etc. Cela " +"s'écrirait ainsi dans le script ``setup.py`` : ::" #: ../Doc/distutils/setupscript.rst:99 msgid "" @@ -137,7 +210,7 @@ msgstr "" #: ../Doc/distutils/setupscript.rst:112 msgid "Listing individual modules" -msgstr "" +msgstr "Lister chaque module indépendamment" #: ../Doc/distutils/setupscript.rst:114 msgid "" @@ -147,6 +220,11 @@ msgid "" "shown in section :ref:`distutils-simple-example`; here is a slightly more " "involved example::" msgstr "" +"Pour un petit projet, vous pouvez préférer lister tous les modules plutôt " +"que les paquets — surtout le cas d'un module seul qui va dans le « paquet " +"racine » (à savoir, aucun paquet du tout). Le cas le plus simple a été " +"montré dans la partie :ref:`distutils-simple-example` ; voici un exemple " +"plus concret ::" #: ../Doc/distutils/setupscript.rst:121 msgid "" @@ -157,10 +235,16 @@ msgid "" "you can override the package/directory correspondence using the " "``package_dir`` option." msgstr "" +"Deux modules sont décrits, l'un dans le paquet « racine », l'autre dans le " +"paquet :mod:`pkg`. Encore une fois, la structure paquet/répertoire par " +"défaut implique que ces deux modules peuvent être trouvés dans :file:`mod1." +"py` et :file:`pkg/mod2.py`, et que :file:`pkg/__init__.py` existe aussi. Là " +"aussi, vous pouvez redéfinir la correspondance paquet/répertoire en " +"utilisant l'option ``package_dir``." #: ../Doc/distutils/setupscript.rst:131 msgid "Describing extension modules" -msgstr "" +msgstr "Description des modules d'extension" #: ../Doc/distutils/setupscript.rst:133 msgid "" @@ -171,6 +255,13 @@ msgid "" "have to specify the extension name, source file(s), and any compile/link " "requirements (include directories, libraries to link with, etc.)." msgstr "" +"Tout comme écrire des modules d'extension Python est un peu plus compliqué " +"que d’écrire des modules purement en Python, les décrire aux *Distutils* est " +"un peu plus compliqué. Contrairement aux modules purs, il ne suffit pas de " +"simplement lister les modules ou les paquets et d'attendre que les " +"*Distutils* trouvent par eux-mêmes les bons fichiers ; vous devez définir le " +"nom de l'extension, du ou des fichiers de sources, et les prérequis de " +"compilation/lien (répertoires à inclure, bibliothèques à lier, etc.)." #: ../Doc/distutils/setupscript.rst:142 msgid "" @@ -182,6 +273,13 @@ msgid "" "instructions to the compiler/linker are needed, describing this extension is " "quite simple::" msgstr "" +"Tout ceci est fait à l'aide d'un autre argument nommé passé à :func:`setup`, " +"l'option ``ext_modules``. ``ext_modules`` est simplement une liste de " +"classes :class:`~distutils.core.Extension`, chacune décrivant une seule " +"extension de module. Supposons que votre distribution inclut une seule " +"extension appelée :mod:`foo` et implémentée par :file:`foo.c`. Si aucune " +"instruction supplémentaire au compilateur/lieur n'est requise, décrire cette " +"extension est assez simple ::" #: ../Doc/distutils/setupscript.rst:152 msgid "" @@ -189,6 +287,9 @@ msgid "" "along with :func:`setup`. Thus, the setup script for a module distribution " "that contains only this one extension and nothing else might be::" msgstr "" +"La classe :class:`Extension` peut être importée depuis :mod:`distutils.core` " +"en même temps que :func:`setup`. Ainsi, le script ``setup.py`` pour un " +"module qui ne contient que cette seule extension et rien d'autre peut être ::" #: ../Doc/distutils/setupscript.rst:162 msgid "" @@ -197,10 +298,14 @@ msgid "" "deal of flexibility in describing Python extensions, which is explained in " "the following sections." msgstr "" +"La classe :class:`Extension` (en réalité, la machinerie sous-jacente " +"construisant les extensions implémentées par la commande :command:" +"`build_ext`) permet une grande flexibilité dans la description des " +"extensions Python, ce qui est expliqué dans les parties suivantes." #: ../Doc/distutils/setupscript.rst:169 msgid "Extension names and packages" -msgstr "" +msgstr "Nom des extensions et paquets" #: ../Doc/distutils/setupscript.rst:171 msgid "" @@ -208,10 +313,12 @@ msgid "" "always the name of the extension, including any package names. For " "example, ::" msgstr "" +"Le premier argument du constructeur :class:`~distutils.core.Extension` est " +"toujours le nom de l'extension, incluant tout nom de paquet. Par exemple ::" #: ../Doc/distutils/setupscript.rst:176 msgid "describes an extension that lives in the root package, while ::" -msgstr "" +msgstr "décrit une extension qui se situe dans le paquet racine, tandis que ::" #: ../Doc/distutils/setupscript.rst:180 msgid "" @@ -220,6 +327,11 @@ msgid "" "is where in the filesystem (and therefore where in Python's namespace " "hierarchy) the resulting extension lives." msgstr "" +"décrit la même extension dans le paquet :mod:`pkg`. Les fichiers sources et " +"le code objet résultant sont identiques dans les deux cas ; la seule " +"différence est où, dans le système de fichier (et conséquemment dans la " +"hiérarchie de l'espace de nommage de Python), l'extension résultante se " +"situe." #: ../Doc/distutils/setupscript.rst:185 msgid "" @@ -227,16 +339,21 @@ msgid "" "same base package), use the ``ext_package`` keyword argument to :func:" "`setup`. For example, ::" msgstr "" +"Si vous avez un certain nombre d'extensions toutes dans le même paquet (ou " +"toutes sous le même paquet de base), utilisez l'argument nommé " +"``ext_package`` de :func:`setup`. Par exemple ::" #: ../Doc/distutils/setupscript.rst:195 msgid "" "will compile :file:`foo.c` to the extension :mod:`pkg.foo`, and :file:`bar." "c` to :mod:`pkg.subpkg.bar`." msgstr "" +"compile :file:`foo.c` en l’extension :mod:`pkg.foo`, et :file:`bar.c` en :" +"mod:`pkg.subpkg.bar`." #: ../Doc/distutils/setupscript.rst:200 msgid "Extension source files" -msgstr "" +msgstr "Fichiers sources d'extension" #: ../Doc/distutils/setupscript.rst:202 msgid "" @@ -247,6 +364,12 @@ msgid "" "files: :file:`.cc` and :file:`.cpp` seem to be recognized by both Unix and " "Windows compilers.)" msgstr "" +"Le second argument du constructeur d'\\ :class:`~distutils.core.Extension` " +"est une liste de fichiers sources. Puisque les *Distutils* ne gèrent que les " +"extensions en C, C++ et Objective-C, ce sont normalement des fichiers " +"sources en C/C++/Objective-C (assurez vous d'utiliser les extensions " +"appropriées pour détecter les fichiers sources en C++ : :file:`.cc` et :file:" +"`.cpp` semblent être reconnus tant par les compilateurs Unix que Windows)." #: ../Doc/distutils/setupscript.rst:209 msgid "" @@ -255,16 +378,22 @@ msgid "" "will run SWIG on the interface file and compile the resulting C/C++ file " "into your extension." msgstr "" +"Néanmoins, vous pouvez également inclure des fichiers d'interface SWIG (:" +"file:`.i`) dans la liste ; la commande :command:`build_ext` sait comment " +"gérer les extensions SWIG : il lancera SWIG sur un fichier d'interface et " +"compilera le fichier en C/C++ en une extension." #: ../Doc/distutils/setupscript.rst:216 msgid "" "This warning notwithstanding, options to SWIG can be currently passed like " "this::" msgstr "" +"Malgré cet avertissement, les options peuvent être actuellement passées à " +"SWIG de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:225 msgid "Or on the commandline like this::" -msgstr "" +msgstr "Ou en ligne de commande de cette façon ::" #: ../Doc/distutils/setupscript.rst:229 msgid "" @@ -274,10 +403,16 @@ msgid "" "rc`) files for Visual C++. These will be compiled to binary resource (:file:" "`.res`) files and linked into the executable." msgstr "" +"Sur certaines plateformes, vous pouvez inclure des fichiers autres que des " +"sources qui seront traités par le compilateur et inclus dans votre " +"extension. Pour l'instant, cela concerne seulement les fichiers de messages " +"texte Windows (:file:`.mc`) et les fichiers de définition de ressource pour " +"Visual C++ (:file:`.rc`). Ils seront compilés en fichiers de ressources " +"binaires (:file:`.res`) et liés à l'exécutable." #: ../Doc/distutils/setupscript.rst:237 msgid "Preprocessor options" -msgstr "" +msgstr "Options de préprocesseur" #: ../Doc/distutils/setupscript.rst:239 msgid "" @@ -285,12 +420,19 @@ msgid "" "you need to specify include directories to search or preprocessor macros to " "define/undefine: ``include_dirs``, ``define_macros``, and ``undef_macros``." msgstr "" +"Trois arguments optionnels de :class:`~distutils.core.Extension` aident si " +"vous avez besoin de préciser les dossiers d’en-têtes à chercher ou les " +"macros de préprocesseurs à charger ou ignorer : ``include_dirs``, " +"``define_macros``, et ``undef_macros``." #: ../Doc/distutils/setupscript.rst:243 msgid "" "For example, if your extension requires header files in the :file:`include` " "directory under your distribution root, use the ``include_dirs`` option::" msgstr "" +"Par exemple, si votre extension nécessite des fichiers d'en-tête dans le " +"répertoire :file:`include` à la racine de votre distribution, utilisez " +"l'option ``include_dirs`` ::" #: ../Doc/distutils/setupscript.rst:248 msgid "" @@ -298,12 +440,17 @@ msgid "" "will only be built on Unix systems with X11R6 installed to :file:`/usr`, you " "can get away with ::" msgstr "" +"Ici, vous pouvez définir le chemin absolu des répertoires ; si vous savez " +"que votre extension sera compilée sur un système Unix avec ``X11R6`` " +"installé dans :file:`/usr`, vous pouvez vous en sortir avec ::" #: ../Doc/distutils/setupscript.rst:254 msgid "" "You should avoid this sort of non-portable usage if you plan to distribute " "your code: it's probably better to write C code like ::" msgstr "" +"Il convient d'éviter ce type d'utilisation non portable si vous envisagez de " +"distribuer votre code : Il est probablement mieux d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:259 msgid "" @@ -317,6 +464,17 @@ msgid "" "in this case---is always included in the search path when building Python " "extensions, the best approach is to write C code like ::" msgstr "" +"Si vous avez besoin d'inclure des fichiers d'en-tête provenant d'autres " +"extensions Python, vous pouvez profiter du fait que les fichiers d'en-têtes " +"sont installés de façon cohérente par la commande :command:`install_headers` " +"des *Distutils*. Par exemple, les fichiers d'en-têtes de *Numerical Python* " +"(NumPy) sont installés (dans le cas d'une installation Unix standard) dans :" +"file:`/usr/local/include/python1.5/Numerical` — l'emplacement exact diffère " +"selon votre plateforme et votre installation de Python. Vu que le " +"répertoire :file:`include` de Python —\\ :file:`/usr/local/include/" +"python1.5` dans ce cas-ci — est toujours inclus dans le chemin de recherche " +"quand vous construisez des extensions Python, la meilleure approche est " +"d'écrire du code C comme ::" #: ../Doc/distutils/setupscript.rst:271 msgid "" @@ -324,6 +482,10 @@ msgid "" "header search path, though, you can find that directory using the Distutils :" "mod:`distutils.sysconfig` module::" msgstr "" +"Si vous devez mettre le répertoire :file:`include` de :file:`Numerical` " +"directement dans l'en-tête du chemin de recherche, cependant, vous pouvez " +"trouver ce répertoire en utilisant le module :mod:`distutils.sysconfig` des " +"*Distutils* ::" #: ../Doc/distutils/setupscript.rst:281 msgid "" @@ -331,6 +493,9 @@ msgid "" "installation, regardless of platform---it's probably easier to just write " "your C code in the sensible way." msgstr "" +"Même si c'est assez portable — ça marche sur la plupart des installations de " +"Python, indépendamment de la plateforme — il est probablement plus facile " +"d'écrire un code C un peu plus réfléchi." #: ../Doc/distutils/setupscript.rst:285 msgid "" @@ -342,6 +507,14 @@ msgid "" "your C source: with most compilers, this sets ``FOO`` to the string ``1``.) " "``undef_macros`` is just a list of macros to undefine." msgstr "" +"Vous pouvez définir ou ignorer des macros de pré-processeur avec les options " +"``define_macros`` et ``undef_macros``. ``define_macros`` prend une liste de " +"paires ``(nom, valeur)``, où ``nom`` est le nom de la macro à définir (une " +"chaîne de caractères) et ``valeur`` est sa valeur ; soit une chaîne de " +"caractères, soit ``None`` (définir une macro ``FOO`` à ``None`` est " +"équivalent à un simple ``#define FOO`` dans votre source en C ; pour la " +"majorité des compilateurs, cela définit la valeur de ``FOO`` à la chaîne de " +"caractère ``1``). ``undef_macros`` est juste une liste de macros à supprimer." #: ../Doc/distutils/setupscript.rst:293 msgid "For example::" @@ -349,11 +522,11 @@ msgstr "Par exemple ::" #: ../Doc/distutils/setupscript.rst:300 msgid "is the equivalent of having this at the top of every C source file::" -msgstr "" +msgstr "est équivalent à avoir ceci au début de chaque fichier source en C ::" #: ../Doc/distutils/setupscript.rst:309 msgid "Library options" -msgstr "" +msgstr "Options des bibliothèques" #: ../Doc/distutils/setupscript.rst:311 msgid "" @@ -364,24 +537,37 @@ msgid "" "time, and ``runtime_library_dirs`` is a list of directories to search for " "shared (dynamically loaded) libraries at run-time." msgstr "" +"Vous pouvez aussi définir les bibliothèques à lier quand vous construisez " +"votre extension, ainsi que le répertoire de recherche pour ces " +"bibliothèques. L'option ``libraries`` est une liste de bibliothèques à lier, " +"``library_dirs`` est une liste de répertoires dans lesquels chercher des " +"bibliothèques au moment de la liaison, et ``runtime_library_dirs`` est une " +"liste de répertoires pour la recherche des bibliothèques partagées (chargées " +"dynamiquement) à l'exécution." #: ../Doc/distutils/setupscript.rst:317 msgid "" "For example, if you need to link against libraries known to be in the " "standard library search path on target systems ::" msgstr "" +"Par exemple, pour lier des bibliothèques que l'on sait dans le chemin des " +"bibliothèques standards des systèmes cibles ::" #: ../Doc/distutils/setupscript.rst:323 msgid "" "If you need to link with libraries in a non-standard location, you'll have " "to include the location in ``library_dirs``::" msgstr "" +"Pour lier une bibliothèque se trouvant à un emplacement non standard, vous " +"devez inclure son emplacement dans ``library_dirs`` ::" #: ../Doc/distutils/setupscript.rst:330 msgid "" "(Again, this sort of non-portable construct should be avoided if you intend " "to distribute your code.)" msgstr "" +"Là aussi, ce genre de construction non portable doit être évité si vous avez " +"l'intention de distribuer votre code." #: ../Doc/distutils/setupscript.rst:337 msgid "Other options" @@ -391,6 +577,8 @@ msgstr "Autres options" msgid "" "There are still some other options which can be used to handle special cases." msgstr "" +"Il y a encore d'autres options qui peuvent être utilisées pour gérer des cas " +"spéciaux." #: ../Doc/distutils/setupscript.rst:341 msgid "" @@ -398,6 +586,9 @@ msgid "" "extension will not abort the build process, but instead simply not install " "the failing extension." msgstr "" +"L'option ``optional`` est un booléen ; s'il est vrai, un échec de la " +"construction dans l'extension n'annule pas le processus de construction, " +"mais à la place, l'extension en échec ne sera pas installée." #: ../Doc/distutils/setupscript.rst:345 msgid "" @@ -405,6 +596,9 @@ msgid "" "linker. These files must not have extensions, as the default extension for " "the compiler is used." msgstr "" +"L'option ``extra_objects`` est une liste d'objets fichiers à passer à " +"l'éditeur de liens. Ces fichiers ne doivent pas avoir d'extensions car " +"l'extension par défaut du compilateur est utilisée." #: ../Doc/distutils/setupscript.rst:349 msgid "" @@ -412,6 +606,9 @@ msgid "" "additional command line options for the respective compiler and linker " "command lines." msgstr "" +"``extra_compile_args`` et ``extra_link_args`` peuvent être utilisées pour " +"définir des options additionnelles en ligne de commande propres aux lignes " +"de commandes respectives du compilateur et de l'éditeur de liens." #: ../Doc/distutils/setupscript.rst:353 msgid "" @@ -420,6 +617,10 @@ msgid "" "when building compiled extensions: Distutils will automatically add " "``initmodule`` to the list of exported symbols." msgstr "" +"``export_symbols`` est seulement utile sur Windows. Elle peut contenir une " +"liste de symboles (fonctions ou variables) à exporter. Cette option n'est " +"pas requise pour la construction d'extensions compilées : *Distutils* ajoute " +"automatiquement ``initmodule`` à la liste des symboles exportés." #: ../Doc/distutils/setupscript.rst:358 msgid "" @@ -428,32 +629,40 @@ msgid "" "sources to rebuild extension if any on this files has been modified since " "the previous build." msgstr "" +"L'option ``depends`` est une liste de fichiers dont les extensions dépendent " +"(par exemple les fichiers d'en-têtes). La commande ``build`` appelle le " +"compilateur sur les sources pour reconstruire l'extension si un de ces " +"fichiers a été modifié depuis la dernière construction." #: ../Doc/distutils/setupscript.rst:364 msgid "Relationships between Distributions and Packages" -msgstr "" +msgstr "Relations entre distributions et paquets" #: ../Doc/distutils/setupscript.rst:366 msgid "A distribution may relate to packages in three specific ways:" msgstr "" +"Une distribution peut se rapporter à des paquets de trois manières " +"spécifiques :" #: ../Doc/distutils/setupscript.rst:368 msgid "It can require packages or modules." -msgstr "" +msgstr "elle peut nécessiter des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:370 msgid "It can provide packages or modules." -msgstr "" +msgstr "elle peut fournir des paquets ou des modules ;" #: ../Doc/distutils/setupscript.rst:372 msgid "It can obsolete packages or modules." -msgstr "" +msgstr "elle peut rendre obsolète des paquets ou des modules." #: ../Doc/distutils/setupscript.rst:374 msgid "" "These relationships can be specified using keyword arguments to the :func:" "`distutils.core.setup` function." msgstr "" +"Ces relations peuvent être définies en utilisant des paramètres nommés dans " +"la fonction :func:`distutils.core.setup`." #: ../Doc/distutils/setupscript.rst:377 msgid "" @@ -462,6 +671,10 @@ msgid "" "be a list of strings. Each string specifies a package that is required, and " "optionally what versions are sufficient." msgstr "" +"Les dépendances à d'autres modules et paquets Python peuvent être définies " +"en fournissant le paramètre nommé ``requires`` à :func:`setup`. La valeur " +"doit être une liste de chaînes de caractères. Chaque chaîne de caractères " +"définit un paquet requis et, en option, les versions minimales." #: ../Doc/distutils/setupscript.rst:382 msgid "" @@ -469,6 +682,9 @@ msgid "" "should consist entirely of the module or package name. Examples include " "``'mymodule'`` and ``'xml.parsers.expat'``." msgstr "" +"S'il n'est pas nécessaire de préciser la version d'un module ou d'un paquet, " +"la chaîne de caractères contient simplement les noms de modules ou de " +"paquets. Par exemple ``mymodule`` et ``'xml.parsers.expat'``." #: ../Doc/distutils/setupscript.rst:386 msgid "" @@ -476,6 +692,10 @@ msgid "" "in parentheses. Each qualifier may consist of a comparison operator and a " "version number. The accepted comparison operators are::" msgstr "" +"Si des versions spécifiques sont requises, une suite de qualificatifs peut " +"être fournie entre parenthèses. Chaque qualificatif peut contenir un " +"opérateur de comparaison et un numéro de version. Les opérateurs de " +"comparaison acceptés sont ::" #: ../Doc/distutils/setupscript.rst:393 msgid "" @@ -483,14 +703,18 @@ msgid "" "optional whitespace). In this case, all of the qualifiers must be matched; " "a logical AND is used to combine the evaluations." msgstr "" +"Ils peuvent être combinés en utilisant plusieurs qualificatifs séparés par " +"des virgules (et de façon optionnelle, des espaces). Dans ce cas, tous les " +"qualificatifs doivent être respectés ; un ET logique est utilisé pour " +"combiner les évaluations." #: ../Doc/distutils/setupscript.rst:397 msgid "Let's look at a bunch of examples:" -msgstr "" +msgstr "Jetons un œil à quelques exemples :" #: ../Doc/distutils/setupscript.rst:400 msgid "Requires Expression" -msgstr "" +msgstr "Valeur de ``requires``" #: ../Doc/distutils/setupscript.rst:400 ../Doc/distutils/setupscript.rst:418 msgid "Explanation" @@ -498,20 +722,22 @@ msgstr "Explication" #: ../Doc/distutils/setupscript.rst:402 msgid "``==1.0``" -msgstr "" +msgstr "``==1.0``" #: ../Doc/distutils/setupscript.rst:402 msgid "Only version ``1.0`` is compatible" -msgstr "" +msgstr "Seule la version ``1.0`` est compatible." #: ../Doc/distutils/setupscript.rst:404 msgid "``>1.0, !=1.5.1, <2.0``" -msgstr "" +msgstr "``>1.0, !=1.5.1, <2.0``" #: ../Doc/distutils/setupscript.rst:404 msgid "" "Any version after ``1.0`` and before ``2.0`` is compatible, except ``1.5.1``" msgstr "" +"Toute version après ``1.0`` et avant ``2.0`` est compatible, à l'exception " +"de ``1.5.1``." #: ../Doc/distutils/setupscript.rst:408 msgid "" @@ -522,30 +748,39 @@ msgid "" "optionally identifies the version. If the version is not specified, it is " "assumed to match that of the distribution." msgstr "" +"Maintenant que nous pouvons définir des dépendances, nous devons également " +"être en mesure de définir ce que d'autres distributions peuvent attendre de " +"notre part. Cela est réalisé en utilisant l'argument nommé *provides* dans :" +"func:`setup`. La valeur de cet argument est une liste de chaînes de " +"caractères, chacune d'entre elles étant un module Python ou un paquet et, de " +"façon optionnelle, identifie une version. Si la version n'est pas définie, " +"il est supposé qu'elle correspond à celle de la distribution." #: ../Doc/distutils/setupscript.rst:415 msgid "Some examples:" -msgstr "Quelques exemples :" +msgstr "Quelques exemples :" #: ../Doc/distutils/setupscript.rst:418 msgid "Provides Expression" -msgstr "" +msgstr "Valeur de ``provides``" #: ../Doc/distutils/setupscript.rst:420 msgid "``mypkg``" -msgstr "" +msgstr "``mypkg``" #: ../Doc/distutils/setupscript.rst:420 msgid "Provide ``mypkg``, using the distribution version" -msgstr "" +msgstr "Fournit ``mypkg`` en utilisant la version de la distribution." #: ../Doc/distutils/setupscript.rst:423 msgid "``mypkg (1.1)``" -msgstr "" +msgstr "``mypkg (1.1)``" #: ../Doc/distutils/setupscript.rst:423 msgid "Provide ``mypkg`` version 1.1, regardless of the distribution version" msgstr "" +"Fournit ``mypkg`` en version 1.1, indépendamment de la version de la " +"distribution." #: ../Doc/distutils/setupscript.rst:427 msgid "" @@ -556,6 +791,13 @@ msgid "" "more version qualifiers. Version qualifiers are given in parentheses after " "the module or package name." msgstr "" +"On peut déclarer d'autres paquets obsolètes dans un paquet en utilisant " +"l'argument nommé *obsoletes*. La valeur pour celui-ci est similaire à celui " +"de l'argument nommé *requires* : une liste de chaînes de caractères donnant " +"les spécifications du module ou du paquet. Chaque spécification est " +"constituée d'un nom de module ou de paquet qui peut être suivi au choix par " +"un ou plusieurs qualificateurs de versions. Les qualificateurs de versions " +"sont donnés entre parenthèses après le nom de module ou de paquet." #: ../Doc/distutils/setupscript.rst:434 msgid "" @@ -563,16 +805,23 @@ msgid "" "the distribution being described. If no qualifiers are given, all versions " "of the named module or package are understood to be obsoleted." msgstr "" +"Les versions identifiées par les qualificateurs sont celles qui sont rendues " +"obsolètes par la distribution décrite. Si aucun qualificateur n'est donné, " +"toutes les versions du module ou du paquet nommé sont considérées comme " +"obsolètes." #: ../Doc/distutils/setupscript.rst:441 msgid "Installing Scripts" -msgstr "" +msgstr "Installation des scripts" #: ../Doc/distutils/setupscript.rst:443 msgid "" "So far we have been dealing with pure and non-pure Python modules, which are " "usually not run by themselves but imported by scripts." msgstr "" +"Jusqu'à présent nous avons interagi avec des modules Python purs ou non, qui " +"ne sont habituellement pas lancés par eux-mêmes mais importés par des " +"scripts." #: ../Doc/distutils/setupscript.rst:446 msgid "" @@ -585,22 +834,35 @@ msgid "" "`!--executable` (or :option:`!-e`) option will allow the interpreter path to " "be explicitly overridden." msgstr "" +"Les scripts sont des fichiers contenant du code source Python prévus pour " +"être lancés en ligne de commande. Les scripts n'ont pas besoin des " +"*Distutils* pour faire quoi que ce soit de très compliqué. La seule " +"fonctionnalité astucieuse est que la première ligne du script commence par " +"``#!`` et contient le mot « python », les *Distutils* ajusteront la première " +"ligne pour faire référence à l'emplacement actuel de l'interpréteur. Par " +"défaut, elle est remplacée par l'emplacement de l'interpréteur en fonction. " +"L'option :option:`!--executable` (ou :option:`!-e`) permet de définir " +"explicitement le chemin vers l'interpréteur." #: ../Doc/distutils/setupscript.rst:454 msgid "" "The ``scripts`` option simply is a list of files to be handled in this way. " "From the PyXML setup script::" msgstr "" +"L'option ``scripts`` est simplement une liste de fichiers à utiliser de " +"cette façon. Dans le script ``setup.py`` de PyML ::" #: ../Doc/distutils/setupscript.rst:461 msgid "" "All the scripts will also be added to the ``MANIFEST`` file if no template " "is provided. See :ref:`manifest`." msgstr "" +"Tous les scripts seront aussi ajoutés au fichier ``MANIFEST`` si aucun " +"modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:469 msgid "Installing Package Data" -msgstr "" +msgstr "Installation de paquets de données" #: ../Doc/distutils/setupscript.rst:471 msgid "" @@ -609,6 +871,11 @@ msgid "" "text files containing documentation that might be of interest to programmers " "using the package. These files are called :dfn:`package data`." msgstr "" +"Souvent, des fichiers additionnels doivent être installés dans le paquet. " +"Ces fichiers sont souvent de la donnée qui est intimement liée à " +"l'implémentation du paquet, ou des fichiers textes contenant de la " +"documentation intéressant le programmeur utilisant le paquet. Ces fichiers " +"sont appelés :dfn:`paquets de données `." #: ../Doc/distutils/setupscript.rst:476 msgid "" @@ -620,32 +887,47 @@ msgid "" "appropriate); that is, the files are expected to be part of the package in " "the source directories. They may contain glob patterns as well." msgstr "" +"Les paquets de données peuvent être ajoutés en utilisant l'argument nommé " +"``package_data`` dans la fonction :func:`setup`. La valeur doit être un " +"tableau de correspondances entre le nom du paquet et une liste de chemins " +"relatifs à copier dans le paquet. Les chemins sont interprétés relativement " +"au répertoire contenant le paquet (l'information du mappage ``package_dir`` " +"est utilisée le cas échéant) ; ceci étant, il convient que les fichiers " +"fassent partie du répertoire source du paquet. Ils peuvent également " +"contenir des motifs `glob`." #: ../Doc/distutils/setupscript.rst:484 msgid "" "The path names may contain directory portions; any necessary directories " "will be created in the installation." msgstr "" +"Les chemins d'accès peuvent contenir une hiérarchie de répertoires ; tout " +"répertoire nécessaire sera créé dans cette installation." #: ../Doc/distutils/setupscript.rst:487 msgid "" "For example, if a package should contain a subdirectory with several data " "files, the files can be arranged like this in the source tree::" msgstr "" +"Par exemple, si un paquet doit inclure un sous-répertoire avec plusieurs " +"fichiers de donnée, les fichiers peuvent être organisés dans l'arborescence " +"de la façon suivante ::" #: ../Doc/distutils/setupscript.rst:500 msgid "The corresponding call to :func:`setup` might be::" -msgstr "" +msgstr "L'appel correspondant à :func:`setup` peut s'écrire ::" #: ../Doc/distutils/setupscript.rst:509 msgid "" "All the files that match ``package_data`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``package_data`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:517 msgid "Installing Additional Files" -msgstr "" +msgstr "Installation de fichiers additionnels" #: ../Doc/distutils/setupscript.rst:519 msgid "" @@ -653,18 +935,26 @@ msgid "" "the module distribution: configuration files, message catalogs, data files, " "anything which doesn't fit in the previous categories." msgstr "" +"L'option ``data_files`` peut être utilisée pour définir des fichiers " +"additionnels requis pour la distribution du module : fichiers de " +"configuration, catalogues de messages, fichiers de donnée, tout ce qui ne " +"rentre pas dans les catégories précédentes." #: ../Doc/distutils/setupscript.rst:523 msgid "" "``data_files`` specifies a sequence of (*directory*, *files*) pairs in the " "following way::" msgstr "" +"``data_files`` définit une séquence de paires (*répertoires*, *fichiers*) de " +"la façon suivante ::" #: ../Doc/distutils/setupscript.rst:531 msgid "" "Each (*directory*, *files*) pair in the sequence specifies the installation " "directory and the files to install there." msgstr "" +"Chaque paire (*répertoire*, *fichier*) dans la séquence définit le " +"répertoire d'installation et les fichiers à y installer." #: ../Doc/distutils/setupscript.rst:534 msgid "" @@ -673,6 +963,10 @@ msgid "" "specify the directory where the data files will be installed, but you cannot " "rename the data files themselves." msgstr "" +"Chaque nom de fichier dans *fichiers* est interprété relativement au script :" +"file:`setup.py` à la racine du paquet de la distribution source. Notez que " +"vous pouvez définir un répertoire où les fichiers de donnée seront " +"installés, mais vous ne pouvez pas renommer les fichiers de donnée eux-mêmes." #: ../Doc/distutils/setupscript.rst:539 msgid "" @@ -684,6 +978,15 @@ msgid "" "*files* is used to determine the final location of the installed file; only " "the name of the file is used." msgstr "" +"Le *répertoire* doit être un chemin relatif. Il est interprété relativement " +"au préfixe d'installation (le ``sys.prefix`` de Python pour les " +"installations ``système`` ; ``site.USER_BASE`` pour les installations " +"``utilisateur``). *Distutils* permet à *répertoire* d'être un chemin " +"d'installation absolu, mais cela est déconseillé dans la mesure où c'est " +"incompatible avec la mise au format `wheel` du paquet. Aucune information de " +"répertoire provenant de *fichiers* n'est utilisée pour déterminer " +"l’emplacement final d'installation du fichier ; seul le nom du fichier est " +"utilisé." #: ../Doc/distutils/setupscript.rst:547 msgid "" @@ -693,26 +996,36 @@ msgid "" "files directly in the target directory, an empty string should be given as " "the directory." msgstr "" +"Vous pouvez définir les options ``data_files`` comme une simple succession " +"de fichiers sans définir de répertoire cible, mais cela n'est pas " +"recommandé, et la commande :command:`install` affichera un message d'alerte " +"dans ce cas. Pour installer des fichiers de donnée directement dans le " +"répertoire cible, une chaîne de caractère vide doit être donnée en tant que " +"répertoire." #: ../Doc/distutils/setupscript.rst:553 msgid "" "All the files that match ``data_files`` will be added to the ``MANIFEST`` " "file if no template is provided. See :ref:`manifest`." msgstr "" +"Tous les fichiers correspondant à ``data_files`` seront ajoutés au fichier " +"``MANIFEST`` si aucun modèle n'est fourni. Voir :ref:`manifest`." #: ../Doc/distutils/setupscript.rst:561 msgid "Additional meta-data" -msgstr "" +msgstr "Métadonnées additionnelles" #: ../Doc/distutils/setupscript.rst:563 msgid "" "The setup script may include additional meta-data beyond the name and " "version. This information includes:" msgstr "" +"Le script ``setup.py`` peut inclure des métadonnées additionnelles en plus " +"du nom et de la version. Cela inclut les informations suivantes :" #: ../Doc/distutils/setupscript.rst:567 msgid "Meta-Data" -msgstr "" +msgstr "Métadonnées" #: ../Doc/distutils/setupscript.rst:567 msgid "Description" @@ -732,13 +1045,13 @@ msgstr "``name``" #: ../Doc/distutils/setupscript.rst:569 msgid "name of the package" -msgstr "" +msgstr "nom du paquet" #: ../Doc/distutils/setupscript.rst:569 ../Doc/distutils/setupscript.rst:571 #: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:578 #: ../Doc/distutils/setupscript.rst:585 ../Doc/distutils/setupscript.rst:601 msgid "short string" -msgstr "" +msgstr "courte chaîne de caractères" #: ../Doc/distutils/setupscript.rst:569 ../Doc/distutils/setupscript.rst:583 msgid "\\(1)" @@ -750,7 +1063,7 @@ msgstr "``version``" #: ../Doc/distutils/setupscript.rst:571 msgid "version of this release" -msgstr "" +msgstr "version de la publication" #: ../Doc/distutils/setupscript.rst:571 msgid "(1)(2)" @@ -758,11 +1071,11 @@ msgstr "(1)(2)" #: ../Doc/distutils/setupscript.rst:573 msgid "``author``" -msgstr "" +msgstr "``author``" #: ../Doc/distutils/setupscript.rst:573 msgid "package author's name" -msgstr "" +msgstr "nom de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:573 ../Doc/distutils/setupscript.rst:575 #: ../Doc/distutils/setupscript.rst:578 ../Doc/distutils/setupscript.rst:580 @@ -771,31 +1084,31 @@ msgstr "\\(3)" #: ../Doc/distutils/setupscript.rst:575 msgid "``author_email``" -msgstr "" +msgstr "``author_email``" #: ../Doc/distutils/setupscript.rst:575 msgid "email address of the package author" -msgstr "" +msgstr "adresse courriel de l'auteur du paquet" #: ../Doc/distutils/setupscript.rst:575 ../Doc/distutils/setupscript.rst:580 msgid "email address" -msgstr "" +msgstr "adresse de courriel" #: ../Doc/distutils/setupscript.rst:578 msgid "``maintainer``" -msgstr "" +msgstr "``maintainer``" #: ../Doc/distutils/setupscript.rst:578 msgid "package maintainer's name" -msgstr "" +msgstr "nom du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:580 msgid "``maintainer_email``" -msgstr "" +msgstr "``maintainer_email``" #: ../Doc/distutils/setupscript.rst:580 msgid "email address of the package maintainer" -msgstr "" +msgstr "adresse du courriel du mainteneur du paquet" #: ../Doc/distutils/setupscript.rst:583 msgid "``url``" @@ -803,11 +1116,11 @@ msgstr "``url``" #: ../Doc/distutils/setupscript.rst:583 msgid "home page for the package" -msgstr "" +msgstr "page d’accueil du paquet" #: ../Doc/distutils/setupscript.rst:583 ../Doc/distutils/setupscript.rst:592 msgid "URL" -msgstr "" +msgstr "URL" #: ../Doc/distutils/setupscript.rst:585 msgid "``description``" @@ -815,7 +1128,7 @@ msgstr "``description``" #: ../Doc/distutils/setupscript.rst:585 msgid "short, summary description of the package" -msgstr "" +msgstr "bref résumé décrivant le paquet" #: ../Doc/distutils/setupscript.rst:589 msgid "``long_description``" @@ -823,11 +1136,11 @@ msgstr "``long_description``" #: ../Doc/distutils/setupscript.rst:589 msgid "longer description of the package" -msgstr "" +msgstr "description plus complète du paquet" #: ../Doc/distutils/setupscript.rst:589 msgid "long string" -msgstr "" +msgstr "longue chaîne de caractères" #: ../Doc/distutils/setupscript.rst:589 msgid "\\(4)" @@ -835,24 +1148,24 @@ msgstr "\\(4)" #: ../Doc/distutils/setupscript.rst:592 msgid "``download_url``" -msgstr "" +msgstr "``download_url``" #: ../Doc/distutils/setupscript.rst:592 msgid "location where the package may be downloaded" -msgstr "" +msgstr "endroit où le paquet peut être téléchargé" #: ../Doc/distutils/setupscript.rst:595 msgid "``classifiers``" -msgstr "" +msgstr "``classifiers``" #: ../Doc/distutils/setupscript.rst:595 msgid "a list of classifiers" -msgstr "" +msgstr "une liste de classificateurs" #: ../Doc/distutils/setupscript.rst:595 ../Doc/distutils/setupscript.rst:597 #: ../Doc/distutils/setupscript.rst:599 msgid "list of strings" -msgstr "" +msgstr "liste de chaînes de caractères" #: ../Doc/distutils/setupscript.rst:595 msgid "(6)(7)" @@ -860,23 +1173,23 @@ msgstr "(6)(7)" #: ../Doc/distutils/setupscript.rst:597 msgid "``platforms``" -msgstr "" +msgstr "``platforms``" #: ../Doc/distutils/setupscript.rst:597 msgid "a list of platforms" -msgstr "" +msgstr "une liste de plateformes" #: ../Doc/distutils/setupscript.rst:597 ../Doc/distutils/setupscript.rst:599 msgid "(6)(8)" -msgstr "" +msgstr "(6)(8)" #: ../Doc/distutils/setupscript.rst:599 msgid "``keywords``" -msgstr "" +msgstr "``keywords``" #: ../Doc/distutils/setupscript.rst:599 msgid "a list of keywords" -msgstr "" +msgstr "une liste de mots-clés" #: ../Doc/distutils/setupscript.rst:601 msgid "``license``" @@ -884,7 +1197,7 @@ msgstr "``license``" #: ../Doc/distutils/setupscript.rst:601 msgid "license for the package" -msgstr "" +msgstr "licence du paquet" #: ../Doc/distutils/setupscript.rst:601 msgid "\\(5)" @@ -896,24 +1209,30 @@ msgstr "Notes :" #: ../Doc/distutils/setupscript.rst:607 msgid "These fields are required." -msgstr "" +msgstr "Ces champs sont requis." #: ../Doc/distutils/setupscript.rst:610 msgid "" "It is recommended that versions take the form *major.minor[.patch[.sub]]*." msgstr "" +"Il est recommandé que les versions prennent la forme *majeure.mineure[." +"correctif[.sous-correctif]]*." #: ../Doc/distutils/setupscript.rst:613 msgid "" "Either the author or the maintainer must be identified. If maintainer is " "provided, distutils lists it as the author in :file:`PKG-INFO`." msgstr "" +"L'auteur ou un mainteneur doit être identifié. Si un mainteneur est fourni, " +"*distutils* l'indique en tant qu'auteur dans le fichier :file:`PKG-INFO`." #: ../Doc/distutils/setupscript.rst:617 msgid "" "The ``long_description`` field is used by PyPI when you publish a package, " "to build its project page." msgstr "" +"Le champ ``long_description`` est utilisé par PyPI quand vous publiez un " +"paquet pour construire sa page de projet." #: ../Doc/distutils/setupscript.rst:621 msgid "" @@ -922,15 +1241,22 @@ msgid "" "See the ``Classifier`` field. Notice that there's a ``licence`` distribution " "option which is deprecated but still acts as an alias for ``license``." msgstr "" +"Le champ ``license`` est un texte indiquant la licence du paquet quand la " +"licence n'est pas indiquée dans les classificateurs de type « Licence » " +"Trove. Voir le champ ``Classifier``. À noter qu'il y a une option de " +"distribution ``licence`` qui est obsolète mais agit toujours comme un alias " +"pour ``license``." #: ../Doc/distutils/setupscript.rst:628 msgid "This field must be a list." -msgstr "" +msgstr "Ce champ doit être une liste." #: ../Doc/distutils/setupscript.rst:631 msgid "" "The valid classifiers are listed on `PyPI `_." msgstr "" +"Les classificateurs valides sont listés sur `PyPI `_." #: ../Doc/distutils/setupscript.rst:635 msgid "" @@ -938,32 +1264,38 @@ msgid "" "pass a comma-separated string ``'foo, bar'``, it will be converted to " "``['foo', 'bar']``, Otherwise, it will be converted to a list of one string." msgstr "" +"Pour préserver la rétrocompatibilité, ce champ accepte aussi une chaîne de " +"caractères. Si vous passez une chaine de caractères séparée par des virgules " +"``'truc, machin'``, elle sera convertie en ``['truc', 'machin']``, " +"Autrement, elle sera convertie en une liste d'une chaîne de caractères." #: ../Doc/distutils/setupscript.rst:641 msgid "'short string'" -msgstr "'chaîne courte'" +msgstr "'courte chaîne de caractères'" #: ../Doc/distutils/setupscript.rst:641 msgid "A single line of text, not more than 200 characters." -msgstr "" +msgstr "Une simple ligne de texte ne dépassant par 200 caractères." #: ../Doc/distutils/setupscript.rst:645 msgid "'long string'" -msgstr "'chaîne longue'" +msgstr "'longue chaîne de caractères'" #: ../Doc/distutils/setupscript.rst:644 msgid "" "Multiple lines of plain text in reStructuredText format (see http://docutils." "sourceforge.net/)." msgstr "" +"De multiples lignes de texte au format ReStructuredText (voir http://" +"docutils.sourceforge.net/)." #: ../Doc/distutils/setupscript.rst:648 msgid "'list of strings'" -msgstr "'liste de chaînes'" +msgstr "'liste de chaînes de caractères'" #: ../Doc/distutils/setupscript.rst:648 msgid "See below." -msgstr "" +msgstr "Voir ci-dessous." #: ../Doc/distutils/setupscript.rst:650 msgid "" @@ -979,42 +1311,59 @@ msgid "" "which only fix bugs) and \"pr1,pr2,...,prN\" (for final pre-release release " "testing). Some examples:" msgstr "" +"Encoder les informations de version est un art en soi. Les paquets Python " +"adhèrent généralement au format de version *majeure.mineure[.correctif]" +"[sous]*. Le numéro majeur 0 est utilisé pour les publications " +"expérimentales, initiales d'un logiciel. Il est incrémenté pour les " +"publications qui représentent des étapes majeures pour le paquet. Le nombre " +"mineur est incrémenté quand d'importantes nouvelles fonctionnalités sont " +"ajoutées au paquet. Le numéro de correctif s'incrémente lors de la " +"publication d'une correction de bogue est faite. Celles-ci sont \"*a1,a2,...," +"aN*\" (pour les publications alpha, où les fonctionnalités et l'API peut " +"changer), \"*b1,b2,...,bN*\" (pour les publications *beta*, qui corrigent " +"seulement les bogues) et \"*pr1,pr2,...,prN*\" (pour les ultimes pré-" +"publication et publications de test). Quelques exemples :" #: ../Doc/distutils/setupscript.rst:662 msgid "0.1.0" -msgstr "" +msgstr "0.1.0" #: ../Doc/distutils/setupscript.rst:662 msgid "the first, experimental release of a package" -msgstr "" +msgstr "la première, publication expérimentale du paquet" #: ../Doc/distutils/setupscript.rst:665 msgid "1.0.1a2" -msgstr "" +msgstr "1.0.1a2" #: ../Doc/distutils/setupscript.rst:665 msgid "the second alpha release of the first patch version of 1.0" -msgstr "" +msgstr "la seconde publication alpha du premier correctif de la version 1.0" #: ../Doc/distutils/setupscript.rst:667 msgid "``classifiers`` must be specified in a list::" -msgstr "" +msgstr "les ``classifiers`` doivent être définis dans une liste ::" #: ../Doc/distutils/setupscript.rst:688 msgid "" ":class:`~distutils.core.setup` now warns when ``classifiers``, ``keywords`` " "or ``platforms`` fields are not specified as a list or a string." msgstr "" +":class:`~distutils.core.setup` alerte maintenant lorsque les champs " +"``classifiers``, ``keywords`` ou ``platforms`` ne sont pas définis en tant " +"que liste ou chaîne de caractères." #: ../Doc/distutils/setupscript.rst:695 msgid "Debugging the setup script" -msgstr "" +msgstr "Débogage du script ``setup.py``" #: ../Doc/distutils/setupscript.rst:697 msgid "" "Sometimes things go wrong, and the setup script doesn't do what the " "developer wants." msgstr "" +"Parfois les choses tournent mal et le script ``setup.py`` ne fait pas ce que " +"le développeur veut." #: ../Doc/distutils/setupscript.rst:700 msgid "" @@ -1026,6 +1375,14 @@ msgid "" "or the Python installation is broken because they don't read all the way " "down to the bottom and see that it's a permission problem." msgstr "" +"*Distutils* intercepte toute exception lors de l'exécution du script ``setup." +"py`` et affiche un message d'erreur simple avant d'arrêter le script. L'idée " +"est de ne pas embrouiller les administrateurs qui ne savent pas grand-chose " +"de Python et qui essayent d'installer un paquet. S'ils reçoivent une grosse " +"et longue trace d'appels provenant des entrailles de *Distutils*, ils " +"peuvent penser que le paquet ou que l'installation de Python est corrompue " +"car, ils ne lisent pas tout jusqu'en bas alors que c'est un problème de " +"droits." #: ../Doc/distutils/setupscript.rst:708 msgid "" @@ -1036,6 +1393,13 @@ msgid "" "traceback when an exception occurs, and print the whole command line when an " "external program (like a C compiler) fails." msgstr "" +"D'un autre côté, cela n'aide pas le développeur à trouver la cause du " +"problème. À cette fin, la variable d'environnement :envvar:`DISTUTILS_DEBUG` " +"peut être assignée à n'importe quoi sauf une chaîne de caractères vide, et " +"*distutils* affichera maintenant une information détaillée à propos de ce " +"qu'il fait, déversera la trace d'appels complète lors d'une exception, et " +"affichera la ligne de commande complète quand un programme externe (comme un " +"compilateur C) échoue." #~ msgid "\\(6)" #~ msgstr "\\(6)" diff --git a/distutils/sourcedist.po b/distutils/sourcedist.po index 61df72042e..8e70b8e716 100644 --- a/distutils/sourcedist.po +++ b/distutils/sourcedist.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-09-29 17:53+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-02-04 21:21+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.2\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/distutils/sourcedist.rst:5 msgid "Creating a Source Distribution" @@ -25,6 +25,10 @@ msgid "" "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." #: ../Doc/distutils/sourcedist.rst:9 msgid "" diff --git a/distutils/uploading.po b/distutils/uploading.po index 575c2bcc02..cf9d13b73b 100644 --- a/distutils/uploading.po +++ b/distutils/uploading.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2019-08-21 12:22+0200\n" diff --git a/extending/building.po b/extending/building.po index 83677b383a..f2999dc0fe 100644 --- a/extending/building.po +++ b/extending/building.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-10-04 16:22+0200\n" +"PO-Revision-Date: 2019-10-19 23:06+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/extending/building.rst:7 msgid "Building C and C++ Extensions" @@ -109,7 +110,7 @@ msgstr "" #: ../Doc/extending/building.rst:73 msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" -msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" +msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" #: ../Doc/extending/building.rst:77 msgid "" @@ -185,7 +186,7 @@ msgstr "" "paquets. En ce qui concerne l'extension, sont définis quelques macros " "préprocesseur, dossiers pour les en-têtes et bibliothèques. En fonction du " "compilateur, *distutils* peut donner ces informations de manière différente. " -"Par exemple, sur Unix, ça peut ressembler aux commandes : ::" +"Par exemple, sur Unix, ça peut ressembler aux commandes ::" #: ../Doc/extending/building.rst:139 msgid "" @@ -200,7 +201,6 @@ msgid "Distributing your extension modules" msgstr "Distribuer vos modules d'extension" #: ../Doc/extending/building.rst:148 -#, fuzzy msgid "" "When an extension has been successfully built, there are three ways to use " "it." @@ -213,14 +213,14 @@ msgid "" "End-users will typically want to install the module, they do so by running ::" msgstr "" "Typiquement, les utilisateurs vont vouloir installer le module, ils le font " -"en exécutant ::" +"en exécutant ::" #: ../Doc/extending/building.rst:154 msgid "" "Module maintainers should produce source packages; to do so, they run ::" msgstr "" "Les mainteneurs de modules voudront produire des paquets source, pour ce " -"faire ils exécuteront ::" +"faire ils exécuteront ::" #: ../Doc/extending/building.rst:158 msgid "" @@ -233,12 +233,11 @@ msgstr "" "f. :ref:`manifest`." #: ../Doc/extending/building.rst:161 -#, fuzzy msgid "" "If the source distribution has been built successfully, maintainers can also " "create binary distributions. Depending on the platform, one of the following " "commands can be used to do so. ::" msgstr "" "Si la distribution source a été construite avec succès, les mainteneurs " -"peuvent créer une distribution binaire. En fonction de la plateforme, une " -"des commandes suivantes peut être utilisée. ::" +"peuvent aussi créer une distribution binaire. En fonction de la plateforme, " +"une des commandes suivantes peut être utilisée. ::" diff --git a/extending/embedding.po b/extending/embedding.po index 144691ee17..f6a5722772 100644 --- a/extending/embedding.po +++ b/extending/embedding.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2018-10-04 16:18+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"PO-Revision-Date: 2019-12-25 17:24+0100\n" +"Last-Translator: Antoine \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/extending/embedding.rst:8 msgid "Embedding Python in Another Application" @@ -31,13 +31,13 @@ msgid "" "writing some scripts in Python. You can also use it yourself if some of the " "functionality can be written in Python more easily." msgstr "" -"Les chapitres précédents couvraient l'extension de Python, c'est à dire, " +"Les chapitres précédents couvraient l'extension de Python, c'est-à-dire, " "comment enrichir une fonctionnalité de Python en y attachant une " -"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens: " +"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens : " "enrichir vos applications C/C++ en y intégrant Python. Intégrer Python vous " "permet d'implémenter certaines fonctionnalités de vos applications en Python " "plutôt qu'en C ou C++. C'est utile dans de nombreux cas, un exemple serait " -"de permettre aux utilisateurs d'adapter une application à leur besoins en y " +"de permettre aux utilisateurs d'adapter une application à leurs besoins en y " "écrivant des scripts Python. Vous pouvez aussi l'utiliser vous même si " "certaines fonctionnalités peuvent être rédigées plus facilement en Python." @@ -79,9 +79,9 @@ msgid "" "level operations described in the previous chapters to construct and use " "Python objects." msgstr "" -"Il existe différents moyens d'appeler l'interpréteur: vous pouvez donner une " -"chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, ou " -"vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " +"Il existe différents moyens d'appeler l'interpréteur : vous pouvez donner " +"une chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, " +"ou vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " "(juste pour nommer les messages d'erreur) à :c:func:`PyRunSimpleFile`. Vous " "pouvez aussi appeler les API de bas niveau décrites dans les chapitres " "précédents pour construire et utiliser des objets Python." @@ -142,7 +142,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:93 msgid "Beyond Very High Level Embedding: An overview" -msgstr "Au delà de l'intégration de haut niveau: survol" +msgstr "Au-delà de l'intégration de haut niveau : survol" #: ../Doc/extending/embedding.rst:95 msgid "" @@ -168,7 +168,7 @@ msgstr "" "Il est à souligner qu'étendre ou intégrer Python revient à la louche au " "même, en dépit de la différence d'intention. La plupart des sujets parcourus " "dans les chapitres précédents sont toujours valides. Pour le prouver, " -"regardez ce qu'un code d'extension de Python vers C fait réellement :" +"regardez ce qu'un code d'extension de Python vers C fait réellement :" #: ../Doc/extending/embedding.rst:105 msgid "Convert data values from Python to C," @@ -184,7 +184,7 @@ msgstr "Convertir les résultats de l'appel à la fonction C pour Python." #: ../Doc/extending/embedding.rst:111 msgid "When embedding Python, the interface code does:" -msgstr "Lors de l'intégration de Python, le code de l'interface fait :" +msgstr "Lors de l'intégration de Python, le code de l'interface fait :" #: ../Doc/extending/embedding.rst:113 msgid "Convert data values from C to Python," @@ -210,7 +210,7 @@ msgid "" "you call a C routine, when embedding, you call a Python routine." msgstr "" "Tel que vous le voyez, les conversions sont simplement inversées pour " -"s'adapter au différentes directions de transfert inter-langage. La seule " +"s'adapter aux différentes directions de transfert inter-langage. La seule " "différence est la fonction que vous appelez entre les deux conversions de " "données. Lors de l'extension, vous appelez une fonction C, lors de " "l'intégration vous appelez une fonction Python." @@ -246,7 +246,7 @@ msgstr "" #: ../Doc/extending/embedding.rst:141 msgid "The code to run a function defined in a Python script is:" -msgstr "Le code pour appeler une fonction définie dans un script Python est :" +msgstr "Le code pour appeler une fonction définie dans un script Python est :" #: ../Doc/extending/embedding.rst:146 msgid "" @@ -260,11 +260,11 @@ msgstr "" "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'appelez pour " -"exécuter un script Python, tel que :" +"exécuter un script Python, tel que :" #: ../Doc/extending/embedding.rst:161 msgid "then the result should be:" -msgstr "alors, le résultat sera:" +msgstr "alors, le résultat sera :" #: ../Doc/extending/embedding.rst:169 msgid "" @@ -275,7 +275,7 @@ msgstr "" "Bien que le programme soit plutôt gros pour ses fonctionnalités, la plupart " "du code n'est que conversion de données entre Python et C, aussi que pour " "rapporter les erreurs. La partie intéressante, qui concerne l'intégration de " -"Python débute par ::" +"Python débute par ::" #: ../Doc/extending/embedding.rst:178 msgid "" @@ -286,8 +286,8 @@ msgid "" msgstr "" "Après avoir initialisé l'interpréteur, le script est chargé en utilisant :c:" "func:`PyImport_Import`. Cette fonction prend une chaîne Python pour " -"argument, elle même construite en utilisant la fonction de conversion :c:" -"func:`PyUnicode_FromString`." +"argument, elle-même construite en utilisant la fonction de conversion :c:" +"func:`PyUnicode_FromString`. ::" #: ../Doc/extending/embedding.rst:191 msgid "" @@ -305,11 +305,11 @@ msgstr "" #: ../Doc/extending/embedding.rst:199 msgid "" -"Upon return of the function, ``pValue`` is either *NULL* or it contains a " +"Upon return of the function, ``pValue`` is either ``NULL`` or it contains a " "reference to the return value of the function. Be sure to release the " "reference after examining the value." msgstr "" -"Après l'exécution de la fonction, ``pValue`` est soit *NULL*, soit une " +"Après l'exécution de la fonction, ``pValue`` est soit ``NULL``, soit une " "référence sur la valeur donnée par la fonction. Assurez-vous de libérer la " "référence après avoir utilisé la valeur." @@ -362,7 +362,7 @@ msgid "" "In a real application, the methods will expose an API of the application to " "Python." msgstr "" -"Dans un cas réel, les méthodes exposeraient une API de l'application a " +"Dans un cas réel, les méthodes exposeraient une API de l'application à " "Python." #: ../Doc/extending/embedding.rst:271 @@ -407,10 +407,10 @@ msgid "" "available). This script has several options, of which the following will be " "directly useful to you:" msgstr "" -"Pour trouver les bonnes option de compilateur et *linker*, vous pouvez " +"Pour trouver les bonnes options de compilateur et *linker*, vous pouvez " "exécuter le script :file:`python(X.Y)-config` généré durant l'installation " "(un script :file:`python3-config` peut aussi être disponible). Ce script a " -"quelques options, celles-ci vous seront utiles :" +"quelques options, celles-ci vous seront utiles :" #: ../Doc/extending/embedding.rst:296 msgid "" @@ -418,7 +418,7 @@ msgid "" "compiling:" msgstr "" "``pythonX.Y-config --cflags`` vous donnera les options recommandées pour " -"compiler:" +"compiler :" #: ../Doc/extending/embedding.rst:304 msgid "" @@ -426,7 +426,7 @@ msgid "" "linking:" msgstr "" "``pythonX.Y-config --ldflags`` vous donnera les drapeaux recommandés lors de " -"l'édition de lien:" +"l'édition de lien :" #: ../Doc/extending/embedding.rst:313 msgid "" diff --git a/extending/extending.po b/extending/extending.po index ef5ce2c675..6e5938451b 100644 --- a/extending/extending.po +++ b/extending/extending.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-06-19 21:54+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2019-10-30 00:03+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/extending/extending.rst:8 +#: extending/extending.rst:8 msgid "Extending Python with C or C++" msgstr "Étendre Python en C ou C++" -#: ../Doc/extending/extending.rst:10 +#: extending/extending.rst:10 msgid "" "It is quite easy to add new built-in modules to Python, if you know how to " "program in C. Such :dfn:`extension modules` can do two things that can't be " @@ -32,7 +32,7 @@ msgstr "" "peuvent définir de nouveaux types natifs, et peuvent appeler des fonctions " "de bibliothèques C ou appels systèmes." -#: ../Doc/extending/extending.rst:15 +#: extending/extending.rst:15 msgid "" "To support extensions, the Python API (Application Programmers Interface) " "defines a set of functions, macros and variables that provide access to most " @@ -44,7 +44,7 @@ msgstr "" "plupart des aspects du système d'exécution de Python. L'API Python est " "incorporée dans un fichier source C en incluant l'en-tête ``\"Python.h\"``." -#: ../Doc/extending/extending.rst:20 +#: extending/extending.rst:20 msgid "" "The compilation of an extension module depends on its intended use as well " "as on your system setup; details are given in later chapters." @@ -53,7 +53,7 @@ msgstr "" "configuration du système, plus de détails peuvent être trouvés dans les " "chapitres suivants." -#: ../Doc/extending/extending.rst:25 +#: extending/extending.rst:25 msgid "" "The C extension interface is specific to CPython, and extension modules do " "not work on other Python implementations. In many cases, it is possible to " @@ -77,11 +77,11 @@ msgstr "" "implémentations de Python que l'écriture et la compilation d'une d'extension " "C." -#: ../Doc/extending/extending.rst:40 +#: extending/extending.rst:40 msgid "A Simple Example" msgstr "Un exemple simple" -#: ../Doc/extending/extending.rst:42 +#: extending/extending.rst:42 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 " @@ -96,7 +96,7 @@ msgstr "" "un entier. Nous voulons que cette fonction soit appelable à partir de Python " "comme suit :" -#: ../Doc/extending/extending.rst:53 +#: extending/extending.rst:53 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:" @@ -108,11 +108,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:58 +#: extending/extending.rst:58 msgid "The first two lines of our file can be::" msgstr "Les deux premières lignes de notre fichier peuvent être ::" -#: ../Doc/extending/extending.rst:63 +#: extending/extending.rst:63 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)." @@ -120,7 +120,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:68 +#: extending/extending.rst:68 msgid "" "Since Python may define some pre-processor definitions which affect the " "standard headers on some systems, you *must* include :file:`Python.h` before " @@ -130,31 +130,34 @@ 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:72 +#: extending/extending.rst:72 msgid "" "It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " "``Python.h``. See :ref:`parsetuple` for a description of this macro." msgstr "" +"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure " +"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " +"macro." -#: ../Doc/extending/extending.rst:75 +#: extending/extending.rst:75 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, " -"and since they are used extensively by the Python interpreter, ``\"Python.h" -"\"`` includes a few standard header files: ````, ````, " +"and since they are used extensively by the Python interpreter, ``\"Python." +"h\"`` includes a few standard header files: ````, ````, " "````, and ````. If the latter header file does not exist " "on your system, it declares the functions :c:func:`malloc`, :c:func:`free` " "and :c:func:`realloc` directly." msgstr "" "Tous les symboles exposés par :file:`Python.h` sont préfixés de ``Py`` ou " "``PY``, sauf ceux qui sont définis dans les en-têtes standard. Pour le " -"confort, et comme ils sont largement utilisés par l'interpréteur Python, ``" -"\"Python.h\"`` inclut lui même quelques d'en-têtes standard : ````, " -"````, ```` et ````. Si ce dernier n'existe pas " -"sur votre système, il déclare les fonctions :c:func:`malloc`, :c:func:`free` " -"et :c:func:`realloc` directement." +"confort, et comme ils sont largement utilisés par l'interpréteur Python, " +"``\"Python.h\"`` inclut lui même quelques d'en-têtes standard : ````, ````, ```` et ````. Si ce dernier " +"n'existe pas sur votre système, il déclare les fonctions :c:func:`malloc`, :" +"c:func:`free` et :c:func:`realloc` directement." -#: ../Doc/extending/extending.rst:83 +#: extending/extending.rst:83 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 " @@ -165,7 +168,7 @@ msgstr "" "system(chaîne)`` sera évaluée (nous verrons bientôt comment elle finit par " "être appelée) ::" -#: ../Doc/extending/extending.rst:99 +#: extending/extending.rst:99 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 " @@ -177,7 +180,7 @@ msgstr "" "La fonction C a toujours deux arguments, appelés par convention *self* et " "*args*." -#: ../Doc/extending/extending.rst:104 +#: extending/extending.rst:104 msgid "" "The *self* argument points to the module object for module-level functions; " "for a method it would point to the object instance." @@ -185,7 +188,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:107 +#: extending/extending.rst:107 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 " @@ -206,32 +209,33 @@ msgstr "" "ainsi que les types de variables C dans lequel stocker les valeurs " "converties. Nous en verront plus, plus tard." -#: ../Doc/extending/extending.rst:116 +#: extending/extending.rst:116 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 " "addresses are passed. It returns false (zero) if an invalid argument list " "was passed. In the latter case it also raises an appropriate exception so " -"the calling function can return *NULL* immediately (as we saw in the " +"the calling function can return ``NULL`` immediately (as we saw in the " "example)." msgstr "" ":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments ont " "le bon type et que ses composants ont été stockés dans les variables dont " -"les adresses données. Il renvoie faux (zéro) si une liste d'arguments " -"invalide a été passée. Dans ce dernier cas, elle lève également une " -"exception appropriée de sorte que la fonction d'appel puisse renvoyer *NULL* " -"immédiatement (comme nous l'avons vu dans l'exemple)." +"les adresses ont été données en entrée. Il renvoie faux (zéro) si une liste " +"d'arguments invalide a été passée. Dans ce dernier cas, elle lève également " +"une exception appropriée de sorte que la fonction d'appel puisse renvoyer " +"``NULL`` immédiatement (comme nous l'avons vu dans l'exemple)." -#: ../Doc/extending/extending.rst:126 +#: extending/extending.rst:126 msgid "Intermezzo: Errors and Exceptions" msgstr "Intermezzo: Les erreurs et exceptions" -#: ../Doc/extending/extending.rst:128 +#: extending/extending.rst:128 +#, fuzzy msgid "" "An important convention throughout the Python interpreter is the following: " "when a function fails, it should set an exception condition and return an " -"error value (usually a *NULL* pointer). Exceptions are stored in a static " -"global variable inside the interpreter; if this variable is *NULL* no " +"error value (usually a ``NULL`` pointer). Exceptions are stored in a static " +"global variable inside the interpreter; if this variable is ``NULL`` no " "exception has occurred. A second global variable stores the \"associated " "value\" of the exception (the second argument to :keyword:`raise`). A third " "variable contains the stack traceback in case the error originated in Python " @@ -253,7 +257,7 @@ msgstr "" "Reference*). Il est important de les connaître pour comprendre comment les " "erreurs sont propagées." -#: ../Doc/extending/extending.rst:139 +#: extending/extending.rst:139 msgid "" "The Python API defines a number of functions to set various types of " "exceptions." @@ -261,7 +265,7 @@ msgstr "" "L'API Python définit un certain nombre de fonctions pour créer différents " "types d'exceptions." -#: ../Doc/extending/extending.rst:141 +#: extending/extending.rst:141 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 " @@ -275,7 +279,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:147 +#: extending/extending.rst:147 msgid "" "Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " "exception argument and constructs the associated value by inspection of the " @@ -290,29 +294,30 @@ 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:154 +#: extending/extending.rst:154 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* " -"if no exception has occurred. You normally don't need to call :c:func:" -"`PyErr_Occurred` to see whether an error occurred in a function call, since " -"you should be able to tell from the return value." +"func:`PyErr_Occurred`. This returns the current exception object, or " +"``NULL`` if no exception has occurred. You normally don't need to call :c:" +"func:`PyErr_Occurred` to see whether an error occurred in a function call, " +"since you should be able to tell from the return value." msgstr "" "Vous pouvez tester de manière non destructive si une exception a été levée " "avec :c:func:`PyErr_Occurred`. Cela renvoie l'objet exception actuel, ou " -"*NULL* si aucune exception n'a eu lieu. Cependant, vous ne devriez pas avoir " -"besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " +"``NULL`` si aucune exception n'a eu lieu. Cependant, vous ne devriez pas " +"avoir besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " "survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " -"de le déterminer à partir de la valeur de retour." +"de le déterminer à partir de la valeur renvoyée." -#: ../Doc/extending/extending.rst:160 +#: extending/extending.rst:160 +#, fuzzy 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``). " -"It should *not* call one of the :c:func:`PyErr_\\*` functions --- one has " -"already been called by *g*. *f*'s caller is then supposed to also return an " -"error indication to *its* caller, again *without* calling :c:func:`PyErr_" -"\\*`, and so on --- the most detailed cause of the error was already " +"fails, *f* should itself return an error value (usually ``NULL`` or " +"``-1``). It should *not* call one of the :c:func:`PyErr_\\*` functions --- " +"one has already been called by *g*. *f*'s caller is then supposed to also " +"return an error indication to *its* caller, again *without* calling :c:func:" +"`PyErr_\\*`, and so on --- the most detailed cause of the error was already " "reported by the function that first detected it. Once the error reaches the " "Python interpreter's main loop, this aborts the currently executing Python " "code and tries to find an exception handler specified by the Python " @@ -330,7 +335,7 @@ msgstr "" "d'exécution et essaie de trouver un gestionnaire d'exception spécifié par le " "développeur Python." -#: ../Doc/extending/extending.rst:170 +#: extending/extending.rst:170 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 " @@ -345,7 +350,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:176 +#: extending/extending.rst:176 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 " @@ -360,7 +365,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:182 +#: extending/extending.rst:182 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:" @@ -375,7 +380,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:188 +#: extending/extending.rst:188 msgid "" "Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " "and friends, functions that return an integer status usually return a " @@ -387,7 +392,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:192 +#: extending/extending.rst:192 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 " @@ -397,7 +402,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:196 +#: extending/extending.rst:196 msgid "" "The choice of which exception to raise is entirely yours. There are " "predeclared C objects corresponding to all built-in Python exceptions, such " @@ -421,7 +426,7 @@ msgstr "" "satisfaire d'autres conditions, :c:data:`PyExc_ValueError` sera plus " "appropriée." -#: ../Doc/extending/extending.rst:206 +#: extending/extending.rst:206 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::" @@ -429,29 +434,27 @@ msgstr "" "Vous pouvez également créer une exception spécifique à votre module. Pour " "cela, déclarez simplement une variable statique au début de votre fichier ::" -#: ../Doc/extending/extending.rst:211 -#, fuzzy +#: extending/extending.rst:211 msgid "" "and initialize it in your module's initialization function (:c:func:" "`PyInit_spam`) with an exception object::" 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) ::" +"`PyInit_spam`) avec un objet exception ::" -#: ../Doc/extending/extending.rst:235 +#: extending/extending.rst:235 msgid "" "Note that the Python name for the exception object is :exc:`spam.error`. " "The :c:func:`PyErr_NewException` function may create a class with the base " "class being :exc:`Exception` (unless another class is passed in instead of " -"*NULL*), described in :ref:`bltin-exceptions`." +"``NULL``), described in :ref:`bltin-exceptions`." msgstr "" -"Notez que le nom de exception, côté Python, est :exc:`spam.error`. La " +"Notez que le nom de l'exception en Python est :exc:`spam.error`. La " "fonction :c:func:`PyErr_NewException` peut créer une classe héritant de :exc:" "`Exception` (à moins qu'une autre classe ne lui soit fournie à la place de " -"*NULL*), voir :ref:`bltin-exceptions`." +"``NULL``), voir :ref:`bltin-exceptions`." -#: ../Doc/extending/extending.rst:240 +#: extending/extending.rst:240 msgid "" "Note also that the :c:data:`SpamError` variable retains a reference to the " "newly created exception class; this is intentional! Since the exception " @@ -469,7 +472,7 @@ msgstr "" "défaillant, le C code qui lève l'exception peut engendrer un rejet central " "ou des effets secondaires inattendus." -#: ../Doc/extending/extending.rst:247 +#: extending/extending.rst:247 msgid "" "We discuss the use of ``PyMODINIT_FUNC`` as a function return type later in " "this sample." @@ -477,7 +480,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:250 +#: extending/extending.rst:250 msgid "" "The :exc:`spam.error` exception can be raised in your extension module using " "a call to :c:func:`PyErr_SetString` as shown below::" @@ -485,11 +488,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:273 +#: extending/extending.rst:273 msgid "Back to the Example" msgstr "Retour vers l'exemple" -#: ../Doc/extending/extending.rst:275 +#: extending/extending.rst:275 msgid "" "Going back to our example function, you should now be able to understand " "this statement::" @@ -497,9 +500,9 @@ msgstr "" "En revenant vers notre fonction exemple, vous devriez maintenant être " "capable de comprendre cette affirmation ::" -#: ../Doc/extending/extending.rst:281 +#: extending/extending.rst:281 msgid "" -"It returns *NULL* (the error indicator for functions returning object " +"It returns ``NULL`` (the error indicator for functions returning object " "pointers) if an error is detected in the argument list, relying on the " "exception set by :c:func:`PyArg_ParseTuple`. Otherwise the string value of " "the argument has been copied to the local variable :c:data:`command`. This " @@ -507,16 +510,16 @@ msgid "" "which it points (so in Standard C, the variable :c:data:`command` should " "properly be declared as ``const char *command``)." msgstr "" -"Elle renvoie *NULL* (l'indicateur d'erreur pour les fonctions renvoyant des " -"pointeurs d'objet) si une erreur est détectée dans la liste des arguments,se " -"fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. Autrement,la " -"valeur chaîne de l'argument a été copiée dans la variable locale :c:data:" -"`command`. Il s'agit d'une attribution de pointeur et vous n'êtes pas " -"supposés modifier la chaîne qui vers laquelle il pointe (donc en C Standard, " -"la variable :c:data:`command` doit être clairement déclarée comme ``const " -"char *command``)." +"Elle renvoie ``NULL`` (l'indicateur d'erreur pour les fonctions renvoyant " +"des pointeurs d'objet) si une erreur est détectée dans la liste des " +"arguments, se fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. " +"Autrement, la valeur chaîne de l'argument a été copiée dans la variable " +"locale :c:data:`command`. Il s'agit d'une attribution de pointeur et vous " +"n'êtes pas supposés modifier la chaîne vers laquelle il pointe (donc en C " +"Standard, la variable :c:data:`command` doit être clairement déclarée comme " +"``const char *command``)." -#: ../Doc/extending/extending.rst:289 +#: extending/extending.rst:289 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`::" @@ -525,7 +528,7 @@ msgstr "" "en lui passant la chaîne que nous venons d'obtenir à partir de :c:func:" "`PyArg_ParseTuple` ::" -#: ../Doc/extending/extending.rst:294 +#: extending/extending.rst:294 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`. ::" @@ -534,7 +537,7 @@ msgstr "" "comme un objet Python. Cela est effectué par l'utilisation de la fonction :c:" "func:`PyLong_FromLong`. ::" -#: ../Doc/extending/extending.rst:299 +#: extending/extending.rst:299 msgid "" "In this case, it will return an integer object. (Yes, even integers are " "objects on the heap in Python!)" @@ -542,7 +545,7 @@ msgstr "" "Dans ce cas, elle renverra un objet entier. (Oui, même les entiers sont des " "objets dans le tas en Python!)" -#: ../Doc/extending/extending.rst:302 +#: extending/extending.rst:302 msgid "" "If you have a C function that returns no useful argument (a function " "returning :c:type:`void`), the corresponding Python function must return " @@ -554,28 +557,31 @@ 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:310 +#: extending/extending.rst:310 msgid "" ":c:data:`Py_None` is the C name for the special Python object ``None``. It " -"is a genuine Python object rather than a *NULL* pointer, which means \"error" -"\" in most contexts, as we have seen." +"is a genuine Python object rather than a ``NULL`` pointer, which means " +"\"error\" in most contexts, as we have seen." msgstr "" -":c:data:`Py_None` est le nom C pour l'objet spécial Python ``None``. C'est " -"un authentique objet Python plutôt qu'un pointeur *NULL*, qui signifie " -"qu'une erreur est survenue, dans la plupart des situations, comme nous " -"l'avons vu." +":c:data:`Py_None` est la dénomination en C pour l'objet spécial Python " +"``None``. C'est un authentique objet Python plutôt qu'un pointeur ``NULL``, " +"qui signifie qu'une erreur est survenue, dans la plupart des situations, " +"comme nous l'avons vu." -#: ../Doc/extending/extending.rst:318 +#: extending/extending.rst:318 msgid "The Module's Method Table and Initialization Function" -msgstr "" +msgstr "La fonction d'initialisation et le tableau des méthodes du module" -#: ../Doc/extending/extending.rst:320 +#: extending/extending.rst:320 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 "" +"Nous avons promis de montrer comment :c:func:`spam_system` est appelée " +"depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom et " +"son adresse dans un « tableau des méthodes » ::" -#: ../Doc/extending/extending.rst:331 +#: extending/extending.rst:331 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 " @@ -583,15 +589,24 @@ msgid "" "value of ``0`` means that an obsolete variant of :c:func:`PyArg_ParseTuple` " "is used." msgstr "" +"Notez la troisième entrée (``METH_VARARGS``). C'est un indicateur du type de " +"convention à utiliser pour la fonction C, à destination de l'interpréteur. " +"Il doit valoir normalement ``METH_VARARGS`` ou ``METH_VARARGS | " +"METH_KEYWORDS`` ; la valeur ``0`` indique qu'une variante obsolète de :c:" +"func:`PyArg_ParseTuple` est utilisée." -#: ../Doc/extending/extending.rst:336 +#: extending/extending.rst:336 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 "" +"Si seulement ``METH_VARARGS`` est utilisé, la fonction s'attend à ce que les " +"paramètres Python soient passés comme un n-uplet que l'on peut analyser " +"*via* :c:func:`PyArg_ParseTuple` ; des informations supplémentaires sont " +"fournies plus bas." -#: ../Doc/extending/extending.rst:340 +#: extending/extending.rst:340 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 " @@ -599,28 +614,43 @@ msgid "" "keywords. Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments " "to such a function." msgstr "" +"Le bit :const:`METH_KEYWORDS` peut être mis à un dans le troisième champ si " +"des arguments par mot-clés doivent être passés à la fonction. Dans ce cas, " +"la fonction C doit accepter un troisième paramètre ``PyObject *`` qui est un " +"dictionnaire des mots-clés. Utilisez :c:func:`PyArg_ParseTupleAndKeywords` " +"pour analyser les arguments d'une telle fonction." -#: ../Doc/extending/extending.rst:346 +#: extending/extending.rst:346 msgid "" "The method table must be referenced in the module definition structure::" msgstr "" +"Le tableau des méthodes doit être référencé dans la structure de définition " +"du module ::" -#: ../Doc/extending/extending.rst:357 +#: extending/extending.rst:357 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:" "`PyInit_name`, where *name* is the name of the module, and should be the " "only non-\\ ``static`` item defined in the module file::" msgstr "" +"Cette structure, à son tour, doit être transmise à l'interpréteur dans la " +"fonction d'initialisation du module. La fonction d'initialisation doit être " +"nommée :c:func:`PyInit_name`, où *nom* est le nom du module, et doit être le " +"seul élément non ``static`` défini dans le fichier du module ::" -#: ../Doc/extending/extending.rst:368 +#: extending/extending.rst:368 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 "" +"Notez que *PyMODINIT_FUNC* déclare la fonction comme renvoyant un objet de " +"type ``PyObject *``, et déclare également toute déclaration de liaison " +"spéciale requise par la plate-forme, et pour le C++ déclare la fonction " +"comme un C ``extern``." -#: ../Doc/extending/extending.rst:372 +#: extending/extending.rst:372 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 " @@ -629,20 +659,36 @@ msgid "" "upon the table (an array of :c:type:`PyMethodDef` structures) found in the " "module definition. :c:func:`PyModule_Create` returns a pointer to the module " "object that it creates. It may abort with a fatal error for certain errors, " -"or return *NULL* if the module could not be initialized satisfactorily. The " -"init function must return the module object to its caller, so that it then " -"gets inserted into ``sys.modules``." -msgstr "" - -#: ../Doc/extending/extending.rst:383 +"or return ``NULL`` if the module could not be initialized satisfactorily. " +"The init function must return the module object to its caller, so that it " +"then gets inserted into ``sys.modules``." +msgstr "" +"Lorsque le programme Python importe le module :mod:`spam` pour la première " +"fois, :c:func:`PyInit_spam` est appelé. (Voir ci-dessous pour les " +"commentaires sur l'intégration en Python.) Il appelle :c:func:" +"`PyModule_Create`, qui renvoie un objet module, et insère des objets " +"fonction intégrés dans le module nouvellement créé en se basant sur la table " +"(un tableau de structures :c:type:`PyMethodDef`) trouvée dans la définition " +"du module. :c:func:`PyModule_Create` renvoie un pointeur vers l'objet module " +"qu'il crée. Il peut s'interrompre avec une erreur fatale pour certaines " +"erreurs, ou renvoyer ``NULL`` si le module n'a pas pu être initialisé de " +"manière satisfaisante. La fonction `*init* doit renvoyer l'objet module à " +"son appelant, afin qu'il soit ensuite inséré dans ``sys.modules``." + +#: extending/extending.rst:383 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` " "table. To add the module to the initialization table, use :c:func:" "`PyImport_AppendInittab`, optionally followed by an import of the module::" msgstr "" +"Lors de l'intégration de Python, la fonction :c:func:`PyInit_spam` n'est pas " +"appelée automatiquement, sauf s'il y a une entrée dans la table :c:data:" +"`PyImport_Inittab`. Pour ajouter le module à la table d'initialisation, " +"utilisez :c:func:`PyImport_AppendInittab`, suivi éventuellement d'une " +"importation du module ::" -#: ../Doc/extending/extending.rst:419 +#: extending/extending.rst:427 msgid "" "Removing entries from ``sys.modules`` or importing compiled modules into " "multiple interpreters within a process (or following a :c:func:`fork` " @@ -650,27 +696,41 @@ msgid "" "extension modules. Extension module authors should exercise caution when " "initializing internal data structures." msgstr "" +"Supprimer des entrées de ``sys.modules`` ou importer des modules compilés " +"dans plusieurs interpréteurs au sein d'un processus (ou suivre un :c:func:" +"`fork` sans l'intervention d'un :c:func:`exec`) peut créer des problèmes " +"pour certains modules d'extension. Les auteurs de modules d'extension " +"doivent faire preuve de prudence lorsqu'ils initialisent des structures de " +"données internes." -#: ../Doc/extending/extending.rst:425 +#: extending/extending.rst:433 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 "" +"Un exemple de module plus substantiel est inclus dans la distribution des " +"sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut être " +"utilisé comme modèle ou simplement lu comme exemple." -#: ../Doc/extending/extending.rst:431 +#: extending/extending.rst:439 msgid "" "Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase initialization* " "(new in Python 3.5), where a PyModuleDef structure is returned from " "``PyInit_spam``, and creation of the module is left to the import machinery. " "For details on multi-phase initialization, see :PEP:`489`." msgstr "" +"Contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " +"*initialisation multi-phase* (nouveau en Python 3.5), où une structure " +"*PyModuleDef* est renvoyée à partir de ``PyInit_spam``, et la création du " +"module est laissée au mécanisme d'importation. Pour plus de détails sur " +"l'initialisation multi-phase, voir :PEP:`489`." -#: ../Doc/extending/extending.rst:440 +#: extending/extending.rst:448 msgid "Compilation and Linkage" -msgstr "" +msgstr "Compilation et liaison" -#: ../Doc/extending/extending.rst:442 +#: extending/extending.rst:450 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 " @@ -680,7 +740,7 @@ msgid "" "Windows (chapter :ref:`building-on-windows`) for more information about this." msgstr "" -#: ../Doc/extending/extending.rst:449 +#: extending/extending.rst:457 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 " @@ -690,7 +750,7 @@ msgid "" "line to the file :file:`Modules/Setup.local` describing your file:" msgstr "" -#: ../Doc/extending/extending.rst:460 +#: extending/extending.rst:468 msgid "" "and rebuild the interpreter by running :program:`make` in the toplevel " "directory. You can also run :program:`make` in the :file:`Modules/` " @@ -699,17 +759,17 @@ msgid "" "the :file:`Setup` file.)" msgstr "" -#: ../Doc/extending/extending.rst:466 +#: extending/extending.rst:474 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:" msgstr "" -#: ../Doc/extending/extending.rst:477 +#: extending/extending.rst:485 msgid "Calling Python Functions from C" -msgstr "" +msgstr "Appeler des fonctions Python en C" -#: ../Doc/extending/extending.rst:479 +#: extending/extending.rst:487 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 " @@ -720,7 +780,7 @@ msgid "" "uses are also imaginable." msgstr "" -#: ../Doc/extending/extending.rst:487 +#: extending/extending.rst:495 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 " @@ -729,7 +789,7 @@ msgid "" "line option in :file:`Modules/main.c` from the Python source code.)" msgstr "" -#: ../Doc/extending/extending.rst:493 +#: extending/extending.rst:501 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 " @@ -739,35 +799,44 @@ msgid "" "function might be part of a module definition::" msgstr "" -#: ../Doc/extending/extending.rst:523 +#: extending/extending.rst:531 msgid "" "This function must be registered with the interpreter using the :const:" "`METH_VARARGS` flag; this is described in section :ref:`methodtable`. The :" "c:func:`PyArg_ParseTuple` function and its arguments are documented in " "section :ref:`parsetuple`." msgstr "" +"Cette fonction doit être déclarée en utilisant le drapeau :const:" +"`METH_VARARGS` ; ceci est décrit dans la section :ref:`methodtable`. La " +"fonction :c:func:`PyArg_ParseTuple` et ses arguments sont documentés dans la " +"section :ref:`parsetuple`." -#: ../Doc/extending/extending.rst:528 +#: extending/extending.rst:536 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* " -"pointers (but note that *temp* will not be *NULL* in this context). More " +"the reference count of an object and are safe in the presence of ``NULL`` " +"pointers (but note that *temp* will not be ``NULL`` in this context). More " "info on them in section :ref:`refcounts`." msgstr "" +"Les macros :c:func:`Py_XINCREF` et :c:func:`Py_XDECREF` incrémentent/" +"décrémentent le compteur des références d'un objet et sont sûres quant à la " +"présence de pointeurs ``NULL`` (mais notez que *temp* ne sera pas ``NULL`` " +"dans ce contexte). Plus d'informations à ce sujet dans la section :ref:" +"`refcounts`." -#: ../Doc/extending/extending.rst:535 +#: extending/extending.rst:543 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 " "arbitrary Python objects: the Python function, and the argument list. The " "argument list must always be a tuple object, whose length is the number of " -"arguments. To call the Python function with no arguments, pass in NULL, or " -"an empty tuple; to call it with one argument, pass a singleton tuple. :c:" +"arguments. To call the Python function with no arguments, pass in ``NULL``, " +"or an empty tuple; to call it with one argument, pass a singleton tuple. :c:" "func:`Py_BuildValue` returns a tuple when its format string consists of zero " "or more format codes between parentheses. For example::" msgstr "" -#: ../Doc/extending/extending.rst:555 +#: extending/extending.rst:563 msgid "" ":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " "return value of the Python function. :c:func:`PyObject_CallObject` is " @@ -776,7 +845,7 @@ msgid "" "`Py_DECREF`\\ -ed immediately after the :c:func:`PyObject_CallObject` call." msgstr "" -#: ../Doc/extending/extending.rst:562 +#: extending/extending.rst:570 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 " @@ -785,18 +854,27 @@ msgid "" "not interested in its value." msgstr "" -#: ../Doc/extending/extending.rst:568 +#: extending/extending.rst:576 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 " +"isn't ``NULL``. If it is, the Python function terminated by raising an " "exception. If the C code that called :c:func:`PyObject_CallObject` is called " "from Python, it should now return an error indication to its Python caller, " "so the interpreter can print a stack trace, or the calling Python code can " "handle the exception. If this is not possible or desirable, the exception " "should be cleared by calling :c:func:`PyErr_Clear`. For example::" msgstr "" +"Mais avant de le faire, il est important de vérifier que la valeur renvoyée " +"n'est pas ``NULL``. Si c'est le cas, la fonction Python s'est terminée par " +"la levée d'une exception. Si le code C qui a appelé :c:func:" +"`PyObject_CallObject` est appelé depuis Python, il devrait maintenant " +"renvoyer une indication d'erreur à son appelant Python, afin que " +"l'interpréteur puisse afficher la pile d'appels, ou que le code Python " +"appelant puisse gérer l'exception. Si cela n'est pas possible ou " +"souhaitable, l'exception doit être effacée en appelant :c:func:" +"`PyErr_Clear`. Par exemple ::" -#: ../Doc/extending/extending.rst:581 +#: extending/extending.rst:589 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 " @@ -807,8 +885,18 @@ msgid "" "simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " "you want to pass an integral event code, you might use the following code::" msgstr "" +"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez " +"peut-être aussi fournir une liste d'arguments à :c:func:" +"`PyObject_CallObject`. Dans certains cas, la liste d'arguments est également " +"fournie par le programme Python, par l'intermédiaire de la même interface " +"qui a spécifié la fonction de rappel. Elle peut alors être sauvegardée et " +"utilisée de la même manière que l'objet fonction. Dans d'autres cas, vous " +"pouvez avoir à construire un nouveau n-uplet à passer comme liste " +"d'arguments. La façon la plus simple de faire cela est d'appeler :c:func:" +"`Py_BuildValue`. Par exemple, si vous voulez passer un code d'événement " +"intégral, vous pouvez utiliser le code suivant ::" -#: ../Doc/extending/extending.rst:600 +#: extending/extending.rst:608 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 " @@ -816,22 +904,26 @@ msgid "" "checked." msgstr "" -#: ../Doc/extending/extending.rst:604 +#: extending/extending.rst:612 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 "" +"Vous pouvez également appeler une fonction avec des arguments nommés en " +"utilisant :c:func:`PyObject_Call`, qui accepte les arguments et les " +"arguments nommés. Comme dans l'exemple ci-dessus, nous utilisons :c:func:" +"`Py_BuildValue` pour construire le dictionnaire. ::" -#: ../Doc/extending/extending.rst:622 +#: extending/extending.rst:630 msgid "Extracting Parameters in Extension Functions" -msgstr "" +msgstr "Extraire des paramètres dans des fonctions d'extension" -#: ../Doc/extending/extending.rst:626 +#: extending/extending.rst:634 msgid "The :c:func:`PyArg_ParseTuple` function is declared as follows::" -msgstr "" +msgstr "La fonction :c:func:`PyArg_ParseTuple` est déclarée ainsi ::" -#: ../Doc/extending/extending.rst:630 +#: extending/extending.rst:638 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, " @@ -840,7 +932,7 @@ msgid "" "whose type is determined by the format string." msgstr "" -#: ../Doc/extending/extending.rst:636 +#: extending/extending.rst:644 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 " @@ -848,7 +940,7 @@ msgid "" "probably crash or at least overwrite random bits in memory. So be careful!" msgstr "" -#: ../Doc/extending/extending.rst:641 +#: extending/extending.rst:649 msgid "" "Note that any Python object references which are provided to the caller are " "*borrowed* references; do not decrement their reference count!" @@ -857,62 +949,84 @@ 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:644 +#: extending/extending.rst:652 msgid "Some example calls::" -msgstr "" +msgstr "Quelques exemples d'appels ::" -#: ../Doc/extending/extending.rst:714 +#: extending/extending.rst:722 msgid "Keyword Parameters for Extension Functions" -msgstr "" +msgstr "Paramètres nommés pour des fonctions d'extension" -#: ../Doc/extending/extending.rst:718 +#: extending/extending.rst:726 msgid "" "The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" msgstr "" +"La fonction :c:func:`PyArg_ParseTupleAndKeywords` est déclarée ainsi ::" -#: ../Doc/extending/extending.rst:723 +#: extending/extending.rst:731 msgid "" "The *arg* and *format* parameters are identical to those of the :c:func:" "`PyArg_ParseTuple` function. The *kwdict* parameter is the dictionary of " "keywords received as the third parameter from the Python runtime. The " -"*kwlist* parameter is a *NULL*-terminated list of strings which identify the " -"parameters; the names are matched with the type information from *format* " -"from left to right. On success, :c:func:`PyArg_ParseTupleAndKeywords` " -"returns true, otherwise it returns false and raises an appropriate exception." -msgstr "" - -#: ../Doc/extending/extending.rst:733 +"*kwlist* parameter is a ``NULL``-terminated list of strings which identify " +"the parameters; the names are matched with the type information from " +"*format* from left to right. On success, :c:func:" +"`PyArg_ParseTupleAndKeywords` returns true, otherwise it returns false and " +"raises an appropriate exception." +msgstr "" +"Les paramètres *arg* et *format* sont identiques à ceux de la fonction :c:" +"func:`PyArg_ParseTuple`. Le paramètre *kwdict* est le dictionnaire de mots-" +"clés reçu comme troisième paramètre du *runtime* Python. Le paramètre " +"*kwlist* est une liste de chaînes de caractères terminée par ``NULL`` qui " +"identifie les paramètres ; les noms sont mis en correspondance, de gauche à " +"droite, avec les informations de type de *format*. En cas de succès du " +"processus, :c:func:`PyArg_ParseTupleAndKeywords` renvoie vrai, sinon il " +"renvoie faux et lève une exception appropriée." + +#: extending/extending.rst:741 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 "" +"Les n-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " +"arguments de type mot-clé ! Ceux-ci doivent apparaître dans dans *kwlist*, " +"dans le cas contraire une exception :exc:`TypeError` est levée." -#: ../Doc/extending/extending.rst:739 +#: extending/extending.rst:747 msgid "" "Here is an example module which uses keywords, based on an example by Geoff " "Philbrick (philbrick@hks.com)::" msgstr "" +"Voici un exemple de module qui utilise des mots-clés, basé sur un exemple de " +"*Geoff Philbrick* (philbrick@hks.com) ::" -#: ../Doc/extending/extending.rst:794 +#: extending/extending.rst:802 msgid "Building Arbitrary Values" -msgstr "" +msgstr "Créer des valeurs arbitraires" -#: ../Doc/extending/extending.rst:796 +#: extending/extending.rst:804 msgid "" "This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " "declared as follows::" msgstr "" +"Cette fonction est le complément de :c:func:`PyArg_ParseTuple`. Elle est " +"déclarée comme suit ::" -#: ../Doc/extending/extending.rst:801 +#: extending/extending.rst:809 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, " "not output) must not be pointers, just values. It returns a new Python " "object, suitable for returning from a C function called from Python." msgstr "" +"Il reconnaît un ensemble d'unités de format similaires à celles reconnues " +"par :c:func:`PyArg_ParseTuple`, mais les arguments (qui sont les données en " +"entrée de fonction, et non de la sortie) ne doivent pas être des pointeurs, " +"mais juste des valeurs. Il renvoie un nouvel objet Python, adapté pour être " +"renvoyé par une fonction C appelée depuis Python." -#: ../Doc/extending/extending.rst:806 +#: extending/extending.rst:814 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 " @@ -924,16 +1038,17 @@ msgid "" "parenthesize the format string." msgstr "" -#: ../Doc/extending/extending.rst:814 +#: extending/extending.rst:822 msgid "" "Examples (to the left the call, to the right the resulting Python value):" msgstr "" +"Exemples (à gauche l'appel, à droite la valeur résultante, en Python) :" -#: ../Doc/extending/extending.rst:840 +#: extending/extending.rst:848 msgid "Reference Counts" -msgstr "" +msgstr "Compteurs de références" -#: ../Doc/extending/extending.rst:842 +#: extending/extending.rst:850 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 " @@ -941,8 +1056,14 @@ msgid "" "``new`` and ``delete`` are used with essentially the same meaning and we'll " "restrict the following discussion to the C case." msgstr "" +"Dans les langages comme le C ou le C++, le développeur est responsable de " +"l'allocation dynamique et de la dés-allocation de la mémoire sur le tas. En " +"C, cela se fait à l'aide des fonctions :c:func:`malloc` et :c:func:`free`. " +"En C++, les opérateurs ``new`` et ``delete`` sont utilisés avec " +"essentiellement la même signification et nous limiterons la discussion " +"suivante au cas du C." -#: ../Doc/extending/extending.rst:848 +#: extending/extending.rst:856 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:" @@ -957,7 +1078,7 @@ msgid "" "crashes." msgstr "" -#: ../Doc/extending/extending.rst:859 +#: extending/extending.rst:867 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, " @@ -974,7 +1095,7 @@ msgid "" "of errors." msgstr "" -#: ../Doc/extending/extending.rst:872 +#: extending/extending.rst:880 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. " @@ -984,8 +1105,16 @@ msgid "" "reference to it is deleted. When the counter reaches zero, the last " "reference to the object has been deleted and the object is freed." msgstr "" +"Comme Python fait un usage intensif de :c:func:`malloc` et de :c:func:" +"`free`, il a besoin d'une stratégie pour éviter les fuites de mémoire ainsi " +"que l'utilisation de la mémoire libérée. La méthode choisie est appelée :dfn:" +"`reference counting`. Le principe est simple : chaque objet contient un " +"compteur, qui est incrémenté lorsqu'une référence à l'objet est stockée " +"quelque part, et qui est décrémenté lorsqu'une référence à celui-ci est " +"supprimée. Lorsque le compteur atteint zéro, la dernière référence à l'objet " +"a été supprimée et l'objet est libéré." -#: ../Doc/extending/extending.rst:880 +#: extending/extending.rst:888 msgid "" "An alternative strategy is called :dfn:`automatic garbage collection`. " "(Sometimes, reference counting is also referred to as a garbage collection " @@ -1000,8 +1129,21 @@ msgid "" "garbage collector will be available for C. Until then, we'll have to live " "with reference counts." msgstr "" - -#: ../Doc/extending/extending.rst:892 +"Une stratégie alternative est appelée :dfn:`automatic garbage collection` " +"(ramasse-miettes). Parfois, le comptage des références est également appelé " +"stratégie de ramasse-miettes, d'où l'utilisation du terme \"automatique\" " +"pour distinguer les deux. Le grand avantage du ramasse-miettes est que " +"l'utilisateur n'a pas besoin d'appeler :c:func:`free` explicitement. (Un " +"autre avantage important est l'amélioration de la vitesse ou de " +"l'utilisation de la mémoire, ce n'est cependant pas un fait avéré). " +"L'inconvénient est que pour C, il n'y a pas de ramasse-miettes portable " +"proprement-dit, alors que le comptage des références peut être implémenté de " +"façon portable (tant que les fonctions :c:func:`malloc` et :c:func:`free` " +"soient disponibles, ce que la norme C garantit). Peut-être qu'un jour un " +"ramasse-miettes suffisamment portable sera disponible pour C. D'ici là, nous " +"devrons utiliser les compteurs des références." + +#: extending/extending.rst:900 msgid "" "While Python uses the traditional reference counting implementation, it also " "offers a cycle detector that works to detect reference cycles. This allows " @@ -1014,8 +1156,20 @@ msgid "" "in a reference cycle, or referenced from the objects in the cycle, even " "though there are no further references to the cycle itself." msgstr "" - -#: ../Doc/extending/extending.rst:903 +"Bien que Python utilise l'implémentation traditionnelle de comptage de " +"référence, il contient également un détecteur de cycles qui fonctionne pour " +"détecter les cycles de référence. Cela permet aux applications d'empêcher la " +"création de références circulaires directes ou indirectes ; ceci sont les " +"faiblesses du ramasse-miettes mis en œuvre en utilisant uniquement le " +"comptage de référence. Les cycles de référence sont constitués d'objets qui " +"contiennent des références (éventuellement indirectes) à eux-mêmes, de sorte " +"que chaque objet du cycle a un comptage de référence qui n'est pas nul. Les " +"implémentations typiques de comptage de référence ne sont pas capables de " +"récupérer la mémoire appartenant à des objets dans un cycle de référence, ou " +"référencés à partir des objets dans le cycle, même s'il n'y a pas d'autres " +"références au cycle lui-même." + +#: extending/extending.rst:911 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." @@ -1027,11 +1181,11 @@ msgid "" "detector is disabled in this way, the :mod:`gc` module will not be available." msgstr "" -#: ../Doc/extending/extending.rst:917 +#: extending/extending.rst:925 msgid "Reference Counting in Python" -msgstr "" +msgstr "Comptage de références en Python" -#: ../Doc/extending/extending.rst:919 +#: extending/extending.rst:927 msgid "" "There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " "the incrementing and decrementing of the reference count. :c:func:" @@ -1041,8 +1195,15 @@ msgid "" "this purpose (and others), every object also contains a pointer to its type " "object." msgstr "" +"Il existe deux macros, ``Py_INCREF(x)`` et ``Py_DECREF(x)``, qui gèrent " +"l'incrémentation et la décrémentation du comptage de référence. :c:func:" +"`Py_DECREF` libère également l'objet lorsque le comptage atteint zéro. Pour " +"plus de flexibilité, il n'appelle pas :c:func:`free` directement — plutôt, " +"il fait un appel à travers un pointeur de fonction dans l'objet :dfn:`type " +"objet` de l'objet. À cette fin (et pour d'autres), chaque objet contient " +"également un pointeur vers son objet type." -#: ../Doc/extending/extending.rst:926 +#: extending/extending.rst:934 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 " @@ -1054,8 +1215,18 @@ msgid "" "on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " "reference creates a memory leak." msgstr "" +"La grande question demeure maintenant : quand utiliser ``Py_INCREF(x)`` et " +"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne " +"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le " +"comptage de références d'un objet est maintenant défini comme étant le " +"nombre de références à cet objet. Le propriétaire d'une référence est " +"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus " +"nécessaire. La propriété d'une référence peut être transférée. Il y a trois " +"façons de disposer d'une référence : la transmettre, la stocker, ou appeler :" +"c:func:`Py_DECREF`. Oublier de se débarrasser d'une référence crée une fuite " +"de mémoire." -#: ../Doc/extending/extending.rst:935 +#: extending/extending.rst:943 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 " @@ -1064,7 +1235,7 @@ msgid "" "risks using freed memory and should be avoided completely [#]_." msgstr "" -#: ../Doc/extending/extending.rst:941 +#: extending/extending.rst:949 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 " @@ -1074,8 +1245,16 @@ msgid "" "code a borrowed reference can be used after the owner from which it was " "borrowed has in fact disposed of it." msgstr "" +"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence est que " +"vous n'avez pas à vous soucier de disposer de la référence sur tous les " +"chemins possibles dans le code — en d'autres termes, avec une référence " +"empruntée, vous ne courez pas le risque de fuites lors d'une sortie " +"prématurée. L'inconvénient de l'emprunt par rapport à la possession est " +"qu'il existe certaines situations subtiles où, dans un code apparemment " +"correct, une référence empruntée peut être utilisée après que le " +"propriétaire auquel elle a été empruntée l'a en fait éliminée." -#: ../Doc/extending/extending.rst:949 +#: extending/extending.rst:957 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 " @@ -1084,18 +1263,22 @@ msgid "" "properly, as well as the previous owner)." msgstr "" -#: ../Doc/extending/extending.rst:959 +#: extending/extending.rst:967 msgid "Ownership Rules" -msgstr "" +msgstr "Règles concernant la propriété de références" -#: ../Doc/extending/extending.rst:961 +#: extending/extending.rst:969 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 "" +"Chaque fois qu'une référence d'objet est passée à l'intérieur ou à " +"l'extérieur d'une fonction, elle fait partie de la spécification de " +"l'interface de la fonction, peu importe que la propriété soit transférée " +"avec la référence ou non." -#: ../Doc/extending/extending.rst:965 +#: extending/extending.rst:973 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 " @@ -1106,7 +1289,7 @@ msgid "" "reference to a cached item." msgstr "" -#: ../Doc/extending/extending.rst:973 +#: extending/extending.rst:981 msgid "" "Many functions that extract objects from other objects also transfer " "ownership with the reference, for instance :c:func:" @@ -1117,14 +1300,14 @@ msgid "" "list or dictionary." msgstr "" -#: ../Doc/extending/extending.rst:980 +#: extending/extending.rst:988 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:984 +#: extending/extending.rst:992 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 " @@ -1135,7 +1318,7 @@ msgid "" "don't take over ownership --- they are \"normal.\")" msgstr "" -#: ../Doc/extending/extending.rst:992 +#: extending/extending.rst:1000 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 " @@ -1144,40 +1327,50 @@ msgid "" "turned into an owned reference by calling :c:func:`Py_INCREF`." msgstr "" -#: ../Doc/extending/extending.rst:998 +#: extending/extending.rst:1006 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:1006 +#: extending/extending.rst:1014 msgid "Thin Ice" -msgstr "" +msgstr "Terrain dangereux" -#: ../Doc/extending/extending.rst:1008 +#: extending/extending.rst:1016 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 " "invocations of the interpreter, which can cause the owner of a reference to " "dispose of it." msgstr "" +"Il existe quelques situations où l'utilisation apparemment inoffensive d'une " +"référence empruntée peut entraîner des problèmes. Tous ces problèmes sont en " +"lien avec des invocations implicites de l’interpréteur, et peuvent amener le " +"propriétaire d'une référence à s'en défaire." -#: ../Doc/extending/extending.rst:1012 +#: extending/extending.rst:1020 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 "" +"Le premier cas, et le plus important à connaître, est celui de l'application " +"de :c:func:`Py_DECREF` à un objet non relié, tout en empruntant une " +"référence à un élément de liste. Par exemple ::" -#: ../Doc/extending/extending.rst:1024 +#: extending/extending.rst:1032 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 "" +"Cette fonction emprunte d'abord une référence à ``list[0]``, puis remplace " +"``list[1]`` par la valeur ``0``, et enfin affiche la référence empruntée. " +"Ça a l'air inoffensif, n'est-ce pas ? Mais ce n'est pas le cas !" -#: ../Doc/extending/extending.rst:1028 +#: extending/extending.rst:1036 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 " @@ -1186,8 +1379,15 @@ msgid "" "defined a :meth:`__del__` method. If this class instance has a reference " "count of 1, disposing of it will call its :meth:`__del__` method." msgstr "" +"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède " +"des références à tous ses éléments, donc quand l'élément 1 est remplacé, " +"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que " +"l'élément 1 original était une instance d'une classe définie par " +"l'utilisateur, et supposons en outre que la classe définisse une méthode :" +"meth:`__del__`. Si l'instance de cette classe a un nombre des références de " +"1, sa destruction appellera sa méthode :meth:`__del__`." -#: ../Doc/extending/extending.rst:1035 +#: extending/extending.rst:1043 msgid "" "Since it is written in Python, the :meth:`__del__` method can execute " "arbitrary Python code. Could it perhaps do something to invalidate the " @@ -1197,21 +1397,28 @@ msgid "" "this was the last reference to that object, it would free the memory " "associated with it, thereby invalidating ``item``." msgstr "" +"Comme elle est écrite en Python, la méthode :meth:`__del__` peut exécuter du " +"code Python arbitraire. Pourrait-elle faire quelque chose pour invalider la " +"référence à ``item`` dans :c:func:`bug` ? Bien sûr ! En supposant que la " +"liste passée dans :c:func:`bug` est accessible à la méthode :meth:`__del__`, " +"elle pourrait exécuter une instruction à l'effet de ``del list[0]``, et en " +"supposant que ce soit la dernière référence à cet objet, elle libérerait la " +"mémoire qui lui est associée, invalidant ainsi ``item``." -#: ../Doc/extending/extending.rst:1043 +#: extending/extending.rst:1051 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:1057 +#: extending/extending.rst:1065 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:1061 +#: extending/extending.rst:1069 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 " @@ -1223,64 +1430,95 @@ msgid "" "complete. Obviously, the following function has the same problem as the " "previous one::" msgstr "" - -#: ../Doc/extending/extending.rst:1084 +"Le deuxième cas de problèmes liés à une référence empruntée est une variante " +"impliquant des fils de discussion. Normalement, plusieurs threads dans " +"l'interpréteur Python ne peuvent pas se gêner mutuellement, car il existe un " +"verrou global protégeant tout l'espace objet de Python. Cependant, il est " +"possible de libérer temporairement ce verrou en utilisant la macro :c:macro:" +"`Py_BEGIN_ALLOW_THREADS`, et de le ré-acquérir en utilisant :c:macro:" +"`Py_END_ALLOW_THREADS`. Ceci est un procédé courant pour bloquer les appels " +"d'entrées/sorties, afin de permettre aux autres threads d'utiliser le " +"processeur en attendant que les E/S soient terminées. Évidemment, la " +"fonction suivante a le même problème que la précédente ::" + +#: extending/extending.rst:1092 msgid "NULL Pointers" -msgstr "" +msgstr "Pointeurs ``NULL``" -#: ../Doc/extending/extending.rst:1086 +#: extending/extending.rst:1094 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 " +"you to pass them ``NULL`` pointers, and will dump core (or cause later core " "dumps) if you do so. Functions that return object references generally " -"return *NULL* only to indicate that an exception occurred. The reason for " -"not testing for *NULL* arguments is that functions often pass the objects " +"return ``NULL`` only to indicate that an exception occurred. The reason for " +"not testing for ``NULL`` arguments is that functions often pass the objects " "they receive on to other function --- if each function were to test for " -"*NULL*, there would be a lot of redundant tests and the code would run more " -"slowly." +"``NULL``, there would be a lot of redundant tests and the code would run " +"more slowly." msgstr "" +"En général, les fonctions qui prennent des références d'objets comme " +"arguments ne sont pas conçues pour recevoir des pointeurs ``NULL``, et si " +"vous en donnez comme arguments, elles causeront une erreur de segmentation " +"(ou provoqueront des *core dump* ultérieurs). Les fonctions qui renvoient " +"des références d'objets renvoient généralement ``NULL`` uniquement pour " +"indiquer qu'une exception s'est produite. La raison pour laquelle les " +"arguments ``NULL`` ne sont pas testés est que les fonctions passent souvent " +"les objets qu'elles reçoivent à d'autres fonctions, si chaque fonction " +"devait tester pour ``NULL``, il y aurait beaucoup de tests redondants et le " +"code s'exécuterait plus lentement." -#: ../Doc/extending/extending.rst:1094 +#: extending/extending.rst:1102 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." +"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 "" +"Il est préférable de tester la présence de ``NULL`` uniquement au début : " +"lorsqu'un pointeur qui peut être ``NULL`` est reçu, par exemple, de :c:func:" +"`malloc` ou d'une fonction qui peut lever une exception." -#: ../Doc/extending/extending.rst:1098 +#: extending/extending.rst:1106 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." +"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` and :c:" +"func:`Py_XDECREF` do." msgstr "" +"Les macros :c:func:`Py_INCREF` et :c:func:`Py_DECREF` ne vérifient pas les " +"pointeurs ``NULL``. Cependant, leurs variantes :c:func:`Py_XINCREF` et :c:" +"func:`Py_XDECREF` le font." -#: ../Doc/extending/extending.rst:1102 +#: extending/extending.rst:1110 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 " +"don't check for ``NULL`` pointers --- again, there is much code that calls " "several of these in a row to test an object against various different " "expected types, and this would generate redundant tests. There are no " -"variants with *NULL* checking." +"variants with ``NULL`` checking." msgstr "" -#: ../Doc/extending/extending.rst:1108 +#: extending/extending.rst:1116 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 " +"C functions (``args`` in the examples) is never ``NULL`` --- in fact it " "guarantees that it is always a tuple [#]_." msgstr "" +"Le mécanisme d'appel de fonctions C garantit que la liste d'arguments passée " +"aux fonctions C (``args`` dans les exemples) n'est jamais ``NULL``. En fait, " +"il garantit qu'il s'agit toujours d'un n-uplet [#]_." -#: ../Doc/extending/extending.rst:1112 +#: extending/extending.rst:1120 msgid "" -"It is a severe error to ever let a *NULL* pointer \"escape\" to the Python " +"It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python " "user." msgstr "" +"C'est une grave erreur de laisser un pointeur ``NULL`` \"échapper\" à " +"l'utilisateur Python." -#: ../Doc/extending/extending.rst:1123 +#: extending/extending.rst:1131 msgid "Writing Extensions in C++" -msgstr "" +msgstr "Écrire des extensions en C++" -#: ../Doc/extending/extending.rst:1125 +#: extending/extending.rst:1133 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 " @@ -1292,12 +1530,23 @@ msgid "" "`` --- they use this form already if the symbol ``__cplusplus`` is defined " "(all recent C++ compilers define this symbol)." msgstr "" - -#: ../Doc/extending/extending.rst:1139 +"C'est possible d'écrire des modules d'extension en C++, mais sous certaines " +"conditions. Si le programme principal (l'interpréteur Python) est compilé et " +"lié par le compilateur C, les objets globaux ou statiques avec les " +"constructeurs ne peuvent pas être utilisés. Ceci n'est pas un problème si le " +"programme principal est relié par le compilateur C++. Les fonctions qui " +"seront appelées par l'interpréteur Python (en particulier, les fonctions " +"d'initialisation des modules) doivent être déclarées en utilisant ``extern " +"\"C\"``. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python " +"dans le ``extern \"C\" {…}``, car ils utilisent déjà ce format si le symbole " +"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce " +"symbole)." + +#: extending/extending.rst:1147 msgid "Providing a C API for an Extension Module" -msgstr "" +msgstr "Fournir une API en langage C pour un module d'extension" -#: ../Doc/extending/extending.rst:1144 +#: extending/extending.rst:1152 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 " @@ -1307,8 +1556,17 @@ msgid "" "create and manipulate lists, this new collection type should have a set of C " "functions for direct manipulation from other extension modules." msgstr "" +"De nombreux modules d'extension fournissent simplement de nouvelles " +"fonctions et de nouveaux types à utiliser à partir de Python, mais parfois " +"le code d'un module d'extension peut être utile pour d'autres modules " +"d'extension. Par exemple, un module d'extension peut mettre en œuvre un type " +"\"collection\" qui fonctionne comme des listes sans ordre. Tout comme le " +"type de liste Python standard possède une API C qui permet aux modules " +"d'extension de créer et de manipuler des listes, ce nouveau type de " +"collection devrait posséder un ensemble de fonctions C pour une manipulation " +"directe à partir d'autres modules d'extension." -#: ../Doc/extending/extending.rst:1152 +#: extending/extending.rst:1160 msgid "" "At first sight this seems easy: just write the functions (without declaring " "them ``static``, of course), provide an appropriate header file, and " @@ -1323,8 +1581,22 @@ msgid "" "if symbols are globally visible, the module whose functions one wishes to " "call might not have been loaded yet!" msgstr "" - -#: ../Doc/extending/extending.rst:1164 +"À première vue, cela semble facile : il suffit d'écrire les fonctions (sans " +"les déclarer \"statiques\", bien sûr), de fournir un fichier d'en-tête " +"approprié et de documenter l'API C. Et en fait, cela fonctionnerait si tous " +"les modules d'extension étaient toujours liés statiquement avec " +"l'interpréteur Python. Cependant, lorsque les modules sont utilisés comme " +"des bibliothèques partagées, les symboles définis dans un module peuvent ne " +"pas être visibles par un autre module. Les détails de la visibilité " +"dépendent du système d'exploitation ; certains systèmes utilisent un espace " +"de noms global pour l'interpréteur Python et tous les modules d'extension " +"(Windows, par exemple), tandis que d'autres exigent une liste explicite des " +"symboles importés au moment de la liaison des modules (AIX en est un " +"exemple), ou offrent un choix de stratégies différentes (la plupart des " +"*Unix*). Et même si les symboles sont globalement visibles, le module dont " +"on souhaite appeler les fonctions n'est peut-être pas encore chargé !" + +#: extending/extending.rst:1172 msgid "" "Portability therefore requires not to make any assumptions about symbol " "visibility. This means that all symbols in extension modules should be " @@ -1333,8 +1605,16 @@ msgid "" "section :ref:`methodtable`). And it means that symbols that *should* be " "accessible from other extension modules must be exported in a different way." msgstr "" +"La portabilité exige donc de ne faire aucune supposition sur la visibilité " +"des symboles. Cela signifie que tous les symboles des modules d'extension " +"doivent être déclarés ``static``, à l'exception de la fonction " +"d'initialisation du module, afin d'éviter les conflits de noms avec les " +"autres modules d'extension (comme discuté dans la section :ref:" +"`methodtable`). Et cela signifie que les symboles qui *devraient* être " +"accessibles à partir d'autres modules d'extension doivent être exportés " +"d'une manière différente." -#: ../Doc/extending/extending.rst:1171 +#: extending/extending.rst:1179 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 " @@ -1346,7 +1626,7 @@ msgid "" "the Capsule." msgstr "" -#: ../Doc/extending/extending.rst:1179 +#: extending/extending.rst:1187 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 " @@ -1355,24 +1635,31 @@ msgid "" "distributed in different ways between the module providing the code and the " "client modules." msgstr "" +"Il existe de nombreuses façons d'utiliser les Capsules pour exporter l'API C " +"d'un module d'extension. Chaque fonction peut obtenir sa propre Capsule, ou " +"tous les pointeurs de l'API C peuvent être stockés dans un tableau dont " +"l'adresse est inscrite dans une Capsule. Et les différentes tâches de " +"stockage et de récupération des pointeurs peuvent être réparties de " +"différentes manières entre le module fournissant le code et les modules " +"clients." -#: ../Doc/extending/extending.rst:1185 +#: extending/extending.rst:1193 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 " -"char \\*`); you're permitted to pass in a *NULL* name, but we strongly " +"char \\*`); you're permitted to pass in a ``NULL`` name, but we strongly " "encourage you to specify a name. Properly named Capsules provide a degree " "of runtime type-safety; there is no feasible way to tell one unnamed Capsule " "from another." msgstr "" -#: ../Doc/extending/extending.rst:1192 +#: extending/extending.rst:1200 msgid "" "In particular, Capsules used to expose C APIs should be given a name " "following this convention::" msgstr "" -#: ../Doc/extending/extending.rst:1197 +#: extending/extending.rst:1205 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 " @@ -1380,7 +1667,7 @@ msgid "" "the Capsule they load contains the correct C API." msgstr "" -#: ../Doc/extending/extending.rst:1202 +#: extending/extending.rst:1210 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 " @@ -1390,8 +1677,16 @@ msgid "" "takes care of importing the module and retrieving its C API pointers; client " "modules only have to call this macro before accessing the C API." msgstr "" +"L'exemple suivant montre une approche qui fait peser la plus grande partie " +"de la charge sur le rédacteur du module d'exportation, ce qui est approprié " +"pour les modules de bibliothèque couramment utilisés. Il stocke tous les " +"pointeurs de l'API C (un seul dans l'exemple !) dans un tableau de " +"pointeurs :c:type:`void` qui devient la valeur d'une Capsule. Le fichier " +"d'en-tête correspondant au module fournit une macro qui se charge d'importer " +"le module et de récupérer ses pointeurs d'API C. Les modules clients n'ont " +"qu'à appeler cette macro avant d'accéder à l'API C." -#: ../Doc/extending/extending.rst:1210 +#: extending/extending.rst:1218 msgid "" "The exporting module is a modification of the :mod:`spam` module from " "section :ref:`extending-simpleexample`. The function :func:`spam.system` " @@ -1400,60 +1695,82 @@ msgid "" "complicated in reality (such as adding \"spam\" to every command). This " "function :c:func:`PySpam_System` is also exported to other extension modules." msgstr "" +"Le module d'exportation est une modification du module :mod:`spam` de la " +"section :ref:`extending-simpleexample`. La fonction :func:`spam.system` " +"n'appelle pas directement la fonction de la bibliothèque C :c:func:`system`, " +"mais une fonction :c:func:`PySpam_System`, qui ferait bien sûr quelque chose " +"de plus compliqué en réalité (comme ajouter du *spam* à chaque commande). " +"Cette fonction :c:func:`PySpam_System` est également exportée vers d'autres " +"modules d'extension." -#: ../Doc/extending/extending.rst:1217 +#: extending/extending.rst:1225 msgid "" "The function :c:func:`PySpam_System` is a plain C function, declared " "``static`` like everything else::" msgstr "" -#: ../Doc/extending/extending.rst:1226 +#: extending/extending.rst:1234 msgid "The function :c:func:`spam_system` is modified in a trivial way::" -msgstr "" +msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" -#: ../Doc/extending/extending.rst:1240 +#: extending/extending.rst:1248 msgid "In the beginning of the module, right after the line ::" -msgstr "" +msgstr "Au début du module, immédiatement après la ligne ::" -#: ../Doc/extending/extending.rst:1244 +#: extending/extending.rst:1252 msgid "two more lines must be added::" -msgstr "" +msgstr "on doit ajouter deux lignes supplémentaires ::" -#: ../Doc/extending/extending.rst:1249 +#: extending/extending.rst:1257 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 " "initialization function must take care of initializing the C API pointer " "array::" msgstr "" +"L'indicateur ``#define`` est utilisé pour indiquer au fichier d'en-tête " +"qu'il est inclus dans le module d'exportation, et non dans un module client. " +"Enfin, la fonction d'initialisation du module doit prendre en charge " +"l'initialisation du tableau de pointeurs de l'API C ::" -#: ../Doc/extending/extending.rst:1279 +#: extending/extending.rst:1287 msgid "" "Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " "would disappear when :func:`PyInit_spam` terminates!" msgstr "" +"Notez que ``PySpam_API`` est déclaré ``static`` ; sinon le tableau de " +"pointeurs disparaîtrait lorsque :func:`PyInit_spam`` se finit !" -#: ../Doc/extending/extending.rst:1282 +#: extending/extending.rst:1290 msgid "" "The bulk of the work is in the header file :file:`spammodule.h`, which looks " "like this::" msgstr "" +"L'essentiel du travail se trouve dans le fichier d'en-tête :file:`spammodule." +"h`, qui ressemble à ceci ::" -#: ../Doc/extending/extending.rst:1333 +#: extending/extending.rst:1341 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 "" +"Tout ce qu'un module client doit faire pour avoir accès à la fonction :c:" +"func:`PySpam_System` est d'appeler la fonction (ou plutôt la macro) :c:func:" +"`import_spam` dans sa fonction d'initialisation ::" -#: ../Doc/extending/extending.rst:1351 +#: extending/extending.rst:1359 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 "" +"Le principal inconvénient de cette approche est que le fichier :file:" +"`spammodule.h` est assez compliqué. Cependant, la structure de base est la " +"même pour chaque fonction exportée, ce qui fait qu'elle ne doit être apprise " +"qu'une seule fois." -#: ../Doc/extending/extending.rst:1355 +#: extending/extending.rst:1363 msgid "" "Finally it should be mentioned that Capsules offer additional functionality, " "which is especially useful for memory allocation and deallocation of the " @@ -1462,32 +1779,49 @@ msgid "" "Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " "in the Python source code distribution)." msgstr "" +"Enfin, il convient de mentionner que Capsules offrent des fonctionnalités " +"supplémentaires, qui sont particulièrement utiles pour l'allocation de la " +"mémoire et la dés-allocation du pointeur stocké dans un objet Capsule. Les " +"détails sont décrits dans le manuel de référence de l'API Python/C dans la " +"section :ref:`capsules` et dans l'implémentation des Capsules (fichiers :" +"file:`Include/pycapsule.h` et :file:`Objects/pycapsule.c` dans la " +"distribution du code source Python)." -#: ../Doc/extending/extending.rst:1363 +#: extending/extending.rst:1371 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/extending.rst:1364 +#: extending/extending.rst:1372 msgid "" "An interface for this function already exists in the standard module :mod:" "`os` --- it was chosen as a simple and straightforward example." msgstr "" +"Une interface pour cette fonction existe déjà dans le module standard :mod:" +"`os`, elle a été choisie comme un exemple simple et direct." -#: ../Doc/extending/extending.rst:1367 +#: extending/extending.rst:1375 msgid "" "The metaphor of \"borrowing\" a reference is not completely correct: the " "owner still has a copy of the reference." msgstr "" +"L'expression « emprunter une référence » n'est pas tout à fait correcte, car " +"le propriétaire a toujours une copie de la référence." -#: ../Doc/extending/extending.rst:1370 +#: extending/extending.rst:1378 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 "" +"Vérifier que le comptage de référence est d'au moins 1 **ne fonctionne " +"pas**, le compte de référence lui-même pourrait être en mémoire libérée et " +"peut donc être réutilisé pour un autre objet !" -#: ../Doc/extending/extending.rst:1374 +#: extending/extending.rst:1382 msgid "" "These guarantees don't hold when you use the \"old\" style calling " "convention --- this is still found in much existing code." msgstr "" +"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de " +"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code " +"existant." diff --git a/extending/index.po b/extending/index.po index 379a185e64..e0e544cab1 100644 --- a/extending/index.po +++ b/extending/index.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" "PO-Revision-Date: 2018-07-04 11:38+0200\n" diff --git a/extending/newtypes.po b/extending/newtypes.po index 694c2a96b8..345c257fd0 100644 --- a/extending/newtypes.po +++ b/extending/newtypes.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:7 msgid "Defining Extension Types: Assorted Topics" -msgstr "" +msgstr "Définir les types d'extension : divers sujets" #: ../Doc/extending/newtypes.rst:11 msgid "" @@ -68,16 +68,21 @@ 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 "" +"Ici vous pouvez mettre une chaîne (ou son adresse) que vous voulez renvoyer " +"lorsque le script Python référence ``obj.__doc__`` pour récupérer le " +"*docstring*." #: ../Doc/extending/newtypes.rst:49 msgid "" "Now we come to the basic type methods -- the ones most extension types will " "implement." msgstr "" +"Nous en arrivons maintenant aux méthodes de type basiques -- celles que la " +"plupart des types d'extension mettront en œuvre." #: ../Doc/extending/newtypes.rst:54 msgid "Finalization and De-allocation" -msgstr "" +msgstr "Finalisation et de-allocation" #: ../Doc/extending/newtypes.rst:66 msgid "" @@ -125,11 +130,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:136 msgid ":pep:`442` explains the new finalization scheme." -msgstr "" +msgstr ":pep:`442` explique le nouveau schéma de finalisation." #: ../Doc/extending/newtypes.rst:143 msgid "Object Presentation" -msgstr "" +msgstr "Présentation de l'objet" #: ../Doc/extending/newtypes.rst:145 msgid "" @@ -165,11 +170,11 @@ msgstr "" #: ../Doc/extending/newtypes.rst:176 msgid "Here is a simple example::" -msgstr "" +msgstr "Voici un exemple simple ::" #: ../Doc/extending/newtypes.rst:188 msgid "Attribute Management" -msgstr "" +msgstr "Gestion des attributs" #: ../Doc/extending/newtypes.rst:190 msgid "" @@ -178,7 +183,7 @@ msgid "" "needs to be a function which can retrieve attributes (if any are defined), " "and another to set attributes (if setting attributes is allowed). Removing " "an attribute is a special case, for which the new value passed to the " -"handler is *NULL*." +"handler is ``NULL``." msgstr "" #: ../Doc/extending/newtypes.rst:196 @@ -203,7 +208,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:219 msgid "Generic Attribute Management" -msgstr "" +msgstr "Gestion des attributs génériques" #: ../Doc/extending/newtypes.rst:221 msgid "" @@ -216,6 +221,8 @@ msgid "" "The name of the attributes must be known when :c:func:`PyType_Ready` is " "called." msgstr "" +"Le nom des attributs doivent être déjà connus lorsqu'on lance :c:func:" +"`PyType_Ready`." #: ../Doc/extending/newtypes.rst:227 msgid "" @@ -235,19 +242,20 @@ msgid "" "the type object to create :term:`descriptor`\\s which are placed in the " "dictionary of the type object. Each descriptor controls access to one " "attribute of the instance object. Each of the tables is optional; if all " -"three are *NULL*, instances of the type will only have attributes that are " +"three are ``NULL``, instances of the type will only have attributes that are " "inherited from their base type, and should leave the :c:member:" "`~PyTypeObject.tp_getattro` and :c:member:`~PyTypeObject.tp_setattro` fields " -"*NULL* as well, allowing the base type to handle attributes." +"``NULL`` as well, allowing the base type to handle attributes." msgstr "" #: ../Doc/extending/newtypes.rst:241 msgid "The tables are declared as three fields of the type object::" msgstr "" +"Les tables sont déclarées sous la forme de trois champs de type objet ::" #: ../Doc/extending/newtypes.rst:247 msgid "" -"If :c:member:`~PyTypeObject.tp_methods` is not *NULL*, it must refer to an " +"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 "" @@ -257,7 +265,7 @@ 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 " "needed at the end; it is a sentinel that marks the end of the array. The :" -"attr:`ml_name` field of the sentinel must be *NULL*." +"attr:`ml_name` field of the sentinel must be ``NULL``." msgstr "" #: ../Doc/extending/newtypes.rst:263 @@ -295,35 +303,35 @@ msgstr "Signification" #: ../Doc/extending/newtypes.rst:288 msgid ":const:`READONLY`" -msgstr "" +msgstr ":const:`READONLY`" #: ../Doc/extending/newtypes.rst:288 msgid "Never writable." -msgstr "" +msgstr "Jamais disponible en écriture." #: ../Doc/extending/newtypes.rst:290 msgid ":const:`READ_RESTRICTED`" -msgstr "" +msgstr ":const:`READ_RESTRICTED`" #: ../Doc/extending/newtypes.rst:290 msgid "Not readable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture, dans le mode restreint." #: ../Doc/extending/newtypes.rst:292 msgid ":const:`WRITE_RESTRICTED`" -msgstr "" +msgstr ":const:`WRITE_RESTRICTED`" #: ../Doc/extending/newtypes.rst:292 msgid "Not writable in restricted mode." -msgstr "" +msgstr "Non disponible en écriture dans le mode restreint." #: ../Doc/extending/newtypes.rst:294 msgid ":const:`RESTRICTED`" -msgstr "" +msgstr ":const:`RESTRICTED`" #: ../Doc/extending/newtypes.rst:294 msgid "Not readable or writable in restricted mode." -msgstr "" +msgstr "Non disponible en lecture ou écriture, en mode restreint." #: ../Doc/extending/newtypes.rst:303 msgid "" @@ -334,16 +342,23 @@ msgid "" "the descriptor from the class object, and get the doc string using its :attr:" "`__doc__` attribute." msgstr "" +"Un avantage intéressant de l'utilisation de la table :c:member:" +"`~PyTypeObject.tp_members` pour construire les descripteurs qui sont " +"utilisés à l'exécution, est que à tout attribut défini de cette façon on " +"peut associer un *docstring*, en écrivant simplement le texte dans la table. " +"Une application peut utiliser l'API d'introspection pour récupérer le " +"descripteur de l'objet de classe, et utiliser son attribut :attr:`__doc__` " +"pour renvoyer le *docstring*." #: ../Doc/extending/newtypes.rst:309 msgid "" "As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry " -"with a :attr:`name` value of *NULL* is required." +"with a :attr:`name` value of ``NULL`` is required." msgstr "" #: ../Doc/extending/newtypes.rst:323 msgid "Type-specific Attribute Management" -msgstr "" +msgstr "Gestion des attributs de type spécifiques" #: ../Doc/extending/newtypes.rst:325 msgid "" @@ -365,21 +380,21 @@ msgstr "" #: ../Doc/extending/newtypes.rst:337 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/extending/newtypes.rst:353 msgid "" "The :c:member:`~PyTypeObject.tp_setattr` handler is called when the :meth:" "`__setattr__` or :meth:`__delattr__` method of a class instance would be " "called. When an attribute should be deleted, the third parameter will be " -"*NULL*. Here is an example that simply raises an exception; if this were " +"``NULL``. Here is an example that simply raises an exception; if this were " "really all you wanted, the :c:member:`~PyTypeObject.tp_setattr` handler " -"should be set to *NULL*. ::" +"should be set to ``NULL``. ::" msgstr "" #: ../Doc/extending/newtypes.rst:367 msgid "Object Comparison" -msgstr "" +msgstr "Comparaison des objets" #: ../Doc/extending/newtypes.rst:373 msgid "" @@ -397,7 +412,7 @@ msgid "" "respect to the specified operator and return ``Py_True`` or ``Py_False`` if " "the comparison is successful, ``Py_NotImplemented`` to indicate that " "comparison is not implemented and the other object's comparison method " -"should be tried, or *NULL* if an exception was set." +"should be tried, or ``NULL`` if an exception was set." msgstr "" #: ../Doc/extending/newtypes.rst:386 @@ -408,7 +423,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:416 msgid "Abstract Protocol Support" -msgstr "" +msgstr "Support pour le protocole abstrait" #: ../Doc/extending/newtypes.rst:418 msgid "" @@ -427,7 +442,7 @@ msgid "" "newer protocols there are additional slots in the main type object, with a " "flag bit being set to indicate that the slots are present and should be " "checked by the interpreter. (The flag bit does not indicate that the slot " -"values are non-*NULL*. The flag may be set to indicate the presence of a " +"values are non-``NULL``. The flag may be set to indicate the presence of a " "slot, but a slot may still be unfilled.) ::" msgstr "" @@ -466,7 +481,7 @@ msgstr "" #: ../Doc/extending/newtypes.rst:472 msgid "This function takes three arguments:" -msgstr "" +msgstr "Cette fonction prend trois arguments :" #: ../Doc/extending/newtypes.rst:474 msgid "" @@ -483,24 +498,25 @@ msgstr "" #: ../Doc/extending/newtypes.rst:480 msgid "" "*kwds* is a dictionary of keyword arguments that were passed. If this is non-" -"*NULL* and you support keyword arguments, use :c:func:" +"``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:" +"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:486 msgid "Here is a toy ``tp_call`` implementation::" -msgstr "" +msgstr "Ceci est une implémentation ``tp_call`` très simple ::" #: ../Doc/extending/newtypes.rst:512 msgid "" "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." +"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:519 @@ -509,6 +525,10 @@ msgid "" "tp_iter` handler, which must return an :term:`iterator` object. Here the " "same guidelines apply as for Python classes:" msgstr "" +"Tout objet :term:`iterable` doit implémenter le gestionnaire :c:member:" +"`~PyTypeObject.tp_iter`, qui doit renvoyer un objet de type :term:" +"`iterator`. Ici, les mêmes directives s'appliquent de la même façon que " +"pour les classes *Python* :" #: ../Doc/extending/newtypes.rst:523 msgid "" @@ -516,6 +536,9 @@ msgid "" "independent iterators, a new iterator should be created and returned by each " "call to :c:member:`~PyTypeObject.tp_iter`." msgstr "" +"Pour les collections (telles que les listes et les n-uplets) qui peuvent " +"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être " +"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`." #: ../Doc/extending/newtypes.rst:526 msgid "" @@ -533,15 +556,16 @@ msgid "" "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 " +"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*." +"`~PyTypeObject.tp_iternext` should always set an exception and return " +"``NULL``." msgstr "" #: ../Doc/extending/newtypes.rst:547 msgid "Weak Reference Support" -msgstr "" +msgstr "Prise en charge de la référence faible" #: ../Doc/extending/newtypes.rst:549 msgid "" @@ -549,24 +573,34 @@ msgid "" "type to participate in the weak reference mechanism without incurring the " "overhead on performance-critical objects (such as numbers)." msgstr "" +"L'un des objectifs de l'implémentation de la référence faible de *Python* " +"est de permettre à tout type d'objet de participer au mécanisme de référence " +"faible sans avoir à supporter le surcoût de la performance critique des " +"certains objets, tels que les nombres." #: ../Doc/extending/newtypes.rst:554 msgid "Documentation for the :mod:`weakref` module." -msgstr "" +msgstr "Documentation pour le module :mod:`weakref`." #: ../Doc/extending/newtypes.rst:556 msgid "" "For an object to be weakly referencable, the extension type must do two " "things:" msgstr "" +"Pour qu'un objet soit faiblement référençable, le type d'extension doit " +"faire deux choses :" #: ../Doc/extending/newtypes.rst:558 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." +"``NULL`` (which is automatic when using the default :c:member:`~PyTypeObject." "tp_alloc`)." msgstr "" +"Inclure un champ :c:type:`PyObject\\*` dans la structure d'objet C dédiée au " +"mécanisme de référence faible. Le constructeur de l'objet doit le laisser à " +"la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise le champ par " +"défaut :c:member:`~PyTypeObject.tp_alloc`)." #: ../Doc/extending/newtypes.rst:563 msgid "" @@ -574,27 +608,37 @@ msgid "" "offset of the aforementioned field in the C object structure, so that the " "interpreter knows how to access and modify that field." msgstr "" +"Définissez le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à " +"la valeur de décalage (*offset*) du champ susmentionné dans la structure de " +"l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ et le " +"modifier." #: ../Doc/extending/newtypes.rst:567 msgid "" "Concretely, here is how a trivial object structure would be augmented with " "the required field::" msgstr "" +"Concrètement, voici comment une structure d'objet simple serait complétée " +"par le champ requis ::" #: ../Doc/extending/newtypes.rst:575 msgid "And the corresponding member in the statically-declared type object::" msgstr "" +"Et le membre correspondant dans l'objet de type déclaré statiquement ::" #: ../Doc/extending/newtypes.rst:583 msgid "" "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*::" +"``NULL``::" msgstr "" +"Le seul ajout supplémentaire est que ``tp_dealloc`` doit effacer toute " +"référence faible (en appelant :c:func:`PyObject_ClearWeakRefs`) si le champ " +"est non ``NULL`` ::" #: ../Doc/extending/newtypes.rst:599 msgid "More Suggestions" -msgstr "" +msgstr "Plus de suggestions" #: ../Doc/extending/newtypes.rst:601 msgid "" @@ -604,6 +648,12 @@ msgid "" "want (for example, ``tp_richcompare``). You will find examples of the " "function you want to implement." msgstr "" +"Pour savoir comment mettre en œuvre une méthode spécifique pour votre " +"nouveau type de données, téléchargez le code source :term:`CPython`. Allez " +"dans le répertoire :file:`Objects`, puis cherchez dans les fichiers sources " +"*C* la fonction ``tp_`` plus la fonction que vous voulez (par exemple, " +"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous " +"voulez implémenter." #: ../Doc/extending/newtypes.rst:607 msgid "" @@ -611,23 +661,27 @@ msgid "" "you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " "sample of its use might be something like the following::" msgstr "" +"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète " +"du type que vous implémentez, utilisez la fonction :c:func:" +"`PyObject_TypeCheck`. Voici un exemple de son utilisation ::" #: ../Doc/extending/newtypes.rst:618 msgid "Download CPython source releases." -msgstr "" +msgstr "Télécharger les versions sources de *CPython*." #: ../Doc/extending/newtypes.rst:618 msgid "https://www.python.org/downloads/source/" -msgstr "" +msgstr "https://www.python.org/downloads/source/" #: ../Doc/extending/newtypes.rst:620 msgid "" "The CPython project on GitHub, where the CPython source code is developed." msgstr "" +"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*." #: ../Doc/extending/newtypes.rst:621 msgid "https://github.com/python/cpython" -msgstr "" +msgstr "https://github.com/python/cpython" #~ msgid "Footnotes" #~ msgstr "Notes" diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po index dcbea1cd2d..53b4ad7dec 100644 --- a/extending/newtypes_tutorial.po +++ b/extending/newtypes_tutorial.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-06-17 10:15+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/extending/newtypes_tutorial.rst:7 +#: extending/newtypes_tutorial.rst:7 msgid "Defining Extension Types: Tutorial" -msgstr "" +msgstr "Tutoriel : définir des types dans des extensions" -#: ../Doc/extending/newtypes_tutorial.rst:14 +#: 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` " @@ -26,12 +26,17 @@ msgid "" "pattern, but there are some details that you need to understand before you " "can get started. This document is a gentle introduction to the topic." msgstr "" +"Python permet à l'auteur d'un module d'extension C de définir de nouveaux " +"types qui peuvent être manipulés depuis du code Python, à la manière des " +"types natifs :class:`str` et :class:`list`. Les implémentations de tous les " +"types d'extension ont des similarités, mais quelques subtilités doivent être " +"abordées avant de commencer." -#: ../Doc/extending/newtypes_tutorial.rst:24 +#: extending/newtypes_tutorial.rst:24 msgid "The Basics" -msgstr "" +msgstr "Les bases" -#: ../Doc/extending/newtypes_tutorial.rst:26 +#: 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. " @@ -43,57 +48,76 @@ msgid "" "functions are called \"type methods\"." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:35 +#: 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 "" +"Donc, pour définir un nouveau type dans une extension, vous devez créer un " +"nouvel objet type." -#: ../Doc/extending/newtypes_tutorial.rst:38 +#: 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 "" +"Ce genre de chose ne s'explique correctement qu'avec des exemples, voici " +"donc un module minimaliste mais suffisant qui définit un nouveau type nommé :" +"class:`Custom` dans le module d'extension :mod:`custom` :" -#: ../Doc/extending/newtypes_tutorial.rst:43 +#: 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 "" +"Ce qui est montré ici est la manière traditionnelle de définir des types " +"d'extension *statiques*, et cela convient dans la majorité des cas. L'API C " +"permet aussi de définir des types alloués sur le tas, via la fonction :c:" +"func:`PyType_FromSpec`, mais ce n'est pas couvert par ce tutoriel." -#: ../Doc/extending/newtypes_tutorial.rst:50 +#: extending/newtypes_tutorial.rst:50 msgid "" "Now that's quite a bit to take in at once, but hopefully bits will seem " "familiar from the previous chapter. This file defines three things:" msgstr "" +"C'est un peu long, mais vous devez déjà reconnaître quelques morceaux " +"expliqués au chapitre précédent. Ce fichier définit trois choses :" -#: ../Doc/extending/newtypes_tutorial.rst:53 +#: extending/newtypes_tutorial.rst:53 msgid "" "What a :class:`Custom` **object** contains: this is the ``CustomObject`` " "struct, which is allocated once for each :class:`Custom` instance." msgstr "" +"Ce qu'un **objet** :class:`Custom` contient : c'est la structure " +"``CustomObject``, qui est allouée une fois pour chaque instance de :class:" +"`Custom`." -#: ../Doc/extending/newtypes_tutorial.rst:55 +#: 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 "" +"Comment le **type** :class:`Custom` se comporte : c'est la structure " +"``CustomType``, qui définit l'ensemble des options et pointeurs de fonction " +"utilisés par l'interpréteur." -#: ../Doc/extending/newtypes_tutorial.rst:58 +#: extending/newtypes_tutorial.rst:58 msgid "" "How to initialize the :mod:`custom` module: this is the ``PyInit_custom`` " "function and the associated ``custommodule`` struct." msgstr "" +"Comment initialiser le module :mod:`custom` : c'est la fonction " +"``PyInit_custom`` et la structure associée ``custommodule``." -#: ../Doc/extending/newtypes_tutorial.rst:61 +#: extending/newtypes_tutorial.rst:61 msgid "The first bit is::" -msgstr "" +msgstr "Commençons par ::" -#: ../Doc/extending/newtypes_tutorial.rst:67 +#: 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 " @@ -103,55 +127,74 @@ msgid "" "abstract away the layout and to enable additional fields in debug builds." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:75 +#: 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 "" +"Il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. " +"Attention à ne pas l'ajouter par accident : certains compilateurs pourraient " +"s'en plaindre." -#: ../Doc/extending/newtypes_tutorial.rst:78 +#: 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 "" +"Bien sûr, les objets ajoutent généralement des données supplémentaires après " +"l'entête standard ``PyObject_HEAD``. Par exemple voici la définition du type " +"standard Python ``float`` ::" -#: ../Doc/extending/newtypes_tutorial.rst:87 +#: extending/newtypes_tutorial.rst:87 msgid "The second bit is the definition of the type object. ::" -msgstr "" +msgstr "La deuxième partie est la définition de l'objet type ::" -#: ../Doc/extending/newtypes_tutorial.rst:100 +#: extending/newtypes_tutorial.rst:100 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 "" +"Nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour " +"remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les " +"champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas " +"vous soucier de leur ordre." -#: ../Doc/extending/newtypes_tutorial.rst:104 +#: extending/newtypes_tutorial.rst:104 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 "" +"La définition de :c:type:`PyTypeObject` dans :file:`object.h` contient en " +"fait bien plus de :ref:`champs ` que la définition ci-dessus. " +"Les champs restants sont mis à zéro par le compilateur C, et c'est une " +"pratique répandue de ne pas spécifier les champs dont vous n'avez pas besoin." -#: ../Doc/extending/newtypes_tutorial.rst:109 +#: extending/newtypes_tutorial.rst:109 msgid "We're going to pick it apart, one field at a time::" -msgstr "" +msgstr "Regardons les champs de cette structure, un par un ::" -#: ../Doc/extending/newtypes_tutorial.rst:113 +#: extending/newtypes_tutorial.rst:113 msgid "" "This line is mandatory boilerplate to initialize the ``ob_base`` field " "mentioned above. ::" msgstr "" +"Cette ligne, obligatoire, initialise le champ ``ob_base`` mentionné " +"précédemment." -#: ../Doc/extending/newtypes_tutorial.rst:118 +#: extending/newtypes_tutorial.rst:118 msgid "" "The name of our type. This will appear in the default textual " "representation of our objects and in some error messages, for example:" msgstr "" +"C'est le nom de notre type. Il apparaît dans la représentation textuelle par " +"défaut de nos objets, ainsi que dans quelques messages d'erreur, par " +"exemple :" -#: ../Doc/extending/newtypes_tutorial.rst:128 +#: extending/newtypes_tutorial.rst:128 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:" @@ -159,15 +202,24 @@ msgid "" "`custom.Custom`. Using the real dotted import path is important to make your " "type compatible with the :mod:`pydoc` and :mod:`pickle` modules. ::" msgstr "" +"Notez que le nom comporte un point : il inclut le nom du module et le nom du " +"type. Dans ce cas le module est :mod:`custom`, et le type est :class:" +"`Custom`, donc nous donnons comme nom :class:`custom.Custom`. Nommer " +"correctement son type, avec le point, est important pour le rendre " +"compatible avec :mod:`pydoc` et :mod:`pickle`. ::" -#: ../Doc/extending/newtypes_tutorial.rst:137 +#: extending/newtypes_tutorial.rst:137 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 "" +"C'est pour que Python sache combien de mémoire allouer à la création d'une " +"nouvelle instance de :class:`Custom`. :c:member:`~PyTypeObject.tp_itemsize` " +"n'est utilisé que pour les objets de taille variable, sinon il doit rester à " +"zéro." -#: ../Doc/extending/newtypes_tutorial.rst:143 +#: extending/newtypes_tutorial.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 " @@ -180,24 +232,42 @@ msgid "" "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:153 +"Si vous voulez qu'une classe en Python puisse hériter de votre type, et que " +"votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, " +"vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe " +"Python de votre type devra lister votre type en premier dans son :attr:" +"`~class.__bases__`, sans quoi elle ne sera pas capable d'appeler la méthode :" +"meth:`__new__` de votre type sans erreur. Vous pouvez éviter ce problème en " +"vous assurant que votre type a un :c:member:`~PyTypeObject.tp_basicsize` " +"plus grand que son parent. La plupart du temps ce sera vrai (soit son parent " +"sera :class:`object`, soit vous ajouterez des attributs à votre type, " +"augmentant ainsi sa taille)." + +#: extending/newtypes_tutorial.rst:153 msgid "We set the class flags to :const:`Py_TPFLAGS_DEFAULT`. ::" msgstr "" +"On utilise la constante :const:`Py_TPFLAGS_DEFAULT` comme seule option de " +"type. ::" -#: ../Doc/extending/newtypes_tutorial.rst:157 +#: extending/newtypes_tutorial.rst:157 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 "" +"Chaque type doit inclure cette constante dans ses options : elle active tous " +"les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus " +"de membres, vous pouvez la combiner à d'autres constantes avec un *ou* " +"binaire." -#: ../Doc/extending/newtypes_tutorial.rst:161 +#: extending/newtypes_tutorial.rst:161 msgid "" "We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" msgstr "" +"On fournit une *docstring* pour ce type via le membre :c:member:" +"`~PyTypeObject.tp_doc`. ::" -#: ../Doc/extending/newtypes_tutorial.rst:165 +#: extending/newtypes_tutorial.rst:165 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:" @@ -205,54 +275,68 @@ msgid "" "use the default implementation provided by the API function :c:func:" "`PyType_GenericNew`. ::" msgstr "" +"Pour permettre la création d'une instance, nous devons fournir un *handler* :" +"c:member:`~PyTypeObject.tp_new`, qui est l'équivalent de la méthode Python :" +"meth:`__new__`, mais elle a besoin d'être spécifiée explicitement. Dans ce " +"cas, on se contente de l'implémentation par défaut fournie par la fonction :" +"c:func:`PyType_GenericNew` de l'API." -#: ../Doc/extending/newtypes_tutorial.rst:172 +#: extending/newtypes_tutorial.rst:172 msgid "" "Everything else in the file should be familiar, except for some code in :c:" "func:`PyInit_custom`::" msgstr "" +"Le reste du fichier doit vous être familier, en dehors du code de :c:func:" +"`PyInit_custom` ::" -#: ../Doc/extending/newtypes_tutorial.rst:178 +#: extending/newtypes_tutorial.rst:178 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*. ::" +"set to ``NULL``. ::" msgstr "" +"Il initialise le type :class:`Custom`, en assignant quelques membres à leurs " +"valeurs par défaut, tel que :attr:`ob_type` qui valait initialement " +"``NULL``. ::" -#: ../Doc/extending/newtypes_tutorial.rst:189 +#: extending/newtypes_tutorial.rst:189 msgid "" "This adds the type to the module dictionary. This allows us to create :" "class:`Custom` instances by calling the :class:`Custom` class:" msgstr "" +"Ici on ajoute le type au dictionnaire du module. Cela permet de créer une " +"instance de :class:`Custom` en appelant la classe :class:`Custom` :" -#: ../Doc/extending/newtypes_tutorial.rst:197 +#: extending/newtypes_tutorial.rst:197 msgid "" "That's it! All that remains is to build it; put the above code in a file " "called :file:`custom.c` and:" msgstr "" +"C'est tout ! Il ne reste plus qu'à compiler, placez le code ci-dessus dans " +"un fichier :file:`custom.c` et :" -#: ../Doc/extending/newtypes_tutorial.rst:206 +#: extending/newtypes_tutorial.rst:206 msgid "in a file called :file:`setup.py`; then typing" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:212 +#: extending/newtypes_tutorial.rst:212 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:216 +#: extending/newtypes_tutorial.rst:216 msgid "That wasn't so hard, was it?" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:218 +#: extending/newtypes_tutorial.rst:218 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:222 +#: extending/newtypes_tutorial.rst:222 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 " @@ -262,32 +346,32 @@ msgid "" "packages/>`_." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:230 +#: extending/newtypes_tutorial.rst:230 msgid "Adding data and methods to the Basic example" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:232 +#: extending/newtypes_tutorial.rst:232 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:239 +#: extending/newtypes_tutorial.rst:239 msgid "This version of the module has a number of changes." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:241 +#: extending/newtypes_tutorial.rst:241 msgid "We've added an extra include::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:245 +#: extending/newtypes_tutorial.rst:245 msgid "" "This include provides declarations that we use to handle attributes, as " "described a bit later." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:248 +#: extending/newtypes_tutorial.rst:248 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 " @@ -295,32 +379,32 @@ msgid "" "integer." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:252 +#: extending/newtypes_tutorial.rst:252 msgid "The object structure is updated accordingly::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:261 +#: extending/newtypes_tutorial.rst:261 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:272 +#: extending/newtypes_tutorial.rst:272 msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:276 +#: extending/newtypes_tutorial.rst:276 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." +"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:285 +#: extending/newtypes_tutorial.rst:285 msgid "" "The explicit cast to ``destructor`` above is needed because we defined " "``Custom_dealloc`` to take a ``CustomObject *`` argument, but the " @@ -329,17 +413,17 @@ msgid "" "oriented polymorphism, in C!" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:291 +#: extending/newtypes_tutorial.rst:291 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:315 +#: extending/newtypes_tutorial.rst:315 msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:319 +#: extending/newtypes_tutorial.rst:319 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:" @@ -347,10 +431,10 @@ msgid "" "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." +"attributes to non-``NULL`` default values." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:327 +#: extending/newtypes_tutorial.rst:327 msgid "" "``tp_new`` is passed the type being instantiated (not necessarily " "``CustomType``, if a subclass is instantiated) and any arguments passed when " @@ -360,25 +444,25 @@ msgid "" "k.a. ``tp_init`` in C or ``__init__`` in Python) methods." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:335 +#: extending/newtypes_tutorial.rst:335 msgid "" "``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " "it itself." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:338 +#: extending/newtypes_tutorial.rst:338 msgid "" "The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " "slot to allocate memory::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:343 +#: extending/newtypes_tutorial.rst:343 msgid "" "Since memory allocation may fail, we must check the :c:member:`~PyTypeObject." -"tp_alloc` result against *NULL* before proceeding." +"tp_alloc` result against ``NULL`` before proceeding." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:347 +#: extending/newtypes_tutorial.rst:347 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 " @@ -386,7 +470,7 @@ msgid "" "allocation strategy." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:353 +#: extending/newtypes_tutorial.rst:353 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:" @@ -399,17 +483,17 @@ msgid "" "subclasses without getting a :exc:`TypeError`.)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:363 +#: extending/newtypes_tutorial.rst:363 msgid "" "We also define an initialization function which accepts arguments to provide " "initial values for our instance::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:392 +#: extending/newtypes_tutorial.rst:392 msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:396 +#: extending/newtypes_tutorial.rst:396 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. " @@ -417,7 +501,7 @@ msgid "" "return either ``0`` on success or ``-1`` on error." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:401 +#: extending/newtypes_tutorial.rst:401 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 " @@ -428,76 +512,76 @@ msgid "" "``first`` member like this::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:415 +#: extending/newtypes_tutorial.rst:415 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." +"interpreter Lock ` and let arbitrary code run in other threads that " +"accesses and modifies our object." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:422 +#: extending/newtypes_tutorial.rst:422 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:426 +#: extending/newtypes_tutorial.rst:426 msgid "when we absolutely know that the reference count is greater than 1;" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:428 +#: extending/newtypes_tutorial.rst:428 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:431 +#: extending/newtypes_tutorial.rst:431 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:434 +#: extending/newtypes_tutorial.rst:434 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:447 +#: extending/newtypes_tutorial.rst:447 msgid "" "and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:451 +#: extending/newtypes_tutorial.rst:451 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:455 +#: extending/newtypes_tutorial.rst:455 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 " +"``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:462 +#: extending/newtypes_tutorial.rst:462 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:479 +#: extending/newtypes_tutorial.rst:479 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 " @@ -507,32 +591,32 @@ msgid "" "method is equivalent to the Python method:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:491 +#: extending/newtypes_tutorial.rst:491 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 " +"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:497 +#: extending/newtypes_tutorial.rst:497 msgid "" "Now that we've defined the method, we need to create an array of method " "definitions::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:507 +#: extending/newtypes_tutorial.rst:507 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:510 +#: extending/newtypes_tutorial.rst:510 msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:514 +#: extending/newtypes_tutorial.rst:514 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 " @@ -540,22 +624,22 @@ msgid "" "to add the :const:`Py_TPFLAGS_BASETYPE` to our class flag definition::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:521 +#: extending/newtypes_tutorial.rst:521 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:525 +#: extending/newtypes_tutorial.rst:525 msgid "Finally, we update our :file:`setup.py` file to build the new module:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:538 +#: extending/newtypes_tutorial.rst:538 msgid "Providing finer control over data attributes" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:540 +#: extending/newtypes_tutorial.rst:540 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 " @@ -564,14 +648,14 @@ msgid "" "make sure that these attributes always contain strings." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:549 +#: extending/newtypes_tutorial.rst:549 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:580 +#: extending/newtypes_tutorial.rst:580 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 " @@ -581,68 +665,68 @@ msgid "" "data in the closure.)" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:586 +#: extending/newtypes_tutorial.rst:586 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 " +"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:591 +#: extending/newtypes_tutorial.rst:591 msgid "We create an array of :c:type:`PyGetSetDef` structures::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:601 +#: extending/newtypes_tutorial.rst:601 msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:605 +#: extending/newtypes_tutorial.rst:605 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*." +"``NULL``." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:608 +#: extending/newtypes_tutorial.rst:608 msgid "We also remove the member definitions for these attributes::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:616 +#: extending/newtypes_tutorial.rst:616 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:645 +#: extending/newtypes_tutorial.rst:645 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 " +"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:652 +#: extending/newtypes_tutorial.rst:652 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:658 +#: extending/newtypes_tutorial.rst:658 msgid "Supporting cyclic garbage collection" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:660 +#: extending/newtypes_tutorial.rst:660 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:670 +#: extending/newtypes_tutorial.rst:670 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 " @@ -650,7 +734,7 @@ msgid "" "out that the list is garbage and free it." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:675 +#: extending/newtypes_tutorial.rst:675 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 [#]_. " @@ -659,7 +743,7 @@ msgid "" "reasons, :class:`Custom` objects can participate in cycles:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:689 +#: extending/newtypes_tutorial.rst:689 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 " @@ -667,13 +751,13 @@ msgid "" "slots:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:696 +#: extending/newtypes_tutorial.rst:696 msgid "" "First, the traversal method lets the cyclic GC know about subobjects that " "could participate in cycles::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:716 +#: extending/newtypes_tutorial.rst:716 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:" @@ -682,47 +766,47 @@ msgid "" "be returned if it is non-zero." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:722 +#: extending/newtypes_tutorial.rst:722 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:735 +#: extending/newtypes_tutorial.rst:735 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:738 +#: extending/newtypes_tutorial.rst:738 msgid "" "Second, we need to provide a method for clearing any subobjects that can " "participate in cycles::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:749 +#: extending/newtypes_tutorial.rst:749 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 " +"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:757 +#: extending/newtypes_tutorial.rst:757 msgid "You could emulate :c:func:`Py_CLEAR` by writing::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:764 +#: extending/newtypes_tutorial.rst:764 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:768 +#: extending/newtypes_tutorial.rst:768 msgid "" "The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " "attributes. It means the circular GC can be triggered inside the function. " @@ -732,12 +816,12 @@ msgid "" "`PyObject_GC_UnTrack` and ``Custom_clear``::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:783 +#: extending/newtypes_tutorial.rst:783 msgid "" "Finally, we add the :const:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:787 +#: extending/newtypes_tutorial.rst:787 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 " @@ -745,11 +829,11 @@ msgid "" "automatically provided." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:793 +#: extending/newtypes_tutorial.rst:793 msgid "Subclassing other types" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:795 +#: extending/newtypes_tutorial.rst:795 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 " @@ -757,7 +841,7 @@ msgid "" "share these :c:type:`PyTypeObject` structures between extension modules." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:800 +#: extending/newtypes_tutorial.rst:800 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 " @@ -765,34 +849,34 @@ msgid "" "that increases an internal counter:" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:820 +#: extending/newtypes_tutorial.rst:820 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:828 +#: extending/newtypes_tutorial.rst:828 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:832 +#: extending/newtypes_tutorial.rst:832 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:844 +#: extending/newtypes_tutorial.rst:844 msgid "" "We see above how to call through to the :attr:`__init__` method of the base " "type." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:847 +#: extending/newtypes_tutorial.rst:847 msgid "" "This pattern is important when writing a type with custom :c:member:" "`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_dealloc` members. " @@ -801,7 +885,7 @@ msgid "" "the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:853 +#: extending/newtypes_tutorial.rst:853 msgid "" "The :c:type:`PyTypeObject` struct supports a :c:member:`~PyTypeObject." "tp_base` specifying the type's concrete base class. Due to cross-platform " @@ -810,7 +894,7 @@ msgid "" "function::" msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:881 +#: extending/newtypes_tutorial.rst:881 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 " @@ -819,29 +903,29 @@ msgid "" "from the base type will be inherited." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:887 +#: extending/newtypes_tutorial.rst:887 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:892 +#: extending/newtypes_tutorial.rst:892 msgid "Footnotes" msgstr "Notes" -#: ../Doc/extending/newtypes_tutorial.rst:893 +#: extending/newtypes_tutorial.rst:893 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:896 +#: extending/newtypes_tutorial.rst:896 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:899 +#: extending/newtypes_tutorial.rst:899 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 " @@ -851,7 +935,7 @@ msgid "" "objects." msgstr "" -#: ../Doc/extending/newtypes_tutorial.rst:905 +#: extending/newtypes_tutorial.rst:905 msgid "" "Also, even with our attributes restricted to strings instances, the user " "could pass arbitrary :class:`str` subclasses and therefore still create " diff --git a/extending/windows.po b/extending/windows.po index c818f3a3ef..e993fe84b0 100644 --- a/extending/windows.po +++ b/extending/windows.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-09-21 09:15+0200\n" "PO-Revision-Date: 2019-06-01 23:38+0200\n" diff --git a/faq/design.po b/faq/design.po index f828e1e9fb..20a3a5e401 100644 --- a/faq/design.po +++ b/faq/design.po @@ -3,32 +3,32 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-03-21 21:04+0100\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 22:52+0200\n" +"Last-Translator: Loc Cosnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/faq/design.rst:3 +#: faq/design.rst:3 msgid "Design and History FAQ" msgstr "FAQ histoire et design" -#: ../Doc/faq/design.rst:6 +#: faq/design.rst:6 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/design.rst:11 +#: faq/design.rst:11 msgid "Why does Python use indentation for grouping of statements?" msgstr "" "Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" -#: ../Doc/faq/design.rst:13 +#: faq/design.rst:13 msgid "" "Guido van Rossum believes that using indentation for grouping is extremely " "elegant and contributes a lot to the clarity of the average Python program. " @@ -39,7 +39,7 @@ msgstr "" "du programme Python. La plupart des gens finissent par aimer cette " "particularité au bout d'un moment." -#: ../Doc/faq/design.rst:17 +#: faq/design.rst:17 msgid "" "Since there are no begin/end brackets there cannot be a disagreement between " "grouping perceived by the parser and the human reader. Occasionally C " @@ -50,7 +50,7 @@ msgstr "" "humain. Parfois les programmeurs C pourront trouver un morceau de code comme " "celui-ci ::" -#: ../Doc/faq/design.rst:26 +#: faq/design.rst:26 msgid "" "Only the ``x++`` statement is executed if the condition is true, but the " "indentation leads you to believe otherwise. Even experienced C programmers " @@ -62,7 +62,7 @@ msgstr "" "développeurs C expérimentés resteront pendant un moment à se demander " "pourquoi ``y`` est décrémenté même si ``x > y``." -#: ../Doc/faq/design.rst:31 +#: faq/design.rst:31 msgid "" "Because there are no begin/end brackets, Python is much less prone to coding-" "style conflicts. In C there are many different ways to place the braces. If " @@ -76,7 +76,7 @@ msgstr "" "vous pourriez vous sentir perturbé en lisant (ou en devant écrire) avec un " "autre style." -#: ../Doc/faq/design.rst:36 +#: faq/design.rst:36 msgid "" "Many coding styles place begin/end brackets on a line by themselves. This " "makes programs considerably longer and wastes valuable screen space, making " @@ -96,35 +96,35 @@ msgstr "" "présence de types de haut-niveau en sont également responsables -- mais la " "syntaxe basée sur l'indentation aide sûrement." -#: ../Doc/faq/design.rst:46 +#: faq/design.rst:46 msgid "Why am I getting strange results with simple arithmetic operations?" msgstr "" "Pourquoi ai-je d'étranges résultats suite à de simples opérations " "arithmétiques ?" -#: ../Doc/faq/design.rst:48 +#: faq/design.rst:48 msgid "See the next question." msgstr "Voir la question suivante." -#: ../Doc/faq/design.rst:52 +#: faq/design.rst:52 msgid "Why are floating-point calculations so inaccurate?" msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" -#: ../Doc/faq/design.rst:54 +#: faq/design.rst:54 msgid "Users are often surprised by results like this::" msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::" -#: ../Doc/faq/design.rst:59 +#: faq/design.rst:59 msgid "" "and think it is a bug in Python. It's not. This has little to do with " "Python, and much more to do with how the underlying platform handles " "floating-point numbers." msgstr "" -"et pensent que c'est un *bug* dans Python. Ça ne l'est pas. Ceci n'a " +"et pensent que c'est un bogue dans Python. Ça ne l'est pas. Ceci n'a " "d'ailleurs que peu à voir avec Python, mais avec la manière dont la " "plateforme sous-jacente gère les nombres à virgule flottante." -#: ../Doc/faq/design.rst:63 +#: faq/design.rst:63 msgid "" "The :class:`float` type in CPython uses a C ``double`` for storage. A :" "class:`float` object's value is stored in binary floating-point with a fixed " @@ -142,7 +142,7 @@ msgstr "" "opérations sur les nombres à virgule flottante, Python se comporte comme " "beaucoup de langages populaires dont C et Java." -#: ../Doc/faq/design.rst:70 +#: faq/design.rst:70 msgid "" "Many numbers that can be written easily in decimal notation cannot be " "expressed exactly in binary floating-point. For example, after::" @@ -151,7 +151,7 @@ msgstr "" "peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par " "exemple, après ::" -#: ../Doc/faq/design.rst:75 +#: faq/design.rst:75 msgid "" "the value stored for ``x`` is a (very good) approximation to the decimal " "value ``1.2``, but is not exactly equal to it. On a typical machine, the " @@ -161,11 +161,11 @@ msgstr "" "décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine " "typique, la valeur stockée est en fait ::" -#: ../Doc/faq/design.rst:81 +#: faq/design.rst:81 msgid "which is exactly::" msgstr "qui est, exactement ::" -#: ../Doc/faq/design.rst:85 +#: faq/design.rst:85 msgid "" "The typical precision of 53 bits provides Python floats with 15--16 decimal " "digits of accuracy." @@ -173,7 +173,7 @@ msgstr "" "La précision typique de 53 bits des *floats* Python permet une précision de " "15--16 décimales." -#: ../Doc/faq/design.rst:88 +#: faq/design.rst:88 msgid "" "For a fuller explanation, please see the :ref:`floating point arithmetic " "` chapter in the Python tutorial." @@ -181,15 +181,15 @@ msgstr "" "Veuillez vous référer au chapitre sur :ref:`floating point arithmetic ` du tutoriel python pour de plus amples informations." -#: ../Doc/faq/design.rst:93 +#: faq/design.rst:93 msgid "Why are Python strings immutable?" msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" -#: ../Doc/faq/design.rst:95 +#: faq/design.rst:95 msgid "There are several advantages." msgstr "Il y a plusieurs avantages." -#: ../Doc/faq/design.rst:97 +#: faq/design.rst:97 msgid "" "One is performance: knowing that a string is immutable means we can allocate " "space for it at creation time, and the storage requirements are fixed and " @@ -201,7 +201,7 @@ msgstr "" "cette chaîne est fixe et figée. C'est aussi l'une des raisons pour " "lesquelles on fait la distinction entre les *tuples* et les listes." -#: ../Doc/faq/design.rst:102 +#: faq/design.rst:102 msgid "" "Another advantage is that strings in Python are considered as \"elemental\" " "as numbers. No amount of activity will change the value 8 to anything else, " @@ -213,13 +213,13 @@ msgstr "" "nombre 8 en autre chose, et en Python, aucun processus changera la chaîne de " "caractère \"huit\" en autre chose." -#: ../Doc/faq/design.rst:110 +#: faq/design.rst:110 msgid "Why must 'self' be used explicitly in method definitions and calls?" msgstr "" "Pourquoi \"self\" doit-il être explicitement utilisé dans les définitions et " "les appels de méthode ?" -#: ../Doc/faq/design.rst:112 +#: faq/design.rst:112 msgid "" "The idea was borrowed from Modula-3. It turns out to be very useful, for a " "variety of reasons." @@ -227,7 +227,7 @@ msgstr "" "L'idée a été empruntée à Modula-3. Il s'avère être très utile, pour diverses " "raisons." -#: ../Doc/faq/design.rst:115 +#: faq/design.rst:115 msgid "" "First, it's more obvious that you are using a method or instance attribute " "instead of a local variable. Reading ``self.x`` or ``self.meth()`` makes it " @@ -251,7 +251,7 @@ msgstr "" "programmation C++ et Java préfixent les attributs d'instance par ``m_``. " "Cette syntaxe explicite est ainsi utile également pour ces langages." -#: ../Doc/faq/design.rst:125 +#: faq/design.rst:125 msgid "" "Second, it means that no special syntax is necessary if you want to " "explicitly reference or call the method from a particular class. In C++, if " @@ -272,7 +272,7 @@ msgstr "" "étendre la méthode du même nom de la classe de base, devant ainsi appeler la " "méthode de la classe de base d'une certaine manière." -#: ../Doc/faq/design.rst:134 +#: faq/design.rst:134 msgid "" "Finally, for instance variables it solves a syntactic problem with " "assignment: since local variables in Python are (by definition!) those " @@ -305,25 +305,27 @@ msgstr "" "locales et les variables d'instance vivent dans deux différents espaces de " "nommage, et vous devez dire à Python quel espace de nommage utiliser." -#: ../Doc/faq/design.rst:150 +#: faq/design.rst:152 msgid "Why can't I use an assignment in an expression?" msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" -#: ../Doc/faq/design.rst:152 +#: faq/design.rst:154 msgid "Starting in Python 3.8, you can!" -msgstr "" +msgstr "Depuis Python 3.8, c'est possible !" -#: ../Doc/faq/design.rst:154 +#: faq/design.rst:156 msgid "" "Assignment expressions using the walrus operator `:=` assign a variable in " "an expression::" msgstr "" +"Les expressions d'affectation qui utilisent l'opérateur morse `:=` affectent " +"une variable dans une expression ::" -#: ../Doc/faq/design.rst:160 +#: faq/design.rst:162 msgid "See :pep:`572` for more information." -msgstr "" +msgstr "Voir la :pep:`572` pour plus d'informations." -#: ../Doc/faq/design.rst:165 +#: faq/design.rst:167 msgid "" "Why does Python use methods for some functionality (e.g. list.index()) but " "functions for other (e.g. len(list))?" @@ -331,11 +333,11 @@ msgstr "" "Pourquoi Python utilise des méthodes pour certaines fonctionnalités (ex : " "``list.index()``) mais des fonctions pour d'autres (ex : ``len(list)``) ?" -#: ../Doc/faq/design.rst:167 +#: faq/design.rst:169 msgid "As Guido said:" msgstr "Comme l'a dit Guido :" -#: ../Doc/faq/design.rst:169 +#: faq/design.rst:171 msgid "" "(a) For some operations, prefix notation just reads better than postfix -- " "prefix (and infix!) operations have a long tradition in mathematics which " @@ -350,7 +352,7 @@ msgstr "" "laquelle nous réécrivons une formule comme x*(a+b) en x*a + x*b à la " "lourdeur de faire la même chose avec une notation orientée objet brute." -#: ../Doc/faq/design.rst:176 +#: faq/design.rst:178 msgid "" "(b) When I read code that says len(x) I *know* that it is asking for the " "length of something. This tells me two things: the result is an integer, and " @@ -371,18 +373,18 @@ msgstr "" "``key()``, ou quand un objet qui n'est pas un fichier implémente une méthode " "``write()``." -#: ../Doc/faq/design.rst:203 +#: faq/design.rst:205 msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" msgstr "" "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" -#: ../Doc/faq/design.rst:189 +#: faq/design.rst:191 msgid "Why is join() a string method instead of a list or tuple method?" msgstr "" "Pourquoi ``join()`` est une méthode de chaîne plutôt qu'une de liste ou de " "tuple ?" -#: ../Doc/faq/design.rst:191 +#: faq/design.rst:193 msgid "" "Strings became much more like other standard types starting in Python 1.6, " "when methods were added which give the same functionality that has always " @@ -397,15 +399,15 @@ msgstr "" "largement acceptées, mais celle qui semble rendre certains programmeurs " "inconfortables est ::" -#: ../Doc/faq/design.rst:199 +#: faq/design.rst:201 msgid "which gives the result::" msgstr "qui donne le résultat ::" -#: ../Doc/faq/design.rst:203 +#: faq/design.rst:205 msgid "There are two common arguments against this usage." msgstr "Il y a deux arguments fréquents contre cet usage." -#: ../Doc/faq/design.rst:205 +#: faq/design.rst:207 msgid "" "The first runs along the lines of: \"It looks really ugly using a method of " "a string literal (string constant)\", to which the answer is that it might, " @@ -419,7 +421,7 @@ msgstr "" "fixe. Si la méthode est autorisée sur des noms liés à des chaînes, il n'y a " "pas de raison logique à les rendre indisponibles sur des chaînes littérales." -#: ../Doc/faq/design.rst:211 +#: faq/design.rst:213 msgid "" "The second objection is typically cast as: \"I am really telling a sequence " "to join its members together with a string constant\". Sadly, you aren't. " @@ -430,9 +432,9 @@ msgstr "" "train de dire à une séquence de joindre ses membres avec une constante de " "chaîne\". Malheureusement, vous ne l'êtes pas. Pour quelque raison, il " "semble être bien moins difficile d'avoir :meth:`~str.split` en tant que " -"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" +"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" -#: ../Doc/faq/design.rst:218 +#: faq/design.rst:220 msgid "" "is an instruction to a string literal to return the substrings delimited by " "the given separator (or, by default, arbitrary runs of white space)." @@ -441,7 +443,7 @@ msgstr "" "délimitées par le séparateur fournit (ou, par défaut, les espaces, ou " "groupes d'espaces)." -#: ../Doc/faq/design.rst:221 +#: faq/design.rst:223 msgid "" ":meth:`~str.join` is a string method because in using it you are telling the " "separator string to iterate over a sequence of strings and insert itself " @@ -457,11 +459,11 @@ msgstr "" "même. Des méthodes similaires existent pour des objets ``bytes`` et " "``bytearray``." -#: ../Doc/faq/design.rst:229 +#: faq/design.rst:231 msgid "How fast are exceptions?" msgstr "À quel point les exceptions sont-elles rapides ?" -#: ../Doc/faq/design.rst:231 +#: faq/design.rst:233 msgid "" "A try/except block is extremely efficient if no exceptions are raised. " "Actually catching an exception is expensive. In versions of Python prior to " @@ -472,7 +474,7 @@ msgstr "" "coûteux. Dans les versions de précédant Python 2.0, il était courant " "d'utiliser cette pratique ::" -#: ../Doc/faq/design.rst:241 +#: faq/design.rst:243 msgid "" "This only made sense when you expected the dict to have the key almost all " "the time. If that wasn't the case, you coded it like this::" @@ -481,7 +483,7 @@ msgstr "" "clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " "comme suit ::" -#: ../Doc/faq/design.rst:249 +#: faq/design.rst:251 msgid "" "For this specific case, you could also use ``value = dict.setdefault(key, " "getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " @@ -491,13 +493,13 @@ msgstr "" "getvalue(key))``, mais seulement si l'appel à ``getvalue()`` est " "suffisamment peu coûteux car il est évalué dans tous les cas." -#: ../Doc/faq/design.rst:255 +#: faq/design.rst:257 msgid "Why isn't there a switch or case statement in Python?" msgstr "" "Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire " "à *switch / case* en Python ?" -#: ../Doc/faq/design.rst:257 +#: faq/design.rst:259 msgid "" "You can do this easily enough with a sequence of ``if... elif... elif... " "else``. There have been some proposals for switch statement syntax, but " @@ -509,7 +511,7 @@ msgstr "" "l'instruction ``switch``, mais il n'y a pas (encore) de consensus sur le cas " "des intervalles. Voir la :pep:`275` pour tous les détails et l'état actuel." -#: ../Doc/faq/design.rst:262 +#: faq/design.rst:264 msgid "" "For cases where you need to choose from a very large number of " "possibilities, you can create a dictionary mapping case values to functions " @@ -519,7 +521,7 @@ msgstr "" "possibilités, vous pouvez créer un dictionnaire faisant correspondre des " "valeurs à des fonctions à appeler. Par exemple ::" -#: ../Doc/faq/design.rst:276 +#: faq/design.rst:278 msgid "" "For calling methods on objects, you can simplify yet further by using the :" "func:`getattr` built-in to retrieve methods with a particular name::" @@ -528,7 +530,7 @@ msgstr "" "en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " "avec un nom donné ::" -#: ../Doc/faq/design.rst:288 +#: faq/design.rst:290 msgid "" "It's suggested that you use a prefix for the method names, such as " "``visit_`` in this example. Without such a prefix, if values are coming " @@ -540,7 +542,7 @@ msgstr "" "proviennent d'une source non fiable, un attaquant serait en mesure d'appeler " "n'importe quelle méthode sur votre objet." -#: ../Doc/faq/design.rst:294 +#: faq/design.rst:296 msgid "" "Can't you emulate threads in the interpreter instead of relying on an OS-" "specific thread implementation?" @@ -548,7 +550,7 @@ msgstr "" "Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que " "se baser sur les implémentations spécifique aux OS ?" -#: ../Doc/faq/design.rst:296 +#: faq/design.rst:298 msgid "" "Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " "for each Python stack frame. Also, extensions can call back into Python at " @@ -561,7 +563,7 @@ msgstr "" "conséquent, une implémentation complète des fils d'exécution nécessiterai un " "support complet en C." -#: ../Doc/faq/design.rst:301 +#: faq/design.rst:303 msgid "" "Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " @@ -571,12 +573,12 @@ msgstr "" "stackless-dev/stackless/wiki>`_, qui a complètement ré-architecturé la " "boucle principale de l'interpréteur afin de ne pas utiliser la pile C." -#: ../Doc/faq/design.rst:306 +#: faq/design.rst:308 msgid "Why can't lambda expressions contain statements?" msgstr "" "Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" -#: ../Doc/faq/design.rst:308 +#: faq/design.rst:310 msgid "" "Python lambda expressions cannot contain statements because Python's " "syntactic framework can't handle statements nested inside expressions. " @@ -592,7 +594,7 @@ msgstr "" "Python sont seulement une notation concise si vous êtes trop paresseux pour " "définir une fonction." -#: ../Doc/faq/design.rst:314 +#: faq/design.rst:316 msgid "" "Functions are already first class objects in Python, and can be declared in " "a local scope. Therefore the only advantage of using a lambda instead of a " @@ -608,12 +610,12 @@ msgstr "" "variable locale à laquelle est affecté l'objet fonction (qui est exactement " "le même type d'objet qui donne une expression lambda) !" -#: ../Doc/faq/design.rst:322 +#: faq/design.rst:324 msgid "Can Python be compiled to machine code, C or some other language?" msgstr "" "Python peut-il être compilé en code machine, en C ou dans un autre langage ?" -#: ../Doc/faq/design.rst:324 +#: faq/design.rst:326 msgid "" "`Cython `_ compiles a modified version of Python with " "optional annotations into C extensions. `Nuitka `_ " @@ -627,11 +629,11 @@ msgstr "" "langage Python entièrement. Pour compiler en Java, vous pouvez regarder `VOC " "`_." -#: ../Doc/faq/design.rst:332 +#: faq/design.rst:334 msgid "How does Python manage memory?" msgstr "Comment Python gère la mémoire ?" -#: ../Doc/faq/design.rst:334 +#: faq/design.rst:336 msgid "" "The details of Python memory management depend on the implementation. The " "standard implementation of Python, :term:`CPython`, uses reference counting " @@ -650,7 +652,7 @@ msgstr "" "module :mod:`gc` fournit des fonctions pour lancer le ramasse-miettes, " "d'obtenir des statistiques de débogage et ajuster ses paramètres." -#: ../Doc/faq/design.rst:342 +#: faq/design.rst:344 msgid "" "Other implementations (such as `Jython `_ or `PyPy " "`_), however, can rely on a different mechanism such as " @@ -664,7 +666,7 @@ msgstr "" "subtils problèmes de portabilité si votre code Python dépend du comportement " "de l'implémentation du compteur de références." -#: ../Doc/faq/design.rst:348 +#: faq/design.rst:350 msgid "" "In some Python implementations, the following code (which is fine in " "CPython) will probably run out of file descriptors::" @@ -673,7 +675,7 @@ msgstr "" "parfaitement avec *CPython*) aurait probablement manqué de descripteurs de " "fichiers ::" -#: ../Doc/faq/design.rst:355 +#: faq/design.rst:357 msgid "" "Indeed, using CPython's reference counting and destructor scheme, each new " "assignment to *f* closes the previous file. With a traditional GC, however, " @@ -686,7 +688,7 @@ msgstr "" "(et fermés) à intervalles variables et possiblement avec de longs " "intervalles." -#: ../Doc/faq/design.rst:360 +#: faq/design.rst:362 msgid "" "If you want to write code that will work with any Python implementation, you " "should explicitly close the file or use the :keyword:`with` statement; this " @@ -697,12 +699,12 @@ msgstr "" "utiliser l'instruction :keyword:`with` ; ceci fonctionnera indépendamment du " "système de gestion de la mémoire ::" -#: ../Doc/faq/design.rst:370 +#: faq/design.rst:372 msgid "Why doesn't CPython use a more traditional garbage collection scheme?" msgstr "" "Pourquoi CPython n'utilise-il pas un ramasse-miette plus traditionnel ?" -#: ../Doc/faq/design.rst:372 +#: faq/design.rst:374 msgid "" "For one thing, this is not a C standard feature and hence it's not portable. " "(Yes, we know about the Boehm GC library. It has bits of assembler code for " @@ -717,7 +719,7 @@ msgstr "" "transparent, c'est loin d'être le cas, des correctifs sont nécessaires afin " "que Python fonctionne correctement avec.)" -#: ../Doc/faq/design.rst:378 +#: faq/design.rst:380 msgid "" "Traditional GC also becomes a problem when Python is embedded into other " "applications. While in a standalone Python it's fine to replace the " @@ -735,12 +737,12 @@ msgstr "" "fonctionne avec n'importe quelle implémentation correcte de ``malloc()`` et " "``free()``." -#: ../Doc/faq/design.rst:387 +#: faq/design.rst:389 msgid "Why isn't all memory freed when CPython exits?" msgstr "" "Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" -#: ../Doc/faq/design.rst:389 +#: faq/design.rst:391 msgid "" "Objects referenced from the global namespaces of Python modules are not " "always deallocated when Python exits. This may happen if there are circular " @@ -757,7 +759,7 @@ msgstr "" "cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à " "détruire chaque objet." -#: ../Doc/faq/design.rst:396 +#: faq/design.rst:398 msgid "" "If you want to force Python to delete certain things on deallocation use " "the :mod:`atexit` module to run a function that will force those deletions." @@ -766,12 +768,12 @@ msgstr "" "utilisez le module :mod:`texit` pour exécuter une fonction qui va forcer ces " "destructions." -#: ../Doc/faq/design.rst:401 +#: faq/design.rst:403 msgid "Why are there separate tuple and list data types?" msgstr "" "Pourquoi les *tuples* et les *list* sont deux types de données séparés ?" -#: ../Doc/faq/design.rst:403 +#: faq/design.rst:405 msgid "" "Lists and tuples, while similar in many respects, are generally used in " "fundamentally different ways. Tuples can be thought of as being similar to " @@ -788,7 +790,7 @@ msgstr "" "un repère cartésien est correctement représenté comme un *tuple* de deux ou " "trois nombres." -#: ../Doc/faq/design.rst:410 +#: faq/design.rst:412 msgid "" "Lists, on the other hand, are more like arrays in other languages. They " "tend to hold a varying number of objects all of which have the same type and " @@ -805,7 +807,7 @@ msgstr "" "problème que vous ajoutiez un ou deux fichiers supplémentaire dans le " "dossier." -#: ../Doc/faq/design.rst:417 +#: faq/design.rst:419 msgid "" "Tuples are immutable, meaning that once a tuple has been created, you can't " "replace any of its elements with a new value. Lists are mutable, meaning " @@ -820,11 +822,11 @@ msgstr "" "utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul " "des *tuples* peuvent être utilisés comme clés." -#: ../Doc/faq/design.rst:424 +#: faq/design.rst:426 msgid "How are lists implemented in CPython?" msgstr "Comment les listes sont-elles implémentées dans CPython ?" -#: ../Doc/faq/design.rst:426 +#: faq/design.rst:428 msgid "" "CPython's lists are really variable-length arrays, not Lisp-style linked " "lists. The implementation uses a contiguous array of references to other " @@ -832,12 +834,12 @@ msgid "" "head structure." msgstr "" "Les listes en CPython sont de vrais tableaux de longueur variable " -"contrairement à des listes orientées *Lisp* (i.e des listes chaînées). " +"contrairement à des listes orientées *Lisp* (c.-à-d. des listes chaînées). " "L'implémentation utilise un tableau contigu de références à d'autres objets. " "Elle conserve également un pointeur vers ce tableau et la longueur du " "tableau dans une structure de tête de liste." -#: ../Doc/faq/design.rst:430 +#: faq/design.rst:432 msgid "" "This makes indexing a list ``a[i]`` an operation whose cost is independent " "of the size of the list or the value of the index." @@ -845,7 +847,7 @@ msgstr "" "Cela rend l'indexation d'une liste ``a[i]`` une opération dont le coût est " "indépendant de la taille de la liste ou de la valeur de l'indice." -#: ../Doc/faq/design.rst:433 +#: faq/design.rst:435 msgid "" "When items are appended or inserted, the array of references is resized. " "Some cleverness is applied to improve the performance of appending items " @@ -858,11 +860,11 @@ msgstr "" "être étendu, un certain espace supplémentaire est alloué de sorte que pour " "la prochaine fois, ceci ne nécessite plus un redimensionnement effectif." -#: ../Doc/faq/design.rst:440 +#: faq/design.rst:442 msgid "How are dictionaries implemented in CPython?" msgstr "Comment les dictionnaires sont-ils implémentés dans CPython ?" -#: ../Doc/faq/design.rst:442 +#: faq/design.rst:444 msgid "" "CPython's dictionaries are implemented as resizable hash tables. Compared " "to B-trees, this gives better performance for lookup (the most common " @@ -874,7 +876,7 @@ msgstr "" "performances pour la recherche (l'opération la plus courante de loin) dans " "la plupart des circonstances, et leur implémentation est plus simple." -#: ../Doc/faq/design.rst:446 +#: faq/design.rst:448 msgid "" "Dictionaries work by computing a hash code for each key stored in the " "dictionary using the :func:`hash` built-in function. The hash code varies " @@ -899,11 +901,11 @@ msgstr "" "temps pour récupérer une clé est constant -- O(1), en notation grand O de " "Landau." -#: ../Doc/faq/design.rst:457 +#: faq/design.rst:459 msgid "Why must dictionary keys be immutable?" msgstr "Pourquoi les clés du dictionnaire sont immuables ?" -#: ../Doc/faq/design.rst:459 +#: faq/design.rst:461 msgid "" "The hash table implementation of dictionaries uses a hash value calculated " "from the key value to find the key. If the key were a mutable object, its " @@ -926,7 +928,7 @@ msgstr "" "chercher l'ancienne valeur, elle serait également introuvable car la valeur " "de l'objet trouvé dans cet emplacement de hachage serait différente." -#: ../Doc/faq/design.rst:468 +#: faq/design.rst:470 msgid "" "If you want a dictionary indexed with a list, simply convert the list to a " "tuple first; the function ``tuple(L)`` creates a tuple with the same entries " @@ -938,11 +940,11 @@ msgstr "" "*tuple* avec les mêmes entrées que la liste ``L``. Les *tuples* sont " "immuables et peuvent donc être utilisés comme clés du dictionnaire." -#: ../Doc/faq/design.rst:472 +#: faq/design.rst:474 msgid "Some unacceptable solutions that have been proposed:" msgstr "Certaines solutions insatisfaisantes qui ont été proposées :" -#: ../Doc/faq/design.rst:474 +#: faq/design.rst:476 msgid "" "Hash lists by their address (object ID). This doesn't work because if you " "construct a new list with the same value it won't be found; e.g.::" @@ -951,7 +953,7 @@ msgstr "" "fonctionne pas parce que si vous créez une nouvelle liste avec la même " "valeur, elle ne sera pas retrouvée; par exemple ::" -#: ../Doc/faq/design.rst:480 +#: faq/design.rst:482 msgid "" "would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " "used in the second line differs from that in the first line. In other " @@ -963,7 +965,7 @@ msgstr "" "termes, les clés de dictionnaire doivent être comparées à l'aide du " "comparateur ``==`` et non à l'aide du mot clé :keyword:`is`." -#: ../Doc/faq/design.rst:484 +#: faq/design.rst:486 msgid "" "Make a copy when using a list as a key. This doesn't work because the list, " "being a mutable object, could contain a reference to itself, and then the " @@ -974,7 +976,7 @@ msgstr "" "une référence à elle-même ou avoir une boucle infinie au niveau du code " "copié." -#: ../Doc/faq/design.rst:488 +#: faq/design.rst:490 msgid "" "Allow lists as keys but tell the user not to modify them. This would allow " "a class of hard-to-track bugs in programs when you forgot or modified a list " @@ -987,7 +989,7 @@ msgstr "" "accident. Cela casse également un impératif important des dictionnaires : " "chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire." -#: ../Doc/faq/design.rst:493 +#: faq/design.rst:495 msgid "" "Mark lists as read-only once they are used as a dictionary key. The problem " "is that it's not just the top-level object that could change its value; you " @@ -1005,7 +1007,7 @@ msgstr "" "encore une fois, les objets se faisant référence pourraient provoquer une " "boucle infinie." -#: ../Doc/faq/design.rst:499 +#: faq/design.rst:501 msgid "" "There is a trick to get around this if you need to, but use it at your own " "risk: You can wrap a mutable structure inside a class instance which has " @@ -1020,9 +1022,9 @@ msgstr "" "`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer que la valeur " "de hachage pour tous ces objets *wrapper* qui résident dans un dictionnaire " "(ou une autre structure basée sur le hachage), restent fixes pendant que " -"l'objet est dans le dictionnaire (ou une autre structure). ::" +"l'objet est dans le dictionnaire (ou une autre structure). ::" -#: ../Doc/faq/design.rst:523 +#: faq/design.rst:525 msgid "" "Note that the hash computation is complicated by the possibility that some " "members of the list may be unhashable and also by the possibility of " @@ -1032,7 +1034,7 @@ msgstr "" "certains membres de la liste peuvent être impossible à hacher et aussi par " "la possibilité de débordement arithmétique." -#: ../Doc/faq/design.rst:527 +#: faq/design.rst:529 msgid "" "Furthermore it must always be the case that if ``o1 == o2`` (ie ``o1." "__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, ``o1.__hash__() == " @@ -1046,7 +1048,7 @@ msgstr "" "ne remplissez pas ces conditions, les dictionnaires et autres structures " "basées sur le hachage se comporteront mal." -#: ../Doc/faq/design.rst:532 +#: faq/design.rst:534 msgid "" "In the case of ListWrapper, whenever the wrapper object is in a dictionary " "the wrapped list must not change to avoid anomalies. Don't do this unless " @@ -1059,11 +1061,11 @@ msgstr "" "conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été " "prévenus." -#: ../Doc/faq/design.rst:539 +#: faq/design.rst:541 msgid "Why doesn't list.sort() return the sorted list?" msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?" -#: ../Doc/faq/design.rst:541 +#: faq/design.rst:543 msgid "" "In situations where performance matters, making a copy of the list just to " "sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in " @@ -1079,7 +1081,7 @@ msgstr "" "accidentellement une liste lorsque vous avez besoin d’une copie triée, mais " "vous devrez également garder sous la main la version non triée." -#: ../Doc/faq/design.rst:547 +#: faq/design.rst:549 msgid "" "If you want to return a new list, use the built-in :func:`sorted` function " "instead. This function creates a new list from a provided iterable, sorts " @@ -1091,13 +1093,13 @@ msgstr "" "itérable fourni, la trie et la retourne. Par exemple, voici comment itérer " "sur les clefs d’un dictionnaire dans l’ordre trié ::" -#: ../Doc/faq/design.rst:557 +#: faq/design.rst:559 msgid "How do you specify and enforce an interface spec in Python?" msgstr "" "Comment spécifiez-vous et appliquez-vous une spécification d’interface en " "Python ?" -#: ../Doc/faq/design.rst:559 +#: faq/design.rst:561 msgid "" "An interface specification for a module as provided by languages such as C++ " "and Java describes the prototypes for the methods and functions of the " @@ -1109,7 +1111,7 @@ msgstr "" "module. Beaucoup estiment que la vérification au moment de la compilation " "des spécifications d'interface aide à la construction de grands programmes." -#: ../Doc/faq/design.rst:564 +#: faq/design.rst:566 msgid "" "Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " "Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " @@ -1126,18 +1128,15 @@ msgstr "" "Iterable`, :class:`~collections.abc.Container` et :class:`collections.abc." "MutableMapping`." -#: ../Doc/faq/design.rst:571 +#: faq/design.rst:573 msgid "" "For Python, many of the advantages of interface specifications can be " -"obtained by an appropriate test discipline for components. There is also a " -"tool, PyChecker, which can be used to find problems due to subclassing." +"obtained by an appropriate test discipline for components." msgstr "" "Pour Python, la plupart des avantages des spécifications d'interface peuvent " -"être obtenus par une discipline de test appropriée pour les composants. Il " -"existe aussi un outil, PyChecker, qui peut être utilisé pour trouver des " -"problèmes d'héritage." +"être obtenus par une discipline de test appropriée pour les composants." -#: ../Doc/faq/design.rst:575 +#: faq/design.rst:576 msgid "" "A good test suite for a module can both provide a regression test and serve " "as a module interface specification and a set of examples. Many Python " @@ -1158,7 +1157,7 @@ msgstr "" "test tiers peuvent être utilisés pour construire des suites de tests " "exhaustives qui éprouvent chaque ligne de code dans un module." -#: ../Doc/faq/design.rst:583 +#: faq/design.rst:584 msgid "" "An appropriate testing discipline can help build large complex applications " "in Python as well as having interface specifications would. In fact, it can " @@ -1178,7 +1177,7 @@ msgstr "" "réellement le faire correctement, mais il est trivial de vérifier cette " "propriété dans une suite de tests." -#: ../Doc/faq/design.rst:591 +#: faq/design.rst:592 msgid "" "Writing test suites is very helpful, and you might want to design your code " "with an eye to making it easily tested. One increasingly popular technique, " @@ -1193,24 +1192,41 @@ msgstr "" "le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas " "écrire de test du tout." -#: ../Doc/faq/design.rst:599 +#: faq/design.rst:600 msgid "Why is there no goto?" msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?" -#: ../Doc/faq/design.rst:601 +#: faq/design.rst:602 +msgid "" +"In the 1970s people realized that unrestricted goto could lead to messy " +"\"spaghetti\" code that was hard to understand and revise. In a high-level " +"language, it is also unneeded as long as there are ways to branch (in " +"Python, with ``if`` statements and ``or``, ``and``, and ``if-else`` " +"expressions) and loop (with ``while`` and ``for`` statements, possibly " +"containing ``continue`` and ``break``)." +msgstr "" +"Dans les années 1970, les gens se sont aperçus que le foisonnement de *goto* " +"conduisait à du code « spaghetti » difficile à comprendre et à modifier. " +"Dans les langages de haut niveau, c'est d'autant moins nécessaire qu'il " +"existe différentes manières de créer des branches (en Python, les " +"instructions ``if`` et les expressions ``or``, ``and`` et ``if-else``) et de " +"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir " +"des ``continue`` et ``break``)." + +#: faq/design.rst:609 msgid "" -"You can use exceptions to provide a \"structured goto\" that even works " +"One can also use exceptions to provide a \"structured goto\" that works even " "across function calls. Many feel that exceptions can conveniently emulate " "all reasonable uses of the \"go\" or \"goto\" constructs of C, Fortran, and " "other languages. For example::" msgstr "" -"Vous pouvez utiliser les exceptions afin de mettre en place un \"``goto`` " -"structuré\" qui fonctionne même avec les appels de fonctions. Beaucoup de " -"personnes estiment que les exceptions peuvent émuler idéalement tout " -"utilisation raisonnable des constructions ``go`` ou ``goto`` en C, en " -"Fortran ou autres langages de programmation. Par exemple ::" +"Vous pouvez utiliser les exceptions afin de mettre en place un « *goto* " +"structuré » qui fonctionne même à travers les appels de fonctions. Beaucoup " +"de personnes estiment que les exceptions sont une façon commode d'émuler " +"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran " +"ou d'autres langages de programmation. Par exemple ::" -#: ../Doc/faq/design.rst:616 +#: faq/design.rst:625 msgid "" "This doesn't allow you to jump into the middle of a loop, but that's usually " "considered an abuse of goto anyway. Use sparingly." @@ -1219,13 +1235,13 @@ msgstr "" "tous les cas cela est généralement considéré comme un abus de ``goto``. À " "Utiliser avec parcimonie." -#: ../Doc/faq/design.rst:621 +#: faq/design.rst:630 msgid "Why can't raw strings (r-strings) end with a backslash?" msgstr "" "Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas " "se terminer par un *backslash* ?" -#: ../Doc/faq/design.rst:623 +#: faq/design.rst:632 msgid "" "More precisely, they can't end with an odd number of backslashes: the " "unpaired backslash at the end escapes the closing quote character, leaving " @@ -1235,7 +1251,7 @@ msgstr "" "*backslashes* : le *backslash* non appairé à la fin échappe le caractère de " "guillemet final, laissant une chaîne non terminée." -#: ../Doc/faq/design.rst:627 +#: faq/design.rst:636 msgid "" "Raw strings were designed to ease creating input for processors (chiefly " "regular expression engines) that want to do their own backslash escape " @@ -1253,29 +1269,29 @@ msgstr "" "chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien " "lorsque les chaînes brutes sont utilisées pour leur but premier." -#: ../Doc/faq/design.rst:634 +#: faq/design.rst:643 msgid "" "If you're trying to build Windows pathnames, note that all Windows system " "calls accept forward slashes too::" msgstr "" "Si vous essayez de construire des chemins d'accès Windows, notez que tous " -"les appels système Windows acceptent également les *slashes* \"classiques" -"\" ::" +"les appels système Windows acceptent également les *slashes* " +"\"classiques\" ::" -#: ../Doc/faq/design.rst:639 +#: faq/design.rst:648 msgid "" "If you're trying to build a pathname for a DOS command, try e.g. one of ::" msgstr "" "Si vous essayez de construire un chemin d'accès pour une commande DOS, " -"essayez par exemple l'un de ceux-là ::" +"essayez par exemple l'un de ceux-là ::" -#: ../Doc/faq/design.rst:647 +#: faq/design.rst:656 msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" msgstr "" "Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe " "pas en Python ?" -#: ../Doc/faq/design.rst:649 +#: faq/design.rst:658 msgid "" "Python has a 'with' statement that wraps the execution of a block, calling " "code on the entrance and exit from the block. Some language have a " @@ -1285,11 +1301,11 @@ msgstr "" "appelant le code sur l'entrée et la sortie du bloc. Certains langages " "possèdent une construction qui ressemble à ceci ::" -#: ../Doc/faq/design.rst:657 +#: faq/design.rst:666 msgid "In Python, such a construct would be ambiguous." msgstr "En Python, une telle construction serait ambiguë." -#: ../Doc/faq/design.rst:659 +#: faq/design.rst:668 msgid "" "Other languages, such as Object Pascal, Delphi, and C++, use static types, " "so it's possible to know, in an unambiguous way, what member is being " @@ -1302,7 +1318,7 @@ msgstr "" "statique --le compilateur connaît *toujours* la portée de toutes les " "variables au moment de la compilation." -#: ../Doc/faq/design.rst:664 +#: faq/design.rst:673 msgid "" "Python uses dynamic types. It is impossible to know in advance which " "attribute will be referenced at runtime. Member attributes may be added or " @@ -1316,11 +1332,11 @@ msgstr "" "impossible de savoir, d'une simple lecture, quel attribut est référencé : " "s'il est local, global ou un attribut membre?" -#: ../Doc/faq/design.rst:670 +#: faq/design.rst:679 msgid "For instance, take the following incomplete snippet::" msgstr "Prenons par exemple l'extrait incomplet suivant ::" -#: ../Doc/faq/design.rst:676 +#: faq/design.rst:685 msgid "" "The snippet assumes that \"a\" must have a member attribute called \"x\". " "However, there is nothing in Python that tells the interpreter this. What " @@ -1334,7 +1350,7 @@ msgstr "" "\"x\" existe, sera-t-elle utilisée dans le bloc ``with`` ? Comme vous " "voyez, la nature dynamique du Python rend ces choix beaucoup plus difficiles." -#: ../Doc/faq/design.rst:682 +#: faq/design.rst:691 msgid "" "The primary benefit of \"with\" and similar language features (reduction of " "code volume) can, however, easily be achieved in Python by assignment. " @@ -1344,11 +1360,11 @@ msgstr "" "similaires (réduction du volume de code) peut, cependant, être facilement " "réalisé en Python par assignation. Au lieu de ::" -#: ../Doc/faq/design.rst:689 +#: faq/design.rst:698 msgid "write this::" msgstr "écrivez ceci ::" -#: ../Doc/faq/design.rst:696 +#: faq/design.rst:705 msgid "" "This also has the side-effect of increasing execution speed because name " "bindings are resolved at run-time in Python, and the second version only " @@ -1358,13 +1374,13 @@ msgstr "" "car les liaisons de noms sont résolues au moment de l'exécution en Python, " "et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois." -#: ../Doc/faq/design.rst:702 +#: faq/design.rst:711 msgid "Why are colons required for the if/while/def/class statements?" msgstr "" "Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/" "while/def/class`` ?" -#: ../Doc/faq/design.rst:704 +#: faq/design.rst:713 msgid "" "The colon is required primarily to enhance readability (one of the results " "of the experimental ABC language). Consider this::" @@ -1372,11 +1388,11 @@ msgstr "" "Le deux-points est principalement nécessaires pour améliorer la lisibilité " "(l'un des résultats du langage expérimental ABC). Considérez ceci ::" -#: ../Doc/faq/design.rst:710 +#: faq/design.rst:719 msgid "versus ::" -msgstr "versus ::" +msgstr "versus ::" -#: ../Doc/faq/design.rst:715 +#: faq/design.rst:724 msgid "" "Notice how the second one is slightly easier to read. Notice further how a " "colon sets off the example in this FAQ answer; it's a standard usage in " @@ -1386,7 +1402,7 @@ msgstr "" "aussi comment un deux-points introduit l'exemple dans cette réponse à la " "FAQ ; c'est un usage standard en anglais." -#: ../Doc/faq/design.rst:718 +#: faq/design.rst:727 msgid "" "Another minor reason is that the colon makes it easier for editors with " "syntax highlighting; they can look for colons to decide when indentation " @@ -1398,12 +1414,12 @@ msgstr "" "pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire " "une analyse plus élaborée du texte du programme." -#: ../Doc/faq/design.rst:724 +#: faq/design.rst:733 msgid "Why does Python allow commas at the end of lists and tuples?" msgstr "" "Pourquoi Python permet-il les virgules à la fin des listes et des tuples ?" -#: ../Doc/faq/design.rst:726 +#: faq/design.rst:735 msgid "" "Python lets you add a trailing comma at the end of lists, tuples, and " "dictionaries::" @@ -1411,11 +1427,11 @@ msgstr "" "Python vous permet d'ajouter une virgule à la fin des listes, des tuples et " "des dictionnaires ::" -#: ../Doc/faq/design.rst:737 +#: faq/design.rst:746 msgid "There are several reasons to allow this." msgstr "Il y a plusieurs raisons d'accepter cela." -#: ../Doc/faq/design.rst:739 +#: faq/design.rst:748 msgid "" "When you have a literal value for a list, tuple, or dictionary spread across " "multiple lines, it's easier to add more elements because you don't have to " @@ -1428,7 +1444,7 @@ msgstr "" "virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées " "sans créer une erreur de syntaxe." -#: ../Doc/faq/design.rst:744 +#: faq/design.rst:753 msgid "" "Accidentally omitting the comma can lead to errors that are hard to " "diagnose. For example::" @@ -1436,7 +1452,7 @@ msgstr "" "L'omission accidentelle de la virgule peut entraîner des erreurs difficiles " "à diagnostiquer, par exemple ::" -#: ../Doc/faq/design.rst:754 +#: faq/design.rst:763 msgid "" "This list looks like it has four elements, but it actually contains three: " "\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " @@ -1446,7 +1462,7 @@ msgstr "" "trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule " "permet d'éviter cette source d'erreur." -#: ../Doc/faq/design.rst:757 +#: faq/design.rst:766 msgid "" "Allowing the trailing comma may also make programmatic code generation " "easier." diff --git a/faq/extending.po b/faq/extending.po index 0b8a1f420b..f60850d33b 100644 --- a/faq/extending.po +++ b/faq/extending.po @@ -3,30 +3,31 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2018-02-15 00:37+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-03-03 19:27+0100\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/faq/extending.rst:3 +#: faq/extending.rst:3 msgid "Extending/Embedding FAQ" msgstr "FAQ extension/intégration" -#: ../Doc/faq/extending.rst:6 +#: faq/extending.rst:6 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/extending.rst:16 +#: faq/extending.rst:16 msgid "Can I create my own functions in C?" msgstr "Puis-je créer mes propres fonctions en C ?" -#: ../Doc/faq/extending.rst:18 +#: faq/extending.rst:18 msgid "" "Yes, you can create built-in modules containing functions, variables, " "exceptions and even new types in C. This is explained in the document :ref:" @@ -36,22 +37,22 @@ msgstr "" "variables, des exceptions et même de nouveaux types en C. Ceci est expliqué " "dans le document :ref:`extending-index`." -#: ../Doc/faq/extending.rst:22 +#: faq/extending.rst:22 msgid "Most intermediate or advanced Python books will also cover this topic." msgstr "" "La plupart des livres Python intermédiaires ou avancés couvrent également ce " "sujet." -#: ../Doc/faq/extending.rst:26 +#: faq/extending.rst:26 msgid "Can I create my own functions in C++?" msgstr "Puis-je créer mes propres fonctions en C++ ?" -#: ../Doc/faq/extending.rst:28 +#: faq/extending.rst:28 msgid "" -"Yes, using the C compatibility features found in C++. Place ``extern \"C" -"\" { ... }`` around the Python include files and put ``extern \"C\"`` before " -"each function that is going to be called by the Python interpreter. Global " -"or static C++ objects with constructors are probably not a good idea." +"Yes, using the C compatibility features found in C++. Place ``extern " +"\"C\" { ... }`` around the Python include files and put ``extern \"C\"`` " +"before each function that is going to be called by the Python interpreter. " +"Global or static C++ objects with constructors are probably not a good idea." msgstr "" "Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. " "Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez " @@ -59,11 +60,11 @@ msgstr "" "l'interpréteur Python. Les objets C++ globaux ou statiques avec les " "constructeurs ne sont probablement pas une bonne idée." -#: ../Doc/faq/extending.rst:37 +#: faq/extending.rst:37 msgid "Writing C is hard; are there any alternatives?" msgstr "Écrire directement en C est difficile ; existe-t-il des alternatives ?" -#: ../Doc/faq/extending.rst:39 +#: faq/extending.rst:39 msgid "" "There are a number of alternatives to writing your own C extensions, " "depending on what you're trying to do." @@ -71,7 +72,7 @@ msgstr "" "Il y a un certain nombre de solutions existantes qui vous permettent " "d'écrire vos propres extensions C, selon ce que vous essayez de faire." -#: ../Doc/faq/extending.rst:44 +#: faq/extending.rst:44 msgid "" "`Cython `_ and its relative `Pyrex `_ are compilers that accept a " @@ -85,7 +86,7 @@ msgstr "" "correspondant. Cython et Pyrex permettent d'écrire une extension sans avoir " "à connaître l'API C de Python." -#: ../Doc/faq/extending.rst:50 +#: faq/extending.rst:50 msgid "" "If you need to interface to some C or C++ library for which no Python " "extension currently exists, you can try wrapping the library's data types " @@ -104,12 +105,12 @@ msgstr "" "`Weave `_ sont également des alternatives " "pour encapsuler des bibliothèques C++." -#: ../Doc/faq/extending.rst:61 +#: faq/extending.rst:61 msgid "How can I execute arbitrary Python statements from C?" msgstr "" "Comment puis-je exécuter des instructions quelconques Python à partir de C ?" -#: ../Doc/faq/extending.rst:63 +#: faq/extending.rst:63 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 " @@ -126,12 +127,12 @@ msgstr "" "`PyRun_String` ; voir le code source pour :c:func:`PyRun_SimpleString` dans " "``Python/pythonrun.c``." -#: ../Doc/faq/extending.rst:72 +#: faq/extending.rst:72 msgid "How can I evaluate an arbitrary Python expression from C?" msgstr "" "Comment puis-je évaluer une expression quelconque de Python à partir de C ?" -#: ../Doc/faq/extending.rst:74 +#: faq/extending.rst:74 msgid "" "Call the function :c:func:`PyRun_String` from the previous question with the " "start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " @@ -141,11 +142,11 @@ msgstr "" "symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, " "l'évalue et renvoie sa valeur." -#: ../Doc/faq/extending.rst:80 +#: faq/extending.rst:80 msgid "How do I extract C values from a Python object?" msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" -#: ../Doc/faq/extending.rst:82 +#: faq/extending.rst:82 msgid "" "That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " "returns its length and :c:func:`PyTuple_GetItem` returns the item at a " @@ -157,7 +158,7 @@ msgstr "" "spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` et :" "c:func:`PyList_GetItem`." -#: ../Doc/faq/extending.rst:87 +#: faq/extending.rst:87 msgid "" "For bytes, :c:func:`PyBytes_Size` returns its length and :c:func:" "`PyBytes_AsStringAndSize` provides a pointer to its value and its length. " @@ -169,17 +170,17 @@ msgstr "" "Notez que les objets bytes en Python peuvent contenir des valeurs nulles, " "c'est pourquoi il ne faut pas utiliser la fonction C :c:func:`strlen`." -#: ../Doc/faq/extending.rst:92 +#: faq/extending.rst:92 msgid "" -"To test the type of an object, first make sure it isn't *NULL*, and then " +"To test the type of an object, first make sure it isn't ``NULL``, and then " "use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" "`PyList_Check`, etc." msgstr "" -"Pour tester le type d'un objet, assurez-vous d'abord qu'il n'est pas *NULL*, " -"puis utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:" -"`PyList_Check`, etc." +"Pour tester le type d'un objet, assurez-vous d'abord qu'il ne soit pas " +"``NULL``, puis utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:" +"func:`PyList_Check`, etc." -#: ../Doc/faq/extending.rst:95 +#: faq/extending.rst:95 msgid "" "There is also a high-level API to Python objects which is provided by the so-" "called 'abstract' interface -- read ``Include/abstract.h`` for further " @@ -196,20 +197,20 @@ msgstr "" "tels que les nombres (:c:func:`PyNumber_Index` et autres) et les " "correspondances dans les APIs PyMapping." -#: ../Doc/faq/extending.rst:104 +#: faq/extending.rst:104 msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" msgstr "" "Comment utiliser Py_BuildValue() pour créer un tuple de longueur définie ?" -#: ../Doc/faq/extending.rst:106 +#: faq/extending.rst:106 msgid "You can't. Use :c:func:`PyTuple_Pack` instead." msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." -#: ../Doc/faq/extending.rst:110 +#: faq/extending.rst:110 msgid "How do I call an object's method from C?" msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" -#: ../Doc/faq/extending.rst:112 +#: faq/extending.rst:112 msgid "" "The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " "method of an object. The parameters are the object, the name of the method " @@ -221,7 +222,7 @@ msgstr "" "appeler, une chaîne de caractères comme celle utilisée pour :c:func:" "`Py_BuildValue` et les valeurs des arguments ::" -#: ../Doc/faq/extending.rst:121 +#: faq/extending.rst:121 msgid "" "This works for any object that has methods -- whether built-in or user-" "defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " @@ -231,7 +232,7 @@ msgstr "" "intégrées ou définies par l'utilisateur. Vous êtes responsable de « :c:func:" "`Py_DECREF`\\ *er* » la valeur de retour à la fin." -#: ../Doc/faq/extending.rst:124 +#: faq/extending.rst:124 msgid "" "To call, e.g., a file object's \"seek\" method with arguments 10, 0 " "(assuming the file object pointer is \"f\")::" @@ -239,7 +240,7 @@ msgstr "" "Pour appeler, p. ex., la méthode *seek* d'un objet *file* avec les arguments " "10, 0 (en supposant que le pointeur de l'objet fichier est *f*) ::" -#: ../Doc/faq/extending.rst:135 +#: faq/extending.rst:135 msgid "" "Note that since :c:func:`PyObject_CallObject` *always* wants a tuple for the " "argument list, to call a function without arguments, pass \"()\" for the " @@ -251,7 +252,7 @@ msgstr "" "\"()\" pour être conforme au type et, pour appeler une fonction avec un " "paramètre, entourez-le de parenthèses, p. ex. \"(i)\"." -#: ../Doc/faq/extending.rst:142 +#: faq/extending.rst:142 msgid "" "How do I catch the output from PyErr_Print() (or anything that prints to " "stdout/stderr)?" @@ -259,7 +260,7 @@ msgstr "" "Comment puis-je récupérer la sortie de ``PyErr_Print()`` (ou tout ce qui " "s'affiche sur *stdout*/*stderr*) ?" -#: ../Doc/faq/extending.rst:144 +#: faq/extending.rst:144 msgid "" "In Python code, define an object that supports the ``write()`` method. " "Assign this object to :data:`sys.stdout` and :data:`sys.stderr`. Call " @@ -272,25 +273,25 @@ msgstr "" "remontée des erreurs fonctionne. Ensuite, la sortie sera dirigée vers " "l'endroit où votre méthode ``write()`` écrit." -#: ../Doc/faq/extending.rst:149 +#: faq/extending.rst:149 msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" msgstr "" "La façon la plus simple consiste à utiliser la classe :class:`io.StringIO` :" -#: ../Doc/faq/extending.rst:161 +#: faq/extending.rst:161 msgid "A custom object to do the same would look like this:" msgstr "" "Le code d'un objet à la fonctionnalité similaire ressemblerait à ceci :" -#: ../Doc/faq/extending.rst:182 +#: faq/extending.rst:182 msgid "How do I access a module written in Python from C?" msgstr "Comment accéder à un module écrit en Python à partir de C ?" -#: ../Doc/faq/extending.rst:184 +#: faq/extending.rst:184 msgid "You can get a pointer to the module object as follows::" msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" -#: ../Doc/faq/extending.rst:188 +#: faq/extending.rst:188 msgid "" "If the module hasn't been imported yet (i.e. it is not yet present in :data:" "`sys.modules`), this initializes the module; otherwise it simply returns the " @@ -305,7 +306,7 @@ msgstr "" "seulement qu'il a été initialisé et qu'il est stocké dans :data:`sys." "modules`." -#: ../Doc/faq/extending.rst:194 +#: faq/extending.rst:194 msgid "" "You can then access the module's attributes (i.e. any name defined in the " "module) as follows::" @@ -313,7 +314,7 @@ msgstr "" "Vous pouvez alors accéder aux attributs du module (c.-à-d. à tout nom défini " "dans le module) comme suit ::" -#: ../Doc/faq/extending.rst:199 +#: faq/extending.rst:199 msgid "" "Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " "module also works." @@ -321,11 +322,11 @@ msgstr "" "Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux " "variables du module fonctionne également." -#: ../Doc/faq/extending.rst:204 +#: faq/extending.rst:204 msgid "How do I interface to C++ objects from Python?" msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" -#: ../Doc/faq/extending.rst:206 +#: faq/extending.rst:206 msgid "" "Depending on your requirements, there are many approaches. To do this " "manually, begin by reading :ref:`the \"Extending and Embedding\" document " @@ -335,23 +336,23 @@ msgid "" "work for C++ objects." msgstr "" "Selon vos besoins, de nombreuses approches sont possibles. Pour le faire " -"manuellement, commencez par lire :ref:`le document \"Extension et intégration" -"\" `. Sachez que pour le système d'exécution Python, il n'y " -"a pas beaucoup de différence entre C et C++ — donc la méthode pour " -"construire un nouveau type Python à partir d'une structure C (pointeur) " +"manuellement, commencez par lire :ref:`le document \"Extension et " +"intégration\" `. Sachez que pour le système d'exécution " +"Python, il n'y a pas beaucoup de différence entre C et C++ — donc la méthode " +"pour construire un nouveau type Python à partir d'une structure C (pointeur) " "fonctionne également avec des objets en C++." -#: ../Doc/faq/extending.rst:212 +#: faq/extending.rst:212 msgid "For C++ libraries, see :ref:`c-wrapper-software`." msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." -#: ../Doc/faq/extending.rst:216 +#: faq/extending.rst:216 msgid "I added a module using the Setup file and the make fails; why?" msgstr "" "J'ai ajouté un module en utilisant le fichier *Setup* et la compilation " "échoue ; pourquoi ?" -#: ../Doc/faq/extending.rst:218 +#: faq/extending.rst:218 msgid "" "Setup must end in a newline, if there is no newline there, the build process " "fails. (Fixing this requires some ugly shell script hackery, and this bug " @@ -362,11 +363,11 @@ msgstr "" "en bidouillant un script shell, et ce bogue est si mineur qu'il ne mérite " "pas qu'on s'y attarde)." -#: ../Doc/faq/extending.rst:224 +#: faq/extending.rst:224 msgid "How do I debug an extension?" msgstr "Comment déboguer une extension ?" -#: ../Doc/faq/extending.rst:226 +#: faq/extending.rst:226 msgid "" "When using GDB with dynamically loaded extensions, you can't set a " "breakpoint in your extension until your extension is loaded." @@ -375,16 +376,16 @@ msgstr "" "ne pouvez pas placer de point d'arrêt dans votre extension tant que celle-ci " "n'est pas chargée." -#: ../Doc/faq/extending.rst:229 +#: faq/extending.rst:229 msgid "In your ``.gdbinit`` file (or interactively), add the command:" msgstr "" "Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :" -#: ../Doc/faq/extending.rst:235 +#: faq/extending.rst:235 msgid "Then, when you run GDB:" msgstr "Ensuite, lorsque vous exécutez GDB :" -#: ../Doc/faq/extending.rst:247 +#: faq/extending.rst:247 msgid "" "I want to compile a Python module on my Linux system, but some files are " "missing. Why?" @@ -392,7 +393,7 @@ msgstr "" "Je veux compiler un module Python sur mon système Linux, mais il manque " "certains fichiers. Pourquoi ?" -#: ../Doc/faq/extending.rst:249 +#: faq/extending.rst:249 msgid "" "Most packaged versions of Python don't include the :file:`/usr/lib/python2." "{x}/config/` directory, which contains various files required for compiling " @@ -402,23 +403,23 @@ msgstr "" "répertoire :file:`/usr/lib/python2.{x}/config/`, qui contient les différents " "fichiers nécessaires à la compilation des extensions Python." -#: ../Doc/faq/extending.rst:253 +#: faq/extending.rst:253 msgid "For Red Hat, install the python-devel RPM to get the necessary files." msgstr "" "Pour Red Hat, installez le RPM *python-devel* pour obtenir les fichiers " "nécessaires." -#: ../Doc/faq/extending.rst:255 +#: faq/extending.rst:255 msgid "For Debian, run ``apt-get install python-dev``." msgstr "Pour Debian, exécutez ``apt-get install python-dev``." -#: ../Doc/faq/extending.rst:259 +#: faq/extending.rst:259 msgid "How do I tell \"incomplete input\" from \"invalid input\"?" msgstr "" "Comment distinguer une « entrée incomplète » (*incomplete input*) d'une " "« entrée invalide » (*invalid input*) ?" -#: ../Doc/faq/extending.rst:261 +#: faq/extending.rst:261 msgid "" "Sometimes you want to emulate the Python interactive interpreter's behavior, " "where it gives you a continuation prompt when the input is incomplete (e.g. " @@ -432,7 +433,7 @@ msgstr "" "vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous " "renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte." -#: ../Doc/faq/extending.rst:267 +#: faq/extending.rst:267 msgid "" "In Python you can use the :mod:`codeop` module, which approximates the " "parser's behavior sufficiently. IDLE uses this, for example." @@ -440,7 +441,7 @@ msgstr "" "En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche " "assez du comportement de l'analyseur. Par exemple, IDLE l'utilise." -#: ../Doc/faq/extending.rst:270 +#: faq/extending.rst:270 msgid "" "The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " "(perhaps in a separate thread) and let the Python interpreter handle the " @@ -455,7 +456,7 @@ msgstr "" "fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et ``Parser/" "myreadline.c`` pour plus de conseils." -#: ../Doc/faq/extending.rst:276 +#: faq/extending.rst:276 msgid "" "However sometimes you have to run the embedded Python interpreter in the " "same thread as your rest application and you can't allow the :c:func:" @@ -472,34 +473,34 @@ msgstr "" "incomplète. Voici un exemple de code, non testé, inspiré d'un code écrit par " "Alex Farber ::" -#: ../Doc/faq/extending.rst:310 +#: faq/extending.rst:310 msgid "" "Another solution is trying to compile the received string with :c:func:" "`Py_CompileString`. If it compiles without errors, try to execute the " "returned code object by calling :c:func:`PyEval_EvalCode`. Otherwise save " "the input for later. If the compilation fails, find out if it's an error or " "just more input is required - by extracting the message string from the " -"exception tuple and comparing it to the string \"unexpected EOF while parsing" -"\". Here is a complete example using the GNU readline library (you may want " -"to ignore **SIGINT** while calling readline())::" +"exception tuple and comparing it to the string \"unexpected EOF while " +"parsing\". Here is a complete example using the GNU readline library (you " +"may want to ignore **SIGINT** while calling readline())::" msgstr "" "Une autre solution est d'essayer de compiler la chaîne reçue avec :c:func:" "`Py_CompileString`. Si cela se compile sans erreur, essayez d'exécuter " "l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. Sinon, " "enregistrez l'entrée pour plus tard. Si la compilation échoue, vérifiez s'il " "s'agit d'une erreur ou s'il faut juste plus de données — en extrayant la " -"chaîne de message du tuple d'exception et en la comparant à la chaîne *" -"\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation de " -"la bibliothèque *readline* de GNU (il vous est possible d'ignorer **SIGINT** " -"lors de l'appel à ``readline()``) ::" +"chaîne de message du tuple d'exception et en la comparant à la chaîne " +"*\"unexpected EOF while parsing\"*. Voici un exemple complet d'utilisation " +"de la bibliothèque *readline* de GNU (il vous est possible d'ignorer " +"**SIGINT** lors de l'appel à ``readline()``) ::" -#: ../Doc/faq/extending.rst:432 +#: faq/extending.rst:432 msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" msgstr "" "Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou " "``__pure_virtual`` ?" -#: ../Doc/faq/extending.rst:434 +#: faq/extending.rst:434 msgid "" "To dynamically load g++ extension modules, you must recompile Python, relink " "it using g++ (change LINKCC in the Python Modules Makefile), and link your " @@ -511,7 +512,7 @@ msgstr "" "de votre module d'extension avec g++ (par exemple, ``g++ -shared -o mymodule." "so mymodule.o``)." -#: ../Doc/faq/extending.rst:440 +#: faq/extending.rst:440 msgid "" "Can I create an object class with some methods implemented in C and others " "in Python (e.g. through inheritance)?" @@ -519,7 +520,7 @@ msgstr "" "Puis-je créer une classe d'objets avec certaines méthodes implémentées en C " "et d'autres en Python (p. ex. en utilisant l'héritage) ?" -#: ../Doc/faq/extending.rst:442 +#: faq/extending.rst:442 msgid "" "Yes, you can inherit from built-in classes such as :class:`int`, :class:" "`list`, :class:`dict`, etc." @@ -527,7 +528,7 @@ msgstr "" "Oui, vous pouvez hériter de classes intégrées telles que :class:`int`, :" "class:`list`, :class:`dict`, etc." -#: ../Doc/faq/extending.rst:445 +#: faq/extending.rst:445 msgid "" "The Boost Python Library (BPL, http://www.boost.org/libs/python/doc/index." "html) provides a way of doing this from C++ (i.e. you can inherit from an " diff --git a/faq/general.po b/faq/general.po index 2daac6bc30..90da9e6bb0 100644 --- a/faq/general.po +++ b/faq/general.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-10 09:35+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-10-20 23:42+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -15,45 +15,49 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/faq/general.rst:5 +#: faq/general.rst:5 msgid "General Python FAQ" msgstr "FAQ générale sur Python" -#: ../Doc/faq/general.rst:8 +#: faq/general.rst:8 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/general.rst:13 +#: faq/general.rst:13 msgid "General Information" msgstr "Informations générales" -#: ../Doc/faq/general.rst:16 +#: faq/general.rst:16 msgid "What is Python?" msgstr "Qu'est-ce que Python ?" -#: ../Doc/faq/general.rst:18 +#: faq/general.rst:18 msgid "" "Python is an interpreted, interactive, object-oriented programming " "language. It incorporates modules, exceptions, dynamic typing, very high " -"level dynamic data types, and classes. Python combines remarkable power " -"with very clear syntax. It has interfaces to many system calls and " -"libraries, as well as to various window systems, and is extensible in C or C+" -"+. It is also usable as an extension language for applications that need a " -"programmable interface. Finally, Python is portable: it runs on many Unix " -"variants, on the Mac, and on Windows 2000 and later." -msgstr "" -"Python est un langage de programmation interprété, interactif, orienté " -"objet. Il incorpore des modules, des exceptions, un typage dynamique et des " -"classes. Python combine une puissance incroyable et une syntaxe très claire. " -"Il dispose de liens avec de nombreuses interfaces de programmation pour " -"systèmes d'exploitation et bibliothèques, ainsi que divers systèmes " -"d'interfaces graphiques, et il peut être étendu grâce au C ou C++. Il est " -"aussi utilisable comme langage d'extension (script) pour les logiciels qui " -"nécessitent une interface de programmation. Enfin, Python est portable : il " -"fonctionne sur multiples variantes Unix, sur Mac, ainsi que sur Windows 2000 " -"et versions supérieures." - -#: ../Doc/faq/general.rst:27 +"level dynamic data types, and classes. It supports multiple programming " +"paradigms beyond object-oriented programming, such as procedural and " +"functional programming. Python combines remarkable power with very clear " +"syntax. It has interfaces to many system calls and libraries, as well as to " +"various window systems, and is extensible in C or C++. It is also usable as " +"an extension language for applications that need a programmable interface. " +"Finally, Python is portable: it runs on many Unix variants including Linux " +"and macOS, and on Windows." +msgstr "" +"Python est un langage de programmation interprété, interactif et orienté " +"objet. Il intègre des modules, des exceptions, un typage dynamique, des " +"types de données dynamiques de très haut niveau et des classes. Il gère de " +"multiples paradigmes de programmation au-delà de la programmation orientée " +"objet, tels que la programmation procédurale et fonctionnelle. Python " +"combine une puissance remarquable avec une syntaxe très claire. Il possède " +"des interfaces avec de nombreux appels système et bibliothèques, ainsi " +"qu'avec divers systèmes d'interfaces graphiques, et il peut être étendu avec " +"du C ou du C++. Il est également utilisable comme langage d'extension pour " +"les applications qui nécessitent une interface de programmation. Enfin, " +"Python est portable : il fonctionne sur de nombreuses variantes d'Unix, y " +"compris Linux et macOS, et sur Windows." + +#: faq/general.rst:28 msgid "" "To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide " "to Python `_ links to other " @@ -64,11 +68,11 @@ msgstr "" "renvoie vers d'autres tutoriels et ressources d'initiation pour apprendre " "Python." -#: ../Doc/faq/general.rst:33 +#: faq/general.rst:34 msgid "What is the Python Software Foundation?" msgstr "Qu'est ce que la Python Software Foundation ?" -#: ../Doc/faq/general.rst:35 +#: faq/general.rst:36 msgid "" "The Python Software Foundation is an independent non-profit organization " "that holds the copyright on Python versions 2.1 and newer. The PSF's " @@ -83,7 +87,7 @@ msgstr "" "promouvoir son utilisation. Le page d'accueil de la PSF se trouve à " "l'adresse suivante : https://www.python.org/psf/." -#: ../Doc/faq/general.rst:41 +#: faq/general.rst:42 msgid "" "Donations to the PSF are tax-exempt in the US. If you use Python and find " "it helpful, please contribute via `the PSF donation page `_." -#: ../Doc/faq/general.rst:47 +#: faq/general.rst:48 msgid "Are there copyright restrictions on the use of Python?" msgstr "" "Existe-il des restrictions liées à la propriété intellectuelle quant à " "l'utilisation de Python ?" -#: ../Doc/faq/general.rst:49 +#: faq/general.rst:50 msgid "" "You can do anything you want with the source, as long as you leave the " "copyrights in and display those copyrights in any documentation about Python " @@ -118,7 +122,7 @@ msgstr "" "souhaiterions avoir connaissance de tous les projets commerciaux utilisant " "Python." -#: ../Doc/faq/general.rst:56 +#: faq/general.rst:57 msgid "" "See `the PSF license page `_ to find " "further explanations and a link to the full text of the license." @@ -127,7 +131,7 @@ msgstr "" "license/>`_ pour trouver davantage d'informations et un lien vers la version " "intégrale de la licence d'utilisation." -#: ../Doc/faq/general.rst:59 +#: faq/general.rst:60 msgid "" "The Python logo is trademarked, and in certain cases permission is required " "to use it. Consult `the Trademark Usage Policy `__ pour " "plus d'informations." -#: ../Doc/faq/general.rst:65 +#: faq/general.rst:66 msgid "Why was Python created in the first place?" msgstr "Pourquoi Python a été créé ?" -#: ../Doc/faq/general.rst:67 +#: faq/general.rst:68 msgid "" "Here's a *very* brief summary of what started it all, written by Guido van " "Rossum:" @@ -150,7 +154,7 @@ msgstr "" "Voici un *très* bref résumé de comment tout a commencé, écrit par Guido van " "Rossum (puis traduit en français) :" -#: ../Doc/faq/general.rst:70 +#: faq/general.rst:71 msgid "" "I had extensive experience with implementing an interpreted language in the " "ABC group at CWI, and from working with this group I had learned a lot about " @@ -165,7 +169,7 @@ msgstr "" "groupement et l'inclusion de types de très haut niveau (bien que dans les " "détails ils soient tous différents dans Python)." -#: ../Doc/faq/general.rst:77 +#: faq/general.rst:78 msgid "" "I had a number of gripes about the ABC language, but also liked many of its " "features. It was impossible to extend the ABC language (or its " @@ -184,7 +188,7 @@ msgstr "" "à l'origine de la syntaxe et de la sémantique utilisée pour les exceptions, " "et quelques autres fonctionnalités en Python." -#: ../Doc/faq/general.rst:85 +#: faq/general.rst:86 msgid "" "I was working in the Amoeba distributed operating system group at CWI. We " "needed a better way to do system administration than by writing either C " @@ -202,7 +206,7 @@ msgstr "" "de l'importance des exceptions en tant que fonctionnalité d'un langage de " "programmation." -#: ../Doc/faq/general.rst:92 +#: faq/general.rst:93 msgid "" "It occurred to me that a scripting language with a syntax like ABC but with " "access to the Amoeba system calls would fill the need. I realized that it " @@ -215,7 +219,7 @@ msgstr "" "j'ai décidé que j'avais besoin d'un langage qui serait généralement " "extensible." -#: ../Doc/faq/general.rst:97 +#: faq/general.rst:98 msgid "" "During the 1989 Christmas holidays, I had a lot of time on my hand, so I " "decided to give it a try. During the next year, while still mostly working " @@ -229,7 +233,7 @@ msgstr "" "projet Amoeba avec un succès croissant, et les retours de mes collègues " "m'ont permis d'ajouter beaucoup des premières améliorations." -#: ../Doc/faq/general.rst:103 +#: faq/general.rst:104 msgid "" "In February 1991, after just over a year of development, I decided to post " "to USENET. The rest is in the ``Misc/HISTORY`` file." @@ -238,11 +242,11 @@ msgstr "" "décidé de le poster sur USENET. Le reste se trouve dans le fichier « Misc/" "HISTORY »." -#: ../Doc/faq/general.rst:108 +#: faq/general.rst:109 msgid "What is Python good for?" msgstr "Pour quoi Python est-il fait ?" -#: ../Doc/faq/general.rst:110 +#: faq/general.rst:111 msgid "" "Python is a high-level general-purpose programming language that can be " "applied to many different classes of problems." @@ -250,7 +254,7 @@ msgstr "" "Python est un langage de programmation haut niveau généraliste qui peut être " "utilisé pour pallier à différents problèmes." -#: ../Doc/faq/general.rst:113 +#: faq/general.rst:114 msgid "" "The language comes with a large standard library that covers areas such as " "string processing (regular expressions, Unicode, calculating differences " @@ -274,11 +278,11 @@ msgstr "" "Python `_ pour trouver les paquets qui pourraient vous " "intéresser." -#: ../Doc/faq/general.rst:125 +#: faq/general.rst:126 msgid "How does the Python version numbering scheme work?" msgstr "Comment fonctionne le numérotage des versions de Python ?" -#: ../Doc/faq/general.rst:127 +#: faq/general.rst:128 msgid "" "Python versions are numbered A.B.C or A.B. A is the major version number -- " "it is only incremented for really major changes in the language. B is the " @@ -292,7 +296,7 @@ msgstr "" "lors de changements de moindre importance. C est un micro-niveau -- elle est " "augmentée à chaque sortie de correctifs de bogue." -#: ../Doc/faq/general.rst:133 +#: faq/general.rst:134 msgid "" "Not all releases are bugfix releases. In the run-up to a new major release, " "a series of development releases are made, denoted as alpha, beta, or " @@ -312,7 +316,7 @@ msgstr "" "modules, les *release candidate* sont figées, elles ne font aucun changement " "à l'exception de ceux nécessaires pour corriger des bogues critiques." -#: ../Doc/faq/general.rst:141 +#: faq/general.rst:142 msgid "" "Alpha, beta and release candidate versions have an additional suffix. The " "suffix for an alpha version is \"aN\" for some small number N, the suffix " @@ -329,7 +333,7 @@ msgstr "" "précèdent les versions *2.0.bN*, qui elles-mêmes précèdent 2.0cN, et *celles-" "ci* précèdent la version 2.0." -#: ../Doc/faq/general.rst:148 +#: faq/general.rst:149 msgid "" "You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These " "are unreleased versions, built directly from the CPython development " @@ -343,7 +347,7 @@ msgstr "" "finale d'une version mineure, la version est augmentée à la prochaine " "version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*." -#: ../Doc/faq/general.rst:153 +#: faq/general.rst:154 msgid "" "See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, " "and :data:`sys.version_info`." @@ -351,11 +355,11 @@ msgstr "" "Voir aussi la documentation pour for :data:`sys.version`, :data:`sys." "hexversion`, et :data:`sys.version_info`." -#: ../Doc/faq/general.rst:158 +#: faq/general.rst:159 msgid "How do I obtain a copy of the Python source?" msgstr "Comment obtenir une copie du code source de Python ?" -#: ../Doc/faq/general.rst:160 +#: faq/general.rst:161 msgid "" "The latest Python source distribution is always available from python.org, " "at https://www.python.org/downloads/. The latest development sources can be " @@ -366,7 +370,7 @@ msgstr "" "dernière version en développement peut être obtenue à https://github.com/" "python/cpython/." -#: ../Doc/faq/general.rst:164 +#: faq/general.rst:165 msgid "" "The source distribution is a gzipped tar file containing the complete C " "source, Sphinx-formatted documentation, Python library modules, example " @@ -379,7 +383,7 @@ msgstr "" "utiles distribuables librement. Le code source sera compilé et prêt à " "fonctionner immédiatement sur la plupart des plateformes UNIX." -#: ../Doc/faq/general.rst:169 +#: faq/general.rst:170 msgid "" "Consult the `Getting Started section of the Python Developer's Guide " "`__ for more information on getting the " @@ -389,11 +393,11 @@ msgstr "" "devguide.python.org/setup/>`__ pour plus d'informations sur comment obtenir " "le code source et le compiler." -#: ../Doc/faq/general.rst:175 +#: faq/general.rst:176 msgid "How do I get documentation on Python?" msgstr "Comment obtenir la documentation de Python ?" -#: ../Doc/faq/general.rst:179 +#: faq/general.rst:180 msgid "" "The standard documentation for the current stable version of Python is " "available at https://docs.python.org/3/. PDF, plain text, and downloadable " @@ -403,7 +407,7 @@ msgstr "" "https://docs.python.org/3/. Des versions aux formats PDF, texte et HTML " "sont aussi disponibles à https://docs.python.org/3/download.html." -#: ../Doc/faq/general.rst:183 +#: faq/general.rst:184 msgid "" "The documentation is written in reStructuredText and processed by `the " "Sphinx documentation tool `__. The reStructuredText " @@ -414,11 +418,11 @@ msgstr "" "*reStructuredText* pour la documentation constitue une partie des sources de " "Python." -#: ../Doc/faq/general.rst:189 +#: faq/general.rst:190 msgid "I've never programmed before. Is there a Python tutorial?" msgstr "Je n'ai jamais programmé avant. Existe t-il un tutoriel Python ?" -#: ../Doc/faq/general.rst:191 +#: faq/general.rst:192 msgid "" "There are numerous tutorials and books available. The standard " "documentation includes :ref:`tutorial-index`." @@ -426,7 +430,7 @@ msgstr "" "Il y a de nombreux tutoriels et livres disponibles. La documentation " "standard inclut :ref:`tutorial-index`." -#: ../Doc/faq/general.rst:194 +#: faq/general.rst:195 msgid "" "Consult `the Beginner's Guide `_ to find information for beginning Python programmers, " @@ -436,11 +440,11 @@ msgstr "" "BeginnersGuide>`_ afin de trouver des informations pour les développeurs " "Python débutants, incluant une liste de tutoriels." -#: ../Doc/faq/general.rst:199 +#: faq/general.rst:200 msgid "Is there a newsgroup or mailing list devoted to Python?" msgstr "Y a-t-il un forum ou une liste de diffusion dédié à Python ?" -#: ../Doc/faq/general.rst:201 +#: faq/general.rst:202 msgid "" "There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, " "`python-list `_. The " @@ -457,7 +461,7 @@ msgstr "" "des centaines de messages chaque jour, et les lecteurs du réseau Usenet sont " "souvent plus capables de faire face à ce volume." -#: ../Doc/faq/general.rst:208 +#: faq/general.rst:209 msgid "" "Announcements of new software releases and events can be found in comp.lang." "python.announce, a low-traffic moderated list that receives about five " @@ -470,7 +474,7 @@ msgstr "" "des annonces Python `_." -#: ../Doc/faq/general.rst:213 +#: faq/general.rst:214 msgid "" "More info about other mailing lists and newsgroups can be found at https://" "www.python.org/community/lists/." @@ -478,11 +482,11 @@ msgstr "" "Plus d'informations à propos des autres listes de diffusion et forums " "peuvent être trouvées à https://www.python.org/community/lists/." -#: ../Doc/faq/general.rst:218 +#: faq/general.rst:219 msgid "How do I get a beta test version of Python?" msgstr "Comment obtenir une version bêta test de Python ?" -#: ../Doc/faq/general.rst:220 +#: faq/general.rst:221 msgid "" "Alpha and beta releases are available from https://www.python.org/" "downloads/. All releases are announced on the comp.lang.python and comp." @@ -495,7 +499,7 @@ msgstr "" "de Python à https://www.python.org/; un flux RSS d'actualités y est aussi " "disponible." -#: ../Doc/faq/general.rst:225 +#: faq/general.rst:226 msgid "" "You can also access the development version of Python through Git. See `The " "Python Developer's Guide `_ for details." @@ -504,11 +508,11 @@ msgstr "" "`Le Guide du Développeur Python `_ pour plus " "de détails." -#: ../Doc/faq/general.rst:230 +#: faq/general.rst:231 msgid "How do I submit bug reports and patches for Python?" msgstr "Comment soumettre un rapport de bogues ou un correctif pour Python ?" -#: ../Doc/faq/general.rst:232 +#: faq/general.rst:233 msgid "" "To report a bug or submit a patch, please use the Roundup installation at " "https://bugs.python.org/." @@ -516,7 +520,7 @@ msgstr "" "Pour reporter un bogue ou soumettre un correctif, merci d'utiliser https://" "bugs.python.org/." -#: ../Doc/faq/general.rst:235 +#: faq/general.rst:236 msgid "" "You must have a Roundup account to report bugs; this makes it possible for " "us to contact you if we have follow-up questions. It will also enable " @@ -533,7 +537,7 @@ msgstr "" "réinitialisation de mot de passe de Roundup `_." -#: ../Doc/faq/general.rst:241 +#: faq/general.rst:242 msgid "" "For more information on how Python is developed, consult `the Python " "Developer's Guide `_." @@ -541,19 +545,19 @@ msgstr "" "Pour davantage d'informations sur comment Python est développé, consultez " "`le Guide du Développeur Python `_." -#: ../Doc/faq/general.rst:246 +#: faq/general.rst:247 msgid "Are there any published articles about Python that I can reference?" msgstr "" "Existe-t-il des articles publiés au sujet de Python auxquels je peux me " "référer ?" -#: ../Doc/faq/general.rst:248 +#: faq/general.rst:249 msgid "It's probably best to cite your favorite book about Python." msgstr "" "C'est probablement mieux de vous référer à votre livre favori à propos de " "Python." -#: ../Doc/faq/general.rst:250 +#: faq/general.rst:251 msgid "" "The very first article about Python was written in 1991 and is now quite " "outdated." @@ -561,7 +565,7 @@ msgstr "" "Le tout premier article à propos de Python a été écrit en 1991 et est " "maintenant obsolète." -#: ../Doc/faq/general.rst:253 +#: faq/general.rst:254 msgid "" "Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers " "Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 " @@ -571,11 +575,11 @@ msgstr "" "Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 " "(December 1991), Amsterdam, pp 283--303." -#: ../Doc/faq/general.rst:259 +#: faq/general.rst:260 msgid "Are there any books on Python?" msgstr "Y a-t-il des livres au sujet de Python ?" -#: ../Doc/faq/general.rst:261 +#: faq/general.rst:262 msgid "" "Yes, there are many, and more are being published. See the python.org wiki " "at https://wiki.python.org/moin/PythonBooks for a list." @@ -583,7 +587,7 @@ msgstr "" "Oui, il y en a beaucoup, et d'autres sont en cours de publication. Voir le " "wiki python à https://wiki.python.org/moin/PythonBooks pour avoir une liste." -#: ../Doc/faq/general.rst:264 +#: faq/general.rst:265 msgid "" "You can also search online bookstores for \"Python\" and filter out the " "Monty Python references; or perhaps search for \"Python\" and \"language\"." @@ -592,11 +596,11 @@ msgstr "" "terme « Python » et éliminer les références concernant les Monty Python, ou " "peut-être faire une recherche avec les termes « langage » et « Python »." -#: ../Doc/faq/general.rst:269 +#: faq/general.rst:270 msgid "Where in the world is www.python.org located?" msgstr "Où www.python.org est-il localisé dans le monde ?" -#: ../Doc/faq/general.rst:271 +#: faq/general.rst:272 msgid "" "The Python project's infrastructure is located all over the world and is " "managed by the Python Infrastructure Team. Details `here `__." -#: ../Doc/faq/general.rst:276 +#: faq/general.rst:277 msgid "Why is it called Python?" msgstr "Pourquoi le nom Python ?" -#: ../Doc/faq/general.rst:278 +#: faq/general.rst:279 msgid "" "When he began implementing Python, Guido van Rossum was also reading the " "published scripts from `\"Monty Python's Flying Circus\" `_. There are two production-ready " @@ -684,19 +688,19 @@ msgstr "" "maintenu après le 1er janvier 2020 `_." -#: ../Doc/faq/general.rst:315 +#: faq/general.rst:316 msgid "How many people are using Python?" msgstr "Combien de personnes utilisent Python ?" -#: ../Doc/faq/general.rst:317 +#: faq/general.rst:318 msgid "" -"There are probably tens of thousands of users, though it's difficult to " -"obtain an exact count." +"There are probably millions of users, though it's difficult to obtain an " +"exact count." msgstr "" -"Il y a probablement des dizaines de milliers d'utilisateurs, cependant c'est " -"difficile d'obtenir un nombre exact." +"Il y a probablement des millions d'utilisateurs, bien qu'il soit difficile " +"d'en déterminer le nombre exact." -#: ../Doc/faq/general.rst:320 +#: faq/general.rst:321 msgid "" "Python is available for free download, so there are no sales figures, and " "it's available from many different sites and packaged with many Linux " @@ -707,7 +711,7 @@ msgstr "" "il est inclus avec de beaucoup de distributions Linux, donc les statistiques " "de téléchargement ne donnent pas la totalité non plus." -#: ../Doc/faq/general.rst:324 +#: faq/general.rst:325 msgid "" "The comp.lang.python newsgroup is very active, but not all Python users post " "to the group or even read it." @@ -715,11 +719,11 @@ msgstr "" "Le forum *comp.lang.python* est très actif, mais tous les utilisateurs de " "Python ne laissent pas de messages dessus ou même ne le lisent pas." -#: ../Doc/faq/general.rst:329 +#: faq/general.rst:330 msgid "Have any significant projects been done in Python?" msgstr "Y a-t-il un nombre de projets significatif réalisés en Python ?" -#: ../Doc/faq/general.rst:331 +#: faq/general.rst:332 msgid "" "See https://www.python.org/about/success for a list of projects that use " "Python. Consulting the proceedings for `past Python conferences `_ and `the Zope application server `_." @@ -775,12 +779,12 @@ msgstr "" "Le nouveau développement est discuté sur `la liste de diffusion python-dev " "`_." -#: ../Doc/faq/general.rst:358 +#: faq/general.rst:359 msgid "Is it reasonable to propose incompatible changes to Python?" msgstr "" "Est-il raisonnable de proposer des changements incompatibles dans Python ?" -#: ../Doc/faq/general.rst:360 +#: faq/general.rst:361 msgid "" "In general, no. There are already millions of lines of Python code around " "the world, so any change in the language that invalidates more than a very " @@ -797,7 +801,7 @@ msgstr "" "documentations, beaucoup de livres ont été écrits au sujet de Python, et " "nous ne voulons pas les rendre invalides soudainement." -#: ../Doc/faq/general.rst:367 +#: faq/general.rst:368 msgid "" "Providing a gradual upgrade path is necessary if a feature has to be " "changed. :pep:`5` describes the procedure followed for introducing backward-" @@ -806,17 +810,17 @@ msgstr "" "En fournissant un rythme de mise à jour progressif qui est obligatoire si " "une fonctionnalité doit être changée." -#: ../Doc/faq/general.rst:373 +#: faq/general.rst:374 msgid "Is Python a good language for beginning programmers?" msgstr "" "Existe-t-il un meilleur langage de programmation pour les programmeurs " "débutants ?" -#: ../Doc/faq/general.rst:375 +#: faq/general.rst:376 msgid "Yes." msgstr "Oui." -#: ../Doc/faq/general.rst:377 +#: faq/general.rst:378 msgid "" "It is still common to start students with a procedural and statically typed " "language such as Pascal, C, or a subset of C++ or Java. Students may be " @@ -840,7 +844,7 @@ msgstr "" "peuvent même probablement travailler avec des objets définis dans leurs " "premiers cours." -#: ../Doc/faq/general.rst:387 +#: faq/general.rst:388 msgid "" "For a student who has never programmed before, using a statically typed " "language seems unnatural. It presents additional complexity that the " @@ -860,7 +864,7 @@ msgstr "" "terme, ce n'est pas nécessairement la meilleure idée pour s'adresser aux " "étudiants durant leur tout premier cours." -#: ../Doc/faq/general.rst:395 +#: faq/general.rst:396 msgid "" "Many other aspects of Python make it a good first language. Like Java, " "Python has a large standard library so that students can be assigned " @@ -883,7 +887,7 @@ msgstr "" "réutilisation de code. Les modules tiers tels que PyGame sont aussi très " "utiles pour étendre les compétences des étudiants." -#: ../Doc/faq/general.rst:404 +#: faq/general.rst:405 msgid "" "Python's interactive interpreter enables students to test language features " "while they're programming. They can keep a window with the interpreter " @@ -897,7 +901,7 @@ msgstr "" "souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme " "ça ::" -#: ../Doc/faq/general.rst:433 +#: faq/general.rst:434 msgid "" "With the interpreter, documentation is never far from the student as they " "are programming." @@ -905,7 +909,7 @@ msgstr "" "Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand " "ils travaillent." -#: ../Doc/faq/general.rst:436 +#: faq/general.rst:437 msgid "" "There are also good IDEs for Python. IDLE is a cross-platform IDE for " "Python that is written in Python using Tkinter. PythonWin is a Windows-" @@ -925,7 +929,7 @@ msgstr "" "`_ pour une liste complète des " "environnements de développement intégrés." -#: ../Doc/faq/general.rst:444 +#: faq/general.rst:445 msgid "" "If you want to discuss Python's use in education, you may be interested in " "joining `the edu-sig mailing list \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.6\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/faq/library.rst:5 msgid "Library and Extension FAQ" @@ -937,7 +937,7 @@ msgstr "" #: ../Doc/faq/library.rst:677 msgid "How can I mimic CGI form submission (METHOD=POST)?" -msgstr "Comment reproduire un envoi de formulaire CGI (METHOD=POST) ?" +msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?" #: ../Doc/faq/library.rst:679 msgid "" @@ -1167,7 +1167,7 @@ msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donné #: ../Doc/faq/library.rst:836 msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly" msgstr "" -"``shuffle(L)`` mélange une liste en-place, c-à-d lui applique une " +"``shuffle(L)`` mélange une liste en-place, c.-à-d. lui applique une " "permutation aléatoire" #: ../Doc/faq/library.rst:838 diff --git a/faq/programming.po b/faq/programming.po index 69e47fafec..855b0b5464 100644 --- a/faq/programming.po +++ b/faq/programming.po @@ -3,104 +3,90 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-09-16 10:52+0200\n" -"Last-Translator: Antoine Wecxsteen\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-30 17:14+0900\n" +"Last-Translator: Samuel Giffard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 2.3.1\n" -#: ../Doc/faq/programming.rst:5 +#: faq/programming.rst:5 msgid "Programming FAQ" msgstr "FAQ de programmation" -#: ../Doc/faq/programming.rst:8 +#: faq/programming.rst:8 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/programming.rst:12 +#: faq/programming.rst:12 msgid "General Questions" msgstr "Questions générales" -#: ../Doc/faq/programming.rst:15 +#: faq/programming.rst:15 msgid "" "Is there a source code level debugger with breakpoints, single-stepping, " "etc.?" msgstr "" -"Existe-t'il un débogueur de code source avec points d'arrêts, exécution pas-" +"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-" "à-pas, etc. ?" -#: ../Doc/faq/programming.rst:17 ../Doc/faq/programming.rst:63 +#: faq/programming.rst:57 msgid "Yes." msgstr "Oui." -#: ../Doc/faq/programming.rst:19 +#: faq/programming.rst:19 msgid "" "Several debuggers for Python are described below, and the built-in function :" "func:`breakpoint` allows you to drop into any of them." msgstr "" +"Plusieurs débogueurs sont décrits ci-dessous et la fonction native :func:" +"`breakpoint` permet d'utiliser n'importe lequel d'entre eux." -#: ../Doc/faq/programming.rst:22 +#: faq/programming.rst:22 msgid "" "The pdb module is a simple but adequate console-mode debugger for Python. It " "is part of the standard Python library, and is :mod:`documented in the " "Library Reference Manual `. You can also write your own debugger by " "using the code for pdb as an example." msgstr "" -"Le module pdb est un débogueur console simple, mais parfaitement adapté à " -"Python. Il fait partie de la bibliothèque standard de Python, sa " +"Le module ``pdb`` est un débogueur console simple, mais parfaitement adapté " +"à Python. Il fait partie de la bibliothèque standard de Python, sa " "documentation se trouve dans le :mod:`manuel de référence `. Vous " -"pouvez vous inspirer du code de pdb pour écrire votre propre débogueur." +"pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur." -#: ../Doc/faq/programming.rst:27 +#: faq/programming.rst:27 msgid "" "The IDLE interactive development environment, which is part of the standard " "Python distribution (normally available as Tools/scripts/idle), includes a " "graphical debugger." msgstr "" "L'environnement de développement interactif IDLE, qui est fourni avec la " -"distribution standard de Python (normalement disponible dans Tools/scripts/" -"idle) contient un débogueur graphique." +"distribution standard de Python (normalement disponible dans ``Tools/scripts/" +"idle``) contient un débogueur graphique." -#: ../Doc/faq/programming.rst:31 +#: faq/programming.rst:31 msgid "" "PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " -"Pythonwin debugger colors breakpoints and has quite a few cool features such " -"as debugging non-Pythonwin programs. Pythonwin is available as part of the " -"`Python for Windows Extensions `__ project and as a part of the ActivePython distribution (see https://www." -"activestate.com/activepython\\ )." -msgstr "" -"PythonWin est un environnement de développement intégré (EDI) Python qui " -"embarque un débogueur graphique basé sur pdb. Le débogueur PythonWin colore " -"les points d'arrêts et possède quelques fonctionnalités sympathiques, comme " -"la possibilité de déboguer des programmes développés sans PythonWin. " -"PythonWin est disponible dans le projet `Extensions Python pour Windows " -"`__ et fait partie de la " -"distribution ActivePython (voir https://www.activestate.com/activepython\\ )." - -#: ../Doc/faq/programming.rst:38 -msgid "" -"`Boa Constructor `_ is an IDE and " -"GUI builder that uses wxWidgets. It offers visual frame creation and " -"manipulation, an object inspector, many views on the source like object " -"browsers, inheritance hierarchies, doc string generated html documentation, " -"an advanced debugger, integrated help, and Zope support." -msgstr "" -"`Boa Constructor `_ est un EDI et " -"un constructeur d'interface homme-machine basé sur wxWidgets. Il propose la " -"création et la manipulation de fenêtres, un inspecteur d'objets, de " -"nombreuses façons de visualiser des sources comme un navigateur d'objets, " -"les hiérarchies d'héritage, la documentation html générée par les " -"docstrings, un débogueur avancé, une aide intégrée et la prise en charge de " -"Zope." - -#: ../Doc/faq/programming.rst:44 +"PythonWin debugger colors breakpoints and has quite a few cool features such " +"as debugging non-PythonWin programs. PythonWin is available as part of " +"`pywin32 `_ project and as a part of " +"the `ActivePython `_ " +"distribution." +msgstr "" +"*PythonWin* est un environnement de développement intégré (EDI) Python qui " +"embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " +"colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " +"comme la possibilité de déboguer des programmes développés sans " +"*PythonWin*. *PythonWin* est disponible dans le projet `pywin32 `_ et fait partie de la distribution " +"`ActivePython `_." + +#: faq/programming.rst:38 msgid "" "`Eric `_ is an IDE built on PyQt and " "the Scintilla editing component." @@ -108,19 +94,24 @@ msgstr "" "`Eric `_ est un EDI basé sur PyQt et " "l'outil d'édition Scintilla." -#: ../Doc/faq/programming.rst:47 +#: faq/programming.rst:41 msgid "" -"Pydb is a version of the standard Python debugger pdb, modified for use with " -"DDD (Data Display Debugger), a popular graphical debugger front end. Pydb " -"can be found at http://bashdb.sourceforge.net/pydb/ and DDD can be found at " -"https://www.gnu.org/software/ddd." +"`trepan3k `_ is a gdb-like " +"debugger." msgstr "" -"Pydb est une version du débogueur standard Python pdb, modifié pour être " -"utilisé avec DDD (Data Display Debugger), un célèbre débogueur graphique. " -"Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ et DDD est " -"disponible sur https://www.gnu.org/software/ddd." +"`trepan3k `_ est un débogueur " +"semblable à GDB." -#: ../Doc/faq/programming.rst:52 +#: faq/programming.rst:43 +msgid "" +"`Visual Studio Code `_ is an IDE with " +"debugging tools that integrates with version-control software." +msgstr "" +"`Visual Studio Code `_ est un EDI qui " +"contient des outils de débogage. Il sait interagir avec les outils de " +"gestion de versions." + +#: faq/programming.rst:46 msgid "" "There are a number of commercial Python IDEs that include graphical " "debuggers. They include:" @@ -128,55 +119,31 @@ msgstr "" "Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " "graphique. Notamment :" -#: ../Doc/faq/programming.rst:55 -msgid "Wing IDE (https://wingware.com/)" -msgstr "Wing IDE (https://wingware.com/)" +#: faq/programming.rst:49 +msgid "`Wing IDE `_" +msgstr "`Wing IDE `_ ;" -#: ../Doc/faq/programming.rst:56 -msgid "Komodo IDE (https://komodoide.com/)" -msgstr "Komodo IDE (https://komodoide.com/)" +#: faq/programming.rst:50 +msgid "`Komodo IDE `_" +msgstr "`Komodo IDE `_ ;" -#: ../Doc/faq/programming.rst:57 -msgid "PyCharm (https://www.jetbrains.com/pycharm/)" -msgstr "PyCharm (https://www.jetbrains.com/pycharm/)" +#: faq/programming.rst:51 +msgid "`PyCharm `_" +msgstr "`PyCharm `_ ;" -#: ../Doc/faq/programming.rst:61 -msgid "Is there a tool to help find bugs or perform static analysis?" -msgstr "" -"Existe-t'il des outils pour aider à trouver des bogues ou faire de l'analyse " -"statique de code ?" - -#: ../Doc/faq/programming.rst:65 -msgid "" -"PyChecker is a static analysis tool that finds bugs in Python source code " -"and warns about code complexity and style. You can get PyChecker from " -"http://pychecker.sourceforge.net/." +#: faq/programming.rst:55 +msgid "Are there tools to help find bugs or perform static analysis?" msgstr "" -"PyChecker est un outil d'analyse statique qui trouve les bogues dans le code " -"source Python et émet des avertissements relatifs à la complexité et au " -"style du code. PyChecker est disponible sur http://pychecker.sourceforge." -"net/." +"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " +"statique de code ?" -#: ../Doc/faq/programming.rst:69 +#: faq/programming.rst:59 msgid "" -"`Pylint `_ is another tool that checks if a module " -"satisfies a coding standard, and also makes it possible to write plug-ins to " -"add a custom feature. In addition to the bug checking that PyChecker " -"performs, Pylint offers some additional features such as checking line " -"length, whether variable names are well-formed according to your coding " -"standard, whether declared interfaces are fully implemented, and more. " -"https://docs.pylint.org/ provides a full list of Pylint's features." +"`Pylint `_ and `Pyflakes `_ do basic checking that will help you catch bugs sooner." msgstr "" -"Pylint `_ est un autre outil qui vérifie si un " -"module satisfait aux normes de développement, et qui permet en plus d'écrire " -"des greffons pour ajouter des fonctionnalités personnalisées. En plus de la " -"vérification des bogues effectuée par PyChecker, Pylint effectue quelques " -"vérifications supplémentaires comme la longueur des lignes, les conventions " -"de nommage des variables, que les interfaces déclarées sont implémentées en " -"totalité, et plus encore. https://docs.pylint.org/ fournit la liste complète " -"des fonctionnalités de Pylint." -#: ../Doc/faq/programming.rst:77 +#: faq/programming.rst:63 msgid "" "Static type checkers such as `Mypy `_, `Pyre `_, and `Pytype `_ can " @@ -187,11 +154,11 @@ msgstr "" "pytype>`_ peuvent vérifier les indications de type dans du code source " "Python." -#: ../Doc/faq/programming.rst:84 +#: faq/programming.rst:70 msgid "How can I create a stand-alone binary from a Python script?" msgstr "Comment créer un binaire autonome à partir d'un script Python ?" -#: ../Doc/faq/programming.rst:86 +#: faq/programming.rst:72 msgid "" "You don't need the ability to compile Python to C code if all you want is a " "stand-alone program that users can download and run without having to " @@ -206,7 +173,7 @@ msgstr "" "requis par un programme et lient ces modules avec un binaire Python pour " "produire un seul exécutable." -#: ../Doc/faq/programming.rst:92 +#: faq/programming.rst:78 msgid "" "One is to use the freeze tool, which is included in the Python source tree " "as ``Tools/freeze``. It converts Python byte code to C arrays; a C compiler " @@ -219,7 +186,7 @@ msgstr "" "vos modules dans un nouveau programme, qui est ensuite lié aux modules " "standards Python." -#: ../Doc/faq/programming.rst:97 +#: faq/programming.rst:83 msgid "" "It works by scanning your source recursively for import statements (in both " "forms) and looking for the modules in the standard Python path as well as in " @@ -242,34 +209,38 @@ msgstr "" "généré et le lie au reste de l'interpréteur Python pour former un binaire " "autonome qui fait exactement la même chose que le script." -#: ../Doc/faq/programming.rst:106 +#: faq/programming.rst:92 +#, fuzzy msgid "" "Obviously, freeze requires a C compiler. There are several other utilities " -"which don't. One is Thomas Heller's py2exe (Windows only) at" +"which don't:" msgstr "" "Bien évidemment, freeze nécessite un compilateur C. Il existe d'autres " "outils qui peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller " "(pour Windows uniquement) disponible sur" -#: ../Doc/faq/programming.rst:109 -msgid "http://www.py2exe.org/" -msgstr "http://www.py2exe.org/" +#: faq/programming.rst:95 +msgid "`py2exe `_ for Windows binaries" +msgstr "" + +#: faq/programming.rst:96 +msgid "" +"`py2app `_ for Mac OS X binaries" +msgstr "" -#: ../Doc/faq/programming.rst:111 +#: faq/programming.rst:97 msgid "" -"Another tool is Anthony Tuininga's `cx_Freeze `_." +"`cx_Freeze `_ for cross-" +"platform binaries" msgstr "" -"Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." -#: ../Doc/faq/programming.rst:115 +#: faq/programming.rst:102 msgid "Are there coding standards or a style guide for Python programs?" msgstr "" -"Existe-t'il des normes de développement ou un guide de style pour écrire des " +"Existe-t-il des normes de développement ou un guide de style pour écrire des " "programmes Python ?" -#: ../Doc/faq/programming.rst:117 +#: faq/programming.rst:104 msgid "" "Yes. The coding style required for standard library modules is documented " "as :pep:`8`." @@ -277,16 +248,16 @@ msgstr "" "Oui. Le style de développement que les modules de la bibliothèque standard " "doivent obligatoirement respecter est documenté dans la :pep:`8`." -#: ../Doc/faq/programming.rst:122 +#: faq/programming.rst:109 msgid "Core Language" msgstr "Fondamentaux" -#: ../Doc/faq/programming.rst:125 +#: faq/programming.rst:112 msgid "Why am I getting an UnboundLocalError when the variable has a value?" msgstr "" "Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" -#: ../Doc/faq/programming.rst:127 +#: faq/programming.rst:114 msgid "" "It can be a surprise to get the UnboundLocalError in previously working code " "when it is modified by adding an assignment statement somewhere in the body " @@ -296,19 +267,19 @@ msgstr "" "jusqu'à présent correct, quand celui-ci est modifié en ajoutant une " "instruction d'affectation quelque part dans le corps d'une fonction." -#: ../Doc/faq/programming.rst:131 +#: faq/programming.rst:118 msgid "This code:" msgstr "Le code suivant :" -#: ../Doc/faq/programming.rst:139 +#: faq/programming.rst:126 msgid "works, but this code:" msgstr "fonctionne, mais le suivant :" -#: ../Doc/faq/programming.rst:146 +#: faq/programming.rst:133 msgid "results in an UnboundLocalError:" msgstr "lève une UnboundLocalError :" -#: ../Doc/faq/programming.rst:153 +#: faq/programming.rst:140 msgid "" "This is because when you make an assignment to a variable in a scope, that " "variable becomes local to that scope and shadows any similarly named " @@ -324,7 +295,7 @@ msgstr "" "nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " "la variable non initialisée, une erreur se produit." -#: ../Doc/faq/programming.rst:160 +#: faq/programming.rst:147 msgid "" "In the example above you can access the outer scope variable by declaring it " "global:" @@ -332,7 +303,7 @@ msgstr "" "Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " "en la déclarant globale :" -#: ../Doc/faq/programming.rst:171 +#: faq/programming.rst:158 msgid "" "This explicit declaration is required in order to remind you that (unlike " "the superficially analogous situation with class and instance variables) you " @@ -343,7 +314,7 @@ msgstr "" "d'instance), c'est la valeur de la variable du contexte appelant qui est " "modifiée :" -#: ../Doc/faq/programming.rst:178 +#: faq/programming.rst:165 msgid "" "You can do a similar thing in a nested scope using the :keyword:`nonlocal` " "keyword:" @@ -351,12 +322,12 @@ msgstr "" "Une alternative dans un contexte imbriqué consiste à utiliser le mot-clé :" "keyword:`nonlocal` :" -#: ../Doc/faq/programming.rst:195 +#: faq/programming.rst:182 msgid "What are the rules for local and global variables in Python?" msgstr "" "Quelles sont les règles pour les variables locales et globales en Python ?" -#: ../Doc/faq/programming.rst:197 +#: faq/programming.rst:184 msgid "" "In Python, variables that are only referenced inside a function are " "implicitly global. If a variable is assigned a value anywhere within the " @@ -368,7 +339,7 @@ msgstr "" "valeur lui est affectée, elle est considérée locale (sauf si elle est " "explicitement déclarée globale)." -#: ../Doc/faq/programming.rst:201 +#: faq/programming.rst:188 msgid "" "Though a bit surprising at first, a moment's consideration explains this. " "On one hand, requiring :keyword:`global` for assigned variables provides a " @@ -387,7 +358,7 @@ msgstr "" "importé. Le codé serait alors truffé de déclarations ``global``, ce qui " "nuirait à leur raison d'être : identifier les effets de bords." -#: ../Doc/faq/programming.rst:211 +#: faq/programming.rst:198 msgid "" "Why do lambdas defined in a loop with different values all return the same " "result?" @@ -395,7 +366,7 @@ msgstr "" "Pourquoi des expressions lambda définies dans une boucle avec des valeurs " "différentes retournent-elles le même résultat ?" -#: ../Doc/faq/programming.rst:213 +#: faq/programming.rst:200 msgid "" "Assume you use a for loop to define a few different lambdas (or even plain " "functions), e.g.::" @@ -403,7 +374,7 @@ msgstr "" "Supposons que l'on utilise une boucle itérative pour définir des expressions " "lambda (voire même des fonctions) différentes, par exemple ::" -#: ../Doc/faq/programming.rst:220 +#: faq/programming.rst:207 msgid "" "This gives you a list that contains 5 lambdas that calculate ``x**2``. You " "might expect that, when called, they would return, respectively, ``0``, " @@ -412,9 +383,9 @@ msgid "" msgstr "" "Le code précédent crée une liste de 5 expressions lambda qui calculent " "chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " -"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` :" +"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::" -#: ../Doc/faq/programming.rst:230 +#: faq/programming.rst:217 msgid "" "This happens because ``x`` is not local to the lambdas, but is defined in " "the outer scope, and it is accessed when the lambda is called --- not when " @@ -424,21 +395,21 @@ msgid "" msgstr "" "Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " "expressions, mais est définie dans le contexte appelant. Elle est lue à " -"l'appel de l'expression lambda – et non au moment où cette expression est " +"l'appel de l'expression lambda – et non au moment où cette expression est " "définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " -"renvoient ``4*2``, i.e. ``16``. Ceci se vérifie également en changeant la " -"valeur de ``x`` et en constatant que les résultats sont modifiés :" +"renvoient ``4*2``, c.-à-d. ``16``. Ceci se vérifie également en changeant la " +"valeur de ``x`` et en constatant que les résultats sont modifiés ::" -#: ../Doc/faq/programming.rst:240 +#: faq/programming.rst:227 msgid "" "In order to avoid this, you need to save the values in variables local to " "the lambdas, so that they don't rely on the value of the global ``x``::" msgstr "" "Pour éviter ce phénomène, les valeurs doivent être stockées dans des " "variables locales aux expressions lambda pour que celles-ci ne se basent " -"plus sur la variable globale ``x`` :" +"plus sur la variable globale ``x`` ::" -#: ../Doc/faq/programming.rst:247 +#: faq/programming.rst:234 msgid "" "Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " "when the lambda is defined so that it has the same value that ``x`` had at " @@ -451,9 +422,9 @@ msgstr "" "``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " "``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " "troisième et ainsi de suite. Chaque expression lambda renvoie donc le " -"résultat correct :" +"résultat correct ::" -#: ../Doc/faq/programming.rst:258 +#: faq/programming.rst:245 msgid "" "Note that this behaviour is not peculiar to lambdas, but applies to regular " "functions too." @@ -461,11 +432,11 @@ msgstr "" "Ce comportement n'est pas propre aux expressions lambda, mais s'applique " "aussi aux fonctions normales." -#: ../Doc/faq/programming.rst:263 +#: faq/programming.rst:250 msgid "How do I share global variables across modules?" msgstr "Comment partager des variables globales entre modules ?" -#: ../Doc/faq/programming.rst:265 +#: faq/programming.rst:252 msgid "" "The canonical way to share information across modules within a single " "program is to create a special module (often called config or cfg). Just " @@ -481,19 +452,19 @@ msgstr "" "de chaque module, tout changement dans l'instance est propagé partout. Par " "exemple :" -#: ../Doc/faq/programming.rst:271 +#: faq/programming.rst:258 msgid "config.py::" -msgstr "*config.py* ::" +msgstr "*config.py* ::" -#: ../Doc/faq/programming.rst:275 +#: faq/programming.rst:262 msgid "mod.py::" -msgstr "*mod.py* ::" +msgstr "*mod.py* ::" -#: ../Doc/faq/programming.rst:280 +#: faq/programming.rst:267 msgid "main.py::" -msgstr "*main.py* ::" +msgstr "*main.py* ::" -#: ../Doc/faq/programming.rst:286 +#: faq/programming.rst:273 msgid "" "Note that using a module is also the basis for implementing the Singleton " "design pattern, for the same reason." @@ -501,12 +472,12 @@ msgstr "" "Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " "l'implémentation du patron de conception singleton." -#: ../Doc/faq/programming.rst:291 +#: faq/programming.rst:278 msgid "What are the \"best practices\" for using import in a module?" msgstr "" "Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" -#: ../Doc/faq/programming.rst:293 +#: faq/programming.rst:280 msgid "" "In general, don't use ``from modulename import *``. Doing so clutters the " "importer's namespace, and makes it much harder for linters to detect " @@ -516,7 +487,7 @@ msgstr "" "encombre l'espace de nommage de l'importateur et rend la détection de noms " "non-définis beaucoup plus ardue pour les analyseurs de code." -#: ../Doc/faq/programming.rst:297 +#: faq/programming.rst:284 msgid "" "Import modules at the top of a file. Doing so makes it clear what other " "modules your code requires and avoids questions of whether the module name " @@ -529,17 +500,17 @@ msgstr "" "rend l'ajout et la suppression d'une importation de module plus aisé, mais " "importer plusieurs modules sur une même ligne prend moins d'espace." -#: ../Doc/faq/programming.rst:302 +#: faq/programming.rst:289 msgid "It's good practice if you import modules in the following order:" msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" -#: ../Doc/faq/programming.rst:304 +#: faq/programming.rst:291 msgid "standard library modules -- e.g. ``sys``, ``os``, ``getopt``, ``re``" msgstr "" "les modules de la bibliothèque standard — e.g. ``sys``, ``os``, ``getopt``, " "``re``" -#: ../Doc/faq/programming.rst:305 +#: faq/programming.rst:292 msgid "" "third-party library modules (anything installed in Python's site-packages " "directory) -- e.g. mx.DateTime, ZODB, PIL.Image, etc." @@ -547,11 +518,11 @@ msgstr "" "les modules externes (tout ce qui est installé dans le dossier *site-" "packages* de Python) — e.g. *mx.DateTime, ZODB, PIL.Image*, etc." -#: ../Doc/faq/programming.rst:307 +#: faq/programming.rst:294 msgid "locally-developed modules" msgstr "les modules développés en local" -#: ../Doc/faq/programming.rst:309 +#: faq/programming.rst:296 msgid "" "It is sometimes necessary to move imports to a function or class to avoid " "problems with circular imports. Gordon McMillan says:" @@ -560,7 +531,7 @@ msgstr "" "une classe pour éviter les problèmes d'importations circulaires. Comme le " "souligne Gordon McMillan :" -#: ../Doc/faq/programming.rst:312 +#: faq/programming.rst:299 msgid "" "Circular imports are fine where both modules use the \"import \" " "form of import. They fail when the 2nd module wants to grab a name out of " @@ -569,13 +540,13 @@ msgid "" "module is busy importing the 2nd." msgstr "" "Il n'y a aucun souci à faire des importations circulaires tant que les deux " -"modules utilisent la forme \"import \" . Ça ne pose problème que si " +"modules utilisent la forme ``import ``. Ça ne pose problème que si " "le second module cherche à récupérer un nom du premier module (*\"from " "module import name\"*) et que l'importation est dans l'espace de nommage du " "fichier. Les noms du premier module ne sont en effet pas encore disponibles " "car le premier module est occupé à importer le second." -#: ../Doc/faq/programming.rst:318 +#: faq/programming.rst:305 msgid "" "In this case, if the second module is only used in one function, then the " "import can easily be moved into that function. By the time the import is " @@ -587,7 +558,7 @@ msgstr "" "où l'importation sera appelée, le premier module aura fini de s'initialiser " "et le second pourra faire son importation." -#: ../Doc/faq/programming.rst:323 +#: faq/programming.rst:310 msgid "" "It may also be necessary to move imports out of the top level of code if " "some of the modules are platform-specific. In that case, it may not even be " @@ -602,7 +573,7 @@ msgstr "" "recommandé d'importer les modules adéquats dans le code spécifique à la " "machine." -#: ../Doc/faq/programming.rst:328 +#: faq/programming.rst:315 msgid "" "Only move imports into a local scope, such as inside a function definition, " "if it's necessary to solve a problem such as avoiding a circular import or " @@ -628,19 +599,19 @@ msgstr "" "dictionnaire. Même si le nom du module est sorti du contexte courant, le " "module est probablement disponible dans :data:`sys.modules`." -#: ../Doc/faq/programming.rst:341 +#: faq/programming.rst:328 msgid "Why are default values shared between objects?" msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" -#: ../Doc/faq/programming.rst:343 +#: faq/programming.rst:330 msgid "" "This type of bug commonly bites neophyte programmers. Consider this " "function::" msgstr "" "C'est un problème que rencontrent souvent les programmeurs débutants. " -"Examinons la fonction suivante ::" +"Examinons la fonction suivante ::" -#: ../Doc/faq/programming.rst:350 +#: faq/programming.rst:337 msgid "" "The first time you call this function, ``mydict`` contains a single item. " "The second time, ``mydict`` contains two items because when ``foo()`` begins " @@ -650,7 +621,7 @@ msgstr "" "élément. Au second appel, ``mydict`` contient deux éléments car quand " "``foo()`` commence son exécution, ``mydict`` contient déjà un élément." -#: ../Doc/faq/programming.rst:354 +#: faq/programming.rst:341 msgid "" "It is often expected that a function call creates new objects for default " "values. This is not what happens. Default values are created exactly once, " @@ -658,13 +629,13 @@ msgid "" "dictionary in this example, subsequent calls to the function will refer to " "this changed object." msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveau " +"On est souvent amené à croire qu'un appel de fonction créé des nouveaux " "objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " "défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " "définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " "appels suivants à cette fonction font référence à l'objet ainsi modifié." -#: ../Doc/faq/programming.rst:359 +#: faq/programming.rst:346 msgid "" "By definition, immutable objects such as numbers, strings, tuples, and " "``None``, are safe from change. Changes to mutable objects such as " @@ -675,7 +646,7 @@ msgstr "" "sur des objets muables comme les dictionnaires, les listes et les instances " "de classe peuvent porter à confusion." -#: ../Doc/faq/programming.rst:363 +#: faq/programming.rst:350 msgid "" "Because of this feature, it is good programming practice to not use mutable " "objects as default values. Instead, use ``None`` as the default value and " @@ -686,13 +657,13 @@ msgstr "" "muables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " "valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " "est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " -"échéant. Par exemple, il ne faut pas écrire ::" +"échéant. Par exemple, il ne faut pas écrire ::" -#: ../Doc/faq/programming.rst:371 +#: faq/programming.rst:358 msgid "but::" -msgstr "mais plutôt ::" +msgstr "mais plutôt ::" -#: ../Doc/faq/programming.rst:377 +#: faq/programming.rst:364 msgid "" "This feature can be useful. When you have a function that's time-consuming " "to compute, a common technique is to cache the parameters and the resulting " @@ -704,9 +675,9 @@ msgstr "" "paramètres et la valeur de retour de chacun des appels d'une fonction " "coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " "appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " -"s'implémente de la manière suivante ::" +"s'implémente de la manière suivante ::" -#: ../Doc/faq/programming.rst:392 +#: faq/programming.rst:379 msgid "" "You could use a global variable containing a dictionary instead of the " "default value; it's a matter of taste." @@ -714,13 +685,13 @@ msgstr "" "Il est possible d'utiliser une variable globale contenant un dictionnaire à " "la place de la valeur par défaut ; ce n'est qu'une question de goût." -#: ../Doc/faq/programming.rst:397 +#: faq/programming.rst:384 msgid "" "How can I pass optional or keyword parameters from one function to another?" msgstr "" "Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" -#: ../Doc/faq/programming.rst:399 +#: faq/programming.rst:386 msgid "" "Collect the arguments using the ``*`` and ``**`` specifiers in the " "function's parameter list; this gives you the positional arguments as a " @@ -731,13 +702,13 @@ msgstr "" "dans la liste des paramètres de la fonction ; ceci donne les arguments " "positionnels sous la forme d'un n-uplet et les arguments nommés sous forme " "de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " -"utilisant ``*`` et ``**`` ::" +"utilisant ``*`` et ``**`` ::" -#: ../Doc/faq/programming.rst:418 +#: faq/programming.rst:405 msgid "What is the difference between arguments and parameters?" msgstr "Quelle est la différence entre les arguments et les paramètres ?" -#: ../Doc/faq/programming.rst:420 +#: faq/programming.rst:407 msgid "" ":term:`Parameters ` are defined by the names that appear in a " "function definition, whereas :term:`arguments ` are the values " @@ -749,40 +720,40 @@ msgstr "" "définition de fonction, alors que les :term:`arguments ` sont les " "valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" "ci. Les paramètres définissent les types des arguments qu'une fonction " -"accepte. Ainsi, avec la définition de fonction suivante ::" +"accepte. Ainsi, avec la définition de fonction suivante ::" -#: ../Doc/faq/programming.rst:428 +#: faq/programming.rst:415 msgid "" "*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " "``func``, for example::" msgstr "" "*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " -"``func`` avec, par exemple ::" +"``func`` avec, par exemple ::" -#: ../Doc/faq/programming.rst:433 +#: faq/programming.rst:420 msgid "the values ``42``, ``314``, and ``somevar`` are arguments." msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." -#: ../Doc/faq/programming.rst:437 +#: faq/programming.rst:424 msgid "Why did changing list 'y' also change list 'x'?" msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" -#: ../Doc/faq/programming.rst:439 +#: faq/programming.rst:426 msgid "If you wrote code like::" msgstr "Si vous avez écrit du code comme ::" -#: ../Doc/faq/programming.rst:449 +#: faq/programming.rst:436 msgid "" "you might be wondering why appending an element to ``y`` changed ``x`` too." msgstr "" "vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi " "changé ``x``." -#: ../Doc/faq/programming.rst:451 +#: faq/programming.rst:438 msgid "There are two factors that produce this result:" msgstr "Il y a deux raisons qui conduisent à ce comportement :" -#: ../Doc/faq/programming.rst:453 +#: faq/programming.rst:440 msgid "" "Variables are simply names that refer to objects. Doing ``y = x`` doesn't " "create a copy of the list -- it creates a new variable ``y`` that refers to " @@ -794,14 +765,14 @@ msgstr "" "variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " "n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." -#: ../Doc/faq/programming.rst:457 +#: faq/programming.rst:444 msgid "" "Lists are :term:`mutable`, which means that you can change their content." msgstr "" "Les listes sont des :term:`muable`, ce qui signifie que leur contenu peut " "être modifié." -#: ../Doc/faq/programming.rst:459 +#: faq/programming.rst:446 msgid "" "After the call to :meth:`~list.append`, the content of the mutable object " "has changed from ``[]`` to ``[10]``. Since both the variables refer to the " @@ -812,11 +783,11 @@ msgstr "" "objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " "des noms." -#: ../Doc/faq/programming.rst:463 +#: faq/programming.rst:450 msgid "If we instead assign an immutable object to ``x``::" -msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" +msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" -#: ../Doc/faq/programming.rst:473 +#: faq/programming.rst:460 msgid "" "we can see that in this case ``x`` and ``y`` are not equal anymore. This is " "because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " @@ -835,7 +806,7 @@ msgstr "" "(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " "``5``)." -#: ../Doc/faq/programming.rst:481 +#: faq/programming.rst:468 msgid "" "Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " "object, whereas superficially similar operations (for example ``y = y + " @@ -855,7 +826,7 @@ msgstr "" "obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " "le programme à générer une erreur facile à diagnostiquer." -#: ../Doc/faq/programming.rst:490 +#: faq/programming.rst:477 msgid "" "However, there is one class of operations where the same operation sometimes " "has different behaviors with different types: the augmented assignment " @@ -865,17 +836,17 @@ msgid "" "1`` create new objects)." msgstr "" "Il existe cependant une classe d'opérations qui se comporte différemment " -"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, ``" -"+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " +"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, " +"``+=`` modifie les listes mais pas les n-uplets ni les entiers (``a_list += " "[1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie ``a_list``, " "alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` créent de " "nouveaux objets)." -#: ../Doc/faq/programming.rst:497 +#: faq/programming.rst:484 msgid "In other words:" msgstr "En d'autres termes :" -#: ../Doc/faq/programming.rst:499 +#: faq/programming.rst:486 msgid "" "If we have a mutable object (:class:`list`, :class:`dict`, :class:`set`, " "etc.), we can use some specific operations to mutate it and all the " @@ -885,7 +856,7 @@ msgstr "" "class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables qui " "y font référence verront le changement." -#: ../Doc/faq/programming.rst:502 +#: faq/programming.rst:489 msgid "" "If we have an immutable object (:class:`str`, :class:`int`, :class:`tuple`, " "etc.), all the variables that refer to it will always see the same value, " @@ -897,7 +868,7 @@ msgstr "" "opérations qui transforment cette valeur en une nouvelle valeur renvoient " "toujours un nouvel objet." -#: ../Doc/faq/programming.rst:507 +#: faq/programming.rst:494 msgid "" "If you want to know if two variables refer to the same object or not, you " "can use the :keyword:`is` operator, or the built-in function :func:`id`." @@ -905,13 +876,13 @@ msgstr "" "L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " "savoir si deux variables font référence au même objet." -#: ../Doc/faq/programming.rst:512 +#: faq/programming.rst:499 msgid "How do I write a function with output parameters (call by reference)?" msgstr "" "Comment écrire une fonction qui modifie ses paramètres ? (passage par " "référence)" -#: ../Doc/faq/programming.rst:514 +#: faq/programming.rst:501 msgid "" "Remember that arguments are passed by assignment in Python. Since " "assignment just creates references to objects, there's no alias between an " @@ -919,20 +890,20 @@ msgid "" "You can achieve the desired effect in a number of ways." msgstr "" "En Python, les arguments sont passés comme des affectations de variables. Vu " -"qu'une affectation crée des références à des objets, il n'y pas de lien " +"qu'une affectation crée des références à des objets, il n'y a pas de lien " "entre un argument dans l'appel de la fonction et sa définition, et donc pas " -"de passage par référence en soi. Il y a cependant plusieurs façon d'en " +"de passage par référence en soi. Il y a cependant plusieurs façons d'en " "émuler un." -#: ../Doc/faq/programming.rst:519 +#: faq/programming.rst:506 msgid "By returning a tuple of the results::" -msgstr "En renvoyant un n-uplet de résultats ::" +msgstr "En renvoyant un n-uplet de résultats ::" -#: ../Doc/faq/programming.rst:530 +#: faq/programming.rst:517 msgid "This is almost always the clearest solution." msgstr "C'est presque toujours la meilleure solution." -#: ../Doc/faq/programming.rst:532 +#: faq/programming.rst:519 msgid "" "By using global variables. This isn't thread-safe, and is not recommended." msgstr "" @@ -940,33 +911,33 @@ msgstr "" "des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " "et n'est donc pas recommandée." -#: ../Doc/faq/programming.rst:534 +#: faq/programming.rst:521 msgid "By passing a mutable (changeable in-place) object::" msgstr "En passant un objet muable (modifiable sur place) ::" -#: ../Doc/faq/programming.rst:544 +#: faq/programming.rst:532 msgid "By passing in a dictionary that gets mutated::" msgstr "En passant un dictionnaire, qui sera modifié ::" -#: ../Doc/faq/programming.rst:554 +#: faq/programming.rst:543 msgid "Or bundle up values in a class instance::" msgstr "Ou regrouper les valeurs dans une instance de classe ::" -#: ../Doc/faq/programming.rst:570 +#: faq/programming.rst:560 msgid "There's almost never a good reason to get this complicated." msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." -#: ../Doc/faq/programming.rst:572 +#: faq/programming.rst:562 msgid "Your best choice is to return a tuple containing the multiple results." msgstr "" "La meilleure option reste de renvoyer un n-uplet contenant les différents " "résultats." -#: ../Doc/faq/programming.rst:576 +#: faq/programming.rst:566 msgid "How do you make a higher order function in Python?" msgstr "Comment construire une fonction d'ordre supérieur en Python ?" -#: ../Doc/faq/programming.rst:578 +#: faq/programming.rst:568 msgid "" "You have two choices: you can use nested scopes or you can use callable " "objects. For example, suppose you wanted to define ``linear(a,b)`` which " @@ -978,19 +949,19 @@ msgstr "" "``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur " "``a*x+b``. En utilisant les portées imbriquées ::" -#: ../Doc/faq/programming.rst:587 +#: faq/programming.rst:577 msgid "Or using a callable object::" msgstr "Ou en utilisant un objet appelable ::" -#: ../Doc/faq/programming.rst:597 +#: faq/programming.rst:587 msgid "In both cases, ::" -msgstr "Dans les deux cas, ::" +msgstr "Dans les deux cas ::" -#: ../Doc/faq/programming.rst:601 +#: faq/programming.rst:591 msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``." -#: ../Doc/faq/programming.rst:603 +#: faq/programming.rst:593 msgid "" "The callable object approach has the disadvantage that it is a bit slower " "and results in slightly longer code. However, note that a collection of " @@ -1001,11 +972,11 @@ msgstr "" "collection d'objet appelables peuvent partager leurs signatures par " "héritage ::" -#: ../Doc/faq/programming.rst:612 +#: faq/programming.rst:602 msgid "Object can encapsulate state for several methods::" msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" -#: ../Doc/faq/programming.rst:630 +#: faq/programming.rst:620 msgid "" "Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " "same counting variable." @@ -1013,11 +984,11 @@ msgstr "" "Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " "partageant une même variable compteur." -#: ../Doc/faq/programming.rst:635 +#: faq/programming.rst:625 msgid "How do I copy an object in Python?" -msgstr "Comment copier un objet en Python?" +msgstr "Comment copier un objet en Python ?" -#: ../Doc/faq/programming.rst:637 +#: faq/programming.rst:627 msgid "" "In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " "case. Not all objects can be copied, but most can." @@ -1025,7 +996,7 @@ msgstr "" "En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tous les " "objets ne peuvent pas être copiés, mais la plupart le peuvent." -#: ../Doc/faq/programming.rst:640 +#: faq/programming.rst:630 msgid "" "Some objects can be copied more easily. Dictionaries have a :meth:`~dict." "copy` method::" @@ -1033,15 +1004,15 @@ msgstr "" "Certains objets peuvent être copiés plus facilement que d'autres. Les " "dictionnaires ont une méthode :meth:`~dict.copy` ::" -#: ../Doc/faq/programming.rst:645 +#: faq/programming.rst:635 msgid "Sequences can be copied by slicing::" msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" -#: ../Doc/faq/programming.rst:651 +#: faq/programming.rst:641 msgid "How can I find the methods or attributes of an object?" msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" -#: ../Doc/faq/programming.rst:653 +#: faq/programming.rst:643 msgid "" "For an instance x of a user-defined class, ``dir(x)`` returns an " "alphabetized list of the names containing the instance attributes and " @@ -1051,12 +1022,11 @@ msgstr "" "renvoie une liste alphabétique des noms contenants les attributs de " "l'instance, et les attributs et méthodes définies par sa classe." -#: ../Doc/faq/programming.rst:659 +#: faq/programming.rst:649 msgid "How can my code discover the name of an object?" msgstr "Comment un code peut-il obtenir le nom d'un objet ?" -#: ../Doc/faq/programming.rst:661 -#, fuzzy +#: faq/programming.rst:651 msgid "" "Generally speaking, it can't, because objects don't really have names. " "Essentially, assignment always binds a name to a value; the same is true of " @@ -1065,11 +1035,11 @@ msgid "" msgstr "" "C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " "parler. Schématiquement, l'affectation fait correspondre un nom à une " -"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " +"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " "différence près que, dans ce cas, la valeur est un appelable. Par exemple, " "dans le code suivant ::" -#: ../Doc/faq/programming.rst:677 +#: faq/programming.rst:667 msgid "" "Arguably the class has a name: even though it is bound to two names and " "invoked through the name B the created instance is still reported as an " @@ -1082,7 +1052,7 @@ msgstr "" "dire si le nom de l'instance est a ou b, les deux noms étant attachés à la " "même valeur." -#: ../Doc/faq/programming.rst:682 +#: faq/programming.rst:672 msgid "" "Generally speaking it should not be necessary for your code to \"know the " "names\" of particular values. Unless you are deliberately writing " @@ -1094,7 +1064,7 @@ msgstr "" "train d'écrire un programme introspectif, c'est souvent l'indication qu'un " "changement d'approche serait bénéfique." -#: ../Doc/faq/programming.rst:687 +#: faq/programming.rst:677 msgid "" "In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " "to this question:" @@ -1102,7 +1072,7 @@ msgstr "" "Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " "analogie pour répondre à cette question :" -#: ../Doc/faq/programming.rst:690 +#: faq/programming.rst:680 msgid "" "The same way as you get the name of that cat you found on your porch: the " "cat (object) itself cannot tell you its name, and it doesn't really care -- " @@ -1112,9 +1082,9 @@ msgstr "" "C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " "chat (objet) ne peut 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 (espaces de nommage) si c'est leur chat (objet)…." +"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…" -#: ../Doc/faq/programming.rst:695 +#: faq/programming.rst:685 msgid "" "....and don't be surprised if you'll find that it's known by many names, or " "no name at all!" @@ -1122,16 +1092,16 @@ msgstr "" "…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " "noms, ou s'il n'a pas de nom du tout !" -#: ../Doc/faq/programming.rst:700 +#: faq/programming.rst:690 msgid "What's up with the comma operator's precedence?" msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" -#: ../Doc/faq/programming.rst:702 +#: faq/programming.rst:692 msgid "Comma is not an operator in Python. Consider this session::" msgstr "" "La virgule n'est pas un opérateur en Python. Observez le code suivant ::" -#: ../Doc/faq/programming.rst:707 +#: faq/programming.rst:697 msgid "" "Since the comma is not an operator, but a separator between expressions the " "above is evaluated as if you had entered::" @@ -1140,11 +1110,11 @@ msgstr "" "expressions, l'expression ci-dessus est évaluée de la même façon que si vous " "aviez écrit ::" -#: ../Doc/faq/programming.rst:712 +#: faq/programming.rst:702 msgid "not::" msgstr "et non ::" -#: ../Doc/faq/programming.rst:716 +#: faq/programming.rst:706 msgid "" "The same is true of the various assignment operators (``=``, ``+=`` etc). " "They are not truly operators but syntactic delimiters in assignment " @@ -1154,23 +1124,23 @@ msgstr "" "ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " "dans les instructions d'affectation." -#: ../Doc/faq/programming.rst:721 +#: faq/programming.rst:711 msgid "Is there an equivalent of C's \"?:\" ternary operator?" msgstr "Existe-t-il un équivalent à l'opérateur ternaire \"?:\" du C ?" -#: ../Doc/faq/programming.rst:723 +#: faq/programming.rst:713 msgid "Yes, there is. The syntax is as follows::" msgstr "Oui. Sa syntaxe est la suivante ::" -#: ../Doc/faq/programming.rst:730 +#: faq/programming.rst:720 msgid "" "Before this syntax was introduced in Python 2.5, a common idiom was to use " "logical operators::" msgstr "" "Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " -"d'utiliser les opérateurs de logique ::" +"d'utiliser les opérateurs de logique ::" -#: ../Doc/faq/programming.rst:735 +#: faq/programming.rst:725 msgid "" "However, this idiom is unsafe, as it can give wrong results when *on_true* " "has a false boolean value. Therefore, it is always better to use the ``... " @@ -1180,13 +1150,13 @@ msgstr "" "la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " "if ... else ...``." -#: ../Doc/faq/programming.rst:741 +#: faq/programming.rst:731 msgid "Is it possible to write obfuscated one-liners in Python?" msgstr "" "Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " "en Python ?" -#: ../Doc/faq/programming.rst:743 +#: faq/programming.rst:733 msgid "" "Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" "lambda`. See the following three examples, due to Ulf Bartelt::" @@ -1195,18 +1165,17 @@ msgstr "" "keyword:`!lambda`. Par exemple les trois morceaux de code suivants, créés " "par Ulf Bartelt ::" -#: ../Doc/faq/programming.rst:770 +#: faq/programming.rst:760 msgid "Don't try this at home, kids!" msgstr "Les enfants, ne faites pas ça chez vous !" -#: ../Doc/faq/programming.rst:776 +#: faq/programming.rst:766 msgid "What does the slash(/) in the parameter list of a function mean?" msgstr "" "Que signifie la barre oblique (/) dans la liste des paramètres d'une " "fonction ?" -#: ../Doc/faq/programming.rst:778 -#, fuzzy +#: faq/programming.rst:768 msgid "" "A slash in the argument list of a function denotes that the parameters prior " "to it are positional-only. Positional-only parameters are the ones without " @@ -1220,30 +1189,29 @@ msgstr "" "uniquement positionnels ne peuvent pas être référencés par leur nom depuis " "l'extérieur. Lors de l'appel d'une fonction qui accepte des paramètres " "uniquement positionnels, les arguments sont affectés aux paramètres en " -"fonction de leur position. Par exemple, la fonction :func:`pow` n'accepte " +"fonction de leur position. Par exemple, la fonction :func:`divmod` n'accepte " "que des paramètres uniquement positionnels. Sa documentation est la " -"suivante ::" +"suivante ::" -#: ../Doc/faq/programming.rst:791 -#, fuzzy +#: faq/programming.rst:781 msgid "" "The slash at the end of the parameter list means that both parameters are " "positional-only. Thus, calling :func:`divmod` with keyword arguments would " "lead to an error::" msgstr "" "La barre oblique à la fin de la liste des paramètres signifie que les trois " -"paramètres sont uniquement positionnels. Et donc, appeler :func:`pow` avec " -"des arguments nommés provoque une erreur ::" +"paramètres sont uniquement positionnels. Et donc, appeler :func:`divmod` " +"avec des arguments nommés provoque une erreur ::" -#: ../Doc/faq/programming.rst:802 +#: faq/programming.rst:792 msgid "Numbers and strings" msgstr "Nombres et chaînes de caractères" -#: ../Doc/faq/programming.rst:805 +#: faq/programming.rst:795 msgid "How do I specify hexadecimal and octal integers?" msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" -#: ../Doc/faq/programming.rst:807 +#: faq/programming.rst:797 msgid "" "To specify an octal digit, precede the octal value with a zero, and then a " "lower or uppercase \"o\". For example, to set the variable \"a\" to the " @@ -1253,7 +1221,7 @@ msgstr "" "puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " "octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" -#: ../Doc/faq/programming.rst:815 +#: faq/programming.rst:805 msgid "" "Hexadecimal is just as easy. Simply precede the hexadecimal number with a " "zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " @@ -1261,22 +1229,22 @@ msgid "" msgstr "" "L'hexadécimal est tout aussi simple, faites 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 " +"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans " "l'interpréteur Python ::" -#: ../Doc/faq/programming.rst:828 +#: faq/programming.rst:818 msgid "Why does -22 // 10 return -3?" msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" -#: ../Doc/faq/programming.rst:830 +#: faq/programming.rst:820 msgid "" "It's primarily driven by the desire that ``i % j`` have the same sign as " "``j``. If you want that, and also want::" msgstr "" "Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez en plus que ::" +"j. Si vous voulez en plus que ::" -#: ../Doc/faq/programming.rst:835 +#: faq/programming.rst:825 msgid "" "then integer division has to return the floor. C also requires that " "identity to hold, and then compilers that truncate ``i // j`` need to make " @@ -1286,7 +1254,7 @@ msgstr "" "également que cette égalité soit vérifiée, et donc les compilateurs qui " "tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." -#: ../Doc/faq/programming.rst:839 +#: faq/programming.rst:829 msgid "" "There are few real use cases for ``i % j`` when ``j`` is negative. When " "``j`` is positive, there are many, and in virtually all of them it's more " @@ -1297,14 +1265,14 @@ msgstr "" "Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " "négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " "tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " -"10h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` est " -"utile ; ``-190 % 12 == -10`` est un bogue en puissance." +"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` " +"est utile ; ``-190 % 12 == -10`` est un bogue en puissance." -#: ../Doc/faq/programming.rst:847 +#: faq/programming.rst:837 msgid "How do I convert a string to a number?" msgstr "Comment convertir une chaîne de caractères en nombre ?" -#: ../Doc/faq/programming.rst:849 +#: faq/programming.rst:839 msgid "" "For integers, use the built-in :func:`int` type constructor, e.g. " "``int('144') == 144``. Similarly, :func:`float` converts to floating-point, " @@ -1314,7 +1282,7 @@ msgstr "" "``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " "flottante, par exemple ``float('144') == 144.0``." -#: ../Doc/faq/programming.rst:853 +#: faq/programming.rst:843 msgid "" "By default, these interpret the number as decimal, so that ``int('0144') == " "144`` and ``int('0x144')`` raises :exc:`ValueError`. ``int(string, base)`` " @@ -1330,7 +1298,7 @@ msgstr "" "donnée est 0, le nombre est interprété selon les règles Python : un préfixe " "``0o`` indique de l'octal et ``0x`` indique de l'hexadécimal." -#: ../Doc/faq/programming.rst:859 +#: faq/programming.rst:849 msgid "" "Do not use the built-in function :func:`eval` if all you need is to convert " "strings to numbers. :func:`eval` will be significantly slower and it " @@ -1346,22 +1314,22 @@ msgstr "" "pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " "effacerait votre répertoire personnel." -#: ../Doc/faq/programming.rst:866 +#: faq/programming.rst:856 msgid "" ":func:`eval` also has the effect of interpreting numbers as Python " "expressions, so that e.g. ``eval('09')`` gives a syntax error because Python " "does not allow leading '0' in a decimal number (except '0')." msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme comme des " +":func:`eval` a aussi pour effet d'interpréter les nombres comme des " "expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " "parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " "l'exception du nombre '0')." -#: ../Doc/faq/programming.rst:872 +#: faq/programming.rst:862 msgid "How do I convert a number to a string?" msgstr "Comment convertir un nombre en chaîne de caractères ?" -#: ../Doc/faq/programming.rst:874 +#: faq/programming.rst:864 msgid "" "To convert, e.g., the number 144 to the string '144', use the built-in type " "constructor :func:`str`. If you want a hexadecimal or octal representation, " @@ -1375,14 +1343,14 @@ msgstr "" "représentation hexadécimale ou octale, il faut utiliser les fonctions " "natives :func:`hex` ou :func:`oct`. Pour des représentations non-" "conventionnelles, se référer aux sections :ref:`f-strings` et :ref:" -"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et ``" -"\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." +"`formatstrings`, e.g. ``\"{:04d}\".format(144)`` produit ``'0144'`` et " +"``\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." -#: ../Doc/faq/programming.rst:883 +#: faq/programming.rst:873 msgid "How do I modify a string in place?" msgstr "Comment modifier une chaîne de caractères « sur place » ?" -#: ../Doc/faq/programming.rst:885 +#: faq/programming.rst:875 msgid "" "You can't, because strings are immutable. In most situations, you should " "simply construct a new string from the various parts you want to assemble it " @@ -1394,19 +1362,19 @@ msgstr "" "plupart des cas, il faut tout simplement construire une nouvelle chaîne à " "partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " "capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " -"un objet :class:`io.StringIO` ou le module :mod:`array` ::" +"un objet :class:`io.StringIO` ou le module :mod:`array` ::" -#: ../Doc/faq/programming.rst:915 +#: faq/programming.rst:905 msgid "How do I use strings to call functions/methods?" msgstr "" "Comment utiliser des chaînes de caractères pour appeler des fonctions/" -"méthodes?" +"méthodes ?" -#: ../Doc/faq/programming.rst:917 +#: faq/programming.rst:907 msgid "There are various techniques." msgstr "Il y a plusieurs façons de faire." -#: ../Doc/faq/programming.rst:919 +#: faq/programming.rst:909 msgid "" "The best is to use a dictionary that maps strings to functions. The primary " "advantage of this technique is that the strings do not need to match the " @@ -1416,14 +1384,14 @@ msgstr "" "La meilleure est d'utiliser un dictionnaire qui fait correspondre les " "chaînes de caractères à des fonctions. Le principal avantage de cette " "technique est que les chaînes n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la façon principale d'imiter la construction \"case" -"\" ::" +"fonctions. C'est aussi la façon principale d'imiter la construction " +"\"case\" ::" -#: ../Doc/faq/programming.rst:934 +#: faq/programming.rst:924 msgid "Use the built-in function :func:`getattr`::" msgstr "Utiliser la fonction :func:`getattr` ::" -#: ../Doc/faq/programming.rst:939 +#: faq/programming.rst:929 msgid "" "Note that :func:`getattr` works on any object, including classes, class " "instances, modules, and so on." @@ -1431,19 +1399,19 @@ msgstr "" "Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " "classes, les instances de classes, les modules et ainsi de suite." -#: ../Doc/faq/programming.rst:942 +#: faq/programming.rst:932 msgid "This is used in several places in the standard library, like this::" msgstr "" "Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " "cette façon ::" -#: ../Doc/faq/programming.rst:955 +#: faq/programming.rst:945 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 la " "fonction ::" -#: ../Doc/faq/programming.rst:968 +#: faq/programming.rst:958 msgid "" "Note: Using :func:`eval` is slow and dangerous. If you don't have absolute " "control over the contents of the string, someone could pass a string that " @@ -1454,7 +1422,7 @@ msgstr "" "pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " "fonction." -#: ../Doc/faq/programming.rst:973 +#: faq/programming.rst:963 msgid "" "Is there an equivalent to Perl's chomp() for removing trailing newlines from " "strings?" @@ -1462,7 +1430,7 @@ msgstr "" "Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " "les caractères de fin de ligne d'une chaîne de caractères ?" -#: ../Doc/faq/programming.rst:975 +#: faq/programming.rst:965 msgid "" "You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " "terminator from the end of the string ``S`` without removing other trailing " @@ -1474,9 +1442,9 @@ msgstr "" "occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " "caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " "représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " -"fin de de ligne de chaque ligne vide seront retirés ::" +"fin de ligne de chaque ligne vide seront retirés ::" -#: ../Doc/faq/programming.rst:987 +#: faq/programming.rst:977 msgid "" "Since this is typically only desired when reading text one line at a time, " "using ``S.rstrip()`` this way works well." @@ -1484,15 +1452,15 @@ msgstr "" "Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser ``S." "rstrip()`` de cette manière fonctionne correctement." -#: ../Doc/faq/programming.rst:992 +#: faq/programming.rst:982 msgid "Is there a scanf() or sscanf() equivalent?" msgstr "Existe-t-il un équivalent à ``scanf()`` ou ``sscanf()`` ?" -#: ../Doc/faq/programming.rst:994 +#: faq/programming.rst:984 msgid "Not as such." msgstr "Pas exactement." -#: ../Doc/faq/programming.rst:996 +#: faq/programming.rst:986 msgid "" "For simple input parsing, the easiest approach is usually to split the line " "into whitespace-delimited words using the :meth:`~str.split` method of " @@ -1509,7 +1477,7 @@ msgstr "" "paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " "que des espaces comme séparateurs." -#: ../Doc/faq/programming.rst:1002 +#: faq/programming.rst:992 msgid "" "For more complicated input parsing, regular expressions are more powerful " "than C's :c:func:`sscanf` and better suited for the task." @@ -1518,24 +1486,24 @@ msgstr "" "puissantes que la fonction :c:func:`sscanf` de C et mieux adaptées à la " "tâche." -#: ../Doc/faq/programming.rst:1007 +#: faq/programming.rst:997 msgid "What does 'UnicodeDecodeError' or 'UnicodeEncodeError' error mean?" msgstr "" "Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" -#: ../Doc/faq/programming.rst:1009 +#: faq/programming.rst:999 msgid "See the :ref:`unicode-howto`." msgstr "Voir :ref:`unicode-howto`." -#: ../Doc/faq/programming.rst:1013 +#: faq/programming.rst:1003 msgid "Performance" msgstr "Performances" -#: ../Doc/faq/programming.rst:1016 +#: faq/programming.rst:1006 msgid "My program is too slow. How do I speed it up?" msgstr "Mon programme est trop lent. Comment l'accélérer ?" -#: ../Doc/faq/programming.rst:1018 +#: faq/programming.rst:1008 msgid "" "That's a tough one, in general. First, here are a list of things to " "remember before diving further:" @@ -1543,15 +1511,15 @@ msgstr "" "Question difficile en général. Il faut garder en tête les points suivants " "avant d'aller plus loin :" -#: ../Doc/faq/programming.rst:1021 +#: faq/programming.rst:1011 msgid "" "Performance characteristics vary across Python implementations. This FAQ " -"focusses on :term:`CPython`." +"focuses on :term:`CPython`." msgstr "" "Les performances varient en fonction des implémentations de Python. Cette " "FAQ ne traite que de :term:`CPython`." -#: ../Doc/faq/programming.rst:1023 +#: faq/programming.rst:1013 msgid "" "Behaviour can vary across operating systems, especially when talking about I/" "O or multi-threading." @@ -1560,7 +1528,7 @@ msgstr "" "tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " "multiples." -#: ../Doc/faq/programming.rst:1025 +#: faq/programming.rst:1015 msgid "" "You should always find the hot spots in your program *before* attempting to " "optimize any code (see the :mod:`profile` module)." @@ -1569,7 +1537,7 @@ msgstr "" "programme *avant* d'essayer d'optimiser du code (voir le module :mod:" "`profile`)." -#: ../Doc/faq/programming.rst:1027 +#: faq/programming.rst:1017 msgid "" "Writing benchmark scripts will allow you to iterate quickly when searching " "for improvements (see the :mod:`timeit` module)." @@ -1577,7 +1545,7 @@ msgstr "" "Écrire des scripts d'évaluation de performances permet de progresser " "rapidement dans la recherche d'améliorations (voir le module :mod:`timeit`)." -#: ../Doc/faq/programming.rst:1029 +#: faq/programming.rst:1019 msgid "" "It is highly recommended to have good code coverage (through unit testing or " "any other technique) before potentially introducing regressions hidden in " @@ -1587,7 +1555,7 @@ msgstr "" "des tests unitaires ou autre) avant d'ajouter des erreurs dans des " "optimisations sophistiquées." -#: ../Doc/faq/programming.rst:1033 +#: faq/programming.rst:1023 msgid "" "That being said, there are many tricks to speed up Python code. Here are " "some general principles which go a long way towards reaching acceptable " @@ -1597,7 +1565,7 @@ msgstr "" "Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " "de performance satisfaisants :" -#: ../Doc/faq/programming.rst:1037 +#: faq/programming.rst:1027 msgid "" "Making your algorithms faster (or changing to faster ones) can yield much " "larger benefits than trying to sprinkle micro-optimization tricks all over " @@ -1607,7 +1575,7 @@ msgstr "" "produire de bien meilleurs résultats que d'optimiser ça et là de petites " "portions du code." -#: ../Doc/faq/programming.rst:1041 +#: faq/programming.rst:1031 msgid "" "Use the right data structures. Study documentation for the :ref:`bltin-" "types` and the :mod:`collections` module." @@ -1615,7 +1583,7 @@ msgstr "" "Utiliser les structures de données adaptées. Se référer à la documentation " "des :ref:`bltin-types` et du module :mod:`collections`." -#: ../Doc/faq/programming.rst:1044 +#: faq/programming.rst:1034 msgid "" "When the standard library provides a primitive for doing something, it is " "likely (although not guaranteed) to be faster than any alternative you may " @@ -1634,7 +1602,7 @@ msgstr "" "référer à la section :ref:`sortinghowto` pour des exemples d'utilisation " "courante)." -#: ../Doc/faq/programming.rst:1052 +#: faq/programming.rst:1042 msgid "" "Abstractions tend to create indirections and force the interpreter to work " "more. If the levels of indirection outweigh the amount of useful work done, " @@ -1643,12 +1611,12 @@ msgid "" "detrimental to readability)." msgstr "" "Les abstractions ont tendance à créer des indirections et obligent " -"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse le " -"quantité de travail effectif, le programme sera ralentit. Il faut toujours " +"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la " +"quantité de travail effectif, le programme sera ralenti. Il faut toujours " "éviter trop d'indirections, en particulier sous la forme de fonctions ou " "méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." -#: ../Doc/faq/programming.rst:1058 +#: faq/programming.rst:1048 msgid "" "If you have reached the limit of what pure Python can allow, there are tools " "to take you further away. For example, `Cython `_ can " @@ -1669,7 +1637,7 @@ msgstr "" "vous pouvez aussi :ref:`écrire un module d'extension en C` " "vous-même." -#: ../Doc/faq/programming.rst:1068 +#: faq/programming.rst:1058 msgid "" "The wiki page devoted to `performance tips `_." @@ -1677,13 +1645,13 @@ msgstr "" "La page wiki dédiée aux `astuces de performance `_." -#: ../Doc/faq/programming.rst:1074 +#: faq/programming.rst:1064 msgid "What is the most efficient way to concatenate many strings together?" msgstr "" "Quelle est la manière la plus efficace de concaténer un grand nombre de " "chaînes de caractères ?" -#: ../Doc/faq/programming.rst:1076 +#: faq/programming.rst:1066 msgid "" ":class:`str` and :class:`bytes` objects are immutable, therefore " "concatenating many strings together is inefficient as each concatenation " @@ -1696,22 +1664,22 @@ msgstr "" "général, la complexité est quadratique par rapport à la taille totale de la " "chaîne." -#: ../Doc/faq/programming.rst:1081 +#: faq/programming.rst:1071 msgid "" "To accumulate many :class:`str` objects, the recommended idiom is to place " "them into a list and call :meth:`str.join` at the end::" msgstr "" "Pour mettre bout-à-bout un grand nombre d'objets :class:`str`, la technique " "recommandée consiste à toutes les mettre dans une liste et appeler la " -"méthode :meth:`str.join` à la fin ::" +"méthode :meth:`str.join` à la fin ::" -#: ../Doc/faq/programming.rst:1089 +#: faq/programming.rst:1079 msgid "(another reasonably efficient idiom is to use :class:`io.StringIO`)" msgstr "" "(une autre technique relativement efficace consiste à utiliser :class:`io." "StringIO`)" -#: ../Doc/faq/programming.rst:1091 +#: faq/programming.rst:1081 msgid "" "To accumulate many :class:`bytes` objects, the recommended idiom is to " "extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " @@ -1719,17 +1687,17 @@ msgid "" msgstr "" "Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " "recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " -"concaténation en-place (l'opérateur ``+=``) ::" +"concaténation en-place (l'opérateur ``+=``) ::" -#: ../Doc/faq/programming.rst:1100 +#: faq/programming.rst:1090 msgid "Sequences (Tuples/Lists)" msgstr "Séquences (n-uplets / listes)" -#: ../Doc/faq/programming.rst:1103 +#: faq/programming.rst:1093 msgid "How do I convert between tuples and lists?" msgstr "Comment convertir les listes en n-uplets et inversement ?" -#: ../Doc/faq/programming.rst:1105 +#: faq/programming.rst:1095 msgid "" "The type constructor ``tuple(seq)`` converts any sequence (actually, any " "iterable) into a tuple with the same items in the same order." @@ -1738,7 +1706,7 @@ msgstr "" "précisément, tout itérable) en un n-uplet avec les mêmes éléments dans le " "même ordre." -#: ../Doc/faq/programming.rst:1108 +#: faq/programming.rst:1098 msgid "" "For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " "yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " @@ -1751,7 +1719,7 @@ msgstr "" "fonction économique à appeler quand vous ne savez pas si votre objet est " "déjà un n-uplet." -#: ../Doc/faq/programming.rst:1113 +#: faq/programming.rst:1103 msgid "" "The type constructor ``list(seq)`` converts any sequence or iterable into a " "list with the same items in the same order. For example, ``list((1, 2, " @@ -1764,11 +1732,11 @@ msgstr "" "``['a','b','c']``. Si l'argument est une liste, il renvoie une copie, de la " "même façon que ``seq[:]``." -#: ../Doc/faq/programming.rst:1120 +#: faq/programming.rst:1110 msgid "What's a negative index?" msgstr "Qu'est-ce qu'un index négatif ?" -#: ../Doc/faq/programming.rst:1122 +#: faq/programming.rst:1112 msgid "" "Python sequences are indexed with positive numbers and negative numbers. " "For positive numbers 0 is the first index 1 is the second index and so " @@ -1782,7 +1750,7 @@ msgstr "" "dernier index, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " "On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." -#: ../Doc/faq/programming.rst:1127 +#: faq/programming.rst:1117 msgid "" "Using negative indices can be very convenient. For example ``S[:-1]`` is " "all of the string except for its last character, which is useful for " @@ -1793,18 +1761,15 @@ msgstr "" "caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " "la fin d'une chaîne." -#: ../Doc/faq/programming.rst:1133 +#: faq/programming.rst:1123 msgid "How do I iterate over a sequence in reverse order?" msgstr "Comment itérer à rebours sur une séquence ?" -#: ../Doc/faq/programming.rst:1135 -msgid "" -"Use the :func:`reversed` built-in function, which is new in Python 2.4::" -msgstr "" -"Utilisez la fonction native :func:`reversed`, qui a été introduite en Python " -"2.4 ::" +#: faq/programming.rst:1125 +msgid "Use the :func:`reversed` built-in function::" +msgstr "Utilisez la fonction native :func:`reversed` ::" -#: ../Doc/faq/programming.rst:1140 +#: faq/programming.rst:1130 msgid "" "This won't touch your original sequence, but build a new copy with reversed " "order to iterate over." @@ -1812,25 +1777,21 @@ msgstr "" "Cela ne modifie pas la séquence initiale, mais construit à la place une " "copie en ordre inverse pour itérer dessus." -#: ../Doc/faq/programming.rst:1143 -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 ::" - -#: ../Doc/faq/programming.rst:1150 +#: faq/programming.rst:1135 msgid "How do you remove duplicates from a list?" msgstr "Comment retirer les doublons d'une liste ?" -#: ../Doc/faq/programming.rst:1152 +#: faq/programming.rst:1137 msgid "See the Python Cookbook for a long discussion of many ways to do this:" msgstr "" "Lisez le « livre de recettes » Python pour trouver une longue discussion sur " "les nombreuses approches possibles :" -#: ../Doc/faq/programming.rst:1154 +#: faq/programming.rst:1139 msgid "https://code.activestate.com/recipes/52560/" msgstr "https://code.activestate.com/recipes/52560/" -#: ../Doc/faq/programming.rst:1156 +#: faq/programming.rst:1141 msgid "" "If you don't mind reordering the list, sort it and then scan from the end of " "the list, deleting duplicates as you go::" @@ -1839,16 +1800,16 @@ msgstr "" "celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " "trouvés en chemin ::" -#: ../Doc/faq/programming.rst:1168 +#: faq/programming.rst:1153 msgid "" "If all elements of the list may be used as set keys (i.e. they are all :term:" "`hashable`) this is often faster ::" msgstr "" "Si tous les éléments de la liste peuvent être utilisés comme des clés de " "dictionnaire (c'est à dire, qu'elles sont toutes :term:`hachables " -"`) ceci est souvent plus rapide ::" +"`) ceci est souvent plus rapide ::" -#: ../Doc/faq/programming.rst:1173 +#: faq/programming.rst:1158 msgid "" "This converts the list into a set, thereby removing duplicates, and then " "back into a list." @@ -1856,15 +1817,35 @@ msgstr "" "Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " "doublons, puis la transforme à nouveau en liste." -#: ../Doc/faq/programming.rst:1178 +#: faq/programming.rst:1163 +msgid "How do you remove multiple items from a list" +msgstr "Comment retirer les doublons d'une liste" + +#: faq/programming.rst:1165 +msgid "" +"As with removing duplicates, explicitly iterating in reverse with a delete " +"condition is one possibility. However, it is easier and faster to use slice " +"replacement with an implicit or explicit forward iteration. Here are three " +"variations.::" +msgstr "" +"Comme pour supprimer les doublons, il est possible d’itérer explicitement à " +"l’envers avec une condition de suppression. Cependant, il est plus facile et " +"plus rapide d’utiliser le remplacement des tranches par une itération avant, " +"implicite ou explicite. Voici trois variantes. ::" + +#: faq/programming.rst:1174 +msgid "The list comprehension may be fastest." +msgstr "La liste en compréhension est peut-être la plus rapide ::" + +#: faq/programming.rst:1178 msgid "How do you make an array in Python?" msgstr "Comment construire un tableau en Python ?" -#: ../Doc/faq/programming.rst:1180 +#: faq/programming.rst:1180 msgid "Use a list::" msgstr "Utilisez une liste ::" -#: ../Doc/faq/programming.rst:1184 +#: faq/programming.rst:1184 msgid "" "Lists are equivalent to C or Pascal arrays in their time complexity; the " "primary difference is that a Python list can contain objects of many " @@ -1874,7 +1855,7 @@ msgstr "" "principale différence est qu'une liste Python peut contenir des objets de " "différents types." -#: ../Doc/faq/programming.rst:1187 +#: faq/programming.rst:1187 msgid "" "The ``array`` module also provides methods for creating arrays of fixed " "types with compact representations, but they are slower to index than " @@ -1887,14 +1868,14 @@ msgstr "" "fournissent différentes structures de type tableaux, avec des " "caractéristiques différentes." -#: ../Doc/faq/programming.rst:1192 +#: faq/programming.rst:1192 msgid "" "To get Lisp-style linked lists, you can emulate cons cells using tuples::" msgstr "" "Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les " "*cons cells* en utilisant des n-uplets ::" -#: ../Doc/faq/programming.rst:1196 +#: faq/programming.rst:1196 msgid "" "If mutability is desired, you could use lists instead of tuples. Here the " "analogue of lisp car is ``lisp_list[0]`` and the analogue of cdr is " @@ -1907,27 +1888,27 @@ msgstr "" "ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " "général bien plus lente que les listes Python." -#: ../Doc/faq/programming.rst:1205 +#: faq/programming.rst:1205 msgid "How do I create a multidimensional list?" msgstr "Comment créer une liste à plusieurs dimensions ?" -#: ../Doc/faq/programming.rst:1207 +#: faq/programming.rst:1207 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 ::" -#: ../Doc/faq/programming.rst:1211 +#: faq/programming.rst:1211 msgid "This looks correct if you print it:" msgstr "Elle semble correcte si on l'affiche :" -#: ../Doc/faq/programming.rst:1222 +#: faq/programming.rst:1222 msgid "But when you assign a value, it shows up in multiple places:" msgstr "" "Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs " "endroits ::" -#: ../Doc/faq/programming.rst:1234 +#: faq/programming.rst:1234 msgid "" "The reason is that replicating a list with ``*`` doesn't create copies, it " "only creates references to the existing objects. The ``*3`` creates a list " @@ -1940,7 +1921,7 @@ msgstr "" "dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " "probablement pas ce que vous souhaitiez." -#: ../Doc/faq/programming.rst:1239 +#: faq/programming.rst:1239 msgid "" "The suggested approach is to create a list of the desired length first and " "then fill in each element with a newly created list::" @@ -1948,16 +1929,16 @@ msgstr "" "L'approche suggérée est d'abord de créer une liste de la longueur désirée, " "puis de remplir tous les éléments avec une nouvelle chaîne ::" -#: ../Doc/faq/programming.rst:1246 +#: faq/programming.rst:1246 msgid "" "This generates a list containing 3 different lists of length two. You can " "also use a list comprehension::" msgstr "" "Cela génère une liste contenant elle-même trois listes distinctes, de " "longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " -"compréhension ::" +"compréhension ::" -#: ../Doc/faq/programming.rst:1252 +#: faq/programming.rst:1252 msgid "" "Or, you can use an extension that provides a matrix datatype; `NumPy `_ is the best known." @@ -1965,22 +1946,22 @@ msgstr "" "Vous pouvez aussi utiliser une extension qui fournit un type matriciel " "natif ; `NumPy `_ est la plus répandue." -#: ../Doc/faq/programming.rst:1257 +#: faq/programming.rst:1257 msgid "How do I apply a method to a sequence of objects?" msgstr "Comment appliquer une méthode à une séquence d'objets ?" -#: ../Doc/faq/programming.rst:1259 +#: faq/programming.rst:1259 msgid "Use a list comprehension::" msgstr "Utilisez une liste en compréhension ::" -#: ../Doc/faq/programming.rst:1266 +#: faq/programming.rst:1266 msgid "" "Why does a_tuple[i] += ['item'] raise an exception when the addition works?" msgstr "" -"Pourquoi a_tuple[i] += ['item'] lève-t'il une exception alors que " +"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que " "l'addition fonctionne ?" -#: ../Doc/faq/programming.rst:1268 +#: faq/programming.rst:1268 msgid "" "This is because of a combination of the fact that augmented assignment " "operators are *assignment* operators, and the difference between mutable and " @@ -1990,21 +1971,21 @@ msgstr "" "d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " "différence entre les objets muables et immuables en Python." -#: ../Doc/faq/programming.rst:1272 +#: faq/programming.rst:1272 msgid "" "This discussion applies in general when augmented assignment operators are " "applied to elements of a tuple that point to mutable objects, but we'll use " "a ``list`` and ``+=`` as our exemplar." msgstr "" "Cette discussion est valable, en général, quand des opérateurs d'affectation " -"incrémentale sont appliqués aux élément d'un n-uplet qui pointe sur des " +"incrémentale sont appliqués aux éléments d'un n-uplet qui pointe sur des " "objets muables, mais on prendra ``list`` et ``+=`` comme exemple." -#: ../Doc/faq/programming.rst:1276 +#: faq/programming.rst:1276 msgid "If you wrote::" msgstr "Si vous écrivez ::" -#: ../Doc/faq/programming.rst:1284 +#: faq/programming.rst:1284 msgid "" "The reason for the exception should be immediately clear: ``1`` is added to " "the object ``a_tuple[0]`` points to (``1``), producing the result object, " @@ -2018,15 +1999,15 @@ msgstr "" "l'élément ``0`` du n-uplet, on obtient une erreur car il est impossible de " "modifier la cible sur laquelle pointe un élément d'un n-uplet." -#: ../Doc/faq/programming.rst:1290 +#: faq/programming.rst:1290 msgid "" "Under the covers, what this augmented assignment statement is doing is " "approximately this::" msgstr "" "Sous le capot, une instruction d'affectation incrémentale fait à peu près " -"ceci :" +"ceci ::" -#: ../Doc/faq/programming.rst:1299 +#: faq/programming.rst:1299 msgid "" "It is the assignment part of the operation that produces the error, since a " "tuple is immutable." @@ -2034,19 +2015,19 @@ msgstr "" "C'est la partie de l'affectation de l'opération qui génère l'erreur, vu " "qu'un n-uplet est immuable." -#: ../Doc/faq/programming.rst:1302 +#: faq/programming.rst:1302 msgid "When you write something like::" -msgstr "Quand vous écrivez un code du style :" +msgstr "Quand vous écrivez un code du style ::" -#: ../Doc/faq/programming.rst:1310 +#: faq/programming.rst:1310 msgid "" "The exception is a bit more surprising, and even more surprising is the fact " "that even though there was an error, the append worked::" msgstr "" "L'exception est un peu plus surprenante et, chose encore plus étrange, " -"malgré l'erreur, l'ajout a fonctionné ::" +"malgré l'erreur, l'ajout a fonctionné ::" -#: ../Doc/faq/programming.rst:1316 +#: faq/programming.rst:1316 msgid "" "To see why this happens, you need to know that (a) if an object implements " "an ``__iadd__`` magic method, it gets called when the ``+=`` augmented " @@ -2061,13 +2042,13 @@ msgstr "" "utilisée dans l'instruction d'affectation ; et que, deuxièmement, pour les " "listes, ``__iadd__`` équivaut à appeler ``extend`` sur la liste et à " "renvoyer celle-ci. C'est pour cette raison que l'on dit que pour les listes, " -"``+=`` est un \"raccourci\" pour ``list.extend``::" +"``+=`` est un \"raccourci\" pour ``list.extend`` ::" -#: ../Doc/faq/programming.rst:1328 +#: faq/programming.rst:1328 msgid "This is equivalent to::" msgstr "C’est équivalent à ::" -#: ../Doc/faq/programming.rst:1333 +#: faq/programming.rst:1333 msgid "" "The object pointed to by a_list has been mutated, and the pointer to the " "mutated object is assigned back to ``a_list``. The end result of the " @@ -2079,13 +2060,13 @@ msgstr "" "change rien, puisque c'est un pointeur vers le même objet que sur lequel " "pointait ``a_list``, mais l'affectation a tout de même lieu." -#: ../Doc/faq/programming.rst:1338 +#: faq/programming.rst:1338 msgid "Thus, in our tuple example what is happening is equivalent to::" msgstr "" "Donc, dans notre exemple avec un n-uplet, il se passe quelque chose " -"équivalent à ::" +"équivalent à ::" -#: ../Doc/faq/programming.rst:1346 +#: faq/programming.rst:1346 msgid "" "The ``__iadd__`` succeeds, and thus the list is extended, but even though " "``result`` points to the same object that ``a_tuple[0]`` already points to, " @@ -2096,15 +2077,15 @@ msgstr "" "``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " "échoue car les n-uplets ne sont pas muables." -#: ../Doc/faq/programming.rst:1352 +#: faq/programming.rst:1352 msgid "" "I want to do a complicated sort: can you do a Schwartzian Transform in " "Python?" msgstr "" "Je souhaite faire un classement compliqué : peut on faire une transformation " -"de Schwartz en Python ?" +"de Schwartz en Python ?" -#: ../Doc/faq/programming.rst:1354 +#: faq/programming.rst:1354 msgid "" "The technique, attributed to Randal Schwartz of the Perl community, sorts " "the elements of a list by a metric which maps each element to its \"sort " @@ -2114,13 +2095,13 @@ msgstr "" "Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " "les éléments d'une liste à l'aide une transformation qui fait correspondre " "chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " -"l'argument ``key`` de la méthode :meth:`list.sort` ::" +"l'argument ``key`` de la méthode :meth:`list.sort` ::" -#: ../Doc/faq/programming.rst:1363 +#: faq/programming.rst:1363 msgid "How can I sort one list by values from another list?" msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" -#: ../Doc/faq/programming.rst:1365 +#: faq/programming.rst:1365 msgid "" "Merge them into an iterator of tuples, sort the resulting list, and then " "pick out the element you want. ::" @@ -2128,11 +2109,11 @@ msgstr "" "Fusionnez-les dans un itérateur de n-uplets, ordonnez la liste obtenue, puis " "choisissez l'élément que vous voulez ::" -#: ../Doc/faq/programming.rst:1379 +#: faq/programming.rst:1379 msgid "An alternative for the last step is::" msgstr "Vous pouvez remplacer la dernière étape par ::" -#: ../Doc/faq/programming.rst:1384 +#: faq/programming.rst:1384 msgid "" "If you find this more legible, you might prefer to use this instead of the " "final list comprehension. However, it is almost twice as slow for long " @@ -2152,15 +2133,15 @@ msgstr "" "supplémentaire à un attribut et, enfin, parce que tous ces appels de " "fonctions réduisent la vitesse d'exécution." -#: ../Doc/faq/programming.rst:1394 +#: faq/programming.rst:1394 msgid "Objects" msgstr "Objets" -#: ../Doc/faq/programming.rst:1397 +#: faq/programming.rst:1397 msgid "What is a class?" -msgstr "Qu'est-ce qu'une classe?" +msgstr "Qu'est-ce qu'une classe ?" -#: ../Doc/faq/programming.rst:1399 +#: faq/programming.rst:1399 msgid "" "A class is the particular object type created by executing a class " "statement. Class objects are used as templates to create instance objects, " @@ -2172,7 +2153,7 @@ msgstr "" "créer des objets, qui incarnent à la fois les données (attributs) et le code " "(méthodes) spécifiques à un type de données." -#: ../Doc/faq/programming.rst:1403 +#: faq/programming.rst:1403 msgid "" "A class can be based on one or more other classes, called its base " "class(es). It then inherits the attributes and methods of its base classes. " @@ -2190,11 +2171,11 @@ msgstr "" "``MaildirMailbox``, ``OutlookMailbox`` qui gèrent les plusieurs formats " "spécifiques de boîtes aux lettres." -#: ../Doc/faq/programming.rst:1412 +#: faq/programming.rst:1412 msgid "What is a method?" msgstr "Qu'est-ce qu'une méthode ?" -#: ../Doc/faq/programming.rst:1414 +#: faq/programming.rst:1414 msgid "" "A method is a function on some object ``x`` that you normally call as ``x." "name(arguments...)``. Methods are defined as functions inside the class " @@ -2204,11 +2185,11 @@ msgstr "" "générale sous la forme ``x.name(arguments…)``. Les méthodes sont définies " "comme des fonctions à l'intérieur de la définition de classe ::" -#: ../Doc/faq/programming.rst:1424 +#: faq/programming.rst:1424 msgid "What is self?" msgstr "Qu'est-ce que self ?" -#: ../Doc/faq/programming.rst:1426 +#: faq/programming.rst:1426 msgid "" "Self is merely a conventional name for the first argument of a method. A " "method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " @@ -2221,11 +2202,11 @@ msgstr "" "est définie ; tout se passe comme si la méthode était appelée comme " "``meth(x, a, b, c)``." -#: ../Doc/faq/programming.rst:1431 +#: faq/programming.rst:1431 msgid "See also :ref:`why-self`." msgstr "Voir aussi :ref:`why-self`." -#: ../Doc/faq/programming.rst:1435 +#: faq/programming.rst:1435 msgid "" "How do I check if an object is an instance of a given class or of a subclass " "of it?" @@ -2233,7 +2214,7 @@ msgstr "" "Comment vérifier si un objet est une instance d'une classe donnée ou d'une " "sous-classe de celle-ci ?" -#: ../Doc/faq/programming.rst:1437 +#: faq/programming.rst:1437 msgid "" "Use the built-in function ``isinstance(obj, cls)``. You can check if an " "object is an instance of any of a number of classes by providing a tuple " @@ -2248,7 +2229,7 @@ msgstr "" "l'un des types natifs de Python, par exemple ``isinstance(obj, str)`` ou " "``isinstance(obj, (int, float, complex))``." -#: ../Doc/faq/programming.rst:1443 +#: faq/programming.rst:1443 msgid "" "Note that most programs do not use :func:`isinstance` on user-defined " "classes very often. If you are developing the classes yourself, a more " @@ -2264,19 +2245,19 @@ msgstr "" "plutôt que de vérifier la classe de l'objet et de faire un traitement ad-" "hoc. Par exemple, si vous avez une fonction qui fait quelque chose ::" -#: ../Doc/faq/programming.rst:1457 +#: faq/programming.rst:1457 msgid "" "A better approach is to define a ``search()`` method on all the classes and " "just call it::" msgstr "" "Une meilleure approche est de définir une méthode ``search()`` dans toutes " -"les classes et qu'il suffit d'appeler de la manière suivante ::" +"les classes et qu'il suffit d'appeler de la manière suivante ::" -#: ../Doc/faq/programming.rst:1472 +#: faq/programming.rst:1472 msgid "What is delegation?" msgstr "Qu'est-ce que la délégation ?" -#: ../Doc/faq/programming.rst:1474 +#: faq/programming.rst:1474 msgid "" "Delegation is an object oriented technique (also called a design pattern). " "Let's say you have an object ``x`` and want to change the behaviour of just " @@ -2291,7 +2272,7 @@ msgstr "" "dans l'évolution et qui délègue toute autre méthode à la méthode " "correspondante de ``x``." -#: ../Doc/faq/programming.rst:1480 +#: faq/programming.rst:1480 msgid "" "Python programmers can easily implement delegation. For example, the " "following class implements a class that behaves like a file but converts all " @@ -2301,23 +2282,24 @@ msgstr "" "Par exemple, la classe suivante implémente une classe qui se comporte comme " "un fichier, mais convertit toutes les données écrites en majuscules ::" -#: ../Doc/faq/programming.rst:1495 +#: faq/programming.rst:1495 msgid "" "Here the ``UpperOut`` class redefines the ``write()`` method to convert the " -"argument string to uppercase before calling the underlying ``self.__outfile." +"argument string to uppercase before calling the underlying ``self._outfile." "write()`` method. All other methods are delegated to the underlying ``self." -"__outfile`` object. The delegation is accomplished via the ``__getattr__`` " +"_outfile`` object. The delegation is accomplished via the ``__getattr__`` " "method; consult :ref:`the language reference ` for more " "information about controlling attribute access." msgstr "" "Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir " -"la chaîne d'argument en majuscules avant d'appeler la méthode sous-jacentes " -"``self.__outfile.write()``. Toutes les autres méthodes sont déléguées à " -"l'objet sous-jacent ``self.__outfile``. La délégation se fait par la méthode " -"``__getattr__``, consulter :ref:`the language reference ` " -"pour plus d'informations sur le contrôle d'accès d'attribut." +"la chaîne de caractères donnée en argument en majuscules avant d'appeler la " +"méthode sous-jacente ``self._outfile.write()``. Toutes les autres méthodes " +"sont déléguées à l'objet sous-jacent ``self._outfile``. La délégation se " +"fait par la méthode ``__getattr__``, consulter :ref:`the language reference " +"` pour plus d'informations sur la personnalisation de " +"l’accès aux attributs." -#: ../Doc/faq/programming.rst:1502 +#: faq/programming.rst:1502 msgid "" "Note that for more general cases delegation can get trickier. When " "attributes must be set as well as retrieved, the class must define a :meth:" @@ -2331,16 +2313,16 @@ msgstr "" "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 ::" -#: ../Doc/faq/programming.rst:1513 +#: faq/programming.rst:1513 msgid "" "Most :meth:`__setattr__` implementations must modify ``self.__dict__`` to " "store local state for self without causing an infinite recursion." msgstr "" "La plupart des implémentations de :meth:`__setattr__` doivent modifier " -"``self.__dict__`` pour stocker l'état locale de self sans provoquer une " +"``self.__dict__`` pour stocker l'état local de self sans provoquer une " "récursion infinie." -#: ../Doc/faq/programming.rst:1518 +#: faq/programming.rst:1518 msgid "" "How do I call a method defined in a base class from a derived class that " "overrides it?" @@ -2348,11 +2330,11 @@ msgstr "" "Comment appeler une méthode définie dans une classe de base depuis une " "classe dérivée qui la surcharge ?" -#: ../Doc/faq/programming.rst:1520 +#: faq/programming.rst:1520 msgid "Use the built-in :func:`super` function::" msgstr "Utilisez la fonction native :func:`super` ::" -#: ../Doc/faq/programming.rst:1526 +#: faq/programming.rst:1526 msgid "" "For version prior to 3.0, you may be using classic classes: For a class " "definition such as ``class Derived(Base): ...`` you can call method " @@ -2367,13 +2349,13 @@ msgstr "" "arguments...)``. Ici, ``Base.meth`` est une méthode non liée, il faut donc " "fournir l'argument ``self``." -#: ../Doc/faq/programming.rst:1534 +#: faq/programming.rst:1534 msgid "How can I organize my code to make it easier to change the base class?" msgstr "" "Comment organiser un code pour permettre de changer la classe de base plus " "facilement ?" -#: ../Doc/faq/programming.rst:1536 +#: faq/programming.rst:1536 msgid "" "You could define an alias for the base class, assign the real base class to " "it before your class definition, and use the alias throughout your class. " @@ -2389,13 +2371,13 @@ msgstr "" "vous voulez déterminer dynamiquement (par exemple en fonction de la " "disponibilité des ressources) la classe de base à utiliser. Exemple ::" -#: ../Doc/faq/programming.rst:1551 +#: faq/programming.rst:1551 msgid "How do I create static class data and static class methods?" msgstr "" "Comment créer des données statiques de classe et des méthodes statiques de " "classe ?" -#: ../Doc/faq/programming.rst:1553 +#: faq/programming.rst:1553 msgid "" "Both static data and static methods (in the sense of C++ or Java) are " "supported in Python." @@ -2403,7 +2385,7 @@ msgstr "" "Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " "prises en charge en Python." -#: ../Doc/faq/programming.rst:1556 +#: faq/programming.rst:1556 msgid "" "For static data, simply define a class attribute. To assign a new value to " "the attribute, you have to explicitly use the class name in the assignment::" @@ -2412,7 +2394,7 @@ msgstr "" "attribuer une nouvelle valeur à l'attribut, vous devez explicitement " "utiliser le nom de classe dans l'affectation ::" -#: ../Doc/faq/programming.rst:1568 +#: faq/programming.rst:1568 msgid "" "``c.count`` also refers to ``C.count`` for any ``c`` such that " "``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " @@ -2423,7 +2405,7 @@ msgstr "" "une classe sur le chemin de recherche de classe de base de ``c.__class__`` " "jusqu'à ``C``." -#: ../Doc/faq/programming.rst:1572 +#: faq/programming.rst:1572 msgid "" "Caution: within a method of C, an assignment like ``self.count = 42`` " "creates a new and unrelated instance named \"count\" in ``self``'s own " @@ -2436,11 +2418,11 @@ msgstr "" "de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " "d'une méthode ou non ::" -#: ../Doc/faq/programming.rst:1579 +#: faq/programming.rst:1579 msgid "Static methods are possible::" msgstr "Il est possible d'utiliser des méthodes statiques ::" -#: ../Doc/faq/programming.rst:1587 +#: faq/programming.rst:1587 msgid "" "However, a far more straightforward way to get the effect of a static method " "is via a simple module-level function::" @@ -2448,7 +2430,7 @@ 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 ::" -#: ../Doc/faq/programming.rst:1593 +#: faq/programming.rst:1593 msgid "" "If your code is structured so as to define one class (or tightly related " "class hierarchy) per module, this supplies the desired encapsulation." @@ -2457,11 +2439,11 @@ msgstr "" "hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " "souhaitée." -#: ../Doc/faq/programming.rst:1598 +#: faq/programming.rst:1598 msgid "How can I overload constructors (or methods) in Python?" msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" -#: ../Doc/faq/programming.rst:1600 +#: faq/programming.rst:1600 msgid "" "This answer actually applies to all methods, but the question usually comes " "up first in the context of constructors." @@ -2469,11 +2451,11 @@ msgstr "" "Cette réponse s'applique en fait à toutes les méthodes, mais la question se " "pose généralement dans le contexte des constructeurs." -#: ../Doc/faq/programming.rst:1603 +#: faq/programming.rst:1603 msgid "In C++ you'd write" -msgstr "In C++, on écrirait" +msgstr "En C++, on écrirait" -#: ../Doc/faq/programming.rst:1612 +#: faq/programming.rst:1612 msgid "" "In Python you have to write a single constructor that catches all cases " "using default arguments. For example::" @@ -2481,29 +2463,29 @@ msgstr "" "En Python, vous devez écrire un constructeur unique qui considère tous les " "cas en utilisant des arguments par défaut. Par exemple ::" -#: ../Doc/faq/programming.rst:1622 +#: faq/programming.rst:1622 msgid "This is not entirely equivalent, but close enough in practice." msgstr "" "Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la " "pratique." -#: ../Doc/faq/programming.rst:1624 +#: faq/programming.rst:1624 msgid "You could also try a variable-length argument list, e.g. ::" msgstr "" "Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par " -"exemple ::" +"exemple ::" -#: ../Doc/faq/programming.rst:1629 +#: faq/programming.rst:1629 msgid "The same approach works for all method definitions." msgstr "La même approche fonctionne pour toutes les définitions de méthode." -#: ../Doc/faq/programming.rst:1633 +#: faq/programming.rst:1633 msgid "I try to use __spam and I get an error about _SomeClassName__spam." msgstr "" "J'essaie d'utiliser ``__spam`` et j'obtiens une erreur à propos de " "``_SomeClassName__spam``." -#: ../Doc/faq/programming.rst:1635 +#: faq/programming.rst:1635 msgid "" "Variable names with double leading underscores are \"mangled\" to provide a " "simple but effective way to define class private variables. Any identifier " @@ -2519,7 +2501,7 @@ msgstr "" "remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " "en cours sans les éventuels tirets bas du début." -#: ../Doc/faq/programming.rst:1641 +#: faq/programming.rst:1641 msgid "" "This doesn't guarantee privacy: an outside user can still deliberately " "access the \"_classname__spam\" attribute, and private values are visible in " @@ -2531,17 +2513,17 @@ msgstr "" "privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " "Python ne prennent jamais la peine d'utiliser des noms de variable privés." -#: ../Doc/faq/programming.rst:1648 +#: faq/programming.rst:1648 msgid "My class defines __del__ but it is not called when I delete the object." msgstr "" "Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " "supprime l'objet." -#: ../Doc/faq/programming.rst:1650 +#: faq/programming.rst:1650 msgid "There are several possible reasons for this." msgstr "Il y a plusieurs explications possibles." -#: ../Doc/faq/programming.rst:1652 +#: faq/programming.rst:1652 msgid "" "The del statement does not necessarily call :meth:`__del__` -- it simply " "decrements the object's reference count, and if this reaches zero :meth:" @@ -2551,7 +2533,7 @@ msgstr "" "simplement le compteur de références de l'objet et, si celui-ci arrive à " "zéro, :meth:`__del__` est appelée." -#: ../Doc/faq/programming.rst:1656 +#: faq/programming.rst:1656 msgid "" "If your data structures contain circular links (e.g. a tree where each child " "has a parent reference and each parent has a list of children) the reference " @@ -2577,7 +2559,7 @@ msgstr "" "miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " "les objets ne seront jamais nettoyés." -#: ../Doc/faq/programming.rst:1667 +#: faq/programming.rst:1667 msgid "" "Despite the cycle collector, it's still a good idea to define an explicit " "``close()`` method on objects to be called whenever you're done with them. " @@ -2591,10 +2573,10 @@ msgstr "" "quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " "supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " "pas appeler la méthode :meth:`__del__` directement, mais la méthode :meth:" -"`__del__`devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " +"`__del__` devrait appeler la méthode ``close()`` et ``close()`` doit pouvoir " "être appelée plusieurs fois sur le même objet." -#: ../Doc/faq/programming.rst:1674 +#: faq/programming.rst:1674 msgid "" "Another way to avoid cyclical references is to use the :mod:`weakref` " "module, which allows you to point to objects without incrementing their " @@ -2607,7 +2589,7 @@ msgstr "" "d'arbres devraient utiliser des références faibles entre pères et fils (si " "nécessaire !)." -#: ../Doc/faq/programming.rst:1687 +#: faq/programming.rst:1687 msgid "" "Finally, if your :meth:`__del__` method raises an exception, a warning " "message is printed to :data:`sys.stderr`." @@ -2615,11 +2597,11 @@ msgstr "" "Enfin, si la méthode :meth:`__del__` lève une exception, un message " "d'avertissement s'affiche dans :data:`sys.stderr`." -#: ../Doc/faq/programming.rst:1692 +#: faq/programming.rst:1692 msgid "How do I get a list of all instances of a given class?" msgstr "Comment obtenir toutes les instances d'une classe ?" -#: ../Doc/faq/programming.rst:1694 +#: faq/programming.rst:1694 msgid "" "Python does not keep track of all instances of a class (or of a built-in " "type). You can program the class's constructor to keep track of all " @@ -2630,13 +2612,13 @@ msgstr "" "constructeur de la classe de façon à tenir un tel registre, en maintenant " "une liste de références faibles vers chaque instance." -#: ../Doc/faq/programming.rst:1700 +#: faq/programming.rst:1700 msgid "Why does the result of ``id()`` appear to be not unique?" msgstr "" "Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets " "différents ?" -#: ../Doc/faq/programming.rst:1702 +#: faq/programming.rst:1702 msgid "" "The :func:`id` builtin returns an integer that is guaranteed to be unique " "during the lifetime of the object. Since in CPython, this is the object's " @@ -2650,7 +2632,7 @@ msgstr "" "à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " "Comme l'illustre le code suivant :" -#: ../Doc/faq/programming.rst:1713 +#: faq/programming.rst:1713 msgid "" "The two ids belong to different integer objects that are created before, and " "deleted immediately after execution of the ``id()`` call. To be sure that " @@ -2662,15 +2644,15 @@ msgstr "" "objets dont on veut examiner les identifiants sont toujours en vie, créons " "une nouvelle référence à l'objet :" -#: ../Doc/faq/programming.rst:1726 +#: faq/programming.rst:1726 msgid "Modules" msgstr "Modules" -#: ../Doc/faq/programming.rst:1729 +#: faq/programming.rst:1729 msgid "How do I create a .pyc file?" msgstr "Comment créer des fichiers ``.pyc`` ?" -#: ../Doc/faq/programming.rst:1731 +#: faq/programming.rst:1731 msgid "" "When a module is imported for the first time (or when the source file has " "changed since the current compiled file was created) a ``.pyc`` file " @@ -2688,7 +2670,7 @@ msgstr "" "centrale qui dépend du binaire ``python`` qui l'a créé (voir la :pep:`3147` " "pour de plus amples précisions)." -#: ../Doc/faq/programming.rst:1739 +#: faq/programming.rst:1739 msgid "" "One reason that a ``.pyc`` file may not be created is a permissions problem " "with the directory containing the source file, meaning that the " @@ -2703,7 +2685,7 @@ msgstr "" "utilisateur, mais que le code est exécuté en tant qu'un autre utilisateur, " "par exemple pour tester un serveur Web." -#: ../Doc/faq/programming.rst:1744 +#: faq/programming.rst:1744 msgid "" "Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " "creation of a .pyc file is automatic if you're importing a module and Python " @@ -2717,7 +2699,7 @@ msgstr "" "sous-répertoire, à moins que la variable d'environnement :envvar:" "`PYTHONDONTWRITEBYTECODE` soit définie." -#: ../Doc/faq/programming.rst:1749 +#: faq/programming.rst:1749 msgid "" "Running Python on a top level script is not considered an import and no ``." "pyc`` will be created. For example, if you have a top-level module ``foo." @@ -2733,7 +2715,7 @@ msgstr "" "console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " "car ``foo.py`` n'est pas importé." -#: ../Doc/faq/programming.rst:1756 +#: faq/programming.rst:1756 msgid "" "If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a ``." "pyc`` file for a module that is not imported -- you can, using the :mod:" @@ -2743,16 +2725,16 @@ msgstr "" "``.pyc`` pour un module qui n'est pas importé — il existe les modules :mod:" "`py_compile` et :mod:`compileall`." -#: ../Doc/faq/programming.rst:1760 +#: faq/programming.rst:1760 msgid "" "The :mod:`py_compile` module can manually compile any module. One way is to " "use the ``compile()`` function in that module interactively::" msgstr "" "Le module :mod:`py_compile` peut compiler n'importe quel module " "manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " -"manière interactive :" +"manière interactive ::" -#: ../Doc/faq/programming.rst:1766 +#: faq/programming.rst:1766 msgid "" "This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " "location as ``foo.py`` (or you can override that with the optional parameter " @@ -2762,7 +2744,7 @@ msgstr "" "de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " "comportement)." -#: ../Doc/faq/programming.rst:1770 +#: faq/programming.rst:1770 msgid "" "You can also automatically compile all files in a directory or directories " "using the :mod:`compileall` module. You can do it from the shell prompt by " @@ -2772,13 +2754,13 @@ msgstr "" "Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " "avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " "en exécutant ``compileall.py`` avec le chemin du dossier contenant les " -"fichiers Python à compiler ::" +"fichiers Python à compiler ::" -#: ../Doc/faq/programming.rst:1779 +#: faq/programming.rst:1779 msgid "How do I find the current module name?" msgstr "Comment obtenir le nom du module actuel ?" -#: ../Doc/faq/programming.rst:1781 +#: faq/programming.rst:1781 msgid "" "A module can find out its own module name by looking at the predefined " "global variable ``__name__``. If this has the value ``'__main__'``, the " @@ -2791,64 +2773,64 @@ msgstr "" "programme est exécuté comme un script. Beaucoup de modules qui doivent " "normalement être importés pour pouvoir être utilisés fournissent aussi une " "interface en ligne de commande ou un test automatique. Ils n'exécutent cette " -"portion du code qu'après avoir vérifié la valeur de ``__name__``::" +"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::" -#: ../Doc/faq/programming.rst:1796 +#: faq/programming.rst:1796 msgid "How can I have modules that mutually import each other?" msgstr "Comment avoir des modules qui s'importent mutuellement ?" -#: ../Doc/faq/programming.rst:1798 +#: faq/programming.rst:1798 msgid "Suppose you have the following modules:" msgstr "Considérons les modules suivants :" -#: ../Doc/faq/programming.rst:1800 +#: faq/programming.rst:1800 msgid "foo.py::" -msgstr "*foo.py* ::" +msgstr "*foo.py* ::" -#: ../Doc/faq/programming.rst:1805 +#: faq/programming.rst:1805 msgid "bar.py::" -msgstr "*bar.py* ::" +msgstr "*bar.py* ::" -#: ../Doc/faq/programming.rst:1810 +#: faq/programming.rst:1810 msgid "The problem is that the interpreter will perform the following steps:" msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" -#: ../Doc/faq/programming.rst:1812 +#: faq/programming.rst:1812 msgid "main imports foo" msgstr "*main* importe *foo*" -#: ../Doc/faq/programming.rst:1813 +#: faq/programming.rst:1813 msgid "Empty globals for foo are created" msgstr "Les variables globales (vides) de *foo* sont créées" -#: ../Doc/faq/programming.rst:1814 +#: faq/programming.rst:1814 msgid "foo is compiled and starts executing" msgstr "*foo* est compilé et commence à s'exécuter" -#: ../Doc/faq/programming.rst:1815 +#: faq/programming.rst:1815 msgid "foo imports bar" msgstr "*foo* importe *bar*" -#: ../Doc/faq/programming.rst:1816 +#: faq/programming.rst:1816 msgid "Empty globals for bar are created" msgstr "Les variables globales (vides) de *bar* sont créées" -#: ../Doc/faq/programming.rst:1817 +#: faq/programming.rst:1817 msgid "bar is compiled and starts executing" msgstr "*bar* est compilé et commence à s'exécuter" -#: ../Doc/faq/programming.rst:1818 +#: faq/programming.rst:1818 msgid "" "bar imports foo (which is a no-op since there already is a module named foo)" msgstr "" "*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module " "appelé *foo*)" -#: ../Doc/faq/programming.rst:1819 +#: faq/programming.rst:1819 msgid "bar.foo_var = foo.foo_var" msgstr "bar.foo_var = foo.foo_var" -#: ../Doc/faq/programming.rst:1821 +#: faq/programming.rst:1821 msgid "" "The last step fails, because Python isn't done with interpreting ``foo`` yet " "and the global symbol dictionary for ``foo`` is still empty." @@ -2856,7 +2838,7 @@ msgstr "" "La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " "dictionnaire global des symboles de ``foo`` est encore vide." -#: ../Doc/faq/programming.rst:1824 +#: faq/programming.rst:1824 msgid "" "The same thing happens when you use ``import foo``, and then try to access " "``foo.foo_var`` in global code." @@ -2864,11 +2846,11 @@ msgstr "" "Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye " "ensuite d'accéder à ``foo.foo_var`` dans le code global." -#: ../Doc/faq/programming.rst:1827 +#: faq/programming.rst:1827 msgid "There are (at least) three possible workarounds for this problem." msgstr "Il y a (au moins) trois façons de contourner ce problème." -#: ../Doc/faq/programming.rst:1829 +#: faq/programming.rst:1829 msgid "" "Guido van Rossum recommends avoiding all uses of ``from import ..." "``, and placing all code inside functions. Initializations of global " @@ -2882,14 +2864,14 @@ msgstr "" "des fonctions natives. Ceci implique que tout ce qui est fourni par un " "module soit référencé par ``.``." -#: ../Doc/faq/programming.rst:1834 +#: faq/programming.rst:1834 msgid "" "Jim Roskind suggests performing steps in the following order in each module:" msgstr "" "Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans " "chaque module :" -#: ../Doc/faq/programming.rst:1836 +#: faq/programming.rst:1836 msgid "" "exports (globals, functions, and classes that don't need imported base " "classes)" @@ -2897,18 +2879,18 @@ msgstr "" "les exportations (variables globales, fonctions et les classes qui ne " "nécessitent d'importer des classes de base)" -#: ../Doc/faq/programming.rst:1838 +#: faq/programming.rst:1838 msgid "``import`` statements" msgstr "les instructions ``import``" -#: ../Doc/faq/programming.rst:1839 +#: faq/programming.rst:1839 msgid "" "active code (including globals that are initialized from imported values)." msgstr "" "le code (avec les variables globales qui sont initialisées à partir de " "valeurs importées)." -#: ../Doc/faq/programming.rst:1841 +#: faq/programming.rst:1841 msgid "" "van Rossum doesn't like this approach much because the imports appear in a " "strange place, but it does work." @@ -2916,7 +2898,7 @@ msgstr "" "van Rossum désapprouve cette approche car les importations se trouvent à un " "endroit bizarre, mais cela fonctionne." -#: ../Doc/faq/programming.rst:1844 +#: faq/programming.rst:1844 msgid "" "Matthias Urlichs recommends restructuring your code so that the recursive " "import is not necessary in the first place." @@ -2924,23 +2906,24 @@ msgstr "" "Matthias Urlichs conseille de restructurer le code pour éviter les " "importations récursives." -#: ../Doc/faq/programming.rst:1847 +#: faq/programming.rst:1847 msgid "These solutions are not mutually exclusive." msgstr "Ces solutions peuvent être combinées." -#: ../Doc/faq/programming.rst:1851 +#: faq/programming.rst:1851 msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "__import__('x.y.z') renvoie ; comment accéder à z ?" +msgstr "" +"``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" -#: ../Doc/faq/programming.rst:1853 +#: faq/programming.rst:1853 msgid "" "Consider using the convenience function :func:`~importlib.import_module` " "from :mod:`importlib` instead::" msgstr "" "Utilisez plutôt la fonction :func:`~importlib.import_module` de :mod:" -"`importlib` ::" +"`importlib` ::" -#: ../Doc/faq/programming.rst:1860 +#: faq/programming.rst:1860 msgid "" "When I edit an imported module and reimport it, the changes don't show up. " "Why does this happen?" @@ -2948,7 +2931,7 @@ msgstr "" "Quand j'édite un module et que je le réimporte, je ne vois pas les " "changements. Pourquoi ?" -#: ../Doc/faq/programming.rst:1862 +#: faq/programming.rst:1862 msgid "" "For reasons of efficiency as well as consistency, Python only reads the " "module file on the first time a module is imported. If it didn't, in a " @@ -2961,9 +2944,9 @@ msgstr "" "le cas, dans un programme composé d'un très grand nombre de modules qui " "importent tous le même module de base, ce module de base serait analysé et " "ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " -"module, il faut faire ::" +"module, il faut faire ::" -#: ../Doc/faq/programming.rst:1872 +#: faq/programming.rst:1872 msgid "" "Warning: this technique is not 100% fool-proof. In particular, modules " "containing statements like ::" @@ -2971,7 +2954,7 @@ msgstr "" "Attention, cette technique ne marche pas systématiquement. En particulier, " "les modules qui contiennent des instructions comme ::" -#: ../Doc/faq/programming.rst:1877 +#: faq/programming.rst:1877 msgid "" "will continue to work with the old version of the imported objects. If the " "module contains class definitions, existing class instances will *not* be " @@ -2979,11 +2962,11 @@ msgid "" "paradoxical behaviour::" msgstr "" "continuent de fonctionner avec l'ancienne version des objets importés. Si le " -"module contient une définition de classe, le instances déjà existantes de " +"module contient une définition de classe, les instances déjà existantes de " "celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " -"classe. Ceci peut conduire au comportement paradoxal suivant :" +"classe. Ceci peut conduire au comportement paradoxal suivant ::" -#: ../Doc/faq/programming.rst:1890 +#: faq/programming.rst:1890 msgid "" "The nature of the problem is made clear if you print out the \"identity\" of " "the class objects::" @@ -2991,6 +2974,78 @@ msgstr "" "La nature du problème apparaît clairement en affichant « l'identité » des " "objets de la classe ::" +#~ msgid "" +#~ "`Boa Constructor `_ is an IDE " +#~ "and GUI builder that uses wxWidgets. It offers visual frame creation and " +#~ "manipulation, an object inspector, many views on the source like object " +#~ "browsers, inheritance hierarchies, doc string generated html " +#~ "documentation, an advanced debugger, integrated help, and Zope support." +#~ msgstr "" +#~ "`Boa Constructor `_ est un EDI " +#~ "et un constructeur d'interface homme-machine basé sur *wxWidgets*. Il " +#~ "propose la création et la manipulation de fenêtres, un inspecteur " +#~ "d'objets, de nombreuses façons de visualiser des sources comme un " +#~ "navigateur d'objets, les hiérarchies d'héritage, la documentation html " +#~ "générée par les docstrings, un débogueur avancé, une aide intégrée et la " +#~ "prise en charge de Zope." + +#~ msgid "" +#~ "Pydb is a version of the standard Python debugger pdb, modified for use " +#~ "with DDD (Data Display Debugger), a popular graphical debugger front " +#~ "end. Pydb can be found at http://bashdb.sourceforge.net/pydb/ and DDD " +#~ "can be found at https://www.gnu.org/software/ddd." +#~ msgstr "" +#~ "Pydb est une version du débogueur standard Python pdb, modifié pour être " +#~ "utilisé avec DDD (Data Display Debugger), un célèbre débogueur " +#~ "graphique. Pydb est disponible sur http://bashdb.sourceforge.net/pydb/ " +#~ "et DDD est disponible sur https://www.gnu.org/software/ddd." + +#~ msgid "Komodo IDE (https://komodoide.com/)" +#~ msgstr "Komodo IDE (https://komodoide.com/)" + +#~ msgid "" +#~ "PyChecker is a static analysis tool that finds bugs in Python source code " +#~ "and warns about code complexity and style. You can get PyChecker from " +#~ "http://pychecker.sourceforge.net/." +#~ msgstr "" +#~ "*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " +#~ "code source Python et émet des avertissements relatifs à la complexité et " +#~ "au style du code. *PyChecker* est disponible sur http://pychecker." +#~ "sourceforge.net/." + +#~ msgid "" +#~ "`Pylint `_ is another tool that checks if a " +#~ "module satisfies a coding standard, and also makes it possible to write " +#~ "plug-ins to add a custom feature. In addition to the bug checking that " +#~ "PyChecker performs, Pylint offers some additional features such as " +#~ "checking line length, whether variable names are well-formed according to " +#~ "your coding standard, whether declared interfaces are fully implemented, " +#~ "and more. https://docs.pylint.org/ provides a full list of Pylint's " +#~ "features." +#~ msgstr "" +#~ "Pylint `_ est un autre outil qui vérifie si un " +#~ "module satisfait aux normes de développement, et qui permet en plus " +#~ "d'écrire des greffons pour ajouter des fonctionnalités personnalisées. " +#~ "En plus de la vérification des bogues effectuée par PyChecker, Pylint " +#~ "effectue quelques vérifications supplémentaires comme la longueur des " +#~ "lignes, les conventions de nommage des variables, que les interfaces " +#~ "déclarées sont implémentées en totalité, et plus encore. https://docs." +#~ "pylint.org/ fournit la liste complète des fonctionnalités de Pylint." + +#~ msgid "http://www.py2exe.org/" +#~ msgstr "http://www.py2exe.org/" + +#~ msgid "" +#~ "Another tool is Anthony Tuininga's `cx_Freeze `_." +#~ msgstr "" +#~ "Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." + +#~ 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 ::" + #~ msgid "" #~ "Note that as of this writing this is only documentational and no valid " #~ "syntax in Python, although there is :pep:`570`, which proposes a syntax " diff --git a/faq/windows.po b/faq/windows.po index e3e91000e6..0d4a059843 100644 --- a/faq/windows.po +++ b/faq/windows.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-10 09:35+0200\n" -"PO-Revision-Date: 2019-08-21 10:59+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-12-11 11:09+0100\n" "Last-Translator: Zepmanbc \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,19 +15,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/faq/windows.rst:9 +#: faq/windows.rst:9 msgid "Python on Windows FAQ" msgstr "FAQ : Python et Windows" -#: ../Doc/faq/windows.rst:12 +#: faq/windows.rst:12 msgid "Contents" msgstr "Sommaire" -#: ../Doc/faq/windows.rst:22 +#: faq/windows.rst:22 msgid "How do I run a Python program under Windows?" msgstr "Comment exécuter un programme Python sous Windows ?" -#: ../Doc/faq/windows.rst:24 +#: faq/windows.rst:24 msgid "" "This is not necessarily a straightforward question. If you are already " "familiar with running programs from the Windows command line then everything " @@ -37,7 +37,7 @@ msgstr "" "le lancement de programmes depuis la ligne de commande de Windows alors tout " "semblera évident ; sinon, vous pourriez avoir besoin d'être un peu guidé." -#: ../Doc/faq/windows.rst:28 +#: faq/windows.rst:28 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 " @@ -54,7 +54,7 @@ msgstr "" "lancé une telle fenêtre parce que vous verrez une invite de commande " "Windows, qui en en général ressemble à ça :" -#: ../Doc/faq/windows.rst:39 +#: faq/windows.rst:39 msgid "" "The letter may be different, and there might be other things after it, so " "you might just as easily see something like:" @@ -62,7 +62,7 @@ msgstr "" "La lettre peut être différente, et il peut y avoir d'autres choses à la " "suite, alors il se peut que ça ressemble également à ça :" -#: ../Doc/faq/windows.rst:46 +#: faq/windows.rst:46 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 " @@ -72,7 +72,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:50 +#: faq/windows.rst:50 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, " @@ -85,7 +85,7 @@ msgstr "" "programme. Alors, comment faire pour donner votre code Python à " "l'interpréteur ?" -#: ../Doc/faq/windows.rst:55 +#: faq/windows.rst:55 msgid "" "First, you need to make sure that your command window recognises the word " "\"py\" as an instruction to start the interpreter. If you have opened a " @@ -97,11 +97,11 @@ msgstr "" "l'interpréteur. Si vous avez ouvert une invite de commande, entrez la " "commande ``py``, puis appuyez sur entrée :" -#: ../Doc/faq/windows.rst:64 +#: faq/windows.rst:64 msgid "You should then see something like:" msgstr "Vous devez voir quelque chose comme ça :" -#: ../Doc/faq/windows.rst:72 +#: faq/windows.rst:72 msgid "" "You have started the interpreter in \"interactive mode\". That means you can " "enter Python statements or expressions interactively and have them executed " @@ -114,7 +114,7 @@ msgstr "" "puissantes fonctionnalités de Python. Vous pouvez le vérifier en entrant " "quelques commandes de votre choix et en regardant le résultat :" -#: ../Doc/faq/windows.rst:84 +#: faq/windows.rst:84 msgid "" "Many people use the interactive mode as a convenient yet highly programmable " "calculator. When you want to end your interactive Python session, call the :" @@ -129,7 +129,7 @@ msgstr "" "un :kbd:`Z`, puis appuyez sur la touche \":kbd:`Enter`\" pour revenir à " "votre invite de commande Windows." -#: ../Doc/faq/windows.rst:90 +#: faq/windows.rst:90 msgid "" "You may also find that you have a Start-menu entry such as :menuselection:" "`Start --> Programs --> Python 3.x --> Python (command line)` that results " @@ -146,7 +146,7 @@ msgstr "" "Windows exécute une commande \"python\" dans la fenêtre et ferme celle-ci " "lorsque vous fermez l'interpréteur." -#: ../Doc/faq/windows.rst:97 +#: faq/windows.rst:97 msgid "" "Now that we know the ``py`` command is recognized, you can give your Python " "script to it. You'll have to give either an absolute or a relative path to " @@ -161,7 +161,7 @@ msgstr "" "ouvert dans votre répertoire d’accueil, alors vous voyez quelque chose " "comme ::" -#: ../Doc/faq/windows.rst:106 +#: faq/windows.rst:106 msgid "" "So now you'll ask the ``py`` command to give your script to Python by typing " "``py`` followed by your script path::" @@ -169,11 +169,11 @@ msgstr "" "Alors maintenant, vous demanderez à la commande ``py`` de donner votre " "script à Python en tapant ``py`` suivi de votre chemin de script ::" -#: ../Doc/faq/windows.rst:114 +#: faq/windows.rst:114 msgid "How do I make Python scripts executable?" msgstr "Comment rendre des scripts Python exécutables ?" -#: ../Doc/faq/windows.rst:116 +#: faq/windows.rst:116 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 " @@ -191,11 +191,11 @@ msgstr "" "*foo* sans l’extension, vous devez ajouter *.py* au paramètre " "d’environnement PATHEXT." -#: ../Doc/faq/windows.rst:124 +#: faq/windows.rst:124 msgid "Why does Python sometimes take so long to start?" msgstr "Pourquoi Python met-il du temps à démarrer ?" -#: ../Doc/faq/windows.rst:126 +#: faq/windows.rst:126 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. " @@ -207,7 +207,7 @@ msgstr "" "de temps pour démarrer. C'est d'autant plus intrigant que Python fonctionne " "correctement avec d'autres Windows configurés de façon similaire." -#: ../Doc/faq/windows.rst:131 +#: faq/windows.rst:131 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 " @@ -224,29 +224,22 @@ msgstr "" "*McAfee* est particulièrement problématique lorsqu'il est paramétré pour " "surveiller toutes les lectures du système de fichiers." -#: ../Doc/faq/windows.rst:141 +#: faq/windows.rst:141 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:143 +#: faq/windows.rst:143 msgid "" -"See `cx_Freeze `_ for a " -"distutils extension that allows you to create console and GUI executables " -"from Python code. `py2exe `_, the most popular " -"extension for building Python 2.x-based executables, does not yet support " -"Python 3 but a version that does is in development." +"See `cx_Freeze `_ and `py2exe " +"`_, both are distutils extensions that allow you to " +"create console and GUI executables from Python code." msgstr "" -"Regardez `cx_Freeze `_ pour " -"une extension *distutils* qui permet de créer des exécutables console et IUG " -"à partir de code Python. `py2exe `_ est l'extension " -"la plus populaire pour construire des exécutables basés sur Python 2.x mais " -"l'implémentation en Python 3 est en cours de développement." -#: ../Doc/faq/windows.rst:151 +#: faq/windows.rst:149 msgid "Is a ``*.pyd`` file the same as a DLL?" msgstr "Est-ce qu'un fichier ``*.pyd`` est la même chose qu'une DLL ?" -#: ../Doc/faq/windows.rst:153 +#: faq/windows.rst:151 msgid "" "Yes, .pyd files are dll's, but there are a few differences. If you have a " "DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You " @@ -263,7 +256,7 @@ msgstr "" "l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " "Windows aura besoin de la DLL." -#: ../Doc/faq/windows.rst:160 +#: faq/windows.rst:158 msgid "" "Note that the search path for foo.pyd is PYTHONPATH, not the same as the " "path that Windows uses to search for foo.dll. Also, foo.pyd need not be " @@ -282,11 +275,11 @@ msgstr "" "``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une " "liste de fonctions disponibles." -#: ../Doc/faq/windows.rst:169 +#: faq/windows.rst:167 msgid "How can I embed Python into a Windows application?" msgstr "Comment puis-je intégrer Python dans une application Windows ?" -#: ../Doc/faq/windows.rst:171 +#: faq/windows.rst:169 msgid "" "Embedding the Python interpreter in a Windows app can be summarized as " "follows:" @@ -294,7 +287,7 @@ msgstr "" "L'intégration de l'interpréteur Python dans une application Windows peut se " "résumer comme suit :" -#: ../Doc/faq/windows.rst:173 +#: faq/windows.rst:171 msgid "" "Do _not_ build Python into your .exe file directly. On Windows, Python must " "be a DLL to handle importing modules that are themselves DLL's. (This is " @@ -302,14 +295,14 @@ msgid "" "it is typically installed in ``C:\\Windows\\System``. *NN* is the Python " "version, a number such as \"33\" for Python 3.3." msgstr "" -"Ne compilez _pas_ Python directement dans votre fichier *.exe*. Sous " +"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous " "Windows, Python doit être une DLL pour pouvoir importer des modules qui sont " "eux-mêmes des DLL (ceci constitue une information de première importance non " "documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui " "est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version " "Python, par exemple « 33 » pour Python 3.3." -#: ../Doc/faq/windows.rst:179 +#: faq/windows.rst:177 msgid "" "You can link to Python in two different ways. Load-time linking means " "linking against :file:`python{NN}.lib`, while run-time linking means linking " @@ -324,7 +317,7 @@ msgstr "" "lib* » correspondant à :file:`python{NN}.dll`. Il définit simplement des " "liens symboliques pour l'éditeur de liens.)" -#: ../Doc/faq/windows.rst:185 +#: faq/windows.rst:183 msgid "" "Run-time linking greatly simplifies link options; everything happens at run " "time. Your code must load :file:`python{NN}.dll` using the Windows " @@ -343,7 +336,7 @@ msgstr "" "peuvent rendre l'utilisation de ces pointeurs transparente à tout code C qui " "appelle des routines dans l'API C de Python." -#: ../Doc/faq/windows.rst:192 +#: faq/windows.rst:190 msgid "" "Borland note: convert :file:`python{NN}.lib` to OMF format using Coff2Omf." "exe first." @@ -351,7 +344,7 @@ msgstr "" "Note Borland : convertir :file:`python{NN}.lib` au format OMF en utilisant " "*Coff2Omf.exe* en premier." -#: ../Doc/faq/windows.rst:197 +#: faq/windows.rst:195 msgid "" "If you use SWIG, it is easy to create a Python \"extension module\" that " "will make the app's data and methods available to Python. SWIG will handle " @@ -363,10 +356,10 @@ msgstr "" "Python qui rendra les données et les méthodes de l'application disponibles " "pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le " "résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous " -"n'avez _pas_ besoin de créer un fichier DLL, et cela simplifie également la " -"liaison." +"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également " +"la liaison." -#: ../Doc/faq/windows.rst:203 +#: faq/windows.rst:201 msgid "" "SWIG will create an init function (a C function) whose name depends on the " "name of the extension module. For example, if the name of the module is " @@ -381,7 +374,7 @@ msgstr "" "appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible " "utilisée par la classe *shadow*." -#: ../Doc/faq/windows.rst:209 +#: faq/windows.rst:207 msgid "" "The reason you can link the C code in step 2 into your .exe file is that " "calling the initialization function is equivalent to importing the module " @@ -391,7 +384,7 @@ msgstr "" "*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à " "importer le module dans Python ! (C'est le deuxième fait clé non documenté.)" -#: ../Doc/faq/windows.rst:213 +#: faq/windows.rst:211 msgid "" "In short, you can use the following code to initialize the Python " "interpreter with your extension module." @@ -399,7 +392,7 @@ msgstr "" "En bref, vous pouvez utiliser le code suivant pour initialiser " "l'interpréteur Python avec votre module d'extension." -#: ../Doc/faq/windows.rst:224 +#: faq/windows.rst:222 msgid "" "There are two problems with Python's C API which will become apparent if you " "use a compiler other than MSVC, the compiler used to build pythonNN.dll." @@ -408,7 +401,7 @@ msgstr "" "utilisez un compilateur autre que MSVC, le compilateur utilisé pour " "construire *pythonNN.dll*." -#: ../Doc/faq/windows.rst:227 +#: faq/windows.rst:225 msgid "" "Problem 1: The so-called \"Very High Level\" functions that take FILE * " "arguments will not work in a multi-compiler environment because each " @@ -421,7 +414,7 @@ msgstr "" "structure de FILE. Du point de vue de l'implémentation, il s'agit de " "fonctions de très bas niveau." -#: ../Doc/faq/windows.rst:232 +#: faq/windows.rst:230 msgid "" "Problem 2: SWIG generates the following code when generating wrappers to " "void functions:" @@ -429,7 +422,7 @@ msgstr "" "Problème 2 : SWIG génère le code suivant lors de la génération " "*d'encapsuleurs* pour annuler les fonctions :" -#: ../Doc/faq/windows.rst:241 +#: faq/windows.rst:239 msgid "" "Alas, Py_None is a macro that expands to a reference to a complex data " "structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will " @@ -440,7 +433,7 @@ msgstr "" "une fois, ce code échouera dans un environnement multi-compilateur. " "Remplacez ce code par :" -#: ../Doc/faq/windows.rst:249 +#: faq/windows.rst:247 msgid "" "It may be possible to use SWIG's ``%typemap`` command to make the change " "automatically, though I have not been able to get this to work (I'm a " @@ -450,7 +443,7 @@ msgstr "" "le changement automatiquement, bien que je n'ai pas réussi à le faire " "fonctionner (je suis un débutant complet avec SWIG)." -#: ../Doc/faq/windows.rst:253 +#: faq/windows.rst:251 msgid "" "Using a Python shell script to put up a Python interpreter window from " "inside your Windows app is not a good idea; the resulting window will be " @@ -471,13 +464,13 @@ msgstr "" "dont vous avez besoin est un objet Python (défini dans votre module " "d'extension) qui contient les méthodes *read()* et *write()*." -#: ../Doc/faq/windows.rst:262 +#: faq/windows.rst:260 msgid "How do I keep editors from inserting tabs into my Python source?" msgstr "" "Comment empêcher mon éditeur d'utiliser des tabulations dans mes fichiers " "Python ?" -#: ../Doc/faq/windows.rst:264 +#: faq/windows.rst:262 msgid "" "The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, " "recommends 4 spaces for distributed Python code; this is also the Emacs " @@ -488,7 +481,7 @@ msgstr "" "dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec " "Python." -#: ../Doc/faq/windows.rst:268 +#: faq/windows.rst:266 msgid "" "Under any editor, mixing tabs and spaces is a bad idea. MSVC is no " "different in this respect, and is easily configured to use spaces: Take :" @@ -502,7 +495,7 @@ msgstr "" "Tabs` et pour le type de fichier par défaut, vous devez mettre *Tab size* et " "*Indent size* à 4, puis sélectionner *Insert spaces*." -#: ../Doc/faq/windows.rst:273 +#: faq/windows.rst:271 msgid "" "Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and " "spaces are causing problems in leading whitespace. You may also run the :mod:" @@ -512,23 +505,37 @@ msgstr "" "tabulation et d’indentation pose problème en début de ligne. Vous pouvez " "aussi utiliser le module :mod:`tabnanny` pour détecter ces erreurs." -#: ../Doc/faq/windows.rst:280 +#: faq/windows.rst:278 msgid "How do I check for a keypress without blocking?" msgstr "" "Comment puis-je vérifier de manière non bloquante qu'une touche a été " "pressée ?" -#: ../Doc/faq/windows.rst:282 +#: faq/windows.rst:280 msgid "" -"Use the msvcrt module. This is a standard Windows-specific extension " +"Use the :mod:`msvcrt` module. This is a standard Windows-specific extension " "module. It defines a function ``kbhit()`` which checks whether a keyboard " "hit is present, and ``getch()`` which gets one character without echoing it." msgstr "" -"Utilisez le module ``msvcrt``. C'est une extension standard spécifique à " +"Utilisez le module :mod:`msvcrt`. C'est une extension standard spécifique à " "Windows, qui définit une fonction ``kbhit()`` qui vérifie si une pression de " -"touche s'est produite, et ``getch()`` qui récupère le caractère sans " +"touche s'est produite, et ``getch()`` qui récupère le caractère sans " "l'afficher." +#~ msgid "" +#~ "See `cx_Freeze `_ for a " +#~ "distutils extension that allows you to create console and GUI executables " +#~ "from Python code. `py2exe `_, the most popular " +#~ "extension for building Python 2.x-based executables, does not yet support " +#~ "Python 3 but a version that does is in development." +#~ msgstr "" +#~ "Regardez `cx_Freeze `_ " +#~ "pour une extension *distutils* qui permet de créer des exécutables " +#~ "console et IUG à partir de code Python. `py2exe `_ est l'extension la plus populaire pour construire des exécutables " +#~ "basés sur Python 2.x mais l'implémentation en Python 3 est en cours de " +#~ "développement." + #, fuzzy #~ msgid "How do I emulate os.kill() in Windows?" #~ msgstr "Comment émuler ``os.kill()`` sur Windows ?" diff --git a/glossary.po b/glossary.po index 891a89693a..a138a694dd 100644 --- a/glossary.po +++ b/glossary.po @@ -3,27 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-10-02 09:43+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-02-04 21:12+0100\n" +"Last-Translator: Grenoya \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/glossary.rst:5 +#: glossary.rst:5 msgid "Glossary" msgstr "Glossaire" -#: ../Doc/glossary.rst:10 +#: glossary.rst:10 msgid "``>>>``" msgstr "``>>>``" -#: ../Doc/glossary.rst:12 +#: glossary.rst:12 msgid "" "The default Python prompt of the interactive shell. Often seen for code " "examples which can be executed interactively in the interpreter." @@ -32,15 +32,15 @@ msgstr "" "la voit souvent dans des exemples de code qui peuvent être exécutés " "interactivement dans l'interpréteur." -#: ../Doc/glossary.rst:14 +#: glossary.rst:14 msgid "``...``" msgstr "``...``" -#: ../Doc/glossary.rst:16 +#: glossary.rst:16 msgid "Can refer to:" -msgstr "Peut faire référence à :" +msgstr "Peut faire référence à :" -#: ../Doc/glossary.rst:18 +#: glossary.rst:18 msgid "" "The default Python prompt of the interactive shell when entering the code " "for an indented code block, when within a pair of matching left and right " @@ -52,15 +52,15 @@ msgstr "" "par paires (parenthèses, crochets, accolades, triple guillemets), ou après " "un avoir spécifié un décorateur." -#: ../Doc/glossary.rst:23 +#: glossary.rst:23 msgid "The :const:`Ellipsis` built-in constant." msgstr "La constante :const:`Ellipsis`." -#: ../Doc/glossary.rst:24 +#: glossary.rst:24 msgid "2to3" msgstr "*2to3*" -#: ../Doc/glossary.rst:26 +#: glossary.rst:26 msgid "" "A tool that tries to convert Python 2.x code to Python 3.x code by handling " "most of the incompatibilities which can be detected by parsing the source " @@ -70,21 +70,21 @@ msgstr "" "x en gérant la plupart des incompatibilités qui peuvent être détectées en " "analysant la source et parcourant son arbre syntaxique." -#: ../Doc/glossary.rst:30 +#: glossary.rst:30 msgid "" "2to3 is available in the standard library as :mod:`lib2to3`; a standalone " "entry point is provided as :file:`Tools/scripts/2to3`. See :ref:`2to3-" "reference`." msgstr "" "*2to3* est disponible dans la bibliothèque standard sous le nom de :mod:" -"`lib2to3`; un point d’entrée indépendant est fourni via :file:`Tools/" +"`lib2to3` ; un point d’entrée indépendant est fourni via :file:`Tools/" "scripts/2to3`. Cf. :ref:`2to3-reference`." -#: ../Doc/glossary.rst:33 +#: glossary.rst:33 msgid "abstract base class" msgstr "classe de base abstraite" -#: ../Doc/glossary.rst:35 +#: glossary.rst:35 msgid "" "Abstract base classes complement :term:`duck-typing` by providing a way to " "define interfaces when other techniques like :func:`hasattr` would be clumsy " @@ -111,20 +111,20 @@ msgstr "" "`importlib.abc`). Vous pouvez créer vos propres ABC avec le module :mod:" "`abc`." -#: ../Doc/glossary.rst:46 +#: glossary.rst:46 msgid "annotation" msgstr "annotation" -#: ../Doc/glossary.rst:48 +#: glossary.rst:48 msgid "" "A label associated with a variable, a class attribute or a function " "parameter or return value, used by convention as a :term:`type hint`." msgstr "" "Étiquette associée à une variable, un attribut de classe, un paramètre de " -"fonction ou une valeur de retour. Elle est utilisé par convention comme :" +"fonction ou une valeur de retour. Elle est utilisée par convention comme :" "term:`type hint`." -#: ../Doc/glossary.rst:52 +#: glossary.rst:52 msgid "" "Annotations of local variables cannot be accessed at runtime, but " "annotations of global variables, class attributes, and functions are stored " @@ -136,7 +136,7 @@ msgstr "" "classe et de fonctions sont stockées dans l'attribut spécial :attr:" "`__annotations__` des modules, classes et fonctions, respectivement." -#: ../Doc/glossary.rst:58 +#: glossary.rst:58 msgid "" "See :term:`variable annotation`, :term:`function annotation`, :pep:`484` " "and :pep:`526`, which describe this functionality." @@ -144,43 +144,43 @@ msgstr "" "Voir :term:`variable annotation`, :term:`function annotation`, :pep:`484` " "et :pep:`526`, qui décrivent cette fonctionnalité." -#: ../Doc/glossary.rst:60 +#: glossary.rst:60 msgid "argument" msgstr "argument" -#: ../Doc/glossary.rst:62 +#: glossary.rst:62 msgid "" "A value passed to a :term:`function` (or :term:`method`) when calling the " "function. There are two kinds of argument:" msgstr "" "Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " -"appel. Il existe deux types d'arguments :" +"appel. Il existe deux types d'arguments :" -#: ../Doc/glossary.rst:65 +#: glossary.rst:65 msgid "" ":dfn:`keyword argument`: an argument preceded by an identifier (e.g. " "``name=``) in a function call or passed as a value in a dictionary preceded " "by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the " "following calls to :func:`complex`::" msgstr "" -":dfn:`argument nommé`: un argument précédé d'un identifiant (comme " +":dfn:`argument nommé` : un argument précédé d'un identifiant (comme " "``name=``) ou un dictionnaire précédé de ``**``, lors d'un appel de " "fonction. Par exemple, ``3`` et ``5`` sont tous les deux des arguments " "nommés dans l'appel à :func:`complex` ici ::" -#: ../Doc/glossary.rst:73 +#: glossary.rst:73 msgid "" ":dfn:`positional argument`: an argument that is not a keyword argument. " "Positional arguments can appear at the beginning of an argument list and/or " "be passed as elements of an :term:`iterable` preceded by ``*``. For example, " "``3`` and ``5`` are both positional arguments in the following calls::" msgstr "" -":dfn:`argument positionnel` : Un argument qui n'est pas nommé. Les arguments " +":dfn:`argument positionnel` : un argument qui n'est pas nommé. Les arguments " "positionnels apparaissent au début de la liste des arguments, ou donnés sous " "forme d'un :term:`itérable` précédé par ``*``. Par exemple, ``3`` et ``5`` " "sont tous les deux des arguments positionnels dans les appels suivants ::" -#: ../Doc/glossary.rst:82 +#: glossary.rst:82 msgid "" "Arguments are assigned to the named local variables in a function body. See " "the :ref:`calls` section for the rules governing this assignment. " @@ -193,21 +193,21 @@ msgstr "" "argument, et c'est la valeur résultante de l'expression qui sera affectée à " "la variable locale." -#: ../Doc/glossary.rst:87 +#: glossary.rst:87 msgid "" "See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " "and :pep:`362`." msgstr "" -"Voir aussi :term:`parameter` dans le glossaire, la question :ref:" -"`Différence entre argument et paramètre ` de la " -"FAQ et la :pep:`362`." +"Voir aussi :term:`parameter` dans le glossaire, la question :ref:`Différence " +"entre argument et paramètre ` de la FAQ et la :" +"pep:`362`." -#: ../Doc/glossary.rst:90 +#: glossary.rst:90 msgid "asynchronous context manager" msgstr "gestionnaire de contexte asynchrone" -#: ../Doc/glossary.rst:92 +#: glossary.rst:92 msgid "" "An object which controls the environment seen in an :keyword:`async with` " "statement by defining :meth:`__aenter__` and :meth:`__aexit__` methods. " @@ -217,11 +217,11 @@ msgstr "" "à l'intérieur d'une instruction :keyword:`with` en définissant les méthodes :" "meth:`__aenter__` et :meth:`__aexit__`. A été Introduit par la :pep:`492`." -#: ../Doc/glossary.rst:95 +#: glossary.rst:95 msgid "asynchronous generator" msgstr "générateur asynchrone" -#: ../Doc/glossary.rst:97 +#: glossary.rst:97 msgid "" "A function which returns an :term:`asynchronous generator iterator`. It " "looks like a coroutine function defined with :keyword:`async def` except " @@ -233,7 +233,7 @@ msgstr "" "contient une ou des expressions :keyword:`yield` produisant ainsi uns série " "de valeurs utilisables dans une boucle :keyword:`async for`." -#: ../Doc/glossary.rst:102 +#: glossary.rst:102 msgid "" "Usually refers to an asynchronous generator function, but may refer to an " "*asynchronous generator iterator* in some contexts. In cases where the " @@ -244,7 +244,7 @@ msgstr "" "contextes. Dans les cas où le sens voulu n'est pas clair, utiliser " "l'ensemble des termes lève l’ambiguïté." -#: ../Doc/glossary.rst:106 +#: glossary.rst:106 msgid "" "An asynchronous generator function may contain :keyword:`await` expressions " "as well as :keyword:`async for`, and :keyword:`async with` statements." @@ -252,15 +252,15 @@ msgstr "" "Un générateur asynchrone peut contenir des expressions :keyword:`await` " "ainsi que des instructions :keyword:`async for`, et :keyword:`async with`." -#: ../Doc/glossary.rst:109 +#: glossary.rst:109 msgid "asynchronous generator iterator" msgstr "itérateur de générateur asynchrone" -#: ../Doc/glossary.rst:111 +#: glossary.rst:111 msgid "An object created by a :term:`asynchronous generator` function." msgstr "Objet créé par une fonction :term:`asynchronous generator`." -#: ../Doc/glossary.rst:113 +#: glossary.rst:113 msgid "" "This is an :term:`asynchronous iterator` which when called using the :meth:" "`__anext__` method returns an awaitable object which will execute the body " @@ -271,7 +271,7 @@ msgstr "" "méthode :meth:`__anext__` renvoie un objet *awaitable* qui exécute le corps " "de la fonction du générateur asynchrone jusqu'au prochain :keyword:`yield`." -#: ../Doc/glossary.rst:118 +#: glossary.rst:118 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -283,14 +283,14 @@ msgstr "" "mémoire l'endroit et l'état de l'exécution (ce qui inclut les variables " "locales et les *try* en cours). Lorsque l'exécution de l'itérateur de " "générateur asynchrone reprend avec un nouvel *awaitable* renvoyé par :meth:" -"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " +"`__anext__`, elle repart de là où elle s'était arrêtée. Voir la :pep:`492` " "et la :pep:`525`." -#: ../Doc/glossary.rst:123 +#: glossary.rst:123 msgid "asynchronous iterable" msgstr "itérable asynchrone" -#: ../Doc/glossary.rst:125 +#: glossary.rst:125 msgid "" "An object, that can be used in an :keyword:`async for` statement. Must " "return an :term:`asynchronous iterator` from its :meth:`__aiter__` method. " @@ -300,11 +300,11 @@ msgstr "" "méthode :meth:`__aiter__` doit renvoyer un :term:`asynchronous iterator`. A " "été introduit par la :pep:`492`." -#: ../Doc/glossary.rst:128 +#: glossary.rst:128 msgid "asynchronous iterator" msgstr "itérateur asynchrone" -#: ../Doc/glossary.rst:130 +#: glossary.rst:130 msgid "" "An object that implements the :meth:`__aiter__` and :meth:`__anext__` " "methods. ``__anext__`` must return an :term:`awaitable` object. :keyword:" @@ -319,11 +319,11 @@ msgstr "" "`StopAsyncIteration` pour signifier la fin de l'itération. A été introduit " "par la :pep:`492`." -#: ../Doc/glossary.rst:135 +#: glossary.rst:135 msgid "attribute" msgstr "attribut" -#: ../Doc/glossary.rst:137 +#: glossary.rst:137 msgid "" "A value associated with an object which is referenced by name using dotted " "expressions. For example, if an object *o* has an attribute *a* it would be " @@ -333,38 +333,38 @@ msgstr "" "utilisant des points. Par exemple, si un objet *o* possède un attribut *a*, " "il sera référencé par *o.a*." -#: ../Doc/glossary.rst:140 +#: glossary.rst:140 msgid "awaitable" msgstr "*awaitable*" -#: ../Doc/glossary.rst:142 +#: glossary.rst:142 msgid "" "An object that can be used in an :keyword:`await` expression. Can be a :" "term:`coroutine` or an object with an :meth:`__await__` method. See also :" "pep:`492`." msgstr "" -"Objet pouvant être utilisé dans une expression :keyword:`await`. Peut être " -"une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. Voir " -"aussi la :pep:`492`." +"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut " +"être une :term:`coroutine` ou un objet avec une méthode :meth:`__await__`. " +"Voir aussi la :pep:`492`." -#: ../Doc/glossary.rst:145 +#: glossary.rst:145 msgid "BDFL" msgstr "*BDFL*" -#: ../Doc/glossary.rst:147 +#: glossary.rst:147 msgid "" "Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." msgstr "" -"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " +"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " "Pseudonyme de `Guido van Rossum `_, le " "créateur de Python." -#: ../Doc/glossary.rst:149 +#: glossary.rst:149 msgid "binary file" msgstr "fichier binaire" -#: ../Doc/glossary.rst:151 +#: glossary.rst:151 msgid "" "A :term:`file object` able to read and write :term:`bytes-like objects " "`. Examples of binary files are files opened in binary " @@ -378,7 +378,7 @@ msgstr "" "`sys.stdin.buffer`, :data:`sys.stdout.buffer`, les instances de :class:`io." "BytesIO` ou de :class:`gzip.GzipFile`." -#: ../Doc/glossary.rst:158 +#: glossary.rst:158 msgid "" "See also :term:`text file` for a file object able to read and write :class:" "`str` objects." @@ -386,11 +386,11 @@ msgstr "" "Consultez :term:`fichier texte`, un objet fichier capable de lire et " "d'écrire des objets :class:`str`." -#: ../Doc/glossary.rst:160 +#: glossary.rst:160 msgid "bytes-like object" msgstr "objet octet-compatible" -#: ../Doc/glossary.rst:162 +#: glossary.rst:162 msgid "" "An object that supports the :ref:`bufferobjects` and can export a C-:term:" "`contiguous` buffer. This includes all :class:`bytes`, :class:`bytearray`, " @@ -406,7 +406,7 @@ msgstr "" "utilisés pour diverses opérations sur des données binaires, comme la " "compression, la sauvegarde dans un fichier binaire ou l'envoi sur le réseau." -#: ../Doc/glossary.rst:169 +#: glossary.rst:169 msgid "" "Some operations need the binary data to be mutable. The documentation often " "refers to these as \"read-write bytes-like objects\". Example mutable " @@ -418,16 +418,16 @@ msgstr "" "Certaines opérations nécessitent de travailler sur des données binaires " "variables. La documentation parle de ceux-ci comme des *read-write bytes-" "like objects*. Par exemple, :class:`bytearray` ou une :class:`memoryview` " -"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " -"travailler sur des données binaires stockées dans des objets immuables (*" -"\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" +"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " +"travailler sur des données binaires stockées dans des objets immuables " +"(*\"read-only bytes-like objects\"*), par exemples :class:`bytes` ou :class:" "`memoryview` d'un objet :class:`byte`." -#: ../Doc/glossary.rst:177 +#: glossary.rst:177 msgid "bytecode" msgstr "code intermédiaire (*bytecode*)" -#: ../Doc/glossary.rst:179 +#: glossary.rst:179 msgid "" "Python source code is compiled into bytecode, the internal representation of " "a Python program in the CPython interpreter. The bytecode is also cached in " @@ -448,7 +448,7 @@ msgstr "" "intermédiaire n'a pas vocation à fonctionner sur différentes machines " "virtuelles Python ou à être stable entre différentes versions de Python." -#: ../Doc/glossary.rst:189 +#: glossary.rst:189 msgid "" "A list of bytecode instructions can be found in the documentation for :ref:" "`the dis module `." @@ -456,11 +456,23 @@ msgstr "" "La documentation du :ref:`module dis ` fournit une liste des " "instructions du code intermédiaire." -#: ../Doc/glossary.rst:191 +#: glossary.rst:191 +msgid "callback" +msgstr "*callback*" + +#: glossary.rst:193 +msgid "" +"A subroutine function which is passed as an argument to be executed at some " +"point in the future." +msgstr "" +"Une fonction (classique, par opposition à une coroutine) passée en argument " +"pour être exécutée plus tard." + +#: glossary.rst:195 msgid "class" msgstr "classe" -#: ../Doc/glossary.rst:193 +#: glossary.rst:197 msgid "" "A template for creating user-defined objects. Class definitions normally " "contain method definitions which operate on instances of the class." @@ -469,11 +481,11 @@ msgstr "" "classe (*class*) contient normalement des définitions de méthodes qui " "agissent sur les instances de la classe." -#: ../Doc/glossary.rst:196 +#: glossary.rst:200 msgid "class variable" msgstr "variable de classe" -#: ../Doc/glossary.rst:198 +#: glossary.rst:202 msgid "" "A variable defined in a class and intended to be modified only at class " "level (i.e., not in an instance of the class)." @@ -481,11 +493,11 @@ msgstr "" "Une variable définie dans une classe et destinée à être modifiée uniquement " "au niveau de la classe (c'est-à-dire, pas dans une instance de la classe)." -#: ../Doc/glossary.rst:200 +#: glossary.rst:204 msgid "coercion" msgstr "coercition" -#: ../Doc/glossary.rst:202 +#: glossary.rst:206 msgid "" "The implicit conversion of an instance of one type to another during an " "operation which involves two arguments of the same type. For example, " @@ -500,18 +512,18 @@ msgstr "" "opération dont les deux opérandes doivent être de même type. Par exemple " "``int(3.15)`` convertit explicitement le nombre à virgule flottante en " "nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux opérandes " -"sont d'un type différent (Un entier et un nombre à virgule flottante), alors " -"qu'elles doivent avoir le même type pour être additionnées (sinon une " -"exception :exc:`TypeError` serait levée). Sans coercition, toutes les " -"opérandes, même de types compatibles, devraient être converties (on parle " -"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " +"sont d'un type différent (un entier et un nombre à virgule flottante), alors " +"qu'ils doivent avoir le même type pour être additionnés (sinon une " +"exception :exc:`TypeError` serait levée). Sans coercition, tous les " +"opérandes, même de types compatibles, devraient être convertis (on parle " +"aussi de *cast*) explicitement par le développeur, par exemple : ``float(3) " "+ 4.5`` au lieu du simple ``3 + 4.5``." -#: ../Doc/glossary.rst:210 +#: glossary.rst:214 msgid "complex number" msgstr "nombre complexe" -#: ../Doc/glossary.rst:212 +#: glossary.rst:216 msgid "" "An extension of the familiar real number system in which all numbers are " "expressed as a sum of a real part and an imaginary part. Imaginary numbers " @@ -528,17 +540,17 @@ msgstr "" "imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " "l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " "mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " -"nombres complexes, écrits avec cette dernière notation : la partie " +"nombres complexes, écrits avec cette dernière notation : la partie " "imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " "utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " "Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " "ne connaissez pas ce concept, vous pouvez tranquillement les ignorer." -#: ../Doc/glossary.rst:222 +#: glossary.rst:226 msgid "context manager" msgstr "gestionnaire de contexte" -#: ../Doc/glossary.rst:224 +#: glossary.rst:228 msgid "" "An object which controls the environment seen in a :keyword:`with` statement " "by defining :meth:`__enter__` and :meth:`__exit__` methods. See :pep:`343`." @@ -547,11 +559,11 @@ msgstr "" "définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. Consultez " "la :pep:`343`." -#: ../Doc/glossary.rst:227 +#: glossary.rst:231 msgid "context variable" msgstr "variable de contexte" -#: ../Doc/glossary.rst:229 +#: glossary.rst:233 msgid "" "A variable which can have different values depending on its context. This is " "similar to Thread-Local Storage in which each execution thread may have a " @@ -569,11 +581,11 @@ msgstr "" "trace des variables dans les tâches asynchrones concourantes. Voir :mod:" "`contextvars`." -#: ../Doc/glossary.rst:236 +#: glossary.rst:240 msgid "contiguous" msgstr "contigu" -#: ../Doc/glossary.rst:240 +#: glossary.rst:244 msgid "" "A buffer is considered contiguous exactly if it is either *C-contiguous* or " "*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " @@ -593,29 +605,28 @@ msgstr "" "leur adresse mémoire. À l'inverse, dans les tableaux Fortran-contigu, c’est " "le premier indice qui doit varier le plus rapidement." -#: ../Doc/glossary.rst:248 +#: glossary.rst:252 msgid "coroutine" msgstr "coroutine" -#: ../Doc/glossary.rst:250 -#, fuzzy +#: glossary.rst:254 msgid "" "Coroutines are a more generalized form of subroutines. Subroutines are " "entered at one point and exited at another point. Coroutines can be " "entered, exited, and resumed at many different points. They can be " "implemented with the :keyword:`async def` statement. See also :pep:`492`." msgstr "" -"Les coroutines sont une forme généralisées des fonctions. On entre dans une " +"Les coroutines sont une forme généralisée des fonctions. On entre dans une " "fonction en un point et on en sort en un autre point. On peut entrer, sortir " "et reprendre l'exécution d'une coroutine en plusieurs points. Elles peuvent " "être implémentées en utilisant l'instruction :keyword:`async def`. Voir " "aussi la :pep:`492`." -#: ../Doc/glossary.rst:255 +#: glossary.rst:259 msgid "coroutine function" msgstr "fonction coroutine" -#: ../Doc/glossary.rst:257 +#: glossary.rst:261 msgid "" "A function which returns a :term:`coroutine` object. A coroutine function " "may be defined with the :keyword:`async def` statement, and may contain :" @@ -627,11 +638,11 @@ msgstr "" "mots clés :keyword:`await`, :keyword:`async for` ainsi que :keyword:`async " "with`. A été introduit par la :pep:`492`." -#: ../Doc/glossary.rst:262 +#: glossary.rst:266 msgid "CPython" msgstr "CPython" -#: ../Doc/glossary.rst:264 +#: glossary.rst:268 msgid "" "The canonical implementation of the Python programming language, as " "distributed on `python.org `_. The term \"CPython\" " @@ -643,11 +654,11 @@ msgstr "" "est utilisé dans certains contextes lorsqu'il est nécessaire de distinguer " "cette implémentation des autres comme *Jython* ou *IronPython*." -#: ../Doc/glossary.rst:268 +#: glossary.rst:272 msgid "decorator" msgstr "décorateur" -#: ../Doc/glossary.rst:270 +#: glossary.rst:274 msgid "" "A function returning another function, usually applied as a function " "transformation using the ``@wrapper`` syntax. Common examples for " @@ -655,10 +666,10 @@ msgid "" msgstr "" "Fonction dont la valeur de retour est une autre fonction. Un décorateur est " "habituellement utilisé pour transformer une fonction via la syntaxe " -"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" +"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` et :func:" "`staticmethod`." -#: ../Doc/glossary.rst:274 +#: glossary.rst:278 msgid "" "The decorator syntax is merely syntactic sugar, the following two function " "definitions are semantically equivalent::" @@ -666,7 +677,7 @@ msgstr "" "La syntaxe des décorateurs est simplement du sucre syntaxique, les " "définitions des deux fonctions suivantes sont sémantiquement équivalentes ::" -#: ../Doc/glossary.rst:285 +#: glossary.rst:289 msgid "" "The same concept exists for classes, but is less commonly used there. See " "the documentation for :ref:`function definitions ` and :ref:`class " @@ -676,11 +687,11 @@ msgstr "" "Consultez la documentation :ref:`définitions de fonctions ` et :" "ref:`définitions de classes ` pour en savoir plus sur les décorateurs." -#: ../Doc/glossary.rst:288 +#: glossary.rst:292 msgid "descriptor" msgstr "descripteur" -#: ../Doc/glossary.rst:290 +#: glossary.rst:294 msgid "" "Any object which defines the methods :meth:`__get__`, :meth:`__set__`, or :" "meth:`__delete__`. When a class attribute is a descriptor, its special " @@ -695,27 +706,27 @@ msgstr "" "N'importe quel objet définissant les méthodes :meth:`__get__`, :meth:" "`__set__`, ou :meth:`__delete__`. Lorsque l'attribut d'une classe est un " "descripteur, son comportement spécial est déclenché lors de la recherche des " -"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter " -"ou effacer un attribut, Python recherche l'objet nommé *b* dans le " -"dictionnaire de la classe de *a*. Mais si *b* est un descripteur, c'est la " -"méthode de ce descripteur qui est alors appelée. Comprendre les descripteurs " -"est requis pour avoir une compréhension approfondie de Python, ils sont la " -"base de nombre de ses caractéristiques notamment les fonctions, méthodes, " +"attributs. Normalement, lorsque vous écrivez *a.b* pour obtenir, affecter ou " +"effacer un attribut, Python recherche l'objet nommé *b* dans le dictionnaire " +"de la classe de *a*. Mais si *b* est un descripteur, c'est la méthode de ce " +"descripteur qui est alors appelée. Comprendre les descripteurs est requis " +"pour avoir une compréhension approfondie de Python, ils sont la base de " +"nombre de ses caractéristiques notamment les fonctions, méthodes, " "propriétés, méthodes de classes, méthodes statiques et les références aux " "classes parentes." -#: ../Doc/glossary.rst:300 +#: glossary.rst:304 msgid "" "For more information about descriptors' methods, see :ref:`descriptors`." msgstr "" "Pour plus d'informations sur les méthodes des descripteurs, consultez :ref:" "`descriptors`." -#: ../Doc/glossary.rst:301 +#: glossary.rst:305 msgid "dictionary" msgstr "dictionnaire" -#: ../Doc/glossary.rst:303 +#: glossary.rst:307 msgid "" "An associative array, where arbitrary keys are mapped to values. The keys " "can be any object with :meth:`__hash__` and :meth:`__eq__` methods. Called a " @@ -725,11 +736,27 @@ msgstr "" "n'importe quel objet possédant les méthodes :meth:`__hash__` et :meth:" "`__eq__`. En Perl, les dictionnaires sont appelés \"*hash*\"." -#: ../Doc/glossary.rst:306 +#: glossary.rst:310 +msgid "dictionary comprehension" +msgstr "dictionnaire en compréhension (ou dictionnaire en intension)" + +#: glossary.rst:312 +msgid "" +"A compact way to process all or part of the elements in an iterable and " +"return a dictionary with the results. ``results = {n: n ** 2 for n in " +"range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n " +"** 2``. See :ref:`comprehensions`." +msgstr "" +"Écriture concise pour traiter tout ou partie des éléments d'un itérable et " +"renvoyer un dictionnaire contenant les résultats. ``results = {n: n ** 2 for " +"n in range(10)}`` génère un dictionnaire contenant des clés ``n`` liées à " +"leurs valeurs ``n ** 2``. Voir :ref:`compréhensions `." + +#: glossary.rst:316 msgid "dictionary view" msgstr "vue de dictionnaire" -#: ../Doc/glossary.rst:308 +#: glossary.rst:318 msgid "" "The objects returned from :meth:`dict.keys`, :meth:`dict.values`, and :meth:" "`dict.items` are called dictionary views. They provide a dynamic view on the " @@ -743,11 +770,11 @@ msgstr "" "change. Pour transformer une vue en vraie liste, utilisez " "``list(dictview)``. Voir :ref:`dict-views`." -#: ../Doc/glossary.rst:314 +#: glossary.rst:324 msgid "docstring" msgstr "*docstring* (chaîne de documentation)" -#: ../Doc/glossary.rst:316 +#: glossary.rst:326 msgid "" "A string literal which appears as the first expression in a class, function " "or module. While ignored when the suite is executed, it is recognized by " @@ -756,16 +783,16 @@ msgid "" "the canonical place for documentation of the object." msgstr "" "Première chaîne littérale qui apparaît dans l'expression d'une classe, " -"fonction, ou module. Bien qu'ignorée à l'exécution, elles est reconnue par " -"le compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " +"fonction, ou module. Bien qu'ignorée à l'exécution, elle est reconnue par le " +"compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " "fonction ou du module. Comme cette chaîne est disponible par introspection, " "c'est l'endroit idéal pour documenter l'objet." -#: ../Doc/glossary.rst:322 +#: glossary.rst:332 msgid "duck-typing" msgstr "*duck-typing*" -#: ../Doc/glossary.rst:324 +#: glossary.rst:334 msgid "" "A programming style which does not look at an object's type to determine if " "it has the right interface; instead, the method or attribute is simply " @@ -789,11 +816,11 @@ msgstr "" "*duck-typing* utilise plutôt :func:`hasattr` ou la programmation :term:" "`EAFP`." -#: ../Doc/glossary.rst:333 +#: glossary.rst:343 msgid "EAFP" msgstr "EAFP" -#: ../Doc/glossary.rst:335 +#: glossary.rst:345 msgid "" "Easier to ask for forgiveness than permission. This common Python coding " "style assumes the existence of valid keys or attributes and catches " @@ -810,11 +837,11 @@ msgstr "" "keyword:`except`. Cette technique de programmation contraste avec le style :" "term:`LBYL` utilisé couramment dans les langages tels que C." -#: ../Doc/glossary.rst:341 +#: glossary.rst:351 msgid "expression" msgstr "expression" -#: ../Doc/glossary.rst:343 +#: glossary.rst:353 msgid "" "A piece of syntax which can be evaluated to some value. In other words, an " "expression is an accumulation of expression elements like literals, names, " @@ -834,11 +861,11 @@ msgstr "" "expressions, tel que :keyword:`while`. Les affectations sont également des " "instructions et non des expressions." -#: ../Doc/glossary.rst:350 +#: glossary.rst:360 msgid "extension module" msgstr "module d'extension" -#: ../Doc/glossary.rst:352 +#: glossary.rst:362 msgid "" "A module written in C or C++, using Python's C API to interact with the core " "and with user code." @@ -846,11 +873,11 @@ msgstr "" "Module écrit en C ou C++, utilisant l'API C de Python pour interagir avec " "Python et le code de l'utilisateur." -#: ../Doc/glossary.rst:354 +#: glossary.rst:364 msgid "f-string" msgstr "f-string" -#: ../Doc/glossary.rst:356 +#: glossary.rst:366 msgid "" "String literals prefixed with ``'f'`` or ``'F'`` are commonly called \"f-" "strings\" which is short for :ref:`formatted string literals `. " @@ -860,11 +887,11 @@ msgstr "" "raccourci pour :ref:`formatted string literals `. Voir la :pep:" "`498`." -#: ../Doc/glossary.rst:359 +#: glossary.rst:369 msgid "file object" msgstr "objet fichier" -#: ../Doc/glossary.rst:361 +#: glossary.rst:371 msgid "" "An object exposing a file-oriented API (with methods such as :meth:`read()` " "or :meth:`write()`) to an underlying resource. Depending on the way it was " @@ -877,11 +904,11 @@ msgstr "" "méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " "il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " "disque ou à un autre type de stockage ou de communication (typiquement " -"l'entrée standard, la sortie standard, un tampon en mémoire, une socket " -"réseau, ...). Les objets fichiers sont aussi appelés :dfn:`file-like-" -"objects` ou :dfn:`streams`." +"l'entrée standard, la sortie standard, un tampon en mémoire, un connecteur " +"réseau…). Les objets fichiers sont aussi appelés :dfn:`file-like-objects` " +"ou :dfn:`streams`." -#: ../Doc/glossary.rst:369 +#: glossary.rst:379 msgid "" "There are actually three categories of file objects: raw :term:`binary files " "`, buffered :term:`binary files ` and :term:`text " @@ -889,26 +916,26 @@ msgid "" "The canonical way to create a file object is by using the :func:`open` " "function." msgstr "" -"Il existe en réalité trois catégories de fichiers objets : les :term:" +"Il existe en réalité trois catégories de fichiers objets : les :term:" "`fichiers binaires ` bruts, les :term:`fichiers binaires " "` avec tampon (*buffer*) et les :term:`fichiers textes " "`. Leurs interfaces sont définies dans le module :mod:`io`. " "Le moyen le plus simple et direct de créer un objet fichier est d'utiliser " "la fonction :func:`open`." -#: ../Doc/glossary.rst:374 +#: glossary.rst:384 msgid "file-like object" msgstr "objet fichier-compatible" -#: ../Doc/glossary.rst:376 +#: glossary.rst:386 msgid "A synonym for :term:`file object`." msgstr "Synonyme de :term:`objet fichier`." -#: ../Doc/glossary.rst:377 +#: glossary.rst:387 msgid "finder" msgstr "chercheur" -#: ../Doc/glossary.rst:379 +#: glossary.rst:389 msgid "" "An object that tries to find the :term:`loader` for a module that is being " "imported." @@ -916,26 +943,26 @@ msgstr "" "Objet qui essaie de trouver un :term:`chargeur ` pour le module en " "cours d'importation." -#: ../Doc/glossary.rst:382 +#: glossary.rst:392 msgid "" "Since Python 3.3, there are two types of finder: :term:`meta path finders " "` for use with :data:`sys.meta_path`, and :term:`path " "entry finders ` for use with :data:`sys.path_hooks`." msgstr "" -"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" +"Depuis Python 3.3, il existe deux types de chercheurs : les :term:" "`chercheurs dans les méta-chemins ` à utiliser avec :data:" -"`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." -#: ../Doc/glossary.rst:386 +#: glossary.rst:396 msgid "See :pep:`302`, :pep:`420` and :pep:`451` for much more detail." msgstr "Voir les :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails." -#: ../Doc/glossary.rst:387 +#: glossary.rst:397 msgid "floor division" msgstr "division entière" -#: ../Doc/glossary.rst:389 +#: glossary.rst:399 msgid "" "Mathematical division that rounds down to nearest integer. The floor " "division operator is ``//``. For example, the expression ``11 // 4`` " @@ -949,11 +976,11 @@ msgstr "" "4`` vaut ``-3`` car l'arrondi se fait à l'entier inférieur. Voir la :pep:" "`328`." -#: ../Doc/glossary.rst:394 +#: glossary.rst:404 msgid "function" msgstr "fonction" -#: ../Doc/glossary.rst:396 +#: glossary.rst:406 msgid "" "A series of statements which returns some value to a caller. It can also be " "passed zero or more :term:`arguments ` which may be used in the " @@ -965,15 +992,15 @@ msgstr "" "corps de la fonction. Voir aussi :term:`paramètre`, :term:`méthode` et :ref:" "`function`." -#: ../Doc/glossary.rst:400 +#: glossary.rst:410 msgid "function annotation" msgstr "annotation de fonction" -#: ../Doc/glossary.rst:402 +#: glossary.rst:412 msgid "An :term:`annotation` of a function parameter or return value." msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour." -#: ../Doc/glossary.rst:404 +#: glossary.rst:414 msgid "" "Function annotations are usually used for :term:`type hints `: " "for example, this function is expected to take two :class:`int` arguments " @@ -984,25 +1011,25 @@ msgstr "" "prendre deux arguments :class:`int` et devrait également avoir une valeur de " "retour de type :class:`int` ::" -#: ../Doc/glossary.rst:412 +#: glossary.rst:422 msgid "Function annotation syntax is explained in section :ref:`function`." msgstr "" "L'annotation syntaxique de la fonction est expliquée dans la section :ref:" "`function`." -#: ../Doc/glossary.rst:414 +#: glossary.rst:424 msgid "" "See :term:`variable annotation` and :pep:`484`, which describe this " "functionality." msgstr "" -"Voir :term:`variable annotation` et :pep:` 484`, qui décrivent cette " +"Voir :term:`variable annotation` et :pep:`484`, qui décrivent cette " "fonctionnalité." -#: ../Doc/glossary.rst:416 +#: glossary.rst:426 msgid "__future__" msgstr "__future__" -#: ../Doc/glossary.rst:418 +#: glossary.rst:428 msgid "" "A pseudo-module which programmers can use to enable new language features " "which are not compatible with the current interpreter." @@ -1011,7 +1038,7 @@ msgstr "" "nouvelles fonctionnalités du langage qui ne sont pas compatibles avec " "l'interpréteur utilisé." -#: ../Doc/glossary.rst:421 +#: glossary.rst:431 msgid "" "By importing the :mod:`__future__` module and evaluating its variables, you " "can see when a new feature was first added to the language and when it " @@ -1021,11 +1048,11 @@ msgstr "" "pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée dans le " "langage et quand elle devient le comportement par défaut ::" -#: ../Doc/glossary.rst:428 +#: glossary.rst:438 msgid "garbage collection" msgstr "ramasse-miettes" -#: ../Doc/glossary.rst:430 +#: glossary.rst:440 msgid "" "The process of freeing memory when it is not used anymore. Python performs " "garbage collection via reference counting and a cyclic garbage collector " @@ -1038,11 +1065,11 @@ msgstr "" "et casser les références circulaires. Le ramasse-miettes peut être contrôlé " "en utilisant le module :mod:`gc`." -#: ../Doc/glossary.rst:436 +#: glossary.rst:446 msgid "generator" msgstr "générateur" -#: ../Doc/glossary.rst:438 +#: glossary.rst:448 msgid "" "A function which returns a :term:`generator iterator`. It looks like a " "normal function except that it contains :keyword:`yield` expressions for " @@ -1054,7 +1081,7 @@ msgstr "" "expressions :keyword:`yield` produisant une série de valeurs utilisable dans " "une boucle *for* ou récupérées une à une via la fonction :func:`next`." -#: ../Doc/glossary.rst:443 +#: glossary.rst:453 msgid "" "Usually refers to a generator function, but may refer to a *generator " "iterator* in some contexts. In cases where the intended meaning isn't " @@ -1065,15 +1092,15 @@ msgstr "" "cas où le sens voulu n'est pas clair, utiliser les termes complets lève " "l’ambigüité." -#: ../Doc/glossary.rst:446 +#: glossary.rst:456 msgid "generator iterator" msgstr "itérateur de générateur" -#: ../Doc/glossary.rst:448 +#: glossary.rst:458 msgid "An object created by a :term:`generator` function." msgstr "Objet créé par une fonction :term:`générateur`." -#: ../Doc/glossary.rst:450 +#: glossary.rst:460 msgid "" "Each :keyword:`yield` temporarily suspends processing, remembering the " "location execution state (including local variables and pending try-" @@ -1086,11 +1113,11 @@ msgstr "" "il en était (contrairement à une fonction qui prendrait un nouveau départ à " "chaque invocation)." -#: ../Doc/glossary.rst:457 +#: glossary.rst:467 msgid "generator expression" msgstr "expression génératrice" -#: ../Doc/glossary.rst:459 +#: glossary.rst:469 msgid "" "An expression that returns an iterator. It looks like a normal expression " "followed by a :keyword:`!for` clause defining a loop variable, range, and an " @@ -1102,11 +1129,11 @@ msgstr "" "intervalle et une clause :keyword:`!if` optionnelle. Toute cette expression " "génère des valeurs pour la fonction qui l'entoure ::" -#: ../Doc/glossary.rst:466 +#: glossary.rst:476 msgid "generic function" msgstr "fonction générique" -#: ../Doc/glossary.rst:468 +#: glossary.rst:478 msgid "" "A function composed of multiple functions implementing the same operation " "for different types. Which implementation should be used during a call is " @@ -1116,7 +1143,7 @@ msgstr "" "pour différents types. L'implémentation à utiliser est déterminée lors de " "l'appel par l'algorithme de répartition." -#: ../Doc/glossary.rst:472 +#: glossary.rst:482 msgid "" "See also the :term:`single dispatch` glossary entry, the :func:`functools." "singledispatch` decorator, and :pep:`443`." @@ -1124,19 +1151,19 @@ msgstr "" "Voir aussi :term:`single dispatch`, le décorateur :func:`functools." "singledispatch` et la :pep:`443`." -#: ../Doc/glossary.rst:475 +#: glossary.rst:485 msgid "GIL" msgstr "GIL" -#: ../Doc/glossary.rst:477 +#: glossary.rst:487 msgid "See :term:`global interpreter lock`." msgstr "Voir :term:`global interpreter lock`." -#: ../Doc/glossary.rst:478 +#: glossary.rst:488 msgid "global interpreter lock" msgstr "verrou global de l'interpréteur" -#: ../Doc/glossary.rst:480 +#: glossary.rst:490 msgid "" "The mechanism used by the :term:`CPython` interpreter to assure that only " "one thread executes Python :term:`bytecode` at a time. This simplifies the " @@ -1156,7 +1183,7 @@ msgstr "" "au détriment malheureusement de beaucoup du parallélisme possible sur les " "machines ayant plusieurs processeurs." -#: ../Doc/glossary.rst:489 +#: glossary.rst:499 msgid "" "However, some extension modules, either standard or third-party, are " "designed so as to release the GIL when doing computationally-intensive tasks " @@ -1168,7 +1195,7 @@ msgstr "" "compression ou le hachage. De la même manière, le GIL est toujours libéré " "lors des entrées / sorties." -#: ../Doc/glossary.rst:494 +#: glossary.rst:504 msgid "" "Past efforts to create a \"free-threaded\" interpreter (one which locks " "shared data at a much finer granularity) have not been successful because " @@ -1182,11 +1209,11 @@ msgstr "" "corriger ce problème de performance induit mènerait à une implémentation " "beaucoup plus compliquée et donc plus coûteuse à maintenir." -#: ../Doc/glossary.rst:500 +#: glossary.rst:510 msgid "hash-based pyc" msgstr "*pyc* utilisant le hachage" -#: ../Doc/glossary.rst:502 +#: glossary.rst:512 msgid "" "A bytecode cache file that uses the hash rather than the last-modified time " "of the corresponding source file to determine its validity. See :ref:`pyc-" @@ -1197,11 +1224,11 @@ msgstr "" "source correspondant pour déterminer sa validité. Voir :ref:`pyc-" "invalidation`." -#: ../Doc/glossary.rst:505 +#: glossary.rst:515 msgid "hashable" msgstr "hachable" -#: ../Doc/glossary.rst:507 +#: glossary.rst:517 msgid "" "An object is *hashable* if it has a hash value which never changes during " "its lifetime (it needs a :meth:`__hash__` method), and can be compared to " @@ -1214,7 +1241,7 @@ msgstr "" "hachables dont la comparaison par ``__eq__`` est vraie doivent avoir la même " "empreinte." -#: ../Doc/glossary.rst:512 +#: glossary.rst:522 msgid "" "Hashability makes an object usable as a dictionary key and a set member, " "because these data structures use the hash value internally." @@ -1223,7 +1250,7 @@ msgstr "" "en tant que membre d'un ensemble (type *set*), car ces structures de données " "utilisent ce *hash*." -#: ../Doc/glossary.rst:515 +#: glossary.rst:525 msgid "" "Most of Python's immutable built-in objects are hashable; mutable containers " "(such as lists or dictionaries) are not; immutable containers (such as " @@ -1240,11 +1267,11 @@ msgstr "" "considérées différentes (sauf avec elles-mêmes) et leur valeur de hachage " "est calculée à partir de leur :func:`id`." -#: ../Doc/glossary.rst:522 +#: glossary.rst:532 msgid "IDLE" msgstr "IDLE" -#: ../Doc/glossary.rst:524 +#: glossary.rst:534 msgid "" "An Integrated Development Environment for Python. IDLE is a basic editor " "and interpreter environment which ships with the standard distribution of " @@ -1253,11 +1280,11 @@ msgstr "" "Environnement de développement intégré pour Python. IDLE est un éditeur " "basique et un interpréteur livré avec la distribution standard de Python." -#: ../Doc/glossary.rst:527 +#: glossary.rst:537 msgid "immutable" msgstr "immuable" -#: ../Doc/glossary.rst:529 +#: glossary.rst:539 msgid "" "An object with a fixed value. Immutable objects include numbers, strings " "and tuples. Such an object cannot be altered. A new object has to be " @@ -1271,11 +1298,11 @@ msgstr "" "quand une valeur de *hash* constante est requise, typiquement en clé de " "dictionnaire." -#: ../Doc/glossary.rst:534 +#: glossary.rst:544 msgid "import path" msgstr "chemin des importations" -#: ../Doc/glossary.rst:536 +#: glossary.rst:546 msgid "" "A list of locations (or :term:`path entries `) that are searched " "by the :term:`path based finder` for modules to import. During import, this " @@ -1284,25 +1311,25 @@ msgid "" msgstr "" "Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " "basé sur les chemins ` cherche les modules à importer. " -"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " +"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " "pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " "paquet parent." -#: ../Doc/glossary.rst:541 +#: glossary.rst:551 msgid "importing" msgstr "importer" -#: ../Doc/glossary.rst:543 +#: glossary.rst:553 msgid "" "The process by which Python code in one module is made available to Python " "code in another module." msgstr "Processus rendant le code Python d'un module disponible dans un autre." -#: ../Doc/glossary.rst:545 +#: glossary.rst:555 msgid "importer" msgstr "importateur" -#: ../Doc/glossary.rst:547 +#: glossary.rst:557 msgid "" "An object that both finds and loads a module; both a :term:`finder` and :" "term:`loader` object." @@ -1310,11 +1337,11 @@ msgstr "" "Objet qui trouve et charge un module, en même temps un :term:`chercheur " "` et un :term:`chargeur `." -#: ../Doc/glossary.rst:549 +#: glossary.rst:559 msgid "interactive" msgstr "interactif" -#: ../Doc/glossary.rst:551 +#: glossary.rst:561 msgid "" "Python has an interactive interpreter which means you can enter statements " "and expressions at the interpreter prompt, immediately execute them and see " @@ -1329,11 +1356,11 @@ msgstr "" "de votre ordinateur). C'est un moyen puissant pour tester de nouvelles idées " "ou étudier de nouveaux modules (souvenez-vous de ``help(x)``)." -#: ../Doc/glossary.rst:557 +#: glossary.rst:567 msgid "interpreted" msgstr "interprété" -#: ../Doc/glossary.rst:559 +#: glossary.rst:569 msgid "" "Python is an interpreted language, as opposed to a compiled one, though the " "distinction can be blurry because of the presence of the bytecode compiler. " @@ -1350,11 +1377,11 @@ msgstr "" "développement / débogage plus court que les langages compilés. Cependant, " "ils s'exécutent généralement plus lentement. Voir aussi :term:`interactif`." -#: ../Doc/glossary.rst:566 +#: glossary.rst:576 msgid "interpreter shutdown" msgstr "arrêt de l'interpréteur" -#: ../Doc/glossary.rst:568 +#: glossary.rst:578 msgid "" "When asked to shut down, the Python interpreter enters a special phase where " "it gradually releases all allocated resources, such as modules and various " @@ -1370,11 +1397,12 @@ msgstr "" "modules ou quelques structures de données internes. Il fait aussi quelques " "appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " "dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " -"exécuté lors de l'arrêt peut rencontrer quelques exception puisque les " -"ressources auxquelles il fait appel pourraient ne plus fonctionner, " -"(typiquement les modules des bibliothèques ou le mécanisme de *warning*)." +"exécuté lors de l'arrêt peut rencontrer des exceptions puisque les " +"ressources auxquelles il fait appel sont susceptibles de ne plus " +"fonctionner, (typiquement les modules des bibliothèques ou le mécanisme de " +"*warning*)." -#: ../Doc/glossary.rst:577 +#: glossary.rst:587 msgid "" "The main reason for interpreter shutdown is that the ``__main__`` module or " "the script being run has finished executing." @@ -1382,18 +1410,19 @@ msgstr "" "La principale raison d'arrêt de l'interpréteur est que le module " "``__main__`` ou le script en cours d'exécution a terminé de s'exécuter." -#: ../Doc/glossary.rst:579 +#: glossary.rst:589 msgid "iterable" msgstr "itérable" -#: ../Doc/glossary.rst:581 +#: glossary.rst:591 +#, fuzzy msgid "" "An object capable of returning its members one at a time. Examples of " "iterables include all sequence types (such as :class:`list`, :class:`str`, " "and :class:`tuple`) and some non-sequence types like :class:`dict`, :term:" "`file objects `, and objects of any classes you define with an :" "meth:`__iter__` method or with a :meth:`__getitem__` method that implements :" -"term:`Sequence` semantics." +"term:`Sequence ` semantics." msgstr "" "Objet capable de renvoyer ses éléments un à un. Par exemple, tous les types " "séquence (comme :class:`list`, :class:`str`, et :class:`tuple`), quelques " @@ -1401,7 +1430,7 @@ msgstr "" "tout objet d'une classe ayant une méthode :meth:`__iter__` ou :meth:" "`__getitem__` qui implémente la sémantique d'une :term:`Sequence`." -#: ../Doc/glossary.rst:588 +#: glossary.rst:598 msgid "" "Iterables can be used in a :keyword:`for` loop and in many other places " "where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " @@ -1415,20 +1444,20 @@ msgid "" msgstr "" "Les itérables peuvent être utilisés dans des boucles :keyword:`for` et à " "beaucoup d'autres endroits où une séquence est requise (:func:`zip`, :func:" -"`map`, ...). Lorsqu'un itérable est passé comme argument à la fonction " -"native :func:`iter`, celle-ci fournit en retour un itérateur sur cet " -"itérable. Cet itérateur n'est valable que pour une seule passe sur le jeu de " -"valeurs. Lors de l'utilisation d'itérables, il n'est habituellement pas " -"nécessaire d'appeler :func:`iter` ou de s'occuper soi-même des objets " -"itérateurs. L'instruction ``for`` le fait automatiquement pour vous, créant " -"une variable temporaire anonyme pour garder l'itérateur durant la boucle. " -"Voir aussi :term:`itérateur`, :term:`séquence` et :term:`générateur`." - -#: ../Doc/glossary.rst:598 +"`map`…). Lorsqu'un itérable est passé comme argument à la fonction native :" +"func:`iter`, celle-ci fournit en retour un itérateur sur cet itérable. Cet " +"itérateur n'est valable que pour une seule passe sur le jeu de valeurs. Lors " +"de l'utilisation d'itérables, il n'est habituellement pas nécessaire " +"d'appeler :func:`iter` ou de s'occuper soi-même des objets itérateurs. " +"L'instruction ``for`` le fait automatiquement pour vous, créant une variable " +"temporaire anonyme pour garder l'itérateur durant la boucle. Voir aussi :" +"term:`itérateur`, :term:`séquence` et :term:`générateur`." + +#: glossary.rst:608 msgid "iterator" msgstr "itérateur" -#: ../Doc/glossary.rst:600 +#: glossary.rst:610 msgid "" "An object representing a stream of data. Repeated calls to the iterator's :" "meth:`~iterator.__next__` method (or passing it to the built-in function :" @@ -1452,7 +1481,7 @@ msgstr "" "point, l'itérateur est épuisé et tous les appels suivants à sa méthode :meth:" "`__next__` lèveront encore une exception :exc:`StopIteration`. Les " "itérateurs doivent avoir une méthode :meth:`__iter__` qui renvoie l'objet " -"itérateur lui même, de façon à ce que chaque itérateur soit aussi itérable " +"itérateur lui-même, de façon à ce que chaque itérateur soit aussi itérable " "et puisse être utilisé dans la plupart des endroits où d'autres itérables " "sont attendus. Une exception notable est un code qui tente plusieurs " "itérations complètes. Un objet conteneur, (tel que :class:`list`) produit un " @@ -1461,15 +1490,15 @@ msgstr "" "itérateur donnerait simplement le même objet itérateur épuisé utilisé dans " "son itération précédente, le faisant ressembler à un conteneur vide." -#: ../Doc/glossary.rst:615 +#: glossary.rst:625 msgid "More information can be found in :ref:`typeiter`." msgstr "Vous trouverez davantage d'informations dans :ref:`typeiter`." -#: ../Doc/glossary.rst:616 +#: glossary.rst:626 msgid "key function" msgstr "fonction clé" -#: ../Doc/glossary.rst:618 +#: glossary.rst:628 msgid "" "A key function or collation function is a callable that returns a value used " "for sorting or ordering. For example, :func:`locale.strxfrm` is used to " @@ -1480,7 +1509,7 @@ msgstr "" "utilisée pour générer une clé de classement prenant en compte les " "conventions de classement spécifiques aux paramètres régionaux courants." -#: ../Doc/glossary.rst:623 +#: glossary.rst:633 msgid "" "A number of tools in Python accept key functions to control how elements are " "ordered or grouped. They include :func:`min`, :func:`max`, :func:`sorted`, :" @@ -1493,7 +1522,7 @@ msgstr "" "merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest` et :func:`itertools." "groupby`." -#: ../Doc/glossary.rst:629 +#: glossary.rst:639 msgid "" "There are several ways to create a key function. For example. the :meth:" "`str.lower` method can serve as a key function for case insensitive sorts. " @@ -1509,24 +1538,24 @@ msgstr "" "recherches insensibles à la casse. Aussi, il est possible de créer des " "fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " "(r[0], r[2])``. Vous noterez que le module :mod:`operator` propose des " -"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" +"constructeurs de fonctions clefs : :func:`~operator.attrgetter`, :func:" "`~operator.itemgetter` et :func:`~operator.methodcaller`. Voir :ref:`Comment " "Trier ` pour des exemples de création et d'utilisation de " "fonctions clefs." -#: ../Doc/glossary.rst:637 +#: glossary.rst:647 msgid "keyword argument" msgstr "argument nommé" -#: ../Doc/glossary.rst:639 ../Doc/glossary.rst:914 +#: glossary.rst:926 msgid "See :term:`argument`." msgstr "Voir :term:`argument`." -#: ../Doc/glossary.rst:640 +#: glossary.rst:650 msgid "lambda" msgstr "lambda" -#: ../Doc/glossary.rst:642 +#: glossary.rst:652 msgid "" "An anonymous inline function consisting of a single :term:`expression` which " "is evaluated when the function is called. The syntax to create a lambda " @@ -1534,14 +1563,14 @@ msgid "" msgstr "" "Fonction anonyme sous la forme d'une :term:`expression` et ne contenant " "qu'une seule expression, exécutée lorsque la fonction est appelée. La " -"syntaxe pour créer des fonctions lambda est: ``lambda [parameters]: " +"syntaxe pour créer des fonctions lambda est : ``lambda [parameters]: " "expression``" -#: ../Doc/glossary.rst:645 +#: glossary.rst:655 msgid "LBYL" msgstr "LBYL" -#: ../Doc/glossary.rst:647 +#: glossary.rst:657 msgid "" "Look before you leap. This coding style explicitly tests for pre-conditions " "before making calls or lookups. This style contrasts with the :term:`EAFP` " @@ -1553,7 +1582,7 @@ msgstr "" "appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " "caractérise par la présence de beaucoup d'instructions :keyword:`if`." -#: ../Doc/glossary.rst:652 +#: glossary.rst:662 msgid "" "In a multi-threaded environment, the LBYL approach can risk introducing a " "race condition between \"the looking\" and \"the leaping\". For example, " @@ -1569,11 +1598,11 @@ msgstr "" "l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " "l'approche EAFP." -#: ../Doc/glossary.rst:657 +#: glossary.rst:667 msgid "list" msgstr "*list*" -#: ../Doc/glossary.rst:659 +#: glossary.rst:669 msgid "" "A built-in Python :term:`sequence`. Despite its name it is more akin to an " "array in other languages than to a linked list since access to elements is " @@ -1583,11 +1612,11 @@ msgstr "" "``list`` ressemble plus à un tableau (*array* dans la plupart des langages) " "qu'à une liste chaînée puisque les accès se font en O(1)." -#: ../Doc/glossary.rst:662 +#: glossary.rst:672 msgid "list comprehension" msgstr "liste en compréhension (ou liste en intension)" -#: ../Doc/glossary.rst:664 +#: glossary.rst:674 msgid "" "A compact way to process all or part of the elements in a sequence and " "return a list with the results. ``result = ['{:#04x}'.format(x) for x in " @@ -1599,14 +1628,14 @@ msgstr "" "et renvoyer une liste contenant les résultats. ``result = ['{:#04x}'." "format(x) for x in range(256) if x % 2 == 0]`` génère la liste composée des " "nombres pairs de 0 à 255 écrits sous formes de chaînes de caractères et en " -"hexadécimal (``0x``...). La clause :keyword:`if` est optionnelle. Si elle " -"est omise, tous les éléments du ``range(256)`` seront utilisés." +"hexadécimal (``0x…``). La clause :keyword:`if` est optionnelle. Si elle est " +"omise, tous les éléments du ``range(256)`` seront utilisés." -#: ../Doc/glossary.rst:670 +#: glossary.rst:680 msgid "loader" msgstr "chargeur" -#: ../Doc/glossary.rst:672 +#: glossary.rst:682 msgid "" "An object that loads a module. It must define a method named :meth:" "`load_module`. A loader is typically returned by a :term:`finder`. See :pep:" @@ -1618,19 +1647,19 @@ msgstr "" "`. Voir la :pep:`302` pour plus de détails et :class:`importlib.ABC." "Loader` pour sa :term:`classe de base abstraite`." -#: ../Doc/glossary.rst:676 +#: glossary.rst:686 msgid "magic method" msgstr "méthode magique" -#: ../Doc/glossary.rst:680 +#: glossary.rst:690 msgid "An informal synonym for :term:`special method`." msgstr "Un synonyme informel de :term:`special method`." -#: ../Doc/glossary.rst:681 +#: glossary.rst:691 msgid "mapping" msgstr "tableau de correspondances" -#: ../Doc/glossary.rst:683 +#: glossary.rst:693 msgid "" "A container object that supports arbitrary key lookups and implements the " "methods specified in the :class:`~collections.abc.Mapping` or :class:" @@ -1647,11 +1676,11 @@ msgstr "" "`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " "et :class:`collections.Counter`." -#: ../Doc/glossary.rst:689 +#: glossary.rst:699 msgid "meta path finder" msgstr "chercheur dans les méta-chemins" -#: ../Doc/glossary.rst:691 +#: glossary.rst:701 msgid "" "A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " "finders are related to, but different from :term:`path entry finders `." -#: ../Doc/glossary.rst:695 +#: glossary.rst:705 msgid "" "See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " "finders implement." @@ -1669,11 +1698,11 @@ msgstr "" "Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les " "chercheurs dans les méta-chemins doivent implémenter." -#: ../Doc/glossary.rst:697 +#: glossary.rst:707 msgid "metaclass" msgstr "métaclasse" -#: ../Doc/glossary.rst:699 +#: glossary.rst:709 msgid "" "The class of a class. Class definitions create a class name, a class " "dictionary, and a list of base classes. The metaclass is responsible for " @@ -1690,22 +1719,22 @@ msgstr "" "pour rôle de réunir ces trois paramètres pour construire la classe. La " "plupart des langages orientés objet fournissent une implémentation par " "défaut. La particularité de Python est la possibilité de créer des " -"métaclasses personnalisées. La plupart des utilisateurs n'aura jamais besoin " -"de cet outil, mais lorsque le besoin survient, les métaclasses offrent des " -"solutions élégantes et puissantes. Elles sont utilisées pour journaliser les " -"accès à des propriétés, rendre sûr les environnements *multi-threads*, " -"suivre la création d'objets, implémenter des singletons et bien d'autres " -"tâches." - -#: ../Doc/glossary.rst:709 +"métaclasses personnalisées. La plupart des utilisateurs n'auront jamais " +"besoin de cet outil, mais lorsque le besoin survient, les métaclasses " +"offrent des solutions élégantes et puissantes. Elles sont utilisées pour " +"journaliser les accès à des propriétés, rendre sûrs les environnements " +"*multi-threads*, suivre la création d'objets, implémenter des singletons et " +"bien d'autres tâches." + +#: glossary.rst:719 msgid "More information can be found in :ref:`metaclasses`." -msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." +msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." -#: ../Doc/glossary.rst:710 +#: glossary.rst:720 msgid "method" msgstr "méthode" -#: ../Doc/glossary.rst:712 +#: glossary.rst:722 msgid "" "A function which is defined inside a class body. If called as an attribute " "of an instance of that class, the method will get the instance object as its " @@ -1717,11 +1746,11 @@ msgstr "" "premier :term:`argument` (qui, par convention, est habituellement nommé " "``self``). Voir :term:`function` et :term:`nested scope`." -#: ../Doc/glossary.rst:716 +#: glossary.rst:726 msgid "method resolution order" msgstr "ordre de résolution des méthodes" -#: ../Doc/glossary.rst:718 +#: glossary.rst:728 msgid "" "Method Resolution Order is the order in which base classes are searched for " "a member during lookup. See `The Python 2.3 Method Resolution Order `_ pour plus de détails sur l'algorithme utilisé par " "l'interpréteur Python depuis la version 2.3." -#: ../Doc/glossary.rst:722 +#: glossary.rst:732 msgid "module" msgstr "module" -#: ../Doc/glossary.rst:724 +#: glossary.rst:734 msgid "" "An object that serves as an organizational unit of Python code. Modules " "have a namespace containing arbitrary Python objects. Modules are loaded " @@ -1749,15 +1778,15 @@ msgstr "" "modules ont un espace de nommage et peuvent contenir n'importe quels objets " "Python. Charger des modules est appelé :term:`importer `." -#: ../Doc/glossary.rst:728 +#: glossary.rst:738 msgid "See also :term:`package`." msgstr "Voir aussi :term:`paquet`." -#: ../Doc/glossary.rst:729 +#: glossary.rst:739 msgid "module spec" msgstr "spécificateur de module" -#: ../Doc/glossary.rst:731 +#: glossary.rst:741 msgid "" "A namespace containing the import-related information used to load a module. " "An instance of :class:`importlib.machinery.ModuleSpec`." @@ -1766,19 +1795,19 @@ msgstr "" "utilisées pour charger un module. C'est une instance de la classe :class:" "`importlib.machinery.ModuleSpec`." -#: ../Doc/glossary.rst:733 +#: glossary.rst:743 msgid "MRO" msgstr "MRO" -#: ../Doc/glossary.rst:735 +#: glossary.rst:745 msgid "See :term:`method resolution order`." msgstr "Voir :term:`ordre de résolution des méthodes`." -#: ../Doc/glossary.rst:736 +#: glossary.rst:746 msgid "mutable" msgstr "muable" -#: ../Doc/glossary.rst:738 +#: glossary.rst:748 msgid "" "Mutable objects can change their value but keep their :func:`id`. See also :" "term:`immutable`." @@ -1786,26 +1815,32 @@ msgstr "" "Un objet muable peut changer de valeur tout en gardant le même :func:`id`. " "Voir aussi :term:`immuable`." -#: ../Doc/glossary.rst:740 +#: glossary.rst:750 msgid "named tuple" msgstr "n-uplet nommé" -#: ../Doc/glossary.rst:742 +#: glossary.rst:752 msgid "" "The term \"named tuple\" applies to any type or class that inherits from " "tuple and whose indexable elements are also accessible using named " "attributes. The type or class may have other features as well." msgstr "" +"Le terme \"n-uplet nommé\" s'applique à tous les types ou classes qui " +"héritent de la classe ``tuple`` et dont les éléments indexables sont aussi " +"accessibles en utilisant des attributs nommés. Les types et classes peuvent " +"avoir aussi d'autres caractéristiques." -#: ../Doc/glossary.rst:746 +#: glossary.rst:756 msgid "" "Several built-in types are named tuples, including the values returned by :" "func:`time.localtime` and :func:`os.stat`. Another example is :data:`sys." "float_info`::" msgstr "" +"Plusieurs types natifs sont appelés n-uplets, y compris les valeurs " +"retournées par :func:`time.localtime` et :func:`os.stat`. Un autre exemple " +"est :data:`sys.float_info` ::" -#: ../Doc/glossary.rst:757 -#, fuzzy +#: glossary.rst:767 msgid "" "Some named tuples are built-in types (such as the above examples). " "Alternatively, a named tuple can be created from a regular class definition " @@ -1814,18 +1849,19 @@ msgid "" "func:`collections.namedtuple`. The latter technique also adds some extra " "methods that may not be found in hand-written or built-in named tuples." msgstr "" -"Un *n-uplet nommé* peut être un type natif tel que :class:`time.struct_time` " -"ou il peut être construit comme une simple classe. Un *n-uplet nommé* " -"complet peut aussi être créé via la fonction :func:`collections.namedtuple`. " -"Cette dernière approche fournit automatiquement des fonctionnalités " -"supplémentaires, tel qu'une représentation lisible comme " -"``Employee(name='jones', title='programmer')``." +"Certains *n-uplets nommés* sont des types natifs (comme les exemples ci-" +"dessus). Sinon, un *n-uplet nommé* peut être créé à partir d'une définition " +"de classe habituelle qui hérite de :class:`tuple` et qui définit les champs " +"nommés. Une telle classe peut être écrite à la main ou être créée avec la " +"fonction :func:`collections.namedtuple`. Cette dernière méthode ajoute des " +"méthodes supplémentaires qui ne seront pas trouvées dans celles écrites à la " +"main ni dans les n-uplets nommés natifs." -#: ../Doc/glossary.rst:764 +#: glossary.rst:774 msgid "namespace" msgstr "espace de nommage" -#: ../Doc/glossary.rst:766 +#: glossary.rst:776 msgid "" "The place where a variable is stored. Namespaces are implemented as " "dictionaries. There are the local, global and built-in namespaces as well " @@ -1849,11 +1885,11 @@ msgstr "" "implémentées respectivement dans les modules :mod:`random` et :mod:" "`itertools`." -#: ../Doc/glossary.rst:776 +#: glossary.rst:786 msgid "namespace package" msgstr "paquet-espace de nommage" -#: ../Doc/glossary.rst:778 +#: glossary.rst:788 msgid "" "A :pep:`420` :term:`package` which serves only as a container for " "subpackages. Namespace packages may have no physical representation, and " @@ -1865,15 +1901,15 @@ msgstr "" "aucune représentation physique et, plus spécifiquement, ne sont pas comme " "un :term:`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." -#: ../Doc/glossary.rst:783 +#: glossary.rst:793 msgid "See also :term:`module`." msgstr "Voir aussi :term:`module`." -#: ../Doc/glossary.rst:784 +#: glossary.rst:794 msgid "nested scope" msgstr "portée imbriquée" -#: ../Doc/glossary.rst:786 +#: glossary.rst:796 msgid "" "The ability to refer to a variable in an enclosing definition. For " "instance, a function defined inside another function can refer to variables " @@ -1891,11 +1927,11 @@ msgstr "" "dans l'espace de nommage global, le mot clef :keyword:`nonlocal` permet " "d'écrire dans l'espace de nommage dans lequel est déclarée la variable." -#: ../Doc/glossary.rst:793 +#: glossary.rst:803 msgid "new-style class" msgstr "nouvelle classe" -#: ../Doc/glossary.rst:795 +#: glossary.rst:805 msgid "" "Old name for the flavor of classes now used for all class objects. In " "earlier Python versions, only new-style classes could use Python's newer, " @@ -1908,11 +1944,11 @@ msgstr "" "__slots__`, les descripteurs, les propriétés, :meth:`__getattribute__`, les " "méthodes de classe et les méthodes statiques." -#: ../Doc/glossary.rst:799 +#: glossary.rst:809 msgid "object" msgstr "objet" -#: ../Doc/glossary.rst:801 +#: glossary.rst:811 msgid "" "Any data with state (attributes or value) and defined behavior (methods). " "Also the ultimate base class of any :term:`new-style class`." @@ -1922,11 +1958,11 @@ msgstr "" "l'ancêtre commun à absolument toutes les :term:`nouvelles classes `." -#: ../Doc/glossary.rst:804 +#: glossary.rst:814 msgid "package" msgstr "paquet" -#: ../Doc/glossary.rst:806 +#: glossary.rst:816 msgid "" "A Python :term:`module` which can contain submodules or recursively, " "subpackages. Technically, a package is a Python module with an ``__path__`` " @@ -1936,15 +1972,15 @@ msgstr "" "paquets. Techniquement, un paquet est un module qui possède un attribut " "``__path__``." -#: ../Doc/glossary.rst:810 +#: glossary.rst:820 msgid "See also :term:`regular package` and :term:`namespace package`." msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." -#: ../Doc/glossary.rst:811 +#: glossary.rst:821 msgid "parameter" msgstr "paramètre" -#: ../Doc/glossary.rst:813 +#: glossary.rst:823 msgid "" "A named entity in a :term:`function` (or method) definition that specifies " "an :term:`argument` (or in some cases, arguments) that the function can " @@ -1952,32 +1988,33 @@ msgid "" msgstr "" "Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " "décrivant un :term:`argument` (ou dans certains cas des arguments) que la " -"fonction accepte. Il existe cinq sortes de paramètres :" +"fonction accepte. Il existe cinq sortes de paramètres :" -#: ../Doc/glossary.rst:817 +#: glossary.rst:827 msgid "" ":dfn:`positional-or-keyword`: specifies an argument that can be passed " "either :term:`positionally ` or as a :term:`keyword argument " "`. This is the default kind of parameter, for example *foo* and " "*bar* in the following::" msgstr "" -":dfn:`positional-or-keyword`: l'argument peut être passé soit par sa :term:" +":dfn:`positional-or-keyword` : l'argument peut être passé soit par sa :term:" "`position `, soit en tant que :term:`argument nommé `. " "C'est le type de paramètre par défaut. Par exemple, *foo* et *bar* dans " "l'exemple suivant ::" -#: ../Doc/glossary.rst:826 +#: glossary.rst:836 msgid "" ":dfn:`positional-only`: specifies an argument that can be supplied only by " -"position. Python has no syntax for defining positional-only parameters. " -"However, some built-in functions have positional-only parameters (e.g. :func:" -"`abs`)." +"position. Positional-only parameters can be defined by including a ``/`` " +"character in the parameter list of the function definition after them, for " +"example *posonly1* and *posonly2* in the following::" msgstr "" -":dfn:`positional-only`: l'argument ne peut être donné que par sa position. " -"Python n'a pas de syntaxe pour déclarer de tels paramètres, cependant des " -"fonctions natives, comme :func:`abs`, en utilisent." +":dfn:`positional-only` : définit un argument qui ne peut être fourni que par " +"position. Les paramètres *positional-only* peuvent être définis en insérant " +"un caractère \"/\" dans la liste de paramètres de la définition de fonction " +"après eux. Par exemple : *posonly1* et *posonly2* dans le code suivant ::" -#: ../Doc/glossary.rst:833 +#: glossary.rst:845 msgid "" ":dfn:`keyword-only`: specifies an argument that can be supplied only by " "keyword. Keyword-only parameters can be defined by including a single var-" @@ -1985,13 +2022,13 @@ msgid "" "definition before them, for example *kw_only1* and *kw_only2* in the " "following::" msgstr "" -":dfn:`keyword-only`: l'argument ne peut être fourni que nommé. Les " +":dfn:`keyword-only` : l'argument ne peut être fourni que nommé. Les " "paramètres *keyword-only* peuvent être définis en utilisant un seul " "paramètre *var-positional*, ou en ajoutant une étoile (``*``) seule dans la " "liste des paramètres avant eux. Par exemple, *kw_only1* et *kw_only2* dans " "le code suivant ::" -#: ../Doc/glossary.rst:841 +#: glossary.rst:853 msgid "" ":dfn:`var-positional`: specifies that an arbitrary sequence of positional " "arguments can be provided (in addition to any positional arguments already " @@ -1999,24 +2036,24 @@ msgid "" "prepending the parameter name with ``*``, for example *args* in the " "following::" msgstr "" -":dfn:`var-positional`: une séquence d'arguments positionnels peut être " +":dfn:`var-positional` : une séquence d'arguments positionnels peut être " "fournie (en plus de tous les arguments positionnels déjà acceptés par " "d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " "par une ``*``. Par exemple *args* ci-après ::" -#: ../Doc/glossary.rst:849 +#: glossary.rst:861 msgid "" ":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " "provided (in addition to any keyword arguments already accepted by other " "parameters). Such a parameter can be defined by prepending the parameter " "name with ``**``, for example *kwargs* in the example above." msgstr "" -":dfn:`var-keyword`: une quantité arbitraire d'arguments peut être passée, " +":dfn:`var-keyword` : une quantité arbitraire d'arguments peut être passée, " "chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " "d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " "paramètre par ``**``. Par exemple, *kwargs* ci-dessus." -#: ../Doc/glossary.rst:855 +#: glossary.rst:867 msgid "" "Parameters can specify both optional and required arguments, as well as " "default values for some optional arguments." @@ -2024,7 +2061,7 @@ msgstr "" "Les paramètres peuvent spécifier des arguments obligatoires ou optionnels, " "ainsi que des valeurs par défaut pour les arguments optionnels." -#: ../Doc/glossary.rst:858 +#: glossary.rst:870 msgid "" "See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " "difference between arguments and parameters `, " @@ -2036,11 +2073,11 @@ msgstr "" "parameter>` dans la FAQ, la classe :class:`inspect.Parameter`, la section :" "ref:`function` et la :pep:`362`." -#: ../Doc/glossary.rst:862 +#: glossary.rst:874 msgid "path entry" msgstr "entrée de chemin" -#: ../Doc/glossary.rst:864 +#: glossary.rst:876 msgid "" "A single location on the :term:`import path` which the :term:`path based " "finder` consults to find modules for importing." @@ -2049,11 +2086,11 @@ msgstr "" "path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les " "chemins ` consulte pour trouver des modules à importer." -#: ../Doc/glossary.rst:866 +#: glossary.rst:878 msgid "path entry finder" msgstr "chercheur de chemins" -#: ../Doc/glossary.rst:868 +#: glossary.rst:880 msgid "" "A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. a :" "term:`path entry hook`) which knows how to locate modules given a :term:" @@ -2064,7 +2101,7 @@ msgstr "" "path `) qui sait où trouver des modules lorsqu'on lui donne " "une :term:`entrée de path `." -#: ../Doc/glossary.rst:872 +#: glossary.rst:884 msgid "" "See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " "finders implement." @@ -2072,11 +2109,11 @@ msgstr "" "Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un " "chercheur d'entrée dans *path* doit implémenter." -#: ../Doc/glossary.rst:874 +#: glossary.rst:886 msgid "path entry hook" msgstr "point d'entrée pour la recherche dans *path*" -#: ../Doc/glossary.rst:876 +#: glossary.rst:888 msgid "" "A callable on the :data:`sys.path_hook` list which returns a :term:`path " "entry finder` if it knows how to find modules on a specific :term:`path " @@ -2086,11 +2123,11 @@ msgstr "" "d'entrée dans path ` s'il sait où trouver des modules " "pour une :term:`entrée dans path ` donnée." -#: ../Doc/glossary.rst:879 +#: glossary.rst:891 msgid "path based finder" msgstr "chercheur basé sur les chemins" -#: ../Doc/glossary.rst:881 +#: glossary.rst:893 msgid "" "One of the default :term:`meta path finders ` which " "searches an :term:`import path` for modules." @@ -2099,11 +2136,11 @@ msgstr "" "défaut qui cherche des modules dans un :term:`chemin des importations " "`." -#: ../Doc/glossary.rst:883 +#: glossary.rst:895 msgid "path-like object" msgstr "objet simili-chemin" -#: ../Doc/glossary.rst:885 +#: glossary.rst:897 msgid "" "An object representing a file system path. A path-like object is either a :" "class:`str` or :class:`bytes` object representing a path, or an object " @@ -2123,11 +2160,11 @@ msgstr "" "peuvent être utilisées, respectivement, pour garantir un résultat de type :" "class:`str` ou :class:`bytes` à la place. A été Introduit par la :pep:`519`." -#: ../Doc/glossary.rst:893 +#: glossary.rst:905 msgid "PEP" msgstr "PEP" -#: ../Doc/glossary.rst:895 +#: glossary.rst:907 msgid "" "Python Enhancement Proposal. A PEP is a design document providing " "information to the Python community, or describing a new feature for Python " @@ -2140,7 +2177,7 @@ msgstr "" "ou son environnement. Les PEP doivent fournir une spécification technique " "concise et une justification des fonctionnalités proposées." -#: ../Doc/glossary.rst:901 +#: glossary.rst:913 msgid "" "PEPs are intended to be the primary mechanisms for proposing major new " "features, for collecting community input on an issue, and for documenting " @@ -2155,15 +2192,15 @@ msgstr "" "l’établissement d’un consensus au sein de la communauté et de documenter les " "opinions contradictoires." -#: ../Doc/glossary.rst:907 +#: glossary.rst:919 msgid "See :pep:`1`." msgstr "Voir :pep:`1`." -#: ../Doc/glossary.rst:908 +#: glossary.rst:920 msgid "portion" msgstr "portion" -#: ../Doc/glossary.rst:910 +#: glossary.rst:922 msgid "" "A set of files in a single directory (possibly stored in a zip file) that " "contribute to a namespace package, as defined in :pep:`420`." @@ -2172,15 +2209,15 @@ msgstr "" "fichier zip) qui contribue à l'espace de nommage d'un paquet, tel que défini " "dans la :pep:`420`." -#: ../Doc/glossary.rst:912 +#: glossary.rst:924 msgid "positional argument" msgstr "argument positionnel" -#: ../Doc/glossary.rst:915 +#: glossary.rst:927 msgid "provisional API" msgstr "API provisoire" -#: ../Doc/glossary.rst:917 +#: glossary.rst:929 msgid "" "A provisional API is one which has been deliberately excluded from the " "standard library's backwards compatibility guarantees. While major changes " @@ -2193,24 +2230,24 @@ msgstr "" "Une API provisoire est une API qui n'offre aucune garantie de " "rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " "Bien que des changements majeurs d'une telle interface ne soient pas " -"attendus, tant qu'elle est étiquetée provisoire, des changement cassant la " +"attendus, tant qu'elle est étiquetée provisoire, des changements cassant la " "rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " "les développeurs principaux le jugent nécessaire. Ces modifications ne " "surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " "pas été identifiés avant l'ajout de l'API." -#: ../Doc/glossary.rst:926 +#: glossary.rst:938 msgid "" "Even for provisional APIs, backwards incompatible changes are seen as a " "\"solution of last resort\" - every attempt will still be made to find a " "backwards compatible resolution to any identified problems." msgstr "" -"Même pour les API provisoires, les changement cassant la rétrocompatibilité " -"sont considérées comme des \"solutions de dernier recours\". Tout ce qui est " -"possible sera fait pour tenter de résoudre les problème en conservant la " +"Même pour les API provisoires, les changements cassant la rétrocompatibilité " +"sont considérés comme des \"solutions de dernier recours\". Tout ce qui est " +"possible sera fait pour tenter de résoudre les problèmes en conservant la " "rétrocompatibilité." -#: ../Doc/glossary.rst:930 +#: glossary.rst:942 msgid "" "This process allows the standard library to continue to evolve over time, " "without locking in problematic design errors for extended periods of time. " @@ -2220,19 +2257,19 @@ msgstr "" "le temps, sans se bloquer longtemps sur des erreurs d'architecture. Voir la :" "pep:`411` pour plus de détails." -#: ../Doc/glossary.rst:933 +#: glossary.rst:945 msgid "provisional package" msgstr "paquet provisoire" -#: ../Doc/glossary.rst:935 +#: glossary.rst:947 msgid "See :term:`provisional API`." msgstr "Voir :term:`provisional API`." -#: ../Doc/glossary.rst:936 +#: glossary.rst:948 msgid "Python 3000" msgstr "Python 3000" -#: ../Doc/glossary.rst:938 +#: glossary.rst:950 msgid "" "Nickname for the Python 3.x release line (coined long ago when the release " "of version 3 was something in the distant future.) This is also abbreviated " @@ -2241,11 +2278,11 @@ msgstr "" "Surnom donné à la série des Python 3.x (très vieux surnom donné à l'époque " "où Python 3 représentait un futur lointain). Aussi abrégé *Py3k*." -#: ../Doc/glossary.rst:941 +#: glossary.rst:953 msgid "Pythonic" msgstr "*Pythonique*" -#: ../Doc/glossary.rst:943 +#: glossary.rst:955 msgid "" "An idea or piece of code which closely follows the most common idioms of the " "Python language, rather than implementing code using concepts common to " @@ -2261,16 +2298,16 @@ msgstr "" "les gens qui ne sont pas habitués à Python utilisent parfois un compteur " "numérique à la place ::" -#: ../Doc/glossary.rst:953 +#: glossary.rst:965 msgid "As opposed to the cleaner, Pythonic method::" msgstr "" "Plutôt qu'utiliser la méthode, plus propre et élégante, donc *Pythonique* ::" -#: ../Doc/glossary.rst:957 +#: glossary.rst:969 msgid "qualified name" msgstr "nom qualifié" -#: ../Doc/glossary.rst:959 +#: glossary.rst:971 msgid "" "A dotted name showing the \"path\" from a module's global scope to a class, " "function or method defined in that module, as defined in :pep:`3155`. For " @@ -2282,7 +2319,7 @@ msgstr "" "module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de " "premier niveau, le nom qualifié est le même que le nom de l'objet ::" -#: ../Doc/glossary.rst:976 +#: glossary.rst:988 msgid "" "When used to refer to modules, the *fully qualified name* means the entire " "dotted path to the module, including any parent packages, e.g. ``email.mime." @@ -2291,13 +2328,13 @@ 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:983 +#: glossary.rst:995 msgid "reference count" msgstr "nombre de références" -#: ../Doc/glossary.rst:985 +#: glossary.rst:997 msgid "" "The number of references to an object. When the reference count of an " "object drops to zero, it is deallocated. Reference counting is generally " @@ -2313,11 +2350,11 @@ msgstr "" "func:`~sys.getrefcount` que les développeurs peuvent utiliser pour obtenir " "le nombre de références à un objet donné." -#: ../Doc/glossary.rst:991 +#: glossary.rst:1003 msgid "regular package" msgstr "paquet classique" -#: ../Doc/glossary.rst:993 +#: glossary.rst:1005 msgid "" "A traditional :term:`package`, such as a directory containing an ``__init__." "py`` file." @@ -2325,15 +2362,15 @@ msgstr "" ":term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " "``__init__.py``." -#: ../Doc/glossary.rst:996 +#: glossary.rst:1008 msgid "See also :term:`namespace package`." msgstr "Voir aussi :term:`paquet-espace de nommage `." -#: ../Doc/glossary.rst:997 +#: glossary.rst:1009 msgid "__slots__" msgstr "``__slots__``" -#: ../Doc/glossary.rst:999 +#: glossary.rst:1011 msgid "" "A declaration inside a class that saves memory by pre-declaring space for " "instance attributes and eliminating instance dictionaries. Though popular, " @@ -2348,11 +2385,11 @@ msgstr "" "nombre d'instances dans une application devient un sujet critique pour la " "mémoire." -#: ../Doc/glossary.rst:1004 +#: glossary.rst:1016 msgid "sequence" msgstr "séquence" -#: ../Doc/glossary.rst:1006 +#: glossary.rst:1018 msgid "" "An :term:`iterable` which supports efficient element access using integer " "indices via the :meth:`__getitem__` special method and defines a :meth:" @@ -2365,19 +2402,20 @@ msgstr "" ":term:`itérable` qui offre un accès efficace à ses éléments par un indice " "sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " "qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " -"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" +"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, et :class:" "`bytes`. Notez que :class:`dict` possède aussi une méthode :meth:" "`__getitem__` et une méthode :meth:`__len__`, mais il est considéré comme un " "*mapping* plutôt qu'une séquence, car ses accès se font par une clé " "arbitraire :term:`immuable` plutôt qu'un nombre entier." -#: ../Doc/glossary.rst:1015 +#: glossary.rst:1027 +#, fuzzy msgid "" "The :class:`collections.abc.Sequence` abstract base class defines a much " "richer interface that goes beyond just :meth:`__getitem__` and :meth:" "`__len__`, adding :meth:`count`, :meth:`index`, :meth:`__contains__`, and :" "meth:`__reversed__`. Types that implement this expanded interface can be " -"registered explicitly using :func:`~abc.register`." +"registered explicitly using :func:`~abc.ABCMeta.register`." msgstr "" "La classe abstraite de base :class:`collections.abc.Sequence` définit une " "interface plus riche qui va au-delà des simples :meth:`__getitem__` et :meth:" @@ -2385,11 +2423,27 @@ msgstr "" "et :meth:`__reversed__`. Les types qui implémentent cette interface étendue " "peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." -#: ../Doc/glossary.rst:1022 +#: glossary.rst:1034 +msgid "set comprehension" +msgstr "ensemble en compréhension (ou ensemble en intension)" + +#: glossary.rst:1036 +msgid "" +"A compact way to process all or part of the elements in an iterable and " +"return a set with the results. ``results = {c for c in 'abracadabra' if c " +"not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. See :ref:" +"`comprehensions`." +msgstr "" +"Une façon compacte de traiter tout ou partie des éléments d'un itérable et " +"de renvoyer un *set* avec les résultats. ``results = {c for c in " +"'abracadabra' if c not in 'abc'}`` génère l'ensemble contenant les lettres " +"« r » et « d » ``{'r', 'd'}``. Voir :ref:`comprehensions`." + +#: glossary.rst:1040 msgid "single dispatch" msgstr "distribution simple" -#: ../Doc/glossary.rst:1024 +#: glossary.rst:1042 msgid "" "A form of :term:`generic function` dispatch where the implementation is " "chosen based on the type of a single argument." @@ -2398,11 +2452,11 @@ msgstr "" "générique>`, où l'implémentation est choisie en fonction du type d'un seul " "argument." -#: ../Doc/glossary.rst:1026 +#: glossary.rst:1044 msgid "slice" msgstr "tranche" -#: ../Doc/glossary.rst:1028 +#: glossary.rst:1046 msgid "" "An object usually containing a portion of a :term:`sequence`. A slice is " "created using the subscript notation, ``[]`` with colons between numbers " @@ -2415,11 +2469,11 @@ msgstr "" "``variable_name[1:3:5]``. Cette notation utilise des objets :class:`slice` " "en interne." -#: ../Doc/glossary.rst:1032 +#: glossary.rst:1050 msgid "special method" msgstr "méthode spéciale" -#: ../Doc/glossary.rst:1036 +#: glossary.rst:1054 msgid "" "A method that is called implicitly by Python to execute a certain operation " "on a type, such as addition. Such methods have names starting and ending " @@ -2431,11 +2485,11 @@ msgstr "" "ont des noms commençant et terminant par des doubles tirets bas. Les " "méthodes spéciales sont documentées dans :ref:`specialnames`." -#: ../Doc/glossary.rst:1040 +#: glossary.rst:1058 msgid "statement" msgstr "instruction" -#: ../Doc/glossary.rst:1042 +#: glossary.rst:1060 msgid "" "A statement is part of a suite (a \"block\" of code). A statement is either " "an :term:`expression` or one of several constructs with a keyword, such as :" @@ -2446,21 +2500,21 @@ msgstr "" "constructions basées sur un mot-clé, comme :keyword:`if`, :keyword:`while` " "ou :keyword:`for`." -#: ../Doc/glossary.rst:1045 +#: glossary.rst:1063 msgid "text encoding" msgstr "encodage de texte" -#: ../Doc/glossary.rst:1047 +#: glossary.rst:1065 msgid "A codec which encodes Unicode strings to bytes." msgstr "" "Codec (codeur-décodeur) qui convertit des chaînes de caractères Unicode en " "octets (classe *bytes*)." -#: ../Doc/glossary.rst:1048 +#: glossary.rst:1066 msgid "text file" msgstr "fichier texte" -#: ../Doc/glossary.rst:1050 +#: glossary.rst:1068 msgid "" "A :term:`file object` able to read and write :class:`str` objects. Often, a " "text file actually accesses a byte-oriented datastream and handles the :term:" @@ -2475,7 +2529,7 @@ msgstr "" "ou ``'w'``), :data:`sys.stdin`, :data:`sys.stdout` et les instances de :" "class:`io.StringIO`." -#: ../Doc/glossary.rst:1057 +#: glossary.rst:1075 msgid "" "See also :term:`binary file` for a file object able to read and write :term:" "`bytes-like objects `." @@ -2483,11 +2537,11 @@ msgstr "" "Voir aussi :term:`binary file` pour un objet fichier capable de lire et " "d'écrire :term:`bytes-like objects `." -#: ../Doc/glossary.rst:1059 +#: glossary.rst:1077 msgid "triple-quoted string" msgstr "chaîne entre triple guillemets" -#: ../Doc/glossary.rst:1061 +#: glossary.rst:1079 msgid "" "A string which is bound by three instances of either a quotation mark (\") " "or an apostrophe ('). While they don't provide any functionality not " @@ -2502,15 +2556,15 @@ msgstr "" "qui ne soit pas disponible avec une chaîne entre guillemets, elle est utile " "pour de nombreuses raisons. Elle vous autorise à insérer des guillemets " "simples et doubles dans une chaîne sans avoir à les protéger et elle peut " -"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un ``" -"\\``. Elle est ainsi particulièrement utile pour les chaînes de " +"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un " +"``\\``. Elle est ainsi particulièrement utile pour les chaînes de " "documentation (*docstrings*)." -#: ../Doc/glossary.rst:1068 +#: glossary.rst:1086 msgid "type" msgstr "type" -#: ../Doc/glossary.rst:1070 +#: glossary.rst:1088 msgid "" "The type of a Python object determines what kind of object it is; every " "object has a type. An object's type is accessible as its :attr:`~instance." @@ -2520,15 +2574,15 @@ msgstr "" "objets ont un type. Le type d'un objet peut être obtenu via son attribut :" "attr:`~instance.__class__` ou via ``type(obj)``." -#: ../Doc/glossary.rst:1074 +#: glossary.rst:1092 msgid "type alias" msgstr "alias de type" -#: ../Doc/glossary.rst:1076 +#: glossary.rst:1094 msgid "A synonym for a type, created by assigning the type to an identifier." msgstr "Synonyme d'un type, créé en affectant le type à un identifiant." -#: ../Doc/glossary.rst:1078 +#: glossary.rst:1096 msgid "" "Type aliases are useful for simplifying :term:`type hints `. For " "example::" @@ -2536,19 +2590,19 @@ msgstr "" "Les alias de types sont utiles pour simplifier les :term:`indications de " "types `. Par exemple ::" -#: ../Doc/glossary.rst:1087 +#: glossary.rst:1105 msgid "could be made more readable like this::" -msgstr "pourrait être rendu plus lisible comme ceci ::" +msgstr "pourrait être rendu plus lisible comme ceci ::" -#: ../Doc/glossary.rst:1096 ../Doc/glossary.rst:1110 +#: glossary.rst:1128 msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." msgstr "Voir :mod:`typing` et :pep:`484`, qui décrivent cette fonctionnalité." -#: ../Doc/glossary.rst:1097 +#: glossary.rst:1115 msgid "type hint" msgstr "indication de type" -#: ../Doc/glossary.rst:1099 +#: glossary.rst:1117 msgid "" "An :term:`annotation` that specifies the expected type for a variable, a " "class attribute, or a function parameter or return value." @@ -2556,18 +2610,18 @@ msgstr "" "Le :term:`annotation` qui spécifie le type attendu pour une variable, un " "attribut de classe, un paramètre de fonction ou une valeur de retour." -#: ../Doc/glossary.rst:1102 +#: glossary.rst:1120 msgid "" "Type hints are optional and are not enforced by Python but they are useful " "to static type analysis tools, and aid IDEs with code completion and " "refactoring." msgstr "" -"Les indications de type sont facultatifs et ne sont pas indispensables à " -"l'interpréteur Python, mais ils sont utiles aux outils d'analyse de type " +"Les indications de type sont facultatives et ne sont pas indispensables à " +"l'interpréteur Python, mais elles sont utiles aux outils d'analyse de type " "statique et aident les IDE à compléter et à réusiner (*code refactoring* en " "anglais) le code." -#: ../Doc/glossary.rst:1106 +#: glossary.rst:1124 msgid "" "Type hints of global variables, class attributes, and functions, but not " "local variables, can be accessed using :func:`typing.get_type_hints`." @@ -2576,11 +2630,11 @@ msgstr "" "fonctions, mais pas de variables locales, peuvent être consultés en " "utilisant :func:`typing.get_type_hints`." -#: ../Doc/glossary.rst:1111 +#: glossary.rst:1129 msgid "universal newlines" msgstr "retours à la ligne universels" -#: ../Doc/glossary.rst:1113 +#: glossary.rst:1131 msgid "" "A manner of interpreting text streams in which all of the following are " "recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " @@ -2589,54 +2643,54 @@ msgid "" "splitlines` for an additional use." msgstr "" "Une manière d'interpréter des flux de texte dans lesquels sont reconnues " -"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " +"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " "convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " "``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la fonction :func:" "`bytes.splitlines` pour d'autres usages." -#: ../Doc/glossary.rst:1118 +#: glossary.rst:1136 msgid "variable annotation" msgstr "annotation de variable" -#: ../Doc/glossary.rst:1120 +#: glossary.rst:1138 msgid "An :term:`annotation` of a variable or a class attribute." msgstr ":term:`annotation` d'une variable ou d'un attribut de classe." -#: ../Doc/glossary.rst:1122 +#: glossary.rst:1140 msgid "" "When annotating a variable or a class attribute, assignment is optional::" msgstr "" "Lorsque vous annotez une variable ou un attribut de classe, l'affectation " -"est facultative ::" +"est facultative ::" -#: ../Doc/glossary.rst:1127 +#: glossary.rst:1145 msgid "" "Variable annotations are usually used for :term:`type hints `: " "for example this variable is expected to take :class:`int` values::" msgstr "" "Les annotations de variables sont généralement utilisées pour des :term:" "`indications de types ` : par exemple, cette variable devrait " -"prendre des valeurs de type :class:`int` ::" +"prendre des valeurs de type :class:`int` ::" -#: ../Doc/glossary.rst:1133 +#: glossary.rst:1151 msgid "Variable annotation syntax is explained in section :ref:`annassign`." msgstr "" "La syntaxe d'annotation de la variable est expliquée dans la section :ref:" "`annassign`." -#: ../Doc/glossary.rst:1135 +#: glossary.rst:1153 msgid "" "See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " "this functionality." msgstr "" -"Reportez-vous à :term:`function annotation`, à la :pep:` 484` et à la :pep:" +"Reportez-vous à :term:`function annotation`, à la :pep:`484` et à la :pep:" "`526` qui décrivent cette fonctionnalité." -#: ../Doc/glossary.rst:1137 +#: glossary.rst:1155 msgid "virtual environment" msgstr "environnement virtuel" -#: ../Doc/glossary.rst:1139 +#: glossary.rst:1157 msgid "" "A cooperatively isolated runtime environment that allows Python users and " "applications to install and upgrade Python distribution packages without " @@ -2648,15 +2702,15 @@ msgstr "" "des paquets sans interférer avec d'autres applications Python fonctionnant " "sur le même système." -#: ../Doc/glossary.rst:1144 +#: glossary.rst:1162 msgid "See also :mod:`venv`." msgstr "Voir aussi :mod:`venv`." -#: ../Doc/glossary.rst:1145 +#: glossary.rst:1163 msgid "virtual machine" msgstr "machine virtuelle" -#: ../Doc/glossary.rst:1147 +#: glossary.rst:1165 msgid "" "A computer defined entirely in software. Python's virtual machine executes " "the :term:`bytecode` emitted by the bytecode compiler." @@ -2665,11 +2719,11 @@ msgstr "" "(*virtual machine*) de Python exécute le :term:`bytecode` produit par le " "compilateur de *bytecode*." -#: ../Doc/glossary.rst:1149 +#: glossary.rst:1167 msgid "Zen of Python" msgstr "Le zen de Python" -#: ../Doc/glossary.rst:1151 +#: glossary.rst:1169 msgid "" "Listing of Python design principles and philosophies that are helpful in " "understanding and using the language. The listing can be found by typing " @@ -2679,6 +2733,16 @@ msgstr "" "langage. Cette liste peut être obtenue en tapant \"``import this``\" dans " "une invite Python interactive." +#~ msgid "" +#~ ":dfn:`positional-only`: specifies an argument that can be supplied only " +#~ "by position. Python has no syntax for defining positional-only " +#~ "parameters. However, some built-in functions have positional-only " +#~ "parameters (e.g. :func:`abs`)." +#~ msgstr "" +#~ ":dfn:`positional-only` : l'argument ne peut être donné que par sa " +#~ "position. Python n'a pas de syntaxe pour déclarer de tels paramètres, " +#~ "cependant des fonctions natives, comme :func:`abs`, en utilisent." + #~ msgid "" #~ "Any tuple-like class whose indexable elements are also accessible using " #~ "named attributes (for example, :func:`time.localtime` returns a tuple-" @@ -2720,10 +2784,10 @@ msgstr "" #~ "de 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__`." +#~ "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__`." #~ msgid "" #~ "Python itself does not assign any particular meaning to function " diff --git a/howto/argparse.po b/howto/argparse.po index 71fbaa56f5..c9815736f1 100644 --- a/howto/argparse.po +++ b/howto/argparse.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-10-13 22:28+0200\n" "PO-Revision-Date: 2019-07-25 16:44+0200\n" @@ -15,19 +15,19 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/howto/argparse.rst:3 +#: howto/argparse.rst:3 msgid "Argparse Tutorial" msgstr "Tutoriel *argparse*" -#: ../Doc/howto/argparse.rst:0 +#: howto/argparse.rst:0 msgid "author" msgstr "auteur" -#: ../Doc/howto/argparse.rst:5 +#: howto/argparse.rst:5 msgid "Tshepang Lekhonkhobe" msgstr "Tshepang Lekhonkhobe" -#: ../Doc/howto/argparse.rst:9 +#: howto/argparse.rst:9 msgid "" "This tutorial is intended to be a gentle introduction to :mod:`argparse`, " "the recommended command-line parsing module in the Python standard library." @@ -36,7 +36,7 @@ msgstr "" "`argparse`, le module d'analyse de ligne de commande recommandé dans la " "bibliothèque standard de Python." -#: ../Doc/howto/argparse.rst:14 +#: howto/argparse.rst:14 msgid "" "There are two other modules that fulfill the same task, namely :mod:`getopt` " "(an equivalent for :c:func:`getopt` from the C language) and the deprecated :" @@ -48,11 +48,11 @@ msgstr "" "obsolète. Il faut noter que :mod:`argparse` est basé sur :mod:`optparse` et " "donc s'utilise de manière très similaire." -#: ../Doc/howto/argparse.rst:22 +#: howto/argparse.rst:22 msgid "Concepts" msgstr "Concepts" -#: ../Doc/howto/argparse.rst:24 +#: howto/argparse.rst:24 msgid "" "Let's show the sort of functionality that we are going to explore in this " "introductory tutorial by making use of the :command:`ls` command:" @@ -60,11 +60,11 @@ msgstr "" "Commençons par l'utilisation de la commande :command:`ls` pour voir le type " "de fonctionnalité que nous allons étudier dans ce tutoriel d'introduction :" -#: ../Doc/howto/argparse.rst:46 +#: howto/argparse.rst:46 msgid "A few concepts we can learn from the four commands:" msgstr "Quelques concepts que l'on peut apprendre avec les quatre commandes :" -#: ../Doc/howto/argparse.rst:48 +#: howto/argparse.rst:48 msgid "" "The :command:`ls` command is useful when run without any options at all. It " "defaults to displaying the contents of the current directory." @@ -72,7 +72,7 @@ msgstr "" "La commande :command:`ls` est utile quand elle est exécutée sans aucun " "paramètre. Elle affiche par défaut le contenu du dossier courant." -#: ../Doc/howto/argparse.rst:51 +#: howto/argparse.rst:51 msgid "" "If we want beyond what it provides by default, we tell it a bit more. In " "this case, we want it to display a different directory, ``pypy``. What we " @@ -92,7 +92,7 @@ msgstr "" "est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et " "le second est *où vous voulez le copier*." -#: ../Doc/howto/argparse.rst:60 +#: howto/argparse.rst:60 msgid "" "Now, say we want to change behaviour of the program. In our example, we " "display more info for each file instead of just showing the file names. The " @@ -102,7 +102,7 @@ msgstr "" "agit. Dans notre exemple, on affiche plus d'information pour chaque ficher " "que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." -#: ../Doc/howto/argparse.rst:64 +#: howto/argparse.rst:64 msgid "" "That's a snippet of the help text. It's very useful in that you can come " "across a program you have never used before, and can figure out how it works " @@ -112,25 +112,23 @@ msgstr "" "sur un programme que l'on à jamais utilisé auparavant car on peut comprendre " "son fonctionnement simplement en lisant l'aide associée." -#: ../Doc/howto/argparse.rst:70 +#: howto/argparse.rst:70 msgid "The basics" msgstr "Les bases" -#: ../Doc/howto/argparse.rst:72 +#: howto/argparse.rst:72 msgid "Let us start with a very simple example which does (almost) nothing::" msgstr "Commençons par un exemple très simple qui ne fait (quasiment) rien ::" -#: ../Doc/howto/argparse.rst:78 ../Doc/howto/argparse.rst:186 -#: ../Doc/howto/argparse.rst:207 +#: howto/argparse.rst:186 howto/argparse.rst:207 msgid "Following is a result of running the code:" msgstr "Ce qui suit est le résultat de l'exécution du code :" -#: ../Doc/howto/argparse.rst:95 ../Doc/howto/argparse.rst:252 -#: ../Doc/howto/argparse.rst:296 +#: howto/argparse.rst:252 howto/argparse.rst:296 msgid "Here is what is happening:" msgstr "Voilà ce qu'il se passe :" -#: ../Doc/howto/argparse.rst:97 +#: howto/argparse.rst:97 msgid "" "Running the script without any options results in nothing displayed to " "stdout. Not so useful." @@ -138,7 +136,7 @@ msgstr "" "Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur " "la sortie d'erreur. Ce n'est pas très utile." -#: ../Doc/howto/argparse.rst:100 +#: howto/argparse.rst:100 msgid "" "The second one starts to display the usefulness of the :mod:`argparse` " "module. We have done almost nothing, but already we get a nice help message." @@ -146,7 +144,7 @@ msgstr "" "Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a " "quasiment rien fait mais on a déjà un beau message d'aide." -#: ../Doc/howto/argparse.rst:103 +#: howto/argparse.rst:103 msgid "" "The ``--help`` option, which can also be shortened to ``-h``, is the only " "option we get for free (i.e. no need to specify it). Specifying anything " @@ -158,23 +156,23 @@ msgstr "" "que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit " "aussi un message utile, toujours gratuitement." -#: ../Doc/howto/argparse.rst:110 +#: howto/argparse.rst:110 msgid "Introducing Positional arguments" msgstr "Introduction aux arguments positionnels" -#: ../Doc/howto/argparse.rst:112 +#: howto/argparse.rst:112 msgid "An example::" msgstr "Un exemple ::" -#: ../Doc/howto/argparse.rst:120 +#: howto/argparse.rst:120 msgid "And running the code:" msgstr "On exécute le code :" -#: ../Doc/howto/argparse.rst:138 +#: howto/argparse.rst:138 msgid "Here is what's happening:" msgstr "Voilà ce qu'il se passe :" -#: ../Doc/howto/argparse.rst:140 +#: howto/argparse.rst:140 msgid "" "We've added the :meth:`add_argument` method, which is what we use to specify " "which command-line options the program is willing to accept. In this case, " @@ -184,12 +182,12 @@ msgstr "" "quels paramètre de lignes de commandes le programme peut accepter. Dans le " "cas présent, je l'ai appelé ``echo`` pour que cela corresponde à sa fonction." -#: ../Doc/howto/argparse.rst:144 +#: howto/argparse.rst:144 msgid "Calling our program now requires us to specify an option." msgstr "" "Utiliser le programme nécessite maintenant que l'on précise un paramètre." -#: ../Doc/howto/argparse.rst:146 +#: howto/argparse.rst:146 msgid "" "The :meth:`parse_args` method actually returns some data from the options " "specified, in this case, ``echo``." @@ -197,7 +195,7 @@ msgstr "" "La méthode :meth:`parse_args` renvoie en réalité certaines données des " "paramètres précisés, dans le cas présent : ``echo``." -#: ../Doc/howto/argparse.rst:149 +#: howto/argparse.rst:149 msgid "" "The variable is some form of 'magic' that :mod:`argparse` performs for free " "(i.e. no need to specify which variable that value is stored in). You will " @@ -209,7 +207,7 @@ msgstr "" "est stockée). Vous aurez aussi remarqué que le nom est le même que " "l'argument en chaîne de caractères donné à la méthode : ``echo``." -#: ../Doc/howto/argparse.rst:154 +#: howto/argparse.rst:154 msgid "" "Note however that, although the help display looks nice and all, it " "currently is not as helpful as it can be. For example we see that we got " @@ -223,16 +221,16 @@ msgstr "" "autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " "peu plus utile ::" -#: ../Doc/howto/argparse.rst:165 +#: howto/argparse.rst:165 msgid "And we get:" msgstr "Et on obtient :" -#: ../Doc/howto/argparse.rst:178 +#: howto/argparse.rst:178 msgid "Now, how about doing something even more useful::" msgstr "" -"À présent, que diriez-vous de faire quelque chose d'encore plus utile  ::" +"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" -#: ../Doc/howto/argparse.rst:196 +#: howto/argparse.rst:196 msgid "" "That didn't go so well. That's because :mod:`argparse` treats the options we " "give it as strings, unless we tell it otherwise. So, let's tell :mod:" @@ -243,7 +241,7 @@ msgstr "" "ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter " "cette entrée comme un entier ::" -#: ../Doc/howto/argparse.rst:217 +#: howto/argparse.rst:217 msgid "" "That went well. The program now even helpfully quits on bad illegal input " "before proceeding." @@ -251,11 +249,11 @@ msgstr "" "Cela a bien fonctionné. Maintenant le programme va même s'arrêter si " "l'entrée n'est pas légale avant de procéder à l'exécution." -#: ../Doc/howto/argparse.rst:222 +#: howto/argparse.rst:222 msgid "Introducing Optional arguments" msgstr "Introduction aux arguments optionnels" -#: ../Doc/howto/argparse.rst:224 +#: howto/argparse.rst:224 msgid "" "So far we have been playing with positional arguments. Let us have a look on " "how to add optional ones::" @@ -263,12 +261,11 @@ msgstr "" "Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons " "comment ajouter des paramètres optionnels ::" -#: ../Doc/howto/argparse.rst:234 ../Doc/howto/argparse.rst:280 -#: ../Doc/howto/argparse.rst:396 ../Doc/howto/argparse.rst:430 +#: howto/argparse.rst:280 howto/argparse.rst:430 msgid "And the output:" msgstr "Et le résultat :" -#: ../Doc/howto/argparse.rst:254 +#: howto/argparse.rst:254 msgid "" "The program is written so as to display something when ``--verbosity`` is " "specified and display nothing when not." @@ -276,7 +273,7 @@ msgstr "" "Le programme est écrit de sorte qu'il n'affiche rien sauf si l'option ``--" "verbosity`` est précisée." -#: ../Doc/howto/argparse.rst:257 +#: howto/argparse.rst:257 msgid "" "To show that the option is actually optional, there is no error when running " "the program without it. Note that by default, if an optional argument isn't " @@ -290,11 +287,11 @@ msgstr "" "verbosity`, prend la valeur ``None`` c'est pourquoi elle échoue le test de " "vérité de l'assertion :keyword:`if`." -#: ../Doc/howto/argparse.rst:263 +#: howto/argparse.rst:263 msgid "The help message is a bit different." msgstr "Le message d'aide est quelque peu différent." -#: ../Doc/howto/argparse.rst:265 +#: howto/argparse.rst:265 msgid "" "When using the ``--verbosity`` option, one must also specify some value, any " "value." @@ -302,7 +299,7 @@ msgstr "" "Quand on utilise l'option ``--verbosity`` on doit aussi préciser une valeur, " "n'importe laquelle." -#: ../Doc/howto/argparse.rst:268 +#: howto/argparse.rst:268 msgid "" "The above example accepts arbitrary integer values for ``--verbosity``, but " "for our simple program, only two values are actually useful, ``True`` or " @@ -313,7 +310,7 @@ msgstr "" "réellement utiles : ``True`` et ``False``. Modifions le code en accord avec " "cela ::" -#: ../Doc/howto/argparse.rst:298 +#: howto/argparse.rst:298 msgid "" "The option is now more of a flag than something that requires a value. We " "even changed the name of the option to match that idea. Note that we now " @@ -328,7 +325,7 @@ msgstr "" "l'option est précisée la valeur ``True`` est assignée à :data:`args." "verbose`. Ne rien préciser implique la valeur ``False``." -#: ../Doc/howto/argparse.rst:305 +#: howto/argparse.rst:305 msgid "" "It complains when you specify a value, in true spirit of what flags actually " "are." @@ -336,15 +333,15 @@ msgstr "" "Dans l'esprit de ce que sont vraiment les options, pas des paramètres, il se " "plaint quand vous tentez de préciser une valeur." -#: ../Doc/howto/argparse.rst:308 +#: howto/argparse.rst:308 msgid "Notice the different help text." msgstr "Notez que l'aide est différente." -#: ../Doc/howto/argparse.rst:312 +#: howto/argparse.rst:312 msgid "Short options" msgstr "Les paramètres raccourcis" -#: ../Doc/howto/argparse.rst:314 +#: howto/argparse.rst:314 msgid "" "If you are familiar with command line usage, you will notice that I haven't " "yet touched on the topic of short versions of the options. It's quite " @@ -354,35 +351,35 @@ msgstr "" "dû remarquer que je n'ai pour l'instant rien dit au sujet des versions " "raccourcies des paramètres. C'est très simple ::" -#: ../Doc/howto/argparse.rst:326 +#: howto/argparse.rst:326 msgid "And here goes:" msgstr "Et voilà :" -#: ../Doc/howto/argparse.rst:339 +#: howto/argparse.rst:339 msgid "Note that the new ability is also reflected in the help text." msgstr "Notez que la nouvelle option est aussi indiquée dans l'aide." -#: ../Doc/howto/argparse.rst:343 +#: howto/argparse.rst:343 msgid "Combining Positional and Optional arguments" msgstr "Combinaison d'arguments positionnels et optionnels" -#: ../Doc/howto/argparse.rst:345 +#: howto/argparse.rst:345 msgid "Our program keeps growing in complexity::" -msgstr "Notre programme continue de croître en complexité : ::" +msgstr "Notre programme continue de croître en complexité ::" -#: ../Doc/howto/argparse.rst:360 +#: howto/argparse.rst:360 msgid "And now the output:" msgstr "Et voilà le résultat :" -#: ../Doc/howto/argparse.rst:374 +#: howto/argparse.rst:374 msgid "We've brought back a positional argument, hence the complaint." msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur." -#: ../Doc/howto/argparse.rst:376 +#: howto/argparse.rst:376 msgid "Note that the order does not matter." msgstr "Notez que l'ordre importe peu." -#: ../Doc/howto/argparse.rst:378 +#: howto/argparse.rst:378 msgid "" "How about we give this program of ours back the ability to have multiple " "verbosity values, and actually get to use them::" @@ -390,7 +387,7 @@ msgstr "" "Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs " "niveaux de verbosité, et que celui-ci les prend en compte ::" -#: ../Doc/howto/argparse.rst:412 +#: howto/argparse.rst:412 msgid "" "These all look good except the last one, which exposes a bug in our program. " "Let's fix it by restricting the values the ``--verbosity`` option can " @@ -400,7 +397,7 @@ msgstr "" "bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` " "accepte ::" -#: ../Doc/howto/argparse.rst:448 +#: howto/argparse.rst:448 msgid "" "Note that the change also reflects both in the error message as well as the " "help string." @@ -408,7 +405,7 @@ msgstr "" "Notez que ce changement est pris en compte à la fois dans le message " "d'erreur et dans le texte d'aide." -#: ../Doc/howto/argparse.rst:451 +#: howto/argparse.rst:451 msgid "" "Now, let's use a different approach of playing with verbosity, which is " "pretty common. It also matches the way the CPython executable handles its " @@ -419,7 +416,7 @@ msgstr "" "CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie " "de la commande ``python --help``) ::" -#: ../Doc/howto/argparse.rst:470 +#: howto/argparse.rst:470 msgid "" "We have introduced another action, \"count\", to count the number of " "occurrences of a specific optional arguments:" @@ -427,20 +424,20 @@ msgstr "" "Nous avons introduit une autre action, ``\"count\"``, pour compter le nombre " "d’occurrences d'une argument optionnel en particulier :" -#: ../Doc/howto/argparse.rst:498 +#: howto/argparse.rst:498 msgid "" "Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the " "previous version of our script. That should explain the complaint." msgstr "" -"Oui, c'est maintenant d'avantage une option (similaire à ``action=" -"\"store_true\"``) de la version précédente de notre script. Cela devrait " -"expliquer le message d'erreur." +"Oui, c'est maintenant d'avantage une option (similaire à " +"``action=\"store_true\"``) de la version précédente de notre script. Cela " +"devrait expliquer le message d'erreur." -#: ../Doc/howto/argparse.rst:501 +#: howto/argparse.rst:501 msgid "It also behaves similar to \"store_true\" action." msgstr "Cela se comporte de la même manière que l'action ``\"store_true\"``." -#: ../Doc/howto/argparse.rst:503 +#: howto/argparse.rst:503 msgid "" "Now here's a demonstration of what the \"count\" action gives. You've " "probably seen this sort of usage before." @@ -448,7 +445,7 @@ msgstr "" "Maintenant voici une démonstration de ce que l'action ``\"count\"`` fait. " "Vous avez sûrement vu ce genre d'utilisation auparavant." -#: ../Doc/howto/argparse.rst:506 +#: howto/argparse.rst:506 msgid "" "And if you don't specify the ``-v`` flag, that flag is considered to have " "``None`` value." @@ -456,7 +453,7 @@ msgstr "" "Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " "``None``." -#: ../Doc/howto/argparse.rst:509 +#: howto/argparse.rst:509 msgid "" "As should be expected, specifying the long form of the flag, we should get " "the same output." @@ -464,7 +461,7 @@ msgstr "" "Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait " "obtenir la même sortie." -#: ../Doc/howto/argparse.rst:512 +#: howto/argparse.rst:512 msgid "" "Sadly, our help output isn't very informative on the new ability our script " "has acquired, but that can always be fixed by improving the documentation " @@ -474,19 +471,19 @@ msgstr "" "nouvelles possibilités de notre programme, mais cela peut toujours être " "corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." -#: ../Doc/howto/argparse.rst:516 +#: howto/argparse.rst:516 msgid "That last output exposes a bug in our program." msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." -#: ../Doc/howto/argparse.rst:519 +#: howto/argparse.rst:519 msgid "Let's fix::" msgstr "Corrigeons ::" -#: ../Doc/howto/argparse.rst:538 +#: howto/argparse.rst:538 msgid "And this is what it gives:" msgstr "Et c'est ce que ça donne :" -#: ../Doc/howto/argparse.rst:553 +#: howto/argparse.rst:553 msgid "" "First output went well, and fixes the bug we had before. That is, we want " "any value >= 2 to be as verbose as possible." @@ -495,15 +492,15 @@ msgstr "" "avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= " "2 rende le programme aussi verbeux que possible." -#: ../Doc/howto/argparse.rst:556 +#: howto/argparse.rst:556 msgid "Third output not so good." msgstr "La troisième sortie de programme n'est pas si bien que ça." -#: ../Doc/howto/argparse.rst:558 +#: howto/argparse.rst:558 msgid "Let's fix that bug::" msgstr "Corrigeons ce bogue ::" -#: ../Doc/howto/argparse.rst:575 +#: howto/argparse.rst:575 msgid "" "We've just introduced yet another keyword, ``default``. We've set it to " "``0`` in order to make it comparable to the other int values. Remember that " @@ -517,11 +514,11 @@ msgstr "" "il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " "type entier (une erreur :exc:`TypeError` serait alors levée)." -#: ../Doc/howto/argparse.rst:582 +#: howto/argparse.rst:582 msgid "And:" msgstr "Et :" -#: ../Doc/howto/argparse.rst:589 +#: howto/argparse.rst:589 msgid "" "You can go quite far just with what we've learned so far, and we have only " "scratched the surface. The :mod:`argparse` module is very powerful, and " @@ -532,11 +529,11 @@ msgstr "" "est très puissant, et nous allons l'explorer un peu plus avant la fin de ce " "tutoriel." -#: ../Doc/howto/argparse.rst:596 +#: howto/argparse.rst:596 msgid "Getting a little more advanced" msgstr "Aller un peu plus loin" -#: ../Doc/howto/argparse.rst:598 +#: howto/argparse.rst:598 msgid "" "What if we wanted to expand our tiny program to perform other powers, not " "just squares::" @@ -544,11 +541,11 @@ msgstr "" "Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre " "capable de calculer d'autres puissances, et pas seulement des carrés ::" -#: ../Doc/howto/argparse.rst:615 ../Doc/howto/argparse.rst:653 +#: howto/argparse.rst:653 msgid "Output:" msgstr "Sortie :" -#: ../Doc/howto/argparse.rst:636 +#: howto/argparse.rst:636 msgid "" "Notice that so far we've been using verbosity level to *change* the text " "that gets displayed. The following example instead uses verbosity level to " @@ -558,11 +555,11 @@ msgstr "" "pour *changer* le texte qui est affiché. L'exemple suivant au contraire " "utilise le niveau de verbosité pour afficher *plus* de texte à la place ::" -#: ../Doc/howto/argparse.rst:667 +#: howto/argparse.rst:667 msgid "Conflicting options" msgstr "Paramètres en conflit" -#: ../Doc/howto/argparse.rst:669 +#: howto/argparse.rst:669 msgid "" "So far, we have been working with two methods of an :class:`argparse." "ArgumentParser` instance. Let's introduce a third one, :meth:" @@ -579,7 +576,7 @@ msgstr "" "introduire l'option ``--quiet``, qui va avoir l'effet opposé de l'option ``--" "verbose`` ::" -#: ../Doc/howto/argparse.rst:695 +#: howto/argparse.rst:695 msgid "" "Our program is now simpler, and we've lost some functionality for the sake " "of demonstration. Anyways, here's the output:" @@ -588,7 +585,7 @@ msgstr "" "fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie " "du programme :" -#: ../Doc/howto/argparse.rst:713 +#: howto/argparse.rst:713 msgid "" "That should be easy to follow. I've added that last output so you can see " "the sort of flexibility you get, i.e. mixing long form options with short " @@ -598,16 +595,16 @@ msgstr "" "que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par " "exemple pour faire un mélange entre des paramètres courts et longs." -#: ../Doc/howto/argparse.rst:717 +#: howto/argparse.rst:717 msgid "" "Before we conclude, you probably want to tell your users the main purpose of " "your program, just in case they don't know::" msgstr "" "Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " "le but principal de votre programme, juste dans le cas ou ils ne le " -"sauraient pas : ::" +"sauraient pas ::" -#: ../Doc/howto/argparse.rst:738 +#: howto/argparse.rst:738 msgid "" "Note that slight difference in the usage text. Note the ``[-v | -q]``, which " "tells us that we can either use ``-v`` or ``-q``, but not both at the same " @@ -617,11 +614,11 @@ msgstr "" "nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " "les deux ensemble :" -#: ../Doc/howto/argparse.rst:760 +#: howto/argparse.rst:760 msgid "Conclusion" msgstr "Conclusion" -#: ../Doc/howto/argparse.rst:762 +#: howto/argparse.rst:762 msgid "" "The :mod:`argparse` module offers a lot more than shown here. Its docs are " "quite detailed and thorough, and full of examples. Having gone through this " diff --git a/howto/clinic.po b/howto/clinic.po index 720545c2c5..e4a3d5a294 100644 --- a/howto/clinic.po +++ b/howto/clinic.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-03-26 17:29+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,23 +15,23 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" -#: ../Doc/howto/clinic.rst:5 +#: howto/clinic.rst:5 msgid "Argument Clinic How-To" -msgstr "" +msgstr "Guide Argument Clinic" -#: ../Doc/howto/clinic.rst:0 +#: howto/clinic.rst:0 msgid "author" msgstr "auteur" -#: ../Doc/howto/clinic.rst:7 +#: howto/clinic.rst:7 msgid "Larry Hastings" -msgstr "" +msgstr "Larry Hastings" -#: ../Doc/howto/clinic.rst:None +#: howto/clinic.rst:None msgid "Abstract" msgstr "Résumé" -#: ../Doc/howto/clinic.rst:12 +#: howto/clinic.rst:12 msgid "" "Argument Clinic is a preprocessor for CPython C files. Its purpose is to " "automate all the boilerplate involved with writing argument parsing code for " @@ -46,7 +46,7 @@ msgstr "" "avec Argument Clinic, avant d'introduire des usages plus avancés d'Argument " "Clinic. " -#: ../Doc/howto/clinic.rst:19 +#: howto/clinic.rst:19 msgid "" "Currently Argument Clinic is considered internal-only for CPython. Its use " "is not supported for files outside CPython, and no guarantees are made " @@ -65,11 +65,11 @@ msgstr "" "version de CPython *pourrait* être totalement incompatible et casser tout " "votre code." -#: ../Doc/howto/clinic.rst:29 +#: howto/clinic.rst:29 msgid "The Goals Of Argument Clinic" msgstr "Les objectifs d'Argument Clinic" -#: ../Doc/howto/clinic.rst:31 +#: howto/clinic.rst:31 msgid "" "Argument Clinic's primary goal is to take over responsibility for all " "argument parsing code inside CPython. This means that, when you convert a " @@ -88,7 +88,7 @@ msgstr "" "``PyObject *args`` (et éventuellement ``PyObject *kwargs``) sont convertis " "magiquement dans les variables et types C dont vous avez besoin." -#: ../Doc/howto/clinic.rst:41 +#: howto/clinic.rst:41 msgid "" "In order for Argument Clinic to accomplish its primary goal, it must be easy " "to use. Currently, working with CPython's argument parsing library is a " @@ -101,7 +101,7 @@ msgstr "" "quantité surprenante d'informations redondantes. En utilisant Argument " "Clinic, il n'est plus nécessaire de se répéter." -#: ../Doc/howto/clinic.rst:47 +#: howto/clinic.rst:47 msgid "" "Obviously, no one would want to use Argument Clinic unless it's solving " "their problem—and without creating new problems of its own. So it's " @@ -123,7 +123,7 @@ msgstr "" "d'analyse d'argument générique. On aurait ainsi l'analyse d'argument la plus " "rapide possible !)" -#: ../Doc/howto/clinic.rst:59 +#: howto/clinic.rst:59 msgid "" "Additionally, Argument Clinic must be flexible enough to work with any " "approach to argument parsing. Python has some functions with some very " @@ -134,7 +134,7 @@ msgstr "" "Python dont le traitement des arguments est très étrange ; le but d'Argument " "Clinic est de les gérer toutes. " -#: ../Doc/howto/clinic.rst:64 +#: howto/clinic.rst:64 msgid "" "Finally, the original motivation for Argument Clinic was to provide " "introspection \"signatures\" for CPython builtins. It used to be, the " @@ -147,7 +147,7 @@ msgstr "" "passiez un composant natif. Grâce à Argument Clinic, ce comportement " "appartient au passé !" -#: ../Doc/howto/clinic.rst:70 +#: howto/clinic.rst:70 msgid "" "One idea you should keep in mind, as you work with Argument Clinic: the more " "information you give it, the better job it'll be able to do. Argument Clinic " @@ -161,11 +161,11 @@ msgstr "" "plus sophistiqué, il sera capable de faire beaucoup de choses intéressantes " "et intelligentes à partir de l'information que vous lui fournissez." -#: ../Doc/howto/clinic.rst:80 +#: howto/clinic.rst:80 msgid "Basic Concepts And Usage" msgstr "Concepts de base et utilisation" -#: ../Doc/howto/clinic.rst:82 +#: howto/clinic.rst:82 msgid "" "Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/clinic." "py``. If you run that script, specifying a C file as an argument:" @@ -174,20 +174,20 @@ msgstr "" "clinic/clinic.py``. Si vous exécutez ce script, en spécifiant un fichier C " "comme argument : " -#: ../Doc/howto/clinic.rst:89 +#: howto/clinic.rst:89 msgid "" "Argument Clinic will scan over the file looking for lines that look exactly " "like this:" msgstr "Argument Clinic va parcourir le fichier en cherchant cette ligne :" -#: ../Doc/howto/clinic.rst:96 +#: howto/clinic.rst:96 msgid "" "When it finds one, it reads everything up to a line that looks exactly like " "this:" msgstr "" "Lorsqu'il en trouve une, il lit tout ce qui suit, jusqu'à cette ligne :" -#: ../Doc/howto/clinic.rst:103 +#: howto/clinic.rst:103 msgid "" "Everything in between these two lines is input for Argument Clinic. All of " "these lines, including the beginning and ending comment lines, are " @@ -197,7 +197,7 @@ msgstr "" "Clinic. Toutes ces lignes, en incluant les commentaires de début et de fin, " "sont appelées collectivement un « bloc » d'Argument Clinic. " -#: ../Doc/howto/clinic.rst:107 +#: howto/clinic.rst:107 msgid "" "When Argument Clinic parses one of these blocks, it generates output. This " "output is rewritten into the C file immediately after the block, followed by " @@ -209,7 +209,7 @@ msgstr "" "suivie par un commentaire contenant une somme de contrôle. Le bloc Argument " "Clinic ressemble maintenant à cela :" -#: ../Doc/howto/clinic.rst:120 +#: howto/clinic.rst:120 msgid "" "If you run Argument Clinic on the same file a second time, Argument Clinic " "will discard the old output and write out the new output with a fresh " @@ -221,7 +221,7 @@ msgstr "" "ligne de somme de contrôle mise à jour. Cependant, si l'entrée n'a pas " "changé, la sortie ne change pas non plus. " -#: ../Doc/howto/clinic.rst:124 +#: howto/clinic.rst:124 msgid "" "You should never modify the output portion of an Argument Clinic block. " "Instead, change the input until it produces the output you want. (That's " @@ -235,20 +235,20 @@ msgstr "" "ces modifications seront perdues après que Argument Clinic a écrit une " "nouvelle sortie)." -#: ../Doc/howto/clinic.rst:129 +#: howto/clinic.rst:129 msgid "" "For the sake of clarity, here's the terminology we'll use with Argument " "Clinic:" msgstr "Par souci de clarté, voilà la terminologie que nous emploierons :" -#: ../Doc/howto/clinic.rst:131 +#: howto/clinic.rst:131 msgid "" "The first line of the comment (``/*[clinic input]``) is the *start line*." msgstr "" "La première ligne du commentaire (``/*[clinic input]``) est la *ligne de " "début*." -#: ../Doc/howto/clinic.rst:132 +#: howto/clinic.rst:132 msgid "" "The last line of the initial comment (``[clinic start generated code]*/``) " "is the *end line*." @@ -256,7 +256,7 @@ msgstr "" "La dernière ligne du commentaire initial (``[clinic start generated code]*/" "``) est la *ligne de fin*." -#: ../Doc/howto/clinic.rst:133 +#: howto/clinic.rst:133 msgid "" "The last line (``/*[clinic end generated code: checksum=...]*/``) is the " "*checksum line*." @@ -264,19 +264,19 @@ msgstr "" "La dernière ligne (``/*[clinic end generated code: checksum=...]*/``) est la " "*ligne de contrôle*. " -#: ../Doc/howto/clinic.rst:134 +#: howto/clinic.rst:134 msgid "In between the start line and the end line is the *input*." msgstr "" "On appelle *entrée* ce qui se trouve entre la ligne de début et la ligne de " "fin." -#: ../Doc/howto/clinic.rst:135 +#: howto/clinic.rst:135 msgid "In between the end line and the checksum line is the *output*." msgstr "" "Et on appelle *sortie* ce qui se trouve entre la ligne de fin et la ligne de " "contrôle." -#: ../Doc/howto/clinic.rst:136 +#: howto/clinic.rst:136 msgid "" "All the text collectively, from the start line to the checksum line " "inclusively, is the *block*. (A block that hasn't been successfully " @@ -288,11 +288,11 @@ msgstr "" "succès par Argument Clinic n'a pas encore de sortie ni de ligne de contrôle " "mais est quand même considéré comme un bloc)" -#: ../Doc/howto/clinic.rst:143 +#: howto/clinic.rst:143 msgid "Converting Your First Function" msgstr "Convertissez votre première fonction" -#: ../Doc/howto/clinic.rst:145 +#: howto/clinic.rst:145 msgid "" "The best way to get a sense of how Argument Clinic works is to convert a " "function to work with it. Here, then, are the bare minimum steps you'd need " @@ -311,11 +311,11 @@ msgstr "" "(comme ``return converters`` et ``self converters``). Mais concentrons nous " "pour le moment sur les choses simples." -#: ../Doc/howto/clinic.rst:154 +#: howto/clinic.rst:154 msgid "Let's dive in!" msgstr "En route !" -#: ../Doc/howto/clinic.rst:156 +#: howto/clinic.rst:156 msgid "" "Make sure you're working with a freshly updated checkout of the CPython " "trunk." @@ -323,7 +323,7 @@ msgstr "" "Assurez-vous que vous travaillez sur une copie récemment mise à jour du code " "de CPython." -#: ../Doc/howto/clinic.rst:159 +#: howto/clinic.rst:159 msgid "" "Find a Python builtin that calls either :c:func:`PyArg_ParseTuple` or :c:" "func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to work with " @@ -334,13 +334,13 @@ msgstr "" "encore été convertie par Argument Clinic. Pour cet exemple, j'utilise " "``_pickle.Pickler.dump()``." -#: ../Doc/howto/clinic.rst:164 +#: howto/clinic.rst:164 msgid "" "If the call to the ``PyArg_Parse`` function uses any of the following format " "units:" msgstr "Si l'appel à ``PyArg_Parse`` utilise l'un des formats suivants :" -#: ../Doc/howto/clinic.rst:176 +#: howto/clinic.rst:176 msgid "" "or if it has multiple calls to :c:func:`PyArg_ParseTuple`, you should choose " "a different function. Argument Clinic *does* support all of these " @@ -351,7 +351,7 @@ msgstr "" "fonction différente. Argument Clinic gère tous ces scénarios, mais se sont " "des sujets trop avancés pour notre première fonction." -#: ../Doc/howto/clinic.rst:181 +#: howto/clinic.rst:181 msgid "" "Also, if the function has multiple calls to :c:func:`PyArg_ParseTuple` or :c:" "func:`PyArg_ParseTupleAndKeywords` where it supports different types for the " @@ -366,13 +366,13 @@ msgstr "" "pas possible de la convertir pour Argument Clinic. Argument Clinic ne gère " "pas les fonctions génériques ou les paramètres polymorphes." -#: ../Doc/howto/clinic.rst:188 +#: howto/clinic.rst:188 msgid "Add the following boilerplate above the function, creating our block::" msgstr "" "Ajoutez les lignes standard suivantes au-dessus de votre fonction pour créer " "notre bloc ::" -#: ../Doc/howto/clinic.rst:193 +#: howto/clinic.rst:193 msgid "" "Cut the docstring and paste it in between the ``[clinic]`` lines, removing " "all the junk that makes it a properly quoted C string. When you're done you " @@ -385,7 +385,7 @@ msgstr "" "aligné à gauche, sans ligne plus longue que 80 caractères (Argument Clinic " "préserve l'indentation à l'intérieur de la *docstring*)." -#: ../Doc/howto/clinic.rst:199 +#: howto/clinic.rst:199 msgid "" "If the old docstring had a first line that looked like a function signature, " "throw that line away. (The docstring doesn't need it anymore—when you use " @@ -398,14 +398,12 @@ msgstr "" "une fonction native, la première ligne sera construite automatiquement à " "partir de la signature de la fonction.)" -#: ../Doc/howto/clinic.rst:205 ../Doc/howto/clinic.rst:226 -#: ../Doc/howto/clinic.rst:250 ../Doc/howto/clinic.rst:308 -#: ../Doc/howto/clinic.rst:348 ../Doc/howto/clinic.rst:375 -#: ../Doc/howto/clinic.rst:481 ../Doc/howto/clinic.rst:533 +#: howto/clinic.rst:226 howto/clinic.rst:308 howto/clinic.rst:375 +#: howto/clinic.rst:533 msgid "Sample::" msgstr "Échantillon ::" -#: ../Doc/howto/clinic.rst:211 +#: howto/clinic.rst:211 msgid "" "If your docstring doesn't have a \"summary\" line, Argument Clinic will " "complain. So let's make sure it has one. The \"summary\" line should be a " @@ -417,7 +415,7 @@ msgstr "" "être un paragraphe consistant en une seule ligne de 80 colonnes au début de " "la *docstring*." -#: ../Doc/howto/clinic.rst:216 +#: howto/clinic.rst:216 msgid "" "(Our example docstring consists solely of a summary line, so the sample code " "doesn't have to change for this step.)" @@ -425,7 +423,7 @@ msgstr "" "Dans notre exemple, la *docstring* est seulement composée d'une ligne de " "résumé, donc le code ne change pas à cette étape." -#: ../Doc/howto/clinic.rst:219 +#: howto/clinic.rst:219 msgid "" "Above the docstring, enter the name of the function, followed by a blank " "line. This should be the Python name of the function, and should be the " @@ -439,7 +437,7 @@ msgstr "" "les sous-modules, puis, si la fonction est une méthode de classe, inclure " "aussi le nom de la classe." -#: ../Doc/howto/clinic.rst:234 +#: howto/clinic.rst:234 msgid "" "If this is the first time that module or class has been used with Argument " "Clinic in this C file, you must declare the module and/or class. Proper " @@ -455,7 +453,7 @@ msgstr "" "fichiers inclus et les statiques (dans cet extrait, nous montrons les deux " "blocs à côté l'un de l'autre)." -#: ../Doc/howto/clinic.rst:242 +#: howto/clinic.rst:242 msgid "" "The name of the class and module should be the same as the one seen by " "Python. Check the name defined in the :c:type:`PyModuleDef` or :c:type:" @@ -465,7 +463,7 @@ msgstr "" "Python. Selon le cas, référez-vous à :c:type:`PyModuleDef` ou :c:type:" "`PyTypeObject`" -#: ../Doc/howto/clinic.rst:246 +#: howto/clinic.rst:246 msgid "" "When you declare a class, you must also specify two aspects of its type in " "C: the type declaration you'd use for a pointer to an instance of this " @@ -476,7 +474,7 @@ msgstr "" "vers une instance de cette classe et un pointeur vers le :c:type:" "`PyTypeObject` de cette classe." -#: ../Doc/howto/clinic.rst:266 +#: howto/clinic.rst:266 msgid "" "Declare each of the parameters to the function. Each parameter should get " "its own line. All the parameter lines should be indented from the function " @@ -486,17 +484,17 @@ msgstr "" "sur une ligne séparée. Tous les paramètres doivent être indentés par rapport " "au nom de la fonction et à la *docstring*." -#: ../Doc/howto/clinic.rst:270 +#: howto/clinic.rst:270 msgid "The general form of these parameter lines is as follows:" msgstr "La forme générale de ces paramètres est la suivante :" -#: ../Doc/howto/clinic.rst:276 +#: howto/clinic.rst:276 msgid "If the parameter has a default value, add that after the converter:" msgstr "" "Si le paramètre a une valeur par défaut, ajoutez ceci après le " "convertisseur :" -#: ../Doc/howto/clinic.rst:283 +#: howto/clinic.rst:283 msgid "" "Argument Clinic's support for \"default values\" is quite sophisticated; " "please see :ref:`the section below on default values ` for " @@ -506,11 +504,11 @@ msgstr "" "sophistiquée; voyez :ref:`la section ci-dessous sur les valeurs par défaut " "` pour plus de détails." -#: ../Doc/howto/clinic.rst:287 +#: howto/clinic.rst:287 msgid "Add a blank line below the parameters." msgstr "Ajoutez une ligne vide sous les paramètres." -#: ../Doc/howto/clinic.rst:289 +#: howto/clinic.rst:289 msgid "" "What's a \"converter\"? It establishes both the type of the variable used " "in C, and the method to convert the Python value into a C value at runtime. " @@ -524,7 +522,7 @@ msgstr "" "convertisseur hérité » -- une syntaxe de convenance qui facilite le portage " "de vieux code dans Argument Clinic." -#: ../Doc/howto/clinic.rst:296 +#: howto/clinic.rst:296 msgid "" "For each parameter, copy the \"format unit\" for that parameter from the " "``PyArg_Parse()`` format argument and specify *that* as its converter, as a " @@ -541,7 +539,7 @@ msgstr "" "convertir. Pour plus d'information sur les unités de format, voyez :ref:`arg-" "parsing`.)" -#: ../Doc/howto/clinic.rst:305 +#: howto/clinic.rst:305 msgid "" "For multicharacter format units like ``z#``, use the entire two-or-three " "character string." @@ -549,7 +547,7 @@ msgstr "" "Pour des unités de format de plusieurs caractères, comme ``z#``, utilisez " "l'ensemble des 2 ou 3 caractères de la chaîne. " -#: ../Doc/howto/clinic.rst:323 +#: howto/clinic.rst:323 msgid "" "If your function has ``|`` in the format string, meaning some parameters " "have default values, you can ignore it. Argument Clinic infers which " @@ -560,7 +558,7 @@ msgstr "" "Clinic infère quels paramètres sont optionnels selon s'ils ont ou non une " "valeur par défaut." -#: ../Doc/howto/clinic.rst:328 +#: howto/clinic.rst:328 msgid "" "If your function has ``$`` in the format string, meaning it takes keyword-" "only arguments, specify ``*`` on a line by itself before the first keyword-" @@ -571,13 +569,13 @@ msgstr "" "avant le premier argument nommé, avec la même indentation que les lignes de " "paramètres." -#: ../Doc/howto/clinic.rst:333 +#: howto/clinic.rst:333 msgid "(``_pickle.Pickler.dump`` has neither, so our sample is unchanged.)" msgstr "" "(``_pickle.Pickler.dump`` n'a ni l'un ni l'autre, donc notre exemple est " "inchangé.)" -#: ../Doc/howto/clinic.rst:336 +#: howto/clinic.rst:336 msgid "" "If the existing C function calls :c:func:`PyArg_ParseTuple` (as opposed to :" "c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are positional-" @@ -587,7 +585,7 @@ msgstr "" "func:`PyArg_ParseTupleAndKeywords`), alors tous ses arguments sont " "uniquement positionnels. " -#: ../Doc/howto/clinic.rst:340 +#: howto/clinic.rst:340 msgid "" "To mark all parameters as positional-only in Argument Clinic, add a ``/`` on " "a line by itself after the last parameter, indented the same as the " @@ -597,7 +595,7 @@ msgstr "" "Clinic, ajoutez ``/`` sur une ligne à part après le dernier paramètre, avec " "la même indentation que les lignes de paramètres." -#: ../Doc/howto/clinic.rst:344 +#: howto/clinic.rst:344 msgid "" "Currently this is all-or-nothing; either all parameters are positional-only, " "or none of them are. (In the future Argument Clinic may relax this " @@ -607,7 +605,7 @@ msgstr "" "uniquement positionnels, ou aucun ne l'est. (Dans le futur, Argument Clinic " "supprimera peut être cette restriction.)" -#: ../Doc/howto/clinic.rst:364 +#: howto/clinic.rst:364 msgid "" "It's helpful to write a per-parameter docstring for each parameter. But per-" "parameter docstrings are optional; you can skip this step if you prefer." @@ -615,7 +613,7 @@ msgstr "" "Il est utile d'ajouter une *docstring* pour chaque paramètre, mais c'est " "optionnel; vous pouvez passer cette étape si vous préférez." -#: ../Doc/howto/clinic.rst:368 +#: howto/clinic.rst:368 msgid "" "Here's how to add a per-parameter docstring. The first line of the per-" "parameter docstring must be indented further than the parameter definition. " @@ -631,7 +629,7 @@ msgstr "" "Vous pouvez écrire autant de texte que vous le souhaitez, sur plusieurs " "lignes." -#: ../Doc/howto/clinic.rst:392 +#: howto/clinic.rst:392 msgid "" "Save and close the file, then run ``Tools/clinic/clinic.py`` on it. With " "luck everything worked---your block now has output, and a ``.c.h`` file has " @@ -642,7 +640,7 @@ msgstr "" "sortie, et un fichier ``.c.h`` a été généré ! Ré-ouvrez le fichier dans " "votre éditeur pour voir ::" -#: ../Doc/howto/clinic.rst:411 +#: howto/clinic.rst:411 msgid "" "Obviously, if Argument Clinic didn't produce any output, it's because it " "found an error in your input. Keep fixing your errors and retrying until " @@ -652,7 +650,7 @@ msgstr "" "rencontré une erreur dans votre entrée. Corrigez vos erreurs et réessayez " "jusqu'à ce qu'Argument Clinic traite votre fichier sans problème." -#: ../Doc/howto/clinic.rst:415 +#: howto/clinic.rst:415 msgid "" "For readability, most of the glue code has been generated to a ``.c.h`` " "file. You'll need to include that in your original ``.c`` file, typically " @@ -662,7 +660,7 @@ msgstr "" "h``. Vous devez l'inclure dans votre fichier ``.c`` original, typiquement " "juste après le bloc du module *clinic* ::" -#: ../Doc/howto/clinic.rst:421 +#: howto/clinic.rst:421 msgid "" "Double-check that the argument-parsing code Argument Clinic generated looks " "basically the same as the existing code." @@ -670,7 +668,7 @@ msgstr "" "Vérifiez bien que le code d'analyse d'argument généré par Argument Clinic " "ressemble bien au code existant." -#: ../Doc/howto/clinic.rst:424 +#: howto/clinic.rst:424 msgid "" "First, ensure both places use the same argument-parsing function. The " "existing code must call either :c:func:`PyArg_ParseTuple` or :c:func:" @@ -682,7 +680,7 @@ msgstr "" "`PyArg_ParseTuple` soit :c:func:`PyArg_ParseTupleAndKeywords`; assurez vous " "que le code généré par Argument Clinic appelle *exactement* la même fonction." -#: ../Doc/howto/clinic.rst:430 +#: howto/clinic.rst:430 msgid "" "Second, the format string passed in to :c:func:`PyArg_ParseTuple` or :c:func:" "`PyArg_ParseTupleAndKeywords` should be *exactly* the same as the hand-" @@ -693,7 +691,7 @@ msgstr "" "*exactement* la même que celle écrite à la main, jusqu'aux deux points ou au " "point virgule." -#: ../Doc/howto/clinic.rst:435 +#: howto/clinic.rst:435 msgid "" "(Argument Clinic always generates its format strings with a ``:`` followed " "by the name of the function. If the existing code's format string ends with " @@ -704,7 +702,7 @@ msgstr "" "``, pour fournir une aide sur l'utilisation, ce changement n'a aucun effet, " "ne vous en souciez pas.)" -#: ../Doc/howto/clinic.rst:440 +#: howto/clinic.rst:440 msgid "" "Third, for parameters whose format units require two arguments (like a " "length variable, or an encoding string, or a pointer to a conversion " @@ -716,7 +714,7 @@ msgstr "" "pointeur vers une fonction de conversion), assurez vous que ce deuxième " "argument est *exactement* le même entre les deux invocations." -#: ../Doc/howto/clinic.rst:445 +#: howto/clinic.rst:445 msgid "" "Fourth, inside the output portion of the block you'll find a preprocessor " "macro defining the appropriate static :c:type:`PyMethodDef` structure for " @@ -726,7 +724,7 @@ msgstr "" "une macro pré-processeur qui définit les structures statiques :c:type:" "`PyMethodDef` appropriées pour ce module natif ::" -#: ../Doc/howto/clinic.rst:452 +#: howto/clinic.rst:452 msgid "" "This static structure should be *exactly* the same as the existing static :c:" "type:`PyMethodDef` structure for this builtin." @@ -734,7 +732,7 @@ msgstr "" "Cette structure statique doit être *exactement* la même que la structure " "statique :c:type:`PyMethodDef` existante pour ce module natif." -#: ../Doc/howto/clinic.rst:455 +#: howto/clinic.rst:455 msgid "" "If any of these items differ in *any way*, adjust your Argument Clinic " "function specification and rerun ``Tools/clinic/clinic.py`` until they *are* " @@ -744,7 +742,7 @@ msgstr "" "spécification de fonction d'Argument Clinic et exécutez de nouveau ``Tools/" "clinic/clinic.py`` jusqu'à ce qu'elles soient identiques." -#: ../Doc/howto/clinic.rst:460 +#: howto/clinic.rst:460 msgid "" "Notice that the last line of its output is the declaration of your \"impl\" " "function. This is where the builtin's implementation goes. Delete the " @@ -763,7 +761,7 @@ msgstr "" "fonction ``impl``; si l'implémentation utilise des noms différents pour ces " "variables, corrigez-les." -#: ../Doc/howto/clinic.rst:468 +#: howto/clinic.rst:468 msgid "" "Let's reiterate, just because it's kind of weird. Your code should now look " "like this::" @@ -771,7 +769,7 @@ msgstr "" "Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction doit " "ressembler à ça ::" -#: ../Doc/howto/clinic.rst:477 +#: howto/clinic.rst:477 msgid "" "Argument Clinic generated the checksum line and the function prototype just " "above it. You should write the opening (and closing) curly braces for the " @@ -781,7 +779,7 @@ msgstr "" "au dessus. Vous devez écrire les accolades d'ouverture (et de fermeture) " "pour la fonction, et l’implémentation à l'intérieur." -#: ../Doc/howto/clinic.rst:522 +#: howto/clinic.rst:522 msgid "" "Remember the macro with the :c:type:`PyMethodDef` structure for this " "function? Find the existing :c:type:`PyMethodDef` structure for this " @@ -797,7 +795,7 @@ msgstr "" "certainement vers la fin du fichier; s'il s'agît d'une méthode de classe, se " "sera sans doute plus bas, mais relativement près de l'implémentation.)" -#: ../Doc/howto/clinic.rst:529 +#: howto/clinic.rst:529 msgid "" "Note that the body of the macro contains a trailing comma. So when you " "replace the existing static :c:type:`PyMethodDef` structure with the macro, " @@ -807,7 +805,7 @@ msgstr "" "vous remplacez la structure statique :c:type:`PyMethodDef` par la macro, " "*n'ajoutez pas* de virgule à la fin." -#: ../Doc/howto/clinic.rst:542 +#: howto/clinic.rst:542 msgid "" "Compile, then run the relevant portions of the regression-test suite. This " "change should not introduce any new compile-time warnings or errors, and " @@ -818,7 +816,7 @@ msgstr "" "ou avertissement à la compilation, et il ne devrait y avoir aucun changement " "visible de l'extérieur au comportement de Python." -#: ../Doc/howto/clinic.rst:546 +#: howto/clinic.rst:546 msgid "" "Well, except for one difference: ``inspect.signature()`` run on your " "function should now provide a valid signature!" @@ -826,7 +824,7 @@ msgstr "" "Enfin, à part pour une différence : si vous exécutez ``inspect.signature()`` " "sur votre fonction, vous obtiendrez maintenant une signature valide !" -#: ../Doc/howto/clinic.rst:549 +#: howto/clinic.rst:549 msgid "" "Congratulations, you've ported your first function to work with Argument " "Clinic!" @@ -834,11 +832,11 @@ msgstr "" "Félicitations, vous avez adapté votre première fonction pour qu'elle utilise " "Argument Clinic !" -#: ../Doc/howto/clinic.rst:552 +#: howto/clinic.rst:552 msgid "Advanced Topics" msgstr "Sujets avancés" -#: ../Doc/howto/clinic.rst:554 +#: howto/clinic.rst:554 msgid "" "Now that you've had some experience working with Argument Clinic, it's time " "for some advanced topics." @@ -846,11 +844,11 @@ msgstr "" "Maintenant que vous avez un peu d'expérience avec Argument Clinic, c'est le " "moment pour des sujets avancés." -#: ../Doc/howto/clinic.rst:559 +#: howto/clinic.rst:559 msgid "Symbolic default values" msgstr "Valeurs par défaut" -#: ../Doc/howto/clinic.rst:561 +#: howto/clinic.rst:561 msgid "" "The default value you provide for a parameter can't be any arbitrary " "expression. Currently the following are explicitly supported:" @@ -858,19 +856,19 @@ msgstr "" "La valeur par défaut que vous fournissez pour un paramètre ne peut pas être " "n'importe quelle expression. Actuellement, ce qui est géré :" -#: ../Doc/howto/clinic.rst:564 +#: howto/clinic.rst:564 msgid "Numeric constants (integer and float)" msgstr "Constantes numériques (entier ou nombre flottant)" -#: ../Doc/howto/clinic.rst:565 +#: howto/clinic.rst:565 msgid "String constants" msgstr "Chaînes constantes" -#: ../Doc/howto/clinic.rst:566 +#: howto/clinic.rst:566 msgid "``True``, ``False``, and ``None``" msgstr "``True``, ``False`` et ``None``" -#: ../Doc/howto/clinic.rst:567 +#: howto/clinic.rst:567 msgid "" "Simple symbolic constants like ``sys.maxsize``, which must start with the " "name of the module" @@ -878,7 +876,7 @@ msgstr "" "Constantes symboliques simples comme ``sys.maxsize``, qui doivent commencer " "par le nom du module" -#: ../Doc/howto/clinic.rst:570 +#: howto/clinic.rst:570 msgid "" "In case you're curious, this is implemented in ``from_builtin()`` in ``Lib/" "inspect.py``." @@ -886,7 +884,7 @@ msgstr "" "Si par curiosité vous voulez lire l'implémentation, c'est ``from_builtin()`` " "dans ``Lib/inspect.py``." -#: ../Doc/howto/clinic.rst:573 +#: howto/clinic.rst:573 msgid "" "(In the future, this may need to get even more elaborate, to allow full " "expressions like ``CONSTANT - 1``.)" @@ -894,11 +892,11 @@ msgstr "" "(Dans le futur, il est possible que l'on ait besoin de l'améliorer, pour " "autoriser les expressions complètes comme ``CONSTANT - 1``.)" -#: ../Doc/howto/clinic.rst:578 +#: howto/clinic.rst:578 msgid "Renaming the C functions and variables generated by Argument Clinic" -msgstr "" +msgstr "Renommer les fonctions et variables C générées par Argument Clinic" -#: ../Doc/howto/clinic.rst:580 +#: howto/clinic.rst:580 msgid "" "Argument Clinic automatically names the functions it generates for you. " "Occasionally this may cause a problem, if the generated name collides with " @@ -909,16 +907,24 @@ msgid "" "function, then add ``\"_impl\"`` to the end and use that for the name of the " "impl function." msgstr "" +"Argument Clinic nomme automatiquement les fonctions qu'il génère. Parfois, " +"cela peut poser des problèmes, si le nom généré entre en collision avec le " +"nom d'une fonction C existante. Il y a une solution simple : surcharger les " +"noms utilisés par les fonctions C. Ajoutez simplement le mot clef ``\"as\"`` " +"sur la ligne de la déclaration de la fonction, suivi par le nom de la " +"fonction que vous souhaitez utiliser. Argument Clinic utilisera ce nom de " +"fonction pour la fonction de base (celle générée), et ajoutera ``\"_impl\"`` " +"à la fin et utilisera ce nom pour la fonction ``impl``." -#: ../Doc/howto/clinic.rst:588 +#: howto/clinic.rst:588 msgid "" "For example, if we wanted to rename the C function names generated for " "``pickle.Pickler.dump``, it'd look like this::" msgstr "" "Par exemple, si nous voulons renommer les noms de fonction C générés pour " -"``pickle.Pickler.dump``, ça ressemblerait à ça :" +"``pickle.Pickler.dump``, ça ressemblerait à ça ::" -#: ../Doc/howto/clinic.rst:596 +#: howto/clinic.rst:596 msgid "" "The base function would now be named ``pickler_dumper()``, and the impl " "function would now be named ``pickler_dumper_impl()``." @@ -926,7 +932,7 @@ msgstr "" "La fonction de base sera maintenant nommée ``pickler_dumper()``, et la " "fonction *impl* serait maintenant nommé ``pickler_dumper_impl()``." -#: ../Doc/howto/clinic.rst:600 +#: howto/clinic.rst:600 msgid "" "Similarly, you may have a problem where you want to give a parameter a " "specific Python name, but that name may be inconvenient in C. Argument " @@ -936,23 +942,25 @@ msgstr "" "De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " "paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " "Argument Clinic vous permet de donner à un paramètre des noms différents en " -"Python et en C." +"Python et en C ::" -#: ../Doc/howto/clinic.rst:614 +#: howto/clinic.rst:614 msgid "" "Here, the name used in Python (in the signature and the ``keywords`` array) " "would be ``file``, but the C variable would be named ``file_obj``." msgstr "" +"Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des " +"``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``." -#: ../Doc/howto/clinic.rst:617 +#: howto/clinic.rst:617 msgid "You can use this to rename the ``self`` parameter too!" msgstr "Vous pouvez utiliser ceci pour renommer aussi le paramètre ``self``" -#: ../Doc/howto/clinic.rst:621 +#: howto/clinic.rst:621 msgid "Converting functions using PyArg_UnpackTuple" msgstr "Conversion des fonctions en utilisant *PyArg_UnpackTuple*" -#: ../Doc/howto/clinic.rst:623 +#: howto/clinic.rst:623 msgid "" "To convert a function parsing its arguments with :c:func:" "`PyArg_UnpackTuple`, simply write out all the arguments, specifying each as " @@ -960,8 +968,14 @@ msgid "" "appropriate. All arguments should be marked positional-only (add a ``/`` on " "a line by itself after the last argument)." msgstr "" +"Afin de convertir une fonction analysant ses arguments via :c:func:" +"`PyArg_UnpackTuple`, écrivez simplement tous les arguments, en les " +"spécifiant comme des ``object``. Vous pouvez spécifier également le ``type`` " +"d'argument afin de le forcer au type approprié. Tous les arguments devraient " +"être marqués comme seulement positionnels (ajoutez un ``/`` seul sur la " +"ligne après le dernier argument)." -#: ../Doc/howto/clinic.rst:629 +#: howto/clinic.rst:629 msgid "" "Currently the generated code will use :c:func:`PyArg_ParseTuple`, but this " "will change soon." @@ -969,11 +983,11 @@ msgstr "" "Actuellement, le code généré utilise :c:func:`PyArg_ParseTuple`, mais cela " "va bientôt changer." -#: ../Doc/howto/clinic.rst:633 +#: howto/clinic.rst:633 msgid "Optional Groups" msgstr "Groupes optionnels" -#: ../Doc/howto/clinic.rst:635 +#: howto/clinic.rst:635 msgid "" "Some legacy functions have a tricky approach to parsing their arguments: " "they count the number of positional arguments, then use a ``switch`` " @@ -983,8 +997,16 @@ msgid "" "optional arguments back before :c:func:`PyArg_ParseTupleAndKeywords` was " "created." msgstr "" +"Certaines fonctions de base ont une approche particulière pour analyser " +"leurs arguments : elles comptent le nombre d'arguments positionnels, puis " +"elles utilisent une condition ``switch`` basée sur le nombre d'arguments " +"présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles " +"(ces fonctions ne peuvent pas avoir des arguments passés uniquement en tant " +"qu'arguments nommés). Cette approche était utilisée pour simuler des " +"arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne soit " +"créée." -#: ../Doc/howto/clinic.rst:642 +#: howto/clinic.rst:642 msgid "" "While functions using this approach can often be converted to use :c:func:" "`PyArg_ParseTupleAndKeywords`, optional arguments, and default values, it's " @@ -997,8 +1019,19 @@ msgid "" "the function passing in ``x``, you must also pass in ``y``—and if you don't " "pass in ``x`` you may not pass in ``y`` either.)" msgstr "" +"Alors que les fonctions utilisant cette approche peuvent normalement être " +"converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des " +"arguments optionnels et des valeurs par défaut, ce n'est pas toujours " +"possible. Certaines fonctions classiques ne peuvent pas être gérées par :c:" +"func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est la " +"fonction native ``range()``, qui possède un argument optionnel à *gauche* de " +"ses arguments requis ! Un autre exemple est la fonction ``curses.window." +"addch()``, qui possède un groupe de deux arguments qui doivent toujours être " +"spécifiés ensemble (ces arguments s'appellent ``x`` et ``y`` ; si vous " +"appelez la fonction en passant ``x``, vous devez passer ``y`` et si vous ne " +"passez pas ``x``, vous ne devez pas passer ``y`` non plus)." -#: ../Doc/howto/clinic.rst:654 +#: howto/clinic.rst:654 msgid "" "In any case, the goal of Argument Clinic is to support argument parsing for " "all existing CPython builtins without changing their semantics. Therefore " @@ -1007,8 +1040,16 @@ msgid "" "all be passed in together. They can be to the left or the right of the " "required arguments. They can *only* be used with positional-only parameters." msgstr "" +"Dans tous les cas, le but d'Argument Clinic est de prendre en charge " +"l'analyse des arguments pour toutes les fonctions natives de CPython sans " +"avoir besoin de les modifier. C'est pourquoi Argument Clinic propose cette " +"autre approche pour l'analyse, en utilisant ce qu'on appelle les *groupes " +"optionnels*. Les groupes optionnels sont des groupes d'arguments qui doivent " +"tous être transmis ensemble. Ils peuvent être situés à droite ou à gauche " +"des arguments requis. Ils ne peuvent être utilisés *seulement* qu'en tant " +"que paramètres positionnels." -#: ../Doc/howto/clinic.rst:662 +#: howto/clinic.rst:662 msgid "" "Optional groups are *only* intended for use when converting functions that " "make multiple calls to :c:func:`PyArg_ParseTuple`! Functions that use *any* " @@ -1018,8 +1059,16 @@ msgid "" "doesn't understand the concept. Please avoid using optional groups wherever " "possible." msgstr "" +"Les groupes optionnels sont *uniquement* prévus pour convertir les fonctions " +"faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les fonctions " +"qui utilisent *au moins une* des autres approches ne doivent *presque " +"jamais* être converties à Argument Clinic en utilisant les groupes " +"optionnels. Les fonctions utilisant ces groupes n'ont pas actuellement de " +"signature précise en Python, parce que celui-ci ne peut simplement pas " +"comprendre ce concept. Tâchez d'éviter au maximum d'utiliser ces groupes " +"optionnels si possible." -#: ../Doc/howto/clinic.rst:671 +#: howto/clinic.rst:671 msgid "" "To specify an optional group, add a ``[`` on a line by itself before the " "parameters you wish to group together, and a ``]`` on a line by itself after " @@ -1027,12 +1076,17 @@ msgid "" "optional groups to make the first two parameters and the last parameter " "optional::" msgstr "" +"Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne " +"avant les paramètres que vous souhaitez inclure dans le groupe, puis un " +"``]`` seul sur une ligne après ces paramètres. Voici, par exemple, comment " +"``curses.window.addch`` utilise les groupes optionnels pour rendre optionnel " +"les deux premiers paramètres ainsi que le dernier :" -#: ../Doc/howto/clinic.rst:700 +#: howto/clinic.rst:700 msgid "Notes:" msgstr "Notes :" -#: ../Doc/howto/clinic.rst:702 +#: howto/clinic.rst:702 msgid "" "For every optional group, one additional parameter will be passed into the " "impl function representing the group. The parameter will be an int named " @@ -1044,8 +1098,18 @@ msgid "" "was unused, and set to non-zero if this group was used. (By used or unused, " "I mean whether or not the parameters received arguments in this invocation.)" msgstr "" +"Pour chaque groupe optionnel, un paramètre additionnel sera passé à la " +"fonction ``impl`` représentant le groupe. Ce paramètre sera un entier nommé " +"``group_{direction}_{number}``, où ``{direction}`` peut être soit ``right`` " +"ou ``left`` suivant que le groupe est situé avant ou après les paramètres " +"requis, et ``{number}`` sera un entier incrémenté (débutant à 1) indiquant " +"la distance entre le groupe et les paramètres requis. Quand la fonction " +"``impl`` est appelée, ce paramètre est positionné à zéro si le groupe n'a " +"pas été utilisé, et positionné à un nombre entier positif sinon (par " +"inutilisé, on entend que les paramètres n'ont pas reçu de valeur lors de cet " +"appel)." -#: ../Doc/howto/clinic.rst:713 +#: howto/clinic.rst:713 msgid "" "If there are no required arguments, the optional groups will behave as if " "they're to the right of the required arguments." @@ -1053,17 +1117,20 @@ msgstr "" "S'il n'y a pas d'arguments requis, les groupes optionnels se comportent " "comme s'ils étaient à droite des arguments requis." -#: ../Doc/howto/clinic.rst:716 +#: howto/clinic.rst:716 msgid "" "In the case of ambiguity, the argument parsing code favors parameters on the " "left (before the required parameters)." msgstr "" +"En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés à " +"gauche (avant les paramètres obligatoires)." -#: ../Doc/howto/clinic.rst:719 +#: howto/clinic.rst:719 msgid "Optional groups can only contain positional-only parameters." msgstr "" +"Les groupes optionnels ne peuvent contenir que des arguments positionnels." -#: ../Doc/howto/clinic.rst:721 +#: howto/clinic.rst:721 msgid "" "Optional groups are *only* intended for legacy code. Please do not use " "optional groups for new code." @@ -1071,11 +1138,13 @@ msgstr "" "Les groupes optionnels sont *seulement* destinés au code hérité. Ne les " "utilisez pas dans du nouveau code." -#: ../Doc/howto/clinic.rst:726 +#: howto/clinic.rst:726 msgid "Using real Argument Clinic converters, instead of \"legacy converters\"" msgstr "" +"Utilisation des adaptateurs d'Argument Clinic, en lieu et place des " +"« adaptateurs de base »" -#: ../Doc/howto/clinic.rst:728 +#: howto/clinic.rst:728 msgid "" "To save time, and to minimize how much you need to learn to achieve your " "first port to Argument Clinic, the walkthrough above tells you to use " @@ -1083,162 +1152,216 @@ msgid "" "explicitly to make porting existing code to Argument Clinic easier. And to " "be clear, their use is acceptable when porting code for Python 3.4." msgstr "" +"Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour " +"pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les " +"« adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter " +"facilement du code existant sous Argument Clinic. Et pour être clair, leur " +"utilisation est tout à fait acceptable pour porter du code Python 3.4." -#: ../Doc/howto/clinic.rst:735 +#: howto/clinic.rst:735 msgid "" "However, in the long term we probably want all our blocks to use Argument " "Clinic's real syntax for converters. Why? A couple reasons:" msgstr "" +"Cependant, sur le long terme, il est certainement préférable que tous vos " +"blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. " +"Pourquoi ? Voici quelques raisons :" -#: ../Doc/howto/clinic.rst:739 +#: howto/clinic.rst:739 msgid "" "The proper converters are far easier to read and clearer in their intent." -msgstr "" +msgstr "Les adaptateurs sont plus simples et plus clairs." -#: ../Doc/howto/clinic.rst:740 +#: howto/clinic.rst:740 msgid "" "There are some format units that are unsupported as \"legacy converters\", " "because they require arguments, and the legacy converter syntax doesn't " "support specifying arguments." msgstr "" +"Il existe des formats qui ne sont pas gérés par les « adaptateurs de base », " +"parce qu'ils nécessitent des arguments, et la syntaxe de ces adaptateurs ne " +"supporte pas cela." -#: ../Doc/howto/clinic.rst:743 +#: howto/clinic.rst:743 msgid "" "In the future we may have a new argument parsing library that isn't " "restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " "won't be available to parameters using legacy converters." msgstr "" +"Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des " +"arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` " +"accepte ; cette flexibilité ne serait pas accessible aux paramètres " +"utilisant des adaptateurs de base." -#: ../Doc/howto/clinic.rst:747 +#: howto/clinic.rst:747 msgid "" "Therefore, if you don't mind a little extra effort, please use the normal " "converters instead of legacy converters." msgstr "" +"Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous " +"devriez utiliser les adaptateurs normaux plutôt que ceux de base." -#: ../Doc/howto/clinic.rst:750 +#: howto/clinic.rst:750 msgid "" "In a nutshell, the syntax for Argument Clinic (non-legacy) converters looks " "like a Python function call. However, if there are no explicit arguments to " "the function (all functions take their default values), you may omit the " "parentheses. Thus ``bool`` and ``bool()`` are exactly the same converters." msgstr "" +"En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un appel " +"de fonction Python. Mais, s'il n'y a pas d'argument explicite à la fonction " +"(celle-ci utilisant ses valeurs par défaut), vous pouvez omettre les " +"parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même adaptateur." -#: ../Doc/howto/clinic.rst:756 +#: howto/clinic.rst:756 msgid "" "All arguments to Argument Clinic converters are keyword-only. All Argument " "Clinic converters accept the following arguments:" msgstr "" +"Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. " +"Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :" -#: ../Doc/howto/clinic.rst:764 ../Doc/howto/clinic.rst:1252 +#: howto/clinic.rst:1252 msgid "``c_default``" -msgstr "" +msgstr "``c_default``" -#: ../Doc/howto/clinic.rst:760 +#: howto/clinic.rst:760 msgid "" "The default value for this parameter when defined in C. Specifically, this " -"will be the initializer for the variable declared in the \"parse function" -"\". See :ref:`the section on default values ` for how to " -"use this. Specified as a string." +"will be the initializer for the variable declared in the \"parse " +"function\". See :ref:`the section on default values ` for " +"how to use this. Specified as a string." msgstr "" +"La valeur par défaut de cet argument lorsqu'il est défini en C. Typiquement, " +"il servira à initialiser la variable déclarée dans la « fonction " +"d'analyse ». Voir la section relative aux :ref:`valeurs par défaut " +"` pour apprendre à l'utiliser. Spécifié en tant que chaîne " +"de caractères." -#: ../Doc/howto/clinic.rst:769 +#: howto/clinic.rst:769 msgid "``annotation``" -msgstr "" +msgstr "``annotation``" -#: ../Doc/howto/clinic.rst:767 +#: howto/clinic.rst:767 msgid "" "The annotation value for this parameter. Not currently supported, because :" "pep:`8` mandates that the Python library may not use annotations." msgstr "" +"La valeur annotée pour ce paramètre. Actuellement non géré, car la :pep:`8` " +"exige que les bibliothèques Python n'utilisent pas d'annotations." -#: ../Doc/howto/clinic.rst:771 +#: howto/clinic.rst:771 msgid "" "In addition, some converters accept additional arguments. Here is a list of " "these arguments, along with their meanings:" msgstr "" +"De plus, certains adaptateurs acceptent des arguments additionnels. Voici la " +"liste de ces arguments, avec leur explication :" -#: ../Doc/howto/clinic.rst:780 +#: howto/clinic.rst:780 msgid "``accept``" -msgstr "" +msgstr "``accept``" -#: ../Doc/howto/clinic.rst:775 +#: howto/clinic.rst:775 msgid "" "A set of Python types (and possibly pseudo-types); this restricts the " "allowable Python argument to values of these types. (This is not a general-" "purpose facility; as a rule it only supports specific lists of types as " "shown in the legacy converter table.)" msgstr "" +"Un ensemble de types Python (et potentiellement des pseudo-types) ; cela " +"restreint l'argument Python autorisé aux valeurs de ces types (ce n'est pas " +"destiné à une utilisation généralisée ; en fait, il gère seulement les types " +"listés dans la table des adaptateurs de base)." -#: ../Doc/howto/clinic.rst:780 +#: howto/clinic.rst:780 msgid "To accept ``None``, add ``NoneType`` to this set." -msgstr "" +msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." -#: ../Doc/howto/clinic.rst:785 +#: howto/clinic.rst:785 msgid "``bitwise``" -msgstr "" +msgstr "``bitwise``" -#: ../Doc/howto/clinic.rst:783 +#: howto/clinic.rst:783 msgid "" "Only supported for unsigned integers. The native integer value of this " "Python argument will be written to the parameter without any range checking, " "even for negative values." msgstr "" +"Autorisé seulement pour les entiers non signés. La valeur native de cet " +"argument Python sera transcrite dans le paramètre sans aucune vérification " +"de plage, même pour des valeurs négatives." -#: ../Doc/howto/clinic.rst:790 ../Doc/howto/clinic.rst:1266 +#: howto/clinic.rst:1266 msgid "``converter``" -msgstr "" +msgstr "``converter``" -#: ../Doc/howto/clinic.rst:788 +#: howto/clinic.rst:788 msgid "" "Only supported by the ``object`` converter. Specifies the name of a :ref:`C " "\"converter function\" ` to use to convert this object to a " "native type." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom d'une :ref:" +"`« fonction de conversion » depuis C ` à utiliser pour " +"convertir cet objet en type natif." -#: ../Doc/howto/clinic.rst:795 +#: howto/clinic.rst:795 msgid "``encoding``" msgstr "``encoding``" -#: ../Doc/howto/clinic.rst:793 +#: howto/clinic.rst:793 msgid "" "Only supported for strings. Specifies the encoding to use when converting " "this string from a Python str (Unicode) value into a C ``char *`` value." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à " +"utiliser lors de la conversion de cette chaîne depuis une valeur de type " +"Python ``str`` (Unicode) en valeur C ``char *``." -#: ../Doc/howto/clinic.rst:799 +#: howto/clinic.rst:799 msgid "``subclass_of``" -msgstr "" +msgstr "``subclass_of``" -#: ../Doc/howto/clinic.rst:798 +#: howto/clinic.rst:798 msgid "" "Only supported for the ``object`` converter. Requires that the Python value " "be a subclass of a Python type, as expressed in C." msgstr "" +"Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur " +"Python soit une sous-classe d'un type Python, telle qu'exprimée en C." -#: ../Doc/howto/clinic.rst:804 ../Doc/howto/clinic.rst:1238 +#: howto/clinic.rst:1238 msgid "``type``" msgstr "``type``" -#: ../Doc/howto/clinic.rst:802 +#: howto/clinic.rst:802 msgid "" "Only supported for the ``object`` and ``self`` converters. Specifies the C " -"type that will be used to declare the variable. Default value is ``" -"\"PyObject *\"``." +"type that will be used to declare the variable. Default value is " +"``\"PyObject *\"``." msgstr "" +"Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie le " +"type C qui sera utilisé pour déclarer la variable. La valeur par défaut est " +"``\"PyObject *\"``." -#: ../Doc/howto/clinic.rst:810 +#: howto/clinic.rst:810 msgid "``zeroes``" -msgstr "" +msgstr "``zeroes``" -#: ../Doc/howto/clinic.rst:807 +#: howto/clinic.rst:807 msgid "" "Only supported for strings. If true, embedded NUL bytes (``'\\\\0'``) are " "permitted inside the value. The length of the string will be passed in to " "the impl function, just after the string parameter, as a parameter named " "``_length``." msgstr "" +"Autorisé seulement pour les chaînes de caractères. Si vrai, les octets NUL " +"(``'\\\\0'``) sont permis au sein de la valeur. La taille de la chaîne sera " +"passée à la fonction ``impl``, juste après le paramètre chaîne, en tant que " +"paramètre nommé ``_length``." -#: ../Doc/howto/clinic.rst:812 +#: howto/clinic.rst:812 msgid "" "Please note, not every possible combination of arguments will work. Usually " "these arguments are implemented by specific ``PyArg_ParseTuple`` *format " @@ -1248,351 +1371,366 @@ msgid "" "any existing format unit. So Argument Clinic doesn't support it. (Or, at " "least, not yet.)" msgstr "" +"Attention de bien noter que toutes les combinaisons d'arguments ne " +"fonctionnent pas. Normalement, ces arguments sont mis en place via des " +"*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à " +"l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans " +"spécifier également ``bitwise=True``. Bien qu'il soit parfaitement " +"raisonnable de penser que ça puisse fonctionner, cette écriture ne " +"correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous cas, " +"pas pour le moment)." -#: ../Doc/howto/clinic.rst:820 +#: howto/clinic.rst:820 msgid "" "Below is a table showing the mapping of legacy converters into real Argument " "Clinic converters. On the left is the legacy converter, on the right is the " "text you'd replace it with." msgstr "" +"Vous pouvez voir, ci-dessous, une table présentant la correspondance entre " +"les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont listés les " +"adaptateurs de base et, à droite, le texte qui les remplace." -#: ../Doc/howto/clinic.rst:825 +#: howto/clinic.rst:825 msgid "``'B'``" msgstr "``'B'``" -#: ../Doc/howto/clinic.rst:825 +#: howto/clinic.rst:825 msgid "``unsigned_char(bitwise=True)``" -msgstr "" +msgstr "``unsigned_char(bitwise=True)``" -#: ../Doc/howto/clinic.rst:826 +#: howto/clinic.rst:826 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/howto/clinic.rst:826 +#: howto/clinic.rst:826 msgid "``unsigned_char``" -msgstr "" +msgstr "``unsigned_char``" -#: ../Doc/howto/clinic.rst:827 +#: howto/clinic.rst:827 msgid "``'c'``" msgstr "``'c'``" -#: ../Doc/howto/clinic.rst:827 +#: howto/clinic.rst:827 msgid "``char``" -msgstr "" +msgstr "``char``" -#: ../Doc/howto/clinic.rst:828 +#: howto/clinic.rst:828 msgid "``'C'``" -msgstr "" +msgstr "``'C'``" -#: ../Doc/howto/clinic.rst:828 +#: howto/clinic.rst:828 msgid "``int(accept={str})``" -msgstr "" +msgstr "``int(accept={str})``" -#: ../Doc/howto/clinic.rst:829 +#: howto/clinic.rst:829 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/howto/clinic.rst:829 +#: howto/clinic.rst:829 msgid "``double``" -msgstr "" +msgstr "``double``" -#: ../Doc/howto/clinic.rst:830 +#: howto/clinic.rst:830 msgid "``'D'``" msgstr "``'D'``" -#: ../Doc/howto/clinic.rst:830 +#: howto/clinic.rst:830 msgid "``Py_complex``" -msgstr "" +msgstr "``Py_complex``" -#: ../Doc/howto/clinic.rst:831 +#: howto/clinic.rst:831 msgid "``'es'``" -msgstr "" +msgstr "``'es'``" -#: ../Doc/howto/clinic.rst:831 +#: howto/clinic.rst:831 msgid "``str(encoding='name_of_encoding')``" -msgstr "" +msgstr "``str(encoding='name_of_encoding')``" -#: ../Doc/howto/clinic.rst:832 +#: howto/clinic.rst:832 msgid "``'es#'``" -msgstr "" +msgstr "``'es#'``" -#: ../Doc/howto/clinic.rst:832 +#: howto/clinic.rst:832 msgid "``str(encoding='name_of_encoding', zeroes=True)``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', zeroes=True)``" -#: ../Doc/howto/clinic.rst:833 +#: howto/clinic.rst:833 msgid "``'et'``" -msgstr "" +msgstr "``'et'``" -#: ../Doc/howto/clinic.rst:833 +#: howto/clinic.rst:833 msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -msgstr "" +msgstr "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -#: ../Doc/howto/clinic.rst:834 +#: howto/clinic.rst:834 msgid "``'et#'``" -msgstr "" +msgstr "``'et#'``" -#: ../Doc/howto/clinic.rst:834 +#: howto/clinic.rst:834 msgid "" "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " "zeroes=True)``" msgstr "" +"``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " +"zeroes=True)``" -#: ../Doc/howto/clinic.rst:835 +#: howto/clinic.rst:835 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/howto/clinic.rst:835 +#: howto/clinic.rst:835 msgid "``float``" -msgstr "" +msgstr "``float``" -#: ../Doc/howto/clinic.rst:836 +#: howto/clinic.rst:836 msgid "``'h'``" msgstr "``'h'``" -#: ../Doc/howto/clinic.rst:836 +#: howto/clinic.rst:836 msgid "``short``" -msgstr "" +msgstr "``short``" -#: ../Doc/howto/clinic.rst:837 +#: howto/clinic.rst:837 msgid "``'H'``" msgstr "``'H'``" -#: ../Doc/howto/clinic.rst:837 +#: howto/clinic.rst:837 msgid "``unsigned_short(bitwise=True)``" -msgstr "" +msgstr "``unsigned_short(bitwise=True)``" -#: ../Doc/howto/clinic.rst:838 +#: howto/clinic.rst:838 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/howto/clinic.rst:838 +#: howto/clinic.rst:838 msgid "``int``" msgstr "``int``" -#: ../Doc/howto/clinic.rst:839 +#: howto/clinic.rst:839 msgid "``'I'``" msgstr "``'I'``" -#: ../Doc/howto/clinic.rst:839 +#: howto/clinic.rst:839 msgid "``unsigned_int(bitwise=True)``" -msgstr "" +msgstr "``unsigned_int(bitwise=True)``" -#: ../Doc/howto/clinic.rst:840 +#: howto/clinic.rst:840 msgid "``'k'``" -msgstr "" +msgstr "``'k'``" -#: ../Doc/howto/clinic.rst:840 +#: howto/clinic.rst:840 msgid "``unsigned_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long(bitwise=True)``" -#: ../Doc/howto/clinic.rst:841 +#: howto/clinic.rst:841 msgid "``'K'``" -msgstr "" +msgstr "``'K'``" -#: ../Doc/howto/clinic.rst:841 +#: howto/clinic.rst:841 msgid "``unsigned_long_long(bitwise=True)``" -msgstr "" +msgstr "``unsigned_long_long(bitwise=True)``" -#: ../Doc/howto/clinic.rst:842 +#: howto/clinic.rst:842 msgid "``'l'``" msgstr "``'l'``" -#: ../Doc/howto/clinic.rst:842 +#: howto/clinic.rst:842 msgid "``long``" msgstr "``long``" -#: ../Doc/howto/clinic.rst:843 +#: howto/clinic.rst:843 msgid "``'L'``" msgstr "``'L'``" -#: ../Doc/howto/clinic.rst:843 +#: howto/clinic.rst:843 msgid "``long long``" -msgstr "" +msgstr "``long long``" -#: ../Doc/howto/clinic.rst:844 +#: howto/clinic.rst:844 msgid "``'n'``" msgstr "``'n'``" -#: ../Doc/howto/clinic.rst:844 +#: howto/clinic.rst:844 msgid "``Py_ssize_t``" -msgstr "" +msgstr "``Py_ssize_t``" -#: ../Doc/howto/clinic.rst:845 +#: howto/clinic.rst:845 msgid "``'O'``" -msgstr "" +msgstr "``'O'``" -#: ../Doc/howto/clinic.rst:845 +#: howto/clinic.rst:845 msgid "``object``" -msgstr "" +msgstr "``object``" -#: ../Doc/howto/clinic.rst:846 +#: howto/clinic.rst:846 msgid "``'O!'``" -msgstr "" +msgstr "``'O!'``" -#: ../Doc/howto/clinic.rst:846 +#: howto/clinic.rst:846 msgid "``object(subclass_of='&PySomething_Type')``" -msgstr "" +msgstr "``object(subclass_of='&PySomething_Type')``" -#: ../Doc/howto/clinic.rst:847 +#: howto/clinic.rst:847 msgid "``'O&'``" -msgstr "" +msgstr "``'O&'``" -#: ../Doc/howto/clinic.rst:847 +#: howto/clinic.rst:847 msgid "``object(converter='name_of_c_function')``" -msgstr "" +msgstr "``object(converter='name_of_c_function')``" -#: ../Doc/howto/clinic.rst:848 +#: howto/clinic.rst:848 msgid "``'p'``" -msgstr "" +msgstr "``'p'``" -#: ../Doc/howto/clinic.rst:848 +#: howto/clinic.rst:848 msgid "``bool``" -msgstr "" +msgstr "``bool``" -#: ../Doc/howto/clinic.rst:849 +#: howto/clinic.rst:849 msgid "``'S'``" msgstr "``'S'``" -#: ../Doc/howto/clinic.rst:849 +#: howto/clinic.rst:849 msgid "``PyBytesObject``" -msgstr "" +msgstr "``PyBytesObject``" -#: ../Doc/howto/clinic.rst:850 +#: howto/clinic.rst:850 msgid "``'s'``" msgstr "``'s'``" -#: ../Doc/howto/clinic.rst:850 +#: howto/clinic.rst:850 msgid "``str``" -msgstr "" +msgstr "``str``" -#: ../Doc/howto/clinic.rst:851 +#: howto/clinic.rst:851 msgid "``'s#'``" -msgstr "" +msgstr "``'s#'``" -#: ../Doc/howto/clinic.rst:851 +#: howto/clinic.rst:851 msgid "``str(zeroes=True)``" -msgstr "" +msgstr "``str(zeroes=True)``" -#: ../Doc/howto/clinic.rst:852 +#: howto/clinic.rst:852 msgid "``'s*'``" -msgstr "" +msgstr "``'s*'``" -#: ../Doc/howto/clinic.rst:852 +#: howto/clinic.rst:852 msgid "``Py_buffer(accept={buffer, str})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str})``" -#: ../Doc/howto/clinic.rst:853 +#: howto/clinic.rst:853 msgid "``'U'``" msgstr "``'U'``" -#: ../Doc/howto/clinic.rst:853 +#: howto/clinic.rst:853 msgid "``unicode``" -msgstr "" +msgstr "``unicode``" -#: ../Doc/howto/clinic.rst:854 +#: howto/clinic.rst:854 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/howto/clinic.rst:854 +#: howto/clinic.rst:854 msgid "``Py_UNICODE``" -msgstr "" +msgstr "``Py_UNICODE``" -#: ../Doc/howto/clinic.rst:855 +#: howto/clinic.rst:855 msgid "``'u#'``" -msgstr "" +msgstr "``'u#'``" -#: ../Doc/howto/clinic.rst:855 +#: howto/clinic.rst:855 msgid "``Py_UNICODE(zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(zeroes=True)``" -#: ../Doc/howto/clinic.rst:856 +#: howto/clinic.rst:856 msgid "``'w*'``" -msgstr "" +msgstr "``'w*'``" -#: ../Doc/howto/clinic.rst:856 +#: howto/clinic.rst:856 msgid "``Py_buffer(accept={rwbuffer})``" -msgstr "" +msgstr "``Py_buffer(accept={rwbuffer})``" -#: ../Doc/howto/clinic.rst:857 +#: howto/clinic.rst:857 msgid "``'Y'``" -msgstr "" +msgstr "``'Y'``" -#: ../Doc/howto/clinic.rst:857 +#: howto/clinic.rst:857 msgid "``PyByteArrayObject``" -msgstr "" +msgstr "``PyByteArrayObject``" -#: ../Doc/howto/clinic.rst:858 +#: howto/clinic.rst:858 msgid "``'y'``" -msgstr "" +msgstr "``'y'``" -#: ../Doc/howto/clinic.rst:858 +#: howto/clinic.rst:858 msgid "``str(accept={bytes})``" -msgstr "" +msgstr "``str(accept={bytes})``" -#: ../Doc/howto/clinic.rst:859 +#: howto/clinic.rst:859 msgid "``'y#'``" -msgstr "" +msgstr "``'y#'``" -#: ../Doc/howto/clinic.rst:859 +#: howto/clinic.rst:859 msgid "``str(accept={robuffer}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={robuffer}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:860 +#: howto/clinic.rst:860 msgid "``'y*'``" -msgstr "" +msgstr "``'y*'``" -#: ../Doc/howto/clinic.rst:860 +#: howto/clinic.rst:860 msgid "``Py_buffer``" -msgstr "" +msgstr "``Py_buffer``" -#: ../Doc/howto/clinic.rst:861 +#: howto/clinic.rst:861 msgid "``'Z'``" -msgstr "" +msgstr "``'Z'``" -#: ../Doc/howto/clinic.rst:861 +#: howto/clinic.rst:861 msgid "``Py_UNICODE(accept={str, NoneType})``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType})``" -#: ../Doc/howto/clinic.rst:862 +#: howto/clinic.rst:862 msgid "``'Z#'``" -msgstr "" +msgstr "``'Z#'``" -#: ../Doc/howto/clinic.rst:862 +#: howto/clinic.rst:862 msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:863 +#: howto/clinic.rst:863 msgid "``'z'``" -msgstr "" +msgstr "``'z'``" -#: ../Doc/howto/clinic.rst:863 +#: howto/clinic.rst:863 msgid "``str(accept={str, NoneType})``" -msgstr "" +msgstr "``str(accept={str, NoneType})``" -#: ../Doc/howto/clinic.rst:864 +#: howto/clinic.rst:864 msgid "``'z#'``" -msgstr "" +msgstr "``'z#'``" -#: ../Doc/howto/clinic.rst:864 +#: howto/clinic.rst:864 msgid "``str(accept={str, NoneType}, zeroes=True)``" -msgstr "" +msgstr "``str(accept={str, NoneType}, zeroes=True)``" -#: ../Doc/howto/clinic.rst:865 +#: howto/clinic.rst:865 msgid "``'z*'``" -msgstr "" +msgstr "``'z*'``" -#: ../Doc/howto/clinic.rst:865 +#: howto/clinic.rst:865 msgid "``Py_buffer(accept={buffer, str, NoneType})``" -msgstr "" +msgstr "``Py_buffer(accept={buffer, str, NoneType})``" -#: ../Doc/howto/clinic.rst:868 +#: howto/clinic.rst:868 msgid "" "As an example, here's our sample ``pickle.Pickler.dump`` using the proper " "converter::" msgstr "" +"Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur " +"approprié ::" -#: ../Doc/howto/clinic.rst:881 +#: howto/clinic.rst:881 msgid "" "One advantage of real converters is that they're more flexible than legacy " "converters. For example, the ``unsigned_int`` converter (and all the " @@ -1600,38 +1738,54 @@ msgid "" "default behavior performs range checking on the value, and they won't accept " "negative numbers. You just can't do that with a legacy converter!" msgstr "" +"Un avantage des adaptateurs réels est qu'ils sont plus flexibles que les " +"adaptateurs de base. Par exemple, l'adaptateur ``unsigned_int`` (ainsi que " +"tous les adaptateurs ``unsigned_``) peut être utilisé sans ``bitwise=True``. " +"Leur comportement par défaut contrôle la valeur, et n'acceptera pas de " +"nombres négatifs. On ne peut pas faire ça avec les adaptateurs de base !" -#: ../Doc/howto/clinic.rst:887 +#: howto/clinic.rst:887 msgid "" "Argument Clinic will show you all the converters it has available. For each " "converter it'll show you all the parameters it accepts, along with the " "default value for each parameter. Just run ``Tools/clinic/clinic.py --" "converters`` to see the full list." msgstr "" +"Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque " +"adaptateur, il vous liste également l'ensemble des paramètres qu'ils " +"acceptent, ainsi que les valeurs par défaut de chacun. Utilisez simplement " +"la commande ``Tools/clinic/clinic.py --converters`` pour afficher la liste." -#: ../Doc/howto/clinic.rst:893 +#: howto/clinic.rst:893 msgid "Py_buffer" -msgstr "" +msgstr "Py_buffer" -#: ../Doc/howto/clinic.rst:895 +#: howto/clinic.rst:895 msgid "" "When using the ``Py_buffer`` converter (or the ``'s*'``, ``'w*'``, ``'*y'``, " "or ``'z*'`` legacy converters), you *must* not call :c:func:" "`PyBuffer_Release` on the provided buffer. Argument Clinic generates code " "that does it for you (in the parsing function)." msgstr "" +"Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs de " +"base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* " +"appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic " +"génère du code qui le fait pour vous (dans la fonction d'analyse)." -#: ../Doc/howto/clinic.rst:903 +#: howto/clinic.rst:903 msgid "Advanced converters" -msgstr "" +msgstr "Adaptateurs avancés" -#: ../Doc/howto/clinic.rst:905 +#: howto/clinic.rst:905 msgid "" "Remember those format units you skipped for your first time because they " "were advanced? Here's how to handle those too." msgstr "" +"Vous vous souvenez de ces spécifications de format que vous avez laissées de " +"côté la première fois parce qu'il s'agissait de notions avancées ? Voici " +"comment les utiliser." -#: ../Doc/howto/clinic.rst:908 +#: howto/clinic.rst:908 msgid "" "The trick is, all those format units take arguments—either conversion " "functions, or types, or strings specifying an encoding. (But \"legacy " @@ -1641,8 +1795,16 @@ msgid "" "``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the format " "units that start with ``e``)." msgstr "" +"L'astuce est que toutes ces spécifications de format acceptent des arguments " +"— aussi bien des fonctions de conversion que des types, ou des chaînes " +"spécifiant un encodage. (mais les « adaptateurs de base » ne gèrent pas les " +"arguments. C'est pourquoi nous les avions laissés de côté pour votre " +"première fonction.) L'argument que vous aviez spécifié à la spécification de " +"format est désormais un argument du convertisseur ; cet argument est soit " +"``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!``), ou ``encoding`` " +"(pour toutes les spécifications de format qui commencent par ``e``)." -#: ../Doc/howto/clinic.rst:916 +#: howto/clinic.rst:916 msgid "" "When using ``subclass_of``, you may also want to use the other custom " "argument for ``object()``: ``type``, which lets you set the type actually " @@ -1650,8 +1812,14 @@ msgid "" "is a subclass of ``PyUnicode_Type``, you probably want to use the converter " "``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." msgstr "" +"Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir " +"utiliser les autres arguments usuels pour ``object()`` : ``type``, qui vous " +"laisse spécifier le type à utiliser pour l'argument. Par exemple, si vous " +"voulez vous assurer que l'objet est une sous-classe de ``PyUnicode_Type``, " +"vous utiliserez probablement le convertisseur ``object(type='PyUnicodeObject " +"*', subclass_of='&PyUnicode_Type')``." -#: ../Doc/howto/clinic.rst:922 +#: howto/clinic.rst:922 msgid "" "One possible problem with using Argument Clinic: it takes away some possible " "flexibility for the format units starting with ``e``. When writing a " @@ -1663,32 +1831,48 @@ msgid "" "unreasonable; CPython itself always passes in static hard-coded encoding " "strings for parameters whose format units start with ``e``." msgstr "" - -#: ../Doc/howto/clinic.rst:935 +"Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela retire " +"la flexibilité des spécifications de format commençant par ``e``. Lorsque " +"vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez " +"théoriquement décider quelle chaîne d'encodage passer à :c:func:" +"`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée en dur au " +"moment du pré-processus d'Argument-Clinic. Cette limitation est délibérée ; " +"elle permet une gestion plus simple de cette spécification de format, et " +"peut permettre de futures optimisations. Cette restriction ne semble pas " +"déraisonnable ; CPython lui-même utilise toujours des chaînes d'encodage en " +"dur pour les paramètres dont les spécifications de format commencent par " +"``e``." + +#: howto/clinic.rst:935 msgid "Parameter default values" -msgstr "" +msgstr "Valeurs par défaut des paramètres" -#: ../Doc/howto/clinic.rst:937 +#: howto/clinic.rst:937 msgid "" "Default values for parameters can be any of a number of values. At their " "simplest, they can be string, int, or float literals:" msgstr "" +"Les valeurs par défaut des paramètres peuvent être n'importe quelle valeur. " +"Au plus simple, ce sont des chaînes, des entiers ou des nombres flottants :" -#: ../Doc/howto/clinic.rst:946 +#: howto/clinic.rst:946 msgid "They can also use any of Python's built-in constants:" msgstr "" +"Vous pouvez également utiliser n'importe quelle constante native de Python :" -#: ../Doc/howto/clinic.rst:954 +#: howto/clinic.rst:954 msgid "" "There's also special support for a default value of ``NULL``, and for simple " "expressions, documented in the following sections." msgstr "" +"La valeur ``NULL`` est également acceptée, ainsi que des expressions " +"simples, comme expliqué dans les sections suivantes." -#: ../Doc/howto/clinic.rst:959 +#: howto/clinic.rst:959 msgid "The ``NULL`` default value" -msgstr "" +msgstr "La valeur par défaut ``NULL``" -#: ../Doc/howto/clinic.rst:961 +#: howto/clinic.rst:961 msgid "" "For string and object parameters, you can set them to ``None`` to indicate " "that there's no default. However, that means the C variable will be " @@ -1697,24 +1881,34 @@ msgid "" "behaves like a default value of ``None``, but the C variable is initialized " "with ``NULL``." msgstr "" +"Pour les paramètres chaînes et objets, vous pouvez les positionner à " +"``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, " +"cela signifie que la variable C sera initialisée à ``Py_None``. Par " +"commodité, il existe une valeur spécifique appelée ``NULL`` juste pour cette " +"raison : du point de vue de Python, cette valeur se comporte comme la valeur " +"par défaut ``None``, mais la variable C est initialisée à ``NULL``." -#: ../Doc/howto/clinic.rst:969 +#: howto/clinic.rst:969 msgid "Expressions specified as default values" -msgstr "" +msgstr "Expressions spécifiées comme valeurs par défaut" -#: ../Doc/howto/clinic.rst:971 +#: howto/clinic.rst:971 msgid "" "The default value for a parameter can be more than just a literal value. It " "can be an entire expression, using math operators and looking up attributes " "on objects. However, this support isn't exactly simple, because of some non-" "obvious semantics." msgstr "" +"La valeur par défaut d'un paramètre peut être plus qu'une simple valeur " +"littérale. Il peut s'agir d'une expression, utilisant des opérateurs " +"mathématiques et des attributs d'objets. Cependant, cette possibilité n'est " +"pas aussi simple, notamment à cause de sémantiques peu évidentes." -#: ../Doc/howto/clinic.rst:976 +#: howto/clinic.rst:976 msgid "Consider the following example:" -msgstr "" +msgstr "Examinons l'exemple suivant :" -#: ../Doc/howto/clinic.rst:982 +#: howto/clinic.rst:982 msgid "" "``sys.maxsize`` can have different values on different platforms. Therefore " "Argument Clinic can't simply evaluate that expression locally and hard-code " @@ -1722,14 +1916,14 @@ msgid "" "at runtime, when the user asks for the function's signature." msgstr "" -#: ../Doc/howto/clinic.rst:987 +#: howto/clinic.rst:987 msgid "" "What namespace is available when the expression is evaluated? It's " "evaluated in the context of the module the builtin came from. So, if your " "module has an attribute called \"``max_widgets``\", you may simply use it:" msgstr "" -#: ../Doc/howto/clinic.rst:995 +#: howto/clinic.rst:995 msgid "" "If the symbol isn't found in the current module, it fails over to looking in " "``sys.modules``. That's how it can find ``sys.maxsize`` for example. " @@ -1738,7 +1932,7 @@ msgid "" "Python itself.)" msgstr "" -#: ../Doc/howto/clinic.rst:1000 +#: howto/clinic.rst:1000 msgid "" "Evaluating default values only at runtime means Argument Clinic can't " "compute the correct equivalent C default value. So you need to tell it " @@ -1746,7 +1940,7 @@ msgid "" "expression in C, using the ``c_default`` parameter to the converter:" msgstr "" -#: ../Doc/howto/clinic.rst:1009 +#: howto/clinic.rst:1009 msgid "" "Another complication: Argument Clinic can't know in advance whether or not " "the expression you supply is valid. It parses it to make sure it looks " @@ -1754,38 +1948,38 @@ msgid "" "expressions to specify values that are guaranteed to be valid at runtime!" msgstr "" -#: ../Doc/howto/clinic.rst:1014 +#: howto/clinic.rst:1014 msgid "" "Finally, because expressions must be representable as static C values, there " "are many restrictions on legal expressions. Here's a list of Python " "features you're not permitted to use:" msgstr "" -#: ../Doc/howto/clinic.rst:1018 +#: howto/clinic.rst:1018 msgid "Function calls." -msgstr "" +msgstr "des appels de fonction." -#: ../Doc/howto/clinic.rst:1019 +#: howto/clinic.rst:1019 msgid "Inline if statements (``3 if foo else 5``)." -msgstr "" +msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;" -#: ../Doc/howto/clinic.rst:1020 +#: howto/clinic.rst:1020 msgid "Automatic sequence unpacking (``*[1, 2, 3]``)." msgstr "" -#: ../Doc/howto/clinic.rst:1021 +#: howto/clinic.rst:1021 msgid "List/set/dict comprehensions and generator expressions." msgstr "" -#: ../Doc/howto/clinic.rst:1022 +#: howto/clinic.rst:1022 msgid "Tuple/list/set/dict literals." msgstr "" -#: ../Doc/howto/clinic.rst:1027 +#: howto/clinic.rst:1027 msgid "Using a return converter" msgstr "" -#: ../Doc/howto/clinic.rst:1029 +#: howto/clinic.rst:1029 msgid "" "By default the impl function Argument Clinic generates for you returns " "``PyObject *``. But your C function often computes some C type, then " @@ -1795,14 +1989,14 @@ msgid "" "too?" msgstr "" -#: ../Doc/howto/clinic.rst:1035 +#: howto/clinic.rst:1035 msgid "" "That's what a \"return converter\" does. It changes your impl function to " "return some C type, then adds code to the generated (non-impl) function to " "handle converting that value into the appropriate ``PyObject *``." msgstr "" -#: ../Doc/howto/clinic.rst:1039 +#: howto/clinic.rst:1039 msgid "" "The syntax for return converters is similar to that of parameter converters. " "You specify the return converter like it was a return annotation on the " @@ -1812,13 +2006,13 @@ msgid "" "parentheses." msgstr "" -#: ../Doc/howto/clinic.rst:1045 +#: howto/clinic.rst:1045 msgid "" "(If you use both ``\"as\"`` *and* a return converter for your function, the " "``\"as\"`` should come before the return converter.)" msgstr "" -#: ../Doc/howto/clinic.rst:1048 +#: howto/clinic.rst:1048 msgid "" "There's one additional complication when using return converters: how do you " "indicate an error has occurred? Normally, a function returns a valid (non-" @@ -1831,18 +2025,18 @@ msgid "" "you return like normal." msgstr "" -#: ../Doc/howto/clinic.rst:1057 +#: howto/clinic.rst:1057 msgid "Currently Argument Clinic supports only a few return converters:" msgstr "" -#: ../Doc/howto/clinic.rst:1072 +#: howto/clinic.rst:1072 msgid "" "None of these take parameters. For the first three, return -1 to indicate " "error. For ``DecodeFSDefault``, the return type is ``const char *``; return " -"a NULL pointer to indicate an error." +"a ``NULL`` pointer to indicate an error." msgstr "" -#: ../Doc/howto/clinic.rst:1076 +#: howto/clinic.rst:1076 msgid "" "(There's also an experimental ``NoneType`` converter, which lets you return " "``Py_None`` on success or ``NULL`` on failure, without having to increment " @@ -1850,117 +2044,117 @@ msgid "" "be worth using.)" msgstr "" -#: ../Doc/howto/clinic.rst:1081 +#: howto/clinic.rst:1081 msgid "" "To see all the return converters Argument Clinic supports, along with their " "parameters (if any), just run ``Tools/clinic/clinic.py --converters`` for " "the full list." msgstr "" -#: ../Doc/howto/clinic.rst:1087 +#: howto/clinic.rst:1087 msgid "Cloning existing functions" msgstr "" -#: ../Doc/howto/clinic.rst:1089 +#: howto/clinic.rst:1089 msgid "" "If you have a number of functions that look similar, you may be able to use " "Clinic's \"clone\" feature. When you clone an existing function, you reuse:" msgstr "" -#: ../Doc/howto/clinic.rst:1093 +#: howto/clinic.rst:1093 msgid "its parameters, including" msgstr "" -#: ../Doc/howto/clinic.rst:1095 +#: howto/clinic.rst:1095 msgid "their names," msgstr "" -#: ../Doc/howto/clinic.rst:1097 +#: howto/clinic.rst:1097 msgid "their converters, with all parameters," msgstr "" -#: ../Doc/howto/clinic.rst:1099 +#: howto/clinic.rst:1099 msgid "their default values," msgstr "" -#: ../Doc/howto/clinic.rst:1101 +#: howto/clinic.rst:1101 msgid "their per-parameter docstrings," msgstr "" -#: ../Doc/howto/clinic.rst:1103 +#: howto/clinic.rst:1103 msgid "" "their *kind* (whether they're positional only, positional or keyword, or " "keyword only), and" msgstr "" -#: ../Doc/howto/clinic.rst:1106 +#: howto/clinic.rst:1106 msgid "its return converter." msgstr "" -#: ../Doc/howto/clinic.rst:1108 +#: howto/clinic.rst:1108 msgid "" "The only thing not copied from the original function is its docstring; the " "syntax allows you to specify a new docstring." msgstr "" -#: ../Doc/howto/clinic.rst:1111 +#: howto/clinic.rst:1111 msgid "Here's the syntax for cloning a function::" msgstr "" -#: ../Doc/howto/clinic.rst:1119 +#: howto/clinic.rst:1119 msgid "" "(The functions can be in different modules or classes. I wrote ``module." "class`` in the sample just to illustrate that you must use the full path to " "*both* functions.)" msgstr "" -#: ../Doc/howto/clinic.rst:1123 +#: howto/clinic.rst:1123 msgid "" "Sorry, there's no syntax for partially-cloning a function, or cloning a " "function then modifying it. Cloning is an all-or nothing proposition." msgstr "" -#: ../Doc/howto/clinic.rst:1126 +#: howto/clinic.rst:1126 msgid "" "Also, the function you are cloning from must have been previously defined in " "the current file." msgstr "" -#: ../Doc/howto/clinic.rst:1130 +#: howto/clinic.rst:1130 msgid "Calling Python code" msgstr "" -#: ../Doc/howto/clinic.rst:1132 +#: howto/clinic.rst:1132 msgid "" "The rest of the advanced topics require you to write Python code which lives " "inside your C file and modifies Argument Clinic's runtime state. This is " "simple: you simply define a Python block." msgstr "" -#: ../Doc/howto/clinic.rst:1136 +#: howto/clinic.rst:1136 msgid "" "A Python block uses different delimiter lines than an Argument Clinic " "function block. It looks like this::" msgstr "" -#: ../Doc/howto/clinic.rst:1143 +#: howto/clinic.rst:1143 msgid "" "All the code inside the Python block is executed at the time it's parsed. " -"All text written to stdout inside the block is redirected into the \"output" -"\" after the block." +"All text written to stdout inside the block is redirected into the " +"\"output\" after the block." msgstr "" -#: ../Doc/howto/clinic.rst:1147 +#: howto/clinic.rst:1147 msgid "" "As an example, here's a Python block that adds a static integer variable to " "the C code::" msgstr "" -#: ../Doc/howto/clinic.rst:1158 +#: howto/clinic.rst:1158 msgid "Using a \"self converter\"" msgstr "" -#: ../Doc/howto/clinic.rst:1160 +#: howto/clinic.rst:1160 msgid "" "Argument Clinic automatically adds a \"self\" parameter for you using a " "default converter. It automatically sets the ``type`` of this parameter to " @@ -1971,13 +2165,13 @@ msgid "" "a subclass thereof." msgstr "" -#: ../Doc/howto/clinic.rst:1169 +#: howto/clinic.rst:1169 msgid "" "What's the point? This lets you override the type of ``self``, or give it a " "different default name." msgstr "" -#: ../Doc/howto/clinic.rst:1172 +#: howto/clinic.rst:1172 msgid "" "How do you specify the custom type you want to cast ``self`` to? If you only " "have one or two functions with the same type for ``self``, you can directly " @@ -1985,18 +2179,18 @@ msgid "" "want to use as the ``type`` parameter::" msgstr "" -#: ../Doc/howto/clinic.rst:1188 +#: howto/clinic.rst:1188 msgid "" "On the other hand, if you have a lot of functions that will use the same " "type for ``self``, it's best to create your own converter, subclassing " "``self_converter`` but overwriting the ``type`` member::" msgstr "" -#: ../Doc/howto/clinic.rst:1211 +#: howto/clinic.rst:1211 msgid "Writing a custom converter" msgstr "" -#: ../Doc/howto/clinic.rst:1213 +#: howto/clinic.rst:1213 msgid "" "As we hinted at in the previous section... you can write your own " "converters! A converter is simply a Python class that inherits from " @@ -2005,7 +2199,7 @@ msgid "" "a :c:func:`PyArg_ParseTuple` \"converter function\"." msgstr "" -#: ../Doc/howto/clinic.rst:1219 +#: howto/clinic.rst:1219 msgid "" "Your converter class should be named ``*something*_converter``. If the name " "follows this convention, then your converter class will be automatically " @@ -2014,7 +2208,7 @@ msgid "" "metaclass.)" msgstr "" -#: ../Doc/howto/clinic.rst:1225 +#: howto/clinic.rst:1225 msgid "" "You shouldn't subclass ``CConverter.__init__``. Instead, you should write a " "``converter_init()`` function. ``converter_init()`` always accepts a " @@ -2023,50 +2217,50 @@ msgid "" "passed along to your ``converter_init()``." msgstr "" -#: ../Doc/howto/clinic.rst:1232 +#: howto/clinic.rst:1232 msgid "" "There are some additional members of ``CConverter`` you may wish to specify " "in your subclass. Here's the current list:" msgstr "" -#: ../Doc/howto/clinic.rst:1236 +#: howto/clinic.rst:1236 msgid "" "The C type to use for this variable. ``type`` should be a Python string " "specifying the type, e.g. ``int``. If this is a pointer type, the type " "string should end with ``' *'``." msgstr "" -#: ../Doc/howto/clinic.rst:1242 +#: howto/clinic.rst:1242 msgid "``default``" msgstr "" -#: ../Doc/howto/clinic.rst:1241 +#: howto/clinic.rst:1241 msgid "" "The Python default value for this parameter, as a Python value. Or the magic " "value ``unspecified`` if there is no default." msgstr "" -#: ../Doc/howto/clinic.rst:1247 +#: howto/clinic.rst:1247 msgid "``py_default``" msgstr "" -#: ../Doc/howto/clinic.rst:1245 +#: howto/clinic.rst:1245 msgid "" "``default`` as it should appear in Python code, as a string. Or ``None`` if " "there is no default." msgstr "" -#: ../Doc/howto/clinic.rst:1250 +#: howto/clinic.rst:1250 msgid "" "``default`` as it should appear in C code, as a string. Or ``None`` if there " "is no default." msgstr "" -#: ../Doc/howto/clinic.rst:1263 +#: howto/clinic.rst:1263 msgid "``c_ignored_default``" msgstr "" -#: ../Doc/howto/clinic.rst:1255 +#: howto/clinic.rst:1255 msgid "" "The default value used to initialize the C variable when there is no " "default, but not specifying a default may result in an \"uninitialized " @@ -2077,37 +2271,37 @@ msgid "" "non-empty string." msgstr "" -#: ../Doc/howto/clinic.rst:1266 +#: howto/clinic.rst:1266 msgid "The name of the C converter function, as a string." msgstr "" -#: ../Doc/howto/clinic.rst:1271 +#: howto/clinic.rst:1271 msgid "``impl_by_reference``" msgstr "" -#: ../Doc/howto/clinic.rst:1269 +#: howto/clinic.rst:1269 msgid "" "A boolean value. If true, Argument Clinic will add a ``&`` in front of the " "name of the variable when passing it into the impl function." msgstr "" -#: ../Doc/howto/clinic.rst:1277 +#: howto/clinic.rst:1277 msgid "``parse_by_reference``" msgstr "" -#: ../Doc/howto/clinic.rst:1274 +#: howto/clinic.rst:1274 msgid "" "A boolean value. If true, Argument Clinic will add a ``&`` in front of the " "name of the variable when passing it into :c:func:`PyArg_ParseTuple`." msgstr "" -#: ../Doc/howto/clinic.rst:1279 +#: howto/clinic.rst:1279 msgid "" "Here's the simplest example of a custom converter, from ``Modules/zlibmodule." "c``::" msgstr "" -#: ../Doc/howto/clinic.rst:1290 +#: howto/clinic.rst:1290 msgid "" "This block adds a converter to Argument Clinic named ``ssize_t``. " "Parameters declared as ``ssize_t`` will be declared as type ``Py_ssize_t``, " @@ -2116,25 +2310,25 @@ msgid "" "automatically support default values." msgstr "" -#: ../Doc/howto/clinic.rst:1296 +#: howto/clinic.rst:1296 msgid "" "More sophisticated custom converters can insert custom C code to handle " "initialization and cleanup. You can see more examples of custom converters " "in the CPython source tree; grep the C files for the string ``CConverter``." msgstr "" -#: ../Doc/howto/clinic.rst:1302 +#: howto/clinic.rst:1302 msgid "Writing a custom return converter" msgstr "" -#: ../Doc/howto/clinic.rst:1304 +#: howto/clinic.rst:1304 msgid "" "Writing a custom return converter is much like writing a custom converter. " "Except it's somewhat simpler, because return converters are themselves much " "simpler." msgstr "" -#: ../Doc/howto/clinic.rst:1308 +#: howto/clinic.rst:1308 msgid "" "Return converters must subclass ``CReturnConverter``. There are no examples " "yet of custom return converters, because they are not widely used yet. If " @@ -2143,59 +2337,59 @@ msgid "" "its subclasses." msgstr "" -#: ../Doc/howto/clinic.rst:1316 +#: howto/clinic.rst:1316 msgid "METH_O and METH_NOARGS" msgstr "" -#: ../Doc/howto/clinic.rst:1318 +#: howto/clinic.rst:1318 msgid "" "To convert a function using ``METH_O``, make sure the function's single " "argument is using the ``object`` converter, and mark the arguments as " "positional-only::" msgstr "" -#: ../Doc/howto/clinic.rst:1330 +#: howto/clinic.rst:1330 msgid "" "To convert a function using ``METH_NOARGS``, just don't specify any " "arguments." msgstr "" -#: ../Doc/howto/clinic.rst:1333 +#: howto/clinic.rst:1333 msgid "" "You can still use a self converter, a return converter, and specify a " "``type`` argument to the object converter for ``METH_O``." msgstr "" -#: ../Doc/howto/clinic.rst:1337 +#: howto/clinic.rst:1337 msgid "tp_new and tp_init functions" msgstr "" -#: ../Doc/howto/clinic.rst:1339 +#: howto/clinic.rst:1339 msgid "" "You can convert ``tp_new`` and ``tp_init`` functions. Just name them " "``__new__`` or ``__init__`` as appropriate. Notes:" msgstr "" -#: ../Doc/howto/clinic.rst:1342 +#: howto/clinic.rst:1342 msgid "" "The function name generated for ``__new__`` doesn't end in ``__new__`` like " "it would by default. It's just the name of the class, converted into a " "valid C identifier." msgstr "" -#: ../Doc/howto/clinic.rst:1346 +#: howto/clinic.rst:1346 msgid "No ``PyMethodDef`` ``#define`` is generated for these functions." msgstr "" -#: ../Doc/howto/clinic.rst:1348 +#: howto/clinic.rst:1348 msgid "``__init__`` functions return ``int``, not ``PyObject *``." msgstr "" -#: ../Doc/howto/clinic.rst:1350 +#: howto/clinic.rst:1350 msgid "Use the docstring as the class docstring." msgstr "" -#: ../Doc/howto/clinic.rst:1352 +#: howto/clinic.rst:1352 msgid "" "Although ``__new__`` and ``__init__`` functions must always accept both the " "``args`` and ``kwargs`` objects, when converting you may specify any " @@ -2204,11 +2398,11 @@ msgid "" "it receives any.)" msgstr "" -#: ../Doc/howto/clinic.rst:1359 +#: howto/clinic.rst:1359 msgid "Changing and redirecting Clinic's output" msgstr "" -#: ../Doc/howto/clinic.rst:1361 +#: howto/clinic.rst:1361 msgid "" "It can be inconvenient to have Clinic's output interspersed with your " "conventional hand-edited C code. Luckily, Clinic is configurable: you can " @@ -2217,7 +2411,7 @@ msgid "" "Clinic's generated output." msgstr "" -#: ../Doc/howto/clinic.rst:1367 +#: howto/clinic.rst:1367 msgid "" "While changing Clinic's output in this manner can be a boon to readability, " "it may result in Clinic code using types before they are defined, or your " @@ -2229,15 +2423,15 @@ msgid "" "rearranging your code to fix definition-before-use problems.)" msgstr "" -#: ../Doc/howto/clinic.rst:1376 +#: howto/clinic.rst:1376 msgid "Let's start with defining some terminology:" msgstr "" -#: ../Doc/howto/clinic.rst:1403 +#: howto/clinic.rst:1403 msgid "*field*" msgstr "" -#: ../Doc/howto/clinic.rst:1379 +#: howto/clinic.rst:1379 msgid "" "A field, in this context, is a subsection of Clinic's output. For example, " "the ``#define`` for the ``PyMethodDef`` structure is a field, called " @@ -2245,7 +2439,7 @@ msgid "" "function definition:" msgstr "" -#: ../Doc/howto/clinic.rst:1394 +#: howto/clinic.rst:1394 msgid "" "All the names are of the form ``\"_\"``, where ``\"\"`` is the " "semantic object represented (the parsing function, the impl function, the " @@ -2253,50 +2447,47 @@ msgid "" "of statement the field is. Field names that end in ``\"_prototype\"`` " "represent forward declarations of that thing, without the actual body/data " "of the thing; field names that end in ``\"_definition\"`` represent the " -"actual definition of the thing, with the body/data of the thing. (``" -"\"methoddef\"`` is special, it's the only one that ends with ``\"_define" -"\"``, representing that it's a preprocessor #define.)" +"actual definition of the thing, with the body/data of the thing. " +"(``\"methoddef\"`` is special, it's the only one that ends with " +"``\"_define\"``, representing that it's a preprocessor #define.)" msgstr "" -#: ../Doc/howto/clinic.rst:1437 +#: howto/clinic.rst:1437 msgid "*destination*" msgstr "" -#: ../Doc/howto/clinic.rst:1406 +#: howto/clinic.rst:1406 msgid "" "A destination is a place Clinic can write output to. There are five built-" "in destinations:" msgstr "" -#: ../Doc/howto/clinic.rst:1411 ../Doc/howto/clinic.rst:1486 -#: ../Doc/howto/clinic.rst:1564 +#: howto/clinic.rst:1486 howto/clinic.rst:1564 msgid "``block``" msgstr "" -#: ../Doc/howto/clinic.rst:1410 +#: howto/clinic.rst:1410 msgid "" "The default destination: printed in the output section of the current Clinic " "block." msgstr "" -#: ../Doc/howto/clinic.rst:1417 ../Doc/howto/clinic.rst:1513 -#: ../Doc/howto/clinic.rst:1567 +#: howto/clinic.rst:1513 howto/clinic.rst:1567 msgid "``buffer``" msgstr "" -#: ../Doc/howto/clinic.rst:1414 +#: howto/clinic.rst:1414 msgid "" "A text buffer where you can save text for later. Text sent here is appended " "to the end of any existing text. It's an error to have any text left in the " "buffer when Clinic finishes processing a file." msgstr "" -#: ../Doc/howto/clinic.rst:1428 ../Doc/howto/clinic.rst:1499 -#: ../Doc/howto/clinic.rst:1593 +#: howto/clinic.rst:1499 howto/clinic.rst:1593 msgid "``file``" msgstr "" -#: ../Doc/howto/clinic.rst:1420 +#: howto/clinic.rst:1420 msgid "" "A separate \"clinic file\" that will be created automatically by Clinic. The " "filename chosen for the file is ``{basename}.clinic{extension}``, where " @@ -2305,65 +2496,64 @@ msgid "" "for ``_pickle.c`` would be written to ``_pickle.clinic.c``.)" msgstr "" -#: ../Doc/howto/clinic.rst:1427 +#: howto/clinic.rst:1427 msgid "" "**Important: When using a** ``file`` **destination, you** *must check in* " "**the generated file!**" msgstr "" -#: ../Doc/howto/clinic.rst:1433 ../Doc/howto/clinic.rst:1526 -#: ../Doc/howto/clinic.rst:1597 +#: howto/clinic.rst:1526 howto/clinic.rst:1597 msgid "``two-pass``" msgstr "" -#: ../Doc/howto/clinic.rst:1431 +#: howto/clinic.rst:1431 msgid "" "A buffer like ``buffer``. However, a two-pass buffer can only be dumped " "once, and it prints out all text sent to it during all processing, even from " "Clinic blocks *after* the dumping point." msgstr "" -#: ../Doc/howto/clinic.rst:1437 ../Doc/howto/clinic.rst:1560 +#: howto/clinic.rst:1560 msgid "``suppress``" msgstr "" -#: ../Doc/howto/clinic.rst:1436 +#: howto/clinic.rst:1436 msgid "The text is suppressed—thrown away." msgstr "" -#: ../Doc/howto/clinic.rst:1439 +#: howto/clinic.rst:1439 msgid "Clinic defines five new directives that let you reconfigure its output." msgstr "" -#: ../Doc/howto/clinic.rst:1441 +#: howto/clinic.rst:1441 msgid "The first new directive is ``dump``:" msgstr "" -#: ../Doc/howto/clinic.rst:1447 +#: howto/clinic.rst:1447 msgid "" "This dumps the current contents of the named destination into the output of " "the current block, and empties it. This only works with ``buffer`` and " "``two-pass`` destinations." msgstr "" -#: ../Doc/howto/clinic.rst:1451 +#: howto/clinic.rst:1451 msgid "" "The second new directive is ``output``. The most basic form of ``output`` " "is like this:" msgstr "" -#: ../Doc/howto/clinic.rst:1458 +#: howto/clinic.rst:1458 msgid "" "This tells Clinic to output *field* to *destination*. ``output`` also " "supports a special meta-destination, called ``everything``, which tells " "Clinic to output *all* fields to that *destination*." msgstr "" -#: ../Doc/howto/clinic.rst:1462 +#: howto/clinic.rst:1462 msgid "``output`` has a number of other functions:" msgstr "" -#: ../Doc/howto/clinic.rst:1471 +#: howto/clinic.rst:1471 msgid "" "``output push`` and ``output pop`` allow you to push and pop configurations " "on an internal configuration stack, so that you can temporarily modify the " @@ -2372,25 +2562,25 @@ msgid "" "when you wish to restore the previous configuration." msgstr "" -#: ../Doc/howto/clinic.rst:1478 +#: howto/clinic.rst:1478 msgid "" "``output preset`` sets Clinic's output to one of several built-in preset " "configurations, as follows:" msgstr "" -#: ../Doc/howto/clinic.rst:1482 +#: howto/clinic.rst:1482 msgid "" "Clinic's original starting configuration. Writes everything immediately " "after the input block." msgstr "" -#: ../Doc/howto/clinic.rst:1485 +#: howto/clinic.rst:1485 msgid "" "Suppress the ``parser_prototype`` and ``docstring_prototype``, write " "everything else to ``block``." msgstr "" -#: ../Doc/howto/clinic.rst:1489 +#: howto/clinic.rst:1489 msgid "" "Designed to write everything to the \"clinic file\" that it can. You then " "``#include`` this file near the top of your file. You may need to rearrange " @@ -2398,17 +2588,17 @@ msgid "" "declarations for various ``typedef`` and ``PyTypeObject`` definitions." msgstr "" -#: ../Doc/howto/clinic.rst:1495 +#: howto/clinic.rst:1495 msgid "" "Suppress the ``parser_prototype`` and ``docstring_prototype``, write the " "``impl_definition`` to ``block``, and write everything else to ``file``." msgstr "" -#: ../Doc/howto/clinic.rst:1499 +#: howto/clinic.rst:1499 msgid "The default filename is ``\"{dirname}/clinic/{basename}.h\"``." msgstr "" -#: ../Doc/howto/clinic.rst:1502 +#: howto/clinic.rst:1502 msgid "" "Save up most of the output from Clinic, to be written into your file near " "the end. For Python files implementing modules or builtin types, it's " @@ -2418,14 +2608,14 @@ msgid "" "static ``PyMethodDef`` arrays defined in the middle of the file." msgstr "" -#: ../Doc/howto/clinic.rst:1511 +#: howto/clinic.rst:1511 msgid "" "Suppress the ``parser_prototype``, ``impl_prototype``, and " "``docstring_prototype``, write the ``impl_definition`` to ``block``, and " "write everything else to ``file``." msgstr "" -#: ../Doc/howto/clinic.rst:1516 +#: howto/clinic.rst:1516 msgid "" "Similar to the ``buffer`` preset, but writes forward declarations to the " "``two-pass`` buffer, and definitions to the ``buffer``. This is similar to " @@ -2434,18 +2624,18 @@ msgid "" "near the end just like you would when using the ``buffer`` preset." msgstr "" -#: ../Doc/howto/clinic.rst:1523 +#: howto/clinic.rst:1523 msgid "" "Suppresses the ``impl_prototype``, write the ``impl_definition`` to " "``block``, write ``docstring_prototype``, ``methoddef_define``, and " "``parser_prototype`` to ``two-pass``, write everything else to ``buffer``." msgstr "" -#: ../Doc/howto/clinic.rst:1537 +#: howto/clinic.rst:1537 msgid "``partial-buffer``" msgstr "" -#: ../Doc/howto/clinic.rst:1529 +#: howto/clinic.rst:1529 msgid "" "Similar to the ``buffer`` preset, but writes more things to ``block``, only " "writing the really big chunks of generated code to ``buffer``. This avoids " @@ -2455,137 +2645,137 @@ msgid "" "preset." msgstr "" -#: ../Doc/howto/clinic.rst:1536 +#: howto/clinic.rst:1536 msgid "" "Suppresses the ``impl_prototype``, write the ``docstring_definition`` and " "``parser_definition`` to ``buffer``, write everything else to ``block``." msgstr "" -#: ../Doc/howto/clinic.rst:1539 +#: howto/clinic.rst:1539 msgid "The third new directive is ``destination``:" msgstr "" -#: ../Doc/howto/clinic.rst:1545 +#: howto/clinic.rst:1545 msgid "This performs an operation on the destination named ``name``." msgstr "" -#: ../Doc/howto/clinic.rst:1547 +#: howto/clinic.rst:1547 msgid "There are two defined subcommands: ``new`` and ``clear``." msgstr "" -#: ../Doc/howto/clinic.rst:1549 +#: howto/clinic.rst:1549 msgid "The ``new`` subcommand works like this:" msgstr "" -#: ../Doc/howto/clinic.rst:1555 +#: howto/clinic.rst:1555 msgid "" "This creates a new destination with name ```` and type ````." msgstr "" -#: ../Doc/howto/clinic.rst:1557 +#: howto/clinic.rst:1557 msgid "There are five destination types:" msgstr "" -#: ../Doc/howto/clinic.rst:1560 +#: howto/clinic.rst:1560 msgid "Throws the text away." msgstr "" -#: ../Doc/howto/clinic.rst:1563 +#: howto/clinic.rst:1563 msgid "" "Writes the text to the current block. This is what Clinic originally did." msgstr "" -#: ../Doc/howto/clinic.rst:1567 +#: howto/clinic.rst:1567 msgid "A simple text buffer, like the \"buffer\" builtin destination above." msgstr "" -#: ../Doc/howto/clinic.rst:1570 +#: howto/clinic.rst:1570 msgid "" "A text file. The file destination takes an extra argument, a template to " "use for building the filename, like so:" msgstr "" -#: ../Doc/howto/clinic.rst:1573 +#: howto/clinic.rst:1573 msgid "destination new " msgstr "" -#: ../Doc/howto/clinic.rst:1575 +#: howto/clinic.rst:1575 msgid "" "The template can use three strings internally that will be replaced by bits " "of the filename:" msgstr "" -#: ../Doc/howto/clinic.rst:1578 +#: howto/clinic.rst:1578 msgid "{path}" msgstr "" -#: ../Doc/howto/clinic.rst:1579 +#: howto/clinic.rst:1579 msgid "The full path to the file, including directory and full filename." msgstr "" -#: ../Doc/howto/clinic.rst:1580 +#: howto/clinic.rst:1580 msgid "{dirname}" msgstr "" -#: ../Doc/howto/clinic.rst:1581 +#: howto/clinic.rst:1581 msgid "The name of the directory the file is in." msgstr "" -#: ../Doc/howto/clinic.rst:1582 +#: howto/clinic.rst:1582 msgid "{basename}" msgstr "" -#: ../Doc/howto/clinic.rst:1583 +#: howto/clinic.rst:1583 msgid "Just the name of the file, not including the directory." msgstr "" -#: ../Doc/howto/clinic.rst:1585 +#: howto/clinic.rst:1585 msgid "{basename_root}" msgstr "" -#: ../Doc/howto/clinic.rst:1585 +#: howto/clinic.rst:1585 msgid "" "Basename with the extension clipped off (everything up to but not including " "the last '.')." msgstr "" -#: ../Doc/howto/clinic.rst:1589 +#: howto/clinic.rst:1589 msgid "{basename_extension}" msgstr "" -#: ../Doc/howto/clinic.rst:1588 +#: howto/clinic.rst:1588 msgid "" "The last '.' and everything after it. If the basename does not contain a " "period, this will be the empty string." msgstr "" -#: ../Doc/howto/clinic.rst:1591 +#: howto/clinic.rst:1591 msgid "" "If there are no periods in the filename, {basename} and {filename} are the " "same, and {extension} is empty. \"{basename}{extension}\" is always exactly " "the same as \"{filename}\".\"" msgstr "" -#: ../Doc/howto/clinic.rst:1596 +#: howto/clinic.rst:1596 msgid "A two-pass buffer, like the \"two-pass\" builtin destination above." msgstr "" -#: ../Doc/howto/clinic.rst:1599 +#: howto/clinic.rst:1599 msgid "The ``clear`` subcommand works like this:" msgstr "" -#: ../Doc/howto/clinic.rst:1605 +#: howto/clinic.rst:1605 msgid "" "It removes all the accumulated text up to this point in the destination. (I " "don't know what you'd need this for, but I thought maybe it'd be useful " "while someone's experimenting.)" msgstr "" -#: ../Doc/howto/clinic.rst:1609 +#: howto/clinic.rst:1609 msgid "The fourth new directive is ``set``:" msgstr "" -#: ../Doc/howto/clinic.rst:1616 +#: howto/clinic.rst:1616 msgid "" "``set`` lets you set two internal variables in Clinic. ``line_prefix`` is a " "string that will be prepended to every line of Clinic's output; " @@ -2593,35 +2783,35 @@ msgid "" "output." msgstr "" -#: ../Doc/howto/clinic.rst:1620 +#: howto/clinic.rst:1620 msgid "Both of these support two format strings:" msgstr "" -#: ../Doc/howto/clinic.rst:1623 +#: howto/clinic.rst:1623 msgid "``{block comment start}``" msgstr "" -#: ../Doc/howto/clinic.rst:1623 +#: howto/clinic.rst:1623 msgid "" "Turns into the string ``/*``, the start-comment text sequence for C files." msgstr "" -#: ../Doc/howto/clinic.rst:1626 +#: howto/clinic.rst:1626 msgid "``{block comment end}``" msgstr "" -#: ../Doc/howto/clinic.rst:1626 +#: howto/clinic.rst:1626 msgid "" "Turns into the string ``*/``, the end-comment text sequence for C files." msgstr "" -#: ../Doc/howto/clinic.rst:1628 +#: howto/clinic.rst:1628 msgid "" "The final new directive is one you shouldn't need to use directly, called " "``preserve``:" msgstr "" -#: ../Doc/howto/clinic.rst:1635 +#: howto/clinic.rst:1635 msgid "" "This tells Clinic that the current contents of the output should be kept, " "unmodified. This is used internally by Clinic when dumping output into " @@ -2630,36 +2820,36 @@ msgid "" "gets overwritten." msgstr "" -#: ../Doc/howto/clinic.rst:1642 +#: howto/clinic.rst:1642 msgid "The #ifdef trick" msgstr "" -#: ../Doc/howto/clinic.rst:1644 +#: howto/clinic.rst:1644 msgid "" "If you're converting a function that isn't available on all platforms, " "there's a trick you can use to make life a little easier. The existing code " "probably looks like this::" msgstr "" -#: ../Doc/howto/clinic.rst:1655 +#: howto/clinic.rst:1655 msgid "" "And then in the ``PyMethodDef`` structure at the bottom the existing code " "will have:" msgstr "" -#: ../Doc/howto/clinic.rst:1664 +#: howto/clinic.rst:1664 msgid "" "In this scenario, you should enclose the body of your impl function inside " "the ``#ifdef``, like so::" msgstr "" -#: ../Doc/howto/clinic.rst:1678 +#: howto/clinic.rst:1678 msgid "" "Then, remove those three lines from the ``PyMethodDef`` structure, replacing " "them with the macro Argument Clinic generated:" msgstr "" -#: ../Doc/howto/clinic.rst:1685 +#: howto/clinic.rst:1685 msgid "" "(You can find the real name for this macro inside the generated code. Or you " "can calculate it yourself: it's the name of your function as defined on the " @@ -2667,27 +2857,27 @@ msgid "" "uppercased, and ``\"_METHODDEF\"`` added to the end.)" msgstr "" -#: ../Doc/howto/clinic.rst:1690 +#: howto/clinic.rst:1690 msgid "" "Perhaps you're wondering: what if ``HAVE_FUNCTIONNAME`` isn't defined? The " "``MODULE_FUNCTIONNAME_METHODDEF`` macro won't be defined either!" msgstr "" -#: ../Doc/howto/clinic.rst:1693 +#: howto/clinic.rst:1693 msgid "" "Here's where Argument Clinic gets very clever. It actually detects that the " "Argument Clinic block might be deactivated by the ``#ifdef``. When that " "happens, it generates a little extra code that looks like this::" msgstr "" -#: ../Doc/howto/clinic.rst:1701 +#: howto/clinic.rst:1701 msgid "" "That means the macro always works. If the function is defined, this turns " "into the correct structure, including the trailing comma. If the function " "is undefined, this turns into nothing." msgstr "" -#: ../Doc/howto/clinic.rst:1705 +#: howto/clinic.rst:1705 msgid "" "However, this causes one ticklish problem: where should Argument Clinic put " "this extra code when using the \"block\" output preset? It can't go in the " @@ -2695,24 +2885,24 @@ msgid "" "the whole point!)" msgstr "" -#: ../Doc/howto/clinic.rst:1709 +#: howto/clinic.rst:1709 msgid "" "In this situation, Argument Clinic writes the extra code to the \"buffer\" " "destination. This may mean that you get a complaint from Argument Clinic:" msgstr "" -#: ../Doc/howto/clinic.rst:1717 +#: howto/clinic.rst:1717 msgid "" "When this happens, just open your file, find the ``dump buffer`` block that " "Argument Clinic added to your file (it'll be at the very bottom), then move " "it above the ``PyMethodDef`` structure where that macro is used." msgstr "" -#: ../Doc/howto/clinic.rst:1724 +#: howto/clinic.rst:1724 msgid "Using Argument Clinic in Python files" msgstr "" -#: ../Doc/howto/clinic.rst:1726 +#: howto/clinic.rst:1726 msgid "" "It's actually possible to use Argument Clinic to preprocess Python files. " "There's no point to using Argument Clinic blocks, of course, as the output " @@ -2720,7 +2910,7 @@ msgid "" "Clinic to run Python blocks lets you use Python as a Python preprocessor!" msgstr "" -#: ../Doc/howto/clinic.rst:1731 +#: howto/clinic.rst:1731 msgid "" "Since Python comments are different from C comments, Argument Clinic blocks " "embedded in Python files look slightly different. They look like this:" diff --git a/howto/cporting.po b/howto/cporting.po index fcf1f581a1..8184e93b1d 100644 --- a/howto/cporting.po +++ b/howto/cporting.po @@ -2,10 +2,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-07-19 23:34+0200\n" +"PO-Revision-Date: 2019-12-13 14:14+0100\n" "Last-Translator: Andy Kwok \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -23,6 +23,8 @@ msgid "" "We recommend the following resources for porting extension modules to Python " "3:" msgstr "" +"Nous recommandons les ressources suivantes pour migrer les modules " +"d'extensions vers Python 3 :" #: ../Doc/howto/cporting.rst:11 msgid "" @@ -30,12 +32,17 @@ msgid "" "guide*, a book on moving from Python 2 to Python 3 in general, guides the " "reader through porting an extension module." msgstr "" +"Le chapitre `Migrating C extension`_ du livre *Supporting Python 3: An in-" +"depth guide* (un livre sur le portage de Python 2 à Python 3) guide le " +"lecteur souhaitant porter un module d'extension." #: ../Doc/howto/cporting.rst:15 msgid "" "The `Porting guide`_ from the *py3c* project provides opinionated " "suggestions with supporting code." msgstr "" +"Le `Porting guide`_ du projet *py3c* fournit des suggestions argumentées " +"avec le code correspondant." #: ../Doc/howto/cporting.rst:17 msgid "" @@ -44,6 +51,10 @@ msgid "" "library then handles differences between various Python versions and " "implementations." msgstr "" +"Les bibliothèques `Cython`_ et `CFFI`_ fournissent des abstractions de l'API " +"C de Python. Les extensions ont généralement besoin d'être réécrites pour " +"profiter de ces bibliothèques, mais elles prennent en charge les différences " +"entre versions et implémentations de Python." #~ msgid "author" #~ msgstr "auteur" @@ -77,7 +88,7 @@ msgstr "" #~ msgstr "" #~ "La façon la plus simple de compiler seulement une section de code pour " #~ "Python 3 est de vérifier si :c:macro:`PY_MAJOR_VERSION` est supérieur ou " -#~ "égal à 3. ::" +#~ "égal à 3. ::" #~ msgid "" #~ "API functions that are not present can be aliased to their equivalents " diff --git a/howto/curses.po b/howto/curses.po index 805a8375e4..efe4a3eff4 100644 --- a/howto/curses.po +++ b/howto/curses.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/howto/curses.rst:5 msgid "Curses Programming with Python" -msgstr "" +msgstr "Programmation *Curses* avec Python" #: ../Doc/howto/curses.rst:0 msgid "Author" @@ -24,7 +24,7 @@ msgstr "Auteur" #: ../Doc/howto/curses.rst:7 msgid "A.M. Kuchling, Eric S. Raymond" -msgstr "" +msgstr "A.M. Kuchling, Eric S. Raymond" #: ../Doc/howto/curses.rst:0 msgid "Release" @@ -32,7 +32,7 @@ msgstr "Version" #: ../Doc/howto/curses.rst:8 msgid "2.04" -msgstr "" +msgstr "2.04" #: ../Doc/howto/curses.rst:None msgid "Abstract" @@ -43,10 +43,12 @@ msgid "" "This document describes how to use the :mod:`curses` extension module to " "control text-mode displays." msgstr "" +"Ce document décrit comment utiliser le module d'extension :mod:`curses` pour " +"contrôler l'affichage en mode texte." #: ../Doc/howto/curses.rst:18 msgid "What is curses?" -msgstr "" +msgstr "Qu'est-ce que *curses* ?" #: ../Doc/howto/curses.rst:20 msgid "" @@ -58,6 +60,14 @@ msgid "" "areas. Different terminals use widely differing codes, and often have their " "own minor quirks." msgstr "" +"La bibliothèque *curses* fournit une capacité de dessin à l'écran et de " +"gestion du clavier indépendante du terminal pour les terminaux textuels ; " +"ces terminaux comprennent les *VT100*, la console Linux et le terminal " +"simulé fourni par divers programmes. Les terminaux d'affichage prennent en " +"charge divers codes de commande pour effectuer des opérations courantes " +"telles que déplacer le curseur, faire défiler l'écran et effacer des zones. " +"Différents terminaux utilisent des codes très différents et ont souvent " +"leurs propres bizarreries mineures." #: ../Doc/howto/curses.rst:28 msgid "" @@ -68,6 +78,15 @@ msgid "" "an X server. Another is tools such as OS installers and kernel " "configurators that may have to run before any graphical support is available." msgstr "" +"Dans un monde d'affichages graphiques, on pourrait se demander « pourquoi " +"s'embêter ? ». Il est vrai que les terminaux d'affichage caractère par " +"caractère sont une technologie obsolète, mais il existe des niches pour " +"lesquelles la possibilité de faire des choses fantaisistes est encore " +"précieuse. En exemple de niche, on peut citer les systèmes de type Unix de " +"petite taille ou embarqués qui n'utilisent pas de serveur X. Il y a aussi " +"les outils tels que les installateurs d'OS et les outils de configuration du " +"noyau qui doivent être exécutés avant qu'un support graphique ne soit " +"disponible." #: ../Doc/howto/curses.rst:36 msgid "" @@ -81,6 +100,16 @@ msgid "" "features, consider a user interface library such as `Urwid `_." msgstr "" +"La bibliothèque *curses* propose des fonctionnalités assez basiques, " +"fournissant au programmeur une abstraction d'affichage contenant plusieurs " +"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " +"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " +"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " +"codes de contrôle doivent être envoyés au terminal pour produire le bon " +"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " +"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " +"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " +"utilisateur comme `Urwid `_." #: ../Doc/howto/curses.rst:46 msgid "" @@ -94,6 +123,16 @@ msgid "" "older versions of curses carried by some proprietary Unixes may not support " "everything, though." msgstr "" +"La bibliothèque *curses* a été écrite à l'origine pour BSD Unix ; les " +"dernières versions *System V* d'Unix d'AT&T ont ajouté de nombreuses " +"améliorations et de nouvelles fonctions. BSD *curses* n'est plus maintenu, " +"ayant été remplacé par *ncurses*, qui est une implémentation open-source de " +"l'interface AT&T. Si vous utilisez un Unix open-source comme Linux ou " +"FreeBSD, votre système utilise presque certainement *ncurses*. Comme la " +"plupart des versions commerciales actuelles d'Unix sont basées sur le code " +"*System V*, toutes les fonctions décrites ici seront probablement " +"disponibles. Les anciennes versions de *curses* portées par certains Unix " +"propriétaires pourraient ne pas gérer toutes les fonctions." #: ../Doc/howto/curses.rst:56 msgid "" @@ -104,10 +143,16 @@ msgid "" "API as curses but provides cursor-addressable text output and full support " "for mouse and keyboard input." msgstr "" +"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " +"version portée appelée `UniCurses `_ est " +"disponible. Vous pouvez également essayer le `Windows console driver `_ écrit par Fredrik Lundh, qui n'utilise " +"pas la même API que *curses*, mais fournit une sortie texte avec gestion du " +"curseur et une prise en charge complète de la souris et du clavier." #: ../Doc/howto/curses.rst:66 msgid "The Python curses module" -msgstr "" +msgstr "Le module *curses* de Python" #: ../Doc/howto/curses.rst:68 msgid "" @@ -119,6 +164,13 @@ msgid "" "`mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " "this covered in more detail later." msgstr "" +"Le module Python est une surcouche assez simple enrobant les fonctions C " +"fournies par *curses* ; si vous êtes déjà familier avec la programmation " +"*curses* en C, il est très facile de transférer cette connaissance à Python. " +"La plus grande différence est que l'interface Python simplifie les choses en " +"fusionnant différentes fonctions C telles que :c:func:`addstr`, :c:func:" +"`mvaddstr` et :c:func:`mvwaddstr` en une seule méthode :meth:`~curses.window." +"addstr`. Nous voyons cela plus en détail ci-après." #: ../Doc/howto/curses.rst:76 msgid "" @@ -127,10 +179,15 @@ msgid "" "that, see the Python library guide's section on ncurses, and the C manual " "pages for ncurses. It will, however, give you the basic ideas." msgstr "" +"Ce guide pratique est une introduction à l'écriture de programmes en mode " +"texte avec *curses* et Python. Il n'essaie pas d'être un guide complet de " +"l'API *curses* ; pour cela, consultez la section du guide de la bibliothèque " +"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne " +"cependant les idées de base." #: ../Doc/howto/curses.rst:83 msgid "Starting and ending a curses application" -msgstr "" +msgstr "Lancement et arrêt une application *curses*" #: ../Doc/howto/curses.rst:85 msgid "" @@ -141,6 +198,12 @@ msgid "" "object representing the entire screen; this is usually called ``stdscr`` " "after the name of the corresponding C variable. ::" msgstr "" +"Avant de faire quoi que ce soit, *curses* doit être initialisé. Appelez pour " +"cela la fonction :func:`~curses.initscr`, elle détermine le type de " +"terminal, envoie tous les codes de configuration requis au terminal et crée " +"diverses structures de données internes. En cas de succès, :func:`initscr` " +"renvoie un objet fenêtre représentant l'écran entier ; il est généralement " +"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::" #: ../Doc/howto/curses.rst:96 msgid "" @@ -148,6 +211,10 @@ msgid "" "screen, in order to be able to read keys and only display them under certain " "circumstances. This requires calling the :func:`~curses.noecho` function. ::" msgstr "" +"Habituellement, les applications *curses* désactivent l'écho automatique des " +"touches à l'écran, afin de pouvoir lire les touches et ne les afficher que " +"dans certaines circonstances. Cela nécessite d'appeler la fonction :func:" +"`~curses.noecho`. ::" #: ../Doc/howto/curses.rst:103 msgid "" @@ -155,6 +222,10 @@ msgid "" "requiring the Enter key to be pressed; this is called cbreak mode, as " "opposed to the usual buffered input mode. ::" msgstr "" +"Également, les applications réagissent généralement instantanément aux " +"touches sans qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce " +"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel " +"avec un tampon. ::" #: ../Doc/howto/curses.rst:109 msgid "" @@ -165,12 +236,21 @@ msgid "" "const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to enable " "keypad mode. ::" msgstr "" +"Les terminaux renvoient généralement les touches spéciales, telles que les " +"touches de curseur ou les touches de navigation (Page précédente et Accueil " +"par exemple), comme une séquence d'échappement sur plusieurs octets. Bien " +"que vous puissiez écrire votre application pour vous attendre à de telles " +"séquences et les traiter en conséquence, *curses* peut le faire pour vous, " +"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que " +"*curses* fasse le travail, vous devez activer le mode *keypad*. ::" #: ../Doc/howto/curses.rst:118 msgid "" "Terminating a curses application is much easier than starting one. You'll " "need to call::" msgstr "" +"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer " +"une. Appelez ::" #: ../Doc/howto/curses.rst:125 msgid "" @@ -178,6 +258,9 @@ msgid "" "`~curses.endwin` function to restore the terminal to its original operating " "mode. ::" msgstr "" +"pour inverser les réglages du terminal mis en place pour *curses*. Ensuite, " +"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans " +"son mode de fonctionnement original. ::" #: ../Doc/howto/curses.rst:131 msgid "" @@ -187,12 +270,21 @@ msgid "" "raises an uncaught exception. Keys are no longer echoed to the screen when " "you type them, for example, which makes using the shell difficult." msgstr "" +"Un problème courant lors du débogage d'une application *curses* est de se " +"retrouver avec un terminal sans queue ni tête lorsque l'application meurt " +"sans restaurer le terminal à son état précédent. Avec Python, cela arrive " +"souvent lorsque votre code est bogué et lève une exception non interceptée. " +"Les touches ne sont plus répétées à l'écran lorsque vous les tapez, par " +"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* " +"difficile." #: ../Doc/howto/curses.rst:137 msgid "" "In Python you can avoid these complications and make debugging much easier " "by importing the :func:`curses.wrapper` function and using it like this::" msgstr "" +"En Python, vous pouvez éviter ces complications et faciliter le débogage en " +"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::" #: ../Doc/howto/curses.rst:156 msgid "" @@ -206,10 +298,19 @@ msgid "" "funny state on exception and you'll be able to read the exception's message " "and traceback." msgstr "" +"La fonction :func:`~curses.wrapper` prend un objet appelable et fait les " +"initialisations décrites ci-dessus, initialisant également les couleurs si " +"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable " +"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état " +"d'origine du terminal. L'appelable est appelé à l'intérieur d'un :keyword:" +"`try`...\\ :keyword:`except` qui capture les exceptions, restaure l'état du " +"terminal, puis relève l'exception. Par conséquent, votre terminal ne reste " +"pas dans un drôle d'état au moment de l'exception et vous pourrez lire le " +"message de l'exception et la trace de la pile d'appels." #: ../Doc/howto/curses.rst:168 msgid "Windows and Pads" -msgstr "" +msgstr "Fenêtres et tampons (*pads* en anglais)" #: ../Doc/howto/curses.rst:170 msgid "" @@ -217,6 +318,10 @@ msgid "" "rectangular area of the screen, and supports methods to display text, erase " "it, allow the user to input strings, and so forth." msgstr "" +"Les fenêtres sont l'abstraction de base de *curses*. Un objet fenêtre " +"représente une zone rectangulaire de l'écran qui gère des méthodes pour " +"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des " +"chaînes, etc." #: ../Doc/howto/curses.rst:174 msgid "" @@ -227,6 +332,12 @@ msgid "" "newwin` function creates a new window of a given size, returning the new " "window object. ::" msgstr "" +"L'objet ``stdscr`` renvoyé par la fonction :func:`~curses.initscr` est un " +"objet fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " +"n'avoir besoin que de cette fenêtre unique, mais vous pouvez diviser l'écran " +"en fenêtres plus petites, afin de les redessiner ou de les effacer " +"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre " +"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::" #: ../Doc/howto/curses.rst:185 msgid "" @@ -237,6 +348,13 @@ msgid "" "difference from most other computer applications, but it's been part of " "curses since it was first written, and it's too late to change things now." msgstr "" +"Notez que le système de coordonnées utilisé dans *curses* est inhabituel. " +"Les coordonnées sont toujours passées dans l'ordre *y,x* et le coin " +"supérieur gauche d'une fenêtre a pour coordonnées (0,0). Ceci rompt la " +"convention normale des coordonnées où la coordonnée *x* vient en premier. " +"C'est une différence malheureuse par rapport à la plupart des autres " +"applications informatiques, mais elle fait partie de *curses* depuis qu'il a " +"été écrit et il est trop tard pour changer les choses maintenant." #: ../Doc/howto/curses.rst:193 msgid "" @@ -245,6 +363,10 @@ msgid "" "sizes. Legal coordinates will then extend from ``(0,0)`` to ``(curses.LINES " "- 1, curses.COLS - 1)``." msgstr "" +"Votre application peut déterminer la taille de l'écran en utilisant les " +"variables :data:`curses.LINES` et :data:`curses.COLS` pour obtenir les " +"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à " +"``(curses.LINES - 1, curses.COLS - 1)``." #: ../Doc/howto/curses.rst:198 msgid "" @@ -252,6 +374,9 @@ msgid "" "immediately show up on the display. Instead you must call the :meth:" "`~curses.window.refresh` method of window objects to update the screen." msgstr "" +"Quand vous appelez une méthode pour afficher ou effacer du texte, " +"l'affichage ne le reflète pas immédiatement. Vous devez appeler la méthode :" +"meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour l'écran." #: ../Doc/howto/curses.rst:203 msgid "" @@ -263,6 +388,14 @@ msgid "" "and then clears the window, there's no need to send the original text " "because they're never visible." msgstr "" +"C'est parce que *curses* a été écrit du temps des terminaux avec une " +"connexion à 300 bauds seulement ; avec ces terminaux, il était important de " +"minimiser le temps passé à redessiner l'écran. *curses* calcule donc les " +"modifications à apporter à l'écran pour les afficher de la manière la plus " +"efficace au moment où la méthode :meth:`refresh` est appelée. Par exemple, " +"si votre programme affiche du texte dans une fenêtre puis efface cette " +"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais " +"visible." #: ../Doc/howto/curses.rst:212 msgid "" @@ -273,6 +406,14 @@ msgid "" "redrawn before pausing to wait for user input, by first calling ``stdscr." "refresh()`` or the :meth:`refresh` method of some other relevant window." msgstr "" +"Pratiquement, le fait de devoir indiquer explicitement à *curses* de " +"redessiner une fenêtre ne rend pas la programmation plus compliquée. La " +"plupart des programmes effectuent une rafale de traitements puis attendent " +"qu'une touche soit pressée ou toute autre action de la part de " +"l'utilisateur. Tout ce que vous avez à faire consiste à vous assurer que " +"l'écran a bien été redessiné avant d'attendre une entrée utilisateur, en " +"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la " +"fenêtre adéquate." #: ../Doc/howto/curses.rst:220 msgid "" @@ -282,6 +423,12 @@ msgid "" "giving the coordinates of the on-screen area where a subsection of the pad " "will be displayed. ::" msgstr "" +"Un tampon (*pad* en anglais) est une forme spéciale de fenêtre ; il peut " +"être plus grand que l'écran effectif et il est possible de n'afficher qu'une " +"partie du tampon à la fois. La création d'un tampon nécessite de fournir sa " +"hauteur et sa largeur, tandis que pour le rafraîchissement du tampon, vous " +"devez fournir les coordonnées de la zone de l'écran où une partie du tampon " +"sera affichée." #: ../Doc/howto/curses.rst:241 msgid "" @@ -291,6 +438,11 @@ msgid "" "Beyond that difference, pads are exactly like ordinary windows and support " "the same methods." msgstr "" +"L'appel à :meth:`refresh` affiche une partie du tampon dans le rectangle " +"formé par les coins de coordonnées (5,5) et (20,75) de l'écran ; le coin " +"supérieur gauche de la partie affichée a pour coordonnées (0,0) dans le " +"tampon. À part cette différence, les tampons sont exactement comme les " +"fenêtres ordinaires et gèrent les mêmes méthodes." #: ../Doc/howto/curses.rst:247 msgid "" @@ -298,28 +450,39 @@ msgid "" "way to update the screen and prevent annoying screen flicker as each part of " "the screen gets updated. :meth:`refresh` actually does two things:" msgstr "" +"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen " +"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants " +"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :" #: ../Doc/howto/curses.rst:252 msgid "" "Calls the :meth:`~curses.window.noutrefresh` method of each window to update " "an underlying data structure representing the desired state of the screen." msgstr "" +"elle appelle la méthode :meth:`~curses.window.noutrefresh` de chaque fenêtre " +"pour mettre à jour les données sous-jacentes qui permettent d'obtenir " +"l'affichage voulu ;" #: ../Doc/howto/curses.rst:255 msgid "" "Calls the function :func:`~curses.doupdate` function to change the physical " "screen to match the desired state recorded in the data structure." msgstr "" +"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran " +"physique afin de correspondre à l'état défini par les données sous-jacentes." #: ../Doc/howto/curses.rst:258 msgid "" "Instead you can call :meth:`noutrefresh` on a number of windows to update " "the data structure, and then call :func:`doupdate` to update the screen." msgstr "" +"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous " +"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour " +"l'écran." #: ../Doc/howto/curses.rst:264 msgid "Displaying Text" -msgstr "" +msgstr "Affichage de texte" #: ../Doc/howto/curses.rst:266 msgid "" @@ -331,6 +494,14 @@ msgid "" "allows specifying a window to use instead of using ``stdscr`` by default. :c:" "func:`mvwaddstr` allows specifying both a window and a coordinate." msgstr "" +"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un " +"enchevêtrement de fonctions, chacune ayant sa subtilité. Par exemple, :c:" +"func:`addstr` affiche une chaîne à la position actuelle du curseur de la " +"fenêtre ``stdscr``, alors que :c:func:`mvaddstr` se déplace d'abord " +"jusqu'aux coordonnées (y,x) avant d'afficher la chaîne. :c:func:`waddstr` " +"est comme :c:func:`addstr`, mais permet de spécifier la fenêtre au lieu " +"d'utiliser ``stdscr`` par défaut. :c:func:`mvwaddstr` permet de spécifier à " +"la fois les coordonnées et la fenêtre." #: ../Doc/howto/curses.rst:275 msgid "" @@ -339,10 +510,14 @@ msgid "" "addstr` accept multiple argument forms. Usually there are four different " "forms." msgstr "" +"Heureusement, l'interface Python masque tous ces détails. ``stdscr`` est un " +"objet fenêtre comme les autres et les méthodes telles que :meth:`~curses." +"window.addstr` acceptent leurs arguments sous de multiples formes, " +"habituellement quatre." #: ../Doc/howto/curses.rst:281 msgid "Form" -msgstr "" +msgstr "Forme" #: ../Doc/howto/curses.rst:281 ../Doc/howto/curses.rst:350 msgid "Description" @@ -350,39 +525,45 @@ msgstr "Description" #: ../Doc/howto/curses.rst:283 msgid "*str* or *ch*" -msgstr "" +msgstr "*str* ou *ch*" #: ../Doc/howto/curses.rst:283 msgid "Display the string *str* or character *ch* at the current position" -msgstr "" +msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle" #: ../Doc/howto/curses.rst:286 msgid "*str* or *ch*, *attr*" -msgstr "" +msgstr "*str* ou *ch*, *attr*" #: ../Doc/howto/curses.rst:286 msgid "" "Display the string *str* or character *ch*, using attribute *attr* at the " "current position" msgstr "" +"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* " +"à la position actuelle" #: ../Doc/howto/curses.rst:290 msgid "*y*, *x*, *str* or *ch*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*" #: ../Doc/howto/curses.rst:290 msgid "Move to position *y,x* within the window, and display *str* or *ch*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch*" #: ../Doc/howto/curses.rst:293 msgid "*y*, *x*, *str* or *ch*, *attr*" -msgstr "" +msgstr "*y*, *x*, *str* ou *ch*, *attr*" #: ../Doc/howto/curses.rst:293 msgid "" "Move to position *y,x* within the window, and display *str* or *ch*, using " "attribute *attr*" msgstr "" +"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " +"le caractère *ch* en utilisant l'attribut *attr*" #: ../Doc/howto/curses.rst:297 msgid "" @@ -390,6 +571,9 @@ msgid "" "underline, reverse code, or in color. They'll be explained in more detail " "in the next subsection." msgstr "" +"Les attributs permettent de mettre en valeur du texte : gras, souligné, mode " +"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section " +"suivante." #: ../Doc/howto/curses.rst:302 msgid "" @@ -399,12 +583,21 @@ msgid "" "window's :attr:`encoding` attribute; this defaults to the default system " "encoding as returned by :func:`locale.getpreferredencoding`." msgstr "" +"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une " +"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le " +"terminal tel quel. Les chaînes sont encodées en octets en utilisant la " +"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut " +"l'encodage du système tel que renvoyé par :func:`locale." +"getpreferredencoding`." #: ../Doc/howto/curses.rst:309 msgid "" "The :meth:`~curses.window.addch` methods take a character, which can be " "either a string of length 1, a bytestring of length 1, or an integer." msgstr "" +"Les méthodes :meth:`~curses.window.addch` prennent un caractère, soit sous " +"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou " +"d'un entier." #: ../Doc/howto/curses.rst:312 msgid "" @@ -413,6 +606,11 @@ msgid "" "symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " "for drawing borders). You can also use the appropriate Unicode character." msgstr "" +"Des constantes sont disponibles pour étendre les caractères ; ces constantes " +"sont des entiers supérieurs à 255. Par exemple, :const:`ACS_PLMINUS` " +"correspond au symbole +/- et :const:`ACS_ULCORNER` correspond au coin en " +"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous " +"pouvez aussi utiliser les caractères Unicode adéquats." #: ../Doc/howto/curses.rst:318 msgid "" @@ -424,6 +622,14 @@ msgid "" "some location where it won't be distracting; it can be confusing to have the " "cursor blinking at some apparently random location." msgstr "" +"Windows se souvient de l'endroit où le curseur était positionné lors de la " +"dernière opération, de manière à ce que si vous n'utilisez pas les " +"coordonnées *y,x*, l'affichage se produit au dernier endroit utilisé. Vous " +"pouvez aussi déplacer le curseur avec la méthode ``move(y,x)``. Comme " +"certains terminaux affichent un curseur clignotant, vous pouvez ainsi vous " +"assurer que celui-ci est positionné à un endroit où il ne distrait pas " +"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des " +"endroits apparemment aléatoires)." #: ../Doc/howto/curses.rst:326 msgid "" @@ -434,10 +640,17 @@ msgid "" "attempt to suppress the flashing cursor, and you won't need to worry about " "leaving it in odd locations." msgstr "" +"Si votre application n'a pas besoin d'un curseur clignotant, vous pouvez " +"appeler ``curs_set(False)`` pour le rendre invisible. Par souci de " +"compatibilité avec les anciennes versions de *curses*, il existe la fonction " +"``leaveok(bool)`` qui est un synonyme de :func:`~curses.curs_set`. Quand " +"*bool* vaut ``True``, la bibliothèque *curses* essaie de supprimer le " +"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser " +"trainer à des endroits bizarres." #: ../Doc/howto/curses.rst:335 msgid "Attributes and Color" -msgstr "" +msgstr "Attributs et couleurs" #: ../Doc/howto/curses.rst:337 msgid "" @@ -446,6 +659,11 @@ msgid "" "to highlight certain words. curses supports this by allowing you to specify " "an attribute for each cell on the screen." msgstr "" +"Les caractères peuvent être affichés de différentes façons. Les lignes de " +"statut des applications en mode texte sont généralement affichées en mode " +"vidéo inversé ; vous pouvez avoir besoin de mettre en valeur certains mots. " +"À ces fins, *curses* vous permet de spécifier un attribut pour chaque " +"caractère à l'écran." #: ../Doc/howto/curses.rst:342 msgid "" @@ -456,6 +674,13 @@ msgid "" "being used, so it's safest to stick to the most commonly available " "attributes, listed here." msgstr "" +"Un attribut est un entier dont chaque bit représente un attribut différent. " +"Vous pouvez essayer d'afficher du texte avec plusieurs attributs définis " +"simultanément mais *curses* ne garantit pas que toutes les combinaisons " +"soient prises en compte ou que le résultat soit visuellement différent. Cela " +"dépend de la capacité de chaque terminal utilisé, il est donc plus sage de " +"se cantonner aux attributs les plus communément utilisés, dont la liste est " +"fournie ci-dessous." #: ../Doc/howto/curses.rst:350 msgid "Attribute" @@ -463,57 +688,59 @@ msgstr "Attribut" #: ../Doc/howto/curses.rst:352 msgid ":const:`A_BLINK`" -msgstr "" +msgstr ":const:`A_BLINK`" #: ../Doc/howto/curses.rst:352 msgid "Blinking text" -msgstr "" +msgstr "Texte clignotant" #: ../Doc/howto/curses.rst:354 msgid ":const:`A_BOLD`" -msgstr "" +msgstr ":const:`A_BOLD`" #: ../Doc/howto/curses.rst:354 msgid "Extra bright or bold text" -msgstr "" +msgstr "Texte en surbrillance ou en gras" #: ../Doc/howto/curses.rst:356 msgid ":const:`A_DIM`" -msgstr "" +msgstr ":const:`A_DIM`" #: ../Doc/howto/curses.rst:356 msgid "Half bright text" -msgstr "" +msgstr "Texte en demi-ton" #: ../Doc/howto/curses.rst:358 msgid ":const:`A_REVERSE`" -msgstr "" +msgstr ":const:`A_REVERSE`" #: ../Doc/howto/curses.rst:358 msgid "Reverse-video text" -msgstr "" +msgstr "Texte en mode vidéo inversé" #: ../Doc/howto/curses.rst:360 msgid ":const:`A_STANDOUT`" -msgstr "" +msgstr ":const:`A_STANDOUT`" #: ../Doc/howto/curses.rst:360 msgid "The best highlighting mode available" -msgstr "" +msgstr "Le meilleur mode de mis en valeur pour le texte" #: ../Doc/howto/curses.rst:362 msgid ":const:`A_UNDERLINE`" -msgstr "" +msgstr ":const:`A_UNDERLINE`" #: ../Doc/howto/curses.rst:362 msgid "Underlined text" -msgstr "" +msgstr "Texte souligné" #: ../Doc/howto/curses.rst:365 msgid "" "So, to display a reverse-video status line on the top line of the screen, " "you could code::" msgstr "" +"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode " +"vidéo inversé, vous pouvez coder ::" #: ../Doc/howto/curses.rst:372 msgid "" @@ -521,6 +748,9 @@ msgid "" "The most common such terminal is probably the Linux console, followed by " "color xterms." msgstr "" +"La bibliothèque *curses* gère également les couleurs pour les terminaux " +"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, " +"suivie par *xterm* en couleurs." #: ../Doc/howto/curses.rst:376 msgid "" @@ -533,6 +763,14 @@ msgid "" "to the British spelling, you'll have to resign yourself to misspelling it " "for the sake of these functions.)" msgstr "" +"Pour utiliser les couleurs, vous devez d'abord appeler la fonction :func:" +"`~curses.start_color` juste après avoir appelé :func:`~curses.initscr` afin " +"d'initialiser (la fonction :func:`curses.wrapper` le fait automatiquement). " +"Ensuite, la fonction :func:`~curses.has_colors` renvoie ``True`` si le " +"terminal utilisé gère les couleurs (note : *curses* utilise l'orthographe " +"américaine *color* et non pas l'orthographe britannique ou canadienne " +"*colour* ; si vous êtes habitué à l'orthographe britannique, vous devrez " +"vous résigner à mal l'orthographier tant que vous utilisez *curses*)." #: ../Doc/howto/curses.rst:386 msgid "" @@ -543,10 +781,19 @@ msgid "" "as :const:`A_REVERSE`, but again, such combinations are not guaranteed to " "work on all terminals." msgstr "" +"La bibliothèque *curses* maintient un nombre restreint de paires de " +"couleurs, constituées d'une couleur de texte (*foreground*) et de fond " +"(*background*). Vous pouvez obtenir la valeur des attributs correspondant à " +"une paire de couleur avec la fonction :func:`~curses.color_pair` ; cette " +"valeur peut être combinée bit par bit (avec la fonction *OR*) avec les " +"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles " +"combinaisons risquent de ne pas fonctionner sur tous les terminaux." #: ../Doc/howto/curses.rst:393 msgid "An example, which displays a line of text using color pair 1::" msgstr "" +"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur " +"1 ::" #: ../Doc/howto/curses.rst:398 msgid "" @@ -555,6 +802,11 @@ msgid "" "pair *n*, to foreground color f and background color b. Color pair 0 is " "hard-wired to white on black, and cannot be changed." msgstr "" +"Comme indiqué auparavant, une paire de couleurs est constituée d'une couleur " +"de texte et d'une couleur de fond. La fonction ``init_pair(n, f, b)`` change " +"la définition de la paire de couleurs *n*, en définissant la couleur de " +"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en " +"dur à blanc sur noir et ne peut être modifiée." #: ../Doc/howto/curses.rst:403 msgid "" @@ -564,12 +816,20 @@ msgid "" "named constants for each of these colors: :const:`curses.COLOR_BLACK`, :" "const:`curses.COLOR_RED`, and so forth." msgstr "" +"Les couleurs sont numérotées et :func:`start_color` initialise 8 couleurs " +"basiques lors de l'activation du mode en couleurs. Ce sont : 0 pour noir " +"(*black*), 1 pour rouge (*red*), 2 pour vert (*green*), 3 pour jaune " +"(*yellow*), 4 pour bleu *(blue*), 5 pour magenta, 6 pour cyan et 7 pour " +"blanc (*white*). Le module :mod:`curses` définit des constantes nommées pour " +"chacune de ces couleurs : :const:`curses.COLOR_BLACK`, :const:`curses." +"COLOR_RED` et ainsi de suite." #: ../Doc/howto/curses.rst:409 msgid "" "Let's put all this together. To change color 1 to red text on a white " "background, you would call::" msgstr "" +"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::" #: ../Doc/howto/curses.rst:414 msgid "" @@ -577,6 +837,9 @@ msgid "" "pair will change to the new colors. You can also display new text in this " "color with::" msgstr "" +"Quand vous modifiez une paire de couleurs, tout le texte déjà affiché qui " +"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à " +"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::" #: ../Doc/howto/curses.rst:420 msgid "" @@ -589,10 +852,19 @@ msgid "" "there. If you're lucky enough to have such a talented terminal, consult " "your system's man pages for more information." msgstr "" +"Les terminaux « de luxe » peuvent définir les couleurs avec des valeurs " +"*RGB*. Cela vous permet de modifier la couleur 1, habituellement rouge, en " +"violet ou bleu voire toute autre couleur selon votre goût. Malheureusement, " +"la console Linux ne gère pas cette fonctionnalité, je suis donc bien " +"incapable de la tester et de vous en fournir un exemple. Vous pouvez " +"vérifier si votre terminal la prend en charge en appelant :func:`~curses." +"can_change_color`, qui renvoie ``True`` en cas de succès. Si vous avez la " +"chance d'avoir un terminal aussi perfectionné, consultez les pages du manuel " +"de votre système pour obtenir plus d'informations." #: ../Doc/howto/curses.rst:431 msgid "User Input" -msgstr "" +msgstr "Entrées de l'utilisateur" #: ../Doc/howto/curses.rst:433 msgid "" @@ -601,10 +873,14 @@ msgid "" "`Urwid `_ have more extensive collections " "of widgets.)" msgstr "" +"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " +"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " +"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." #: ../Doc/howto/curses.rst:438 msgid "There are two methods for getting input from a window:" -msgstr "" +msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" #: ../Doc/howto/curses.rst:440 msgid "" @@ -613,6 +889,10 @@ msgid "" "called earlier. You can optionally specify a coordinate to which the cursor " "should be moved before pausing." msgstr "" +":meth:`~curses.window.getch` rafraîchit l'écran et attend que l'utilisateur " +"appuie sur une touche, affichant cette touche si :func:`~curses.echo` a été " +"appelé auparavant. Vous pouvez en option spécifier des coordonnées où " +"positionner le curseur avant la mise en pause ;" #: ../Doc/howto/curses.rst:445 msgid "" @@ -621,6 +901,11 @@ msgid "" "special keys such as function keys return longer strings containing a key " "name such as ``KEY_UP`` or ``^G``." msgstr "" +":meth:`~curses.window.getkey` effectue la même chose mais convertit l'entier " +"en chaîne. Les caractères individuels sont renvoyés en chaînes de longueur 1 " +"alors que les touches spéciales (telles que les touches de fonction) " +"renvoient des chaînes plus longues contenant le nom de la touche (tel que " +"``KEY_UP`` ou ``^G``)." #: ../Doc/howto/curses.rst:450 msgid "" @@ -633,6 +918,15 @@ msgid "" "`getch`; if no input becomes available within a specified delay (measured in " "tenths of a second), curses raises an exception." msgstr "" +"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de " +"fenêtre :meth:`~curses.window.nodelay`. Après ``nodelay(True)``, les " +"méthodes de fenêtre :meth:`getch` et :meth:`getkey` deviennent non " +"bloquantes. Pour indiquer qu'aucune entrée n'a eu lieu, :meth:`getch` " +"renvoie ``curses.ERR`` (ayant pour valeur −1) et :meth:`getkey` lève une " +"exception. Il existe aussi la fonction :func:`~curses.halfdelay`, qui peut " +"être utilisée pour définir un délai maximal pour chaque :meth:`getch` ; si " +"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de " +"seconde), *curses* lève une exception." #: ../Doc/howto/curses.rst:460 msgid "" @@ -643,6 +937,13 @@ msgid "" "`curses.KEY_HOME`, or :const:`curses.KEY_LEFT`. The main loop of your " "program may look something like this::" msgstr "" +"La méthode :meth:`getch` renvoie un entier ; s'il est entre 0 et 255, c'est " +"le code ASCII de la touche pressée. Les valeurs supérieures à 255 sont des " +"touches spéciales telles que Page Précédente, Accueil ou les touches du " +"curseur. Vous pouvez comparer la valeur renvoyée aux constantes :const:" +"`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, :const:`curses.KEY_LEFT`, etc. " +"La boucle principale de votre programme pourrait ressembler à quelque chose " +"comme ::" #: ../Doc/howto/curses.rst:476 msgid "" @@ -653,6 +954,13 @@ msgid "" "arguments and return the same type. For example, :func:`curses.ascii.ctrl` " "returns the control character corresponding to its argument." msgstr "" +"Le module :mod:`curses.ascii` fournit des fonctions pour déterminer si " +"l'entier ou la chaîne de longueur 1 passés en arguments font partie de la " +"classe ASCII ; elles peuvent s'avérer utile pour écrire du code plus lisible " +"dans ce genre de boucles. Il fournit également des fonctions de conversion " +"qui prennent un entier ou une chaîne de longueur 1 en entrée et renvoient le " +"type correspondant au nom de la fonction. Par exemple, :func:`curses.ascii." +"ctrl` renvoie le caractère de contrôle correspondant à son paramètre." #: ../Doc/howto/curses.rst:483 msgid "" @@ -662,6 +970,11 @@ msgid "" "key, which terminates the string. It can optionally be limited to a fixed " "number of characters. ::" msgstr "" +"Il existe aussi une méthode pour récupérer une chaîne entière, :meth:" +"`~curses.window.getstr`. Elle n'est pas beaucoup utilisée car son utilité " +"est limitée : les seules touches d'édition disponibles sont le retour " +"arrière et la touche Entrée, qui termine la chaîne. Elle peut, en option, " +"être limitée à un nombre fixé de caractères. ::" #: ../Doc/howto/curses.rst:494 msgid "" @@ -670,15 +983,22 @@ msgid "" "Textbox` class support editing with input validation and gathering the edit " "results either with or without trailing spaces. Here's an example::" msgstr "" +"Le module :mod:`curses.textpad` fournit un type de boîte texte qui gère des " +"touches de fonctions à la façon d'\\ *Emacs*. Plusieurs méthodes de la " +"classe :class:`~curses.textpad.Textbox` gèrent l'édition avec la validation " +"des entrées et le regroupement de l'entrée avec ou sans les espaces de début " +"et de fin. Par exemple ::" #: ../Doc/howto/curses.rst:518 msgid "" "See the library documentation on :mod:`curses.textpad` for more details." msgstr "" +"Consultez la documentation de la bibliothèque pour plus de détails sur :mod:" +"`curses.textpad`." #: ../Doc/howto/curses.rst:522 msgid "For More Information" -msgstr "" +msgstr "Pour aller plus loin" #: ../Doc/howto/curses.rst:524 msgid "" @@ -687,6 +1007,11 @@ msgid "" "Python library page for the :mod:`curses` module is now reasonably " "complete. You should browse it next." msgstr "" +"Ce guide pratique ne couvre pas certains sujets avancés, tels que la lecture " +"du contenu de l'écran ou la capture des événements relatifs à la souris dans " +"une instance *xterm*, mais la page de la bibliothèque Python du module :mod:" +"`curses` est maintenant suffisamment complète. Nous vous encourageons à la " +"parcourir." #: ../Doc/howto/curses.rst:529 msgid "" @@ -696,6 +1021,12 @@ msgid "" "quirks, and provide complete lists of all the functions, attributes, and :" "const:`ACS_\\*` characters available to you." msgstr "" +"Si vous vous posez des questions sur le fonctionnement précis de fonctions " +"*curses*, consultez les pages de manuel de l'implémentation *curses* de " +"votre système, que ce soit *ncurses* ou une version propriétaire Unix. Les " +"pages de manuel documentent toutes les bizarreries et vous donneront les " +"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des " +"caractères disponibles." #: ../Doc/howto/curses.rst:536 msgid "" @@ -706,21 +1037,34 @@ msgid "" "would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." msgstr "" +"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " +"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " +"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " +"eu encore besoin. De plus, Python ne prend pas encore en charge la " +"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " +"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " +"du développeur Python `_ pour apprendre " +"comment soumettre des améliorations à Python." #: ../Doc/howto/curses.rst:544 msgid "" "`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." msgstr "" +"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " +"anglais)." #: ../Doc/howto/curses.rst:546 msgid "`The ncurses man page `_" -msgstr "" +msgstr "`La page de manuel ncurses `_" #: ../Doc/howto/curses.rst:547 msgid "" "`The ncurses FAQ `_" msgstr "" +"`La FAQ ncurses `_ " +"(ressource en anglais)" #: ../Doc/howto/curses.rst:548 msgid "" @@ -728,6 +1072,9 @@ msgid "" "v=eN1eZtjLEnU>`_: video of a PyCon 2013 talk on controlling terminals using " "curses or Urwid." msgstr "" +"`\"Use curses... don't swear\" `_ : vidéo d'une conférence lors de la PyCon 2013 sur la " +"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)." #: ../Doc/howto/curses.rst:550 msgid "" @@ -735,3 +1082,6 @@ msgid "" "console-applications-with-urwid>`_: video of a PyCon CA 2012 talk " "demonstrating some applications written using Urwid." msgstr "" +"`\"Console Applications with Urwid\" `_ : vidéo d'une conférence lors de PyCon CA " +"2012 montrant quelques applications utilisant *Urwid*." diff --git a/howto/descriptor.po b/howto/descriptor.po index 93ef322de7..71a617253a 100644 --- a/howto/descriptor.po +++ b/howto/descriptor.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-09-16 10:52+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2020-03-28 20:32+0100\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.3\n" #: ../Doc/howto/descriptor.rst:3 msgid "Descriptor HowTo Guide" @@ -150,18 +150,16 @@ msgstr "" "comportement par défaut lorsqu'il est recherché comme un attribut." #: ../Doc/howto/descriptor.rst:61 -#, fuzzy msgid "" "If an object defines :meth:`__set__` or :meth:`__delete__`, it is considered " "a data descriptor. Descriptors that only define :meth:`__get__` are called " "non-data descriptors (they are typically used for methods but other uses are " "possible)." msgstr "" -"Si un objet définit à la fois :meth:`__get__` et :meth:`__set__`, il est " -"considéré comme un descripteur de données. Les descripteurs qui ne " -"définissent que :meth:`__get__` sont appelés descripteurs *non-data* (ils " -"sont généralement utilisés pour des méthodes mais d'autres utilisations sont " -"possibles)." +"Si un objet définit :meth:`__set__` ou :meth:`__delete__`, il est considéré " +"comme un descripteur de données. Les descripteurs qui ne définissent que :" +"meth:`__get__` sont appelés descripteurs *non-data* (ils sont généralement " +"utilisés pour des méthodes mais d'autres utilisations sont possibles)." #: ../Doc/howto/descriptor.rst:66 msgid "" @@ -235,13 +233,13 @@ msgid "" "The full C implementation can be found in :c:func:" "`PyObject_GenericGetAttr()` in :source:`Objects/object.c`." msgstr "" -"Pour les objets, la machinerie est en :meth:`object.__getattribute__` qui " +"Pour les objets, la machinerie est dans :meth:`object.__getattribute__` qui " "transforme ``b.x`` en ``type(b).__dict__['x'].__get__(b, type(b)]``. " "L'implémentation fonctionne à travers une chaîne de priorité qui donne la " "priorité aux descripteurs de données sur les variables d'instance, la " "priorité aux variables d'instance sur les descripteurs *non-data*, et " "attribue la priorité la plus faible à :meth:`__getattr__` si fourni. " -"L'implémentation complète de C peut être trouvée dans :c:func:" +"L'implémentation complète en C peut être trouvée dans :c:func:" "`PyObject_GenericGetAttr()` dans :source:`Objects/object.c`." #: ../Doc/howto/descriptor.rst:99 @@ -252,7 +250,7 @@ msgid "" msgstr "" "Pour les classes, la machinerie est dans :meth:`type.__getattribute__` qui " "transforme ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En Python pur, " -"il ressemble à ::" +"cela ressemble à ::" #: ../Doc/howto/descriptor.rst:110 msgid "The important points to remember are:" @@ -265,7 +263,7 @@ msgstr "les descripteurs sont appelés par la méthode :meth:`__getattribute__`" #: ../Doc/howto/descriptor.rst:113 msgid "overriding :meth:`__getattribute__` prevents automatic descriptor calls" msgstr "" -"redéfinition :meth:`__getattribute____` empêche les appels automatiques de " +"redéfinir :meth:`__getattribute____` empêche les appels automatiques de " "descripteurs" #: ../Doc/howto/descriptor.rst:114 @@ -289,7 +287,6 @@ msgstr "" "d'instance." #: ../Doc/howto/descriptor.rst:119 -#, fuzzy msgid "" "The object returned by ``super()`` also has a custom :meth:" "`__getattribute__` method for invoking descriptors. The attribute lookup " @@ -299,13 +296,13 @@ msgid "" "not in the dictionary, ``m`` reverts to a search using :meth:`object." "__getattribute__`." msgstr "" -"L'objet retourné par ``super()`` a aussi une méthode personnalisée :meth:" -"`__getattribute__` pour appeler les descripteurs. L'appel ``super(B, obj)." -"m()`` recherche ``obj.__class__.__mro__`` pour la classe de base ``A`` " -"immédiatement après ``B`` et renvoie ensuite ``A.__dict__['m'].__get__(obj, " -"B)``. Si ce n'est pas un descripteur, ``m`` est retourné inchangé. Si ce " -"n'est pas dans le dictionnaire, ``m`` renvoie à une recherche avec :meth:" -"`object.__getattribute__`." +"L'objet renvoyé par ``super()`` a également une méthode personnalisée :meth:" +"`__getattribute__` pour invoquer des descripteurs. La recherche d'attribut " +"``super(B, obj).m`` recherche dans ``obj.__class__.__mro__`` la classe qui " +"suit immédiatement B, appelons la A, et renvoie ``A.__dict__['m']." +"__get__(obj, B)``. Si ce n'est pas un descripteur, ``m`` est renvoyé " +"inchangé. S'il n'est pas dans le dictionnaire, la recherche de ``m`` revient " +"à une recherche utilisant :meth:`object.__getattribute__`." #: ../Doc/howto/descriptor.rst:126 msgid "" diff --git a/howto/functional.po b/howto/functional.po index 824c7d2f70..57afa0aa86 100644 --- a/howto/functional.po +++ b/howto/functional.po @@ -3,39 +3,39 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2019-10-11 15:16+0200\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" +"PO-Revision-Date: 2020-04-30 11:11+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"Last-Translator: \n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/howto/functional.rst:3 +#: howto/functional.rst:3 msgid "Functional Programming HOWTO" msgstr "Guide pratique : programmation fonctionnelle" -#: ../Doc/howto/functional.rst:0 +#: howto/functional.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/functional.rst:5 +#: howto/functional.rst:5 msgid "A. M. Kuchling" msgstr "A. M. Kuchling" -#: ../Doc/howto/functional.rst:0 +#: howto/functional.rst:0 msgid "Release" msgstr "Version" -#: ../Doc/howto/functional.rst:6 +#: howto/functional.rst:6 msgid "0.32" msgstr "0.32" -#: ../Doc/howto/functional.rst:8 +#: howto/functional.rst:8 msgid "" "In this document, we'll take a tour of Python's features suitable for " "implementing programs in a functional style. After an introduction to the " @@ -49,11 +49,11 @@ msgstr "" "outils tels que les :term:`iterator`\\s et les :term:`generator`\\s ainsi " "que les modules :mod:`itertools` et :mod:`functools`." -#: ../Doc/howto/functional.rst:16 +#: howto/functional.rst:16 msgid "Introduction" msgstr "Introduction" -#: ../Doc/howto/functional.rst:18 +#: howto/functional.rst:18 msgid "" "This section explains the basic concept of functional programming; if you're " "just interested in learning about Python language features, skip to the next " @@ -64,26 +64,28 @@ msgstr "" "cette partie et lire la section suivante sur les :ref:`functional-howto-" "iterators`." -#: ../Doc/howto/functional.rst:22 +#: howto/functional.rst:22 msgid "" "Programming languages support decomposing problems in several different ways:" msgstr "" "Les langages de programmation permettent de traiter des problèmes selon " "différentes approches :" -#: ../Doc/howto/functional.rst:24 +# Énumération +#: howto/functional.rst:24 msgid "" "Most programming languages are **procedural**: programs are lists of " "instructions that tell the computer what to do with the program's input. C, " "Pascal, and even Unix shells are procedural languages." msgstr "" -"La plupart des langages de programmation suivent une logique " +"la plupart des langages de programmation suivent une logique " "**procédurale** : les programmes sont constitués de listes d'instructions " "qui détaillent les opérations que l'ordinateur doit appliquer aux entrées du " "programme. C, Pascal ou encore les interpréteurs de commandes Unix sont des " -"langages procéduraux." +"langages procéduraux ;" -#: ../Doc/howto/functional.rst:28 +# Énumération +#: howto/functional.rst:28 msgid "" "In **declarative** languages, you write a specification that describes the " "problem to be solved, and the language implementation figures out how to " @@ -92,15 +94,16 @@ msgid "" "to retrieve, and the SQL engine decides whether to scan tables or use " "indexes, which subclauses should be performed first, etc." msgstr "" -"Les langages **déclaratifs** permettent d'écrire la spécification du " +"les langages **déclaratifs** permettent d'écrire la spécification du " "problème et laissent l'implémentation du langage trouver une façon efficace " "de réaliser les calculs nécessaires à sa résolution. SQL est un langage " "déclaratif que vous êtes susceptible de connaître ; une requête SQL décrit " "le jeu de données que vous souhaitez récupérer et le moteur SQL choisit de " "parcourir les tables ou d'utiliser les index, l'ordre de résolution des sous-" -"clauses, etc." +"clauses, etc. ;" -#: ../Doc/howto/functional.rst:35 +# Énumération +#: howto/functional.rst:35 msgid "" "**Object-oriented** programs manipulate collections of objects. Objects " "have internal state and support methods that query or modify this internal " @@ -108,13 +111,14 @@ msgid "" "and Python are languages that support object-oriented programming, but don't " "force the use of object-oriented features." msgstr "" -"Les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " +"les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " "possèdent un état interne et des méthodes qui interrogent ou modifient cet " "état d'une façon ou d'une autre. Smalltalk et Java sont deux langages " "orientés objet. C++ et Python gèrent la programmation orientée objet mais " -"n'imposent pas l'utilisation de telles fonctionnalités." +"n'imposent pas l'utilisation de telles fonctionnalités ;" -#: ../Doc/howto/functional.rst:41 +# Énumération +#: howto/functional.rst:41 msgid "" "**Functional** programming decomposes a problem into a set of functions. " "Ideally, functions only take inputs and produce outputs, and don't have any " @@ -122,14 +126,14 @@ msgid "" "known functional languages include the ML family (Standard ML, OCaml, and " "other variants) and Haskell." msgstr "" -"La programmation **fonctionnelle** implique de décomposer un problème en un " +"la programmation **fonctionnelle** implique de décomposer un problème en un " "ensemble de fonctions. Dans l'idéal, les fonctions produisent des sorties à " "partir d'entrées et ne possède pas d'état interne qui soit susceptible de " "modifier la sortie pour une entrée donnée. Les langages fonctionnels les " "plus connus sont ceux de la famille ML (Standard ML, OCaml et autres) et " -"Haskell." +"Haskell ;" -#: ../Doc/howto/functional.rst:47 +#: howto/functional.rst:47 msgid "" "The designers of some computer languages choose to emphasize one particular " "approach to programming. This often makes it difficult to write programs " @@ -145,14 +149,14 @@ msgstr "" "de privilégier une approche par rapport à une autre. Cela complexifie " "l'écriture de programmes appliquant un paradigme différent de celui " "considéré. Certains langages sont multi-paradigmes et gère plusieurs " -"approches différentes. Lisp, C++ et Python sont de tels langage ; vous " +"approches différentes. Lisp, C++ et Python sont de tels langages ; vous " "pouvez écrire des programmes ou des bibliothèques dans un style procédural, " "orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties " "d'une application peuvent être écrites selon des approches différentes ; par " "exemple, l'interface graphique peut suivre le paradigme orienté objet tandis " "que la logique de traitement est procédurale ou fonctionnelle." -#: ../Doc/howto/functional.rst:58 +#: howto/functional.rst:58 msgid "" "In a functional program, input flows through a set of functions. Each " "function operates on its input and produces some output. Functional style " @@ -172,7 +176,7 @@ msgstr "" "qu'aucune structure de données n'est mise à jour lors de l'exécution du " "programme ; chaque sortie d'une fonction ne dépend que de son entrée." -#: ../Doc/howto/functional.rst:66 +#: howto/functional.rst:66 msgid "" "Some languages are very strict about purity and don't even have assignment " "statements such as ``a=3`` or ``c = a + b``, but it's difficult to avoid all " @@ -192,7 +196,7 @@ msgstr "" "bord (afficher du texte sur l'écran et mettre en pause l'exécution du " "programme)." -#: ../Doc/howto/functional.rst:74 +#: howto/functional.rst:74 msgid "" "Python programs written in functional style usually won't go to the extreme " "of avoiding all I/O or all assignments; instead, they'll provide a " @@ -203,13 +207,13 @@ msgid "" msgstr "" "Les programmes Python écrits dans un style fonctionnel ne poussent " "généralement pas le curseur de la pureté à l'extrême en interdisant toute " -"entrée/sortie ou les assignations ; ils exhibent une interface fonctionnelle " +"entrée-sortie ou les assignations ; ils exhibent une interface fonctionnelle " "en apparence mais utilisent des fonctionnalités impures en interne. Par " "exemple, l'implémentation d'une fonction peut assigner dans des variables " "locales mais ne modifiera pas de variable globale et n'aura pas d'autre " "effet de bord." -#: ../Doc/howto/functional.rst:80 +#: howto/functional.rst:80 msgid "" "Functional programming can be considered the opposite of object-oriented " "programming. Objects are little capsules containing some internal state " @@ -230,7 +234,7 @@ msgstr "" "qui prennent en argument et renvoient des instances représentants des objets " "de votre application (courriers électroniques, transactions, etc.)." -#: ../Doc/howto/functional.rst:89 +#: howto/functional.rst:89 msgid "" "Functional design may seem like an odd constraint to work under. Why should " "you avoid objects and side effects? There are theoretical and practical " @@ -240,27 +244,31 @@ msgstr "" "Pourquoi vouloir éviter les objets et les effets de bord ? Il existe des " "avantages théoriques et pratiques au style fonctionnel :" -#: ../Doc/howto/functional.rst:93 +# Énumération +#: howto/functional.rst:93 msgid "Formal provability." -msgstr "Preuves formelles." +msgstr "preuves formelles ;" -#: ../Doc/howto/functional.rst:94 +# Énumération +#: howto/functional.rst:94 msgid "Modularity." -msgstr "Modularité." +msgstr "modularité ;" -#: ../Doc/howto/functional.rst:95 +# Énumération +#: howto/functional.rst:95 msgid "Composability." -msgstr "Composabilité." +msgstr "composabilité ;" -#: ../Doc/howto/functional.rst:96 +# Énumération +#: howto/functional.rst:96 msgid "Ease of debugging and testing." -msgstr "Facilité de débogage et de test." +msgstr "facilité de débogage et de test." -#: ../Doc/howto/functional.rst:100 +#: howto/functional.rst:100 msgid "Formal provability" msgstr "Preuves formelles" -#: ../Doc/howto/functional.rst:102 +#: howto/functional.rst:102 msgid "" "A theoretical benefit is that it's easier to construct a mathematical proof " "that a functional program is correct." @@ -268,7 +276,7 @@ msgstr "" "Un avantage théorique est qu'il plus facile de construire une preuve " "mathématique de l'exactitude d'un programme fonctionnel." -#: ../Doc/howto/functional.rst:105 +#: howto/functional.rst:105 msgid "" "For a long time researchers have been interested in finding ways to " "mathematically prove programs correct. This is different from testing a " @@ -284,7 +292,7 @@ msgstr "" "d'établir une preuve rigoureuse que le programme produit le bon résultat " "pour toutes les entrées possibles." -#: ../Doc/howto/functional.rst:112 +#: howto/functional.rst:112 msgid "" "The technique used to prove programs correct is to write down " "**invariants**, properties of the input data and of the program's variables " @@ -303,7 +311,7 @@ msgstr "" "programme. À ce stade, les invariants doivent alors correspondre aux " "propriétés que l'on souhaite que la sortie du programme vérifie." -#: ../Doc/howto/functional.rst:120 +#: howto/functional.rst:120 msgid "" "Functional programming's avoidance of assignments arose because assignments " "are difficult to handle with this technique; assignments can break " @@ -315,7 +323,7 @@ msgstr "" "assignations peuvent rompre des invariants qui étaient vrais auparavant sans " "pour autant produire de nouveaux invariants qui pourraient être propagés." -#: ../Doc/howto/functional.rst:125 +#: howto/functional.rst:125 msgid "" "Unfortunately, proving programs correct is largely impractical and not " "relevant to Python software. Even trivial programs require proofs that are " @@ -337,11 +345,11 @@ msgstr "" "erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " "programme est correct." -#: ../Doc/howto/functional.rst:136 +#: howto/functional.rst:136 msgid "Modularity" msgstr "Modularité" -#: ../Doc/howto/functional.rst:138 +#: howto/functional.rst:138 msgid "" "A more practical benefit of functional programming is that it forces you to " "break apart your problem into small pieces. Programs are more modular as a " @@ -356,15 +364,15 @@ msgstr "" "grosse fonction qui réalise une transformation complexe. Les petites " "fonctions sont plus faciles à lire et à vérifier." -#: ../Doc/howto/functional.rst:146 +#: howto/functional.rst:146 msgid "Ease of debugging and testing" msgstr "Facilité de débogage et de test" -#: ../Doc/howto/functional.rst:148 +#: howto/functional.rst:148 msgid "Testing and debugging a functional-style program is easier." msgstr "Tester et déboguer un programme fonctionnel est plus facile." -#: ../Doc/howto/functional.rst:150 +#: howto/functional.rst:150 msgid "" "Debugging is simplified because functions are generally small and clearly " "specified. When a program doesn't work, each function is an interface point " @@ -378,7 +386,7 @@ msgstr "" "valeurs sont justes. Vous pouvez observer les entrées intermédiaires et les " "sorties afin d'isoler rapidement la fonction qui est à l'origine du bogue." -#: ../Doc/howto/functional.rst:155 +#: howto/functional.rst:155 msgid "" "Testing is easier because each function is a potential subject for a unit " "test. Functions don't depend on system state that needs to be replicated " @@ -391,11 +399,11 @@ msgstr "" "à la place vous n'avez qu'à produire une entrée synthétique et vérifier que " "le résultat correspond à ce que vous attendez." -#: ../Doc/howto/functional.rst:162 +#: howto/functional.rst:162 msgid "Composability" msgstr "Composabilité" -#: ../Doc/howto/functional.rst:164 +#: howto/functional.rst:164 msgid "" "As you work on a functional-style program, you'll write a number of " "functions with varying inputs and outputs. Some of these functions will be " @@ -408,13 +416,13 @@ msgstr "" "En travaillant sur un programme dans le style fonctionnel, vous écrivez un " "certain nombre de fonctions avec des entrées et des sorties variables. " "Certaines de ces fonctions sont inévitablement spécifiques à une application " -"en particulier, mais d'autres peuvent être s'appliquer à de nombreux cas " -"d'usage. Par exemple, une fonction qui liste l'ensemble des fichiers XML " -"d'un répertoire à partir du chemin de celui-ci ou une fonction qui renvoie " -"le contenu d'un fichier à partir de son nom peuvent être utiles dans de " +"en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. " +"Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un " +"répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le " +"contenu d'un fichier à partir de son nom peuvent être utiles dans de " "nombreuses situations." -#: ../Doc/howto/functional.rst:171 +#: howto/functional.rst:171 msgid "" "Over time you'll form a personal library of utilities. Often you'll " "assemble new programs by arranging existing functions in a new configuration " @@ -425,11 +433,11 @@ msgstr "" "agençant des fonctions existantes dans une nouvelle configuration et en " "écrivant quelques fonctions spécifiques à votre objectif en cours." -#: ../Doc/howto/functional.rst:179 +#: howto/functional.rst:179 msgid "Iterators" msgstr "Itérateurs" -#: ../Doc/howto/functional.rst:181 +#: howto/functional.rst:181 msgid "" "I'll start by looking at a Python language feature that's an important " "foundation for writing functional-style programs: iterators." @@ -437,7 +445,7 @@ msgstr "" "Commençons par jeter un œil à une des fonctionnalités les plus importantes " "pour écrire en style fonctionnel avec Python : les itérateurs." -#: ../Doc/howto/functional.rst:184 +#: howto/functional.rst:184 msgid "" "An iterator is an object representing a stream of data; this object returns " "the data one element at a time. A Python iterator must support a method " @@ -455,7 +463,7 @@ msgstr "" "`StopIteration`. Toutefois, ce n'est pas indispensable ; il est envisageable " "d'écrire un itérateur qui produit un flux infini de données." -#: ../Doc/howto/functional.rst:192 +#: howto/functional.rst:192 msgid "" "The built-in :func:`iter` function takes an arbitrary object and tries to " "return an iterator that will return the object's contents or elements, " @@ -471,11 +479,11 @@ msgstr "" "listes et les dictionnaires. On appelle :term:`iterable` un objet pour " "lequel il est possible de construire un itérateur." -#: ../Doc/howto/functional.rst:199 +#: howto/functional.rst:199 msgid "You can experiment with the iteration interface manually:" msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" -#: ../Doc/howto/functional.rst:217 +#: howto/functional.rst:217 msgid "" "Python expects iterable objects in several different contexts, the most " "important being the :keyword:`for` statement. In the statement ``for X in " @@ -485,9 +493,9 @@ msgstr "" "Python s'attend à travailler sur des objets itérables dans divers contextes " "et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression " "``for X in Y``, Y doit être un itérateur ou un objet pour lequel :func:" -"`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" +"`iter` peut générer un itérateur. Ces deux expressions sont équivalentes ::" -#: ../Doc/howto/functional.rst:229 +#: howto/functional.rst:229 msgid "" "Iterators can be materialized as lists or tuples by using the :func:`list` " "or :func:`tuple` constructor functions:" @@ -495,7 +503,7 @@ msgstr "" "Les itérateurs peuvent être transformés en listes ou en tuples en appelant " "les constructeurs respectifs :func:`list` et :func:`tuple` :" -#: ../Doc/howto/functional.rst:238 +#: howto/functional.rst:238 msgid "" "Sequence unpacking also supports iterators: if you know an iterator will " "return N elements, you can unpack them into an N-tuple:" @@ -504,26 +512,26 @@ msgstr "" "vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " "dans un n-uplet :" -#: ../Doc/howto/functional.rst:247 +#: howto/functional.rst:247 msgid "" "Built-in functions such as :func:`max` and :func:`min` can take a single " -"iterator argument and will return the largest or smallest element. The ``" -"\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " +"iterator argument and will return the largest or smallest element. The " +"``\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " "iterator`` is true if X is found in the stream returned by the iterator. " "You'll run into obvious problems if the iterator is infinite; :func:`max`, :" "func:`min` will never return, and if the element X never appears in the " "stream, the ``\"in\"`` and ``\"not in\"`` operators won't return either." msgstr "" "Certaines fonctions natives telles que :func:`max` et :func:`min` prennent " -"un itérateur en argument et en renvoie le plus grand ou le plus élément. Les " -"opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les itérateurs : " -"``X in iterator`` est vrai si X a été trouvé dans le flux renvoyé par " -"l'itérateur. Vous rencontrerez bien sûr des problèmes si l'itérateur est " -"infini : :func:`max`, :func:`min` ne termineront jamais et, si l'élément X " -"n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et ``\"not in\"`` non " -"plus." +"un itérateur en argument et en renvoie le plus grand ou le plus petit " +"élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les " +"itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux " +"renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si " +"l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, " +"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et " +"``\"not in\"`` non plus." -#: ../Doc/howto/functional.rst:255 +#: howto/functional.rst:255 msgid "" "Note that you can only go forward in an iterator; there's no way to get the " "previous element, reset the iterator, or make a copy of it. Iterator " @@ -542,11 +550,11 @@ msgstr "" "devez utiliser le même flux pour autre chose, vous devrez en créer un " "nouveau." -#: ../Doc/howto/functional.rst:265 +#: howto/functional.rst:265 msgid "Data Types That Support Iterators" msgstr "Types de données itérables" -#: ../Doc/howto/functional.rst:267 +#: howto/functional.rst:267 msgid "" "We've already seen how lists and tuples support iterators. In fact, any " "Python sequence type, such as strings, will automatically support creation " @@ -556,15 +564,15 @@ msgstr "" "itérateurs. En réalité, n'importe quel type de séquence en Python, par " "exemple les chaînes de caractères, sont itérables." -#: ../Doc/howto/functional.rst:271 +#: howto/functional.rst:271 msgid "" "Calling :func:`iter` on a dictionary returns an iterator that will loop over " "the dictionary's keys::" msgstr "" "Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " -"l'ensemble de ses clés ::" +"l'ensemble de ses clés ::" -#: ../Doc/howto/functional.rst:291 +#: howto/functional.rst:291 msgid "" "Note that starting with Python 3.7, dictionary iteration order is guaranteed " "to be the same as the insertion order. In earlier versions, the behaviour " @@ -575,7 +583,7 @@ msgstr "" "clés. Dans les versions précédentes, ce comportement n'était pas spécifié et " "pouvait varier en fonction de l'implémentation." -#: ../Doc/howto/functional.rst:295 +#: howto/functional.rst:295 msgid "" "Applying :func:`iter` to a dictionary always loops over the keys, but " "dictionaries have methods that return other iterators. If you want to " @@ -588,7 +596,7 @@ msgstr "" "dictionnaire, vous pouvez explicitement appeler les méthodes :meth:`~dict." "values` ou :meth:`~dict.items` pour obtenir l'itérateur idoine." -#: ../Doc/howto/functional.rst:301 +#: howto/functional.rst:301 msgid "" "The :func:`dict` constructor can accept an iterator that returns a finite " "stream of ``(key, value)`` tuples:" @@ -596,7 +604,7 @@ msgstr "" "Le constructeur :func:`dict` accepte de prendre un itérateur en argument qui " "renvoie un flux fini de pairs ``(clé, valeur)`` :" -#: ../Doc/howto/functional.rst:308 +#: howto/functional.rst:308 msgid "" "Files also support iteration by calling the :meth:`~io.TextIOBase.readline` " "method until there are no more lines in the file. This means you can read " @@ -605,21 +613,21 @@ msgstr "" "Les fichiers gèrent aussi l'itération en appelant la méthode :meth:`~io." "TextIOBase.readline` jusqu'à ce qu'il n'y ait plus d'autre ligne dans le " "fichier. Cela signifie que vous pouvez lire l'intégralité d'un fichier de la " -"façon suivante ::" +"façon suivante ::" -#: ../Doc/howto/functional.rst:316 +#: howto/functional.rst:316 msgid "" "Sets can take their contents from an iterable and let you iterate over the " "set's elements::" msgstr "" "Les ensembles peuvent être créés à partir d'un itérable et autorisent " -"l'itération sur les éléments de l'ensemble ::" +"l'itération sur les éléments de l'ensemble ::" -#: ../Doc/howto/functional.rst:326 +#: howto/functional.rst:326 msgid "Generator expressions and list comprehensions" msgstr "Expressions génératrices et compréhension de listes" -#: ../Doc/howto/functional.rst:328 +#: howto/functional.rst:328 msgid "" "Two common operations on an iterator's output are 1) performing some " "operation for every element, 2) selecting a subset of elements that meet " @@ -634,27 +642,27 @@ msgstr "" "caractères blancs à la fin de chaque ligne ou extraire toutes les chaînes " "contenant une sous-chaîne précise." -#: ../Doc/howto/functional.rst:334 +#: howto/functional.rst:334 msgid "" "List comprehensions and generator expressions (short form: \"listcomps\" and " "\"genexps\") are a concise notation for such operations, borrowed from the " "functional programming language Haskell (https://www.haskell.org/). You can " "strip all the whitespace from a stream of strings with the following code::" msgstr "" -"Les compréhensions de listes et les expressions génératrices sont une façon " -"concise d'exprimer de telles opérations, inspirées du langage de " +"Les compréhensions de listes et les expressions génératrices sont des façons " +"concises d'exprimer de telles opérations, inspirées du langage de " "programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez " -"retirer tous les caractères blancs d'un flux de chaînes de caractères à " -"l'aide du code suivant ::" +"retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes " +"de caractères à l'aide du code suivant ::" -#: ../Doc/howto/functional.rst:347 +#: howto/functional.rst:347 msgid "" "You can select only certain elements by adding an ``\"if\"`` condition::" msgstr "" "Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " -"``\"if\"`` ::" +"« ``if`` » ::" -#: ../Doc/howto/functional.rst:352 +#: howto/functional.rst:352 msgid "" "With a list comprehension, you get back a Python list; ``stripped_list`` is " "a list containing the resulting lines, not an iterator. Generator " @@ -664,7 +672,7 @@ msgid "" "infinite stream or a very large amount of data. Generator expressions are " "preferable in these situations." msgstr "" -"La compréhension de liste retourne une liste Python ; ``stripped_list`` est " +"La compréhension de liste renvoie une liste Python ; ``stripped_list`` est " "une liste contenant les lignes après transformation, pas un itérateur. Les " "expressions génératrices renvoient un itérateur qui calcule les valeurs au " "fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie " @@ -672,25 +680,25 @@ msgstr "" "sur des itérateurs infinis ou produisant une très grande quantité de " "données. Les expressions génératrices sont préférables dans ce cas." -#: ../Doc/howto/functional.rst:359 +#: howto/functional.rst:359 msgid "" "Generator expressions are surrounded by parentheses (\"()\") and list " "comprehensions are surrounded by square brackets (\"[]\"). Generator " "expressions have the form::" msgstr "" -"Les expressions génératrices sont écrites entre parenthèses (\"()\") et les " -"compréhensions de listes entre crochets (\"[]\"). Les expressions " -"génératrices sont de la forme ::" +"Les expressions génératrices sont écrites entre parenthèses (« () ») et les " +"compréhensions de listes entre crochets (« [] »). Les expressions " +"génératrices sont de la forme ::" -#: ../Doc/howto/functional.rst:372 +#: howto/functional.rst:372 msgid "" "Again, for a list comprehension only the outside brackets are different " "(square brackets instead of parentheses)." msgstr "" -"La compréhension de liste équivalente s'écrit de la même à l'exception de " -"l'utilisation des crochets à la place des parenthèses." +"La compréhension de liste équivalente s'écrit de la même manière, utilisez " +"juste des crochets à la place des parenthèses." -#: ../Doc/howto/functional.rst:375 +#: howto/functional.rst:375 msgid "" "The elements of the generated output will be the successive values of " "``expression``. The ``if`` clauses are all optional; if present, " @@ -698,10 +706,10 @@ msgid "" "is true." msgstr "" "Les éléments de la sortie sont les valeurs successives de ``expression``. La " -"clause ``if`` est facultative ; si elle est présente, ``expression`` ne sera " +"clause ``if`` est facultative ; si elle est présente, ``expression`` n'est " "évaluée et ajoutée au résultat que si ``condition`` est vérifiée." -#: ../Doc/howto/functional.rst:379 +#: howto/functional.rst:379 msgid "" "Generator expressions always have to be written inside parentheses, but the " "parentheses signalling a function call also count. If you want to create an " @@ -710,9 +718,9 @@ msgstr "" "Les expressions génératrices doivent toujours être écrites entre " "parenthèses, mais les parenthèses qui encadrent un appel de fonction " "comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " -"passé à une fonction, vous pouvez écrire ::" +"passé à une fonction, vous pouvez écrire ::" -#: ../Doc/howto/functional.rst:385 +#: howto/functional.rst:385 msgid "" "The ``for...in`` clauses contain the sequences to be iterated over. The " "sequences do not have to be the same length, because they are iterated over " @@ -728,15 +736,15 @@ msgstr "" "parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " "et ``sequence2``." -#: ../Doc/howto/functional.rst:391 +#: howto/functional.rst:391 msgid "" "To put it another way, a list comprehension or generator expression is " "equivalent to the following Python code::" msgstr "" -"Autrement dit, la compréhension de liste ou une expression génératrice est " -"équivalente au code Python ci-dessous ::" +"Autrement dit, une compréhension de liste ou une expression génératrice est " +"équivalente au code Python ci-dessous ::" -#: ../Doc/howto/functional.rst:408 +#: howto/functional.rst:408 msgid "" "This means that when there are multiple ``for...in`` clauses but no ``if`` " "clauses, the length of the resulting output will be equal to the product of " @@ -748,22 +756,22 @@ msgstr "" "produit des longueurs des séquences itérées. Si vous travaillez sur deux " "listes de longueur 3, la sortie contiendra 9 éléments :" -#: ../Doc/howto/functional.rst:420 +#: howto/functional.rst:420 msgid "" "To avoid introducing an ambiguity into Python's grammar, if ``expression`` " "is creating a tuple, it must be surrounded with parentheses. The first list " "comprehension below is a syntax error, while the second one is correct::" msgstr "" -"Afin d'éviter créer une ambiguïté dans la grammaire de Python, " +"Afin de ne pas créer une ambiguïté dans la grammaire de Python, " "``expression`` doit être encadrée par des parenthèses si elle produit un n-" "uplet. La première compréhension de liste ci-dessous n'est pas valide " -"syntaxiquement, tandis que la seconde l'est ::" +"syntaxiquement, tandis que la seconde l'est ::" -#: ../Doc/howto/functional.rst:431 +#: howto/functional.rst:431 msgid "Generators" msgstr "Générateurs" -#: ../Doc/howto/functional.rst:433 +#: howto/functional.rst:433 msgid "" "Generators are a special class of functions that simplify the task of " "writing iterators. Regular functions compute a value and return it, but " @@ -774,7 +782,7 @@ msgstr "" "renvoie, tandis que les générateurs renvoient un itérateur qui produit un " "flux de valeurs." -#: ../Doc/howto/functional.rst:437 +#: howto/functional.rst:437 msgid "" "You're doubtless familiar with how regular function calls work in Python or " "C. When you call a function, it gets a private namespace where its local " @@ -787,32 +795,33 @@ msgid "" "thought of as resumable functions." msgstr "" "Vous connaissez sans doute le fonctionnement des appels de fonctions en " -"Python ou en C. Lorsqu'une fonction est appelée, un espace de noms privé lui " -"est associé pour ses variables locales. Lorsque le programme atteint une " +"Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé " +"lui est associé pour ses variables locales. Lorsque le programme atteint une " "instruction ``return``, les variables locales sont détruites et la valeur " "est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent " -"un nouvel espace de nom privé et de nouvelles variables locales. Cependant, " -"que se passerait-il si les variables locales n'étaient pas détruites lors de " -"la sortie d'une fonction ? Et s'il était possible de reprendre l'exécution " -"de la fonction là où elle s'était arrêtée ? Les générateurs sont une réponse " -"à ces questions ; vous pouvez considérer qu'il s'agit de fonctions qu'il est " -"possible d'interrompre, puis de relancer sans perdre leur progression." - -#: ../Doc/howto/functional.rst:446 +"un nouvel espace de nommage privé et de nouvelles variables locales. " +"Cependant, que se passerait-il si les variables locales n'étaient pas " +"détruites lors de la sortie d'une fonction ? Et s'il était possible de " +"reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les " +"générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il " +"s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans " +"perdre leur progression." + +#: howto/functional.rst:446 msgid "Here's the simplest example of a generator function:" msgstr "Voici un exemple simple de fonction génératrice :" -#: ../Doc/howto/functional.rst:452 +#: howto/functional.rst:452 msgid "" "Any function containing a :keyword:`yield` keyword is a generator function; " "this is detected by Python's :term:`bytecode` compiler which compiles the " "function specially as a result." msgstr "" "N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un " -"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé " +"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et " "prend en compte cette particularité de la fonction." -#: ../Doc/howto/functional.rst:456 +#: howto/functional.rst:456 msgid "" "When you call a generator function, it doesn't return a single value; " "instead it returns a generator object that supports the iterator protocol. " @@ -830,13 +839,13 @@ msgstr "" "différence principale entre ``yield`` et ``return`` est qu'en atteignant " "l'instruction ``yield``, l'état du générateur est suspendu et les variables " "locales sont conservées. Lors de l'appel suivant à la méthode :meth:" -"`~generator.__next__` du générateur, la fonction reprendra son exécution." +"`~generator.__next__` du générateur, la fonction reprend son exécution." -#: ../Doc/howto/functional.rst:465 +#: howto/functional.rst:465 msgid "Here's a sample usage of the ``generate_ints()`` generator:" msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" -#: ../Doc/howto/functional.rst:482 +#: howto/functional.rst:482 msgid "" "You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " "generate_ints(3)``." @@ -844,20 +853,20 @@ msgstr "" "Vous pourriez de façon équivalente écrire ``for i in generate_ints(5)`` ou " "``a, b, c = generate_ints(3)``." -#: ../Doc/howto/functional.rst:485 +#: howto/functional.rst:485 msgid "" "Inside a generator function, ``return value`` causes " "``StopIteration(value)`` to be raised from the :meth:`~generator.__next__` " "method. Once this happens, or the bottom of the function is reached, the " "procession of values ends and the generator cannot yield any further values." msgstr "" -"Dans une fonction génératrice, l'instruction ``return value`` lève une " -"exception ``StopIteration(value)`` dans la méthode :meth:`~generator." -"__next__`. Lorsque cela se produit (ou que la fin de la fonction est " -"atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne peut " -"plus rien produire." +"Dans une fonction génératrice, une instruction ``return value`` entraine la " +"levée d'une exception ``StopIteration(value)`` dans la méthode :meth:" +"`~generator.__next__`. Lorsque cela se produit (ou que la fin de la fonction " +"est atteinte), le flot de nouvelles valeurs s'arrête et le générateur ne " +"peut plus rien produire." -#: ../Doc/howto/functional.rst:490 +#: howto/functional.rst:490 msgid "" "You could achieve the effect of generators manually by writing your own " "class and storing all the local variables of the generator as instance " @@ -874,7 +883,7 @@ msgstr "" "le renvoie. Cependant, cela devient beaucoup plus complexe pour des " "générateurs relativement sophistiqués." -#: ../Doc/howto/functional.rst:498 +#: howto/functional.rst:498 msgid "" "The test suite included with Python's library, :source:`Lib/test/" "test_generators.py`, contains a number of more interesting examples. Here's " @@ -886,7 +895,7 @@ msgstr "" "implémente le parcours d'un arbre dans l'ordre en utilisant des générateurs " "de façon récursive. ::" -#: ../Doc/howto/functional.rst:514 +#: howto/functional.rst:514 msgid "" "Two other examples in ``test_generators.py`` produce solutions for the N-" "Queens problem (placing N queens on an NxN chess board so that no queen " @@ -901,11 +910,11 @@ msgstr "" "de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " "case deux fois)." -#: ../Doc/howto/functional.rst:522 +#: howto/functional.rst:522 msgid "Passing values into a generator" msgstr "Transmettre des valeurs au générateur" -#: ../Doc/howto/functional.rst:524 +#: howto/functional.rst:524 msgid "" "In Python 2.4 and earlier, generators only produced output. Once a " "generator's code was invoked to create an iterator, there was no way to pass " @@ -917,12 +926,11 @@ msgstr "" "Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une " "fois le code du générateur exécuté pour créer un itérateur, il était " "impossible d'introduire de l'information nouvelle dans la fonction mise en " -"pause. Une astuce consistait à reproduire cette fonctionnalité en autorisant " -"le générateur à consulter des variables globales ou en lui passant des " -"objets mutables modifiés hors du générateur, mais ces approches étaient " -"compliquées." +"pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le " +"générateur à consulter des variables globales ou en lui passant des objets " +"mutables modifiés hors du générateur, mais ces approches étaient compliquées." -#: ../Doc/howto/functional.rst:531 +#: howto/functional.rst:531 msgid "" "In Python 2.5 there's a simple way to pass values into a generator. :keyword:" "`yield` became an expression, returning a value that can be assigned to a " @@ -931,22 +939,23 @@ msgstr "" "À partir de Python 2.5, il existe une méthode simple pour transmettre des " "valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une " "expression qui renvoie une valeur sur laquelle il est possible d'opérer et " -"que vous pouvez assigner à une variable ::" +"que vous pouvez assigner à une variable ::" -#: ../Doc/howto/functional.rst:537 +#: howto/functional.rst:537 msgid "" "I recommend that you **always** put parentheses around a ``yield`` " "expression when you're doing something with the returned value, as in the " "above example. The parentheses aren't always necessary, but it's easier to " "always add them instead of having to remember when they're needed." msgstr "" -"Comme dans l'exemple ci-dessus, je vous recommande de **toujours** encadrer " -"les expressions ``yield`` par des parenthèses lorsque vous utilisez leur " -"valeur de retour. Elles ne sont pas toujours indispensables mais mieux vaut " -"prévenir que guérir : il est plus facile de les ajouter systématiquement que " -"de prendre le risque de les oublier là où elles sont requises." +"Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** " +"encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez " +"leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux " +"vaut prévenir que guérir : il est plus facile de les ajouter " +"systématiquement que de prendre le risque de les oublier là où elles sont " +"requises." -#: ../Doc/howto/functional.rst:542 +#: howto/functional.rst:542 msgid "" "(:pep:`342` explains the exact rules, which are that a ``yield``-expression " "must always be parenthesized except when it occurs at the top-level " @@ -954,13 +963,13 @@ msgid "" "write ``val = yield i`` but have to use parentheses when there's an " "operation, as in ``val = (yield i) + 12``.)" msgstr "" -"(les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une " +"(Les règles exactes de parenthésage sont spécifies dans la :pep:`342` : une " "expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de " "l'expression la plus externe du côté droit d'une assignation. Cela signifie " "que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " "requises s'il y a une opération, comme dans ``val = (yield i) + 12``.)" -#: ../Doc/howto/functional.rst:548 +#: howto/functional.rst:548 msgid "" "Values are sent into a generator by calling its :meth:`send(value) " "` method. This method resumes the generator's code and the " @@ -973,7 +982,7 @@ msgstr "" "la méthode :meth:`~generator.__next__` habituelle qui est appelée, alors " "``yield`` renvoie ``None``." -#: ../Doc/howto/functional.rst:553 +#: howto/functional.rst:553 msgid "" "Here's a simple counter that increments by 1 and allows changing the value " "of the internal counter." @@ -981,11 +990,11 @@ msgstr "" "Voici un exemple de compteur qui s'incrémente de 1 mais dont il est possible " "de modifier le compte interne." -#: ../Doc/howto/functional.rst:568 +#: howto/functional.rst:568 msgid "And here's an example of changing the counter:" msgstr "Et voici comment il est possible de modifier le compteur :" -#: ../Doc/howto/functional.rst:585 +#: howto/functional.rst:585 msgid "" "Because ``yield`` will often be returning ``None``, you should always check " "for this case. Don't just use its value in expressions unless you're sure " @@ -997,7 +1006,7 @@ msgstr "" "seule la méthode :meth:`~generator.send` sera utilisée pour reprendre " "l'exécution de la fonction génératrice." -#: ../Doc/howto/functional.rst:590 +#: howto/functional.rst:590 msgid "" "In addition to :meth:`~generator.send`, there are two other methods on " "generators:" @@ -1005,7 +1014,8 @@ msgstr "" "En plus de :meth:`~generator.send`, il existe deux autres méthodes " "s'appliquant aux générateurs :" -#: ../Doc/howto/functional.rst:593 +# Énumération +#: howto/functional.rst:593 msgid "" ":meth:`throw(type, value=None, traceback=None) ` is used to " "raise an exception inside the generator; the exception is raised by the " @@ -1013,9 +1023,9 @@ msgid "" msgstr "" ":meth:`throw(type, value=None, traceback=None) ` permet de " "lever une exception dans le générateur ; celle-ci est levée par l'expression " -"``yield`` à l'endroit où l'exécution a été mise en pause." +"``yield`` à l'endroit où l'exécution a été mise en pause ;" -#: ../Doc/howto/functional.rst:597 +#: howto/functional.rst:597 msgid "" ":meth:`~generator.close` raises a :exc:`GeneratorExit` exception inside the " "generator to terminate the iteration. On receiving this exception, the " @@ -1030,20 +1040,20 @@ msgstr "" "cette exception doit lever à son tour :exc:`GeneratorExit` ou :exc:" "`StopIteration`. Il est illégal d'attraper cette exception et de faire quoi " "que ce soit d'autre, ceci déclenche une erreur :exc:`RuntimeError`. Lorsque " -"le ramasse-miette de Python collectera le générateur, il appellera sa " -"méthode :meth:`~generator.close`." +"le ramasse-miette de Python collecte le générateur, il appelle sa méthode :" +"meth:`~generator.close`." -#: ../Doc/howto/functional.rst:605 +#: howto/functional.rst:605 msgid "" "If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " "suggest using a ``try: ... finally:`` suite instead of catching :exc:" "`GeneratorExit`." msgstr "" "Si vous devez exécuter du code pour faire le ménage lors d'une :exc:" -"`GeneratorExit`, je vous suggère d'utiliser une structure ``try: ... " +"`GeneratorExit`, nous vous suggérons d'utiliser une structure ``try: ... " "finally`` plutôt que d'attraper :exc:`GeneratorExit`." -#: ../Doc/howto/functional.rst:608 +#: howto/functional.rst:608 msgid "" "The cumulative effect of these changes is to turn generators from one-way " "producers of information into both producers and consumers." @@ -1052,7 +1062,7 @@ msgstr "" "unidirectionnels d'information vers un statut hybride à la fois producteur " "et consommateur." -#: ../Doc/howto/functional.rst:611 +#: howto/functional.rst:611 msgid "" "Generators also become **coroutines**, a more generalized form of " "subroutines. Subroutines are entered at one point and exited at another " @@ -1067,18 +1077,18 @@ msgstr "" "de reprendre une coroutine à différents endroits (les instructions " "``yield``)." -#: ../Doc/howto/functional.rst:618 +#: howto/functional.rst:618 msgid "Built-in functions" msgstr "Fonctions natives" -#: ../Doc/howto/functional.rst:620 +#: howto/functional.rst:620 msgid "" "Let's look in more detail at built-in functions often used with iterators." msgstr "" "Voyons un peu plus en détail les fonctions natives souvent utilisées de " "concert avec les itérateurs." -#: ../Doc/howto/functional.rst:622 +#: howto/functional.rst:622 msgid "" "Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " "the features of generator expressions:" @@ -1086,25 +1096,25 @@ msgstr "" ":func:`map` et :func:`filter` sont deux fonctions natives de Python qui " "clonent les propriétés des expressions génératrices :" -#: ../Doc/howto/functional.rst:634 +#: howto/functional.rst:634 msgid "" ":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" msgstr "" ":func:`map(f, iterA, iterB, ...) ` renvoie un itérateur sur une séquence" -#: ../Doc/howto/functional.rst:626 +#: howto/functional.rst:626 msgid "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." msgstr "" "``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." -#: ../Doc/howto/functional.rst:636 +#: howto/functional.rst:636 msgid "You can of course achieve the same effect with a list comprehension." msgstr "" "Vous pouvez obtenir le même comportement à l'aide d'une compréhension de " "liste." -#: ../Doc/howto/functional.rst:638 +#: howto/functional.rst:638 msgid "" ":func:`filter(predicate, iter) ` returns an iterator over all the " "sequence elements that meet a certain condition, and is similarly duplicated " @@ -1119,11 +1129,11 @@ msgstr "" "certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " "prendre qu'un seul argument." -#: ../Doc/howto/functional.rst:651 +#: howto/functional.rst:651 msgid "This can also be written as a list comprehension:" msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" -#: ../Doc/howto/functional.rst:657 +#: howto/functional.rst:657 msgid "" ":func:`enumerate(iter, start=0) ` counts off the elements in the " "iterable returning 2-tuples containing the count (from *start*) and each " @@ -1131,18 +1141,18 @@ msgid "" msgstr "" ":func:`enumerate(iter, start=0) ` énumère les éléments de " "l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " -"listés (depuis le *début*) et l'élément en cours. ::" +"listés (depuis le *début*) et l'élément en cours ::" -#: ../Doc/howto/functional.rst:667 +#: howto/functional.rst:667 msgid "" ":func:`enumerate` is often used when looping through a list and recording " "the indexes at which certain conditions are met::" msgstr "" -":func:`enumerate` est souvent utilisé lorsque l'on souhaite boucler sur une " -"liste tout en listant les indices auxquels une certaine condition est " -"vérifiée ::" +":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une " +"liste tout en listant les indices pour lesquels une certaine condition est " +"vérifiée ::" -#: ../Doc/howto/functional.rst:675 +#: howto/functional.rst:675 msgid "" ":func:`sorted(iterable, key=None, reverse=False) ` collects all the " "elements of the iterable into a list, sorts the list, and returns the sorted " @@ -1154,14 +1164,14 @@ msgstr "" "classé. Les arguments *key* et *reverse* sont passés à la méthode :meth:" "`~list.sort` de la liste ainsi construite. ::" -#: ../Doc/howto/functional.rst:690 +#: howto/functional.rst:690 msgid "" "(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" msgstr "" -"(pour plus de détails sur les algorithmes de tri, se référer à :ref:" +"(Pour plus de détails sur les algorithmes de tri, se référer à :ref:" "`sortinghowto`.)" -#: ../Doc/howto/functional.rst:693 +#: howto/functional.rst:693 msgid "" "The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at " "the truth values of an iterable's contents. :func:`any` returns ``True`` if " @@ -1174,15 +1184,15 @@ msgstr "" "comme vrai et :func:`all` renvoie ``True`` si tous les éléments s'évaluent " "comme vrai :" -#: ../Doc/howto/functional.rst:712 +#: howto/functional.rst:712 msgid "" ":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " "and returns them in a tuple::" msgstr "" ":func:`zip(iterA, iterB, ...) ` rassemble un élément de chaque itérable " -"dans un n-uplet ::" +"dans un n-uplet ::" -#: ../Doc/howto/functional.rst:718 +#: howto/functional.rst:718 msgid "" "It doesn't construct an in-memory list and exhaust all the input iterators " "before returning; instead tuples are constructed and returned only if " @@ -1190,22 +1200,22 @@ msgid "" "evaluation `__.)" msgstr "" "Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs " -"d'entrée avant de renvoyer sa valeur ; en réalité les tuples sont construits " -"et renvoyés au fur et à mesure (il s'agit techniquement parlant d'un " -"comportement d'`évaluation paresseuse `__)." -#: ../Doc/howto/functional.rst:723 +#: howto/functional.rst:723 msgid "" "This iterator is intended to be used with iterables that are all of the same " "length. If the iterables are of different lengths, the resulting stream " "will be the same length as the shortest iterable. ::" msgstr "" "Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la " -"longueur des itérables diffère, le flux résultant aura la même longueur que " -"le plus court des itérables. ::" +"longueur des itérables diffère, le flux résultant a la même longueur que le " +"plus court des itérables. ::" -#: ../Doc/howto/functional.rst:730 +#: howto/functional.rst:730 msgid "" "You should avoid doing this, though, because an element may be taken from " "the longer iterators and discarded. This means you can't go on to use the " @@ -1217,11 +1227,11 @@ msgstr "" "plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " "jeté." -#: ../Doc/howto/functional.rst:736 +#: howto/functional.rst:736 msgid "The itertools module" msgstr "Le module *itertools*" -#: ../Doc/howto/functional.rst:738 +#: howto/functional.rst:738 msgid "" "The :mod:`itertools` module contains a number of commonly-used iterators as " "well as functions for combining several iterators. This section will " @@ -1231,36 +1241,40 @@ msgstr "" "ainsi que des fonctions pour combiner différents itérateurs. Cette section " "présente le contenu du module au travers de quelques exemples." -#: ../Doc/howto/functional.rst:742 +#: howto/functional.rst:742 msgid "The module's functions fall into a few broad classes:" msgstr "Les fonctions du module se divisent en quelques grandes catégories :" -#: ../Doc/howto/functional.rst:744 +# Énumération +#: howto/functional.rst:744 msgid "Functions that create a new iterator based on an existing iterator." msgstr "" -"Les fonctions qui transforment un itérateur existant en un nouvel itérateur." +"les fonctions qui transforment un itérateur existant en un nouvel itérateur ;" -#: ../Doc/howto/functional.rst:745 +# Énumération +#: howto/functional.rst:745 msgid "Functions for treating an iterator's elements as function arguments." msgstr "" -"Les fonctions qui traitent les éléments d'un itérateur comme les arguments " -"d'une fonction." +"les fonctions qui traitent les éléments d'un itérateur comme les arguments " +"d'une fonction ;" -#: ../Doc/howto/functional.rst:746 +# Énumération +#: howto/functional.rst:746 msgid "Functions for selecting portions of an iterator's output." msgstr "" -"Les fonctions qui permettent de sélectionner des portions de la sortie d'un " -"itérateur." +"les fonctions qui permettent de sélectionner des portions de la sortie d'un " +"itérateur ;" -#: ../Doc/howto/functional.rst:747 +# Énumération +#: howto/functional.rst:747 msgid "A function for grouping an iterator's output." -msgstr "Une fonction qui permet de grouper la sortie d'un itérateur." +msgstr "une fonction qui permet de grouper la sortie d'un itérateur." -#: ../Doc/howto/functional.rst:750 +#: howto/functional.rst:750 msgid "Creating new iterators" msgstr "Créer de nouveaux itérateurs" -#: ../Doc/howto/functional.rst:752 +#: howto/functional.rst:752 msgid "" ":func:`itertools.count(start, step) ` returns an infinite " "stream of evenly spaced values. You can optionally supply the starting " @@ -1269,9 +1283,9 @@ msgid "" msgstr "" ":func:`itertools.count(start, step) ` renvoie un flux " "infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " -"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" +"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" -#: ../Doc/howto/functional.rst:763 +#: howto/functional.rst:763 msgid "" ":func:`itertools.cycle(iter) ` saves a copy of the contents " "of a provided iterable and returns a new iterator that returns its elements " @@ -1282,7 +1296,7 @@ msgstr "" "contenu de l'itérable passé en argument et renvoie un nouvel itérateur qui " "produit tous les éléments du premier au dernier et se répète indéfiniment. ::" -#: ../Doc/howto/functional.rst:770 +#: howto/functional.rst:770 msgid "" ":func:`itertools.repeat(elem, [n]) ` returns the provided " "element *n* times, or returns the element endlessly if *n* is not " @@ -1292,7 +1306,7 @@ msgstr "" "passé en argument *n* fois ou répète l'élément à l'infini si *n* n'est pas " "spécifié. ::" -#: ../Doc/howto/functional.rst:778 +#: howto/functional.rst:778 msgid "" ":func:`itertools.chain(iterA, iterB, ...) ` takes an " "arbitrary number of iterables as input, and returns all the elements of the " @@ -1304,7 +1318,7 @@ msgstr "" "éléments du premier itérateur, puis tous ceux du second et ainsi de suite " "jusqu'à ce que tous les itérables aient été épuisés. ::" -#: ../Doc/howto/functional.rst:786 +#: howto/functional.rst:786 msgid "" ":func:`itertools.islice(iter, [start], stop, [step]) ` " "returns a stream that's a slice of the iterator. With a single *stop* " @@ -1317,12 +1331,12 @@ msgstr "" ":func:`itertools.islice(iter, [start], stop, [step]) ` " "renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, " "il renvoie les *stop* premiers éléments. En spécifiant un indice de début, " -"vous récupérez *stop - start* éléments et, en spécifiant une valeur pour " -"*step*, tous les éléments multiples du pas seront sautés. Cependant vous ne " -"pouvez pas utiliser de valeurs négatives pour *start*, *stop* ou *step* " -"(contrairement aux listes et chaînes de caractères de Python). ::" +"vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une " +"valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives " +"pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de " +"caractères de Python). ::" -#: ../Doc/howto/functional.rst:800 +#: howto/functional.rst:800 msgid "" ":func:`itertools.tee(iter, [n]) ` replicates an iterator; it " "returns *n* independent iterators that will all return the contents of the " @@ -1338,11 +1352,11 @@ msgstr "" "source, ce qui peut consommer beaucoup de mémoire si l'itérateur est grand " "et que l'un des nouveaux itérateurs est plus consommé que les autres. ::" -#: ../Doc/howto/functional.rst:819 +#: howto/functional.rst:819 msgid "Calling functions on elements" msgstr "Appliquer des fonctions au contenu des itérateurs" -#: ../Doc/howto/functional.rst:821 +#: howto/functional.rst:821 msgid "" "The :mod:`operator` module contains a set of functions corresponding to " "Python's operators. Some examples are :func:`operator.add(a, b) ` renvoie un objet appelable qui récupère l'attribut ``.id``." -#: ../Doc/howto/functional.rst:827 +#: howto/functional.rst:827 msgid "" ":func:`itertools.starmap(func, iter) ` assumes that the " "iterable will return a stream of tuples, and calls *func* using these tuples " "as the arguments::" msgstr "" ":func:`itertools.starmap(func, iter) ` suppose que " -"l'itérable renvoie une séquence de tuples et appelle *func* en utilisant " -"chaque n-uplet comme arguments ::" +"l'itérable renvoie une séquence de n-uplets et appelle *func* en utilisant " +"tous les n-uplets comme arguments ::" -#: ../Doc/howto/functional.rst:839 +#: howto/functional.rst:839 msgid "Selecting elements" msgstr "Sélectionner des éléments" -#: ../Doc/howto/functional.rst:841 +#: howto/functional.rst:841 msgid "" "Another group of functions chooses a subset of an iterator's elements based " "on a predicate." msgstr "" -"Une autre catégorie de fonctions sont les fonctions permettant de " -"sélectionner un sous-ensemble des éléments de l'itérateur selon un prédicat " -"donné." +"Une autre catégorie de fonctions est celle permettant de sélectionner un " +"sous-ensemble des éléments de l'itérateur selon un prédicat donné." -#: ../Doc/howto/functional.rst:844 +#: howto/functional.rst:844 msgid "" ":func:`itertools.filterfalse(predicate, iter) ` is " "the opposite of :func:`filter`, returning all elements for which the " @@ -1387,9 +1400,9 @@ msgid "" msgstr "" ":func:`itertools.filterfalse(predicate, iter) ` est " "l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " -"prédicat est faux ::" +"prédicat est faux ::" -#: ../Doc/howto/functional.rst:851 +#: howto/functional.rst:851 msgid "" ":func:`itertools.takewhile(predicate, iter) ` returns " "elements for as long as the predicate returns true. Once the predicate " @@ -1399,7 +1412,7 @@ msgstr "" "les éléments de l'itérateur tant que ceux-ci vérifient le prédicat. Dès lors " "que le prédicat renvoie faux, l'itération s'arrête. ::" -#: ../Doc/howto/functional.rst:864 +#: howto/functional.rst:864 msgid "" ":func:`itertools.dropwhile(predicate, iter) ` discards " "elements while the predicate returns true, and then returns the rest of the " @@ -1409,7 +1422,7 @@ msgstr "" "des éléments tant que le prédicat renvoie vrai puis renvoie le reste des " "éléments de l'itérable. ::" -#: ../Doc/howto/functional.rst:874 +#: howto/functional.rst:874 msgid "" ":func:`itertools.compress(data, selectors) ` takes two " "iterators and returns only those elements of *data* for which the " @@ -1418,14 +1431,14 @@ msgid "" msgstr "" ":func:`itertools.compress(data, selectors) ` prend un " "itérateur *data* et un itérateur *selectors* et renvoie les éléments de " -"*data* pour lesquels l'élément correspondant de *selectors* évalue à vrai. " -"L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" +"*data* pour lesquels l'élément correspondant de *selectors* est évalué à " +"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" -#: ../Doc/howto/functional.rst:883 +#: howto/functional.rst:883 msgid "Combinatoric functions" msgstr "Fonctions combinatoires" -#: ../Doc/howto/functional.rst:885 +#: howto/functional.rst:885 msgid "" "The :func:`itertools.combinations(iterable, r) ` " "returns an iterator giving all possible *r*-tuple combinations of the " @@ -1435,7 +1448,7 @@ msgstr "" "un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " "éléments de *iterable*. ::" -#: ../Doc/howto/functional.rst:900 +#: howto/functional.rst:900 msgid "" "The elements within each tuple remain in the same order as *iterable* " "returned them. For example, the number 1 is always before 2, 3, 4, or 5 in " @@ -1448,9 +1461,9 @@ msgstr "" "se trouve toujours avant 2, 3, 4 ou 5. La fonction :func:`itertools." "permutations(iterable, r=None) ` supprime la " "contrainte sur l'ordre et renvoie tous les arrangements possibles de " -"longueur *r* ::" +"longueur *r* ::" -#: ../Doc/howto/functional.rst:919 +#: howto/functional.rst:919 msgid "" "If you don't supply a value for *r* the length of the iterable is used, " "meaning that all the elements are permuted." @@ -1459,16 +1472,16 @@ msgstr "" "utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " "sont renvoyées." -#: ../Doc/howto/functional.rst:922 +#: howto/functional.rst:922 msgid "" "Note that these functions produce all of the possible combinations by " "position and don't require that the contents of *iterable* are unique::" msgstr "" "Notez que ces fonctions génèrent toutes les combinaisons possibles en se " "basant sur la position des éléments et ne requièrent pas que les éléments de " -"*iterable* soient uniques ::" +"*iterable* soient uniques ::" -#: ../Doc/howto/functional.rst:929 +#: howto/functional.rst:929 msgid "" "The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " "strings came from different positions." @@ -1476,7 +1489,7 @@ msgstr "" "Le triplet ``('a', 'a', 'b')`` apparaît deux fois mais les deux chaînes de " "caractères ``'a'`` proviennent de deux positions différentes." -#: ../Doc/howto/functional.rst:932 +#: howto/functional.rst:932 msgid "" "The :func:`itertools.combinations_with_replacement(iterable, r) ` function relaxes a different constraint: " @@ -1490,11 +1503,11 @@ msgstr "" "tirage avec remise : le premier élément sélectionné pour chaque n-uplet est " "replacé dans la séquence avant le tirage du deuxième. ::" -#: ../Doc/howto/functional.rst:947 +#: howto/functional.rst:947 msgid "Grouping elements" msgstr "Grouper les éléments" -#: ../Doc/howto/functional.rst:949 +#: howto/functional.rst:949 msgid "" "The last function I'll discuss, :func:`itertools.groupby(iter, " "key_func=None) `, is the most complicated. " @@ -1505,20 +1518,21 @@ msgstr "" "La dernière fonction que allons voir, :func:`itertools.groupby(iter, " "key_func=None) ` est la plus complexe. ``key_func(elem)`` " "est une fonction qui produit une clé pour chaque élément renvoyé par " -"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci sera " -"l'identité par défaut (c'est-à-dire que la clé d'un élément sera lui-même)." +"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci est " +"l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément " +"lui-même)." -#: ../Doc/howto/functional.rst:954 +#: howto/functional.rst:954 msgid "" ":func:`~itertools.groupby` collects all the consecutive elements from the " "underlying iterable that have the same key value, and returns a stream of 2-" "tuples containing a key value and an iterator for the elements with that key." msgstr "" ":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable " -"sous-jacent qui ont la même clé et renvoie un flux de pairs contenant la clé " -"et un itérateur produisant la liste des éléments pour cette clé." +"sous-jacent qui ont la même clé et renvoie un flux de paires contenant la " +"clé et un itérateur produisant la liste des éléments pour cette clé." -#: ../Doc/howto/functional.rst:982 +#: howto/functional.rst:982 msgid "" ":func:`~itertools.groupby` assumes that the underlying iterable's contents " "will already be sorted based on the key. Note that the returned iterators " @@ -1527,15 +1541,17 @@ msgid "" msgstr "" ":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable " "sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les " -"itérateurs générés utilisent également l'itérable sous-jacent. Vous devrez " +"itérateurs générés utilisent également l'itérable sous-jacent. Vous devez " "donc consommer l'intégralité des résultats du premier itérateur renvoyé " -"avant de récupérer le deuxième itérateur et la clé correspondante." +"(*iterator-1* dans l'exemple ci-dessus) avant de récupérer le deuxième " +"itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il " +"est associé." -#: ../Doc/howto/functional.rst:989 +#: howto/functional.rst:989 msgid "The functools module" msgstr "Le module *functools*" -#: ../Doc/howto/functional.rst:991 +#: howto/functional.rst:991 msgid "" "The :mod:`functools` module in Python 2.5 contains some higher-order " "functions. A **higher-order function** takes one or more functions as input " @@ -1547,7 +1563,7 @@ msgstr "" "plusieurs fonctions en entrée et renvoie une fonction. L'outil le plus " "important de ce module est la fonction :func:`functools.partial`." -#: ../Doc/howto/functional.rst:996 +#: howto/functional.rst:996 msgid "" "For programs written in a functional style, you'll sometimes want to " "construct variants of existing functions that have some of the parameters " @@ -1557,14 +1573,13 @@ msgid "" "\"partial function application\"." msgstr "" "En programmant dans un style fonctionnel, il est courant de vouloir " -"construire des variantes de fonctions existantes dont certaines des " -"paramètres sont préremplis. Par exemple, considérons une fonction Python " -"``f(a, b, c)``. Il peut arriver de vouloir une nouvelle fonction ``g(b, c)`` " -"équivalente à ``f(1, b, c)``, c'est-à-dire fixer le premier paramètre de " -"``f()``. La fonction ``g()`` est une appelée « application partielle » de " -"``f()``." +"construire des variantes de fonctions existantes dont certains paramètres " +"sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, " +"c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, " +"b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction " +"``g()`` est une appelée « application partielle » de ``f()``." -#: ../Doc/howto/functional.rst:1002 +#: howto/functional.rst:1002 msgid "" "The constructor for :func:`~functools.partial` takes the arguments " "``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " @@ -1575,11 +1590,11 @@ msgstr "" "arg1, arg2, ..., kwarg1=value1, kwarg2=value2, ...)``. Un appel à l'objet " "ainsi créé invoque la fonction ``fonction`` avec les arguments spécifiés." -#: ../Doc/howto/functional.rst:1007 +#: howto/functional.rst:1007 msgid "Here's a small but realistic example::" msgstr "Voici un exemple court mais réaliste ::" -#: ../Doc/howto/functional.rst:1019 +#: howto/functional.rst:1019 msgid "" ":func:`functools.reduce(func, iter, [initial_value]) ` " "cumulatively performs an operation on all the iterable's elements and, " @@ -1605,7 +1620,7 @@ msgstr "" "La valeur initiale *initial_value*, si spécifiée, est utilisée comme point " "de départ et le premier calcul est alors ``func(inital_value, A)``. ::" -#: ../Doc/howto/functional.rst:1043 +#: howto/functional.rst:1043 msgid "" "If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up " "all the elements of the iterable. This case is so common that there's a " @@ -1616,16 +1631,16 @@ msgstr "" "courant pour qu'il existe une fonction native :func:`sum` qui lui est " "équivalent :" -#: ../Doc/howto/functional.rst:1055 +#: howto/functional.rst:1055 msgid "" "For many uses of :func:`functools.reduce`, though, it can be clearer to just " "write the obvious :keyword:`for` loop::" msgstr "" "Cependant, il peut être plus lisible dans de nombreuses situations " "impliquant :func:`functools.reduce` de simplement écrire la boucle :keyword:" -"`for` ::" +"`for` ::" -#: ../Doc/howto/functional.rst:1067 +#: howto/functional.rst:1067 msgid "" "A related function is :func:`itertools.accumulate(iterable, func=operator." "add) `. It performs the same calculation, but instead " @@ -1636,13 +1651,13 @@ msgstr "" "accumulate>` est une fonction similaire qui réalise le même calcul mais, " "plutôt que de renvoyer seulement le résultat final, :func:`accumulate` " "renvoie un itérateur qui génère la séquence de tous les résultats " -"intermédiaires ::" +"intermédiaires ::" -#: ../Doc/howto/functional.rst:1080 +#: howto/functional.rst:1080 msgid "The operator module" msgstr "Le module *operator*" -#: ../Doc/howto/functional.rst:1082 +#: howto/functional.rst:1082 msgid "" "The :mod:`operator` module was mentioned earlier. It contains a set of " "functions corresponding to Python's operators. These functions are often " @@ -1654,48 +1669,53 @@ msgstr "" "utiles en programmation fonctionnelle car elles permettent de ne pas avoir à " "écrire des fonctions triviales qui ne réalisent qu'une seule opération." -#: ../Doc/howto/functional.rst:1087 +#: howto/functional.rst:1087 msgid "Some of the functions in this module are:" msgstr "Voici quelques fonctions de ce module :" -#: ../Doc/howto/functional.rst:1089 +# Énumération +#: howto/functional.rst:1089 msgid "" "Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " "``abs()``, ..." msgstr "" -"Les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " -"``floordiv()``, ``abs()``, ..." +"les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " +"``floordiv()``, ``abs()``… ;" -#: ../Doc/howto/functional.rst:1090 +# Énumération +#: howto/functional.rst:1090 msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "Les opérations logiques : ``not_()``, ``truth()``." +msgstr "les opérations logiques : ``not_()``, ``truth()`` ;" -#: ../Doc/howto/functional.rst:1091 +# Énumération +#: howto/functional.rst:1091 msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "Les opérations bit à bit : ``and_()``, ``or_()``, ``invert()``." +msgstr "les opérations bit à bit : ``and_()``, ``or_()``, ``invert()`` ;" -#: ../Doc/howto/functional.rst:1092 +# Énumération +#: howto/functional.rst:1092 msgid "" "Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." msgstr "" -"Les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " -"``ge()``." +"les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " +"``ge()`` ;" -#: ../Doc/howto/functional.rst:1093 +# Énumération +#: howto/functional.rst:1093 msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "L'identification des objets : ``is_()``, ``is_not()``." +msgstr "l'identification des objets : ``is_()``, ``is_not()``." -#: ../Doc/howto/functional.rst:1095 +#: howto/functional.rst:1095 msgid "Consult the operator module's documentation for a complete list." msgstr "" "Veuillez vous référer à la documentation du module *operator* pour une liste " "complète." -#: ../Doc/howto/functional.rst:1099 +#: howto/functional.rst:1099 msgid "Small functions and the lambda expression" msgstr "Expressions lambda et fonctions courtes" -#: ../Doc/howto/functional.rst:1101 +#: howto/functional.rst:1101 msgid "" "When writing functional-style programs, you'll often need little functions " "that act as predicates or that combine elements in some way." @@ -1704,15 +1724,15 @@ msgstr "" "petites fonctions utilisées comme prédicats ou pour combiner des éléments " "d'une façon ou d'une autre." -#: ../Doc/howto/functional.rst:1104 +#: howto/functional.rst:1104 msgid "" "If there's a Python built-in or a module function that's suitable, you don't " "need to define a new function at all::" msgstr "" "S'il existe une fonction native Python ou une fonction d'un module qui " -"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" +"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" -#: ../Doc/howto/functional.rst:1110 +#: howto/functional.rst:1110 msgid "" "If the function you need doesn't exist, you need to write it. One way to " "write small functions is to use the :keyword:`lambda` expression. " @@ -1724,25 +1744,25 @@ msgstr "" "façon d'écrire des fonctions courtes consiste à utiliser les expressions :" "keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une expression " "combinant ces derniers afin de créer une fonction anonyme qui renvoie la " -"valeur de cette expression ::" +"valeur de cette expression ::" -#: ../Doc/howto/functional.rst:1119 +#: howto/functional.rst:1119 msgid "" "An alternative is to just use the ``def`` statement and define a function in " "the usual way::" msgstr "" "Une autre façon de faire est de simplement utiliser l'instruction ``def`` " -"afin de définir une fonction de la manière habituelle ::" +"afin de définir une fonction de la manière habituelle ::" -#: ../Doc/howto/functional.rst:1128 +#: howto/functional.rst:1128 msgid "" "Which alternative is preferable? That's a style question; my usual course " "is to avoid using ``lambda``." msgstr "" -"La méthode à préférer est une question de style, en général je préfère " -"éviter l'utilisation de ``lambda``." +"La méthode à préférer est une question de style, en général l'auteur évite " +"l'utilisation de ``lambda``." -#: ../Doc/howto/functional.rst:1131 +#: howto/functional.rst:1131 msgid "" "One reason for my preference is that ``lambda`` is quite limited in the " "functions it can define. The result has to be computable as a single " @@ -1751,15 +1771,15 @@ msgid "" "``lambda`` statement, you'll end up with an overly complicated expression " "that's hard to read. Quick, what's the following code doing? ::" msgstr "" -"Une des raisons pour cela est que ``lambda`` ne peut pas définir toutes les " -"fonctions. Le résultat doit pouvoir se calculer en une seule expression, ce " -"qui signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " +"Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. " +"Le résultat doit pouvoir se calculer en une seule expression, ce qui " +"signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " "else`` à plusieurs branches ou des structures ``try ... except``. Si vous " "essayez de trop en faire dans une expression ``lambda``, vous finirez avec " "une expression illisible. Par exemple, pouvez-vous dire du premier coup " -"d’œil ce que fait le code ci-dessous ? ::" +"d’œil ce que fait le code ci-dessous ? ::" -#: ../Doc/howto/functional.rst:1141 +#: howto/functional.rst:1141 msgid "" "You can figure it out, but it takes time to disentangle the expression to " "figure out what's going on. Using a short nested ``def`` statements makes " @@ -1767,19 +1787,20 @@ msgid "" msgstr "" "Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps " "de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " -"améliore la situation ::" +"améliore la situation ::" -#: ../Doc/howto/functional.rst:1151 +#: howto/functional.rst:1151 msgid "But it would be best of all if I had simply used a ``for`` loop::" msgstr "" -"Toutefois l'idéal serait de simplement se contenter d'une boucle ``for`` ::" +"Toutefois l'idéal aurait été de simplement se contenter d'une boucle " +"``for`` ::" -#: ../Doc/howto/functional.rst:1157 +#: howto/functional.rst:1157 msgid "Or the :func:`sum` built-in and a generator expression::" msgstr "" -"Ou de la fonction native :func:`sum` et d'une expression génératrice ::" +"ou de la fonction native :func:`sum` et d'une expression génératrice ::" -#: ../Doc/howto/functional.rst:1161 +#: howto/functional.rst:1161 msgid "" "Many uses of :func:`functools.reduce` are clearer when written as ``for`` " "loops." @@ -1787,7 +1808,7 @@ msgstr "" "Les boucles ``for`` sont souvent plus lisibles que la fonction :func:" "`functools.reduce`." -#: ../Doc/howto/functional.rst:1163 +#: howto/functional.rst:1163 msgid "" "Fredrik Lundh once suggested the following set of rules for refactoring uses " "of ``lambda``:" @@ -1795,16 +1816,16 @@ msgstr "" "Frederik Lundh a suggéré quelques règles pour le réusinage de code " "impliquant les expressions ``lambda`` :" -#: ../Doc/howto/functional.rst:1166 +#: howto/functional.rst:1166 msgid "Write a lambda function." msgstr "Écrire une fonction lambda." -#: ../Doc/howto/functional.rst:1167 +#: howto/functional.rst:1167 msgid "Write a comment explaining what the heck that lambda does." msgstr "" "Écrire un commentaire qui explique ce que fait cette satanée fonction lambda." -#: ../Doc/howto/functional.rst:1168 +#: howto/functional.rst:1168 msgid "" "Study the comment for a while, and think of a name that captures the essence " "of the comment." @@ -1812,28 +1833,28 @@ msgstr "" "Scruter le commentaire pendant quelques temps et réfléchir à un nom qui " "synthétise son essence." -#: ../Doc/howto/functional.rst:1170 +#: howto/functional.rst:1170 msgid "Convert the lambda to a def statement, using that name." msgstr "" "Réécrire la fonction lambda en une définition *def* en utilisant ce nom." -#: ../Doc/howto/functional.rst:1171 +#: howto/functional.rst:1171 msgid "Remove the comment." msgstr "Effacer le commentaire." -#: ../Doc/howto/functional.rst:1173 +#: howto/functional.rst:1173 msgid "" "I really like these rules, but you're free to disagree about whether this " "lambda-free style is better." msgstr "" -"J'aime beaucoup ces règles mais vous êtes libre de ne pas être d'accord et " -"de ne pas préférer ce style sans lambda." +"J'aime beaucoup ces règles, mais vous êtes libre de ne pas être d'accord et " +"de préférer un style avec des lambdas." -#: ../Doc/howto/functional.rst:1178 +#: howto/functional.rst:1178 msgid "Revision History and Acknowledgements" msgstr "Historique des modifications et remerciements" -#: ../Doc/howto/functional.rst:1180 +#: howto/functional.rst:1180 msgid "" "The author would like to thank the following people for offering " "suggestions, corrections and assistance with various drafts of this article: " @@ -1846,15 +1867,17 @@ msgstr "" "Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " "Winton." -#: ../Doc/howto/functional.rst:1185 +#: howto/functional.rst:1185 msgid "Version 0.1: posted June 30 2006." msgstr "Version 0.1 : publiée le 30 juin 2006." -#: ../Doc/howto/functional.rst:1187 +#: howto/functional.rst:1187 msgid "Version 0.11: posted July 1 2006. Typo fixes." -msgstr "Version 0.11 : publiée le 1er juillet 2006. Correction orthographique." +msgstr "" +"Version 0.11 : publiée le 1\\ :sup:`er` juillet 2006. Correction " +"orthographique." -#: ../Doc/howto/functional.rst:1189 +#: howto/functional.rst:1189 msgid "" "Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " "one. Typo fixes." @@ -1862,14 +1885,14 @@ msgstr "" "Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " "*listcomp*. Correction orthographique." -#: ../Doc/howto/functional.rst:1192 +#: howto/functional.rst:1192 msgid "" "Version 0.21: Added more references suggested on the tutor mailing list." msgstr "" "Version 0.21 : ajout de plusieurs références suggérées sur la liste de " "diffusion *tutor*." -#: ../Doc/howto/functional.rst:1194 +#: howto/functional.rst:1194 msgid "" "Version 0.30: Adds a section on the ``functional`` module written by Collin " "Winter; adds short section on the operator module; a few other edits." @@ -1878,15 +1901,15 @@ msgstr "" "Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " "quelques autres modifications." -#: ../Doc/howto/functional.rst:1199 +#: howto/functional.rst:1199 msgid "References" msgstr "Références" -#: ../Doc/howto/functional.rst:1202 +#: howto/functional.rst:1202 msgid "General" msgstr "Général" -#: ../Doc/howto/functional.rst:1204 +#: howto/functional.rst:1204 msgid "" "**Structure and Interpretation of Computer Programs**, by Harold Abelson and " "Gerald Jay Sussman with Julie Sussman. Full text at https://mitpress.mit." @@ -1904,7 +1927,7 @@ msgstr "" "utilisent le langage Scheme mais la plupart des approches décrites dans ces " "chapitres s'appliquent au style fonctionnel de Python." -#: ../Doc/howto/functional.rst:1212 +#: howto/functional.rst:1212 msgid "" "http://www.defmacro.org/ramblings/fp.html: A general introduction to " "functional programming that uses Java examples and has a lengthy historical " @@ -1914,7 +1937,7 @@ msgstr "" "programmation fonctionnelle avec une longue introduction historique et des " "exemples en Java." -#: ../Doc/howto/functional.rst:1215 +#: howto/functional.rst:1215 msgid "" "https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " "entry describing functional programming." @@ -1922,23 +1945,23 @@ msgstr "" "https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " "Wikipédia qui décrit la programmation fonctionnelle." -#: ../Doc/howto/functional.rst:1218 +#: howto/functional.rst:1218 msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." msgstr "" "https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines." -#: ../Doc/howto/functional.rst:1220 +#: howto/functional.rst:1220 msgid "" "https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." msgstr "" -"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour de la concept de " -"la curryfication (création d'applications partielles)." +"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " +"curryfication (création d'applications partielles)." -#: ../Doc/howto/functional.rst:1223 +#: howto/functional.rst:1223 msgid "Python-specific" msgstr "Spécifique à Python" -#: ../Doc/howto/functional.rst:1225 +#: howto/functional.rst:1225 msgid "" "http://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" "reference:`Text Processing in Python` discusses functional programming for " @@ -1950,42 +1973,40 @@ msgstr "" "programmation fonctionnelle pour le traitement de texte dans la section « " "Utilisation des fonctions d'ordre supérieur pour le traitement de texte »." -#: ../Doc/howto/functional.rst:1230 +#: howto/functional.rst:1230 msgid "" "Mertz also wrote a 3-part series of articles on functional programming for " -"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and `part 3 `__," +"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and " +"`part 3 `__," msgstr "" "Mertz a également écrit une série de 3 articles (en anglais) sur la " -"programmation fonctionnelle pour le site de IBM *DeveloperWorks*, voir la " -"`partie 1 `__, la `partie 2 `__ et la `partie 3 `__." +"programmation fonctionnelle pour le site DeveloperWorks d'IBM. Voir `partie " +"1 `__, `partie 2 `__ et `partie 3 `__," -#: ../Doc/howto/functional.rst:1238 +#: howto/functional.rst:1238 msgid "Python documentation" msgstr "Documentation Python" -#: ../Doc/howto/functional.rst:1240 +#: howto/functional.rst:1240 msgid "Documentation for the :mod:`itertools` module." msgstr "Documentation du module :mod:`itertools`." -#: ../Doc/howto/functional.rst:1242 +#: howto/functional.rst:1242 msgid "Documentation for the :mod:`functools` module." msgstr "Documentation du module :mod:`functools`." -#: ../Doc/howto/functional.rst:1244 +#: howto/functional.rst:1244 msgid "Documentation for the :mod:`operator` module." msgstr "Documentation du module :mod:`operator`." -#: ../Doc/howto/functional.rst:1246 +#: howto/functional.rst:1246 msgid ":pep:`289`: \"Generator Expressions\"" msgstr ":pep:`289`: *\"Generator Expressions\"*" -#: ../Doc/howto/functional.rst:1248 +#: howto/functional.rst:1248 msgid "" ":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " "generator features in Python 2.5." diff --git a/howto/index.po b/howto/index.po index b760b82105..9603eacd88 100644 --- a/howto/index.po +++ b/howto/index.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/howto/instrumentation.po b/howto/instrumentation.po index b47dcd22f1..c8f587749e 100644 --- a/howto/instrumentation.po +++ b/howto/instrumentation.po @@ -3,328 +3,425 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-10-31 16:04+0100\n" +"Last-Translator: Pierre Bousquié \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/howto/instrumentation.rst:7 +#: howto/instrumentation.rst:7 msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "" +msgstr "Instrumenter CPython avec DTrace et SystemTap" -#: ../Doc/howto/instrumentation.rst:0 +#: howto/instrumentation.rst:0 msgid "author" msgstr "auteur" -#: ../Doc/howto/instrumentation.rst:9 +#: howto/instrumentation.rst:9 msgid "David Malcolm" -msgstr "" +msgstr "David Malcolm" -#: ../Doc/howto/instrumentation.rst:10 +#: howto/instrumentation.rst:10 msgid "Łukasz Langa" -msgstr "" +msgstr "Łukasz Langa" -#: ../Doc/howto/instrumentation.rst:12 +#: howto/instrumentation.rst:12 msgid "" "DTrace and SystemTap are monitoring tools, each providing a way to inspect " "what the processes on a computer system are doing. They both use domain-" "specific languages allowing a user to write scripts which:" msgstr "" +"*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " +"un moyen de d'inspecter ce que font les processus d'un système informatique. " +"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " +"d'écrire des scripts qui permettent de ::" -#: ../Doc/howto/instrumentation.rst:16 +#: howto/instrumentation.rst:16 msgid "filter which processes are to be observed" -msgstr "" +msgstr "Filtrer les processus à observer." -#: ../Doc/howto/instrumentation.rst:17 +#: howto/instrumentation.rst:17 msgid "gather data from the processes of interest" -msgstr "" +msgstr "Recueillir des données sur le processus choisi." -#: ../Doc/howto/instrumentation.rst:18 +#: howto/instrumentation.rst:18 msgid "generate reports on the data" -msgstr "" +msgstr "Générer des rapports sur les données." -#: ../Doc/howto/instrumentation.rst:20 +#: howto/instrumentation.rst:20 msgid "" "As of Python 3.6, CPython can be built with embedded \"markers\", also known " "as \"probes\", that can be observed by a DTrace or SystemTap script, making " "it easier to monitor what the CPython processes on a system are doing." msgstr "" +"À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " +"intégrés, aussi appelés « sondes », qui peuvent être observés par un script " +"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." -#: ../Doc/howto/instrumentation.rst:27 +#: howto/instrumentation.rst:27 msgid "" "DTrace markers are implementation details of the CPython interpreter. No " "guarantees are made about probe compatibility between versions of CPython. " "DTrace scripts can stop working or work incorrectly without warning when " "changing CPython versions." msgstr "" +"Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " +"CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " +"entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " +"fonctionner ou fonctionner incorrectement sans avertissement lors du " +"changement de version de CPython." -#: ../Doc/howto/instrumentation.rst:34 +#: howto/instrumentation.rst:34 msgid "Enabling the static markers" -msgstr "" +msgstr "Activer les marqueurs statiques" -#: ../Doc/howto/instrumentation.rst:36 +#: howto/instrumentation.rst:36 msgid "" "macOS comes with built-in support for DTrace. On Linux, in order to build " "CPython with the embedded markers for SystemTap, the SystemTap development " "tools must be installed." msgstr "" +"macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " +"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " +"de développement *SystemTap* doivent être installés." -#: ../Doc/howto/instrumentation.rst:40 +#: howto/instrumentation.rst:40 msgid "On a Linux machine, this can be done via::" -msgstr "" +msgstr "Sur une machine Linux, cela se fait via ::" -#: ../Doc/howto/instrumentation.rst:44 +#: howto/instrumentation.rst:44 msgid "or::" msgstr "ou ::" -#: ../Doc/howto/instrumentation.rst:49 +#: howto/instrumentation.rst:49 msgid "CPython must then be configured ``--with-dtrace``:" -msgstr "" +msgstr "CPython doit être configuré avec l'option ``--with-dtrace`` ::" -#: ../Doc/howto/instrumentation.rst:55 +#: howto/instrumentation.rst:55 msgid "" "On macOS, you can list available DTrace probes by running a Python process " "in the background and listing all probes made available by the Python " "provider::" msgstr "" +"Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " +"un processus Python en arrière-plan et en listant toutes les sondes mises à " +"disposition par le fournisseur Python ::" -#: ../Doc/howto/instrumentation.rst:72 +#: howto/instrumentation.rst:72 msgid "" "On Linux, you can verify if the SystemTap static markers are present in the " "built binary by seeing if it contains a \".note.stapsdt\" section." msgstr "" +"Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " +"présents dans le binaire compilé, il suffit de regarder s'il contient une " +"section ``.note.stapsdt``." -#: ../Doc/howto/instrumentation.rst:80 +#: howto/instrumentation.rst:80 msgid "" "If you've built Python as a shared library (with --enable-shared), you need " "to look instead within the shared library. For example::" msgstr "" +"Si vous avez compilé Python en tant que bibliothèque partagée (avec ``--" +"enable-shared``), vous devez plutôt regarder dans la bibliothèque partagée. " +"Par exemple ::" -#: ../Doc/howto/instrumentation.rst:86 +#: howto/instrumentation.rst:86 msgid "Sufficiently modern readelf can print the metadata::" msgstr "" +"Une version suffisamment moderne de *readelf* peut afficher les " +"métadonnées ::" -#: ../Doc/howto/instrumentation.rst:123 +#: howto/instrumentation.rst:123 msgid "" "The above metadata contains information for SystemTap describing how it can " "patch strategically-placed machine code instructions to enable the tracing " "hooks used by a SystemTap script." msgstr "" +"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " +"décrivant comment il peut mettre à jour des instructions de code machine " +"stratégiquement placées pour activer les crochets de traçage utilisés par un " +"script *SystemTap*." -#: ../Doc/howto/instrumentation.rst:129 +#: howto/instrumentation.rst:129 msgid "Static DTrace probes" -msgstr "" +msgstr "Sondes DTrace statiques" -#: ../Doc/howto/instrumentation.rst:131 +#: howto/instrumentation.rst:131 msgid "" "The following example DTrace script can be used to show the call/return " "hierarchy of a Python script, only tracing within the invocation of a " "function called \"start\". In other words, import-time function invocations " "are not going to be listed:" msgstr "" +"L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " +"d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " +"En d'autres termes, les appels de fonctions lors de la phase d'import ne " +"seront pas répertoriées ::" -#: ../Doc/howto/instrumentation.rst:170 ../Doc/howto/instrumentation.rst:228 +#: howto/instrumentation.rst:228 msgid "It can be invoked like this::" -msgstr "" +msgstr "Il peut être utilisé de cette manière ::" -#: ../Doc/howto/instrumentation.rst:174 ../Doc/howto/instrumentation.rst:234 +#: howto/instrumentation.rst:234 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" -#: ../Doc/howto/instrumentation.rst:199 +#: howto/instrumentation.rst:199 msgid "Static SystemTap markers" -msgstr "" +msgstr "Marqueurs statiques *SystemTap*" -#: ../Doc/howto/instrumentation.rst:201 +#: howto/instrumentation.rst:201 msgid "" "The low-level way to use the SystemTap integration is to use the static " "markers directly. This requires you to explicitly state the binary file " "containing them." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"directement les marqueurs statiques. Pour cela vous devez pointer " +"explicitement le fichier binaire qui les contient." -#: ../Doc/howto/instrumentation.rst:205 +#: howto/instrumentation.rst:205 msgid "" "For example, this SystemTap script can be used to show the call/return " "hierarchy of a Python script:" msgstr "" +"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " +"hiérarchie d'appel/retour d'un script Python ::" -#: ../Doc/howto/instrumentation.rst:245 +#: howto/instrumentation.rst:245 msgid "where the columns are:" -msgstr "" +msgstr "où les colonnes sont ::" -#: ../Doc/howto/instrumentation.rst:247 +#: howto/instrumentation.rst:247 msgid "time in microseconds since start of script" -msgstr "" +msgstr "temps en microsecondes depuis le début du script" -#: ../Doc/howto/instrumentation.rst:249 +#: howto/instrumentation.rst:249 msgid "name of executable" -msgstr "" +msgstr "nom de l'exécutable" -#: ../Doc/howto/instrumentation.rst:251 +#: howto/instrumentation.rst:251 msgid "PID of process" -msgstr "" +msgstr "PID du processus" -#: ../Doc/howto/instrumentation.rst:253 +#: howto/instrumentation.rst:253 msgid "" "and the remainder indicates the call/return hierarchy as the script executes." msgstr "" +"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." -#: ../Doc/howto/instrumentation.rst:255 +#: howto/instrumentation.rst:255 msgid "" "For a `--enable-shared` build of CPython, the markers are contained within " "the libpython shared library, and the probe's dotted path needs to reflect " "this. For example, this line from the above example:" msgstr "" +"Pour une compilation `--enable-shared` de CPython, les marqueurs sont " +"contenus dans la bibliothèque partagée *libpython*, et le chemin du module " +"de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-dessus :" -#: ../Doc/howto/instrumentation.rst:263 +#: howto/instrumentation.rst:263 msgid "should instead read:" -msgstr "" +msgstr "doit plutôt se lire comme ::" -#: ../Doc/howto/instrumentation.rst:269 +#: howto/instrumentation.rst:269 msgid "(assuming a debug build of CPython 3.6)" msgstr "" +"(en supposant une version compilée avec le débogage activé de CPython 3.6)" -#: ../Doc/howto/instrumentation.rst:273 +#: howto/instrumentation.rst:273 msgid "Available static markers" -msgstr "" +msgstr "Marqueurs statiques disponibles" -#: ../Doc/howto/instrumentation.rst:279 +#: howto/instrumentation.rst:277 msgid "" "This marker indicates that execution of a Python function has begun. It is " "only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " +"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." -#: ../Doc/howto/instrumentation.rst:282 +#: howto/instrumentation.rst:280 msgid "" "The filename, function name, and line number are provided back to the " -"tracing script as positional arguments, which must be accessed using ``" -"$arg1``, ``$arg2``, ``$arg3``:" +"tracing script as positional arguments, which must be accessed using " +"``$arg1``, ``$arg2``, ``$arg3``:" msgstr "" +"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " +"au script de traçage sous forme d'arguments positionnels, auxquels il faut " +"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" -#: ../Doc/howto/instrumentation.rst:286 +#: howto/instrumentation.rst:284 msgid "" "``$arg1`` : ``(const char *)`` filename, accessible using " "``user_string($arg1)``" msgstr "" +"``$arg1`` : ``(const char *)`` nom de fichier, accessible via " +"``user_string($arg1)``" -#: ../Doc/howto/instrumentation.rst:288 +#: howto/instrumentation.rst:286 msgid "" "``$arg2`` : ``(const char *)`` function name, accessible using " "``user_string($arg2)``" msgstr "" +"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " +"``user_string($arg2)``" -#: ../Doc/howto/instrumentation.rst:291 +#: howto/instrumentation.rst:289 msgid "``$arg3`` : ``int`` line number" -msgstr "" +msgstr "``$arg3`` : numéro de ligne ``int``" -#: ../Doc/howto/instrumentation.rst:295 +#: howto/instrumentation.rst:293 msgid "" "This marker is the converse of :c:func:`function__entry`, and indicates that " "execution of a Python function has ended (either via ``return``, or via an " "exception). It is only triggered for pure-Python (bytecode) functions." msgstr "" +"Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Il n'est déclenché que pour les fonctions en Python pur " +"(code intermédiaire)." -#: ../Doc/howto/instrumentation.rst:299 +#: howto/instrumentation.rst:297 msgid "The arguments are the same as for :c:func:`function__entry`" -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" -#: ../Doc/howto/instrumentation.rst:303 +#: howto/instrumentation.rst:301 msgid "" "This marker indicates a Python line is about to be executed. It is the " "equivalent of line-by-line tracing with a Python profiler. It is not " "triggered within C functions." msgstr "" +"Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " +"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " +"n'est pas déclenché dans les fonctions C." -#: ../Doc/howto/instrumentation.rst:307 +#: howto/instrumentation.rst:305 msgid "The arguments are the same as for :c:func:`function__entry`." -msgstr "" +msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." -#: ../Doc/howto/instrumentation.rst:311 +#: howto/instrumentation.rst:309 msgid "" "Fires when the Python interpreter starts a garbage collection cycle. " "``arg0`` is the generation to scan, like :func:`gc.collect()`." msgstr "" +"Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " +"ramasse-miettes. ``arg0`` est la génération à scanner, comme :func:`gc." +"collect()`." -#: ../Doc/howto/instrumentation.rst:316 +#: howto/instrumentation.rst:314 msgid "" "Fires when the Python interpreter finishes a garbage collection cycle. " "``arg0`` is the number of collected objects." msgstr "" +"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " +"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." -#: ../Doc/howto/instrumentation.rst:321 +#: howto/instrumentation.rst:319 msgid "" "Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " "is the module name." msgstr "" +"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger " +"le module. ``arg0`` est le nom du module." -#: ../Doc/howto/instrumentation.rst:328 +#: howto/instrumentation.rst:326 msgid "" "Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " "the module name, ``arg1`` indicates if module was successfully loaded." msgstr "" +"Fonction appelée après que la fonction ``find_and_load`` du module :mod:" +"`importlib` soit appelée. ``arg0`` est le nom du module, ``arg1`` indique si " +"le module a été chargé avec succès." -#: ../Doc/howto/instrumentation.rst:337 +#: howto/instrumentation.rst:335 msgid "" "Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is " "the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " "tuple object." msgstr "" +"Fonction appelée quand les fonctions :func:`sys.audit` ou :c:func:" +"`PySys_Audit` sont appelées. ``arg0`` est le nom de l'évènement de type " +"chaîne de caractère C. ``arg1`` est un pointeur sur un tuple d'objet de " +"type :c:type:`PyObject`." -#: ../Doc/howto/instrumentation.rst:345 +#: howto/instrumentation.rst:343 msgid "SystemTap Tapsets" -msgstr "" +msgstr "*Tapsets* de *SystemTap*" -#: ../Doc/howto/instrumentation.rst:347 +#: howto/instrumentation.rst:345 msgid "" -"The higher-level way to use the SystemTap integration is to use a \"tapset" -"\": SystemTap's equivalent of a library, which hides some of the lower-level " -"details of the static markers." +"The higher-level way to use the SystemTap integration is to use a " +"\"tapset\": SystemTap's equivalent of a library, which hides some of the " +"lower-level details of the static markers." msgstr "" +"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " +"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " +"permet de masquer les détails de niveau inférieur des marqueurs statiques." -#: ../Doc/howto/instrumentation.rst:351 +#: howto/instrumentation.rst:349 msgid "Here is a tapset file, based on a non-shared build of CPython:" msgstr "" +"Voici un fichier *tapset*, basé sur une version non partagée compilée de " +"CPython ::" -#: ../Doc/howto/instrumentation.rst:374 +#: howto/instrumentation.rst:372 msgid "" "If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" "systemtap/tapset``), then these additional probepoints become available:" msgstr "" +"Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " +"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " +"deviennent disponibles ::" -#: ../Doc/howto/instrumentation.rst:380 +#: howto/instrumentation.rst:378 msgid "" "This probe point indicates that execution of a Python function has begun. It " "is only triggered for pure-Python (bytecode) functions." msgstr "" +"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle " +"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." -#: ../Doc/howto/instrumentation.rst:385 +#: howto/instrumentation.rst:383 msgid "" -"This probe point is the converse of :c:func:`python.function.return`, and " +"This probe point is the converse of ``python.function.return``, and " "indicates that execution of a Python function has ended (either via " "``return``, or via an exception). It is only triggered for pure-Python " "(bytecode) functions." msgstr "" +"Cette sonde est l'inverse de ``python.function.return``, et indique que " +"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " +"via une exception). Elle est uniquement déclenchée pour les fonctions en " +"Python pur (code intermédiaire ou *bytecode*)." -#: ../Doc/howto/instrumentation.rst:392 +#: howto/instrumentation.rst:390 msgid "Examples" msgstr "Exemples" -#: ../Doc/howto/instrumentation.rst:393 +#: howto/instrumentation.rst:391 msgid "" "This SystemTap script uses the tapset above to more cleanly implement the " "example given above of tracing the Python function-call hierarchy, without " "needing to directly name the static markers:" msgstr "" +"Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " +"proprement l'exemple précédent de traçage de la hiérarchie des appels de " +"fonctions Python, sans avoir besoin de nommer directement les marqueurs " +"statiques ::" -#: ../Doc/howto/instrumentation.rst:412 +#: howto/instrumentation.rst:410 msgid "" "The following script uses the tapset above to provide a top-like view of all " "running CPython code, showing the top 20 most frequently-entered bytecode " "frames, each second, across the whole system:" msgstr "" +"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " +"l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " +"la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " +"intermédiaire, chaque seconde, sur l'ensemble du système ::" diff --git a/howto/ipaddress.po b/howto/ipaddress.po index cf3ca45007..8087954fe3 100644 --- a/howto/ipaddress.po +++ b/howto/ipaddress.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-10 11:27+0200\n" "PO-Revision-Date: 2019-01-11 23:02+0100\n" @@ -269,7 +269,7 @@ msgstr "" #: ../Doc/howto/ipaddress.rst:163 msgid "Extracting the IP version::" -msgstr "Extraire la version du protocole IP" +msgstr "Extraire la version du protocole IP ::" #: ../Doc/howto/ipaddress.rst:172 msgid "Obtaining the network from an interface::" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po index d184c94753..eddab04ea4 100644 --- a/howto/logging-cookbook.po +++ b/howto/logging-cookbook.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,29 +14,29 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/howto/logging-cookbook.rst:5 +#: howto/logging-cookbook.rst:5 msgid "Logging Cookbook" -msgstr "" +msgstr "Recettes pour la journalisation" -#: ../Doc/howto/logging-cookbook.rst:0 +#: howto/logging-cookbook.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/logging-cookbook.rst:7 +#: howto/logging-cookbook.rst:7 msgid "Vinay Sajip " msgstr "Vinay Sajip " -#: ../Doc/howto/logging-cookbook.rst:9 +#: howto/logging-cookbook.rst:9 msgid "" "This page contains a number of recipes related to logging, which have been " "found useful in the past." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:15 +#: howto/logging-cookbook.rst:15 msgid "Using logging in multiple modules" -msgstr "" +msgstr "Journalisation dans plusieurs modules" -#: ../Doc/howto/logging-cookbook.rst:17 +#: howto/logging-cookbook.rst:17 msgid "" "Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " "the same logger object. This is true not only within the same module, but " @@ -47,40 +47,54 @@ msgid "" "logger calls to the child will pass up to the parent. Here is a main " "module::" msgstr "" +"Deux appels à ``logging.getLogger('unLogger')`` renvoient toujours une " +"référence vers le même objet de journalisation. C’est valable à l’intérieur " +"d’un module, mais aussi dans des modules différents pour autant que ce soit " +"le même processus de l’interpréteur Python. En plus, le code d’une " +"application peut définir et configurer une journalisation parente dans un " +"module et créer (mais pas configurer) une journalisation fille dans un " +"module séparé. Les appels à la journalisation fille passeront alors à la " +"journalisation parente. Voici un module principal ::" -#: ../Doc/howto/logging-cookbook.rst:55 +#: howto/logging-cookbook.rst:55 msgid "Here is the auxiliary module::" -msgstr "" +msgstr "Voici un module auxiliaire ::" -#: ../Doc/howto/logging-cookbook.rst:75 +#: howto/logging-cookbook.rst:75 msgid "The output looks like this:" -msgstr "" +msgstr "La sortie ressemble à ceci ::" -#: ../Doc/howto/logging-cookbook.rst:101 +#: howto/logging-cookbook.rst:101 msgid "Logging from multiple threads" -msgstr "" +msgstr "Journalisation avec des fils d’exécution multiples" -#: ../Doc/howto/logging-cookbook.rst:103 +#: howto/logging-cookbook.rst:103 msgid "" "Logging from multiple threads requires no special effort. The following " "example shows logging from the main (initial) thread and another thread::" msgstr "" +"La journalisation avec des fils d’exécution multiples ne requiert pas " +"d’effort particulier. L’exemple suivant montre comment journaliser depuis le " +"fil principal (c.-à-d. initial) et un autre fil ::" -#: ../Doc/howto/logging-cookbook.rst:132 +#: howto/logging-cookbook.rst:132 msgid "When run, the script should print something like the following:" -msgstr "" +msgstr "À l’exécution, le script doit afficher quelque chose comme ça ::" -#: ../Doc/howto/logging-cookbook.rst:154 +#: howto/logging-cookbook.rst:154 msgid "" "This shows the logging output interspersed as one might expect. This " "approach works for more threads than shown here, of course." msgstr "" +"Les entrées de journalisation sont entrelacées, comme on pouvait s’y " +"attendre. Cette approche fonctionne aussi avec plus de fils que dans " +"l’exemple, bien sûr." -#: ../Doc/howto/logging-cookbook.rst:158 +#: howto/logging-cookbook.rst:158 msgid "Multiple handlers and formatters" -msgstr "" +msgstr "Plusieurs gestionnaires et formateurs" -#: ../Doc/howto/logging-cookbook.rst:160 +#: howto/logging-cookbook.rst:160 msgid "" "Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " "no minimum or maximum quota for the number of handlers you may add. " @@ -91,15 +105,27 @@ msgid "" "slight modification to the previous simple module-based configuration " "example::" msgstr "" +"Les gestionnaires de journalisation sont des objets Python ordinaires. La " +"méthode :meth:`~Logger.addHandler` n’est pas limitée, en nombre minimum ou " +"maximum, en gestionnaires que vous pouvez ajouter. Parfois, il peut être " +"utile pour une application de journaliser tous les messages quels que soient " +"leurs niveaux vers un fichier texte, tout en journalisant les erreurs (et " +"plus grave) dans la console. Pour ce faire, configurez simplement les " +"gestionnaires de manière adéquate. Les appels de journalisation dans le code " +"de l’application resteront les mêmes. Voici une légère modification de " +"l’exemple précédent dans une configuration au niveau du module ::" -#: ../Doc/howto/logging-cookbook.rst:193 +#: howto/logging-cookbook.rst:193 msgid "" "Notice that the 'application' code does not care about multiple handlers. " "All that changed was the addition and configuration of a new handler named " "*fh*." msgstr "" +"Notez que le code de « l’application » ignore la multiplicité des " +"gestionnaires. Les modifications consistent simplement en l’ajout et la " +"configuration d’un nouveau gestionnaire appelé *fh*." -#: ../Doc/howto/logging-cookbook.rst:196 +#: howto/logging-cookbook.rst:196 msgid "" "The ability to create new handlers with higher- or lower-severity filters " "can be very helpful when writing and testing an application. Instead of " @@ -110,12 +136,21 @@ msgid "" "to happen is to modify the severity level of the logger and/or handler to " "debug." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:207 +"La possibilité de créer de nouveaux gestionnaires avec des filtres sur un " +"niveau de gravité supérieur ou inférieur peut être très utile lors de " +"l’écriture ou du test d’une application. Au lieu d’utiliser de nombreuses " +"instructions ``print`` pour le débogage, utilisez ``logger.debug`` : " +"contrairement aux instructions ``print``, que vous devrez supprimer ou " +"commenter plus tard, les instructions ``logger.debug`` peuvent demeurer " +"telles quelles dans le code source et restent dormantes jusqu’à ce que vous " +"en ayez à nouveau besoin. À ce moment-là, il suffit de modifier le niveau de " +"gravité de la journalisation ou du gestionnaire pour déboguer." + +#: howto/logging-cookbook.rst:207 msgid "Logging to multiple destinations" -msgstr "" +msgstr "Journalisation vers plusieurs destinations" -#: ../Doc/howto/logging-cookbook.rst:209 +#: howto/logging-cookbook.rst:209 msgid "" "Let's say you want to log to console and file with different message formats " "and in differing circumstances. Say you want to log messages with levels of " @@ -123,54 +158,70 @@ msgid "" "console. Let's also assume that the file should contain timestamps, but the " "console messages should not. Here's how you can achieve this::" msgstr "" +"Supposons que vous souhaitiez journaliser dans la console et dans un fichier " +"avec différents formats de messages et avec différents critères. Supposons " +"que vous souhaitiez consigner les messages de niveau DEBUG et supérieur dans " +"le fichier, et les messages de niveau INFO et supérieur dans la console. " +"Supposons également que le fichier doive contenir des horodatages, mais pas " +"les messages de la console. Voici comment y parvenir ::" -#: ../Doc/howto/logging-cookbook.rst:247 +#: howto/logging-cookbook.rst:247 msgid "When you run this, on the console you will see" -msgstr "" +msgstr "Quand vous le lancez, vous devez voir" -#: ../Doc/howto/logging-cookbook.rst:256 +#: howto/logging-cookbook.rst:256 msgid "and in the file you will see something like" -msgstr "" +msgstr "et, dans le fichier, vous devez trouver" -#: ../Doc/howto/logging-cookbook.rst:266 +#: howto/logging-cookbook.rst:266 msgid "" "As you can see, the DEBUG message only shows up in the file. The other " "messages are sent to both destinations." msgstr "" +"Comme vous pouvez le constater, le message DEBUG n’apparaît que dans le " +"fichier. Les autres messages sont envoyés vers les deux destinations." -#: ../Doc/howto/logging-cookbook.rst:269 +#: howto/logging-cookbook.rst:269 msgid "" "This example uses console and file handlers, but you can use any number and " "combination of handlers you choose." msgstr "" +"Cet exemple utilise la console et des gestionnaires de fichier, mais vous " +"pouvez utiliser et combiner autant de gestionnaires que de besoin." -#: ../Doc/howto/logging-cookbook.rst:274 +#: howto/logging-cookbook.rst:274 msgid "Configuration server example" -msgstr "" +msgstr "Exemple d’un serveur de configuration" -#: ../Doc/howto/logging-cookbook.rst:276 +#: howto/logging-cookbook.rst:276 msgid "Here is an example of a module using the logging configuration server::" msgstr "" +"Voici un exemple de module mettant en œuvre la configuration de la " +"journalisation *via* un serveur ::" -#: ../Doc/howto/logging-cookbook.rst:307 +#: howto/logging-cookbook.rst:307 msgid "" "And here is a script that takes a filename and sends that file to the " "server, properly preceded with the binary-encoded length, as the new logging " "configuration::" msgstr "" +"Et voici un script qui, à partir d’un nom de fichier, commence par envoyer " +"la taille du fichier encodée en binaire (comme il se doit), puis envoie ce " +"fichier au serveur pour définir la nouvelle configuration de " +"journalisation ::" -#: ../Doc/howto/logging-cookbook.rst:330 +#: howto/logging-cookbook.rst:330 msgid "Dealing with handlers that block" -msgstr "" +msgstr "Utilisation de gestionnaires bloquants" -#: ../Doc/howto/logging-cookbook.rst:334 +#: howto/logging-cookbook.rst:334 msgid "" "Sometimes you have to get your logging handlers to do their work without " "blocking the thread you're logging from. This is common in Web applications, " "though of course it also occurs in other scenarios." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:338 +#: howto/logging-cookbook.rst:338 msgid "" "A common culprit which demonstrates sluggish behaviour is the :class:" "`SMTPHandler`: sending emails can take a long time, for a number of reasons " @@ -180,8 +231,17 @@ msgid "" "which is too slow (and this query can be deep in the socket library code, " "below the Python layer, and outside your control)." msgstr "" +"Un gestionnaire classiquement lent est le :class:`SMTPHandler` : l’envoi d’e-" +"mails peut prendre beaucoup de temps, pour un certain nombre de raisons " +"indépendantes du développeur (par exemple, une infrastructure de messagerie " +"ou de réseau peu performante). Mais n’importe quel autre gestionnaire " +"utilisant le réseau ou presque peut aussi s’avérer bloquant : même une " +"simple opération :class:`SocketHandler` peut faire une requête DNS implicite " +"et être ainsi très lente (cette requête peut être enfouie profondément dans " +"le code de la bibliothèque d’accès réseau, sous la couche Python, et hors de " +"votre contrôle)." -#: ../Doc/howto/logging-cookbook.rst:346 +#: howto/logging-cookbook.rst:346 msgid "" "One solution is to use a two-part approach. For the first part, attach only " "a :class:`QueueHandler` to those loggers which are accessed from performance-" @@ -194,8 +254,20 @@ msgid "" "to attach only ``QueueHandlers`` to your loggers) for the benefit of other " "developers who will use your code." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:357 +"Une solution consiste à utiliser une approche en deux parties. Pour la " +"première partie, affectez un seul :class:`QueueHandler` à la journalisation " +"des fils d’exécution critiques pour les performances. Ils écrivent " +"simplement dans leur file d’attente, qui peut être dimensionnée à une " +"capacité suffisamment grande ou initialisée sans limite supérieure en " +"taille. L’écriture dans la file d’attente est généralement acceptée " +"rapidement, mais nous vous conseillons quand même de prévoir d’intercepter " +"l’exception :exc:`queue.Full` par précaution dans votre code. Si vous " +"développez une bibliothèque avec des fils d’exécution critiques pour les " +"performances, documentez-le bien (avec une suggestion de n’affecter que des " +"``QueueHandlers`` à votre journalisation) pour faciliter le travail des " +"développeurs qui utilisent votre code." + +#: howto/logging-cookbook.rst:357 msgid "" "The second part of the solution is :class:`QueueListener`, which has been " "designed as the counterpart to :class:`QueueHandler`. A :class:" @@ -205,8 +277,15 @@ msgid "" "matter). The ``LogRecords`` are removed from the queue and passed to the " "handlers for processing." msgstr "" +"La deuxième partie de la solution est la classe :class:`QueueListener`, " +"conçue comme l’homologue de :class:`QueueHandler`. Un :class:`QueueListener` " +"est très simple : vous lui passez une file d’attente et des gestionnaires, " +"et il lance un fil d’exécution interne qui scrute la file d’attente pour " +"récupérer les événements envoyés par les ``QueueHandlers`` (ou toute autre " +"source de ``LogRecords``, d’ailleurs). Les ``LogRecords`` sont supprimés de " +"la file d’attente et transmis aux gestionnaires pour traitement." -#: ../Doc/howto/logging-cookbook.rst:365 +#: howto/logging-cookbook.rst:365 msgid "" "The advantage of having a separate :class:`QueueListener` class is that you " "can use the same instance to service multiple ``QueueHandlers``. This is " @@ -214,16 +293,22 @@ msgid "" "handler classes, which would eat up one thread per handler for no particular " "benefit." msgstr "" +"L’avantage d’avoir une classe :class:`QueueListener` séparée est que vous " +"pouvez utiliser la même instance pour servir plusieurs ``QueueHandlers``. " +"Cela consomme moins de ressources que des instances de gestionnaires " +"réparties chacune dans un fil d’exécution séparé." -#: ../Doc/howto/logging-cookbook.rst:370 +#: howto/logging-cookbook.rst:370 msgid "An example of using these two classes follows (imports omitted)::" msgstr "" +"Voici un exemple d’utilisation de ces deux classes (les importations sont " +"omises) ::" -#: ../Doc/howto/logging-cookbook.rst:388 +#: howto/logging-cookbook.rst:388 msgid "which, when run, will produce:" -msgstr "" +msgstr "ce qui produit ceci à l’exécution :" -#: ../Doc/howto/logging-cookbook.rst:394 +#: howto/logging-cookbook.rst:394 msgid "" "Prior to Python 3.5, the :class:`QueueListener` always passed every message " "received from the queue to every handler it was initialized with. (This was " @@ -234,31 +319,47 @@ msgid "" "of each message with the handler's level, and only passes a message to a " "handler if it's appropriate to do so." msgstr "" +"avant Python 3.5, la classe :class:`QueueListener` passait chaque message " +"reçu de la file d’attente à chaque gestionnaire avec lequel l’instance avait " +"été initialisée (on supposait que le filtrage de niveau était entièrement " +"effectué de l’autre côté, au niveau de l’alimentation de la file d’attente). " +"Depuis Python 3.5, le comportement peut être modifié en passant l’argument " +"par mot-clé ``respect_handler_level=True`` au constructeur. Dans ce cas, la " +"``QueueListener`` compare le niveau de chaque message avec le niveau défini " +"dans chaque gestionnaire et ne transmet le message que si c’est opportun." -#: ../Doc/howto/logging-cookbook.rst:407 +#: howto/logging-cookbook.rst:407 msgid "Sending and receiving logging events across a network" -msgstr "" +msgstr "Envoi et réception d’événements de journalisation à travers le réseau" -#: ../Doc/howto/logging-cookbook.rst:409 +#: howto/logging-cookbook.rst:409 msgid "" "Let's say you want to send logging events across a network, and handle them " "at the receiving end. A simple way of doing this is attaching a :class:" "`SocketHandler` instance to the root logger at the sending end::" msgstr "" +"Supposons que vous souhaitiez envoyer des événements de journalisation sur " +"un réseau et les traiter à la réception. Une façon simple de faire est " +"d’attacher une instance :class:`SocketHandler` à la journalisation racine de " +"l’émetteur ::" -#: ../Doc/howto/logging-cookbook.rst:437 +#: howto/logging-cookbook.rst:437 msgid "" "At the receiving end, you can set up a receiver using the :mod:" "`socketserver` module. Here is a basic working example::" msgstr "" +"Vous pouvez configurer le récepteur en utilisant le module :mod:" +"`socketserver`. Voici un exemple élémentaire ::" -#: ../Doc/howto/logging-cookbook.rst:525 +#: howto/logging-cookbook.rst:525 msgid "" "First run the server, and then the client. On the client side, nothing is " "printed on the console; on the server side, you should see something like:" msgstr "" +"Lancez d’abord le serveur, puis le client. Côté client, rien ne s’affiche " +"sur la console ; côté serveur, vous devez voir quelque chose comme ça :" -#: ../Doc/howto/logging-cookbook.rst:537 +#: howto/logging-cookbook.rst:537 msgid "" "Note that there are some security issues with pickle in some scenarios. If " "these affect you, you can use an alternative serialization scheme by " @@ -266,12 +367,17 @@ msgid "" "implementing your alternative there, as well as adapting the above script to " "use your alternative serialization." msgstr "" +"Notez que ``pickle`` introduit des problèmes de sécurité dans certains " +"scénarios. Si vous êtes concerné, vous pouvez utiliser une sérialisation " +"alternative en surchargeant la méthode :meth:`~handlers.SocketHandler." +"makePickle` par votre propre implémentation, ainsi qu’en adaptant le script " +"ci-dessus pour utiliser votre sérialisation." -#: ../Doc/howto/logging-cookbook.rst:547 +#: howto/logging-cookbook.rst:547 msgid "Adding contextual information to your logging output" -msgstr "" +msgstr "Ajout d’informations contextuelles dans la journalisation" -#: ../Doc/howto/logging-cookbook.rst:549 +#: howto/logging-cookbook.rst:549 msgid "" "Sometimes you want logging output to contain contextual information in " "addition to the parameters passed to the logging call. For example, in a " @@ -286,12 +392,28 @@ msgid "" "logging an application, it could be hard to manage if the number of :class:" "`Logger` instances becomes effectively unbounded." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:564 +"Dans certains cas, vous pouvez souhaiter que la journalisation contienne des " +"informations contextuelles en plus des paramètres transmis à l’appel de " +"journalisation. Par exemple, dans une application réseau, il peut être " +"souhaitable de consigner des informations spécifiques au client dans le " +"journal (par exemple, le nom d’utilisateur ou l’adresse IP du client " +"distant). Bien que vous puissiez utiliser le paramètre *extra* pour y " +"parvenir, il n’est pas toujours pratique de transmettre les informations de " +"cette manière. Il peut être aussi tentant de créer des instances :class:" +"`Logger` connexion par connexion, mais ce n’est pas une bonne idée car ces " +"instances :class:`Logger` ne sont pas éliminées par le ramasse-miettes. Même " +"si ce point n’est pas problématique en soi si la journalisation est " +"configurée avec plusieurs niveaux de granularité, cela peut devenir " +"difficile de gérer un nombre potentiellement illimité d’instances de :class:" +"`Logger`." + +#: howto/logging-cookbook.rst:564 msgid "Using LoggerAdapters to impart contextual information" msgstr "" +"Utilisation d’adaptateurs de journalisation pour transmettre des " +"informations contextuelles" -#: ../Doc/howto/logging-cookbook.rst:566 +#: howto/logging-cookbook.rst:566 msgid "" "An easy way in which you can pass contextual information to be output along " "with logging event information is to use the :class:`LoggerAdapter` class. " @@ -301,8 +423,16 @@ msgid "" "signatures as their counterparts in :class:`Logger`, so you can use the two " "types of instances interchangeably." msgstr "" +"Un moyen simple de transmettre des informations contextuelles accompagnant " +"les informations de journalisation consiste à utiliser la classe :class:" +"`LoggerAdapter`. Cette classe est conçue pour ressembler à un :class:" +"`Logger`, de sorte que vous pouvez appeler :meth:`debug`, :meth:`info`, :" +"meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` et :meth:" +"`log`. Ces méthodes ont les mêmes signatures que leurs homologues dans :" +"class:`Logger`, vous pouvez donc utiliser les deux types d’instances de " +"manière interchangeable." -#: ../Doc/howto/logging-cookbook.rst:574 +#: howto/logging-cookbook.rst:574 msgid "" "When you create an instance of :class:`LoggerAdapter`, you pass it a :class:" "`Logger` instance and a dict-like object which contains your contextual " @@ -312,8 +442,15 @@ msgid "" "contextual information in the delegated call. Here's a snippet from the code " "of :class:`LoggerAdapter`::" msgstr "" +"Lorsque vous créez une instance de :class:`LoggerAdapter`, vous lui " +"transmettez une instance de :class:`Logger` et un objet dictionnaire qui " +"contient vos informations contextuelles. Lorsque vous appelez l’une des " +"méthodes de journalisation sur une instance de :class:`LoggerAdapter`, elle " +"délègue l’appel à l’instance sous-jacente de :class:`Logger` transmise à son " +"constructeur et s’arrange pour intégrer les informations contextuelles dans " +"l’appel délégué. Voici un extrait du code de :class:`LoggerAdapter` ::" -#: ../Doc/howto/logging-cookbook.rst:590 +#: howto/logging-cookbook.rst:590 msgid "" "The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " "the contextual information is added to the logging output. It's passed the " @@ -325,8 +462,17 @@ msgid "" "had passed an 'extra' keyword argument in the call to the adapter, it will " "be silently overwritten." msgstr "" +"Les informations contextuelles sont ajoutées dans la méthode :meth:" +"`~LoggerAdapter.process` de :class:`LoggerAdapter`. On lui passe le message " +"et les arguments par mot-clé de l’appel de journalisation, et elle en " +"renvoie des versions (potentiellement) modifiées à utiliser pour la " +"journalisation sous-jacente. L’implémentation par défaut de cette méthode " +"laisse le message seul, mais insère une clé ``extra`` dans l’argument par " +"mot-clé dont la valeur est l’objet dictionnaire passé au constructeur. Bien " +"sûr, si vous avez passé un argument par mot-clé ``extra`` dans l’appel à " +"l’adaptateur, il est écrasé silencieusement." -#: ../Doc/howto/logging-cookbook.rst:599 +#: howto/logging-cookbook.rst:599 msgid "" "The advantage of using 'extra' is that the values in the dict-like object " "are merged into the :class:`LogRecord` instance's __dict__, allowing you to " @@ -336,22 +482,35 @@ msgid "" "string, you just need to subclass :class:`LoggerAdapter` and override :meth:" "`~LoggerAdapter.process` to do what you need. Here is a simple example::" msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:615 +"L’avantage d’utiliser ``extra`` est que les valeurs de l’objet dictionnaire " +"sont fusionnées dans le ``__dict__`` de l’instance :class:`LogRecord`, ce " +"qui vous permet d’utiliser des chaînes personnalisées avec vos instances :" +"class:`Formatter` qui connaissent les clés de l’objet dictionnaire. Si vous " +"avez besoin d’une méthode différente, par exemple si vous souhaitez ajouter " +"des informations contextuelles avant ou après la chaîne de message, il vous " +"suffit de surcharger :class:`LoggerAdapter` et de remplacer :meth:" +"`~LoggerAdapter.process` pour faire ce dont vous avez besoin. Voici un " +"exemple simple ::" + +#: howto/logging-cookbook.rst:615 msgid "which you can use like this::" -msgstr "" +msgstr "que vous pouvez utiliser comme ceci ::" -#: ../Doc/howto/logging-cookbook.rst:620 +#: howto/logging-cookbook.rst:620 msgid "" "Then any events that you log to the adapter will have the value of " "``some_conn_id`` prepended to the log messages." msgstr "" +"Ainsi, tout événement journalisé aura la valeur de ``some_conn_id`` insérée " +"en début de message de journalisation." -#: ../Doc/howto/logging-cookbook.rst:624 +#: howto/logging-cookbook.rst:624 msgid "Using objects other than dicts to pass contextual information" msgstr "" +"Utilisation d’objets autres que les dictionnaires pour passer des " +"informations contextuelles" -#: ../Doc/howto/logging-cookbook.rst:626 +#: howto/logging-cookbook.rst:626 msgid "" "You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " "could pass an instance of a class which implements ``__getitem__`` and " @@ -359,12 +518,18 @@ msgid "" "if you want to generate values dynamically (whereas the values in a dict " "would be constant)." msgstr "" +"Il n’est pas obligatoire de passer un dictionnaire réel à un :class:" +"`LoggerAdapter`, vous pouvez passer une instance d’une classe qui implémente " +"``__getitem__`` et ``__iter__`` pour qu’il ressemble à un dictionnaire du " +"point de vue de la journalisation. C’est utile si vous souhaitez générer des " +"valeurs de manière dynamique (alors que les valeurs d’un dictionnaire " +"seraient constantes)." -#: ../Doc/howto/logging-cookbook.rst:635 +#: howto/logging-cookbook.rst:635 msgid "Using Filters to impart contextual information" -msgstr "" +msgstr "Utilisation de filtres pour transmettre des informations contextuelles" -#: ../Doc/howto/logging-cookbook.rst:637 +#: howto/logging-cookbook.rst:637 msgid "" "You can also add contextual information to log output using a user-defined :" "class:`Filter`. ``Filter`` instances are allowed to modify the " @@ -372,8 +537,14 @@ msgid "" "can then be output using a suitable format string, or if needed a custom :" "class:`Formatter`." msgstr "" +"Un :class:`Filter` défini par l’utilisateur peut aussi ajouter des " +"informations contextuelles à la journalisation. Les instances de ``Filter`` " +"sont autorisées à modifier les ``LogRecords`` qui leur sont transmis, y " +"compris par l’ajout d’attributs supplémentaires qui peuvent ensuite être " +"intégrés à la journalisation en utilisant une chaîne de formatage appropriée " +"ou, si nécessaire, un :class:`Formatter` personnalisé." -#: ../Doc/howto/logging-cookbook.rst:642 +#: howto/logging-cookbook.rst:642 msgid "" "For example in a web application, the request being processed (or at least, " "the interesting parts of it) can be stored in a threadlocal (:class:" @@ -384,16 +555,25 @@ msgid "" "format string can be used to get similar output to that shown above. Here's " "an example script::" msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:688 +"Par exemple, dans une application Web, la requête en cours de traitement (ou " +"du moins ce qu’elle contient d’intéressant) peut être stockée dans une " +"variable locale au fil d’exécution (:class:`threading.local`), puis utilisée " +"dans un ``Filter`` pour ajouter, par exemple, des informations relatives à " +"la requête (par exemple, l’adresse IP distante et le nom de l’utilisateur) " +"au ``LogRecord``, en utilisant les noms d’attribut ``ip`` et ``user`` comme " +"dans l’exemple ``LoggerAdapter`` ci-dessus. Dans ce cas, la même chaîne de " +"formatage peut être utilisée pour obtenir une sortie similaire à celle " +"indiquée ci-dessus. Voici un exemple de script ::" + +#: howto/logging-cookbook.rst:688 msgid "which, when run, produces something like:" -msgstr "" +msgstr "qui, à l’exécution, produit quelque chose comme ça ::" -#: ../Doc/howto/logging-cookbook.rst:709 +#: howto/logging-cookbook.rst:709 msgid "Logging to a single file from multiple processes" -msgstr "" +msgstr "Journalisation vers un fichier unique à partir de plusieurs processus" -#: ../Doc/howto/logging-cookbook.rst:711 +#: howto/logging-cookbook.rst:711 msgid "" "Although logging is thread-safe, and logging to a single file from multiple " "threads in a single process *is* supported, logging to a single file from " @@ -408,8 +588,22 @@ msgid "" "includes a working socket receiver which can be used as a starting point for " "you to adapt in your own applications." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:724 +"La journalisation est fiable avec les programmes à fils d’exécution " +"multiples (*thread-safe*) : rien n’empêche plusieurs fils d’exécution de " +"journaliser dans le même fichier, du moment que ces fils d’exécution font " +"partie du même processus. En revanche, il n’existe aucun moyen standard de " +"sérialiser l’accès à un seul fichier sur plusieurs processus en Python. Si " +"vous avez besoin de vous connecter à un seul fichier à partir de plusieurs " +"processus, une façon de le faire est de faire en sorte que tous les " +"processus se connectent à un :class:`~handlers.SocketHandler`, et d’avoir un " +"processus séparé qui implémente un serveur qui lit à partir de ce connecteur " +"et écrit les journaux dans le fichier (si vous préférez, vous pouvez dédier " +"un fil d’exécution dans l’un des processus existants pour exécuter cette " +"tâche). :ref:`Cette section ` documente cette approche plus " +"en détail et inclut un connecteur en écoute réseau fonctionnel qui peut être " +"utilisé comme point de départ pour l’adapter à vos propres applications." + +#: howto/logging-cookbook.rst:724 msgid "" "You could also write your own handler which uses the :class:" "`~multiprocessing.Lock` class from the :mod:`multiprocessing` module to " @@ -419,8 +613,16 @@ msgid "" "`multiprocessing` module does not provide working lock functionality on all " "platforms (see https://bugs.python.org/issue3770)." msgstr "" +"Vous pouvez également écrire votre propre gestionnaire en utilisant la " +"classe :class:`~multiprocessing.Lock` du module :mod:`multiprocessing` pour " +"sérialiser l’accès au fichier depuis vos processus. Les actuels :class:" +"`FileHandler` et sous-classes n’utilisent pas :mod:`multiprocessing` pour le " +"moment, même s’ils pourraient le faire à l’avenir. Notez qu’à l’heure " +"actuelle, le module :mod:`multiprocessing` ne fournit pas un verrouillage " +"fonctionnel pour toutes les plates-formes (voir https://bugs.python.org/" +"issue3770)." -#: ../Doc/howto/logging-cookbook.rst:734 +#: howto/logging-cookbook.rst:734 msgid "" "Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " "all logging events to one of the processes in your multi-process " @@ -434,14 +636,28 @@ msgid "" "application, and can be used as the basis for code meeting your own specific " "requirements::" msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:850 +"Autrement, vous pouvez utiliser une ``Queue`` et un :class:`QueueHandler` " +"pour envoyer tous les événements de journalisation à l’un des processus de " +"votre application multi-processus. L’exemple de script suivant montre " +"comment procéder ; dans l’exemple, un processus d’écoute distinct écoute les " +"événements envoyés par les autres processus et les journalise en fonction de " +"sa propre configuration de journalisation. Bien que l’exemple ne montre " +"qu’une seule façon de faire (par exemple, vous pouvez utiliser un fil " +"d’exécution d’écoute plutôt qu’un processus d’écoute séparé – " +"l’implémentation serait analogue), il permet des configurations de " +"journalisation complètement différentes pour celui qui écoute ainsi que pour " +"les autres processus de votre application, et peut être utilisé comme base " +"pour répondre à vos propres exigences ::" + +#: howto/logging-cookbook.rst:850 msgid "" "A variant of the above script keeps the logging in the main process, in a " "separate thread::" msgstr "" +"Une variante du script ci-dessus conserve la journalisation dans le " +"processus principal, dans un fil séparé ::" -#: ../Doc/howto/logging-cookbook.rst:945 +#: howto/logging-cookbook.rst:945 msgid "" "This variant shows how you can e.g. apply configuration for particular " "loggers - e.g. the ``foo`` logger has a special handler which stores all " @@ -450,35 +666,49 @@ msgid "" "events are generated in the worker processes) to direct the messages to the " "appropriate destinations." msgstr "" +"Cette variante montre comment appliquer la configuration pour des " +"enregistreurs particuliers – par exemple l’enregistreur ``foo`` a un " +"gestionnaire spécial qui stocke tous les événements du sous-système ``foo`` " +"dans un fichier ``mplog-foo.log``. C’est utilisé par le mécanisme de " +"journalisation dans le processus principal (même si les événements de " +"journalisation sont générés dans les processus de travail) pour diriger les " +"messages vers les destinations appropriées." -#: ../Doc/howto/logging-cookbook.rst:952 +#: howto/logging-cookbook.rst:952 msgid "Using concurrent.futures.ProcessPoolExecutor" -msgstr "" +msgstr "Utilisation de concurrent.futures.ProcessPoolExecutor" -#: ../Doc/howto/logging-cookbook.rst:954 +#: howto/logging-cookbook.rst:954 msgid "" "If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " "your worker processes, you need to create the queue slightly differently. " "Instead of" msgstr "" +"Si vous souhaitez utiliser :class:`concurrent.futures.ProcessPoolExecutor` " +"pour démarrer vos processus de travail, vous devez créer la file d’attente " +"légèrement différemment. À la place de" -#: ../Doc/howto/logging-cookbook.rst:962 +#: howto/logging-cookbook.rst:962 msgid "you should use" -msgstr "" +msgstr "vous devez écrire" -#: ../Doc/howto/logging-cookbook.rst:968 +#: howto/logging-cookbook.rst:968 msgid "and you can then replace the worker creation from this::" msgstr "" +"et vous pouvez alors remplacer la création du processus de travail telle " +"que ::" -#: ../Doc/howto/logging-cookbook.rst:979 +#: howto/logging-cookbook.rst:979 msgid "to this (remembering to first import :mod:`concurrent.futures`)::" msgstr "" +"par celle-ci (souvenez-vous d’importer au préalable :mod:`concurrent." +"futures`) ::" -#: ../Doc/howto/logging-cookbook.rst:987 +#: howto/logging-cookbook.rst:987 msgid "Using file rotation" -msgstr "" +msgstr "Utilisation du roulement de fichiers" -#: ../Doc/howto/logging-cookbook.rst:992 +#: howto/logging-cookbook.rst:992 msgid "" "Sometimes you want to let a log file grow to a certain size, then open a new " "file and log to that. You may want to keep a certain number of these files, " @@ -487,32 +717,48 @@ msgid "" "usage pattern, the logging package provides a :class:`~handlers." "RotatingFileHandler`::" msgstr "" +"Parfois, vous souhaitez laisser un fichier de journalisation grossir jusqu’à " +"une certaine taille, puis ouvrir un nouveau fichier et vous y enregistrer " +"les nouveaux événements. Vous souhaitez peut-être conserver un certain " +"nombre de ces fichiers et, lorsque ce nombre de fichiers aura été créé, " +"faire rouler les fichiers afin que le nombre de fichiers et la taille des " +"fichiers restent tous deux limités. Pour ce cas d’usage, :class:`~handlers." +"RotatingFileHandler` est inclus dans le paquet de journalisation ::" -#: ../Doc/howto/logging-cookbook.rst:1024 +#: howto/logging-cookbook.rst:1024 msgid "" "The result should be 6 separate files, each with part of the log history for " "the application:" msgstr "" +"Vous devez obtenir 6 fichiers séparés, chacun contenant une partie de " +"l’historique de journalisation de l’application :" -#: ../Doc/howto/logging-cookbook.rst:1036 +#: howto/logging-cookbook.rst:1036 msgid "" "The most current file is always :file:`logging_rotatingfile_example.out`, " "and each time it reaches the size limit it is renamed with the suffix " "``.1``. Each of the existing backup files is renamed to increment the suffix " "(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." msgstr "" +"Le fichier de journalisation actuel est toujours :file:" +"`logging_rotatingfile_example.out`, et chaque fois qu’il atteint la taille " +"limite, il est renommé avec le suffixe ``.1``. Chacun des fichiers de " +"sauvegarde existants est renommé pour incrémenter le suffixe (``.1`` devient " +"``.2``, etc.) et le fichier ``.6`` est effacé." -#: ../Doc/howto/logging-cookbook.rst:1041 +#: howto/logging-cookbook.rst:1041 msgid "" "Obviously this example sets the log length much too small as an extreme " "example. You would want to set *maxBytes* to an appropriate value." msgstr "" +"De toute évidence, la longueur du journal définie dans cet exemple est " +"beaucoup trop petite. À vous de définir *maxBytes* à une valeur appropriée." -#: ../Doc/howto/logging-cookbook.rst:1047 +#: howto/logging-cookbook.rst:1047 msgid "Use of alternative formatting styles" -msgstr "" +msgstr "Utilisation d’autres styles de formatage" -#: ../Doc/howto/logging-cookbook.rst:1049 +#: howto/logging-cookbook.rst:1049 msgid "" "When logging was added to the Python standard library, the only way of " "formatting messages with variable content was to use the %-formatting " @@ -520,8 +766,13 @@ msgid "" "`string.Template` (added in Python 2.4) and :meth:`str.format` (added in " "Python 2.6)." msgstr "" +"Lorsque la journalisation a été ajoutée à la bibliothèque standard Python, " +"la seule façon de formater les messages avec un contenu variable était " +"d’utiliser la méthode de formatage avec « % ». Depuis, Python s’est enrichi " +"de deux nouvelles méthode de formatage : :class:`string.Template` (ajouté " +"dans Python 2.4) et :meth:`str.format` (ajouté dans Python 2.6)." -#: ../Doc/howto/logging-cookbook.rst:1055 +#: howto/logging-cookbook.rst:1055 msgid "" "Logging (as of 3.2) provides improved support for these two additional " "formatting styles. The :class:`Formatter` class been enhanced to take an " @@ -533,15 +784,30 @@ msgid "" "meth:`str.format` or :class:`string.Template`. Here's an example console " "session to show the possibilities:" msgstr "" +"La journalisation (à partir de la version 3.2) offre une meilleure prise en " +"charge de ces deux styles de formatage supplémentaires. La classe :class:" +"`Formatter` a été améliorée pour accepter un paramètre par mot-clé " +"facultatif supplémentaire nommé ``style``. La valeur par défaut est ``'%'``, " +"les autres valeurs possibles étant ``'{'`` et ``'$'``, qui correspondent aux " +"deux autres styles de formatage. La rétrocompatibilité est maintenue par " +"défaut (comme vous vous en doutez) mais, en spécifiant explicitement un " +"paramètre de style, vous avez la possibilité de spécifier des chaînes de " +"format qui fonctionnent avec :meth:`str.format` ou :class:`string.Template`. " +"Voici un exemple de session interactive en console pour montrer les " +"possibilités :" -#: ../Doc/howto/logging-cookbook.rst:1089 +#: howto/logging-cookbook.rst:1089 msgid "" "Note that the formatting of logging messages for final output to logs is " "completely independent of how an individual logging message is constructed. " "That can still use %-formatting, as shown here::" msgstr "" +"Notez que le formatage des messages de journalisation est, au final, " +"complètement indépendant de la façon dont un message de journalisation " +"individuel est construit. Vous pouvez toujours utiliser formatage *via* " +"« % », comme ici ::" -#: ../Doc/howto/logging-cookbook.rst:1097 +#: howto/logging-cookbook.rst:1097 msgid "" "Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -556,8 +822,21 @@ msgid "" "logging calls which are out there in existing code will be using %-format " "strings." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:1110 +"Les appels de journalisation (``logger.debug()``, ``logger.info()`` etc.) ne " +"prennent que des paramètres positionnels pour le message de journalisation " +"lui-même, les paramètres par mots-clés étant utilisés uniquement pour " +"déterminer comment gérer le message réel (par exemple, le paramètre par mot-" +"clé ``exc_info`` indique que les informations de trace doivent être " +"enregistrées, ou le paramètre par mot-clé ``extra`` indique des informations " +"contextuelles supplémentaires à ajouter au journal). Vous ne pouvez donc pas " +"inclure dans les appels de journalisation à l’aide de la syntaxe :meth:`str." +"format` ou :class:`string.Template`, car le paquet de journalisation utilise " +"le formatage via « % » en interne pour fusionner la chaîne de format et les " +"arguments de variables. Il n’est pas possible de changer ça tout en " +"préservant la rétrocompatibilité puisque tous les appels de journalisation " +"dans le code pré-existant utilisent des chaînes au format « % »." + +#: howto/logging-cookbook.rst:1110 msgid "" "There is, however, a way that you can use {}- and $- formatting to construct " "your individual log messages. Recall that for a message you can use an " @@ -565,8 +844,13 @@ msgid "" "will call ``str()`` on that object to get the actual format string. Consider " "the following two classes::" msgstr "" +"Il existe cependant un moyen d’utiliser le formatage *via* « {} » et « $ » " +"pour vos messages de journalisation. Rappelez-vous que, pour un message, " +"vous pouvez utiliser un objet arbitraire comme chaîne de format de message, " +"et que le package de journalisation appelle ``str()`` sur cet objet pour " +"fabriquer la chaîne finale. Considérez les deux classes suivantes ::" -#: ../Doc/howto/logging-cookbook.rst:1134 +#: howto/logging-cookbook.rst:1134 msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" "formatting to be used to build the actual \"message\" part which appears in " @@ -576,22 +860,37 @@ msgid "" "__ (double underscore --- not to be confused with _, the single underscore " "used as a synonym/alias for :func:`gettext.gettext` or its brethren)." msgstr "" +"L’une ou l’autre peut être utilisée à la place d’une chaîne de format " +"\"%(message)s\" ou \"{message}\" ou \"$message\", afin de mettre en forme " +"*via* « { } » ou « $ » la partie « message réel » qui apparaît dans la " +"sortie de journal formatée. Il est un peu lourd d’utiliser les noms de " +"classe chaque fois que vous voulez journaliser quelque chose, mais ça " +"devient acceptable si vous utilisez un alias tel que __ (double trait de " +"soulignement — à ne pas confondre avec _, le trait de soulignement unique " +"utilisé comme alias pour :func:`gettext.gettext` ou ses homologues)." -#: ../Doc/howto/logging-cookbook.rst:1142 +#: howto/logging-cookbook.rst:1142 msgid "" "The above classes are not included in Python, though they're easy enough to " "copy and paste into your own code. They can be used as follows (assuming " "that they're declared in a module called ``wherever``):" msgstr "" +"Les classes ci-dessus ne sont pas incluses dans Python, bien qu’elles soient " +"assez faciles à copier et coller dans votre propre code. Elles peuvent être " +"utilisées comme suit (en supposant qu’elles soient déclarées dans un module " +"appelé ``wherever``) :" -#: ../Doc/howto/logging-cookbook.rst:1164 +#: howto/logging-cookbook.rst:1164 msgid "" "While the above examples use ``print()`` to show how the formatting works, " "you would of course use ``logger.debug()`` or similar to actually log using " "this approach." msgstr "" +"Alors que les exemples ci-dessus utilisent ``print()`` pour montrer comment " +"fonctionne le formatage, utilisez bien sûr ``logger.debug()`` ou similaire " +"pour journaliser avec cette approche." -#: ../Doc/howto/logging-cookbook.rst:1168 +#: howto/logging-cookbook.rst:1168 msgid "" "One thing to note is that you pay no significant performance penalty with " "this approach: the actual formatting happens not when you make the logging " @@ -601,24 +900,37 @@ msgid "" "not just the format string. That's because the __ notation is just syntax " "sugar for a constructor call to one of the XXXMessage classes." msgstr "" +"Une chose à noter est qu’il n’y a pas de perte de performance significative " +"avec cette approche : le formatage réel ne se produit pas lorsque vous " +"effectuez l’appel de journalisation, mais lorsque (et si) le message " +"journalisé est réellement sur le point d’être écrit dans un journal par un " +"gestionnaire. Ainsi, la seule chose légèrement inhabituelle qui pourrait " +"vous perturber est que les parenthèses entourent la chaîne de format et les " +"arguments, pas seulement la chaîne de format. C’est parce que la notation __ " +"n’est que du sucre syntaxique pour un appel de constructeur à l’une des " +"classes ``XXXMessage``." -#: ../Doc/howto/logging-cookbook.rst:1176 +#: howto/logging-cookbook.rst:1176 msgid "" "If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " "effect to the above, as in the following example::" msgstr "" +"Si vous préférez, vous pouvez utiliser un :class:`LoggerAdapter` pour " +"obtenir un effet similaire à ce qui précède, comme dans l’exemple suivant ::" -#: ../Doc/howto/logging-cookbook.rst:1207 +#: howto/logging-cookbook.rst:1207 msgid "" "The above script should log the message ``Hello, world!`` when run with " "Python 3.2 or later." msgstr "" +"Le script ci-dessus journalise le message ``Hello, world!`` quand il est " +"lancé avec Python 3.2 ou ultérieur." -#: ../Doc/howto/logging-cookbook.rst:1216 +#: howto/logging-cookbook.rst:1216 msgid "Customizing ``LogRecord``" -msgstr "" +msgstr "Personnalisation de ``LogRecord``" -#: ../Doc/howto/logging-cookbook.rst:1218 +#: howto/logging-cookbook.rst:1218 msgid "" "Every logging event is represented by a :class:`LogRecord` instance. When an " "event is logged and not filtered out by a logger's level, a :class:" @@ -628,14 +940,24 @@ msgid "" "disabled). Before Python 3.2, there were only two places where this creation " "was done:" msgstr "" +"Chaque événement de journalisation est représenté par une instance :class:" +"`LogRecord`. Lorsqu’un événement est enregistré et non filtré en raison du " +"niveau d’un enregistreur, un :class:`LogRecord` est créé, rempli avec les " +"informations de l’événement, puis transmis aux gestionnaires de cet " +"enregistreur (et ses ancêtres, jusqu’à et y compris l’enregistreur où la " +"propagation vers le haut de la hiérarchie est désactivée). Avant Python 3.2, " +"il n’y avait que deux endroits où cette création était effectuée :" -#: ../Doc/howto/logging-cookbook.rst:1225 +#: howto/logging-cookbook.rst:1225 msgid "" ":meth:`Logger.makeRecord`, which is called in the normal process of logging " "an event. This invoked :class:`LogRecord` directly to create an instance." msgstr "" +":meth:`Logger.makeRecord`, qui est appelée dans le processus normal de " +"journalisation d’un événement. Elle appelait :class:`LogRecord` directement " +"pour créer une instance." -#: ../Doc/howto/logging-cookbook.rst:1228 +#: howto/logging-cookbook.rst:1228 msgid "" ":func:`makeLogRecord`, which is called with a dictionary containing " "attributes to be added to the LogRecord. This is typically invoked when a " @@ -643,36 +965,54 @@ msgid "" "via a :class:`~handlers.SocketHandler`, or in JSON form via an :class:" "`~handlers.HTTPHandler`)." msgstr "" +":func:`makeLogRecord`, qui est appelée avec un dictionnaire contenant des " +"attributs à ajouter au *LogRecord*. Elle est généralement invoquée lorsqu’un " +"dictionnaire approprié a été reçu par le réseau (par exemple, sous forme de " +"*pickle* *via* un :class:`~handlers.SocketHandler`, ou sous format JSON " +"*via* un :class:`~handlers.HTTPHandler`)." -#: ../Doc/howto/logging-cookbook.rst:1234 +#: howto/logging-cookbook.rst:1234 msgid "" "This has usually meant that if you need to do anything special with a :class:" "`LogRecord`, you've had to do one of the following." msgstr "" +"Cela signifiait généralement que, si vous deviez faire quelque chose de " +"spécial avec un :class:`LogRecord`, vous deviez faire l’une des choses " +"suivantes." -#: ../Doc/howto/logging-cookbook.rst:1237 +#: howto/logging-cookbook.rst:1237 msgid "" "Create your own :class:`Logger` subclass, which overrides :meth:`Logger." "makeRecord`, and set it using :func:`~logging.setLoggerClass` before any " "loggers that you care about are instantiated." msgstr "" +"Créer votre propre sous-classe :class:`Logger`, surchargeant :meth:`Logger." +"makeRecord`, et la personnaliser à l’aide de :func:`~logging.setLoggerClass` " +"avant que les enregistreurs qui vous intéressaient ne soient instanciés." -#: ../Doc/howto/logging-cookbook.rst:1240 +#: howto/logging-cookbook.rst:1240 msgid "" "Add a :class:`Filter` to a logger or handler, which does the necessary " "special manipulation you need when its :meth:`~Filter.filter` method is " "called." msgstr "" +"Ajouter un :class:`Filter` à un enregistreur ou un gestionnaire, qui " +"effectuait la manipulation spéciale nécessaire dont vous aviez besoin " +"lorsque sa méthode :meth:`~Filter.filter` était appelée." -#: ../Doc/howto/logging-cookbook.rst:1244 +#: howto/logging-cookbook.rst:1244 msgid "" "The first approach would be a little unwieldy in the scenario where (say) " "several different libraries wanted to do different things. Each would " "attempt to set its own :class:`Logger` subclass, and the one which did this " "last would win." msgstr "" +"La première approche est un peu lourde dans le scénario où (disons) " +"plusieurs bibliothèques différentes veulent faire des choses différentes. " +"Chacun essaie de définir sa propre sous-classe :class:`Logger`, et celui qui " +"l’a fait en dernier gagne." -#: ../Doc/howto/logging-cookbook.rst:1249 +#: howto/logging-cookbook.rst:1249 msgid "" "The second approach works reasonably well for many cases, but does not allow " "you to e.g. use a specialized subclass of :class:`LogRecord`. Library " @@ -680,8 +1020,14 @@ msgid "" "to remember to do this every time they introduced a new logger (which they " "would do simply by adding new packages or modules and doing ::" msgstr "" +"La seconde approche fonctionne raisonnablement bien dans de nombreux cas, " +"mais ne vous permet pas, par exemple, d’utiliser une sous-classe spécialisée " +"de :class:`LogRecord`. Les développeurs de bibliothèques peuvent définir un " +"filtre approprié sur leurs enregistreurs, mais ils doivent se rappeler de le " +"faire chaque fois qu’ils introduisent un nouvel enregistreur (ce qu’ils font " +"simplement en ajoutant de nouveaux paquets ou modules et en écrivant ::" -#: ../Doc/howto/logging-cookbook.rst:1257 +#: howto/logging-cookbook.rst:1257 msgid "" "at module level). It's probably one too many things to think about. " "Developers could also add the filter to a :class:`~logging.NullHandler` " @@ -690,8 +1036,15 @@ msgid "" "so output from that handler would not reflect the intentions of the library " "developer." msgstr "" +"au niveau des modules). C’est probablement trop de choses auxquelles penser. " +"Les développeurs pourraient également ajouter le filtre à un :class:" +"`~logging.NullHandler` attaché à leur enregistreur de niveau supérieur, mais " +"cela ne serait pas invoqué si un développeur d’application attachait un " +"gestionnaire à un enregistreur de bibliothèque de niveau inférieur — donc la " +"sortie de ce gestionnaire ne refléterait pas les intentions du développeur " +"de la bibliothèque." -#: ../Doc/howto/logging-cookbook.rst:1263 +#: howto/logging-cookbook.rst:1263 msgid "" "In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " "through a factory, which you can specify. The factory is just a callable you " @@ -700,16 +1053,27 @@ msgid "" "signature as the :class:`~logging.LogRecord` constructor, as :class:" "`LogRecord` is the default setting for the factory." msgstr "" +"Dans Python 3.2 et ultérieurs, la création de :class:`~logging.LogRecord` " +"est effectuée via une fabrique, que vous pouvez spécifier. La fabrique est " +"juste un appelable que vous pouvez définir avec :func:`~logging." +"setLogRecordFactory`, et interroger avec :func:`~logging." +"getLogRecordFactory`. La fabrique est invoquée avec la même signature que le " +"constructeur :class:`~logging.LogRecord`, car :class:`LogRecord` est le " +"paramètre par défaut de la fabrique." -#: ../Doc/howto/logging-cookbook.rst:1270 +#: howto/logging-cookbook.rst:1270 msgid "" "This approach allows a custom factory to control all aspects of LogRecord " "creation. For example, you could return a subclass, or just add some " "additional attributes to the record once created, using a pattern similar to " "this::" msgstr "" +"Cette approche permet à une fabrique personnalisée de contrôler tous les " +"aspects de la création d’un *LogRecord*. Par exemple, vous pouvez renvoyer " +"une sous-classe ou simplement ajouter des attributs supplémentaires à " +"l’enregistrement une fois créé, en utilisant un modèle similaire à celui-ci :" -#: ../Doc/howto/logging-cookbook.rst:1283 +#: howto/logging-cookbook.rst:1283 msgid "" "This pattern allows different libraries to chain factories together, and as " "long as they don't overwrite each other's attributes or unintentionally " @@ -718,115 +1082,151 @@ msgid "" "time overhead to all logging operations, and the technique should only be " "used when the use of a :class:`Filter` does not provide the desired result." msgstr "" +"Ce modèle permet à différentes bibliothèques d’enchaîner des fabriques, et " +"tant qu’elles n’écrasent pas les attributs des autres ou n’écrasent pas " +"involontairement les attributs fournis en standard, il ne devrait pas y " +"avoir de surprise. Cependant, il faut garder à l’esprit que chaque maillon " +"de la chaîne ajoute une surcharge d’exécution à toutes les opérations de " +"journalisation, et la technique ne doit être utilisée que lorsque " +"l’utilisation d’un :class:`Filter` ne permet pas d’obtenir le résultat " +"souhaité." -#: ../Doc/howto/logging-cookbook.rst:1294 +#: howto/logging-cookbook.rst:1294 msgid "Subclassing QueueHandler - a ZeroMQ example" -msgstr "" +msgstr "Dérivation de *QueueHandler* – un exemple de *ZeroMQ*" -#: ../Doc/howto/logging-cookbook.rst:1296 +#: howto/logging-cookbook.rst:1296 msgid "" "You can use a :class:`QueueHandler` subclass to send messages to other kinds " "of queues, for example a ZeroMQ 'publish' socket. In the example below,the " "socket is created separately and passed to the handler (as its 'queue')::" msgstr "" +"Vous pouvez utiliser une sous-classe :class:`QueueHandler` pour envoyer des " +"messages à d’autres types de files d’attente, par exemple un connecteur " +"*ZeroMQ publish*. Dans l’exemple ci-dessous, le connecteur est créé " +"séparément et transmis au gestionnaire (en tant que file d’attente) ::" -#: ../Doc/howto/logging-cookbook.rst:1315 +#: howto/logging-cookbook.rst:1315 msgid "" "Of course there are other ways of organizing this, for example passing in " "the data needed by the handler to create the socket::" msgstr "" +"Bien sûr, il existe d’autres manières de faire, par exemple en transmettant " +"les données nécessaires au gestionnaire pour créer le connecteur ::" -#: ../Doc/howto/logging-cookbook.rst:1333 +#: howto/logging-cookbook.rst:1333 msgid "Subclassing QueueListener - a ZeroMQ example" -msgstr "" +msgstr "Dérivation de *QueueListener* – un exemple de *ZeroMQ*" -#: ../Doc/howto/logging-cookbook.rst:1335 +#: howto/logging-cookbook.rst:1335 msgid "" "You can also subclass :class:`QueueListener` to get messages from other " "kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" msgstr "" +"Vous pouvez également dériver :class:`QueueListener` pour obtenir des " +"messages d’autres types de files d’attente, par exemple un connecteur " +"*ZeroMQ subscribe*. Voici un exemple ::" -#: ../Doc/howto/logging-cookbook.rst:1354 +#: howto/logging-cookbook.rst:1354 msgid "Module :mod:`logging`" msgstr "Module :mod:`logging`" -#: ../Doc/howto/logging-cookbook.rst:1354 +#: howto/logging-cookbook.rst:1354 msgid "API reference for the logging module." msgstr "Référence d'API pour le module de journalisation." -#: ../Doc/howto/logging-cookbook.rst:1357 +#: howto/logging-cookbook.rst:1357 msgid "Module :mod:`logging.config`" msgstr "Module :mod:`logging.config`" -#: ../Doc/howto/logging-cookbook.rst:1357 +#: howto/logging-cookbook.rst:1357 msgid "Configuration API for the logging module." msgstr "API de configuration pour le module de journalisation." -#: ../Doc/howto/logging-cookbook.rst:1360 +#: howto/logging-cookbook.rst:1360 msgid "Module :mod:`logging.handlers`" msgstr "Module :mod:`logging.handlers`" -#: ../Doc/howto/logging-cookbook.rst:1360 +#: howto/logging-cookbook.rst:1360 msgid "Useful handlers included with the logging module." msgstr "Gestionnaires utiles inclus avec le module de journalisation." -#: ../Doc/howto/logging-cookbook.rst:1362 +#: howto/logging-cookbook.rst:1362 msgid ":ref:`A basic logging tutorial `" msgstr "" +":ref:`Les bases de l’utilisation du module de journalisation `" -#: ../Doc/howto/logging-cookbook.rst:1364 +#: howto/logging-cookbook.rst:1364 msgid ":ref:`A more advanced logging tutorial `" msgstr "" +":ref:`Utilisation avancée du module de journalisation `" -#: ../Doc/howto/logging-cookbook.rst:1368 +#: howto/logging-cookbook.rst:1368 msgid "An example dictionary-based configuration" -msgstr "" +msgstr "Exemple de configuration basée sur un dictionnaire" -#: ../Doc/howto/logging-cookbook.rst:1370 +#: howto/logging-cookbook.rst:1370 msgid "" "Below is an example of a logging configuration dictionary - it's taken from " -"the `documentation on the Django project `_. This dictionary is passed to :" +"the `documentation on the Django project `_. This dictionary is passed to :" "func:`~config.dictConfig` to put the configuration into effect::" msgstr "" +"Vous trouverez ci-dessous un exemple de dictionnaire de configuration de " +"journalisation ­– il est tiré de la `documentation du projet Django `_. Ce " +"dictionnaire est passé à :func:`~config.dictConfig` pour activer la " +"configuration ::" -#: ../Doc/howto/logging-cookbook.rst:1426 +#: howto/logging-cookbook.rst:1426 msgid "" "For more information about this configuration, you can see the `relevant " -"section `_ of the Django documentation." +"section `_ of the Django documentation." msgstr "" +"Pour plus d’informations sur cette configuration, vous pouvez consulter la " +"`section correspondante `_ de la documentation de *Django*." -#: ../Doc/howto/logging-cookbook.rst:1433 +#: howto/logging-cookbook.rst:1433 msgid "Using a rotator and namer to customize log rotation processing" msgstr "" +"Utilisation d’un rotateur et d’un nom pour personnaliser la rotation des " +"journaux" -#: ../Doc/howto/logging-cookbook.rst:1435 +#: howto/logging-cookbook.rst:1435 msgid "" "An example of how you can define a namer and rotator is given in the " "following snippet, which shows zlib-based compression of the log file::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1453 +#: howto/logging-cookbook.rst:1453 msgid "" "These are not \"true\" .gz files, as they are bare compressed data, with no " "\"container\" such as you’d find in an actual gzip file. This snippet is " "just for illustration purposes." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1458 +#: howto/logging-cookbook.rst:1458 msgid "A more elaborate multiprocessing example" -msgstr "" +msgstr "Exemple plus élaboré avec traitement en parallèle" -#: ../Doc/howto/logging-cookbook.rst:1460 +#: howto/logging-cookbook.rst:1460 msgid "" "The following working example shows how logging can be used with " "multiprocessing using configuration files. The configurations are fairly " "simple, but serve to illustrate how more complex ones could be implemented " "in a real multiprocessing scenario." msgstr "" +"L’exemple suivant que nous allons étudier montre comment la journalisation " +"peut être utilisée, à l’aide de fichiers de configuration, pour un programme " +"effectuant des traitements parallèles. Les configurations sont assez " +"simples, mais servent à illustrer comment des configurations plus complexes " +"pourraient être implémentées dans un scénario multi-processus réel." -#: ../Doc/howto/logging-cookbook.rst:1465 +#: howto/logging-cookbook.rst:1465 msgid "" "In the example, the main process spawns a listener process and some worker " "processes. Each of the main process, the listener and the workers have three " @@ -838,18 +1238,32 @@ msgid "" "purely illustrative, but you should be able to adapt this example to your " "own scenario." msgstr "" - -#: ../Doc/howto/logging-cookbook.rst:1475 +"Dans l’exemple, le processus principal génère un processus d’écoute et des " +"processus de travail. Chacun des processus, le principal, l’auditeur " +"(*listener_process* dans l’exemple) et les processus de travail " +"(*worker_process* dans l’exemple) ont trois configurations distinctes (les " +"processus de travail partagent tous la même configuration). Nous pouvons " +"voir la journalisation dans le processus principal, comment les processus de " +"travail se connectent à un *QueueHandler* et comment l’auditeur implémente " +"un *QueueListener* avec une configuration de journalisation plus complexe, " +"et s’arrange pour envoyer les événements reçus *via* la file d’attente aux " +"gestionnaires spécifiés dans la configuration. Notez que ces configurations " +"sont purement illustratives, mais vous devriez pouvoir adapter cet exemple à " +"votre propre scénario." + +#: howto/logging-cookbook.rst:1475 msgid "" "Here's the script - the docstrings and the comments hopefully explain how it " "works::" msgstr "" +"Voici le script – les chaines de documentation et les commentaires " +"expliquent (en anglais), le principe de fonctionnement ::" -#: ../Doc/howto/logging-cookbook.rst:1687 +#: howto/logging-cookbook.rst:1687 msgid "Inserting a BOM into messages sent to a SysLogHandler" -msgstr "" +msgstr "Insertion d’une *BOM* dans les messages envoyés à un *SysLogHandler*" -#: ../Doc/howto/logging-cookbook.rst:1689 +#: howto/logging-cookbook.rst:1689 msgid "" ":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " "set of bytes which have the following structure: an optional pure-ASCII " @@ -857,16 +1271,25 @@ msgid "" "encoded using UTF-8. (See the :rfc:`relevant section of the specification " "<5424#section-6>`.)" msgstr "" +"La :rfc:`5424` requiert qu’un message Unicode soit envoyé à un démon " +"*syslog* sous la forme d’un ensemble d’octets ayant la structure suivante : " +"un composant ASCII pur facultatif, suivi d’une marque d’ordre d’octet (*BOM* " +"pour *Byte Order Mark* en anglais) UTF-8, suivie de contenu Unicode UTF-8 " +"(voir la :rfc:`la spécification correspondante <5424#section-6>`)." -#: ../Doc/howto/logging-cookbook.rst:1695 +#: howto/logging-cookbook.rst:1695 msgid "" "In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " "insert a BOM into the message, but unfortunately, it was implemented " "incorrectly, with the BOM appearing at the beginning of the message and " "hence not allowing any pure-ASCII component to appear before it." msgstr "" +"Dans Python 3.1, du code a été ajouté à :class:`~logging.handlers." +"SysLogHandler` pour insérer une *BOM* dans le message mais, malheureusement, " +"il a été implémenté de manière incorrecte, la *BOM* apparaissant au début du " +"message et n’autorisant donc aucun composant ASCII pur à être placé devant." -#: ../Doc/howto/logging-cookbook.rst:1701 +#: howto/logging-cookbook.rst:1701 msgid "" "As this behaviour is broken, the incorrect BOM insertion code is being " "removed from Python 3.2.4 and later. However, it is not being replaced, and " @@ -874,34 +1297,51 @@ msgid "" "an optional pure-ASCII sequence before it and arbitrary Unicode after it, " "encoded using UTF-8, then you need to do the following:" msgstr "" +"Comme ce comportement est inadéquat, le code incorrect d’insertion de la " +"*BOM* a été supprimé de Python 3.2.4 et ultérieurs. Cependant, il n’est pas " +"remplacé et, si vous voulez produire des messages conformes :rfc:`5424` qui " +"incluent une *BOM*, une séquence facultative en ASCII pur avant et un " +"Unicode arbitraire après, encodé en UTF-8, alors vous devez appliquer ce qui " +"suit :" -#: ../Doc/howto/logging-cookbook.rst:1707 +#: howto/logging-cookbook.rst:1707 msgid "" "Attach a :class:`~logging.Formatter` instance to your :class:`~logging." "handlers.SysLogHandler` instance, with a format string such as::" msgstr "" +"Adjoignez une instance :class:`~logging.Formatter` à votre instance :class:" +"`~logging.handlers.SysLogHandler`, avec une chaîne de format telle que ::" -#: ../Doc/howto/logging-cookbook.rst:1713 +#: howto/logging-cookbook.rst:1713 msgid "" "The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " "a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." msgstr "" +"Le point de code Unicode U+FEFF, lorsqu’il est encodé en UTF-8, est encodé " +"comme une *BOM* UTF-8 – la chaîne d’octets ``b'\\xef\\xbb\\xbf'``." -#: ../Doc/howto/logging-cookbook.rst:1716 +#: howto/logging-cookbook.rst:1716 msgid "" "Replace the ASCII section with whatever placeholders you like, but make sure " "that the data that appears in there after substitution is always ASCII (that " "way, it will remain unchanged after UTF-8 encoding)." msgstr "" +"Remplacez la section ASCII par les caractères de votre choix, mais assurez-" +"vous que les données qui y apparaissent après la substitution sont toujours " +"ASCII (ainsi elles resteront inchangées après l’encodage UTF-8)." -#: ../Doc/howto/logging-cookbook.rst:1720 +#: howto/logging-cookbook.rst:1720 msgid "" "Replace the Unicode section with whatever placeholders you like; if the data " "which appears there after substitution contains characters outside the ASCII " "range, that's fine -- it will be encoded using UTF-8." msgstr "" +"Remplacez la section Unicode par le contenu de votre choix ; si les données " +"qui y apparaissent après la substitution contiennent des caractères en " +"dehors de la plage ASCII, c’est pris en charge – elles seront encodées en " +"UTF-8." -#: ../Doc/howto/logging-cookbook.rst:1724 +#: howto/logging-cookbook.rst:1724 msgid "" "The formatted message *will* be encoded using UTF-8 encoding by " "``SysLogHandler``. If you follow the above rules, you should be able to " @@ -909,12 +1349,17 @@ msgid "" "complain, but your messages will not be RFC 5424-compliant, and your syslog " "daemon may complain." msgstr "" +"Le message formaté *sera* encodé en UTF-8 par ``SysLogHandler``. Si vous " +"suivez les règles ci-dessus, vous devriez pouvoir produire des messages " +"conformes à la :rfc:`5424`. Si vous ne le faites pas, la journalisation ne " +"se plaindra peut-être pas, mais vos messages ne seront pas conformes à la " +"RFC 5424 et votre démon *syslog* est susceptible de se plaindre." -#: ../Doc/howto/logging-cookbook.rst:1731 +#: howto/logging-cookbook.rst:1731 msgid "Implementing structured logging" -msgstr "" +msgstr "Journalisation structurée" -#: ../Doc/howto/logging-cookbook.rst:1733 +#: howto/logging-cookbook.rst:1733 msgid "" "Although most logging messages are intended for reading by humans, and thus " "not readily machine-parseable, there might be circumstances where you want " @@ -925,33 +1370,44 @@ msgid "" "following is a simple approach which uses JSON to serialise the event in a " "machine-parseable manner::" msgstr "" +"Bien que la plupart des messages de journalisation soient destinés à être " +"lus par des humains, et donc difficilement analysables par la machine, il " +"peut arriver que vous souhaitiez produire des messages dans un format " +"structuré dans le but d’être analysé par un programme (sans avoir besoin " +"d’expressions régulières complexes pour analyser le message du journal). " +"C’est simple à réaliser en utilisant le paquet de journalisation. Il existe " +"plusieurs façons d’y parvenir et voici une approche simple qui utilise JSON " +"pour sérialiser l’événement de manière à être analysable par une machine ::" -#: ../Doc/howto/logging-cookbook.rst:1757 +#: howto/logging-cookbook.rst:1757 msgid "If the above script is run, it prints:" -msgstr "" +msgstr "Si vous lancez le script ci-dessus, il imprime :" -#: ../Doc/howto/logging-cookbook.rst:1763 -#: ../Doc/howto/logging-cookbook.rst:1812 +#: howto/logging-cookbook.rst:1763 howto/logging-cookbook.rst:1812 msgid "" "Note that the order of items might be different according to the version of " "Python used." msgstr "" +"Notez que l’ordre des éléments peut être différent en fonction de la version " +"de Python utilisée." -#: ../Doc/howto/logging-cookbook.rst:1766 +#: howto/logging-cookbook.rst:1766 msgid "" "If you need more specialised processing, you can use a custom JSON encoder, " "as in the following complete example::" msgstr "" +"Si vous avez besoin d’un traitement plus spécifique, vous pouvez utiliser un " +"encodeur JSON personnalisé, comme dans l’exemple complet suivant :" -#: ../Doc/howto/logging-cookbook.rst:1806 +#: howto/logging-cookbook.rst:1806 msgid "When the above script is run, it prints:" -msgstr "" +msgstr "Quand vous exécutez le script ci-dessus, il imprime :" -#: ../Doc/howto/logging-cookbook.rst:1821 +#: howto/logging-cookbook.rst:1821 msgid "Customizing handlers with :func:`dictConfig`" -msgstr "" +msgstr "Personnalisation des gestionnaires avec :func:`dictConfig`" -#: ../Doc/howto/logging-cookbook.rst:1823 +#: howto/logging-cookbook.rst:1823 msgid "" "There are times when you want to customize logging handlers in particular " "ways, and if you use :func:`dictConfig` you may be able to do this without " @@ -960,25 +1416,40 @@ msgid "" "the file handlers in the stdlib don't offer built-in support. You can " "customize handler creation using a plain function such as::" msgstr "" +"Il arrive de souhaiter personnaliser les gestionnaires de journalisation " +"d’une manière particulière et, en utilisant :func:`dictConfig`, vous pourrez " +"peut-être le faire sans avoir à dériver les classes mères. Par exemple, " +"supposons que vous souhaitiez définir le propriétaire d’un fichier journal. " +"Dans un environnement POSIX, cela se fait facilement en utilisant :func:" +"`shutil.chown`, mais les gestionnaires de fichiers de la bibliothèque " +"standard n’offrent pas cette gestion nativement. Vous pouvez personnaliser " +"la création du gestionnaire à l’aide d’une fonction simple telle que ::" -#: ../Doc/howto/logging-cookbook.rst:1837 +#: howto/logging-cookbook.rst:1837 msgid "" "You can then specify, in a logging configuration passed to :func:" "`dictConfig`, that a logging handler be created by calling this function::" msgstr "" +"Vous pouvez ensuite spécifier, dans une configuration de journalisation " +"transmise à :func:`dictConfig`, qu’un gestionnaire de journalisation soit " +"créé en appelant cette fonction ::" -#: ../Doc/howto/logging-cookbook.rst:1870 +#: howto/logging-cookbook.rst:1870 msgid "" "In this example I am setting the ownership using the ``pulse`` user and " "group, just for the purposes of illustration. Putting it together into a " "working script, ``chowntest.py``::" msgstr "" +"Dans cet exemple, nous définissons le propriétaire à l’utilisateur et au " +"groupe ``pulse``, uniquement à des fins d’illustration. Rassemblons le tout " +"dans un script ``chowntest.py`` ::" -#: ../Doc/howto/logging-cookbook.rst:1917 +#: howto/logging-cookbook.rst:1917 msgid "To run this, you will probably need to run as ``root``:" msgstr "" +"Pour l’exécuter, vous devrez probablement le faire en tant que ``root`` :" -#: ../Doc/howto/logging-cookbook.rst:1927 +#: howto/logging-cookbook.rst:1927 msgid "" "Note that this example uses Python 3.3 because that's where :func:`shutil." "chown` makes an appearance. This approach should work with any Python " @@ -986,44 +1457,65 @@ msgid "" "With pre-3.3 versions, you would need to implement the actual ownership " "change using e.g. :func:`os.chown`." msgstr "" +"Notez que cet exemple utilise Python 3.3 car c’est là que :func:`shutil." +"chown` fait son apparition. Cette approche devrait fonctionner avec " +"n’importe quelle version de Python prenant en charge :func:`dictConfig` – à " +"savoir, Python 2.7, 3.2 ou version ultérieure. Avec les versions antérieures " +"à la 3.3, vous devrez implémenter le changement de propriétaire réel en " +"utilisant par exemple :func:`os.chown`." -#: ../Doc/howto/logging-cookbook.rst:1933 +#: howto/logging-cookbook.rst:1933 msgid "" "In practice, the handler-creating function may be in a utility module " "somewhere in your project. Instead of the line in the configuration::" msgstr "" +"En pratique, la fonction de création de gestionnaire peut être située dans " +"un module utilitaire ailleurs dans votre projet. Au lieu de cette ligne dans " +"la configuration ::" -#: ../Doc/howto/logging-cookbook.rst:1938 +#: howto/logging-cookbook.rst:1938 msgid "you could use e.g.::" -msgstr "" +msgstr "vous pouvez écrire par exemple ::" -#: ../Doc/howto/logging-cookbook.rst:1942 +#: howto/logging-cookbook.rst:1942 msgid "" "where ``project.util`` can be replaced with the actual name of the package " "where the function resides. In the above working script, using ``'ext://" "__main__.owned_file_handler'`` should work. Here, the actual callable is " "resolved by :func:`dictConfig` from the ``ext://`` specification." msgstr "" +"où ``project.util`` peut être remplacé par le nom réel du paquet où réside " +"la fonction. Dans le script étudié ci-dessus, l’utilisation de ``'ext://" +"__main__.owned_file_handler'`` devrait fonctionner. Dans le cas présent, " +"l’appelable réel est résolu par :func:`dictConfig` à partir de la " +"spécification ``ext://``." -#: ../Doc/howto/logging-cookbook.rst:1947 +#: howto/logging-cookbook.rst:1947 msgid "" "This example hopefully also points the way to how you could implement other " "types of file change - e.g. setting specific POSIX permission bits - in the " "same way, using :func:`os.chmod`." msgstr "" +"Nous espérons qu'à partir de cet exemple vous saurez implémenter d’autres " +"types de modification de fichier – par ex. définir des bits d’autorisation " +"POSIX spécifiques – de la même manière, en utilisant :func:`os.chmod`." -#: ../Doc/howto/logging-cookbook.rst:1951 +#: howto/logging-cookbook.rst:1951 msgid "" "Of course, the approach could also be extended to types of handler other " "than a :class:`~logging.FileHandler` - for example, one of the rotating file " "handlers, or a different type of handler altogether." msgstr "" +"Bien sûr, l’approche pourrait également être étendue à des types de " +"gestionnaires autres qu’un :class:`~logging.FileHandler` – par exemple, l’un " +"des gestionnaires à roulement de fichiers ou un autre type de gestionnaire " +"complètement différent." -#: ../Doc/howto/logging-cookbook.rst:1961 +#: howto/logging-cookbook.rst:1961 msgid "Using particular formatting styles throughout your application" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1963 +#: howto/logging-cookbook.rst:1963 msgid "" "In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " "parameter which, while defaulting to ``%`` for backward compatibility, " @@ -1034,7 +1526,7 @@ msgid "" "is constructed." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1970 +#: howto/logging-cookbook.rst:1970 msgid "" "Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " "positional parameters for the actual logging message itself, with keyword " @@ -1049,7 +1541,7 @@ msgid "" "calls which are out there in existing code will be using %-format strings." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1982 +#: howto/logging-cookbook.rst:1982 msgid "" "There have been suggestions to associate format styles with specific " "loggers, but that approach also runs into backward compatibility problems " @@ -1057,7 +1549,7 @@ msgid "" "formatting." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1986 +#: howto/logging-cookbook.rst:1986 msgid "" "For logging to work interoperably between any third-party libraries and your " "code, decisions about formatting need to be made at the level of the " @@ -1065,11 +1557,11 @@ msgid "" "formatting styles can be accommodated." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1993 +#: howto/logging-cookbook.rst:1993 msgid "Using LogRecord factories" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:1995 +#: howto/logging-cookbook.rst:1995 msgid "" "In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " "above, the logging package gained the ability to allow users to set their " @@ -1084,17 +1576,17 @@ msgid "" "implementation does." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2006 +#: howto/logging-cookbook.rst:2006 msgid "" "Refer to the reference documentation on :func:`setLogRecordFactory` and :" "class:`LogRecord` for more information." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2011 +#: howto/logging-cookbook.rst:2011 msgid "Using custom message objects" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2013 +#: howto/logging-cookbook.rst:2013 msgid "" "There is another, perhaps simpler way that you can use {}- and $- formatting " "to construct your individual log messages. You may recall (from :ref:" @@ -1104,7 +1596,7 @@ msgid "" "following two classes::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2038 +#: howto/logging-cookbook.rst:2038 msgid "" "Either of these can be used in place of a format string, to allow {}- or $-" "formatting to be used to build the actual \"message\" part which appears in " @@ -1115,17 +1607,17 @@ msgid "" "using ``_`` for localization)." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2046 +#: howto/logging-cookbook.rst:2046 msgid "" "Examples of this approach are given below. Firstly, formatting with :meth:" "`str.format`::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2060 +#: howto/logging-cookbook.rst:2060 msgid "Secondly, formatting with :class:`string.Template`::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2067 +#: howto/logging-cookbook.rst:2067 msgid "" "One thing to note is that you pay no significant performance penalty with " "this approach: the actual formatting happens not when you make the logging " @@ -1137,11 +1629,11 @@ msgid "" "above." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2081 +#: howto/logging-cookbook.rst:2081 msgid "Configuring filters with :func:`dictConfig`" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2083 +#: howto/logging-cookbook.rst:2083 msgid "" "You *can* configure filters using :func:`~logging.config.dictConfig`, though " "it might not be obvious at first glance how to do it (hence this recipe). " @@ -1156,22 +1648,22 @@ msgid "" "complete example::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2136 +#: howto/logging-cookbook.rst:2136 msgid "" "This example shows how you can pass configuration data to the callable which " "constructs the instance, in the form of keyword parameters. When run, the " "above script will print:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2144 +#: howto/logging-cookbook.rst:2144 msgid "which shows that the filter is working as configured." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2146 +#: howto/logging-cookbook.rst:2146 msgid "A couple of extra points to note:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2148 +#: howto/logging-cookbook.rst:2148 msgid "" "If you can't refer to the callable directly in the configuration (e.g. if it " "lives in a different module, and you can't import it directly where the " @@ -1181,7 +1673,7 @@ msgid "" "the above example." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2155 +#: howto/logging-cookbook.rst:2155 msgid "" "As well as for filters, this technique can also be used to configure custom " "handlers and formatters. See :ref:`logging-config-dict-userdef` for more " @@ -1190,11 +1682,11 @@ msgid "" "above." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2164 +#: howto/logging-cookbook.rst:2164 msgid "Customized exception formatting" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2166 +#: howto/logging-cookbook.rst:2166 msgid "" "There might be times when you want to do customized exception formatting - " "for argument's sake, let's say you want exactly one line per logged event, " @@ -1202,22 +1694,22 @@ msgid "" "formatter class, as shown in the following example::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2207 +#: howto/logging-cookbook.rst:2207 msgid "When run, this produces a file with exactly two lines:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2214 +#: howto/logging-cookbook.rst:2214 msgid "" "While the above treatment is simplistic, it points the way to how exception " "information can be formatted to your liking. The :mod:`traceback` module may " "be helpful for more specialized needs." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2221 +#: howto/logging-cookbook.rst:2221 msgid "Speaking logging messages" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2223 +#: howto/logging-cookbook.rst:2223 msgid "" "There might be situations when it is desirable to have logging messages " "rendered in an audible rather than a visible format. This is easy to do if " @@ -1234,24 +1726,24 @@ msgid "" "approach, which assumes that the ``espeak`` TTS package is available::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2265 +#: howto/logging-cookbook.rst:2265 msgid "" "When run, this script should say \"Hello\" and then \"Goodbye\" in a female " "voice." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2267 +#: howto/logging-cookbook.rst:2267 msgid "" "The above approach can, of course, be adapted to other TTS systems and even " "other systems altogether which can process messages via external programs " "run from a command line." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2275 +#: howto/logging-cookbook.rst:2275 msgid "Buffering logging messages and outputting them conditionally" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2277 +#: howto/logging-cookbook.rst:2277 msgid "" "There might be situations where you want to log messages in a temporary area " "and only output them if a certain condition occurs. For example, you may " @@ -1261,7 +1753,7 @@ msgid "" "debug information to be output as well as the error." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2284 +#: howto/logging-cookbook.rst:2284 msgid "" "Here is an example which shows how you could do this using a decorator for " "your functions where you want logging to behave this way. It makes use of " @@ -1274,7 +1766,7 @@ msgid "" "subclass of ``MemoryHandler`` if you want custom flushing behavior." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2294 +#: howto/logging-cookbook.rst:2294 msgid "" "The example script has a simple function, ``foo``, which just cycles through " "all the logging levels, writing to ``sys.stderr`` to say what level it's " @@ -1283,7 +1775,7 @@ msgid "" "levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2300 +#: howto/logging-cookbook.rst:2300 msgid "" "The script just arranges to decorate ``foo`` with a decorator which will do " "the conditional logging that's required. The decorator takes a logger as a " @@ -1295,36 +1787,36 @@ msgid "" "respectively." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2308 +#: howto/logging-cookbook.rst:2308 msgid "Here's the script::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2371 +#: howto/logging-cookbook.rst:2371 msgid "When this script is run, the following output should be observed:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2401 +#: howto/logging-cookbook.rst:2401 msgid "" "As you can see, actual logging output only occurs when an event is logged " "whose severity is ERROR or greater, but in that case, any previous events at " "lower severities are also logged." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2405 +#: howto/logging-cookbook.rst:2405 msgid "You can of course use the conventional means of decoration::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2415 +#: howto/logging-cookbook.rst:2415 msgid "Formatting times using UTC (GMT) via configuration" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2417 +#: howto/logging-cookbook.rst:2417 msgid "" "Sometimes you want to format times using UTC, which can be done using a " "class such as `UTCFormatter`, shown below::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2426 +#: howto/logging-cookbook.rst:2426 msgid "" "and you can then use the ``UTCFormatter`` in your code instead of :class:" "`~logging.Formatter`. If you want to do that via configuration, you can use " @@ -1332,21 +1824,21 @@ msgid "" "the following complete example::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2469 +#: howto/logging-cookbook.rst:2469 msgid "When this script is run, it should print something like:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2476 +#: howto/logging-cookbook.rst:2476 msgid "" "showing how the time is formatted both as local time and UTC, one for each " "handler." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2483 +#: howto/logging-cookbook.rst:2483 msgid "Using a context manager for selective logging" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2485 +#: howto/logging-cookbook.rst:2485 msgid "" "There are times when it would be useful to temporarily change the logging " "configuration and revert it back after doing something. For this, a context " @@ -1356,7 +1848,7 @@ msgid "" "scope of the context manager::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2518 +#: howto/logging-cookbook.rst:2518 msgid "" "If you specify a level value, the logger's level is set to that value in the " "scope of the with block covered by the context manager. If you specify a " @@ -1365,13 +1857,13 @@ msgid "" "block exit - you could do this if you don't need the handler any more." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2524 +#: howto/logging-cookbook.rst:2524 msgid "" "To illustrate how it works, we can add the following block of code to the " "above::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2542 +#: howto/logging-cookbook.rst:2542 msgid "" "We initially set the logger's level to ``INFO``, so message #1 appears and " "message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " @@ -1384,56 +1876,56 @@ msgid "" "(like message #1) whereas message #7 doesn't (just like message #2)." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2552 +#: howto/logging-cookbook.rst:2552 msgid "If we run the resulting script, the result is as follows:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2563 +#: howto/logging-cookbook.rst:2563 msgid "" "If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " "following, which is the only message written to ``stdout``:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2571 +#: howto/logging-cookbook.rst:2571 msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2581 +#: howto/logging-cookbook.rst:2581 msgid "" "In this case, the message #5 printed to ``stdout`` doesn't appear, as " "expected." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2583 +#: howto/logging-cookbook.rst:2583 msgid "" "Of course, the approach described here can be generalised, for example to " "attach logging filters temporarily. Note that the above code works in Python " "2 as well as Python 3." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2591 +#: howto/logging-cookbook.rst:2591 msgid "A CLI application starter template" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2593 +#: howto/logging-cookbook.rst:2593 msgid "Here's an example which shows how you can:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2595 +#: howto/logging-cookbook.rst:2595 msgid "Use a logging level based on command-line arguments" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2596 +#: howto/logging-cookbook.rst:2596 msgid "" "Dispatch to multiple subcommands in separate files, all logging at the same " "level in a consistent way" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2598 +#: howto/logging-cookbook.rst:2598 msgid "Make use of simple, minimal configuration" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2600 +#: howto/logging-cookbook.rst:2600 msgid "" "Suppose we have a command-line application whose job is to stop, start or " "restart some services. This could be organised for the purposes of " @@ -1444,53 +1936,53 @@ msgid "" "``logging.INFO``. Here's one way that ``app.py`` could be written::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2649 +#: howto/logging-cookbook.rst:2649 msgid "" "And the ``start``, ``stop`` and ``restart`` commands can be implemented in " "separate modules, like so for starting::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2662 +#: howto/logging-cookbook.rst:2662 msgid "and thus for stopping::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2683 +#: howto/logging-cookbook.rst:2683 msgid "and similarly for restarting::" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2704 +#: howto/logging-cookbook.rst:2704 msgid "" "If we run this application with the default log level, we get output like " "this:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2717 +#: howto/logging-cookbook.rst:2717 msgid "" "The first word is the logging level, and the second word is the module or " "package name of the place where the event was logged." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2720 +#: howto/logging-cookbook.rst:2720 msgid "" "If we change the logging level, then we can change the information sent to " "the log. For example, if we want more information:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2737 +#: howto/logging-cookbook.rst:2737 msgid "And if we want less:" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2745 +#: howto/logging-cookbook.rst:2745 msgid "" "In this case, the commands don't print anything to the console, since " "nothing at ``WARNING`` level or above is logged by them." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2751 +#: howto/logging-cookbook.rst:2751 msgid "A Qt GUI for logging" msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2753 +#: howto/logging-cookbook.rst:2753 msgid "" "A question that comes up from time to time is about how to log to a GUI " "application. The `Qt `_ framework is a popular cross-" @@ -1498,7 +1990,7 @@ msgid "" "project/PySide2/>`_ or `PyQt5 `_ libraries." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2759 +#: howto/logging-cookbook.rst:2759 msgid "" "The following example shows how to log to a Qt GUI. This introduces a simple " "``QtHandler`` class which takes a callable, which should be a slot in the " @@ -1508,14 +2000,14 @@ msgid "" "logging messages at random levels with random short delays in between)." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2766 +#: howto/logging-cookbook.rst:2766 msgid "" "The worker thread is implemented using Qt's ``QThread`` class rather than " "the :mod:`threading` module, as there are circumstances where one has to use " "``QThread``, which offers better integration with other ``Qt`` components." msgstr "" -#: ../Doc/howto/logging-cookbook.rst:2770 +#: howto/logging-cookbook.rst:2770 msgid "" "The code should work with recent releases of either ``PySide2`` or " "``PyQt5``. You should be able to adapt the approach to earlier versions of " diff --git a/howto/logging.po b/howto/logging.po index cc9b4765d2..aefbcbf495 100644 --- a/howto/logging.po +++ b/howto/logging.po @@ -2,7 +2,7 @@ # For licence information, see README file. msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2019-06-10 15:38+0200\n" @@ -1837,7 +1837,7 @@ msgstr "" "exceptions qui se produisent lors de la journalisation en production. Il " "s'agit de sorte que les erreurs qui se produisent lors de la gestion des " "événements de journalisation (telles qu'une mauvaise configuration de la " -"journalisation , une erreur réseau ou d'autres erreurs similaires) ne " +"journalisation, une erreur réseau ou d'autres erreurs similaires) ne " "provoquent pas l'arrêt de l'application utilisant la journalisation." #: ../Doc/howto/logging.rst:1008 diff --git a/howto/pyporting.po b/howto/pyporting.po index b56899e9ca..67a1074b54 100644 --- a/howto/pyporting.po +++ b/howto/pyporting.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" +"PO-Revision-Date: 2020-03-28 16:08+0100\n" +"Last-Translator: Loc Cosnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/howto/pyporting.rst:5 msgid "Porting Python 2 Code to Python 3" @@ -109,15 +110,17 @@ msgid "" "Use Pylint_ to help make sure you don't regress on your Python 3 support " "(``pip install pylint``)" msgstr "" +"Utilisez Pylint_ pour vous assurer que vous ne régressez pas sur votre prise " +"en charge de Python 3 (``pip install pylint``)" #: ../Doc/howto/pyporting.rst:39 msgid "" "Use caniusepython3_ to find out which of your dependencies are blocking your " "use of Python 3 (``pip install caniusepython3``)" msgstr "" -"Utiliser caniusepython3_ pour déterminer quelles sont, parmi les dépendances " -"que vous utilisez, celles qui bloquent votre utilisation de Python 3 (``pip " -"install caniusepython3``)" +"Utiliser `caniusepython3`_ pour déterminer quelles sont, parmi les " +"dépendances que vous utilisez, celles qui bloquent votre utilisation de " +"Python 3 (``pip install caniusepython3``)" #: ../Doc/howto/pyporting.rst:41 msgid "" @@ -292,18 +295,19 @@ msgid "" "to Python 3! But to fully understand how your code is going to change and " "what you want to look out for while you code, you will want to learn what " "changes Python 3 makes in terms of Python 2. Typically the two best ways of " -"doing that is reading the `\"What's New\"`_ doc for each release of Python 3 " -"and the `Porting to Python 3`_ book (which is free online). There is also a " -"handy `cheat sheet`_ from the Python-Future project." +"doing that is reading the :ref:`\"What's New\" ` doc for " +"each release of Python 3 and the `Porting to Python 3`_ book (which is free " +"online). There is also a handy `cheat sheet`_ from the Python-Future project." msgstr "" "Une fois que votre code est bien testé, vous êtes prêt à démarrer votre " "portage vers Python 3 ! Mais afin de comprendre comment votre code va " "changer et à quoi s'intéresser spécifiquement pendant que vous codez, vous " "aurez sûrement envie de découvrir quels sont les changements introduits par " "Python 3 par rapport à Python 2. Pour atteindre cet objectif, les deux " -"meilleurs moyens sont de lire le document `\"What's New\"`_ de chaque " -"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne). " -"Il y a également une `cheat sheet`_ très pratique du projet Python-Future." +"meilleurs moyens sont de lire le document :ref:`whatsnew-index` de chaque " +"version de Python 3 et le livre `Porting to Python 3`_ (gratuit en ligne, en " +"anglais). Il y a également une « anti-sèche » (`cheat sheet`_, ressource en " +"anglais) très pratique du projet Python-Future." #: ../Doc/howto/pyporting.rst:128 msgid "Update your code" @@ -741,16 +745,16 @@ msgstr "" #: ../Doc/howto/pyporting.rst:305 msgid "" -"Let's pretend that you need access to a feature of importlib_ that is " +"Let's pretend that you need access to a feature of :mod:`importlib` that is " "available in Python's standard library since Python 3.3 and available for " "Python 2 through importlib2_ on PyPI. You might be tempted to write code to " -"access e.g. the ``importlib.abc`` module by doing the following::" +"access e.g. the :mod:`importlib.abc` module by doing the following::" msgstr "" -"Supposons que vous avez besoin d'accéder à une fonctionnalité de importlib_ " -"qui n'est disponible dans la bibliothèque standard de Python que depuis la " -"version 3.3 et est disponible pour Python 2 via le module importlib2_ sur " -"PyPI. Vous pourriez être tenté d'écrire un code qui accède, par exemple, au " -"module ``importlib.abc`` avec l'approche suivante : ::" +"Supposons que vous avez besoin d'accéder à une fonctionnalité de :mod:" +"`importlib` qui est disponible dans la bibliothèque standard de Python " +"depuis la version 3.3, dans celle de Python 2 via le module importlib2_ sur " +"*PyPI*. Vous pourriez être tenté d'écrire un code qui accède, par exemple, " +"au module :mod:`importlib.abc` avec l'approche suivante ::" #: ../Doc/howto/pyporting.rst:317 msgid "" @@ -762,7 +766,7 @@ msgstr "" "Le problème est le suivant : que se passe-t-il lorsque Python 4 est publié ? " "Il serait préférable de traiter le cas Python 2 comme l'exception plutôt que " "Python 3 et de supposer que les versions futures de Python 2 seront plus " -"compatibles avec Python 3 qu'avec Python 2 : ::" +"compatibles avec Python 3 qu'avec Python 2 ::" #: ../Doc/howto/pyporting.rst:329 msgid "" @@ -773,11 +777,11 @@ msgstr "" "Néanmoins la meilleure solution est de ne pas chercher à déterminer la " "version de Python mais plutôt à détecter les fonctionnalités disponibles. " "Cela évite les problèmes potentiels liés aux erreurs de détection de version " -"et facilite la compatibilité future : ::" +"et facilite la compatibilité future ::" #: ../Doc/howto/pyporting.rst:340 msgid "Prevent compatibility regressions" -msgstr "" +msgstr "Prévenir les régressions de compatibilité" #: ../Doc/howto/pyporting.rst:342 msgid "" @@ -798,7 +802,7 @@ msgid "" msgstr "" "Afin de vous aider à maintenir la compatibilité, nous préconisons que tous " "les nouveaux modules que vous créez aient au moins le bloc de code suivant " -"en en-tête : ::" +"en en-tête ::" #: ../Doc/howto/pyporting.rst:354 msgid "" @@ -845,7 +849,7 @@ msgid "" msgstr "" "**Après** avoir rendu votre code compatible avec Python 3, vous devez " "commencer à vous intéresser au portage de vos dépendances. Le projet " -"caniusepython3_ a été créé afin de vous aider à déterminer quels projets " +"`caniusepython3`_ a été créé afin de vous aider à déterminer quels projets " "sont bloquants dans votre support de Python 3, directement ou indirectement. " "Il existe un outil en ligne de commande ainsi qu'une interface web : https://" "caniusepython3.com." @@ -922,7 +926,7 @@ msgstr "" "différents renvoient simplement ``False`` mais si vous avez fait une erreur " "dans votre séparation de la gestion texte/données binaires ou votre indiçage " "des *bytes*, vous ne trouverez pas facilement le bogue. Ce drapeau lève une " -"exception lorsque ce genre de comparaison apparaît, facilitant ainsi sa " +"exception lorsque ce genre de comparaison apparaît, facilitant ainsi son " "identification et sa localisation." #: ../Doc/howto/pyporting.rst:410 diff --git a/howto/regex.po b/howto/regex.po index 8d37610098..f8b6e0a14e 100644 --- a/howto/regex.po +++ b/howto/regex.po @@ -3,35 +3,35 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-03-26 22:48+0100\n" +"PO-Revision-Date: 2020-04-27 22:24+0200\n" "Last-Translator: Nabil Bendafi \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.2\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/howto/regex.rst:5 +#: howto/regex.rst:5 msgid "Regular Expression HOWTO" msgstr "Guide des expressions régulières" -#: ../Doc/howto/regex.rst:0 +#: howto/regex.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/regex.rst:7 +#: howto/regex.rst:7 msgid "A.M. Kuchling " msgstr "A.M. Kuchling " -#: ../Doc/howto/regex.rst:None +#: howto/regex.rst:None msgid "Abstract" msgstr "Résumé" -#: ../Doc/howto/regex.rst:18 +#: howto/regex.rst:18 msgid "" "This document is an introductory tutorial to using regular expressions in " "Python with the :mod:`re` module. It provides a gentler introduction than " @@ -42,11 +42,11 @@ msgstr "" "introduction plus abordable que la section correspondante dans le guide de " "référence de la bibliothèque." -#: ../Doc/howto/regex.rst:24 +#: howto/regex.rst:24 msgid "Introduction" msgstr "Introduction" -#: ../Doc/howto/regex.rst:26 +#: howto/regex.rst:26 msgid "" "Regular expressions (called REs, or regexes, or regex patterns) are " "essentially a tiny, highly specialized programming language embedded inside " @@ -71,7 +71,7 @@ msgstr "" "utiliser les RE pour modifier une chaîne de caractères ou la découper de " "différentes façons." -#: ../Doc/howto/regex.rst:35 +#: howto/regex.rst:35 msgid "" "Regular expression patterns are compiled into a series of bytecodes which " "are then executed by a matching engine written in C. For advanced use, it " @@ -90,7 +90,7 @@ msgstr "" "d'avoir une bonne compréhension des mécanismes internes du moteur de " "correspondance." -#: ../Doc/howto/regex.rst:42 +#: howto/regex.rst:42 msgid "" "The regular expression language is relatively small and restricted, so not " "all possible string processing tasks can be done using regular expressions. " @@ -109,11 +109,11 @@ msgstr "" "traitement ; même si le code Python est plus lent qu'une expression " "régulière élaborée, il sera probablement plus compréhensible." -#: ../Doc/howto/regex.rst:51 +#: howto/regex.rst:51 msgid "Simple Patterns" msgstr "Motifs simples" -#: ../Doc/howto/regex.rst:53 +#: howto/regex.rst:53 msgid "" "We'll start by learning about the simplest possible regular expressions. " "Since regular expressions are used to operate on strings, we'll begin with " @@ -124,7 +124,7 @@ msgstr "" "des chaînes de caractères, nous commençons par l'action la plus courante : " "la correspondance de caractères." -#: ../Doc/howto/regex.rst:57 +#: howto/regex.rst:57 msgid "" "For a detailed explanation of the computer science underlying regular " "expressions (deterministic and non-deterministic finite automata), you can " @@ -135,11 +135,11 @@ msgstr "" "vous pouvez vous référer à n'importe quel manuel sur l'écriture de " "compilateurs." -#: ../Doc/howto/regex.rst:63 +#: howto/regex.rst:63 msgid "Matching Characters" msgstr "Correspondance de caractères" -#: ../Doc/howto/regex.rst:65 +#: howto/regex.rst:65 msgid "" "Most letters and characters will simply match themselves. For example, the " "regular expression ``test`` will match the string ``test`` exactly. (You " @@ -152,7 +152,7 @@ msgstr "" "la casse qui permet à cette RE de correspondre également à ``Test`` ou " "``TEST`` (ce sujet est traité par la suite)." -#: ../Doc/howto/regex.rst:70 +#: howto/regex.rst:70 msgid "" "There are exceptions to this rule; some characters are special :dfn:" "`metacharacters`, and don't match themselves. Instead, they signal that " @@ -168,7 +168,7 @@ msgstr "" "en changeant leur sens. Une grande partie de ce document est consacrée au " "fonctionnement de ces métacaractères." -#: ../Doc/howto/regex.rst:76 +#: howto/regex.rst:76 msgid "" "Here's a complete list of the metacharacters; their meanings will be " "discussed in the rest of this HOWTO." @@ -176,7 +176,7 @@ msgstr "" "Voici une liste complète des métacaractères ; leur sens est décrit dans la " "suite de ce guide." -#: ../Doc/howto/regex.rst:83 +#: howto/regex.rst:83 msgid "" "The first metacharacters we'll look at are ``[`` and ``]``. They're used for " "specifying a character class, which is a set of characters that you wish to " @@ -197,19 +197,19 @@ msgstr "" "même ensemble de caractères. Si vous voulez trouver une chaîne qui ne " "contient que des lettres en minuscules, la RE est ``[a-z]``." -#: ../Doc/howto/regex.rst:92 +#: howto/regex.rst:92 msgid "" "Metacharacters are not active inside classes. For example, ``[akm$]`` will " "match any of the characters ``'a'``, ``'k'``, ``'m'``, or ``'$'``; ``'$'`` " "is usually a metacharacter, but inside a character class it's stripped of " "its special nature." msgstr "" -"Les métacaractères ne sont pas actifs dans les classes. Par exemple, ``[akm" -"$]`` correspond à n'importe quel caractère parmi ``'a'``, ``'k'``, ``'m'`` " -"ou ``'$'`` ; ``'$'`` est habituellement un métacaractère mais dans une " -"classe de caractères, il est dépourvu de sa signification spéciale." +"Les métacaractères ne sont pas actifs dans les classes. Par exemple, " +"``[akm$]`` correspond à n'importe quel caractère parmi ``'a'``, ``'k'``, " +"``'m'`` ou ``'$'`` ; ``'$'`` est habituellement un métacaractère mais dans " +"une classe de caractères, il est dépourvu de sa signification spéciale." -#: ../Doc/howto/regex.rst:97 +#: howto/regex.rst:97 msgid "" "You can match the characters not listed within the class by :dfn:" "`complementing` the set. This is indicated by including a ``'^'`` as the " @@ -226,7 +226,7 @@ msgstr "" "signification spéciale. Ainsi, ``[5^]`` correspond au ``'5'`` ou au " "caractère ``'^'``." -#: ../Doc/howto/regex.rst:103 +#: howto/regex.rst:103 msgid "" "Perhaps the most important metacharacter is the backslash, ``\\``. As in " "Python string literals, the backslash can be followed by various characters " @@ -244,7 +244,7 @@ msgstr "" "``[`` ou ``\\``, vous pouvez les précéder avec une barre oblique inverse " "pour annuler leur signification spéciale : ``\\[`` ou ``\\\\``." -#: ../Doc/howto/regex.rst:110 +#: howto/regex.rst:110 msgid "" "Some of the special sequences beginning with ``'\\'`` represent predefined " "sets of characters that are often useful, such as the set of digits, the set " @@ -255,7 +255,7 @@ msgstr "" "l'ensemble des chiffres, l'ensemble des lettres ou l'ensemble des caractères " "qui ne sont pas des \"blancs\"." -#: ../Doc/howto/regex.rst:115 +#: howto/regex.rst:115 msgid "" "Let's take an example: ``\\w`` matches any alphanumeric character. If the " "regex pattern is expressed in bytes, this is equivalent to the class ``[a-zA-" @@ -270,11 +270,11 @@ msgstr "" "équivalent à la classe ``[a-zA-Z0-9_]``. Si l'expression régulière est une " "chaîne de caractères, ``\\w`` correspond à tous les caractères identifiés " "comme lettre dans la base de données Unicode fournie par le module :mod:" -"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de ``" -"\\w`` dans un motif exprimé en chaîne de caractères en spécifiant l'option :" -"const:`re.ASCII` lors de la compilation de l'expression régulière." +"`unicodedata`. Vous pouvez utiliser la définition plus restrictive de " +"``\\w`` dans un motif exprimé en chaîne de caractères en spécifiant " +"l'option :const:`re.ASCII` lors de la compilation de l'expression régulière." -#: ../Doc/howto/regex.rst:123 +#: howto/regex.rst:123 msgid "" "The following list of special sequences isn't complete. For a complete list " "of sequences and expanded class definitions for Unicode string patterns, see " @@ -290,44 +290,44 @@ msgstr "" "correspondance avec n'importe quel caractère présent dans la catégorie " "appropriée de la base de données Unicode." -#: ../Doc/howto/regex.rst:131 +#: howto/regex.rst:131 msgid "``\\d``" msgstr "``\\d``" -#: ../Doc/howto/regex.rst:131 +#: howto/regex.rst:131 msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." msgstr "" "Correspond à n'importe quel caractère numérique ; équivalent à la classe " "``[0-9]``." -#: ../Doc/howto/regex.rst:134 +#: howto/regex.rst:134 msgid "``\\D``" msgstr "``\\D``" -#: ../Doc/howto/regex.rst:134 +#: howto/regex.rst:134 msgid "" "Matches any non-digit character; this is equivalent to the class ``[^0-9]``." msgstr "" "Correspond à n'importe caractère non numérique ; équivalent à la classe " "``[^0-9]``." -#: ../Doc/howto/regex.rst:138 +#: howto/regex.rst:138 msgid "``\\s``" msgstr "``\\s``" -#: ../Doc/howto/regex.rst:137 +#: howto/regex.rst:137 msgid "" -"Matches any whitespace character; this is equivalent to the class ``[ \\t\\n" -"\\r\\f\\v]``." +"Matches any whitespace character; this is equivalent to the class " +"``[ \\t\\n\\r\\f\\v]``." msgstr "" "Correspond à n'importe quel caractère \"blanc\" ; équivalent à la classe " "``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/regex.rst:142 +#: howto/regex.rst:142 msgid "``\\S``" msgstr "``\\S``" -#: ../Doc/howto/regex.rst:141 +#: howto/regex.rst:141 msgid "" "Matches any non-whitespace character; this is equivalent to the class ``[^ " "\\t\\n\\r\\f\\v]``." @@ -335,11 +335,11 @@ msgstr "" "Correspond à n'importe caractère autre que \"blanc\" ; équivalent à la " "classe ``[^ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/regex.rst:146 +#: howto/regex.rst:146 msgid "``\\w``" msgstr "``\\w``" -#: ../Doc/howto/regex.rst:145 +#: howto/regex.rst:145 msgid "" "Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" "Z0-9_]``." @@ -347,11 +347,11 @@ msgstr "" "Correspond à n'importe caractère alphanumérique ; équivalent à la classe " "``[a-zA-Z0-9_]``." -#: ../Doc/howto/regex.rst:150 +#: howto/regex.rst:150 msgid "``\\W``" msgstr "``\\W``" -#: ../Doc/howto/regex.rst:149 +#: howto/regex.rst:149 msgid "" "Matches any non-alphanumeric character; this is equivalent to the class " "``[^a-zA-Z0-9_]``." @@ -359,7 +359,7 @@ msgstr "" "Correspond à n'importe caractère non-alphanumérique ; équivalent à la classe " "``[^a-zA-Z0-9_]``." -#: ../Doc/howto/regex.rst:152 +#: howto/regex.rst:152 msgid "" "These sequences can be included inside a character class. For example, " "``[\\s,.]`` is a character class that will match any whitespace character, " @@ -369,7 +369,7 @@ msgstr "" "exemple, ``[\\s,.]`` est une classe de caractères qui correspond à tous les " "caractères \"blancs\" ou ``','`` ou ``'.'``." -#: ../Doc/howto/regex.rst:156 +#: howto/regex.rst:156 msgid "" "The final metacharacter in this section is ``.``. It matches anything " "except a newline character, and there's an alternate mode (:const:`re." @@ -382,11 +382,11 @@ msgstr "" "eu caractère de retour à la ligne. ``.`` est souvent utilisé lorsque l'on " "veut trouver une correspondance avec \"n'importe quel caractère\"." -#: ../Doc/howto/regex.rst:163 +#: howto/regex.rst:163 msgid "Repeating Things" msgstr "Répétitions" -#: ../Doc/howto/regex.rst:165 +#: howto/regex.rst:165 msgid "" "Being able to match varying sets of characters is the first thing regular " "expressions can do that isn't already possible with the methods available on " @@ -401,7 +401,7 @@ msgstr "" "Une autre utilisation consiste à spécifier des portions d'une RE qui peuvent " "être répétées un certain nombre de fois." -#: ../Doc/howto/regex.rst:171 +#: howto/regex.rst:171 msgid "" "The first metacharacter for repeating things that we'll look at is ``*``. " "``*`` doesn't match the literal character ``'*'``; instead, it specifies " @@ -413,7 +413,7 @@ msgstr "" "spécifie que le caractère précédent peut correspondre zéro, une ou plusieurs " "fois (au lieu d'une seule fois)." -#: ../Doc/howto/regex.rst:175 +#: howto/regex.rst:175 msgid "" "For example, ``ca*t`` will match ``'ct'`` (0 ``'a'`` characters), ``'cat'`` " "(1 ``'a'``), ``'caaat'`` (3 ``'a'`` characters), and so forth." @@ -422,7 +422,7 @@ msgstr "" "``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 caractères ``'a'``) et ainsi de " "suite." -#: ../Doc/howto/regex.rst:178 +#: howto/regex.rst:178 msgid "" "Repetitions such as ``*`` are :dfn:`greedy`; when repeating a RE, the " "matching engine will try to repeat it as many times as possible. If later " @@ -435,7 +435,7 @@ msgstr "" "correspond pas, le moteur de correspondance revient en arrière et essaie " "avec moins de répétitions." -#: ../Doc/howto/regex.rst:183 +#: howto/regex.rst:183 msgid "" "A step-by-step example will make this more obvious. Let's consider the " "expression ``a[bcd]*b``. This matches the letter ``'a'``, zero or more " @@ -448,39 +448,39 @@ msgstr "" "Maintenant, supposons que nous cherchons une correspondance de cette RE avec " "la chaîne de caractères ``'abcbd'``." -#: ../Doc/howto/regex.rst:189 +#: howto/regex.rst:189 msgid "Step" msgstr "Étape" -#: ../Doc/howto/regex.rst:189 +#: howto/regex.rst:189 msgid "Matched" msgstr "Correspond" -#: ../Doc/howto/regex.rst:189 +#: howto/regex.rst:189 msgid "Explanation" msgstr "Explication" -#: ../Doc/howto/regex.rst:191 +#: howto/regex.rst:191 msgid "1" msgstr "1" -#: ../Doc/howto/regex.rst:191 +#: howto/regex.rst:191 msgid "``a``" msgstr "``a``" -#: ../Doc/howto/regex.rst:191 +#: howto/regex.rst:191 msgid "The ``a`` in the RE matches." msgstr "Le ``a`` correspond dans la RE." -#: ../Doc/howto/regex.rst:193 +#: howto/regex.rst:193 msgid "2" msgstr "2" -#: ../Doc/howto/regex.rst:193 +#: howto/regex.rst:193 msgid "``abcbd``" msgstr "``abcbd``" -#: ../Doc/howto/regex.rst:193 +#: howto/regex.rst:193 msgid "" "The engine matches ``[bcd]*``, going as far as it can, which is to the end " "of the string." @@ -488,15 +488,15 @@ msgstr "" "Le moteur de correspondance trouve ``[bcd]*``, va aussi loin qu'il le peut, " "ce qui n'est pas la fin de la chaîne." -#: ../Doc/howto/regex.rst:197 +#: howto/regex.rst:197 msgid "3" msgstr "3" -#: ../Doc/howto/regex.rst:197 ../Doc/howto/regex.rst:205 +#: howto/regex.rst:205 msgid "*Failure*" msgstr "*échec*" -#: ../Doc/howto/regex.rst:197 +#: howto/regex.rst:197 msgid "" "The engine tries to match ``b``, but the current position is at the end of " "the string, so it fails." @@ -504,25 +504,25 @@ msgstr "" "Le moteur essaie de trouver une correspondance avec ``b`` mais la position " "courante est à la fin de la chaîne de caractères, donc il échoue." -#: ../Doc/howto/regex.rst:202 +#: howto/regex.rst:202 msgid "4" msgstr "4" -#: ../Doc/howto/regex.rst:202 ../Doc/howto/regex.rst:213 +#: howto/regex.rst:213 msgid "``abcb``" msgstr "``abcb``" -#: ../Doc/howto/regex.rst:202 +#: howto/regex.rst:202 msgid "Back up, so that ``[bcd]*`` matches one less character." msgstr "" "Retour en arrière, de manière à ce que ``[bcd]*`` corresponde avec un " "caractère de moins." -#: ../Doc/howto/regex.rst:205 +#: howto/regex.rst:205 msgid "5" msgstr "5" -#: ../Doc/howto/regex.rst:205 +#: howto/regex.rst:205 msgid "" "Try ``b`` again, but the current position is at the last character, which is " "a ``'d'``." @@ -530,21 +530,21 @@ msgstr "" "Essaie encore ``b``, mais la position courante est le dernier caractère, qui " "est ``'d'``." -#: ../Doc/howto/regex.rst:209 ../Doc/howto/regex.rst:213 +#: howto/regex.rst:213 msgid "6" msgstr "6" -#: ../Doc/howto/regex.rst:209 +#: howto/regex.rst:209 msgid "``abc``" msgstr "``abc``" -#: ../Doc/howto/regex.rst:209 +#: howto/regex.rst:209 msgid "Back up again, so that ``[bcd]*`` is only matching ``bc``." msgstr "" "Encore un retour en arrière, de manière à ce que ``[bcd]*`` ne corresponde " "qu'à ``bc``." -#: ../Doc/howto/regex.rst:213 +#: howto/regex.rst:213 msgid "" "Try ``b`` again. This time the character at the current position is " "``'b'``, so it succeeds." @@ -552,7 +552,7 @@ msgstr "" "Essaie ``b`` encore une fois. Cette fois, le caractère à la position " "courante est ``'b'``, donc cela fonctionne." -#: ../Doc/howto/regex.rst:219 +#: howto/regex.rst:219 msgid "" "The end of the RE has now been reached, and it has matched ``'abcb'``. This " "demonstrates how the matching engine goes as far as it can at first, and if " @@ -569,7 +569,7 @@ msgstr "" "pour ``[bcd]*`` et, si cela échoue toujours, le moteur conclut que la chaîne " "de caractères et la RE ne correspondent pas du tout." -#: ../Doc/howto/regex.rst:226 +#: howto/regex.rst:226 msgid "" "Another repeating metacharacter is ``+``, which matches one or more times. " "Pay careful attention to the difference between ``*`` and ``+``; ``*`` " @@ -586,7 +586,7 @@ msgstr "" "``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 ``'a'``) mais ne correspond pas avec " "``'ct'``." -#: ../Doc/howto/regex.rst:233 +#: howto/regex.rst:233 msgid "" "There are two more repeating qualifiers. The question mark character, ``?" "``, matches either once or zero times; you can think of it as marking " @@ -599,7 +599,7 @@ msgstr "" "caractère`` fait correspondre soit ``métacaractère``, soit ``méta-" "caractère``." -#: ../Doc/howto/regex.rst:238 +#: howto/regex.rst:238 msgid "" "The most complicated repeated qualifier is ``{m,n}``, where *m* and *n* are " "decimal integers. This qualifier means there must be at least *m* " @@ -613,7 +613,7 @@ msgstr "" "b'``, ``'a//b'`` et ``'a///b'``. Elle ne fait pas correspondre ``'ab'`` (pas " "de barre oblique) ni ``'a////b'`` (quatre barres obliques)." -#: ../Doc/howto/regex.rst:244 +#: howto/regex.rst:244 msgid "" "You can omit either *m* or *n*; in that case, a reasonable value is assumed " "for the missing value. Omitting *m* is interpreted as a lower limit of 0, " @@ -623,7 +623,7 @@ msgstr "" "est prise pour la valeur manquante. Omettre *m* considère que la borne basse " "est 0 alors qu'omettre *n* signifie qu'il n'y a pas de borne supérieure." -#: ../Doc/howto/regex.rst:248 +#: howto/regex.rst:248 msgid "" "Readers of a reductionist bent may notice that the three other qualifiers " "can all be expressed using this notation. ``{0,}`` is the same as ``*``, " @@ -637,11 +637,11 @@ msgstr "" "Il est préférable d'utiliser ``*``, ``+`` ou ``?`` quand vous le pouvez, " "simplement parce qu'ils sont plus courts et plus faciles à lire." -#: ../Doc/howto/regex.rst:256 +#: howto/regex.rst:256 msgid "Using Regular Expressions" msgstr "Utilisation des expressions régulières" -#: ../Doc/howto/regex.rst:258 +#: howto/regex.rst:258 msgid "" "Now that we've looked at some simple regular expressions, how do we actually " "use them in Python? The :mod:`re` module provides an interface to the " @@ -653,11 +653,11 @@ msgstr "" "le moteur de correspondance, ce qui permet de compiler les RE en objets et " "d'effectuer des correspondances avec." -#: ../Doc/howto/regex.rst:265 +#: howto/regex.rst:265 msgid "Compiling Regular Expressions" msgstr "Compilation des expressions régulières" -#: ../Doc/howto/regex.rst:267 +#: howto/regex.rst:267 msgid "" "Regular expressions are compiled into pattern objects, which have methods " "for various operations such as searching for pattern matches or performing " @@ -667,7 +667,7 @@ msgstr "" "des méthodes pour diverses opérations telles que la recherche de " "correspondances ou les substitutions dans les chaînes. ::" -#: ../Doc/howto/regex.rst:276 +#: howto/regex.rst:276 msgid "" ":func:`re.compile` also accepts an optional *flags* argument, used to enable " "various special features and syntax variations. We'll go over the available " @@ -678,7 +678,7 @@ msgstr "" "étudierons la définition des variables plus tard et, pour l'instant, un seul " "exemple suffit ::" -#: ../Doc/howto/regex.rst:282 +#: howto/regex.rst:282 msgid "" "The RE is passed to :func:`re.compile` as a string. REs are handled as " "strings because regular expressions aren't part of the core Python language, " @@ -696,7 +696,7 @@ msgstr "" "le module :mod:`re` est simplement un module d'extension en C inclus dans " "Python, tout comme les modules :mod:`socket` ou :mod:`zlib`." -#: ../Doc/howto/regex.rst:289 +#: howto/regex.rst:289 msgid "" "Putting REs in strings keeps the Python language simpler, but has one " "disadvantage which is the topic of the next section." @@ -705,11 +705,11 @@ msgstr "" "simple mais introduit un inconvénient qui fait l'objet de la section " "suivante." -#: ../Doc/howto/regex.rst:296 +#: howto/regex.rst:296 msgid "The Backslash Plague" msgstr "La maudite barre oblique inverse" -#: ../Doc/howto/regex.rst:298 +#: howto/regex.rst:298 msgid "" "As stated earlier, regular expressions use the backslash character " "(``'\\'``) to indicate special forms or to allow special characters to be " @@ -723,7 +723,7 @@ msgstr "" "de Python qui est qu'un caractère doit avoir la même signification dans les " "littéraux de chaînes de caractères." -#: ../Doc/howto/regex.rst:303 +#: howto/regex.rst:303 msgid "" "Let's say you want to write a RE that matches the string ``\\section``, " "which might be found in a LaTeX file. To figure out what to write in the " @@ -745,40 +745,40 @@ msgstr "" "littérale Python, nous devons échapper les deux barres obliques inverses " "*encore une fois*." -#: ../Doc/howto/regex.rst:312 +#: howto/regex.rst:312 msgid "Characters" msgstr "Caractères" -#: ../Doc/howto/regex.rst:312 +#: howto/regex.rst:312 msgid "Stage" msgstr "Niveau" -#: ../Doc/howto/regex.rst:314 +#: howto/regex.rst:314 msgid "``\\section``" msgstr "``\\section``" -#: ../Doc/howto/regex.rst:314 +#: howto/regex.rst:314 msgid "Text string to be matched" msgstr "Chaîne de caractère à chercher" -#: ../Doc/howto/regex.rst:316 +#: howto/regex.rst:316 msgid "``\\\\section``" msgstr "``\\\\section``" -#: ../Doc/howto/regex.rst:316 +#: howto/regex.rst:316 msgid "Escaped backslash for :func:`re.compile`" msgstr "Barre oblique inverse échappée pour :func:`re.compile`" -#: ../Doc/howto/regex.rst:318 ../Doc/howto/regex.rst:345 +#: howto/regex.rst:345 msgid "``\"\\\\\\\\section\"``" msgstr "``\"\\\\\\\\section\"``" -#: ../Doc/howto/regex.rst:318 +#: howto/regex.rst:318 msgid "Escaped backslashes for a string literal" msgstr "" "Barres obliques inverses échappées pour un littéral de chaîne de caractères" -#: ../Doc/howto/regex.rst:321 +#: howto/regex.rst:321 msgid "" "In short, to match a literal backslash, one has to write ``'\\\\\\\\'`` as " "the RE string, because the regular expression must be ``\\\\``, and each " @@ -794,7 +794,7 @@ msgstr "" "inverses, cela conduit à beaucoup de barres obliques inverses et rend la " "chaîne résultante difficile à comprendre." -#: ../Doc/howto/regex.rst:327 +#: howto/regex.rst:327 msgid "" "The solution is to use Python's raw string notation for regular expressions; " "backslashes are not handled in any special way in a string literal prefixed " @@ -811,7 +811,7 @@ msgstr "" "le caractère retour à la ligne. Les expressions régulières sont souvent " "écrites dans le code Python en utilisant la notation \"chaînes brutes\"." -#: ../Doc/howto/regex.rst:333 +#: howto/regex.rst:333 msgid "" "In addition, special escape sequences that are valid in regular expressions, " "but not valid as Python string literals, now result in a :exc:" @@ -826,39 +826,39 @@ msgstr "" "invalides si la notation \"chaîne brute\" ou l'échappement des barres " "obliques inverses ne sont pas utilisés." -#: ../Doc/howto/regex.rst:341 +#: howto/regex.rst:341 msgid "Regular String" msgstr "Chaîne normale" -#: ../Doc/howto/regex.rst:341 +#: howto/regex.rst:341 msgid "Raw string" msgstr "Chaîne de caractères brute" -#: ../Doc/howto/regex.rst:343 +#: howto/regex.rst:343 msgid "``\"ab*\"``" msgstr "``\"ab*\"``" -#: ../Doc/howto/regex.rst:343 +#: howto/regex.rst:343 msgid "``r\"ab*\"``" msgstr "``r\"ab*\"``" -#: ../Doc/howto/regex.rst:345 +#: howto/regex.rst:345 msgid "``r\"\\\\section\"``" msgstr "``r\"\\\\section\"``" -#: ../Doc/howto/regex.rst:347 +#: howto/regex.rst:347 msgid "``\"\\\\w+\\\\s+\\\\1\"``" msgstr "``\"\\\\w+\\\\s+\\\\1\"``" -#: ../Doc/howto/regex.rst:347 +#: howto/regex.rst:347 msgid "``r\"\\w+\\s+\\1\"``" msgstr "``r\"\\w+\\s+\\1\"``" -#: ../Doc/howto/regex.rst:352 +#: howto/regex.rst:352 msgid "Performing Matches" msgstr "Recherche de correspondances" -#: ../Doc/howto/regex.rst:354 +#: howto/regex.rst:354 msgid "" "Once you have an object representing a compiled regular expression, what do " "you do with it? Pattern objects have several methods and attributes. Only " @@ -870,47 +870,45 @@ msgstr "" "attributs. Seuls les plus significatifs seront couverts ici ; consultez la " "documentation :mod:`re` pour la liste complète." -#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 -#: ../Doc/howto/regex.rst:1064 +#: howto/regex.rst:418 howto/regex.rst:1064 msgid "Method/Attribute" msgstr "Méthode/Attribut" -#: ../Doc/howto/regex.rst:360 ../Doc/howto/regex.rst:418 -#: ../Doc/howto/regex.rst:1064 +#: howto/regex.rst:418 howto/regex.rst:1064 msgid "Purpose" msgstr "Objectif" -#: ../Doc/howto/regex.rst:362 +#: howto/regex.rst:362 msgid "``match()``" msgstr "``match()``" -#: ../Doc/howto/regex.rst:362 +#: howto/regex.rst:362 msgid "Determine if the RE matches at the beginning of the string." msgstr "Détermine si la RE fait correspond dès le début de la chaîne." -#: ../Doc/howto/regex.rst:365 +#: howto/regex.rst:365 msgid "``search()``" msgstr "``search()``" -#: ../Doc/howto/regex.rst:365 +#: howto/regex.rst:365 msgid "Scan through a string, looking for any location where this RE matches." msgstr "Analyse la chaîne à la recherche d'une position où la RE correspond." -#: ../Doc/howto/regex.rst:368 +#: howto/regex.rst:368 msgid "``findall()``" msgstr "``findall()``" -#: ../Doc/howto/regex.rst:368 +#: howto/regex.rst:368 msgid "Find all substrings where the RE matches, and returns them as a list." msgstr "" "Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " "la forme d'une liste." -#: ../Doc/howto/regex.rst:371 +#: howto/regex.rst:371 msgid "``finditer()``" msgstr "``finditer()``" -#: ../Doc/howto/regex.rst:371 +#: howto/regex.rst:371 msgid "" "Find all substrings where the RE matches, and returns them as an :term:" "`iterator`." @@ -918,7 +916,7 @@ msgstr "" "Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " "la forme d'un :term:`itérateur `." -#: ../Doc/howto/regex.rst:375 +#: howto/regex.rst:375 msgid "" ":meth:`~re.Pattern.match` and :meth:`~re.Pattern.search` return ``None`` if " "no match can be found. If they're successful, a :ref:`match object `, vous pouvez ainsi stocker le résultat dans " "une variable pour une utilisation ultérieure. ::" -#: ../Doc/howto/regex.rst:413 +#: howto/regex.rst:413 msgid "" "Now you can query the :ref:`match object ` for information " "about the matching string. Match object instances also have several methods " @@ -995,44 +993,44 @@ msgstr "" "instances d'objets correspondances possèdent plusieurs méthodes et " "attributs ; les plus importants sont :" -#: ../Doc/howto/regex.rst:420 +#: howto/regex.rst:420 msgid "``group()``" msgstr "``group()``" -#: ../Doc/howto/regex.rst:420 +#: howto/regex.rst:420 msgid "Return the string matched by the RE" msgstr "Renvoie la chaîne de caractères correspondant à la RE" -#: ../Doc/howto/regex.rst:422 +#: howto/regex.rst:422 msgid "``start()``" msgstr "``start()``" -#: ../Doc/howto/regex.rst:422 +#: howto/regex.rst:422 msgid "Return the starting position of the match" msgstr "Renvoie la position de début de la correspondance" -#: ../Doc/howto/regex.rst:424 +#: howto/regex.rst:424 msgid "``end()``" msgstr "``end()``" -#: ../Doc/howto/regex.rst:424 +#: howto/regex.rst:424 msgid "Return the ending position of the match" msgstr "Renvoie la position de fin de la correspondance" -#: ../Doc/howto/regex.rst:426 +#: howto/regex.rst:426 msgid "``span()``" msgstr "``span()``" -#: ../Doc/howto/regex.rst:426 +#: howto/regex.rst:426 msgid "Return a tuple containing the (start, end) positions of the match" msgstr "" "Renvoie un *tuple* contenant les positions (début, fin) de la correspondance" -#: ../Doc/howto/regex.rst:430 +#: howto/regex.rst:430 msgid "Trying these methods will soon clarify their meaning::" msgstr "Essayons ces méthodes pour clarifier leur signification ::" -#: ../Doc/howto/regex.rst:439 +#: howto/regex.rst:439 msgid "" ":meth:`~re.Match.group` returns the substring that was matched by the RE. :" "meth:`~re.Match.start` and :meth:`~re.Match.end` return the starting and " @@ -1052,7 +1050,7 @@ msgstr "" "search` d'un motif analyse toute la chaîne, afin de trouver une " "correspondance potentielle qui ne commence pas à zéro. ::" -#: ../Doc/howto/regex.rst:456 +#: howto/regex.rst:456 msgid "" "In actual programs, the most common style is to store the :ref:`match object " "` in a variable, and then check if it was ``None``. This " @@ -1062,7 +1060,7 @@ msgstr "" "stocker :ref:`l'objet correspondance ` dans une variable, " "puis à vérifier s'il vaut ``None``. Généralement, cela ressemble à ceci ::" -#: ../Doc/howto/regex.rst:467 +#: howto/regex.rst:467 msgid "" "Two pattern methods return all of the matches for a pattern. :meth:`~re." "Pattern.findall` returns a list of matching strings::" @@ -1070,7 +1068,7 @@ msgstr "" "Deux méthodes de motifs renvoient toutes les correspondances pour un motif. :" "meth:`~re.Pattern.findall` renvoie une liste des chaînes qui correspondent ::" -#: ../Doc/howto/regex.rst:474 +#: howto/regex.rst:474 msgid "" "The ``r`` prefix, making the literal a raw string literal, is needed in this " "example because escape sequences in a normal \"cooked\" string literal that " @@ -1085,7 +1083,7 @@ msgstr "" "deviendront possiblement des :exc:`SyntaxError`. Reportez-vous à :ref:`the-" "backslash-plague`." -#: ../Doc/howto/regex.rst:480 +#: howto/regex.rst:480 msgid "" ":meth:`~re.Pattern.findall` has to create the entire list before it can be " "returned as the result. The :meth:`~re.Pattern.finditer` method returns a " @@ -1097,11 +1095,11 @@ msgstr "" "d'instances :ref:`d'objets correspondances ` en tant :term:" "`qu'itérateur ` ::" -#: ../Doc/howto/regex.rst:496 +#: howto/regex.rst:496 msgid "Module-Level Functions" msgstr "Fonctions de niveau module" -#: ../Doc/howto/regex.rst:498 +#: howto/regex.rst:498 msgid "" "You don't have to create a pattern object and call its methods; the :mod:" "`re` module also provides top-level functions called :func:`~re.match`, :" @@ -1118,7 +1116,7 @@ msgstr "" "premier argument. Elles renvoient toujours ``None`` ou une instance :ref:" "`d'objet correspondance `. ::" -#: ../Doc/howto/regex.rst:510 +#: howto/regex.rst:510 msgid "" "Under the hood, these functions simply create a pattern object for you and " "call the appropriate method on it. They also store the compiled object in a " @@ -1130,7 +1128,7 @@ msgstr "" "l'objet compilé dans un cache afin que les appels suivants qui utilisent la " "même RE n'aient pas besoin d'analyser le motif une nouvelle fois." -#: ../Doc/howto/regex.rst:515 +#: howto/regex.rst:515 msgid "" "Should you use these module-level functions, or should you get the pattern " "and call its methods yourself? If you're accessing a regex within a loop, " @@ -1143,11 +1141,11 @@ msgstr "" "d'économiser quelques appels de fonctions. En dehors des boucles, il n'y a " "pas beaucoup de différence grâce au cache interne." -#: ../Doc/howto/regex.rst:523 +#: howto/regex.rst:523 msgid "Compilation Flags" msgstr "Options de compilation" -#: ../Doc/howto/regex.rst:525 +#: howto/regex.rst:525 msgid "" "Compilation flags let you modify some aspects of how regular expressions " "work. Flags are available in the :mod:`re` module under two names, a long " @@ -1168,7 +1166,7 @@ msgstr "" "bit *OR* ; par exemple, ``re.I | re.M`` active à la fois les options :const:" "`I` et :const:`M`." -#: ../Doc/howto/regex.rst:533 +#: howto/regex.rst:533 msgid "" "Here's a table of the available flags, followed by a more detailed " "explanation of each one." @@ -1176,76 +1174,76 @@ msgstr "" "Vous trouvez ci-dessous le tableau des options disponibles, suivies " "d'explications détaillées." -#: ../Doc/howto/regex.rst:537 +#: howto/regex.rst:537 msgid "Flag" msgstr "Option" -#: ../Doc/howto/regex.rst:537 +#: howto/regex.rst:537 msgid "Meaning" msgstr "Signification" -#: ../Doc/howto/regex.rst:539 +#: howto/regex.rst:539 msgid ":const:`ASCII`, :const:`A`" msgstr ":const:`ASCII`, :const:`A`" -#: ../Doc/howto/regex.rst:539 +#: howto/regex.rst:539 msgid "" "Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " "on ASCII characters with the respective property." msgstr "" -"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et ``" -"\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " +"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et " +"``\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " "ayant la propriété demandée." -#: ../Doc/howto/regex.rst:543 +#: howto/regex.rst:543 msgid ":const:`DOTALL`, :const:`S`" msgstr ":const:`DOTALL`, :const:`S`" -#: ../Doc/howto/regex.rst:543 +#: howto/regex.rst:543 msgid "Make ``.`` match any character, including newlines." msgstr "" "Fait en sorte que ``.`` corresponde à n'importe quel caractère, caractère de " "retour à la ligne inclus." -#: ../Doc/howto/regex.rst:546 +#: howto/regex.rst:546 msgid ":const:`IGNORECASE`, :const:`I`" msgstr ":const:`IGNORECASE`, :const:`I`" -#: ../Doc/howto/regex.rst:546 +#: howto/regex.rst:546 msgid "Do case-insensitive matches." msgstr "Recherche une correspondance sans tenir compte de la casse." -#: ../Doc/howto/regex.rst:548 +#: howto/regex.rst:548 msgid ":const:`LOCALE`, :const:`L`" msgstr ":const:`LOCALE`, :const:`L`" -#: ../Doc/howto/regex.rst:548 +#: howto/regex.rst:548 msgid "Do a locale-aware match." msgstr "" "Recherche une correspondance en tenant compte de la configuration de la " "région." -#: ../Doc/howto/regex.rst:550 +#: howto/regex.rst:550 msgid ":const:`MULTILINE`, :const:`M`" msgstr ":const:`MULTILINE`, :const:`M`" -#: ../Doc/howto/regex.rst:550 +#: howto/regex.rst:550 msgid "Multi-line matching, affecting ``^`` and ``$``." msgstr "Correspondance multi-lignes, affecte ``^`` et ``$``." -#: ../Doc/howto/regex.rst:553 +#: howto/regex.rst:553 msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" msgstr "" -":const:`VERBOSE`, :const:`X` (pour *extended*, c-à-d étendu en anglais)" +":const:`VERBOSE`, :const:`X` (pour *extended*, c.-à-d. étendu en anglais)" -#: ../Doc/howto/regex.rst:553 +#: howto/regex.rst:553 msgid "" "Enable verbose REs, which can be organized more cleanly and understandably." msgstr "" "Active les RE verbeuses, qui peuvent être organisées de manière plus propre " "et compréhensible." -#: ../Doc/howto/regex.rst:562 +#: howto/regex.rst:562 msgid "" "Perform case-insensitive matching; character class and literal strings will " "match letters by ignoring case. For example, ``[A-Z]`` will match lowercase " @@ -1254,8 +1252,8 @@ msgid "" "z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, " "they will match the 52 ASCII letters and 4 additional non-ASCII letters: " "'İ' (U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin " -"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and 'K' (U" -"+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, " +"small letter dotless i), 'ſ' (U+017F, Latin small letter long s) and " +"'K' (U+212A, Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, " "``'spAM'``, or ``'ſpam'`` (the latter is matched only in Unicode mode). This " "lowercasing doesn't take the current locale into account; it will if you " "also set the :const:`LOCALE` flag." @@ -1276,7 +1274,7 @@ msgstr "" "de région courante ; elle le fait si vous mettez aussi l'option :const:" "`LOCALE`." -#: ../Doc/howto/regex.rst:580 +#: howto/regex.rst:580 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " "dependent on the current locale instead of the Unicode database." @@ -1285,7 +1283,7 @@ msgstr "" "à la casse dépendants de la configuration de la région courante au lieu de " "la base de données Unicode." -#: ../Doc/howto/regex.rst:583 +#: howto/regex.rst:583 msgid "" "Locales are a feature of the C library intended to help in writing programs " "that take account of language differences. For example, if you're " @@ -1315,15 +1313,15 @@ msgstr "" "certaines fonctions C diront à votre programme que l'octet codant ``é`` doit " "être considéré comme une lettre. Définir l'option :const:`LOCALE` lors de la " "compilation d'une expression régulière fait que l'objet compilé résultant " -"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à ``" -"\\w+`` de correspondre avec les mots français tel qu'attendu. L'utilisation " -"de cette option est déconseillée en Python 3 car le mécanisme de locale est " -"très peu fiable, il ne gère qu'une seule \"culture\" à la fois et il ne " -"fonctionne qu'avec des locales 8 bits. La correspondance Unicode est déjà " -"activée par défaut dans Python 3 pour les motifs Unicode (type *str*) et " -"elle est capable de gérer différentes configurations de régions." +"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à " +"``\\w+`` de correspondre avec les mots français tel qu'attendu. " +"L'utilisation de cette option est déconseillée en Python 3 car le mécanisme " +"de locale est très peu fiable, il ne gère qu'une seule \"culture\" à la fois " +"et il ne fonctionne qu'avec des locales 8 bits. La correspondance Unicode " +"est déjà activée par défaut dans Python 3 pour les motifs Unicode (type " +"*str*) et elle est capable de gérer différentes configurations de régions." -#: ../Doc/howto/regex.rst:605 +#: howto/regex.rst:605 msgid "" "(``^`` and ``$`` haven't been explained yet; they'll be introduced in " "section :ref:`more-metacharacters`.)" @@ -1331,7 +1329,7 @@ msgstr "" "Nota : ``^`` et ``$`` n'ont pas encore été expliqués ; ils sont introduits " "dans la section :ref:`more-metacharacters`." -#: ../Doc/howto/regex.rst:608 +#: howto/regex.rst:608 msgid "" "Usually ``^`` matches only at the beginning of the string, and ``$`` matches " "only at the end of the string and immediately before the newline (if any) at " @@ -1350,7 +1348,7 @@ msgstr "" "fin de la chaîne de caractères ou à la fin de chaque ligne (précédant " "immédiatement chaque nouvelle ligne)." -#: ../Doc/howto/regex.rst:621 +#: howto/regex.rst:621 msgid "" "Makes the ``'.'`` special character match any character at all, including a " "newline; without this flag, ``'.'`` will match anything *except* a newline." @@ -1359,7 +1357,7 @@ msgstr "" "caractère, y compris le retour à la ligne ; sans cette option, ``'.'`` " "correspond avec tout, *sauf* le retour à la ligne." -#: ../Doc/howto/regex.rst:629 +#: howto/regex.rst:629 msgid "" "Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` and ``\\S`` perform ASCII-" "only matching instead of full Unicode matching. This is only meaningful for " @@ -1370,7 +1368,7 @@ msgstr "" "caractères Unicode. Cette option n'a de sens que pour des motifs Unicode, " "elle est ignorée pour les motifs *bytes*." -#: ../Doc/howto/regex.rst:638 +#: howto/regex.rst:638 msgid "" "This flag allows you to write regular expressions that are more readable by " "granting you more flexibility in how you can format them. When this flag " @@ -1391,19 +1389,19 @@ msgstr "" "commentaires commencent par un ``'#'`` qui n'est ni dans une classe de " "caractères, ni précédé d'une barre oblique inverse." -#: ../Doc/howto/regex.rst:647 +#: howto/regex.rst:647 msgid "" "For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " "it is to read? ::" msgstr "" "Par exemple, voici une RE qui utilise :const:`re.VERBOSE` ; vous pouvez " -"constater qu'elle est beaucoup plus facile à lire ::" +"constater qu'elle est beaucoup plus facile à lire ::" -#: ../Doc/howto/regex.rst:660 +#: howto/regex.rst:660 msgid "Without the verbose setting, the RE would look like this::" msgstr "Sans l'option verbeuse, cette RE ressemble à ceci ::" -#: ../Doc/howto/regex.rst:666 +#: howto/regex.rst:666 msgid "" "In the above example, Python's automatic concatenation of string literals " "has been used to break up the RE into smaller pieces, but it's still more " @@ -1414,11 +1412,11 @@ msgstr "" "morceaux, mais la RE reste plus difficile à comprendre que sa version " "utilisant :const:`re.VERBOSE`." -#: ../Doc/howto/regex.rst:672 +#: howto/regex.rst:672 msgid "More Pattern Power" msgstr "Des motifs plus puissants" -#: ../Doc/howto/regex.rst:674 +#: howto/regex.rst:674 msgid "" "So far we've only covered a part of the features of regular expressions. In " "this section, we'll cover some new metacharacters, and how to use groups to " @@ -1429,11 +1427,11 @@ msgstr "" "nouveaux métacaractères et l'utilisation des groupes pour récupérer des " "portions de textes correspondantes." -#: ../Doc/howto/regex.rst:682 +#: howto/regex.rst:682 msgid "More Metacharacters" msgstr "Plus de métacaractères" -#: ../Doc/howto/regex.rst:684 +#: howto/regex.rst:684 msgid "" "There are some metacharacters that we haven't covered yet. Most of them " "will be covered in this section." @@ -1441,7 +1439,7 @@ msgstr "" "Nous n'avons pas encore couvert tous les métacaractères. Cette section " "traite de la plupart de ceux que nous n'avons pas abordés." -#: ../Doc/howto/regex.rst:687 +#: howto/regex.rst:687 msgid "" "Some of the remaining metacharacters to be discussed are :dfn:`zero-width " "assertions`. They don't cause the engine to advance through the string; " @@ -1462,11 +1460,11 @@ msgstr "" "correspondent à un endroit donné, elles correspondent automatiquement un " "nombre infini de fois." -#: ../Doc/howto/regex.rst:703 +#: howto/regex.rst:703 msgid "``|``" msgstr "``|``" -#: ../Doc/howto/regex.rst:696 +#: howto/regex.rst:696 msgid "" "Alternation, or the \"or\" operator. If *A* and *B* are regular " "expressions, ``A|B`` will match any string that matches either *A* or *B*. " @@ -1482,7 +1480,7 @@ msgstr "" "``'Crow'`` ou ``'Servo'``, mais pas avec ``'Cro'``, un ``'w'`` ou un " "``'S'``, ou encore ``'ervo'``." -#: ../Doc/howto/regex.rst:702 +#: howto/regex.rst:702 msgid "" "To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " "class, as in ``[|]``." @@ -1490,11 +1488,11 @@ msgstr "" "Pour correspondre avec un ``'|'`` littéral, utilisez ``\\|`` ou placez-le " "dans une classe de caractères, comme ceci ``[|]``." -#: ../Doc/howto/regex.rst:718 +#: howto/regex.rst:718 msgid "``^``" msgstr "``^``" -#: ../Doc/howto/regex.rst:706 +#: howto/regex.rst:706 msgid "" "Matches at the beginning of lines. Unless the :const:`MULTILINE` flag has " "been set, this will only match at the beginning of the string. In :const:" @@ -1506,7 +1504,7 @@ msgstr "" "mode :const:`MULTILINE`, cela fait aussi correspondre immédiatement après " "chaque nouvelle ligne à l'intérieur de la chaîne." -#: ../Doc/howto/regex.rst:710 +#: howto/regex.rst:710 msgid "" "For example, if you wish to match the word ``From`` only at the beginning of " "a line, the RE to use is ``^From``. ::" @@ -1514,15 +1512,15 @@ msgstr "" "Par exemple, si vous voulez trouver le mot ``From`` uniquement quand il est " "en début de ligne, la RE à utiliser est ``^From``. ::" -#: ../Doc/howto/regex.rst:718 +#: howto/regex.rst:718 msgid "To match a literal ``'^'``, use ``\\^``." msgstr "Pour trouver un ``'^'`` littéral, utilisez ``\\^``." -#: ../Doc/howto/regex.rst:732 +#: howto/regex.rst:732 msgid "``$``" msgstr "``$``" -#: ../Doc/howto/regex.rst:721 +#: howto/regex.rst:721 msgid "" "Matches at the end of a line, which is defined as either the end of the " "string, or any location followed by a newline character. ::" @@ -1530,7 +1528,7 @@ msgstr "" "Correspond à une fin de ligne, ce qui veut dire soit la fin de la chaîne, " "soit tout emplacement qui est suivi du caractère de nouvelle ligne. ::" -#: ../Doc/howto/regex.rst:731 +#: howto/regex.rst:731 msgid "" "To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " "class, as in ``[$]``." @@ -1538,11 +1536,11 @@ msgstr "" "Pour trouver un ``'$'`` littéral, utilisez ``\\$`` ou placez-le à " "l'intérieur d'une classe de caractères, comme ceci ``[$]``." -#: ../Doc/howto/regex.rst:738 +#: howto/regex.rst:738 msgid "``\\A``" msgstr "``\\A``" -#: ../Doc/howto/regex.rst:735 +#: howto/regex.rst:735 msgid "" "Matches only at the start of the string. When not in :const:`MULTILINE` " "mode, ``\\A`` and ``^`` are effectively the same. In :const:`MULTILINE` " @@ -1557,19 +1555,19 @@ msgstr "" "emplacements situés immédiatement après une nouvelle ligne à l'intérieur de " "la chaîne." -#: ../Doc/howto/regex.rst:741 +#: howto/regex.rst:741 msgid "``\\Z``" msgstr "``\\Z``" -#: ../Doc/howto/regex.rst:741 +#: howto/regex.rst:741 msgid "Matches only at the end of the string." msgstr "Correspond uniquement à la fin d'une chaîne de caractères." -#: ../Doc/howto/regex.rst:776 +#: howto/regex.rst:776 msgid "``\\b``" msgstr "``\\b``" -#: ../Doc/howto/regex.rst:744 +#: howto/regex.rst:744 msgid "" "Word boundary. This is a zero-width assertion that matches only at the " "beginning or end of a word. A word is defined as a sequence of alphanumeric " @@ -1581,7 +1579,7 @@ msgstr "" "séquence de caractères alphanumériques ; ainsi, la fin d'un mot est indiquée " "par un \"blanc\" ou un caractère non-alphanumérique." -#: ../Doc/howto/regex.rst:749 +#: howto/regex.rst:749 msgid "" "The following example matches ``class`` only when it's a complete word; it " "won't match when it's contained inside another word. ::" @@ -1590,12 +1588,12 @@ msgstr "" "complet ; il n'y a pas de correspondance quand il est à l'intérieur d'un " "autre mot. ::" -#: ../Doc/howto/regex.rst:760 +#: howto/regex.rst:760 msgid "" "There are two subtleties you should remember when using this special " "sequence. First, this is the worst collision between Python's string " -"literals and regular expression sequences. In Python's string literals, ``" -"\\b`` is the backspace character, ASCII value 8. If you're not using raw " +"literals and regular expression sequences. In Python's string literals, " +"``\\b`` is the backspace character, ASCII value 8. If you're not using raw " "strings, then Python will convert the ``\\b`` to a backspace, and your RE " "won't match as you expect it to. The following example looks the same as our " "previous RE, but omits the ``'r'`` in front of the RE string. ::" @@ -1610,21 +1608,21 @@ msgstr "" "ressemble à notre RE précédente, mais nous avons omis le ```'r'`` devant la " "chaîne RE. ::" -#: ../Doc/howto/regex.rst:774 +#: howto/regex.rst:774 msgid "" -"Second, inside a character class, where there's no use for this assertion, ``" -"\\b`` represents the backspace character, for compatibility with Python's " +"Second, inside a character class, where there's no use for this assertion, " +"``\\b`` represents the backspace character, for compatibility with Python's " "string literals." msgstr "" "Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu " "d'être, ``\\b`` représente le caractère retour-arrière, afin d'être " "compatible avec les littéraux de chaînes de caractères." -#: ../Doc/howto/regex.rst:781 +#: howto/regex.rst:781 msgid "``\\B``" msgstr "``\\B``" -#: ../Doc/howto/regex.rst:779 +#: howto/regex.rst:779 msgid "" "Another zero-width assertion, this is the opposite of ``\\b``, only matching " "when the current position is not at a word boundary." @@ -1633,11 +1631,11 @@ msgstr "" "dire qu'elle fait correspondre uniquement les emplacements qui ne sont pas à " "la limite d'un mot." -#: ../Doc/howto/regex.rst:784 +#: howto/regex.rst:784 msgid "Grouping" msgstr "Regroupement" -#: ../Doc/howto/regex.rst:786 +#: howto/regex.rst:786 msgid "" "Frequently you need to obtain more information than just whether the RE " "matched or not. Regular expressions are often used to dissect strings by " @@ -1653,7 +1651,7 @@ msgstr "" "diviser en un nom d'en-tête et une valeur associée, séparés par un ``':'``, " "comme ceci :" -#: ../Doc/howto/regex.rst:799 +#: howto/regex.rst:799 msgid "" "This can be handled by writing a regular expression which matches an entire " "header line, and has one group which matches the header name, and another " @@ -1663,13 +1661,13 @@ msgstr "" "ligne d'en-tête entière et qui comporte un groupe correspondant au nom de " "l'en-tête, et un autre groupe correspondant à la valeur de l'en-tête." -#: ../Doc/howto/regex.rst:803 +#: howto/regex.rst:803 msgid "" "Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " "``')'`` have much the same meaning as they do in mathematical expressions; " "they group together the expressions contained inside them, and you can " -"repeat the contents of a group with a repeating qualifier, such as ``*``, ``" -"+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " +"repeat the contents of a group with a repeating qualifier, such as ``*``, " +"``+``, ``?``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " "repetitions of ``ab``. ::" msgstr "" "Les groupes sont délimités par les métacaractères marqueurs ``'('``et " @@ -1679,7 +1677,7 @@ msgstr "" "quantificateur, comme ``*``, ``+``, ``?`` ou ``{m,n}``. Par exemple, " "``(ab)*`` correspond à zéro, une ou plusieurs fois ``ab``. ::" -#: ../Doc/howto/regex.rst:814 +#: howto/regex.rst:814 msgid "" "Groups indicated with ``'('``, ``')'`` also capture the starting and ending " "index of the text that they match; this can be retrieved by passing an " @@ -1700,7 +1698,7 @@ msgstr "" "voyons comment exprimer les groupes qui ne capturent pas l'étendue du texte " "avec lequel ils correspondent. ::" -#: ../Doc/howto/regex.rst:830 +#: howto/regex.rst:830 msgid "" "Subgroups are numbered from left to right, from 1 upward. Groups can be " "nested; to determine the number, just count the opening parenthesis " @@ -1711,7 +1709,7 @@ msgstr "" "suffit de compter le nombre de parenthèses ouvrantes de la gauche vers la " "droite. ::" -#: ../Doc/howto/regex.rst:843 +#: howto/regex.rst:843 msgid "" ":meth:`~re.Match.group` can be passed multiple group numbers at a time, in " "which case it will return a tuple containing the corresponding values for " @@ -1721,7 +1719,7 @@ msgstr "" "même temps, elle vous renvoie alors un *tuple* contenant les valeurs " "correspondantes pour ces groupes. ::" -#: ../Doc/howto/regex.rst:849 +#: howto/regex.rst:849 msgid "" "The :meth:`~re.Match.groups` method returns a tuple containing the strings " "for all the subgroups, from 1 up to however many there are. ::" @@ -1730,7 +1728,7 @@ msgstr "" "chaînes pour tous les sous-groupes, en commençant par le numéro 1 jusqu'au " "dernier. ::" -#: ../Doc/howto/regex.rst:855 +#: howto/regex.rst:855 msgid "" "Backreferences in a pattern allow you to specify that the contents of an " "earlier capturing group must also be found at the current location in the " @@ -1748,12 +1746,12 @@ msgstr "" "d'un nombre pour insérer des caractères arbitraires dans une chaîne ; soyez " "sûr d'utiliser une chaîne brute quand vous faites des renvois dans une RE." -#: ../Doc/howto/regex.rst:863 +#: howto/regex.rst:863 msgid "For example, the following RE detects doubled words in a string. ::" msgstr "" "Par exemple, la RE suivante détecte les mots doublés dans une chaîne. ::" -#: ../Doc/howto/regex.rst:869 +#: howto/regex.rst:869 msgid "" "Backreferences like this aren't often useful for just searching through a " "string --- there are few text formats which repeat data in this way --- but " @@ -1765,11 +1763,11 @@ msgstr "" "qui répètent des données ainsi --- mais vous verrez bientôt qu'ils sont " "*très* utiles pour effectuer des substitutions dans les chaînes." -#: ../Doc/howto/regex.rst:875 +#: howto/regex.rst:875 msgid "Non-capturing and Named Groups" msgstr "Groupes non de capture et groupes nommés" -#: ../Doc/howto/regex.rst:877 +#: howto/regex.rst:877 msgid "" "Elaborate REs may use many groups, both to capture substrings of interest, " "and to group and structure the RE itself. In complex REs, it becomes " @@ -1785,12 +1783,12 @@ msgstr "" "expressions régulières. Nous allons donc commencer en examinant cette " "syntaxe." -#: ../Doc/howto/regex.rst:883 +#: howto/regex.rst:883 msgid "" "Perl 5 is well known for its powerful additions to standard regular " "expressions. For these new features the Perl developers couldn't choose new " -"single-keystroke metacharacters or new special sequences beginning with ``" -"\\`` without making Perl's regular expressions confusingly different from " +"single-keystroke metacharacters or new special sequences beginning with " +"``\\`` without making Perl's regular expressions confusingly different from " "standard REs. If they chose ``&`` as a new metacharacter, for example, old " "expressions would be assuming that ``&`` was a regular character and " "wouldn't have escaped it by writing ``\\&`` or ``[&]``." @@ -1804,7 +1802,7 @@ msgstr "" "auraient considéré que ``&`` était un caractère standard et ne l'aurait pas " "échappé en écrivant ``\\&`` ou ``[&]``." -#: ../Doc/howto/regex.rst:890 +#: howto/regex.rst:890 msgid "" "The solution chosen by the Perl developers was to use ``(?...)`` as the " "extension syntax. ``?`` immediately after a parenthesis was a syntax error " @@ -1822,7 +1820,7 @@ msgstr "" "donc ``(?=truc)`` est une chose (une assertion positive anticipée) et ``(?:" "truc)`` est une autre chose (la sous-expression ``truc`` que l'on groupe)." -#: ../Doc/howto/regex.rst:898 +#: howto/regex.rst:898 msgid "" "Python supports several of Perl's extensions and adds an extension syntax to " "Perl's extension syntax. If the first character after the question mark is " @@ -1833,7 +1831,7 @@ msgstr "" "d'interrogation est ``P``, cela signifie que c'est une extension spécifique " "à Python." -#: ../Doc/howto/regex.rst:903 +#: howto/regex.rst:903 msgid "" "Now that we've looked at the general extension syntax, we can return to the " "features that simplify working with groups in complex REs." @@ -1842,7 +1840,7 @@ msgstr "" "aux fonctionnalités qui simplifient le travail avec les groupes dans des RE " "complexes." -#: ../Doc/howto/regex.rst:906 +#: howto/regex.rst:906 msgid "" "Sometimes you'll want to use a group to denote a part of a regular " "expression, but aren't interested in retrieving the group's contents. You " @@ -1856,7 +1854,7 @@ msgstr "" "``(?:...)``, où vous remplacez les ``...`` par n'importe quelle expression " "régulière. ::" -#: ../Doc/howto/regex.rst:918 +#: howto/regex.rst:918 msgid "" "Except for the fact that you can't retrieve the contents of what the group " "matched, a non-capturing group behaves exactly the same as a capturing " @@ -1878,7 +1876,7 @@ msgstr "" "qu'il n'y a aucune différence de performance dans la recherche de groupes, " "de capture ou non ; les deux formes travaillent à la même vitesse." -#: ../Doc/howto/regex.rst:927 +#: howto/regex.rst:927 msgid "" "A more significant feature is named groups: instead of referring to them by " "numbers, groups can be referenced by a name." @@ -1887,7 +1885,7 @@ msgstr "" "faire référence par des nombres, vous pouvez référencer des groupes par leur " "nom." -#: ../Doc/howto/regex.rst:930 +#: howto/regex.rst:930 msgid "" "The syntax for a named group is one of the Python-specific extensions: ``(?" "P...)``. *name* is, obviously, the name of the group. Named groups " @@ -1908,13 +1906,15 @@ msgstr "" "désirés. Les groupes nommés se voient toujours attribuer un numéro, vous " "pouvez ainsi récupérer les informations d'un groupe de deux façons ::" -#: ../Doc/howto/regex.rst:945 +#: howto/regex.rst:945 msgid "" "Additionally, you can retrieve named groups as a dictionary with :meth:`~re." "Match.groupdict`::" msgstr "" +"De plus, vous pouvez récupérer les groupes nommés comme dictionnaire avec :" +"meth:`~re.Match.groupdict` ::" -#: ../Doc/howto/regex.rst:952 +#: howto/regex.rst:952 msgid "" "Named groups are handy because they let you use easily-remembered names, " "instead of having to remember numbers. Here's an example RE from the :mod:" @@ -1923,7 +1923,7 @@ msgstr "" "Les groupes nommés sont pratiques car il est plus facile de se rappeler un " "nom qu'un numéro. Voici un exemple de RE tirée du module :mod:`imaplib` ::" -#: ../Doc/howto/regex.rst:963 +#: howto/regex.rst:963 msgid "" "It's obviously much easier to retrieve ``m.group('zonem')``, instead of " "having to remember to retrieve group 9." @@ -1931,15 +1931,15 @@ msgstr "" "Il est évidemment plus facile de récupérer ``m.group('zonem')`` que de se " "rappeler de récupérer le groupe 9." -#: ../Doc/howto/regex.rst:966 +#: howto/regex.rst:966 msgid "" "The syntax for backreferences in an expression such as ``(...)\\1`` refers " "to the number of the group. There's naturally a variant that uses the group " "name instead of the number. This is another Python extension: ``(?P=name)`` " "indicates that the contents of the group called *name* should again be " "matched at the current point. The regular expression for finding doubled " -"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P\\w+)\\s" -"+(?P=word)\\b``::" +"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?" +"P\\w+)\\s+(?P=word)\\b``::" msgstr "" "La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait " "référence au numéro du groupe. Il y a naturellement une variante qui utilise " @@ -1949,11 +1949,11 @@ msgstr "" "mots doublés, ``\\b(\\w+)\\s+\\1\\b`` peut ainsi être ré-écrite en ``\\b(?" "P\\w+)\\s+(?P=mot)\\b`` ::" -#: ../Doc/howto/regex.rst:979 +#: howto/regex.rst:979 msgid "Lookahead Assertions" msgstr "Assertions prédictives" -#: ../Doc/howto/regex.rst:981 +#: howto/regex.rst:981 msgid "" "Another zero-width assertion is the lookahead assertion. Lookahead " "assertions are available in both positive and negative form, and look like " @@ -1963,11 +1963,11 @@ msgstr "" "assertion prédictive peut s'exprimer sous deux formes, la positive et la " "négative, comme ceci :" -#: ../Doc/howto/regex.rst:989 +#: howto/regex.rst:989 msgid "``(?=...)``" msgstr "``(?=...)``" -#: ../Doc/howto/regex.rst:985 +#: howto/regex.rst:985 msgid "" "Positive lookahead assertion. This succeeds if the contained regular " "expression, represented here by ``...``, successfully matches at the current " @@ -1982,11 +1982,11 @@ msgstr "" "n'avance pas ; le reste du motif est testé à l'endroit même où l'assertion a " "commencé." -#: ../Doc/howto/regex.rst:994 +#: howto/regex.rst:994 msgid "``(?!...)``" msgstr "``(?!...)``" -#: ../Doc/howto/regex.rst:992 +#: howto/regex.rst:992 msgid "" "Negative lookahead assertion. This is the opposite of the positive " "assertion; it succeeds if the contained expression *doesn't* match at the " @@ -1996,7 +1996,7 @@ msgstr "" "elle réussit si l'expression régulière contenue *ne* correspond *pas* à " "l'emplacement courant dans la chaine." -#: ../Doc/howto/regex.rst:996 +#: howto/regex.rst:996 msgid "" "To make this concrete, let's look at a case where a lookahead is useful. " "Consider a simple pattern to match a filename and split it apart into a base " @@ -2009,15 +2009,15 @@ msgstr "" "exemple, dans ``news.rc``, ``news`` est le nom de base et ``rc`` est " "l'extension du nom de fichier." -#: ../Doc/howto/regex.rst:1001 +#: howto/regex.rst:1001 msgid "The pattern to match this is quite simple:" msgstr "Le motif de correspondance est plutôt simple :" -#: ../Doc/howto/regex.rst:1003 +#: howto/regex.rst:1003 msgid "``.*[.].*$``" msgstr "``.*[.].*$``" -#: ../Doc/howto/regex.rst:1005 +#: howto/regex.rst:1005 msgid "" "Notice that the ``.`` needs to be treated specially because it's a " "metacharacter, so it's inside a character class to only match that specific " @@ -2033,7 +2033,7 @@ msgstr "" "bien inclus dans l'extension. Cette expression régulière fait correspondre " "``truc.bar``, ``autoexec.bat``, ``sendmail.cf`` et ``printers.conf``." -#: ../Doc/howto/regex.rst:1012 +#: howto/regex.rst:1012 msgid "" "Now, consider complicating the problem a bit; what if you want to match " "filenames where the extension is not ``bat``? Some incorrect attempts:" @@ -2042,7 +2042,7 @@ msgstr "" "correspondre les noms de fichiers dont l'extension n'est pas ``bat`` ? voici " "quelques tentatives incorrectes :" -#: ../Doc/howto/regex.rst:1015 +#: howto/regex.rst:1015 msgid "" "``.*[.][^b].*$`` The first attempt above tries to exclude ``bat`` by " "requiring that the first character of the extension is not a ``b``. This is " @@ -2052,11 +2052,11 @@ msgstr "" "spécifiant que le premier caractère de l'extension ne doit pas être ``b``. " "Cela ne fonctionne pas, car le motif n'accepte pas ``truc.bar``." -#: ../Doc/howto/regex.rst:1019 +#: howto/regex.rst:1019 msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" -#: ../Doc/howto/regex.rst:1021 +#: howto/regex.rst:1021 msgid "" "The expression gets messier when you try to patch up the first solution by " "requiring one of the following cases to match: the first character of the " @@ -2075,11 +2075,11 @@ msgstr "" "``sendmail.cf``. Compliquons encore une fois le motif pour essayer de le " "réparer." -#: ../Doc/howto/regex.rst:1029 +#: howto/regex.rst:1029 msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" -#: ../Doc/howto/regex.rst:1031 +#: howto/regex.rst:1031 msgid "" "In the third attempt, the second and third letters are all made optional in " "order to allow matching extensions shorter than three characters, such as " @@ -2089,7 +2089,7 @@ msgstr "" "devenues facultatives afin de permettre la correspondance avec des " "extensions plus courtes que trois caractères, comme ``sendmail.cf``." -#: ../Doc/howto/regex.rst:1035 +#: howto/regex.rst:1035 msgid "" "The pattern's getting really complicated now, which makes it hard to read " "and understand. Worse, if the problem changes and you want to exclude both " @@ -2101,18 +2101,18 @@ msgstr "" "à la fois ``bat`` et ``exe`` en tant qu'extensions, le modèle deviendra " "encore plus compliqué et confus." -#: ../Doc/howto/regex.rst:1040 +#: howto/regex.rst:1040 msgid "A negative lookahead cuts through all this confusion:" msgstr "Une assertion prédictive négative supprime toute cette confusion :" -#: ../Doc/howto/regex.rst:1042 +#: howto/regex.rst:1042 msgid "" "``.*[.](?!bat$)[^.]*$`` The negative lookahead means: if the expression " -"``bat`` doesn't match at this point, try the rest of the pattern; if ``bat" -"$`` does match, the whole pattern will fail. The trailing ``$`` is required " -"to ensure that something like ``sample.batch``, where the extension only " -"starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that the " -"pattern works when there are multiple dots in the filename." +"``bat`` doesn't match at this point, try the rest of the pattern; if " +"``bat$`` does match, the whole pattern will fail. The trailing ``$`` is " +"required to ensure that something like ``sample.batch``, where the extension " +"only starts with ``bat``, will be allowed. The ``[^.]*`` makes sure that " +"the pattern works when there are multiple dots in the filename." msgstr "" "``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si " "l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du " @@ -2122,7 +2122,7 @@ msgstr "" "``[^...]*`` s'assure que le motif fonctionne lorsqu'il y a plusieurs points " "dans le nom de fichier." -#: ../Doc/howto/regex.rst:1049 +#: howto/regex.rst:1049 msgid "" "Excluding another filename extension is now easy; simply add it as an " "alternative inside the assertion. The following pattern excludes filenames " @@ -2132,15 +2132,15 @@ msgstr "" "suffit de l'ajouter comme alternative à l'intérieur de l'assertion. Le motif " "suivant exclut les noms de fichiers qui se terminent par ``bat`` ou ``exe`` :" -#: ../Doc/howto/regex.rst:1053 +#: howto/regex.rst:1053 msgid "``.*[.](?!bat$|exe$)[^.]*$``" msgstr "``.*[.](?!bat$|exe$)[^.]*$``" -#: ../Doc/howto/regex.rst:1057 +#: howto/regex.rst:1057 msgid "Modifying Strings" msgstr "Modification de chaînes" -#: ../Doc/howto/regex.rst:1059 +#: howto/regex.rst:1059 msgid "" "Up to this point, we've simply performed searches against a static string. " "Regular expressions are also commonly used to modify strings in various " @@ -2151,21 +2151,21 @@ msgstr "" "pour modifier les chaînes de caractères de diverses manières, en utilisant " "les méthodes suivantes des motifs :" -#: ../Doc/howto/regex.rst:1066 +#: howto/regex.rst:1066 msgid "``split()``" msgstr "``split()``" -#: ../Doc/howto/regex.rst:1066 +#: howto/regex.rst:1066 msgid "Split the string into a list, splitting it wherever the RE matches" msgstr "" "Découpe la chaîne de caractère en liste, la découpant partout où la RE " "correspond" -#: ../Doc/howto/regex.rst:1069 +#: howto/regex.rst:1069 msgid "``sub()``" msgstr "``sub()``" -#: ../Doc/howto/regex.rst:1069 +#: howto/regex.rst:1069 msgid "" "Find all substrings where the RE matches, and replace them with a different " "string" @@ -2173,11 +2173,11 @@ msgstr "" "Recherche toutes les sous-chaînes de caractères où la RE correspond et les " "substitue par une chaîne de caractères différente" -#: ../Doc/howto/regex.rst:1072 +#: howto/regex.rst:1072 msgid "``subn()``" msgstr "``subn()``" -#: ../Doc/howto/regex.rst:1072 +#: howto/regex.rst:1072 msgid "" "Does the same thing as :meth:`!sub`, but returns the new string and the " "number of replacements" @@ -2185,11 +2185,11 @@ msgstr "" "Fait la même chose que :meth:`!sub`, mais renvoie la nouvelle chaîne et le " "nombre de remplacements effectués" -#: ../Doc/howto/regex.rst:1079 +#: howto/regex.rst:1079 msgid "Splitting Strings" msgstr "Découpage de chaînes" -#: ../Doc/howto/regex.rst:1081 +#: howto/regex.rst:1081 msgid "" "The :meth:`~re.Pattern.split` method of a pattern splits a string apart " "wherever the RE matches, returning a list of the pieces. It's similar to " @@ -2206,7 +2206,7 @@ msgstr "" "\"blancs\" ou suivant une chaîne définie. Comme vous pouvez vous y attendre, " "il y a aussi une fonction :func:`re.split` de niveau module." -#: ../Doc/howto/regex.rst:1092 +#: howto/regex.rst:1092 msgid "" "Split *string* by the matches of the regular expression. If capturing " "parentheses are used in the RE, then their contents will also be returned as " @@ -2218,7 +2218,7 @@ msgstr "" "également renvoyé dans la liste résultante. Si *maxsplit* n'est pas nul, au " "plus *maxsplit* découpages sont effectués." -#: ../Doc/howto/regex.rst:1097 +#: howto/regex.rst:1097 msgid "" "You can limit the number of splits made, by passing a value for *maxsplit*. " "When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " @@ -2232,7 +2232,7 @@ msgstr "" "élément de la liste. Dans l'exemple suivant, le délimiteur est toute " "séquence de caractères non alphanumériques. ::" -#: ../Doc/howto/regex.rst:1109 +#: howto/regex.rst:1109 msgid "" "Sometimes you're not only interested in what the text between delimiters is, " "but also need to know what the delimiter was. If capturing parentheses are " @@ -2244,7 +2244,7 @@ msgstr "" "la RE, leurs valeurs sont également renvoyées dans la liste. Comparons les " "appels suivants ::" -#: ../Doc/howto/regex.rst:1121 +#: howto/regex.rst:1121 msgid "" "The module-level function :func:`re.split` adds the RE to be used as the " "first argument, but is otherwise the same. ::" @@ -2252,11 +2252,11 @@ msgstr "" "La fonction de niveau module :func:`re.split` ajoute la RE à utiliser comme " "premier argument, mais est par ailleurs identique. ::" -#: ../Doc/howto/regex.rst:1133 +#: howto/regex.rst:1133 msgid "Search and Replace" msgstr "Recherche et substitution" -#: ../Doc/howto/regex.rst:1135 +#: howto/regex.rst:1135 msgid "" "Another common task is to find all the matches for a pattern, and replace " "them with a different string. The :meth:`~re.Pattern.sub` method takes a " @@ -2268,7 +2268,7 @@ msgstr "" "Pattern.sub` prend une valeur de substitution, qui peut être une chaîne de " "caractères ou une fonction, et la chaîne à traiter." -#: ../Doc/howto/regex.rst:1142 +#: howto/regex.rst:1142 msgid "" "Returns the string obtained by replacing the leftmost non-overlapping " "occurrences of the RE in *string* by the replacement *replacement*. If the " @@ -2278,7 +2278,7 @@ msgstr "" "les plus à gauche de la RE dans *string* par la substitution *replacement*. " "Si le motif n'est pas trouvé, *string* est renvoyée inchangée." -#: ../Doc/howto/regex.rst:1146 +#: howto/regex.rst:1146 msgid "" "The optional argument *count* is the maximum number of pattern occurrences " "to be replaced; *count* must be a non-negative integer. The default value " @@ -2288,7 +2288,7 @@ msgstr "" "remplacer ; *count* doit être un entier positif ou nul. La valeur par défaut " "de 0 signifie qu'il faut remplacer toutes les occurrences." -#: ../Doc/howto/regex.rst:1150 +#: howto/regex.rst:1150 msgid "" "Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " "replaces colour names with the word ``colour``::" @@ -2296,7 +2296,7 @@ msgstr "" "Voici un exemple simple utilisant la méthode :meth:`~re.Pattern.sub`. Nous " "remplaçons les noms des couleurs par le mot ``colour`` ::" -#: ../Doc/howto/regex.rst:1159 +#: howto/regex.rst:1159 msgid "" "The :meth:`~re.Pattern.subn` method does the same work, but returns a 2-" "tuple containing the new string value and the number of replacements that " @@ -2306,7 +2306,7 @@ msgstr "" "couple contenant la nouvelle valeur de la chaîne de caractères et le nombre " "de remplacements effectués ::" -#: ../Doc/howto/regex.rst:1168 +#: howto/regex.rst:1168 msgid "" "Empty matches are replaced only when they're not adjacent to a previous " "empty match. ::" @@ -2314,13 +2314,13 @@ msgstr "" "Les correspondances vides ne sont remplacées que lorsqu'elles ne sont pas " "adjacentes à une correspondance vide précédente. ::" -#: ../Doc/howto/regex.rst:1175 +#: howto/regex.rst:1175 msgid "" "If *replacement* is a string, any backslash escapes in it are processed. " "That is, ``\\n`` is converted to a single newline character, ``\\r`` is " -"converted to a carriage return, and so forth. Unknown escapes such as ``" -"\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with the " -"substring matched by the corresponding group in the RE. This lets you " +"converted to a carriage return, and so forth. Unknown escapes such as " +"``\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with " +"the substring matched by the corresponding group in the RE. This lets you " "incorporate portions of the original text in the resulting replacement " "string." msgstr "" @@ -2332,7 +2332,7 @@ msgstr "" "correspondante au groupe dans le RE. Ceci vous permet d'incorporer des " "parties du texte original dans la chaîne de remplacement résultante." -#: ../Doc/howto/regex.rst:1182 +#: howto/regex.rst:1182 msgid "" "This example matches the word ``section`` followed by a string enclosed in " "``{``, ``}``, and changes ``section`` to ``subsection``::" @@ -2340,7 +2340,7 @@ msgstr "" "Cet exemple fait correspondre le mot ``section`` suivi par une chaîne " "encadrée par ``{`` et ``}``, et modifie ``section`` en ``subsection`` ::" -#: ../Doc/howto/regex.rst:1189 +#: howto/regex.rst:1189 msgid "" "There's also a syntax for referring to named groups as defined by the ``(?" "P...)`` syntax. ``\\g`` will use the substring matched by the " @@ -2355,13 +2355,13 @@ msgstr "" "par la syntaxe ``(?P....)``. ``\\g`` utilise la sous-chaîne " "correspondante au groupe nommé ``nom`` et ``\\g`` utilise le numéro " "de groupe correspondant. ``\\g<2>`` est donc l'équivalent de ``\\2``, mais " -"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` (``" -"\\20`` serait interprété comme une référence au groupe 20 et non comme une " -"référence au groupe 2 suivie du caractère littéral ``'0'``). Les " +"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` " +"(``\\20`` serait interprété comme une référence au groupe 20 et non comme " +"une référence au groupe 2 suivie du caractère littéral ``'0'``). Les " "substitutions suivantes sont toutes équivalentes mais utilisent les trois " "variantes de la chaîne de remplacement. ::" -#: ../Doc/howto/regex.rst:1206 +#: howto/regex.rst:1206 msgid "" "*replacement* can also be a function, which gives you even more control. If " "*replacement* is a function, the function is called for every non-" @@ -2376,7 +2376,7 @@ msgstr "" "fonction, qui peut utiliser cette information pour calculer la chaîne de " "remplacement désirée et la renvoyer." -#: ../Doc/howto/regex.rst:1212 +#: howto/regex.rst:1212 msgid "" "In the following example, the replacement function translates decimals into " "hexadecimal::" @@ -2384,7 +2384,7 @@ msgstr "" "Dans l'exemple suivant, la fonction de substitution convertit un nombre " "décimal en hexadécimal ::" -#: ../Doc/howto/regex.rst:1224 +#: howto/regex.rst:1224 msgid "" "When using the module-level :func:`re.sub` function, the pattern is passed " "as the first argument. The pattern may be provided as an object or as a " @@ -2398,14 +2398,14 @@ msgstr "" "d'objet ou de chaîne de caractères ; si vous avez besoin de spécifier des " "options pour l'expression régulière, vous devez soit utiliser un objet motif " "comme premier paramètre, soit utiliser des modificateurs intégrés dans la " -"chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb BBBBB" -"\")```renvoie ``'x x'``." +"chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb " +"BBBBB\")```renvoie ``'x x'``." -#: ../Doc/howto/regex.rst:1232 +#: howto/regex.rst:1232 msgid "Common Problems" msgstr "Problèmes classiques" -#: ../Doc/howto/regex.rst:1234 +#: howto/regex.rst:1234 msgid "" "Regular expressions are a powerful tool for some applications, but in some " "ways their behaviour isn't intuitive and at times they don't behave the way " @@ -2417,11 +2417,11 @@ msgstr "" "et, parfois, elles ne se comportent pas comme vous pouvez vous y attendre. " "Cette section met en évidence certains des pièges les plus courants." -#: ../Doc/howto/regex.rst:1240 +#: howto/regex.rst:1240 msgid "Use String Methods" msgstr "Utilisez les méthodes du type *string*" -#: ../Doc/howto/regex.rst:1242 +#: howto/regex.rst:1242 msgid "" "Sometimes using the :mod:`re` module is a mistake. If you're matching a " "fixed string, or a single character class, and you're not using any :mod:" @@ -2441,7 +2441,7 @@ msgstr "" "que l'implémentation est une seule petite boucle C qui a été optimisée, au " "lieu du gros moteur d'expressions régulières plus généraliste." -#: ../Doc/howto/regex.rst:1250 +#: howto/regex.rst:1250 msgid "" "One example might be replacing a single fixed string with another one; for " "example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " @@ -2463,7 +2463,7 @@ msgstr "" "de mot d'un côté et de l'autre ; c'est au-delà des capacités de la méthode :" "meth:`!replace`)." -#: ../Doc/howto/regex.rst:1259 +#: howto/regex.rst:1259 msgid "" "Another common task is deleting every occurrence of a single character from " "a string or replacing it with another single character. You might do this " @@ -2477,7 +2477,7 @@ msgstr "" "sub('\\n', ' ', S)``, mais :meth:`~str.translate` en est capable et est plus " "rapide que n'importe quelle opération d'expression régulière." -#: ../Doc/howto/regex.rst:1265 +#: howto/regex.rst:1265 msgid "" "In short, before turning to the :mod:`re` module, consider whether your " "problem can be solved with a faster and simpler string method." @@ -2485,11 +2485,11 @@ msgstr "" "Bref, avant de passer au module :mod:`re`, évaluez d'abord si votre problème " "peut être résolu avec une méthode de chaîne plus rapide et plus simple." -#: ../Doc/howto/regex.rst:1270 +#: howto/regex.rst:1270 msgid "match() versus search()" msgstr "*match()* contre *search()*" -#: ../Doc/howto/regex.rst:1272 +#: howto/regex.rst:1272 msgid "" "The :func:`~re.match` function only checks if the RE matches at the " "beginning of the string while :func:`~re.search` will scan forward through " @@ -2505,7 +2505,7 @@ msgstr "" "correspondance qui commence à 0 ; si la correspondance commence plus loin, :" "func:`!match` *ne la trouve pas*. ::" -#: ../Doc/howto/regex.rst:1283 +#: howto/regex.rst:1283 msgid "" "On the other hand, :func:`~re.search` will scan forward through the string, " "reporting the first match it finds. ::" @@ -2513,7 +2513,7 @@ msgstr "" "D'un autre côté, :func:`~re.search` balaie la chaîne de caractères, " "rapportant la première correspondance qu'elle trouve. ::" -#: ../Doc/howto/regex.rst:1291 +#: howto/regex.rst:1291 msgid "" "Sometimes you'll be tempted to keep using :func:`re.match`, and just add ``." "*`` to the front of your RE. Resist this temptation and use :func:`re." @@ -2534,7 +2534,7 @@ msgstr "" "rapidement la chaîne de caractères à la recherche du caractère de départ, " "n'essayant la correspondance complète que si un \"C\" a déjà été trouvé." -#: ../Doc/howto/regex.rst:1300 +#: howto/regex.rst:1300 msgid "" "Adding ``.*`` defeats this optimization, requiring scanning to the end of " "the string and then backtracking to find a match for the rest of the RE. " @@ -2545,11 +2545,11 @@ msgstr "" "une correspondance pour le reste de la RE. Préférez l'utilisation :func:`re." "search`." -#: ../Doc/howto/regex.rst:1306 +#: howto/regex.rst:1306 msgid "Greedy versus Non-Greedy" msgstr "Glouton contre non-glouton" -#: ../Doc/howto/regex.rst:1308 +#: howto/regex.rst:1308 msgid "" "When repeating a regular expression, as in ``a*``, the resulting action is " "to consume as much of the pattern as possible. This fact often bites you " @@ -2564,7 +2564,7 @@ msgstr "" "pour faire correspondre une seule balise HTML ne fonctionne pas en raison de " "la nature gloutonne de ``.*``. ::" -#: ../Doc/howto/regex.rst:1322 +#: howto/regex.rst:1322 msgid "" "The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " "of the string. There's still more left in the RE, though, and the ``>`` " @@ -2581,7 +2581,7 @@ msgstr "" "correspondance finale s'étend du ``'<'`` de ``''`` au ``'>'`` de ``''``, ce qui n'est pas ce que vous voulez." -#: ../Doc/howto/regex.rst:1329 +#: howto/regex.rst:1329 msgid "" "In this case, the solution is to use the non-greedy qualifiers ``*?``, ``+?" "``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " @@ -2596,7 +2596,7 @@ msgstr "" "échoue, le moteur avance caractère par caractère, ré-essayant ``'>'`` à " "chaque pas. Nous obtenons alors le bon résultat ::" -#: ../Doc/howto/regex.rst:1338 +#: howto/regex.rst:1338 msgid "" "(Note that parsing HTML or XML with regular expressions is painful. Quick-" "and-dirty patterns will handle common cases, but HTML and XML have special " @@ -2612,11 +2612,11 @@ msgstr "" "traite tous les cas possibles, les motifs seront *très* compliqués. " "Utilisez un module d'analyse HTML ou XML pour de telles tâches." -#: ../Doc/howto/regex.rst:1346 +#: howto/regex.rst:1346 msgid "Using re.VERBOSE" msgstr "Utilisez *re.VERBOSE*" -#: ../Doc/howto/regex.rst:1348 +#: howto/regex.rst:1348 msgid "" "By now you've probably noticed that regular expressions are a very compact " "notation, but they're not terribly readable. REs of moderate complexity can " @@ -2629,7 +2629,7 @@ msgstr "" "obliques inverses, de parenthèses et de métacaractères, ce qui la rend " "difficile à lire et à comprendre." -#: ../Doc/howto/regex.rst:1353 +#: howto/regex.rst:1353 msgid "" "For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " "regular expression can be helpful, because it allows you to format the " @@ -2639,7 +2639,7 @@ msgstr "" "l'expression régulière peut être utile ; cela vous permet de formater " "l'expression régulière de manière plus claire." -#: ../Doc/howto/regex.rst:1357 +#: howto/regex.rst:1357 msgid "" "The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " "expression that *isn't* inside a character class is ignored. This means " @@ -2659,15 +2659,15 @@ msgstr "" "ligne suivante. Lorsque vous l'utilisez avec des chaînes à triple " "guillemets, cela permet aux RE d'être formatées plus proprement ::" -#: ../Doc/howto/regex.rst:1374 +#: howto/regex.rst:1374 msgid "This is far more readable than::" -msgstr "Ceci est beaucoup plus lisible que::" +msgstr "Ceci est beaucoup plus lisible que ::" -#: ../Doc/howto/regex.rst:1380 +#: howto/regex.rst:1380 msgid "Feedback" msgstr "Vos commentaires" -#: ../Doc/howto/regex.rst:1382 +#: howto/regex.rst:1382 msgid "" "Regular expressions are a complicated topic. Did this document help you " "understand them? Were there parts that were unclear, or Problems you " @@ -2679,7 +2679,7 @@ msgstr "" "problèmes que vous avez rencontrés ne sont pas traités ici ? Si tel est le " "cas, merci d'envoyer vos suggestions d'améliorations à l'auteur." -#: ../Doc/howto/regex.rst:1387 +#: howto/regex.rst:1387 msgid "" "The most complete book on regular expressions is almost certainly Jeffrey " "Friedl's Mastering Regular Expressions, published by O'Reilly. " diff --git a/howto/sockets.po b/howto/sockets.po index 8c831bd858..9399611e69 100644 --- a/howto/sockets.po +++ b/howto/sockets.po @@ -3,33 +3,35 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-10 11:27+0200\n" -"PO-Revision-Date: 2019-06-10 15:41+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-05-08 15:38+0200\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/howto/sockets.rst:5 +#: howto/sockets.rst:5 msgid "Socket Programming HOWTO" -msgstr "" +msgstr "Guide pratique : programmation avec les *sockets*" -#: ../Doc/howto/sockets.rst:0 +#: howto/sockets.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/sockets.rst:7 +#: howto/sockets.rst:7 msgid "Gordon McMillan" msgstr "Gordon McMillan" -#: ../Doc/howto/sockets.rst:None +#: howto/sockets.rst:None msgid "Abstract" msgstr "Résumé" -#: ../Doc/howto/sockets.rst:12 +#: howto/sockets.rst:12 msgid "" "Sockets are used nearly everywhere, but are one of the most severely " "misunderstood technologies around. This is a 10,000 foot overview of " @@ -38,12 +40,18 @@ msgid "" "a lot of them), but I hope it will give you enough background to begin using " "them decently." msgstr "" +"Les connecteurs (*sockets*, en anglais) sont utilisés presque partout, mais " +"ils sont l'une des technologies les plus méconnues. En voici un aperçu très " +"général. Ce n'est pas vraiment un tutoriel — vous aurez encore du travail à " +"faire pour avoir un résultat opérationnel. Il ne couvre pas les détails (et " +"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment " +"d'informations pour commencer à les utiliser correctement." -#: ../Doc/howto/sockets.rst:20 +#: howto/sockets.rst:20 msgid "Sockets" -msgstr "Interfaces de connexion (*sockets*)" +msgstr "Connecteurs (*sockets*)" -#: ../Doc/howto/sockets.rst:22 +#: howto/sockets.rst:22 msgid "" "I'm only going to talk about INET (i.e. IPv4) sockets, but they account for " "at least 99% of the sockets in use. And I'll only talk about STREAM (i.e. " @@ -54,19 +62,19 @@ msgid "" "blocking sockets. But I'll start by talking about blocking sockets. You'll " "need to know how they work before dealing with non-blocking sockets." msgstr "" -"Je ne vais aborder que les connecteurs INET (i.e. IPv4), mais ils " -"représentent au moins 99% des connecteurs (*socket* en anglais) utilisés. Et " -"je n'aborderai que les connecteurs STREAM (i.e. TCP) — à moins que vous ne " -"sachiez vraiment ce que vous faites (auquel cas ce HOWTO n'est pas pour " -"vous !), vous obtiendrez un meilleur comportement et de meilleures " -"performances avec un connecteur STREAM que tout autre. Je vais essayer " +"Je ne parlerai que des connecteurs *INET* (c'est-à-dire IPv4), mais ils " +"représentent au moins 99 % des connecteurs utilisés. Et je ne parlerai que " +"des connecteurs *STREAM* (c.-à-d. *TCP*) — à moins que vous ne sachiez " +"vraiment ce que vous faites (auquel cas ce guide n'est pas pour vous), vous " +"obtiendrez un meilleur comportement et de meilleures performances avec un " +"connecteur *STREAM* qu'avec n'importe quel autre. Je vais essayer " "d'éclaircir le mystère de ce qu'est un connecteur, ainsi que quelques " "conseils sur la façon de travailler avec des connecteurs bloquants et non " -"bloquants. Mais je vais commencer par aborder les connecteurs bloquants. " -"Nous avons besoin de savoir comment ils fonctionnent avant de traiter les " +"bloquants. Mais je commencerai par parler des connecteurs bloquants. Vous " +"devez savoir comment ils fonctionnent avant de vous intéresser aux " "connecteurs non bloquants." -#: ../Doc/howto/sockets.rst:31 +#: howto/sockets.rst:31 msgid "" "Part of the trouble with understanding these things is that \"socket\" can " "mean a number of subtly different things, depending on context. So first, " @@ -76,52 +84,79 @@ msgid "" "sockets exclusively; the web server it's talking to uses both \"server\" " "sockets and \"client\" sockets." msgstr "" +"Une partie de la difficulté à comprendre ces choses est que « connecteur » " +"peut désigner plusieurs choses très légèrement différentes, selon le " +"contexte. Faisons donc d'abord une distinction entre un connecteur " +"« client » — point final d'une conversation — et un connecteur « serveur », " +"qui ressemble davantage à un standardiste. L'application cliente (votre " +"navigateur par exemple) utilise exclusivement des connecteurs « client » ; " +"le serveur web avec lequel elle parle utilise à la fois des connecteurs " +"« serveur » et des connecteurs « client »." -#: ../Doc/howto/sockets.rst:40 +#: howto/sockets.rst:40 msgid "History" msgstr "Historique" -#: ../Doc/howto/sockets.rst:42 +#: howto/sockets.rst:42 msgid "" "Of the various forms of :abbr:`IPC (Inter Process Communication)`, sockets " "are by far the most popular. On any given platform, there are likely to be " "other forms of IPC that are faster, but for cross-platform communication, " "sockets are about the only game in town." msgstr "" +"Parmi les différentes formes d’:abbr:`IPC (Inter Process Communication)`, " +"les connecteurs sont de loin les plus populaires. Sur une plate-forme " +"donnée, il est probable que d'autres formes d'\\ *IPC* soient plus rapides, " +"mais pour la communication entre plates-formes, les connecteurs sont à peu " +"près la seule solution valable." -#: ../Doc/howto/sockets.rst:47 +#: howto/sockets.rst:47 msgid "" "They were invented in Berkeley as part of the BSD flavor of Unix. They " "spread like wildfire with the Internet. With good reason --- the combination " "of sockets with INET makes talking to arbitrary machines around the world " "unbelievably easy (at least compared to other schemes)." msgstr "" +"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* " +"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et " +"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue " +"avec n’importe quelle machine dans le monde entier incroyablement facile (du " +"moins par rapport à d'autres systèmes)." -#: ../Doc/howto/sockets.rst:54 +#: howto/sockets.rst:54 msgid "Creating a Socket" -msgstr "Créer un connecteur" +msgstr "Création d'un connecteur" -#: ../Doc/howto/sockets.rst:56 +#: howto/sockets.rst:56 msgid "" "Roughly speaking, when you clicked on the link that brought you to this " "page, your browser did something like the following::" msgstr "" +"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette " +"page, votre navigateur a fait quelque chose comme ceci ::" -#: ../Doc/howto/sockets.rst:64 +#: howto/sockets.rst:64 msgid "" "When the ``connect`` completes, the socket ``s`` can be used to send in a " "request for the text of the page. The same socket will read the reply, and " "then be destroyed. That's right, destroyed. Client sockets are normally only " "used for one exchange (or a small set of sequential exchanges)." msgstr "" +"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être " +"utilisé pour envoyer une requête demandant le texte de la page. Le même " +"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au " +"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul " +"échange (ou un petit ensemble d'échanges séquentiels)." -#: ../Doc/howto/sockets.rst:70 +#: howto/sockets.rst:70 msgid "" "What happens in the web server is a bit more complex. First, the web server " "creates a \"server socket\"::" msgstr "" +"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, " +"le serveur web crée un « connecteur serveur » ::" -#: ../Doc/howto/sockets.rst:80 +#: howto/sockets.rst:80 msgid "" "A couple things to notice: we used ``socket.gethostname()`` so that the " "socket would be visible to the outside world. If we had used ``s." @@ -131,41 +166,44 @@ msgid "" "address the machine happens to have." msgstr "" "Quelques remarques : nous avons utilisé ``socket.gethostname()`` pour que le " -"connecteur soit visible par le monde extérieur. Si nous avions utilisé ``s." -"bind((('localhost', 80))`` ou ``s.bind((('127.0.0.0.1', 80))`` nous aurions " -"encore un connecteur \"serveur\", mais qui ne serait visible que sur la " -"machine même. ``s.bind('', 80)]`` spécifie que le socket est accessible par " -"toute adresse que la machine possède." +"connecteur soit visible par le monde extérieur. Si nous avions utilisé ``s." +"bind(('localhost', 80))`` ou ``s.bind(('127.0.0.1', 80))``, nous aurions " +"toujours un connecteur « serveur », mais qui ne serait visible qu'à " +"l'intérieur de la même machine. ``s.bind(('', 80))`` précise que le " +"connecteur est accessible par n'importe quelle adresse que la machine " +"possède." -#: ../Doc/howto/sockets.rst:87 +#: howto/sockets.rst:87 msgid "" "A second thing to note: low number ports are usually reserved for \"well " "known\" services (HTTP, SNMP etc). If you're playing around, use a nice high " "number (4 digits)." msgstr "" "Une deuxième chose à noter : les ports dont le numéro est petit sont " -"généralement réservés aux services \"bien connus\" (HTTP, SNMP, etc.). Si " +"généralement réservés aux services « bien connus » (HTTP, SNMP, etc.). Si " "vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)." -#: ../Doc/howto/sockets.rst:91 +#: howto/sockets.rst:91 msgid "" "Finally, the argument to ``listen`` tells the socket library that we want it " "to queue up as many as 5 connect requests (the normal max) before refusing " "outside connections. If the rest of the code is written properly, that " "should be plenty." msgstr "" -"Enfin, l'argument ``listen`` indique à la bibliothèque de connecteurs que " -"nous voulons qu'elle mette en file d'attente jusqu'à 5 requêtes de connexion " -"(le maximum normal) avant de refuser les connexions externes. Si le reste du " -"code est écrit correctement, cela devrait suffire." +"Enfin, l'argument passé à ``listen`` indique à la bibliothèque de " +"connecteurs que nous voulons mettre en file d'attente jusqu'à 5 requêtes de " +"connexion (le maximum normal) avant de refuser les connexions externes. Si " +"le reste du code est écrit correctement, cela devrait suffire." -#: ../Doc/howto/sockets.rst:95 +#: howto/sockets.rst:95 msgid "" "Now that we have a \"server\" socket, listening on port 80, we can enter the " "mainloop of the web server::" msgstr "" +"Maintenant que nous avons un connecteur « serveur », en écoute sur le port " +"80, nous pouvons entrer dans la boucle principale du serveur web ::" -#: ../Doc/howto/sockets.rst:106 +#: howto/sockets.rst:106 msgid "" "There's actually 3 general ways in which this loop could work - dispatching " "a thread to handle ``clientsocket``, create a new process to handle " @@ -180,12 +218,26 @@ msgid "" "The two \"clients\" are free to chat it up - they are using some dynamically " "allocated port which will be recycled when the conversation ends." msgstr "" - -#: ../Doc/howto/sockets.rst:121 +"Il y a en fait trois façons générales de faire fonctionner cette boucle : " +"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un " +"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette " +"application pour utiliser des connecteurs non bloquants, et multiplexer " +"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif " +"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose " +"importante à comprendre maintenant est la suivante : c'est *tout* ce que " +"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit " +"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque " +"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui " +"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous " +"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres " +"connexions. Les deux « clients » sont libres de discuter — ils utilisent un " +"port alloué dynamiquement qui sera recyclé à la fin de la conversation." + +#: howto/sockets.rst:121 msgid "IPC" -msgstr "Communication Entre Processus" +msgstr "*IPC* (Communication Entre Processus)" -#: ../Doc/howto/sockets.rst:123 +#: howto/sockets.rst:123 msgid "" "If you need fast IPC between two processes on one machine, you should look " "into pipes or shared memory. If you do decide to use AF_INET sockets, bind " @@ -194,23 +246,25 @@ msgid "" "faster." msgstr "" "Si vous avez besoin d'une communication rapide entre deux processus sur une " -"même machine, vous devriez regarder comment utiliser les *pipes* ou la " -"mémoire partagée. Si vous décidez d'utiliser les connecteurs AF_INET, liez " -"le connecteur \"serveur\" à ``'localhost'``. Sur la plupart des plates-" -"formes, cela court-circuite quelques couches réseau et est un peu plus " +"même machine, vous devriez regarder comment utiliser les tubes (*pipe*, en " +"anglais) ou la mémoire partagée. Si vous décidez d'utiliser les connecteurs " +"*AF_INET*, liez le connecteur « serveur » à ``'localhost'``. Sur la plupart " +"des plates-formes, cela contourne quelques couches réseau et est un peu plus " "rapide." -#: ../Doc/howto/sockets.rst:129 +#: howto/sockets.rst:129 msgid "" "The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " "API." msgstr "" +"Le :mod:`multiprocessing` intègre de l’IPC multiplateforme dans une API de " +"plus haut niveau." -#: ../Doc/howto/sockets.rst:134 +#: howto/sockets.rst:134 msgid "Using a Socket" -msgstr "" +msgstr "Utilisation d'un connecteur" -#: ../Doc/howto/sockets.rst:136 +#: howto/sockets.rst:136 msgid "" "The first thing to note, is that the web browser's \"client\" socket and the " "web server's \"client\" socket are identical beasts. That is, this is a " @@ -220,8 +274,16 @@ msgid "" "in a request, or perhaps a signon. But that's a design decision - it's not a " "rule of sockets." msgstr "" +"La première chose à noter, c'est que la prise « client » du navigateur web " +"et la prise « client » du serveur web sont des bêtes identiques. C'est-à-" +"dire qu'il s'agit d'une conversation « pair à pair ». Ou pour le dire " +"autrement, *en tant que concepteur, vous devrez décider quelles sont les " +"règles d'étiquette pour une conversation*. Normalement, la connexion via " +"``connect`` lance la conversation en envoyant une demande, ou peut-être un " +"signe. Mais c'est une décision de conception — ce n'est pas une règle des " +"connecteurs." -#: ../Doc/howto/sockets.rst:143 +#: howto/sockets.rst:143 msgid "" "Now there are two sets of verbs to use for communication. You can use " "``send`` and ``recv``, or you can transform your client socket into a file-" @@ -232,8 +294,18 @@ msgid "" "reply. Without a ``flush`` in there, you may wait forever for the reply, " "because the request may still be in your output buffer." msgstr "" +"Il y a maintenant deux ensembles de verbes à utiliser pour la communication. " +"Vous pouvez utiliser ``send`` et ``recv``, ou vous pouvez transformer votre " +"connecteur client en une bête imitant un fichier et utiliser ``read`` et " +"``write``. C'est la façon dont Java présente ses connecteurs. Je ne vais pas " +"en parler ici, sauf pour vous avertir que vous devez utiliser ``flush`` sur " +"les connecteurs. Ce sont des « fichiers », mis en mémoire tampon, et une " +"erreur courante est d'« écrire » via ``write`` quelque chose, puis de " +"« lire » via ``read`` pour obtenir une réponse. Sans un ``flush``, vous " +"pouvez attendre la réponse pour toujours, parce que la requête peut encore " +"être dans votre mémoire tampon de sortie." -#: ../Doc/howto/sockets.rst:152 +#: howto/sockets.rst:152 msgid "" "Now we come to the major stumbling block of sockets - ``send`` and ``recv`` " "operate on the network buffers. They do not necessarily handle all the bytes " @@ -243,16 +315,28 @@ msgid "" "you how many bytes they handled. It is *your* responsibility to call them " "again until your message has been completely dealt with." msgstr "" +"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et " +"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent " +"pas nécessairement tous les octets que vous leur passez (ou que vous " +"attendez d'eux), car leur principal objectif est de gérer les tampons " +"réseau. En général, leur exécution se termine lorsque les tampons réseau " +"associés ont été remplis (``send``) ou vidés (``recv``). Ils vous indiquent " +"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de " +"les rappeler jusqu'à ce que votre message ait été complètement traité." -#: ../Doc/howto/sockets.rst:160 +#: howto/sockets.rst:160 msgid "" "When a ``recv`` returns 0 bytes, it means the other side has closed (or is " "in the process of closing) the connection. You will not receive any more " "data on this connection. Ever. You may be able to send data successfully; " "I'll talk more about this later." msgstr "" +"Lorsqu'un ``recv`` renvoie 0 octet, cela signifie que l'autre partie a fermé " +"(ou est en train de fermer) la connexion. Vous ne recevrez plus de données " +"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec " +"succès. J’en parlerai plus tard." -#: ../Doc/howto/sockets.rst:165 +#: howto/sockets.rst:165 msgid "" "A protocol like HTTP uses a socket for only one transfer. The client sends a " "request, then reads a reply. That's it. The socket is discarded. This means " @@ -263,7 +347,7 @@ msgstr "" "est mis au rebut. Cela signifie qu'un client peut détecter la fin de la " "réponse en recevant 0 octet." -#: ../Doc/howto/sockets.rst:169 +#: howto/sockets.rst:169 msgid "" "But if you plan to reuse your socket for further transfers, you need to " "realize that *there is no* :abbr:`EOT (End of Transfer)` *on a socket.* I " @@ -277,20 +361,19 @@ msgid "" "choice is entirely yours, (but some ways are righter than others)." msgstr "" "Mais si vous prévoyez de réutiliser votre connecteur pour d'autres " -"transferts, vous devez réaliser que il n'y a *pas* d':abbr:`EOT (End of " -"Transfer)` sur un connecteur. Je répète : si un connecteur ``send`` ou " -"``recv`` retourne après avoir manipulé 0 octets, la connexion a été " +"transferts, vous devez réaliser qu'\\ *il n'y a pas* d':abbr:`EOT (End of " +"Transfer)` *sur un connecteur*. Je répète : si un appel à ``send`` ou " +"``recv`` se termine après avoir traité 0 octet, la connexion a été " "interrompue. Si la connexion n'a *pas* été interrompue, vous pouvez attendre " "sur un ``recv`` pour toujours, car le connecteur ne vous dira pas qu'il n'y " "a plus rien à lire (pour le moment). Maintenant, si vous y réfléchissez un " "peu, vous allez vous rendre compte d'une vérité fondamentale sur les " "connecteurs : *les messages doivent être de longueur fixe* (beurk), *ou être " -"délimités* (haussement d'épaules), *ou indiquer de quelle longueur ils sont* " -"(beaucoup mieux), *ou terminer en coupant la connexion*. Le choix est " -"entièrement de votre côté, (mais certaines façons sont plus justes que " -"d'autres)." +"délimités* (bof), *ou indiquer de quelle longueur ils sont* (beaucoup " +"mieux), *ou terminer en coupant la connexion*. Le choix est entièrement de " +"votre côté (mais certaines façons sont meilleurs que d'autres)." -#: ../Doc/howto/sockets.rst:180 +#: howto/sockets.rst:180 msgid "" "Assuming you don't want to end the connection, the simplest solution is a " "fixed length message::" @@ -298,7 +381,7 @@ msgstr "" "En supposant que vous ne vouliez pas terminer la connexion, la solution la " "plus simple est un message de longueur fixe ::" -#: ../Doc/howto/sockets.rst:217 +#: howto/sockets.rst:217 msgid "" "The sending code here is usable for almost any messaging scheme - in Python " "you send strings, and you can use ``len()`` to determine its length (even if " @@ -306,8 +389,14 @@ msgid "" "gets more complex. (And in C, it's not much worse, except you can't use " "``strlen`` if the message has embedded ``\\0``\\ s.)" msgstr "" +"Le code d'envoi ici est utilisable pour presque tous les systèmes de " +"messagerie — en Python, vous envoyez des chaînes de caractères, et vous " +"pouvez utiliser ``len()`` pour en déterminer la longueur (même si elle " +"contient des caractères ``\\0``). C'est surtout le code de réception qui " +"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne " +"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)." -#: ../Doc/howto/sockets.rst:223 +#: howto/sockets.rst:223 msgid "" "The easiest enhancement is to make the first character of the message an " "indicator of message type, and have the type determine the length. Now you " @@ -317,8 +406,17 @@ msgid "" "chunk size, (4096 or 8192 is frequently a good match for network buffer " "sizes), and scanning what you've received for a delimiter." msgstr "" +"Le plus simple est de faire du premier caractère du message un indicateur du " +"type de message, et de faire en sorte que le type détermine la longueur. " +"Vous avez maintenant deux ``recv``\\ s — le premier pour obtenir (au moins) " +"ce premier caractère afin de pouvoir déterminer la longueur, et le second " +"dans une boucle pour obtenir le reste. Si vous décidez de suivre la route " +"délimitée, vous recevrez un morceau de taille arbitraire (4096 ou 8192 est " +"fréquemment une bonne valeur pour correspondre à la taille de la mémoire " +"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un " +"délimiteur." -#: ../Doc/howto/sockets.rst:231 +#: howto/sockets.rst:231 msgid "" "One complication to be aware of: if your conversational protocol allows " "multiple messages to be sent back to back (without some kind of reply), and " @@ -326,8 +424,14 @@ msgid "" "of a following message. You'll need to put that aside and hold onto it, " "until it's needed." msgstr "" +"Une subtilité dont il faut être conscient : si votre protocole de " +"conversation permet de renvoyer plusieurs messages les uns à la suite des " +"autres (sans aucune sorte de réponse), et que vous passez à ``recv`` une " +"taille de morceau arbitraire, vous pouvez en arriver à lire le début du " +"message suivant. Vous devrez alors le mettre de côté et le conserver, " +"jusqu'à ce que vous en ayez besoin." -#: ../Doc/howto/sockets.rst:237 +#: howto/sockets.rst:237 msgid "" "Prefixing the message with its length (say, as 5 numeric characters) gets " "more complex, because (believe it or not), you may not get all 5 characters " @@ -338,32 +442,58 @@ msgid "" "not always manage to get rid of everything in one pass. And despite having " "read this, you will eventually get bit by it!" msgstr "" +"Préfixer le message avec sa longueur (disons, sous la forme de 5 caractères " +"numériques) devient plus complexe, parce que (croyez-le ou non), vous pouvez " +"ne pas recevoir les 5 caractères en un seul ``recv``. Pour une utilisation " +"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge " +"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez " +"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième " +"pour obtenir la partie « données » du message. Vilain. C’est aussi à ce " +"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas " +"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet " +"avertissement, vous finirez par vous faire avoir par cette subtilité !" -#: ../Doc/howto/sockets.rst:246 +#: howto/sockets.rst:246 msgid "" "In the interests of space, building your character, (and preserving my " "competitive position), these enhancements are left as an exercise for the " "reader. Lets move on to cleaning up." msgstr "" +"Pour garder une longueur raisonnable à cette page, pour forger votre " +"caractère (et afin de garder l’avantage concurrentiel que j’ai sur vous), " +"ces améliorations ne seront pas abordées et sont laissées en exercice au " +"lecteur. Passons maintenant au nettoyage." -#: ../Doc/howto/sockets.rst:252 +#: howto/sockets.rst:252 msgid "Binary Data" msgstr "Données binaires" -#: ../Doc/howto/sockets.rst:254 +#: howto/sockets.rst:254 msgid "" "It is perfectly possible to send binary data over a socket. The major " "problem is that not all machines use the same formats for binary data. For " "example, a Motorola chip will represent a 16 bit integer with the value 1 as " "the two hex bytes 00 01. Intel and DEC, however, are byte-reversed - that " "same 1 is 01 00. Socket libraries have calls for converting 16 and 32 bit " -"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and \"h" -"\" means *host*, \"s\" means *short* and \"l\" means *long*. Where network " -"order is host order, these do nothing, but where the machine is byte-" +"integers - ``ntohl, htonl, ntohs, htons`` where \"n\" means *network* and " +"\"h\" means *host*, \"s\" means *short* and \"l\" means *long*. Where " +"network order is host order, these do nothing, but where the machine is byte-" "reversed, these swap the bytes around appropriately." msgstr "" - -#: ../Doc/howto/sockets.rst:264 +"Il est parfaitement possible d’envoyer des données binaires sur un " +"connecteur. Le gros problème est que toutes les machines n’utilisent pas les " +"mêmes formats pour les données binaires. Par exemple, une puce Motorola code " +"l'entier 1, sous 16 bits, comme les deux octets hexadécimaux 00 01. Intel et " +"DEC, cependant, utilisent l’ordre d’octets inverse — ce même 1 est codé 01 " +"00. Les bibliothèques de connecteurs ont des appels pour convertir des " +"entiers de 16 et 32 bits — ``ntohl, htonl, ntohs, htons`` où ``n`` signifie " +"*réseau* (*network*, en anglais) et ``h`` signifie *hôte*, ``s`` signifie " +"*court* (*short*, en anglais) et ``l`` signifie *long*. Lorsque l’ordre du " +"réseau est l’ordre de l’hôte, ceux-ci ne font rien, mais lorsque la machine " +"utilise l’ordre d’octets inverse, ceux-ci échangent les octets de manière " +"appropriée." + +#: howto/sockets.rst:264 msgid "" "In these days of 32 bit machines, the ascii representation of binary data is " "frequently smaller than the binary representation. That's because a " @@ -371,12 +501,19 @@ msgid "" "The string \"0\" would be two bytes, while binary is four. Of course, this " "doesn't fit well with fixed-length messages. Decisions, decisions." msgstr "" +"De nos jours, avec les machines 32 bits, la représentation *ASCII* des " +"données binaires est souvent plus compacte que la représentation binaire. " +"C’est parce qu’un nombre surprenant de fois, tous ces *longs* ont la valeur " +"0, ou peut-être 1. La chaîne « 0 » serait codée sur deux octets, alors " +"qu'elle le serait sur quatre en binaire. Bien sûr, cela ne fonctionne pas " +"très bien avec les messages de longueur fixe. Ah, les décisions, les " +"décisions…" -#: ../Doc/howto/sockets.rst:272 +#: howto/sockets.rst:272 msgid "Disconnecting" msgstr "Déconnexion" -#: ../Doc/howto/sockets.rst:274 +#: howto/sockets.rst:274 msgid "" "Strictly speaking, you're supposed to use ``shutdown`` on a socket before " "you ``close`` it. The ``shutdown`` is an advisory to the socket at the " @@ -387,8 +524,17 @@ msgid "" "same as ``shutdown(); close()``. So in most situations, an explicit " "``shutdown`` is not needed." msgstr "" +"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur " +"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un " +"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui " +"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand " +"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des " +"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que " +"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement " +"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la " +"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire." -#: ../Doc/howto/sockets.rst:282 +#: howto/sockets.rst:282 msgid "" "One way to use ``shutdown`` effectively is in an HTTP-like exchange. The " "client sends a request and then does a ``shutdown(1)``. This tells the " @@ -397,8 +543,15 @@ msgid "" "complete request. The server sends a reply. If the ``send`` completes " "successfully then, indeed, the client was still receiving." msgstr "" +"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange " +"de type HTTP. Le client envoie une requête et effectue ensuite un " +"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, " +"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une " +"réception de 0 octet. Il peut supposer qu’il a la requête complète. Le " +"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en " +"effet, le client était encore en train de recevoir." -#: ../Doc/howto/sockets.rst:289 +#: howto/sockets.rst:289 msgid "" "Python takes the automatic shutdown a step further, and says that when a " "socket is garbage collected, it will automatically do a ``close`` if it's " @@ -407,12 +560,19 @@ msgid "" "indefinitely, thinking you're just being slow. *Please* ``close`` your " "sockets when you're done." msgstr "" +"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un " +"connecteur est collecté par le ramasse-miette, il effectue automatiquement " +"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très " +"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît " +"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester " +"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos " +"connecteurs quand vous avez terminé *s’il vous plait*." -#: ../Doc/howto/sockets.rst:297 +#: howto/sockets.rst:297 msgid "When Sockets Die" -msgstr "" +msgstr "Quand les connecteurs meurent" -#: ../Doc/howto/sockets.rst:299 +#: howto/sockets.rst:299 msgid "" "Probably the worst thing about using blocking sockets is what happens when " "the other side comes down hard (without doing a ``close``). Your socket is " @@ -426,12 +586,25 @@ msgid "" "automatic recycling of resources. In other words, if you do manage to kill " "the thread, your whole process is likely to be screwed up." msgstr "" - -#: ../Doc/howto/sockets.rst:313 +"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui " +"se passe lorsque l'autre côté s'interrompt brutalement (sans faire de " +"fermeture via ``close``). Votre connecteur risque d’attendre infiniment. TCP " +"est un protocole fiable, et il attendra très, très longtemps avant " +"d'abandonner une connexion. Si vous utilisez des fils d’exécution, le fil " +"entier est pratiquement mort. Il n'y a pas grand-chose que vous puissiez " +"faire à ce sujet. Du moment que vous ne faites rien de stupide, comme tenir " +"un verrou verrouillé pendant une lecture bloquante, le fil ne consomme pas " +"vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les " +"fils sont plus efficients que les processus, c'est en partie parce qu'ils " +"évitent les coûts significatifs liés au recyclage automatique des " +"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre " +"processus risque d'être foutu." + +#: howto/sockets.rst:313 msgid "Non-blocking Sockets" -msgstr "" +msgstr "Connecteurs non bloquants" -#: ../Doc/howto/sockets.rst:315 +#: howto/sockets.rst:315 msgid "" "If you've understood the preceding, you already know most of what you need " "to know about the mechanics of using sockets. You'll still use the same " @@ -439,28 +612,29 @@ msgid "" "will be almost inside-out." msgstr "" "Si vous avez compris ce qui précède, vous savez déjà tout ce que vous devez " -"savoir sur la mécanique de l'utilisation des connecteurs. Vous utiliserez " -"toujours les mêmes appels, de la même façon. C'est juste que, si vous le " -"faites bien, votre application sera presque dans la poche." +"savoir sur la mécanique de l’utilisation des connecteurs. Vous utiliserez " +"toujours les mêmes appels, de la même façon. Il n’y que ça. Si vous le " +"faites bien, c’est presque dans la poche." -#: ../Doc/howto/sockets.rst:320 +#: howto/sockets.rst:320 +#, fuzzy msgid "" "In Python, you use ``socket.setblocking(0)`` to make it non-blocking. In C, " "it's more complex, (for one thing, you'll need to choose between the BSD " -"flavor ``O_NONBLOCK`` and the almost indistinguishable Posix flavor " +"flavor ``O_NONBLOCK`` and the almost indistinguishable POSIX flavor " "``O_NDELAY``, which is completely different from ``TCP_NODELAY``), but it's " "the exact same idea. You do this after creating the socket, but before using " "it. (Actually, if you're nuts, you can switch back and forth.)" msgstr "" -"En Python, vous utilisez ``socket.setblocking(0)`` pour le rendre non-" -"bloquant. En C, c'est plus complexe (pour commencer, vous devez choisir " -"entre la version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " +"En Python, vous utilisez ``socket.setblocking(0)`` pour rendre non-bloquant. " +"En C, c’est plus complexe (pour commencer, vous devez choisir entre la " +"version BSD ``O_NONBLOCK`` et la version Posix presque impossible à " "distinguer ``O_NDELAY``, qui est complètement différente de " -"``TCP_NODELAY``), mais c'est exactement la même idée. Vous le faites après " -"avoir créé le connecteur mais avant de l'utiliser (en fait, si vous êtes " +"``TCP_NODELAY``), mais c’est exactement la même idée. Vous le faites après " +"avoir créé le connecteur mais avant de l’utiliser (en fait, si vous êtes " "fou, vous pouvez alterner)." -#: ../Doc/howto/sockets.rst:327 +#: howto/sockets.rst:327 msgid "" "The major mechanical difference is that ``send``, ``recv``, ``connect`` and " "``accept`` can return without having done anything. You have (of course) a " @@ -469,12 +643,19 @@ msgid "" "will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " "and do it right." msgstr "" +"La différence majeure de fonctionnement est que `send``, ``recv``, " +"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous " +"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de " +"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me " +"croyez pas, essayez un jour. Votre application va grossir, boguer et " +"vampiriser le processeur. Alors, évitons les solutions vouées à l’échec dès " +"le départ et faisons les choses correctement." -#: ../Doc/howto/sockets.rst:334 +#: howto/sockets.rst:334 msgid "Use ``select``." -msgstr "Utiliser ``select``." +msgstr "Utilisation de ``select``." -#: ../Doc/howto/sockets.rst:336 +#: howto/sockets.rst:336 msgid "" "In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, " "but it's close enough to the C version that if you understand ``select`` in " @@ -482,9 +663,9 @@ msgid "" msgstr "" "En C, implémenter ``select`` est assez complexe. En Python, c'est du gâteau, " "mais c'est assez proche de la version C ; aussi, si vous comprenez " -"``select`` en Python, vous aurez peu de problèmes avec lui en C ::" +"``select`` en Python, vous aurez peu de problèmes en C ::" -#: ../Doc/howto/sockets.rst:347 +#: howto/sockets.rst:347 msgid "" "You pass ``select`` three lists: the first contains all sockets that you " "might want to try reading; the second all the sockets you might want to try " @@ -494,15 +675,28 @@ msgid "" "generally a sensible thing to do - give it a nice long timeout (say a " "minute) unless you have good reason to do otherwise." msgstr "" +"Vous passez à ``select`` trois listes : la première contient tous les " +"connecteurs dont vous souhaiter lire le contenu ; la deuxième tous les " +"connecteurs sur lesquels vous voudriez écrire, et la dernière (normalement " +"laissée vide) ceux sur lesquels vous voudriez vérifier s’il y a des erreurs. " +"Prenez note qu'un connecteur peut figurer dans plus d'une liste. L'appel à " +"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. " +"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai " +"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de " +"ne pas le faire." -#: ../Doc/howto/sockets.rst:355 +#: howto/sockets.rst:355 msgid "" "In return, you will get three lists. They contain the sockets that are " "actually readable, writable and in error. Each of these lists is a subset " "(possibly empty) of the corresponding list you passed in." msgstr "" +"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui " +"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes " +"est un sous-ensemble (éventuellement vide) de la liste correspondante que " +"vous avez transmise." -#: ../Doc/howto/sockets.rst:359 +#: howto/sockets.rst:359 msgid "" "If a socket is in the output readable list, you can be as-close-to-certain-" "as-we-ever-get-in-this-business that a ``recv`` on that socket will return " @@ -511,16 +705,16 @@ msgid "" "nothing. (Actually, any reasonably healthy socket will return as writable - " "it just means outbound network buffer space is available.)" msgstr "" -"Si un connecteur se trouve dans la liste des sorties que vous pouvez lire, " +"Si un connecteur se trouve dans la liste renvoyée des connecteurs lisibles, " "vous pouvez être pratiquement certain qu'un ``recv`` sur ce connecteur " -"retournera *quelque chose*. Même chose pour la liste des sorties sur " -"lesquelles vous pouvez écrire. Vous pourrez envoyer *quelque chose*. Peut-" -"être pas tout ce que vous voudrez, mais *quelque chose* est mieux que rien. " -"(En fait, n'importe quel connecteur raisonnablement sain retournera en " -"écriture — cela signifie simplement que l'espace tampon réseau sortant est " -"disponible)." +"renvoie *quelque chose*. Même chose pour la liste renvoyée des connecteurs " +"inscriptibles. Vous pourrez envoyer *quelque chose*. Peut-être pas tout ce " +"que vous voudrez, mais *quelque chose* est mieux que rien (en fait, " +"n'importe quel connecteur raisonnablement sain sera présent dans la liste " +"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon " +"réseau sortant est disponible)." -#: ../Doc/howto/sockets.rst:366 +#: howto/sockets.rst:366 msgid "" "If you have a \"server\" socket, put it in the potential_readers list. If it " "comes out in the readable list, your ``accept`` will (almost certainly) " @@ -528,15 +722,16 @@ msgid "" "it in the potential_writers list. If it shows up in the writable list, you " "have a decent chance that it has connected." msgstr "" -"Si vous avez un connecteur \"serveur\", mettez-le dans la liste des lecteurs " -"potentiels. Si il apparaît dans la liste des sorties que vous pouvez lire, " -"votre ``accept`` fonctionnera (presque certainement). Si vous avez créé un " -"nouveau connecteur pour ``connect`` à quelqu'un d'autre, mettez-le dans la " -"liste des éditeurs potentiels. Si il apparaît dans la liste des sorties sur " -"lesquelles vous pouvez écrire, vous avez une bonne chance qu'il se soit " -"connecté." +"Si vous avez un connecteur « serveur », mettez-le dans la liste des " +"connecteurs potentiellement lisibles ``potential_readers``. S’il apparaît " +"dans la liste renvoyée des connecteurs que vous pouvez lire, votre " +"``accept`` fonctionnera (presque certainement). Si vous avez créé un nouveau " +"connecteur pour se connecter via ``connect`` à quelqu'un d'autre, mettez-le " +"dans la liste des connecteurs potentiellement inscriptibles. S’il apparaît " +"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous " +"avez une bonne chance qu'il se soit connecté." -#: ../Doc/howto/sockets.rst:372 +#: howto/sockets.rst:372 msgid "" "Actually, ``select`` can be handy even with blocking sockets. It's one way " "of determining whether you will block - the socket returns as readable when " @@ -545,12 +740,12 @@ msgid "" "something else." msgstr "" "En fait, ``select`` peut être pratique même avec des connecteurs bloquants. " -"C'est une façon de déterminer si vous allez bloquer — le connecteur " -"redevient lisible lorsqu'il y a quelque chose dans les tampons. Cependant, " -"cela n'aide pas encore à déterminer si l'autre extrémité a terminé, ou si " -"elle est simplement occupée par autre chose." +"C'est une façon de déterminer si vous allez bloquer — le connecteur est " +"renvoyé comme lisible lorsqu'il y a quelque chose dans les mémoires tampons. " +"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a " +"terminé, ou si elle est simplement occupée par autre chose." -#: ../Doc/howto/sockets.rst:377 +#: howto/sockets.rst:377 msgid "" "**Portability alert**: On Unix, ``select`` works both with the sockets and " "files. Don't try this on Windows. On Windows, ``select`` works with sockets " diff --git a/howto/sorting.po b/howto/sorting.po index 8f7ee66cee..30d8bb42eb 100644 --- a/howto/sorting.po +++ b/howto/sorting.po @@ -3,16 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-07-31 18:40+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-10-31 15:12+0100\n" +"Last-Translator: Loc Cosnier \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" #: ../Doc/howto/sorting.rst:4 msgid "Sorting HOW TO" @@ -62,7 +63,7 @@ msgid "" "It returns a new sorted list::" msgstr "" "Un tri ascendant simple est très facile : il suffit d'appeler la fonction :" -"func:`sorted`. Elle renvoie une nouvelle liste triée : ::" +"func:`sorted`. Elle renvoie une nouvelle liste triée ::" #: ../Doc/howto/sorting.rst:26 msgid "" @@ -214,6 +215,8 @@ msgid "" "This can be abstracted out into a wrapper function that can take a list and " "tuples of field and order to sort them on multiple passes." msgstr "" +"Ceci peut être encapsulé dans une fonction qui prend une liste et des n-" +"uplets (attribut, ordre) pour les trier en plusieurs passes." #: ../Doc/howto/sorting.rst:159 msgid "" @@ -371,7 +374,7 @@ msgstr "" "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " "survenir quand des utilisateurs fournissent une fonction de comparaison et " "qu'il faut convertir cette fonction en une fonction-clef. La fonction " -"d'encapsulation suivante rend cela plus facile à faire : ::" +"d'encapsulation suivante rend cela plus facile à faire ::" #: ../Doc/howto/sorting.rst:256 msgid "To convert to a key function, just wrap the old comparison function:" @@ -420,7 +423,7 @@ msgstr "" "Il est garanti que les routines de tri utilisent les méthodes :meth:`__lt__` " "lorsqu'elles effectuent des comparaisons entre deux objets. Donc il est " "facile d'ajouter un ordre de tri standard à une classe en définissant sa " -"méthode :meth:`__lt__` : ::" +"méthode :meth:`__lt__` ::" #: ../Doc/howto/sorting.rst:296 msgid "" diff --git a/howto/unicode.po b/howto/unicode.po index 1919bb0d77..0fded03580 100644 --- a/howto/unicode.po +++ b/howto/unicode.po @@ -3,49 +3,49 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-06-08 10:54+0200\n" -"Last-Translator: Mathieu Dupuy \n" +"PO-Revision-Date: 2019-10-31 12:03+0100\n" +"Last-Translator: Melançon Victor \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/howto/unicode.rst:5 +#: howto/unicode.rst:5 msgid "Unicode HOWTO" msgstr "Guide Unicode" -#: ../Doc/howto/unicode.rst:0 +#: howto/unicode.rst:0 msgid "Release" msgstr "Version" -#: ../Doc/howto/unicode.rst:7 +#: howto/unicode.rst:7 msgid "1.12" msgstr "1.12" -#: ../Doc/howto/unicode.rst:9 +#: howto/unicode.rst:9 msgid "" "This HOWTO discusses Python's support for the Unicode specification for " "representing textual data, and explains various problems that people " "commonly encounter when trying to work with Unicode." msgstr "" -"Ce HOWTO décrit la gestion de la spécification Unicode par Python pour les " +"Ce guide décrit la gestion de la spécification Unicode par Python pour les " "données textuelles et explique les différents problèmes généralement " "rencontrés par les utilisateurs qui travaillent avec Unicode." -#: ../Doc/howto/unicode.rst:15 +#: howto/unicode.rst:15 msgid "Introduction to Unicode" msgstr "Introduction à Unicode" -#: ../Doc/howto/unicode.rst:18 +#: howto/unicode.rst:18 msgid "Definitions" msgstr "Définitions" -#: ../Doc/howto/unicode.rst:20 +#: howto/unicode.rst:20 msgid "" "Today's programs need to be able to handle a wide variety of characters. " "Applications are often internationalized to display messages and output in a " @@ -59,7 +59,7 @@ msgstr "" "Les programmes d'aujourd'hui doivent être capables de traiter une grande " "variété de caractères. Les applications sont souvent internationalisées pour " "afficher les messages et les résultats dans une variété de langues " -"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " +"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " "d'afficher un message d'erreur en anglais, français, japonais, hébreu ou " "russe. Le contenu Web peut être écrit dans n'importe laquelle de ces langues " "et peut également inclure une variété de symboles émoji. Le type de chaîne " @@ -67,7 +67,7 @@ msgstr "" "caractères, ce qui permet aux programmes Python de travailler avec tous ces " "différents caractères possibles." -#: ../Doc/howto/unicode.rst:30 +#: howto/unicode.rst:30 msgid "" "Unicode (https://www.unicode.org/) is a specification that aims to list " "every character used by human languages and give each character its own " @@ -80,7 +80,7 @@ msgstr "" "continuellement révisées et mises à jour pour ajouter de nouvelles langues " "et de nouveaux symboles." -#: ../Doc/howto/unicode.rst:35 +#: howto/unicode.rst:35 msgid "" "A **character** is the smallest possible component of a text. 'A', 'B', " "'C', etc., are all different characters. So are 'È' and 'Í'. Characters " @@ -93,34 +93,34 @@ msgstr "" "« B », « C », etc. sont tous des caractères différents. Il en va de même " "pour « È » et « Í ». Les caractères varient selon la langue ou le contexte " "dont vous parlez. Par exemple, il y a un caractère pour « Chiffre Romain " -"Un » (*Roman Numeral One*) , « Ⅰ », qui est séparé de la lettre majuscule " -"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " +"Un » (*Roman Numeral One*), « Ⅰ », qui est séparé de la lettre majuscule " +"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " "différents qui ont des significations différentes." -#: ../Doc/howto/unicode.rst:42 +#: howto/unicode.rst:42 msgid "" "The Unicode standard describes how characters are represented by **code " "points**. A code point value is an integer in the range 0 to 0x10FFFF " "(about 1.1 million values, with some 110 thousand assigned so far). In the " -"standard and in this document, a code point is written using the notation ``U" -"+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." +"standard and in this document, a code point is written using the notation " +"``U+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." msgstr "" "Le standard Unicode décrit comment les caractères sont représentés par les " "**points de code**. Une valeur de point de code est un nombre entier compris " "entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs, avec environ " -"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " +"110 000 valeurs attribuées à ce jour). Dans le standard et dans le présent " "document, un point de code est écrit en utilisant la notation ``U+265E`` " "pour désigner le caractère avec la valeur ``0x265e`` (9 822 en décimal)." -#: ../Doc/howto/unicode.rst:49 +#: howto/unicode.rst:49 msgid "" "The Unicode standard contains a lot of tables listing characters and their " "corresponding code points:" msgstr "" "La standard Unicode contient de nombreux tableaux contenant la liste des " -"caractères et des points de code correspondants :" +"caractères et des points de code correspondants :" -#: ../Doc/howto/unicode.rst:70 +#: howto/unicode.rst:70 msgid "" "Strictly, these definitions imply that it's meaningless to say 'this is " "character ``U+265E``'. ``U+265E`` is a code point, which represents some " @@ -129,12 +129,12 @@ msgid "" "and characters will sometimes be forgotten." msgstr "" "À proprement parler, ces définitions laissent entendre qu'il est inutile de " -"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " -"représente un caractère particulier ; dans ce cas, il représente le " -"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " +"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " +"représente un caractère particulier ; dans ce cas, il représente le " +"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " "distinction entre les points de code et les caractères sera parfois oubliée." -#: ../Doc/howto/unicode.rst:77 +#: howto/unicode.rst:77 msgid "" "A character is represented on a screen or on paper by a set of graphical " "elements that's called a **glyph**. The glyph for an uppercase A, for " @@ -147,15 +147,15 @@ msgstr "" "d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " "exemple, est deux traits diagonaux et un trait horizontal, bien que les " "détails exacts dépendent de la police utilisée. La plupart du code Python " -"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " +"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " "est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " "des polices d’un terminal." -#: ../Doc/howto/unicode.rst:86 +#: howto/unicode.rst:86 msgid "Encodings" msgstr "Encodages" -#: ../Doc/howto/unicode.rst:88 +#: howto/unicode.rst:88 msgid "" "To summarize the previous section: a Unicode string is a sequence of code " "points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). " @@ -164,15 +164,15 @@ msgid "" "rules for translating a Unicode string into a sequence of bytes are called a " "**character encoding**, or just an **encoding**." msgstr "" -"Pour résumer la section précédente : une chaîne Unicode est une séquence de " -"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " +"Pour résumer la section précédente : une chaîne Unicode est une séquence de " +"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " "décimal). Cette séquence de points de code doit être stockée en mémoire sous " "la forme d'un ensemble de **unités de code**, et les **unités de code** sont " "ensuite transposées en octets de 8 bits. Les règles de traduction d'une " "chaîne Unicode en une séquence d'octets sont appelées un **encodage de " "caractères** ou simplement un **encodage**." -#: ../Doc/howto/unicode.rst:96 +#: howto/unicode.rst:96 msgid "" "The first encoding you might think of is using 32-bit integers as the code " "unit, and then using the CPU's representation of 32-bit integers. In this " @@ -181,9 +181,9 @@ msgstr "" "Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 " "bits comme unité de code, puis l'utilisation de la représentation des " "entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » " -"ressemblerait à ceci :" +"ressemblerait à ceci :" -#: ../Doc/howto/unicode.rst:106 +#: howto/unicode.rst:106 msgid "" "This representation is straightforward but using it presents a number of " "problems." @@ -191,13 +191,13 @@ msgstr "" "Cette représentation est simple mais son utilisation pose un certain nombre " "de problèmes." -#: ../Doc/howto/unicode.rst:109 +#: howto/unicode.rst:109 msgid "It's not portable; different processors order the bytes differently." msgstr "" -"Elle n’est pas portable ; des processeurs différents ordonnent les octets " +"Elle n’est pas portable ; des processeurs différents ordonnent les octets " "différemment." -#: ../Doc/howto/unicode.rst:111 +#: howto/unicode.rst:111 msgid "" "It's very wasteful of space. In most texts, the majority of the code points " "are less than 127, or less than 255, so a lot of space is occupied by " @@ -207,17 +207,17 @@ msgid "" "that large), but expanding our usage of disk and network bandwidth by a " "factor of 4 is intolerable." msgstr "" -"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " +"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " "points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " "occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " -"comparer aux 6 octets nécessaires pour une représentation en ASCII. " +"comparer aux 6 octets nécessaires pour une représentation en ASCII. " "L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " "ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " "généralement pas si grandes que ça), mais l'accroissement de notre " "utilisation du disque et de la bande passante réseau par un facteur de 4 est " "intolérable." -#: ../Doc/howto/unicode.rst:119 +#: howto/unicode.rst:119 msgid "" "It's not compatible with existing C functions such as ``strlen()``, so a new " "family of wide string functions would need to be used." @@ -226,7 +226,7 @@ msgstr "" "``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " "celle des chaînes larges (*wide strings*)." -#: ../Doc/howto/unicode.rst:122 +#: howto/unicode.rst:122 msgid "" "Therefore this encoding isn't used very much, and people instead choose " "other encodings that are more efficient and convenient, such as UTF-8." @@ -234,7 +234,7 @@ msgstr "" "Par conséquent, cet encodage n'est pas très utilisé et d'autres encodages, " "plus efficaces et pratiques comme UTF-8, sont plutôt choisis." -#: ../Doc/howto/unicode.rst:125 +#: howto/unicode.rst:125 msgid "" "UTF-8 is one of the most commonly used encodings, and Python often defaults " "to using it. UTF stands for \"Unicode Transformation Format\", and the '8' " @@ -249,31 +249,31 @@ msgstr "" "codages UTF-16 et UTF-32, mais ils sont moins souvent utilisés que UTF-8). " "UTF-8 utilise les règles suivantes :" -#: ../Doc/howto/unicode.rst:131 +#: howto/unicode.rst:131 msgid "" "If the code point is < 128, it's represented by the corresponding byte value." msgstr "" "Si le point de code est < 128, il est représenté par la valeur de l'octet " "correspondant." -#: ../Doc/howto/unicode.rst:132 +#: howto/unicode.rst:132 msgid "" "If the code point is >= 128, it's turned into a sequence of two, three, or " "four bytes, where each byte of the sequence is between 128 and 255." msgstr "" -"Si le point de code est >= 128, il est transformé en une séquence de deux, " +"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " "trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " "et 255." -#: ../Doc/howto/unicode.rst:135 +#: howto/unicode.rst:135 msgid "UTF-8 has several convenient properties:" msgstr "UTF-8 a plusieurs propriétés intéressantes :" -#: ../Doc/howto/unicode.rst:137 +#: howto/unicode.rst:137 msgid "It can handle any Unicode code point." msgstr "Il peut gérer n'importe quel point de code Unicode." -#: ../Doc/howto/unicode.rst:138 +#: howto/unicode.rst:138 msgid "" "A Unicode string is turned into a sequence of bytes that contains embedded " "zero bytes only where they represent the null character (U+0000). This means " @@ -282,16 +282,16 @@ msgid "" "end-of-string markers." msgstr "" "Une chaîne Unicode est transformée en une séquence d’octets qui contient des " -"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+000000). " +"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+0000). " "Cela signifie que les chaînes UTF-8 peuvent être traitées par des fonctions " "C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets " "zéro signifient forcément la fin de chaîne." -#: ../Doc/howto/unicode.rst:143 +#: howto/unicode.rst:143 msgid "A string of ASCII text is also valid UTF-8 text." msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." -#: ../Doc/howto/unicode.rst:144 +#: howto/unicode.rst:144 msgid "" "UTF-8 is fairly compact; the majority of commonly used characters can be " "represented with one or two bytes." @@ -299,7 +299,7 @@ msgstr "" "UTF-8 est assez compact. La majorité des caractères couramment utilisés " "peuvent être représentés avec un ou deux octets." -#: ../Doc/howto/unicode.rst:146 +#: howto/unicode.rst:146 msgid "" "If bytes are corrupted or lost, it's possible to determine the start of the " "next UTF-8-encoded code point and resynchronize. It's also unlikely that " @@ -310,7 +310,7 @@ msgstr "" "est également improbable que des données 8-bits aléatoires ressemblent à du " "UTF-8 valide." -#: ../Doc/howto/unicode.rst:149 +#: howto/unicode.rst:149 msgid "" "UTF-8 is a byte oriented encoding. The encoding specifies that each " "character is represented by a specific sequence of one or more bytes. This " @@ -318,19 +318,18 @@ msgid "" "oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes " "varies depending on the hardware on which the string was encoded." msgstr "" -"UTF-8 est un encodage orienté octets. L'encodage spécifie que chaque " +"UTF-8 est un encodage orienté octet. L'encodage spécifie que chaque " "caractère est représenté par une séquence spécifique d'un ou plusieurs " "octets. Ceci permet d'éviter les problèmes d'ordre des octets qui peuvent " "survenir avec les encodages orientés entiers (*integer*) ou orientés mots " "processeurs (*words*), comme UTF-16 et UTF-32, où la séquence des octets " "varie en fonction du matériel sur lequel la chaîne a été encodée." -#: ../Doc/howto/unicode.rst:157 ../Doc/howto/unicode.rst:513 -#: ../Doc/howto/unicode.rst:734 +#: howto/unicode.rst:513 howto/unicode.rst:734 msgid "References" msgstr "Références" -#: ../Doc/howto/unicode.rst:159 +#: howto/unicode.rst:159 msgid "" "The `Unicode Consortium site `_ has character " "charts, a glossary, and PDF versions of the Unicode specification. Be " @@ -340,23 +339,21 @@ msgid "" msgstr "" "Le site du `Consortium Unicode `_, en anglais, a des " "diagrammes de caractères, un glossaire et des versions PDF de la " -"spécification Unicode. Préparez-vous à une lecture difficile. Une " +"spécification Unicode. Préparez-vous à une lecture difficile. Une " "`chronologie `_ de l’origine et du " "développement de l’Unicode est également disponible sur le site." -#: ../Doc/howto/unicode.rst:164 -#, fuzzy +#: howto/unicode.rst:164 msgid "" "On the Computerphile Youtube channel, Tom Scott briefly `discusses the " "history of Unicode and UTF-8 `_ " "(9 minutes 36 seconds)." msgstr "" "Sur la chaîne Youtube *Computerphile*, Tom Scott parle brièvement de " -"l'histoire d'Unicode et d'UTF-8, en anglais : `Characters, Symbols and the " -"Unicode Miracle ` (9 minutes et " -"36 secondes)." +"`l’histoire d’Unicode et d’UTF-8 `_ (9 minutes et 36 secondes)." -#: ../Doc/howto/unicode.rst:168 +#: howto/unicode.rst:168 msgid "" "To help understand the standard, Jukka Korpela has written `an introductory " "guide `_ to reading the Unicode " @@ -366,7 +363,7 @@ msgstr "" "d’introduction `_ à la lecture des " "tables de caractères Unicode (ressource en anglais)." -#: ../Doc/howto/unicode.rst:172 +#: howto/unicode.rst:172 msgid "" "Another `good introductory article `_ a été " "écrit par Joel Spolsky. Si cette présente introduction ne vous a pas " -"clarifié les choses, vous devriez essayer de lire cet article là avant de " +"clarifié les choses, vous devriez essayer de lire cet article-là avant de " "continuer." -#: ../Doc/howto/unicode.rst:177 +#: howto/unicode.rst:177 msgid "" "Wikipedia entries are often helpful; see the entries for \"`character " "encoding `_\" and `UTF-8 " "`_, for example." msgstr "" -"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " +"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " "caractères `_ » et " "`UTF-8 `_, par exemple." -#: ../Doc/howto/unicode.rst:183 +#: howto/unicode.rst:183 msgid "Python's Unicode Support" msgstr "Prise en charge Unicode de Python" -#: ../Doc/howto/unicode.rst:185 +#: howto/unicode.rst:185 msgid "" "Now that you've learned the rudiments of Unicode, we can look at Python's " "Unicode features." @@ -403,11 +400,11 @@ msgstr "" "Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons " "regarder les fonctionnalités Unicode de Python." -#: ../Doc/howto/unicode.rst:189 +#: howto/unicode.rst:189 msgid "The String Type" msgstr "Le type *String*" -#: ../Doc/howto/unicode.rst:191 +#: howto/unicode.rst:191 msgid "" "Since Python 3.0, the language's :class:`str` type contains Unicode " "characters, meaning any string created using ``\"unicode rocks!\"``, " @@ -419,7 +416,7 @@ msgstr "" "déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " "est enregistrée comme Unicode." -#: ../Doc/howto/unicode.rst:195 +#: howto/unicode.rst:195 msgid "" "The default encoding for Python source code is UTF-8, so you can simply " "include a Unicode character in a string literal::" @@ -427,13 +424,13 @@ msgstr "" "L'encodage par défaut pour le code source Python est UTF-8, il est donc " "facile d'inclure des caractères Unicode dans une chaîne littérale ::" -#: ../Doc/howto/unicode.rst:205 +#: howto/unicode.rst:205 msgid "" "Side note: Python 3 also supports using Unicode characters in identifiers::" msgstr "" -"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" +"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" -#: ../Doc/howto/unicode.rst:211 +#: howto/unicode.rst:211 msgid "" "If you can't enter a particular character in your editor or want to keep the " "source code ASCII-only for some reason, you can also use escape sequences in " @@ -444,21 +441,21 @@ msgstr "" "si vous voulez garder le code source uniquement en ASCII pour une raison " "quelconque, vous pouvez également utiliser des séquences d'échappement dans " "les littéraux de chaîne (en fonction de votre système, il se peut que vous " -"voyez le glyphe réel du *delta majuscule* au lieu d'une séquence " -"d'échappement ``\\u...``) ::" +"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " +"d'échappement ``\\u...``) ::" -#: ../Doc/howto/unicode.rst:223 +#: howto/unicode.rst:223 msgid "" "In addition, one can create a string using the :func:`~bytes.decode` method " "of :class:`bytes`. This method takes an *encoding* argument, such as " "``UTF-8``, and optionally an *errors* argument." msgstr "" "De plus, une chaîne de caractères peut être créée en utilisant la méthode :" -"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " +"func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode prend un " "argument *encoding*, ``UTF-8`` par exemple, et optionnellement un argument " "*errors*." -#: ../Doc/howto/unicode.rst:227 +#: howto/unicode.rst:227 msgid "" "The *errors* argument specifies the response when the input string can't be " "converted according to the encoding's rules. Legal values for this argument " @@ -471,13 +468,13 @@ msgstr "" "L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " "pas être convertie selon les règles de l'encodage. Les valeurs autorisées " "pour cet argument sont ``'strict'`` (« strict » : lève une exception :exc:" -"`UnicodeDecodeError`) , ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " +"`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise ``U+FFFD``, " "``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut pas le " "caractère dans le résultat Unicode) ou ``'backslashreplace'`` (« remplacer " "avec antislash » : insère une séquence d’échappement ``\\xNN``). Les " "exemples suivants illustrent les différences ::" -#: ../Doc/howto/unicode.rst:247 +#: howto/unicode.rst:247 msgid "" "Encodings are specified as strings containing the encoding's name. Python " "comes with roughly 100 different encodings; see the Python Library Reference " @@ -487,12 +484,12 @@ msgid "" msgstr "" "Les encodages sont spécifiés sous forme de chaînes de caractères contenant " "le nom de l'encodage. Python est livré avec une centaine d'encodages " -"différents ; voir la référence de la bibliothèque Python sur les :ref:" +"différents ; voir la référence de la bibliothèque Python sur les :ref:" "`encodages standards ` pour une liste. Certains " -"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " +"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " "et ``'8859'`` sont tous synonymes du même encodage." -#: ../Doc/howto/unicode.rst:253 +#: howto/unicode.rst:253 msgid "" "One-character Unicode strings can also be created with the :func:`chr` built-" "in function, which takes integers and returns a Unicode string of length 1 " @@ -506,11 +503,11 @@ msgstr "" "L'opération inverse est la fonction native :func:`ord` qui prend une chaîne " "Unicode d'un caractère et renvoie la valeur du point de code ::" -#: ../Doc/howto/unicode.rst:265 +#: howto/unicode.rst:265 msgid "Converting to Bytes" msgstr "Conversion en octets" -#: ../Doc/howto/unicode.rst:267 +#: howto/unicode.rst:267 msgid "" "The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which " "returns a :class:`bytes` representation of the Unicode string, encoded in " @@ -520,7 +517,7 @@ msgstr "" "renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans " "l’encodage *encoding* demandé." -#: ../Doc/howto/unicode.rst:271 +#: howto/unicode.rst:271 msgid "" "The *errors* parameter is the same as the parameter of the :meth:`~bytes." "decode` method but supports a few more possible handlers. As well as " @@ -535,14 +532,14 @@ msgstr "" "de ``'strict'``, ``'ignore'`` et ``'remplace'`` (qui dans ce cas insère un " "point d'interrogation au lieu du caractère non codable), il y a aussi " "``'xmlcharrefreplace'`` (insère une référence XML), ``backslashreplace`` " -"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence ``" -"\\N{...}``)." +"(insère une séquence ``\\uNNNN``) et ``namereplace`` (insère une séquence " +"``\\N{...}``)." -#: ../Doc/howto/unicode.rst:279 +#: howto/unicode.rst:279 msgid "The following example shows the different results::" msgstr "L'exemple suivant montre les différents résultats ::" -#: ../Doc/howto/unicode.rst:300 +#: howto/unicode.rst:300 msgid "" "The low-level routines for registering and accessing the available encodings " "are found in the :mod:`codecs` module. Implementing new encodings also " @@ -557,13 +554,13 @@ msgstr "" "`codecs`. Cependant, les fonctions d'encodage et de décodage renvoyées par " "ce module sont généralement de bas-niveau pour être facilement utilisées et " "l'écriture de nouveaux encodages est une tâche très spécialisée, donc le " -"module ne sera pas couvert dans ce HOWTO." +"module ne sera pas couvert dans ce guide." -#: ../Doc/howto/unicode.rst:309 +#: howto/unicode.rst:309 msgid "Unicode Literals in Python Source Code" msgstr "Littéraux Unicode dans le code source Python" -#: ../Doc/howto/unicode.rst:311 +#: howto/unicode.rst:311 msgid "" "In Python source code, specific Unicode code points can be written using the " "``\\u`` escape sequence, which is followed by four hex digits giving the " @@ -572,10 +569,10 @@ msgid "" msgstr "" "Dans le code source Python, des points de code Unicode spécifiques peuvent " "être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " -"chiffres hexadécimaux donnant le point de code. La séquence d'échappement ``" -"\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" +"chiffres hexadécimaux donnant le point de code. La séquence d'échappement " +"``\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" -#: ../Doc/howto/unicode.rst:323 +#: howto/unicode.rst:323 msgid "" "Using escape sequences for code points greater than 127 is fine in small " "doses, but becomes an annoyance if you're using many accented characters, as " @@ -587,10 +584,10 @@ msgstr "" "à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " "beaucoup de caractères accentués, comme c'est le cas dans un programme avec " "des messages en français ou dans une autre langue utilisant des lettres " -"accentuées. Vous pouvez également assembler des chaînes de caractères à " +"accentuées. Vous pouvez également assembler des chaînes de caractères à " "l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." -#: ../Doc/howto/unicode.rst:329 +#: howto/unicode.rst:329 msgid "" "Ideally, you'd want to be able to write literals in your language's natural " "encoding. You could then edit Python source code with your favorite editor " @@ -598,11 +595,11 @@ msgid "" "characters used at runtime." msgstr "" "Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage " -"naturel de votre langue. Vous pourriez alors éditer le code source de " -"Python avec votre éditeur favori qui affiche les caractères accentués " +"naturel de votre langue. Vous pourriez alors éditer le code source de Python " +"avec votre éditeur favori qui affiche les caractères accentués " "naturellement, et a les bons caractères utilisés au moment de l'exécution." -#: ../Doc/howto/unicode.rst:334 +#: howto/unicode.rst:334 msgid "" "Python supports writing source code in UTF-8 by default, but you can use " "almost any encoding if you declare the encoding being used. This is done by " @@ -611,10 +608,10 @@ msgid "" msgstr "" "Python considère que le code source est écrit en UTF-8 par défaut, mais vous " "pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " -"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " +"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " "la deuxième ligne du fichier source ::" -#: ../Doc/howto/unicode.rst:344 +#: howto/unicode.rst:344 msgid "" "The syntax is inspired by Emacs's notation for specifying variables local to " "a file. Emacs supports many different variables, but Python only supports " @@ -622,26 +619,26 @@ msgid "" "special; they have no significance to Python but are a convention. Python " "looks for ``coding: name`` or ``coding=name`` in the comment." msgstr "" -"La syntaxe s'inspire de la notation d'Emacs pour spécifier les variables " +"La syntaxe s'inspire de la notation d'*Emacs* pour spécifier les variables " "locales à un fichier. *Emacs* supporte de nombreuses variables différentes, " -"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à Emacs " -"que le commentaire est spécial ; ils n'ont aucune signification pour Python " -"mais sont une convention. Python cherche ``coding: name`` ou " -"``coding=name`` dans le commentaire." +"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à *Emacs* " +"que le commentaire est spécial ; ils n'ont aucune signification pour Python " +"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` " +"dans le commentaire." -#: ../Doc/howto/unicode.rst:350 +#: howto/unicode.rst:350 msgid "" "If you don't include such a comment, the default encoding used will be UTF-8 " "as already mentioned. See also :pep:`263` for more information." msgstr "" "Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " -"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." +"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." -#: ../Doc/howto/unicode.rst:355 +#: howto/unicode.rst:355 msgid "Unicode Properties" msgstr "Propriétés Unicode" -#: ../Doc/howto/unicode.rst:357 +#: howto/unicode.rst:357 msgid "" "The Unicode specification includes a database of information about code " "points. For each defined code point, the information includes the " @@ -658,7 +655,7 @@ msgstr "" "existe également des propriétés liées à l'affichage, telles que " "l'utilisation du point de code dans un texte bidirectionnel." -#: ../Doc/howto/unicode.rst:365 +#: howto/unicode.rst:365 msgid "" "The following program displays some information about several characters, " "and prints the numeric value of one particular character::" @@ -666,11 +663,11 @@ msgstr "" "Le programme suivant affiche des informations sur plusieurs caractères et " "affiche la valeur numérique d'un caractère particulier ::" -#: ../Doc/howto/unicode.rst:379 +#: howto/unicode.rst:379 msgid "When run, this prints:" msgstr "Si vous l'exécutez, cela affiche :" -#: ../Doc/howto/unicode.rst:390 +#: howto/unicode.rst:390 msgid "" "The category codes are abbreviations describing the nature of the character. " "These are grouped into categories such as \"Letter\", \"Number\", " @@ -685,19 +682,19 @@ msgstr "" "Les codes de catégorie sont des abréviations décrivant la nature du " "caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " "« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " -"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " +"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " "``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " "autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " -"autre ». Voir la section `Valeurs générales des catégories de la " +"autre ». Voir la section `Valeurs générales des catégories de la " "documentation de la base de données de caractères Unicode `_ (ressource en anglais) " "pour une liste de codes de catégories." -#: ../Doc/howto/unicode.rst:401 +#: howto/unicode.rst:401 msgid "Comparing Strings" msgstr "Comparaison de chaînes de caractères" -#: ../Doc/howto/unicode.rst:403 +#: howto/unicode.rst:403 msgid "" "Unicode adds some complication to comparing strings, because the same set of " "characters can be represented by different sequences of code points. For " @@ -708,14 +705,14 @@ msgid "" msgstr "" "Unicode ajoute une certaine complication à la comparaison des chaînes de " "caractères, car le même jeu de caractères peut être représenté par " -"différentes séquences de points de code. Par exemple, une lettre comme " -"« ê » peut être représentée comme un point de code unique ``U+00EA``, ou " -"comme ``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un " -"point de code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le " -"même résultat lorsqu'elles sont affichées, mais l'une est une chaîne de " +"différentes séquences de points de code. Par exemple, une lettre comme « ê » " +"peut être représentée comme un point de code unique ``U+00EA``, ou comme " +"``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de " +"code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même " +"résultat lorsqu'elles sont affichées, mais l'une est une chaîne de " "caractères de longueur 1 et l'autre de longueur 2." -#: ../Doc/howto/unicode.rst:411 +#: howto/unicode.rst:411 msgid "" "One tool for a case-insensitive comparison is the :meth:`~str.casefold` " "string method that converts a string to a case-insensitive form following an " @@ -725,12 +722,12 @@ msgid "" msgstr "" "Un outil pour une comparaison insensible à la casse est la méthode :meth:" "`~str.casefold` qui convertit une chaîne en une forme insensible à la casse " -"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " +"suivant un algorithme décrit par le standard Unicode. Cet algorithme a un " "traitement spécial pour les caractères tels que la lettre allemande " "« *ß* » (point de code ``U+00DF``), qui devient la paire de lettres " "minuscules « *ss* »." -#: ../Doc/howto/unicode.rst:424 +#: howto/unicode.rst:424 msgid "" "A second tool is the :mod:`unicodedata` module's :func:`~unicodedata." "normalize` function that converts strings to one of several normal forms, " @@ -745,13 +742,13 @@ msgstr "" "combinaison sont remplacées par des caractères simples. :func:`normalize` " "peut être utilisée pour effectuer des comparaisons qui ne rapportent pas " "faussement les inégalités si deux chaînes utilisent différents caractères de " -"combinaison :" +"combinaison :" -#: ../Doc/howto/unicode.rst:447 +#: howto/unicode.rst:447 msgid "When run, this outputs:" msgstr "Si vous l'exécutez, cela affiche :" -#: ../Doc/howto/unicode.rst:456 +#: howto/unicode.rst:456 msgid "" "The first argument to the :func:`~unicodedata.normalize` function is a " "string giving the desired normalization form, which can be one of 'NFC', " @@ -761,29 +758,29 @@ msgstr "" "chaîne de caractères donnant la forme de normalisation désirée, qui peut " "être une de celles-ci : ``'NFC'``, ``'NFKC'``, ``'NFD'`` et ``'NFKD'``." -#: ../Doc/howto/unicode.rst:460 +#: howto/unicode.rst:460 msgid "The Unicode Standard also specifies how to do caseless comparisons::" msgstr "" "La norme Unicode spécifie également comment faire des comparaisons " "insensibles à la casse ::" -#: ../Doc/howto/unicode.rst:476 +#: howto/unicode.rst:476 msgid "" "This will print ``True``. (Why is :func:`NFD` invoked twice? Because there " "are a few characters that make :meth:`casefold` return a non-normalized " "string, so the result needs to be normalized again. See section 3.13 of the " "Unicode Standard for a discussion and an example.)" msgstr "" -"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " +"Ceci affiche ``True``. (Pourquoi :func:`NFD` est-il invoqué deux fois ? " "Parce qu'il y a quelques caractères qui font que :meth:`casefold` renvoie " "une chaîne non normalisée, donc le résultat doit être normalisé à nouveau. " "Voir la section 3.13 du standard Unicode pour une discussion et un exemple)." -#: ../Doc/howto/unicode.rst:483 +#: howto/unicode.rst:483 msgid "Unicode Regular Expressions" msgstr "Expressions régulières Unicode" -#: ../Doc/howto/unicode.rst:485 +#: howto/unicode.rst:485 msgid "" "The regular expressions supported by the :mod:`re` module can be provided " "either as bytes or strings. Some of the special character sequences such as " @@ -793,13 +790,13 @@ msgid "" "in the ``'Nd'`` category." msgstr "" "Les expressions régulières gérées par le module :mod:`re` peuvent être " -"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " +"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " "caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " -"différentes selon que le motif est fourni en octets ou en texte. Par " +"différentes selon que le motif est fourni en octets ou en texte. Par " "exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " "chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." -#: ../Doc/howto/unicode.rst:492 +#: howto/unicode.rst:492 msgid "" "The string in this example has the number 57 written in both Thai and Arabic " "numerals::" @@ -807,17 +804,17 @@ msgstr "" "Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes " "et thaïlandais ::" -#: ../Doc/howto/unicode.rst:502 +#: howto/unicode.rst:502 msgid "" "When executed, ``\\d+`` will match the Thai numerals and print them out. If " "you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will " "match the substring \"57\" instead." msgstr "" "Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " -"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." +"affiche. Si vous fournissez le drapeau :const:`re.ASCII` à :func:`~re." "compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." -#: ../Doc/howto/unicode.rst:506 +#: howto/unicode.rst:506 msgid "" "Similarly, ``\\w`` matches a wide variety of Unicode characters but only " "``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` " @@ -828,13 +825,13 @@ msgstr "" "``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères " "``[ \\t\\n\\r\\f\\v]``." -#: ../Doc/howto/unicode.rst:517 +#: howto/unicode.rst:517 msgid "Some good alternative discussions of Python's Unicode support are:" msgstr "" "Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " -"sont :" +"sont :" -#: ../Doc/howto/unicode.rst:519 +#: howto/unicode.rst:519 msgid "" "`Processing Text Files in Python 3 `_, by Nick Coghlan." @@ -842,15 +839,15 @@ msgstr "" "`Processing Text Files in Python 3 `_, par Nick Coghlan." -#: ../Doc/howto/unicode.rst:520 +#: howto/unicode.rst:520 msgid "" "`Pragmatic Unicode `_, a PyCon " "2012 presentation by Ned Batchelder." msgstr "" "`Pragmatic Unicode `_, une " -"présentation PyCon 2012 par Ned Batchelder." +"présentation *PyCon* 2012 par Ned Batchelder." -#: ../Doc/howto/unicode.rst:522 +#: howto/unicode.rst:522 msgid "" "The :class:`str` type is described in the Python library reference at :ref:" "`textseq`." @@ -858,15 +855,15 @@ msgstr "" "Le type :class:`str` est décrit dans la référence de la bibliothèque Python " "à :ref:`textseq`." -#: ../Doc/howto/unicode.rst:525 +#: howto/unicode.rst:525 msgid "The documentation for the :mod:`unicodedata` module." msgstr "La documentation du module :mod:`unicodedata`." -#: ../Doc/howto/unicode.rst:527 +#: howto/unicode.rst:527 msgid "The documentation for the :mod:`codecs` module." msgstr "La documentation du module :mod:`codecs`." -#: ../Doc/howto/unicode.rst:529 +#: howto/unicode.rst:529 msgid "" "Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " "slides) `_ at " @@ -876,16 +873,16 @@ msgid "" msgstr "" "Marc-André Lemburg a donné une présentation intitulée `« Python et " "Unicode » (diapositives PDF) `_ à EuroPython 2002. Les diapositives sont un excellent " +"EPC2002-Talk.pdf>`_ à *EuroPython* 2002. Les diapositives sont un excellent " "aperçu de la conception des fonctionnalités Unicode de Python 2 (où le type " "de chaîne Unicode est appelé ``unicode`` et les littéraux commencent par " "``u``)." -#: ../Doc/howto/unicode.rst:537 +#: howto/unicode.rst:537 msgid "Reading and Writing Unicode Data" msgstr "Lecture et écriture de données Unicode" -#: ../Doc/howto/unicode.rst:539 +#: howto/unicode.rst:539 msgid "" "Once you've written some code that works with Unicode data, the next problem " "is input/output. How do you get Unicode strings into your program, and how " @@ -894,9 +891,9 @@ msgstr "" "Une fois que vous avez écrit du code qui fonctionne avec des données " "Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir " "des chaînes Unicode dans votre programme et comment convertir les chaînes " -"Unicode dans une forme appropriée pour le stockage ou la transmission ?" +"Unicode dans une forme appropriée pour le stockage ou la transmission ?" -#: ../Doc/howto/unicode.rst:543 +#: howto/unicode.rst:543 msgid "" "It's possible that you may not need to do anything depending on your input " "sources and output destinations; you should check whether the libraries used " @@ -905,14 +902,14 @@ msgid "" "valued columns and can return Unicode values from an SQL query." msgstr "" "Il est possible que vous n'ayez rien à faire en fonction de vos sources " -"d'entrée et des destinations de vos données de sortie ; il convient de " +"d'entrée et des destinations de vos données de sortie ; il convient de " "vérifier si les bibliothèques utilisées dans votre application gèrent " "l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des " "données Unicode. De nombreuses bases de données relationnelles prennent " "également en charge les colonnes encodées en Unicode et peuvent renvoyer des " "valeurs Unicode à partir d'une requête SQL." -#: ../Doc/howto/unicode.rst:549 +#: howto/unicode.rst:549 msgid "" "Unicode data is usually converted to a particular encoding before it gets " "written to disk or sent over a socket. It's possible to do all the work " @@ -926,7 +923,7 @@ msgstr "" "élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. " "Cependant, l'approche manuelle n'est pas recommandée." -#: ../Doc/howto/unicode.rst:554 +#: howto/unicode.rst:554 msgid "" "One problem is the multi-byte nature of encodings; one Unicode character can " "be represented by several bytes. If you want to read the file in arbitrary-" @@ -939,19 +936,19 @@ msgid "" "least a moment you'd need to have both the encoded string and its Unicode " "version in memory.)" msgstr "" -"La nature multi-octets des encodages pose problème ; un caractère Unicode " +"La nature multi-octets des encodages pose problème ; un caractère Unicode " "peut être représenté par plusieurs octets. Si vous voulez lire le fichier " "par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " "écrire un code de gestion des erreurs pour détecter le cas où une partie " "seulement des octets codant un seul caractère Unicode est lue à la fin d'un " "morceau. Une solution serait de lire le fichier entier en mémoire et " "d'effectuer le décodage, mais cela vous empêche de travailler avec des " -"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " -"2 GiB, vous avez besoin de 2 GiB de RAM (plus que ça, en fait, puisque " +"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " +"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque " "pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " "sa version Unicode en mémoire)." -#: ../Doc/howto/unicode.rst:564 +#: howto/unicode.rst:564 msgid "" "The solution would be to use the low-level decoding interface to catch the " "case of partial coding sequences. The work of implementing this has already " @@ -963,20 +960,20 @@ msgid "" "meth:`str.encode` and :meth:`bytes.decode`." msgstr "" "La solution serait d'utiliser l'interface de décodage de bas-niveau pour " -"intercepter le cas des séquences d'encodage incomplètes. Ce travail " -"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " +"intercepter le cas des séquences d'encodage incomplètes. Ce travail " +"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " "peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " "est dans un encodage spécifié et accepte les paramètres Unicode pour des " "méthodes telles que :meth:`~io.TextIOBase.read` et :meth:`~io.TextIOBase." -"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :" -"func:`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:" -"`bytes.decode`." +"write`. Ceci fonctionne grâce aux paramètres *encoding* et *errors* de :func:" +"`open` qui sont interprétés comme ceux de :meth:`str.encode` et :meth:`bytes." +"decode`." -#: ../Doc/howto/unicode.rst:573 +#: howto/unicode.rst:573 msgid "Reading Unicode from a file is therefore simple::" msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" -#: ../Doc/howto/unicode.rst:579 +#: howto/unicode.rst:579 msgid "" "It's also possible to open files in update mode, allowing both reading and " "writing::" @@ -984,7 +981,7 @@ msgstr "" "Il est également possible d'ouvrir des fichiers en mode « mise à jour », " "permettant à la fois la lecture et l'écriture ::" -#: ../Doc/howto/unicode.rst:587 +#: howto/unicode.rst:587 msgid "" "The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is " "often written as the first character of a file in order to assist with " @@ -1000,15 +997,15 @@ msgstr "" "boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " "indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " "*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " -"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, " -"comme UTF-16, s'attendent à ce qu'une BOM soit présente au début d'un " -"fichier ; lorsqu'un tel encodage est utilisé, la BOM sera automatiquement " -"écrite comme premier caractère et sera silencieusement retirée lorsque le " -"fichier sera lu. Il existe des variantes de ces encodages, comme ``utf-16-" -"le`` et ``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, " -"qui spécifient un ordre d'octets donné et ne sautent pas la BOM." +"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme " +"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; " +"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite " +"comme premier caractère et sera silencieusement retirée lorsque le fichier " +"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et " +"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui " +"spécifient un ordre d'octets donné et ne sautent pas la *BOM*." -#: ../Doc/howto/unicode.rst:596 +#: howto/unicode.rst:596 msgid "" "In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 " "encoded files; the name is misleading since UTF-8 is not byte-order " @@ -1017,16 +1014,16 @@ msgid "" "if present." msgstr "" "Dans certains cas, il est également d'usage d'utiliser une *BOM* au début " -"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " +"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " "dépend pas de l'ordre des octets. La marque annonce simplement que le " -"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " +"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " "``utf-8-sig`` pour sauter automatiquement la marque si elle est présente." -#: ../Doc/howto/unicode.rst:603 +#: howto/unicode.rst:603 msgid "Unicode filenames" msgstr "Noms de fichiers Unicode" -#: ../Doc/howto/unicode.rst:605 +#: howto/unicode.rst:605 msgid "" "Most of the operating systems in common use today support filenames that " "contain arbitrary Unicode characters. Usually this is implemented by " @@ -1039,15 +1036,15 @@ msgid "" msgstr "" "La plupart des systèmes d'exploitation couramment utilisés aujourd'hui " "prennent en charge les noms de fichiers qui contiennent des caractères " -"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant " -"la chaîne Unicode en un encodage qui varie en fonction du système. " -"Aujourd'hui, Python converge vers l'utilisation d'UTF-8 : Python sous MacOS " -"utilise UTF-8 depuis plusieurs versions et Python 3.6 sous Windows est passé " -"à UTF-8 également. Sur les systèmes Unix, il n'y aura un encodage pour le " -"système de fichiers que si vous avez défini les variables d'environnement " -"``LANG`` ou ``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8." +"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant la " +"chaîne Unicode en un encodage qui varie en fonction du système. Aujourd'hui, " +"Python converge vers l'utilisation d'UTF-8 : Python sous MacOS utilise UTF-8 " +"depuis plusieurs versions et Python 3.6 sous Windows est passé à UTF-8 " +"également. Sur les systèmes Unix, il n'y aura un encodage pour le système de " +"fichiers que si vous avez défini les variables d'environnement ``LANG`` ou " +"``LC_CTYPE`` ; sinon, l'encodage par défaut est UTF-8." -#: ../Doc/howto/unicode.rst:615 +#: howto/unicode.rst:615 msgid "" "The :func:`sys.getfilesystemencoding` function returns the encoding to use " "on your current system, in case you want to do the encoding manually, but " @@ -1057,12 +1054,12 @@ msgid "" msgstr "" "La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser " "sur votre système actuel, au cas où vous voudriez faire l'encodage " -"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " +"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " "Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez " "généralement simplement fournir la chaîne Unicode comme nom de fichier et " "elle est automatiquement convertie à l'encodage qui convient ::" -#: ../Doc/howto/unicode.rst:625 +#: howto/unicode.rst:625 msgid "" "Functions in the :mod:`os` module such as :func:`os.stat` will also accept " "Unicode filenames." @@ -1070,7 +1067,7 @@ msgstr "" "Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent " "également les noms de fichiers Unicode." -#: ../Doc/howto/unicode.rst:628 +#: howto/unicode.rst:628 msgid "" "The :func:`os.listdir` function returns filenames, which raises an issue: " "should it return the Unicode version of filenames, or should it return bytes " @@ -1083,22 +1080,22 @@ msgid "" "program::" msgstr "" "La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève " -"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " -"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :" +"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " +"doit-elle renvoyer des chaînes d'octets contenant les versions encodées ? :" "func:`os.listdir` peut faire les deux, selon que vous fournissez le chemin " -"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une " +"du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous passez une " "chaîne Unicode comme chemin d'accès, les noms de fichiers sont décodés en " "utilisant l'encodage du système de fichiers et une liste de chaînes Unicode " "est renvoyée, tandis que passer un chemin d'accès en chaîne d'octets renvoie " -"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que " +"les noms de fichiers comme chaîne d'octets. Par exemple, en supposant que " "l'encodage par défaut du système de fichiers est UTF-8, exécuter le " "programme suivant ::" -#: ../Doc/howto/unicode.rst:646 +#: howto/unicode.rst:646 msgid "will produce the following output:" msgstr "produit la sortie suivante :" -#: ../Doc/howto/unicode.rst:654 +#: howto/unicode.rst:654 msgid "" "The first list contains UTF-8-encoded filenames, and the second list " "contains the Unicode versions." @@ -1106,7 +1103,7 @@ msgstr "" "La première liste contient les noms de fichiers encodés en UTF-8 et la " "seconde contient les versions Unicode." -#: ../Doc/howto/unicode.rst:657 +#: howto/unicode.rst:657 msgid "" "Note that on most occasions, you should can just stick with using Unicode " "with these APIs. The bytes APIs should only be used on systems where " @@ -1114,16 +1111,16 @@ msgid "" "now." msgstr "" "Notez que, dans la plupart des cas, il convient de vous en tenir à " -"l'utilisation d'Unicode avec ces APIs. Les API d'octets ne devraient être " -"utilisées que sur les systèmes où des noms de fichiers non décodables " +"l'utilisation d'Unicode avec ces *APIs*. Les *API* d'octets ne devraient " +"être utilisées que sur les systèmes où des noms de fichiers non décodables " "peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix " "maintenant." -#: ../Doc/howto/unicode.rst:664 +#: howto/unicode.rst:664 msgid "Tips for Writing Unicode-aware Programs" msgstr "Conseils pour écrire des programmes compatibles Unicode" -#: ../Doc/howto/unicode.rst:666 +#: howto/unicode.rst:666 msgid "" "This section provides some suggestions on writing software that deals with " "Unicode." @@ -1131,11 +1128,11 @@ msgstr "" "Cette section fournit quelques suggestions sur l'écriture de logiciels qui " "traitent de l'Unicode." -#: ../Doc/howto/unicode.rst:669 +#: howto/unicode.rst:669 msgid "The most important tip is:" -msgstr "Le conseil le plus important est:" +msgstr "Le conseil le plus important est :" -#: ../Doc/howto/unicode.rst:671 +#: howto/unicode.rst:671 msgid "" "Software should only work with Unicode strings internally, decoding the " "input data as soon as possible and encoding the output only at the end." @@ -1144,7 +1141,7 @@ msgstr "" "décodant les données d'entrée dès que possible et encodant la sortie " "uniquement à la fin." -#: ../Doc/howto/unicode.rst:674 +#: howto/unicode.rst:674 msgid "" "If you attempt to write processing functions that accept both Unicode and " "byte strings, you will find your program vulnerable to bugs wherever you " @@ -1155,11 +1152,11 @@ msgstr "" "Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " "les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " "de bogues dans votre programme augmentent partout où vous combinez les deux " -"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " -"automatique : si vous faites par exemple ``str + octets``, une :exc:" +"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " +"automatique : si vous faites par exemple ``str + octets``, une :exc:" "`TypeError` est levée." -#: ../Doc/howto/unicode.rst:679 +#: howto/unicode.rst:679 msgid "" "When using data coming from a web browser or some other untrusted source, a " "common technique is to check for illegal characters in a string before using " @@ -1174,19 +1171,19 @@ msgstr "" "autre source non fiable, une technique courante consiste à vérifier la " "présence de caractères illégaux dans une chaîne de caractères avant de " "l'utiliser pour générer une ligne de commande ou de la stocker dans une base " -"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " -"données d'octets codés ; certains encodages peuvent avoir des propriétés " +"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " +"données d'octets codés ; certains encodages peuvent avoir des propriétés " "intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " -"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " +"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " "spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " "choisir un moyen intelligent de cacher du texte malveillant dans le flux de " "données encodé." -#: ../Doc/howto/unicode.rst:690 +#: howto/unicode.rst:690 msgid "Converting Between File Encodings" msgstr "Conversion entre les encodages de fichiers" -#: ../Doc/howto/unicode.rst:692 +#: howto/unicode.rst:692 msgid "" "The :class:`~codecs.StreamRecoder` class can transparently convert between " "encodings, taking a stream that returns data in encoding #1 and behaving " @@ -1197,7 +1194,7 @@ msgstr "" "dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " "dans l'encodage #2." -#: ../Doc/howto/unicode.rst:696 +#: howto/unicode.rst:696 msgid "" "For example, if you have an input file *f* that's in Latin-1, you can wrap " "it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" @@ -1206,24 +1203,23 @@ msgstr "" "pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " "renvoie des octets encodés en UTF-8 ::" -#: ../Doc/howto/unicode.rst:710 +#: howto/unicode.rst:710 msgid "Files in an Unknown Encoding" msgstr "Fichiers dans un encodage inconnu" -#: ../Doc/howto/unicode.rst:712 +#: howto/unicode.rst:712 msgid "" "What can you do if you need to make a change to a file, but don't know the " "file's encoding? If you know the encoding is ASCII-compatible and only want " "to examine or modify the ASCII parts, you can open the file with the " "``surrogateescape`` error handler::" msgstr "" -"Vous avez besoin de modifier un fichier mais vous ne connaissez pas " -"l'encodage du fichier ? Si vous savez que l'encodage est compatible ASCII " -"et que vous voulez seulement examiner ou modifier les parties ASCII, vous " -"pouvez ouvrir le fichier avec le gestionnaire d'erreurs " -"``surrogateescape`` ::" +"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son " +"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous " +"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir " +"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::" -#: ../Doc/howto/unicode.rst:726 +#: howto/unicode.rst:726 msgid "" "The ``surrogateescape`` error handler will decode any non-ASCII bytes as " "code points in a special range running from U+DC80 to U+DCFF. These code " @@ -1231,12 +1227,12 @@ msgid "" "error handler is used to encode the data and write it back out." msgstr "" "Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-" -"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à ``U" -"+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque le " -"gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " +"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à " +"``U+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque " +"le gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " "données et les réécrire." -#: ../Doc/howto/unicode.rst:736 +#: howto/unicode.rst:736 msgid "" "One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " @@ -1244,10 +1240,10 @@ msgid "" msgstr "" "Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en anglais), " -"donnée lors de PyCon 2010 de David Beazley, parle du traitement de texte et " -"du traitement des données binaires." +"donnée lors de *PyCon* 2010 de David Beazley, parle du traitement de texte " +"et du traitement des données binaires." -#: ../Doc/howto/unicode.rst:740 +#: howto/unicode.rst:740 msgid "" "The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-" "aware Applications in Python\" `_ (ressource en " "anglais) traite des questions d'encodage de caractères ainsi que de " -"l'internationalisation et de la localisation d'une application. Ces " +"l'internationalisation et de la localisation d'une application. Ces " "diapositives ne couvrent que Python 2.x." -#: ../Doc/howto/unicode.rst:746 +#: howto/unicode.rst:746 msgid "" "`The Guts of Unicode in Python `_ is a PyCon 2013 talk by Benjamin Peterson that " "discusses the internal Unicode representation in Python 3.3." msgstr "" "`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence PyCon 2013 " +"unicode-in-python>`_ (ressource en anglais) est une conférence *PyCon* 2013 " "donnée par Benjamin Peterson qui traite de la représentation interne Unicode " "en Python 3.3." -#: ../Doc/howto/unicode.rst:753 +#: howto/unicode.rst:753 msgid "Acknowledgements" msgstr "Remerciements" -#: ../Doc/howto/unicode.rst:755 +#: howto/unicode.rst:755 msgid "" "The initial draft of this document was written by Andrew Kuchling. It has " "since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " @@ -1287,7 +1283,7 @@ msgstr "" "depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " "Ezio Melotti." -#: ../Doc/howto/unicode.rst:759 +#: howto/unicode.rst:759 msgid "" "Thanks to the following people who have noted errors or offered suggestions " "on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius " @@ -1295,7 +1291,7 @@ msgid "" "Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." msgstr "" "Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des " -"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " +"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " "Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von " "Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham " "Wideman." @@ -1311,9 +1307,9 @@ msgstr "" #~ "value." #~ msgstr "" #~ "En 1968, l'*American Standard Code for Information Interchange*, mieux " -#~ "connu sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait " -#~ "des codes numériques pour différents caractères, les valeurs numériques " -#~ "s'étendant de 0 à 127. Par exemple, la lettre minuscule « a » est " +#~ "connu sous son acronyme *ASCII*, a été normalisé. L'ASCII définissait des " +#~ "codes numériques pour différents caractères, les valeurs numériques " +#~ "s'étendant de 0 à 127. Par exemple, la lettre minuscule « a » est " #~ "assignée à 97 comme valeur de code." #~ msgid "" @@ -1326,8 +1322,8 @@ msgstr "" #~ "'coöperate'.)" #~ msgstr "" #~ "ASCII était une norme développée par les États-Unis, elle ne définissait " -#~ "donc que des caractères non accentués. Il y avait « e », mais pas « é » " -#~ "ou « Í ». Cela signifiait que les langues qui nécessitaient des " +#~ "donc que des caractères non accentués. Il y avait « e », mais pas « é » " +#~ "ou « Í ». Cela signifiait que les langues qui nécessitaient des " #~ "caractères accentués ne pouvaient pas être fidèlement représentées en " #~ "ASCII. (En fait, les accents manquants importaient pour l'anglais aussi, " #~ "qui contient des mots tels que « naïve » et « café », et certaines " @@ -1365,9 +1361,9 @@ msgstr "" #~ msgstr "" #~ "Dans les années 1980, presque tous les ordinateurs personnels étaient à 8 " #~ "bits, ce qui signifie que les octets pouvaient contenir des valeurs " -#~ "allant de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors " +#~ "allant de 0 à 255. Les codes ASCII allaient seulement jusqu'à 127, alors " #~ "certaines machines ont assigné les valeurs entre 128 et 255 à des " -#~ "caractères accentués. Différentes machines avaient des codes différents, " +#~ "caractères accentués. Différentes machines avaient des codes différents, " #~ "cependant, ce qui a conduit à des problèmes d'échange de fichiers. " #~ "Finalement, divers ensembles de valeurs couramment utilisés pour la gamme " #~ "128--255 ont émergé. Certains étaient de véritables normes, définies par " diff --git a/howto/urllib2.po b/howto/urllib2.po index 134c51f05e..42b8663b0e 100644 --- a/howto/urllib2.po +++ b/howto/urllib2.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,46 +14,47 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/howto/urllib2.rst:5 +#: howto/urllib2.rst:5 msgid "HOWTO Fetch Internet Resources Using The urllib Package" msgstr "" +"Guide pratique : récupérer des ressources web en utilisant le module *urllib*" -#: ../Doc/howto/urllib2.rst:0 +#: howto/urllib2.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/howto/urllib2.rst:7 +#: howto/urllib2.rst:7 msgid "`Michael Foord `_" msgstr "" -#: ../Doc/howto/urllib2.rst:11 +#: howto/urllib2.rst:11 msgid "" "There is a French translation of an earlier revision of this HOWTO, " "available at `urllib2 - Le Manuel manquant `_." msgstr "" -#: ../Doc/howto/urllib2.rst:18 +#: howto/urllib2.rst:18 msgid "Introduction" msgstr "Introduction" -#: ../Doc/howto/urllib2.rst:22 +#: howto/urllib2.rst:22 msgid "" "You may also find useful the following article on fetching web resources " "with Python:" msgstr "" -#: ../Doc/howto/urllib2.rst:25 +#: howto/urllib2.rst:25 msgid "" "`Basic Authentication `_" msgstr "" -#: ../Doc/howto/urllib2.rst:27 +#: howto/urllib2.rst:27 msgid "A tutorial on *Basic Authentication*, with examples in Python." msgstr "" -#: ../Doc/howto/urllib2.rst:29 +#: howto/urllib2.rst:29 msgid "" "**urllib.request** is a Python module for fetching URLs (Uniform Resource " "Locators). It offers a very simple interface, in the form of the *urlopen* " @@ -63,7 +64,7 @@ msgid "" "These are provided by objects called handlers and openers." msgstr "" -#: ../Doc/howto/urllib2.rst:36 +#: howto/urllib2.rst:36 msgid "" "urllib.request supports fetching URLs for many \"URL schemes\" (identified " "by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " @@ -72,7 +73,7 @@ msgid "" "HTTP." msgstr "" -#: ../Doc/howto/urllib2.rst:41 +#: howto/urllib2.rst:41 msgid "" "For straightforward situations *urlopen* is very easy to use. But as soon as " "you encounter errors or non-trivial cases when opening HTTP URLs, you will " @@ -84,22 +85,22 @@ msgid "" "is supplementary to them." msgstr "" -#: ../Doc/howto/urllib2.rst:51 +#: howto/urllib2.rst:51 msgid "Fetching URLs" msgstr "" -#: ../Doc/howto/urllib2.rst:53 +#: howto/urllib2.rst:53 msgid "The simplest way to use urllib.request is as follows::" msgstr "" -#: ../Doc/howto/urllib2.rst:59 +#: howto/urllib2.rst:59 msgid "" "If you wish to retrieve a resource via URL and store it in a temporary " "location, you can do so via the :func:`shutil.copyfileobj` and :func:" "`tempfile.NamedTemporaryFile` functions::" msgstr "" -#: ../Doc/howto/urllib2.rst:74 +#: howto/urllib2.rst:74 msgid "" "Many uses of urllib will be that simple (note that instead of an 'http:' URL " "we could have used a URL starting with 'ftp:', 'file:', etc.). However, " @@ -107,7 +108,7 @@ msgid "" "concentrating on HTTP." msgstr "" -#: ../Doc/howto/urllib2.rst:79 +#: howto/urllib2.rst:79 msgid "" "HTTP is based on requests and responses - the client makes requests and " "servers send responses. urllib.request mirrors this with a ``Request`` " @@ -118,26 +119,26 @@ msgid "" "for example call ``.read()`` on the response::" msgstr "" -#: ../Doc/howto/urllib2.rst:93 +#: howto/urllib2.rst:93 msgid "" "Note that urllib.request makes use of the same Request interface to handle " "all URL schemes. For example, you can make an FTP request like so::" msgstr "" -#: ../Doc/howto/urllib2.rst:98 +#: howto/urllib2.rst:98 msgid "" "In the case of HTTP, there are two extra things that Request objects allow " "you to do: First, you can pass data to be sent to the server. Second, you " -"can pass extra information (\"metadata\") *about* the data or the about " -"request itself, to the server - this information is sent as HTTP \"headers" -"\". Let's look at each of these in turn." +"can pass extra information (\"metadata\") *about* the data or about the " +"request itself, to the server - this information is sent as HTTP " +"\"headers\". Let's look at each of these in turn." msgstr "" -#: ../Doc/howto/urllib2.rst:105 +#: howto/urllib2.rst:105 msgid "Data" msgstr "" -#: ../Doc/howto/urllib2.rst:107 +#: howto/urllib2.rst:107 msgid "" "Sometimes you want to send data to a URL (often the URL will refer to a CGI " "(Common Gateway Interface) script or other web application). With HTTP, this " @@ -150,14 +151,14 @@ msgid "" "function from the :mod:`urllib.parse` library. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:131 +#: howto/urllib2.rst:131 msgid "" "Note that other encodings are sometimes required (e.g. for file upload from " "HTML forms - see `HTML Specification, Form Submission `_ for more details)." msgstr "" -#: ../Doc/howto/urllib2.rst:136 +#: howto/urllib2.rst:136 msgid "" "If you do not pass the ``data`` argument, urllib uses a **GET** request. One " "way in which GET and POST requests differ is that POST requests often have " @@ -170,27 +171,27 @@ msgid "" "be passed in an HTTP GET request by encoding it in the URL itself." msgstr "" -#: ../Doc/howto/urllib2.rst:146 +#: howto/urllib2.rst:146 msgid "This is done as follows::" msgstr "" -#: ../Doc/howto/urllib2.rst:161 +#: howto/urllib2.rst:161 msgid "" "Notice that the full URL is created by adding a ``?`` to the URL, followed " "by the encoded values." msgstr "" -#: ../Doc/howto/urllib2.rst:165 +#: howto/urllib2.rst:165 msgid "Headers" msgstr "" -#: ../Doc/howto/urllib2.rst:167 +#: howto/urllib2.rst:167 msgid "" "We'll discuss here one particular HTTP header, to illustrate how to add " "headers to your HTTP request." msgstr "" -#: ../Doc/howto/urllib2.rst:170 +#: howto/urllib2.rst:170 msgid "" "Some websites [#]_ dislike being browsed by programs, or send different " "versions to different browsers [#]_. By default urllib identifies itself as " @@ -203,39 +204,39 @@ msgid "" "Explorer [#]_. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:197 +#: howto/urllib2.rst:197 msgid "" "The response also has two useful methods. See the section on `info and " "geturl`_ which comes after we have a look at what happens when things go " "wrong." msgstr "" -#: ../Doc/howto/urllib2.rst:202 +#: howto/urllib2.rst:202 msgid "Handling Exceptions" msgstr "Gestion des exceptions" -#: ../Doc/howto/urllib2.rst:204 +#: howto/urllib2.rst:204 msgid "" "*urlopen* raises :exc:`URLError` when it cannot handle a response (though as " "usual with Python APIs, built-in exceptions such as :exc:`ValueError`, :exc:" "`TypeError` etc. may also be raised)." msgstr "" -#: ../Doc/howto/urllib2.rst:208 +#: howto/urllib2.rst:208 msgid "" ":exc:`HTTPError` is the subclass of :exc:`URLError` raised in the specific " "case of HTTP URLs." msgstr "" -#: ../Doc/howto/urllib2.rst:211 +#: howto/urllib2.rst:211 msgid "The exception classes are exported from the :mod:`urllib.error` module." msgstr "" -#: ../Doc/howto/urllib2.rst:214 +#: howto/urllib2.rst:214 msgid "URLError" msgstr "" -#: ../Doc/howto/urllib2.rst:216 +#: howto/urllib2.rst:216 msgid "" "Often, URLError is raised because there is no network connection (no route " "to the specified server), or the specified server doesn't exist. In this " @@ -243,15 +244,15 @@ msgid "" "containing an error code and a text error message." msgstr "" -#: ../Doc/howto/urllib2.rst:221 +#: howto/urllib2.rst:221 msgid "e.g. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:232 +#: howto/urllib2.rst:232 msgid "HTTPError" msgstr "" -#: ../Doc/howto/urllib2.rst:234 +#: howto/urllib2.rst:234 msgid "" "Every HTTP response from the server contains a numeric \"status code\". " "Sometimes the status code indicates that the server is unable to fulfil the " @@ -263,36 +264,36 @@ msgid "" "'401' (authentication required)." msgstr "" -#: ../Doc/howto/urllib2.rst:242 +#: howto/urllib2.rst:242 msgid "" "See section 10 of :rfc:`2616` for a reference on all the HTTP error codes." msgstr "" -#: ../Doc/howto/urllib2.rst:244 +#: howto/urllib2.rst:244 msgid "" "The :exc:`HTTPError` instance raised will have an integer 'code' attribute, " "which corresponds to the error sent by the server." msgstr "" -#: ../Doc/howto/urllib2.rst:248 +#: howto/urllib2.rst:248 msgid "Error Codes" msgstr "" -#: ../Doc/howto/urllib2.rst:250 +#: howto/urllib2.rst:250 msgid "" "Because the default handlers handle redirects (codes in the 300 range), and " "codes in the 100--299 range indicate success, you will usually only see " "error codes in the 400--599 range." msgstr "" -#: ../Doc/howto/urllib2.rst:254 +#: howto/urllib2.rst:254 msgid "" ":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " "of response codes in that shows all the response codes used by :rfc:`2616`. " "The dictionary is reproduced here for convenience ::" msgstr "" -#: ../Doc/howto/urllib2.rst:326 +#: howto/urllib2.rst:326 msgid "" "When an error is raised the server responds by returning an HTTP error code " "*and* an error page. You can use the :exc:`HTTPError` instance as a response " @@ -301,42 +302,42 @@ msgid "" "module::" msgstr "" -#: ../Doc/howto/urllib2.rst:346 +#: howto/urllib2.rst:346 msgid "Wrapping it Up" msgstr "" -#: ../Doc/howto/urllib2.rst:348 +#: howto/urllib2.rst:348 msgid "" "So if you want to be prepared for :exc:`HTTPError` *or* :exc:`URLError` " "there are two basic approaches. I prefer the second approach." msgstr "" -#: ../Doc/howto/urllib2.rst:352 +#: howto/urllib2.rst:352 msgid "Number 1" msgstr "" -#: ../Doc/howto/urllib2.rst:374 +#: howto/urllib2.rst:374 msgid "" "The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " "will *also* catch an :exc:`HTTPError`." msgstr "" -#: ../Doc/howto/urllib2.rst:378 +#: howto/urllib2.rst:378 msgid "Number 2" msgstr "" -#: ../Doc/howto/urllib2.rst:399 +#: howto/urllib2.rst:399 msgid "info and geturl" msgstr "" -#: ../Doc/howto/urllib2.rst:401 +#: howto/urllib2.rst:401 msgid "" "The response returned by urlopen (or the :exc:`HTTPError` instance) has two " "useful methods :meth:`info` and :meth:`geturl` and is defined in the module :" "mod:`urllib.response`.." msgstr "" -#: ../Doc/howto/urllib2.rst:405 +#: howto/urllib2.rst:405 msgid "" "**geturl** - this returns the real URL of the page fetched. This is useful " "because ``urlopen`` (or the opener object used) may have followed a " @@ -344,14 +345,14 @@ msgid "" "requested." msgstr "" -#: ../Doc/howto/urllib2.rst:409 +#: howto/urllib2.rst:409 msgid "" "**info** - this returns a dictionary-like object that describes the page " "fetched, particularly the headers sent by the server. It is currently an :" "class:`http.client.HTTPMessage` instance." msgstr "" -#: ../Doc/howto/urllib2.rst:413 +#: howto/urllib2.rst:413 msgid "" "Typical headers include 'Content-length', 'Content-type', and so on. See the " "`Quick Reference to HTTP Headers `_ for a " @@ -359,11 +360,11 @@ msgid "" "use." msgstr "" -#: ../Doc/howto/urllib2.rst:420 +#: howto/urllib2.rst:420 msgid "Openers and Handlers" msgstr "" -#: ../Doc/howto/urllib2.rst:422 +#: howto/urllib2.rst:422 msgid "" "When you fetch a URL you use an opener (an instance of the perhaps " "confusingly-named :class:`urllib.request.OpenerDirector`). Normally we have " @@ -374,20 +375,20 @@ msgid "" "HTTP redirections or HTTP cookies." msgstr "" -#: ../Doc/howto/urllib2.rst:430 +#: howto/urllib2.rst:430 msgid "" "You will want to create openers if you want to fetch URLs with specific " "handlers installed, for example to get an opener that handles cookies, or to " "get an opener that does not handle redirections." msgstr "" -#: ../Doc/howto/urllib2.rst:434 +#: howto/urllib2.rst:434 msgid "" "To create an opener, instantiate an ``OpenerDirector``, and then call ``." "add_handler(some_handler_instance)`` repeatedly." msgstr "" -#: ../Doc/howto/urllib2.rst:437 +#: howto/urllib2.rst:437 msgid "" "Alternatively, you can use ``build_opener``, which is a convenience function " "for creating opener objects with a single function call. ``build_opener`` " @@ -395,31 +396,31 @@ msgid "" "or override the default handlers." msgstr "" -#: ../Doc/howto/urllib2.rst:442 +#: howto/urllib2.rst:442 msgid "" "Other sorts of handlers you might want to can handle proxies, " "authentication, and other common but slightly specialised situations." msgstr "" -#: ../Doc/howto/urllib2.rst:445 +#: howto/urllib2.rst:445 msgid "" "``install_opener`` can be used to make an ``opener`` object the (global) " "default opener. This means that calls to ``urlopen`` will use the opener you " "have installed." msgstr "" -#: ../Doc/howto/urllib2.rst:449 +#: howto/urllib2.rst:449 msgid "" "Opener objects have an ``open`` method, which can be called directly to " "fetch urls in the same way as the ``urlopen`` function: there's no need to " "call ``install_opener``, except as a convenience." msgstr "" -#: ../Doc/howto/urllib2.rst:455 +#: howto/urllib2.rst:455 msgid "Basic Authentication" msgstr "" -#: ../Doc/howto/urllib2.rst:457 +#: howto/urllib2.rst:457 msgid "" "To illustrate creating and installing a handler we will use the " "``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " @@ -428,7 +429,7 @@ msgid "" "authentication.shtml>`_." msgstr "" -#: ../Doc/howto/urllib2.rst:463 +#: howto/urllib2.rst:463 msgid "" "When authentication is required, the server sends a header (as well as the " "401 error code) requesting authentication. This specifies the " @@ -436,11 +437,11 @@ msgid "" "Authenticate: SCHEME realm=\"REALM\"``." msgstr "" -#: ../Doc/howto/urllib2.rst:468 +#: howto/urllib2.rst:468 msgid "e.g." msgstr "" -#: ../Doc/howto/urllib2.rst:475 +#: howto/urllib2.rst:475 msgid "" "The client should then retry the request with the appropriate name and " "password for the realm included as a header in the request. This is 'basic " @@ -448,7 +449,7 @@ msgid "" "of ``HTTPBasicAuthHandler`` and an opener to use this handler." msgstr "" -#: ../Doc/howto/urllib2.rst:480 +#: howto/urllib2.rst:480 msgid "" "The ``HTTPBasicAuthHandler`` uses an object called a password manager to " "handle the mapping of URLs and realms to passwords and usernames. If you " @@ -461,13 +462,13 @@ msgid "" "by providing ``None`` as the realm argument to the ``add_password`` method." msgstr "" -#: ../Doc/howto/urllib2.rst:490 +#: howto/urllib2.rst:490 msgid "" "The top-level URL is the first URL that requires authentication. URLs " "\"deeper\" than the URL you pass to .add_password() will also match. ::" msgstr "" -#: ../Doc/howto/urllib2.rst:515 +#: howto/urllib2.rst:515 msgid "" "In the above example we only supplied our ``HTTPBasicAuthHandler`` to " "``build_opener``. By default openers have the handlers for normal situations " @@ -477,22 +478,22 @@ msgid "" "``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``." msgstr "" -#: ../Doc/howto/urllib2.rst:522 +#: howto/urllib2.rst:522 msgid "" "``top_level_url`` is in fact *either* a full URL (including the 'http:' " -"scheme component and the hostname and optionally the port number) e.g. ``" -"\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " -"optionally including the port number) e.g. ``\"example.com\"`` or ``" -"\"example.com:8080\"`` (the latter example includes a port number). The " +"scheme component and the hostname and optionally the port number) e.g. " +"``\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " +"optionally including the port number) e.g. ``\"example.com\"`` or " +"``\"example.com:8080\"`` (the latter example includes a port number). The " "authority, if present, must NOT contain the \"userinfo\" component - for " "example ``\"joe:password@example.com\"`` is not correct." msgstr "" -#: ../Doc/howto/urllib2.rst:532 +#: howto/urllib2.rst:532 msgid "Proxies" msgstr "" -#: ../Doc/howto/urllib2.rst:534 +#: howto/urllib2.rst:534 msgid "" "**urllib** will auto-detect your proxy settings and use those. This is " "through the ``ProxyHandler``, which is part of the normal handler chain when " @@ -502,30 +503,30 @@ msgid "" "similar steps to setting up a `Basic Authentication`_ handler: ::" msgstr "" -#: ../Doc/howto/urllib2.rst:547 +#: howto/urllib2.rst:547 msgid "" "Currently ``urllib.request`` *does not* support fetching of ``https`` " "locations through a proxy. However, this can be enabled by extending urllib." "request as shown in the recipe [#]_." msgstr "" -#: ../Doc/howto/urllib2.rst:553 +#: howto/urllib2.rst:553 msgid "" "``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " "the documentation on :func:`~urllib.request.getproxies`." msgstr "" -#: ../Doc/howto/urllib2.rst:558 +#: howto/urllib2.rst:558 msgid "Sockets and Layers" msgstr "" -#: ../Doc/howto/urllib2.rst:560 +#: howto/urllib2.rst:560 msgid "" "The Python support for fetching resources from the web is layered. urllib " "uses the :mod:`http.client` library, which in turn uses the socket library." msgstr "" -#: ../Doc/howto/urllib2.rst:563 +#: howto/urllib2.rst:563 msgid "" "As of Python 2.3 you can specify how long a socket should wait for a " "response before timing out. This can be useful in applications which have to " @@ -535,38 +536,38 @@ msgid "" "sockets using ::" msgstr "" -#: ../Doc/howto/urllib2.rst:586 +#: howto/urllib2.rst:586 msgid "Footnotes" msgstr "Notes" -#: ../Doc/howto/urllib2.rst:588 +#: howto/urllib2.rst:588 msgid "This document was reviewed and revised by John Lee." msgstr "" -#: ../Doc/howto/urllib2.rst:590 +#: howto/urllib2.rst:590 msgid "Google for example." msgstr "" -#: ../Doc/howto/urllib2.rst:591 +#: howto/urllib2.rst:591 msgid "" "Browser sniffing is a very bad practice for website design - building sites " "using web standards is much more sensible. Unfortunately a lot of sites " "still send different versions to different browsers." msgstr "" -#: ../Doc/howto/urllib2.rst:594 +#: howto/urllib2.rst:594 msgid "" "The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " "5.1; SV1; .NET CLR 1.1.4322)'*" msgstr "" -#: ../Doc/howto/urllib2.rst:596 +#: howto/urllib2.rst:596 msgid "" "For details of more HTTP request headers, see `Quick Reference to HTTP " "Headers`_." msgstr "" -#: ../Doc/howto/urllib2.rst:598 +#: howto/urllib2.rst:598 msgid "" "In my case I have to use a proxy to access the internet at work. If you " "attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " @@ -574,7 +575,7 @@ msgid "" "with a localhost server, I have to prevent urllib from using the proxy." msgstr "" -#: ../Doc/howto/urllib2.rst:603 +#: howto/urllib2.rst:603 msgid "" "urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." diff --git a/install/index.po b/install/index.po index 4e690a3bc7..68759187d1 100644 --- a/install/index.po +++ b/install/index.po @@ -3,48 +3,54 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-11-16 09:10+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 22:25+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/install/index.rst:7 +#: install/index.rst:7 msgid "Installing Python Modules (Legacy version)" -msgstr "installation des modules python (Version historique)" +msgstr "Installation des modules python (Version historique)" -#: ../Doc/install/index.rst:0 +#: install/index.rst:0 msgid "Author" msgstr "Auteur" -#: ../Doc/install/index.rst:9 +#: install/index.rst:9 msgid "Greg Ward" msgstr "Greg Ward" -#: ../Doc/install/index.rst:16 +#: install/index.rst:16 msgid ":ref:`installing-index`" msgstr ":ref:`installing-index`" -#: ../Doc/install/index.rst:16 +#: install/index.rst:16 msgid "" "The up to date module installation documentation. For regular Python usage, " "you almost certainly want that document rather than this one." msgstr "" +"le document à jour pour l'installation des modules. Pour une utilisation " +"normale de Python, c'est ce document que vous cherchez plutôt que celui-ci." -#: ../Doc/distutils/_setuptools_disclaimer.rst:3 +#: distutils/_setuptools_disclaimer.rst:3 msgid "" "This document is being retained solely until the ``setuptools`` " "documentation at https://setuptools.readthedocs.io/en/latest/setuptools.html " "independently covers all of the relevant information currently included here." msgstr "" +"Cette page est conservée uniquement jusqu'à ce que la documentation " +"``setuptool`` sur https://setuptools.readthedocs.io/en/latest/setuptools." +"html couvre de manière indépendante toutes les informations pertinentes " +"actuellement incluses ici." -#: ../Doc/install/index.rst:23 +#: install/index.rst:23 msgid "" "This guide only covers the basic tools for building and distributing " "extensions that are provided as part of this version of Python. Third party " @@ -59,11 +65,11 @@ msgstr "" "recommendations/>`__ dans le *Python Packaging User Guide* pour plus " "d'informations." -#: ../Doc/install/index.rst:34 +#: install/index.rst:34 msgid "Introduction" msgstr "Introduction" -#: ../Doc/install/index.rst:36 +#: install/index.rst:36 msgid "" "In Python 2.0, the ``distutils`` API was first added to the standard " "library. This provided Linux distro maintainers with a standard way of " @@ -71,8 +77,13 @@ msgid "" "administrators with a standard way of installing them directly onto target " "systems." msgstr "" +"Dans Python 2.0, l'API ``distutils`` a d'abord été ajoutée à la bibliothèque " +"standard. Elle a donné aux mainteneurs de distributions Linux une façon " +"standard d'intégrer des projets Python dans les paquets Linux, et aux " +"administrateurs système une façon standard de les installer directement sur " +"les systèmes cibles." -#: ../Doc/install/index.rst:41 +#: install/index.rst:41 msgid "" "In the many years since Python 2.0 was released, tightly coupling the build " "system and package installer to the language runtime release cycle has " @@ -80,23 +91,33 @@ msgid "" "the ``pip`` package installer and the ``setuptools`` build system, rather " "than using ``distutils`` directly." msgstr "" +"À l'époque où Python 2.0 a été publié, le fort couplage entre le système " +"d'intégration et le gestionnaire de paquets avec le cycle de publication du " +"langage était problématique, et il est désormais recommandé d'utiliser le " +"gestionnaire de paquets ``pip`` ainsi que le système d'intégration " +"``setuptools`` plutôt que d'utiliser ``distutils`` directement." -#: ../Doc/install/index.rst:47 +#: install/index.rst:47 msgid "" "See :ref:`installing-index` and :ref:`distributing-index` for more details." msgstr "" +"Voir :ref:`installing-index` et :ref:`distributing-index` pour plus de " +"détails." -#: ../Doc/install/index.rst:49 +#: install/index.rst:49 msgid "" "This legacy documentation is being retained only until we're confident that " "the ``setuptools`` documentation covers everything needed." msgstr "" +"Cette ancienne documentation sera conservée jusqu'à ce que nous soyons " +"certains que la documentation sur ``setuptools`` couvre tout ce qui est " +"nécessaire." -#: ../Doc/install/index.rst:55 +#: install/index.rst:55 msgid "Distutils based source distributions" -msgstr "" +msgstr "Distributions basées sur *distutils*" -#: ../Doc/install/index.rst:57 +#: install/index.rst:57 msgid "" "If you download a module source distribution, you can tell pretty quickly if " "it was packaged and distributed in the standard way, i.e. using the " @@ -111,23 +132,25 @@ msgid "" msgstr "" "Si vous téléchargez une distribution source du module, vous pouvez dire " "assez rapidement s'il a été empaqueté et distribué de la façon standard, " -"c'est à dire en utilisant Distutils. Premièrement, le nom et le numéro de " -"version de la distribution seront affichés en bonne place dans le nom de " +"c'est-à-dire en utilisant Distutils. Premièrement, le nom et le numéro de " +"version de la distribution sont affichés en bonne place dans le nom de " "l'archive téléchargée, par exemple :file:`foo-1.0.tar.gz` ou :file:" -"`widget-0.9.7.zip`. Ensuite, l'archive va se décompresser dans un répertoire " -"du même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " -"distribution va contenir un script d'installation :file:`setup.py` et un " +"`widget-0.9.7.zip`. Ensuite, l'archive se décompresse dans un répertoire du " +"même nom : :file:`foo-1.0` ou :file:`widget-0.9.7`. En outre, la " +"distribution contient un script d'installation :file:`setup.py` et un " "fichier nommé :file:`README.txt` ou éventuellement juste :file:`README`, qui " "doit expliquer que la construction et l'installation de la distribution du " "module se fait simplement en exécutant ceci ::" -#: ../Doc/install/index.rst:70 +#: install/index.rst:70 msgid "" "For Windows, this command should be run from a command prompt window (:" "menuselection:`Start --> Accessories`)::" msgstr "" +"Sous Windows, cette commande doit être lancée depuis une invite de commande " +"(:menuselection:`Démarrer --> Accessoires`) ::" -#: ../Doc/install/index.rst:75 +#: install/index.rst:75 msgid "" "If all these things are true, then you already know how to build and install " "the modules you've just downloaded: Run the command above. Unless you need " @@ -136,31 +159,31 @@ msgid "" "you need to get out of this manual." msgstr "" "Si toutes ces choses sont vérifiées, alors vous savez déjà comment " -"construire et installer le module que vous venez de télécharger : en " +"construire et installer le module que vous venez de télécharger : en " "exécutant la commande ci-dessus. Sauf si vous avez besoin d'installer les " "choses d'une manière non standard ou de personnaliser le processus de " "construction, vous n'avez pas vraiment besoin de ce manuel. Ou plutôt, la " -"commande ci-dessus est tout ce dont vous avez besoin de sortir de ce manuel." +"commande ci-dessus est tout ce dont vous avez besoin de retenir de ce manuel." -#: ../Doc/install/index.rst:85 +#: install/index.rst:85 msgid "Standard Build and Install" msgstr "Construction standard et installation" -#: ../Doc/install/index.rst:87 +#: install/index.rst:87 msgid "" "As described in section :ref:`inst-new-standard`, building and installing a " "module distribution using the Distutils is usually one simple command to run " "from a terminal::" msgstr "" -"Comme décrit dans la section :ref:`inst-new-standard`, la construction et " -"l'installation d'une distribution d'un module en utilisant Distutils est " -"habituellement fait avec la commande dans un terminal ::" +"Comme décrit dans la section :ref:`inst-new-standard`, construire et " +"installer une distribution de modules en utilisant les Distutils consiste " +"généralement à exécuter une simple commande dans un terminal ::" -#: ../Doc/install/index.rst:97 +#: install/index.rst:97 msgid "Platform variations" msgstr "Différences selon les plateformes" -#: ../Doc/install/index.rst:99 +#: install/index.rst:99 msgid "" "You should always run the setup command from the distribution root " "directory, i.e. the top-level subdirectory that the module source " @@ -169,13 +192,13 @@ msgid "" "thing to do is::" msgstr "" "Vous devez toujours exécuter la commande *setup* à partir du répertoire " -"racine de la distribution, à savoir le sous-répertoire de niveau supérieur à " -"celui où se sont décompressées les sources de la distribution du module. Par " -"exemple, si vous venez de télécharger les sources d'une distribution du " -"module :file:`foo-1.0.tar.gz` sous un système UNIX, la méthode normale " -"consiste à faire ::" +"racine de la distribution, à savoir le sous-répertoire de plus haut niveau " +"dans l'arborescence où se sont décompressées les sources de la distribution " +"du module. Par exemple, si vous venez de télécharger les sources d'une " +"distribution du module :file:`foo-1.0.tar.gz` sous un système UNIX, la " +"méthode normale consiste à faire ::" -#: ../Doc/install/index.rst:108 +#: install/index.rst:108 msgid "" "On Windows, you'd probably download :file:`foo-1.0.zip`. If you downloaded " "the archive file to :file:`C:\\\\Temp`, then it would unpack into :file:`C:\\" @@ -186,17 +209,17 @@ msgid "" msgstr "" "Sous Windows, vous avez probablement téléchargé :file:`foo-1.0.zip`. Si vous " "avez téléchargé le fichier d'archive dans :file:`C:\\\\Temp`, il se " -"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " -"utiliser soit un manipulateur d'archive avec une interface graphique (comme " -"WinZip) soit un outil de ligne de commande (telles que :program:`unzip` ou :" -"program:`pkunzip`) pour décompresser l'archive. Ensuite, ouvrez une fenêtre " -"d'invite de commandes et exécutez ::" +"décompressera alors dans :file:`C:\\\\Temp\\\\foo-1.0` ; vous pouvez " +"utiliser soit un gestionnaire d'archives graphique (comme WinZip), soit un " +"outil de ligne de commande (tels que :program:`unzip` ou :program:`pkunzip`) " +"pour décompresser l'archive. Ensuite, ouvrez une fenêtre d'invite de " +"commandes et exécutez ::" -#: ../Doc/install/index.rst:122 +#: install/index.rst:122 msgid "Splitting the job up" msgstr "Fractionnement du travail" -#: ../Doc/install/index.rst:124 +#: install/index.rst:124 msgid "" "Running ``setup.py install`` builds and installs all modules in one run. If " "you prefer to work incrementally---especially useful if you want to " @@ -208,17 +231,17 @@ msgid "" "privileges)." msgstr "" "Exécuter ``setup.py install`` construit et installe tous les modules en un " -"seul coup. Si vous préférez travailler progressivement -- ce qui est " +"seul coup. Si vous préférez travailler progressivement — ce qui est " "particulièrement utile si vous souhaitez personnaliser le processus de " -"construction, ou si les choses vont mal -- vous pouvez utiliser le script de " +"construction ou si les choses vont mal — vous pouvez utiliser le script de " "configuration pour faire une chose à la fois. Cela est particulièrement " "utile lorsque la construction et l'installation doit être faite par " -"différents utilisateurs -- par exemple, vous pouvez vouloir construire une " +"différents utilisateurs — par exemple, vous pouvez vouloir construire une " "distribution d'un module et la transférer à un administrateur système pour " "l'installation (ou le faire vous-même, avec les privilèges de super-" "utilisateur)." -#: ../Doc/install/index.rst:132 +#: install/index.rst:132 msgid "" "For example, you can build everything in one step, and then install " "everything in a second step, by invoking the setup script twice::" @@ -227,7 +250,7 @@ msgstr "" "installer le tout dans une deuxième étape, en invoquant le script " "d'installation deux fois ::" -#: ../Doc/install/index.rst:138 +#: install/index.rst:138 msgid "" "If you do this, you will notice that running the :command:`install` command " "first runs the :command:`build` command, which---in this case---quickly " @@ -239,25 +262,25 @@ msgstr "" "cas, s'aperçoit vite qu'il n'a rien à faire, puisque tout dans le dossier :" "file:`build` est à jour." -#: ../Doc/install/index.rst:143 +#: install/index.rst:143 msgid "" "You may not need this ability to break things down often if all you do is " "install modules downloaded off the 'net, but it's very handy for more " "advanced tasks. If you get into distributing your own Python modules and " "extensions, you'll run lots of individual Distutils commands on their own." msgstr "" -"Il se peut que vous n'ayez pas souvent besoin de cette capacité à découper " -"les étapes si tout ce que vous faite est d'installer les modules téléchargés " -"sur le Net, mais c'est très pratique pour des tâches plus avancées. Si vous " -"en venez à distribuer vos propres modules et extensions Python, vous allez " -"exécuter beaucoup de commandes individuelles de Distutils, indépendamment " -"les unes des autres." +"Il se peut que vous n'ayez pas souvent besoin de cette capacité à séparer " +"les étapes si tout ce que vous faites est d'installer les modules " +"téléchargés sur le Net, mais c'est très pratique pour des tâches plus " +"avancées. Si vous en venez à distribuer vos propres modules et extensions " +"Python, vous allez exécuter beaucoup de commandes individuelles de " +"Distutils, indépendamment les unes des autres." -#: ../Doc/install/index.rst:152 +#: install/index.rst:152 msgid "How building works" msgstr "Comment fonctionne une construction" -#: ../Doc/install/index.rst:154 +#: install/index.rst:154 msgid "" "As implied above, the :command:`build` command is responsible for putting " "the files to install into a *build directory*. By default, this is :file:" @@ -267,28 +290,28 @@ msgid "" msgstr "" "Comme sous-entendu ci-dessus, la commande :command:`build` est chargée de " "mettre les fichiers à installer dans un *répertoire de travail*. Par défaut, " -"c'est :file:`build` à la racine de la distribution ; si vous êtes très " +"c'est :file:`build` à la racine de la distribution ; si vous êtes très " "préoccupés par la vitesse, ou si vous voulez conserver l'arborescence des " "sources d'origine, vous pouvez changer le répertoire de construction avec " "l'option :option:`!--build-base`. Par exemple ::" -#: ../Doc/install/index.rst:162 +#: install/index.rst:162 msgid "" "(Or you could do this permanently with a directive in your system or " "personal Distutils configuration file; see section :ref:`inst-config-" "files`.) Normally, this isn't necessary." msgstr "" "(Ou vous pourriez le faire de façon permanente avec une directive dans votre " -"système ou dans le fichier de configuration personnelle de Distutils ; voir " +"système ou dans le fichier de configuration personnelle de Distutils ; voir " "la section :ref:`inst-config-files`.) Normalement, ce n'est pas nécessaire." -#: ../Doc/install/index.rst:166 +#: install/index.rst:166 msgid "The default layout for the build tree is as follows::" msgstr "" -"La mise en page par défaut pour l'arbre de compilation se présente comme " +"L'arborescence par défaut produite par la compilation se présente comme " "suit ::" -#: ../Doc/install/index.rst:173 +#: install/index.rst:173 msgid "" "where ```` expands to a brief description of the current OS/hardware " "platform and Python version. The first form, with just a :file:`lib` " @@ -303,17 +326,18 @@ msgid "" msgstr "" "où ```` représente une brève description de l'actuel système " "d'exploitation / plateforme matérielle et la version Python. La première " -"forme, avec juste un dossier :file:`lib` est utilisé pour les «distributions " -"de modules purs\" -- c'est-à-dire des distributions de module qui ne " -"incorporent que des modules en Python. Si un module de la distribution " +"forme, avec juste un dossier :file:`lib` est utilisée pour les " +"« distributions de modules purs » — c'est-à-dire des distributions de module " +"qui n'incorporent que des modules en Python. Si un module de la distribution " "contient au moins une extension (modules écrits en C/C++), alors il faut " "utiliser la deuxième forme, avec deux dossiers ````. Dans ce cas, le " "répertoire :file:`temp.{plat}` contient les fichiers temporaires générés par " -"le processus de compilation et de lien qui ne seront pas installés. Dans les " -"deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}`) contient tous les " -"modules Python (Python pur et extensions) qui seront installés." +"le processus de compilation et de génération de liens (ils ne seront pas " +"installés). Dans les deux cas, le dossier :file:`lib` (ou :file:`lib.{plat}" +"`) contient tous les modules Python (Python pur et extensions) qui seront " +"installés." -#: ../Doc/install/index.rst:183 +#: install/index.rst:183 msgid "" "In the future, more directories will be added to handle Python scripts, " "documentation, binary executables, and whatever else is needed to handle the " @@ -324,11 +348,11 @@ msgstr "" "nécessaire pour gérer le travail de l'installation de modules et " "d'applications Python." -#: ../Doc/install/index.rst:191 +#: install/index.rst:191 msgid "How installation works" msgstr "Comment fonctionne l'installation" -#: ../Doc/install/index.rst:193 +#: install/index.rst:193 msgid "" "After the :command:`build` command runs (whether you run it explicitly, or " "the :command:`install` command does it for you), the work of the :command:" @@ -336,14 +360,14 @@ msgid "" "under :file:`build/lib` (or :file:`build/lib.{plat}`) to your chosen " "installation directory." msgstr "" -"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutez " -"explicitement ou que la commande :command:`install` l'ai fait pour vous), le " -"travail de la commande :command:`install` est relativement simple : tout ce " -"qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" +"Après l'exécution de la commande :command:`build` (que vous l'ayez exécutée " +"explicitement ou que la commande :command:`install` l'ait fait pour vous), " +"le travail de la commande :command:`install` est relativement simple : tout " +"ce qu'il a à faire est de copier tout ce qui est sous :file:`build/lib` (ou :" "file:`build/lib.{plat}`) dans le répertoire que vous avez choisi pour " "l'installation." -#: ../Doc/install/index.rst:199 +#: install/index.rst:199 msgid "" "If you don't choose an installation directory---i.e., if you just run " "``setup.py install``\\ ---then the :command:`install` command installs to " @@ -353,78 +377,76 @@ msgid "" "distribution being installed is pure Python or contains extensions (\"non-" "pure\"):" msgstr "" -"Si vous ne choisissez aucun répertoire d'installation -- c'est-à-dire, si " -"vous lancez simplement ``setup.py install``\\ -- alors la commande :command:" -"`install` installe à l'emplacement standard pour les modules tiers de " -"Python. Cet emplacement varie selon la plateforme et selon la façon dont " -"vous avez construit et/ou installés Python lui-même. Sous UNIX (et Mac OS X, " -"qui est également basé sur Unix), il dépend aussi de savoir si le module de " -"la distribution en cours d'installation est en pur Python ou contient des " -"extensions (\"non-pur\"):" +"Si vous ne choisissez aucun répertoire d'installation — c'est-à-dire, si " +"vous lancez simplement ``setup.py install`` — alors la commande :command:" +"`install` installe le module dans l'emplacement standard pour les modules " +"tiers de Python. Cet emplacement varie selon la plateforme et selon la façon " +"dont vous avez construit ou installé Python lui-même. Sous UNIX (et Mac OS " +"X, qui est également basé sur Unix), cela dépend aussi du module de la " +"distribution en cours d'installation, suivant qu'il est en pur Python ou " +"s'il contient des extensions (« non-pur ») :" -#: ../Doc/install/index.rst:209 +#: install/index.rst:209 msgid "Platform" msgstr "Plateforme" -#: ../Doc/install/index.rst:209 +#: install/index.rst:209 msgid "Standard installation location" msgstr "Emplacement standard de l'installation" -#: ../Doc/install/index.rst:209 +#: install/index.rst:209 msgid "Default value" msgstr "Valeur par défaut" -#: ../Doc/install/index.rst:209 ../Doc/install/index.rst:735 -#: ../Doc/install/index.rst:747 +#: install/index.rst:735 install/index.rst:747 msgid "Notes" msgstr "Notes" -#: ../Doc/install/index.rst:211 +#: install/index.rst:211 msgid "Unix (pure)" msgstr "UNIX (pur)" -#: ../Doc/install/index.rst:211 ../Doc/install/index.rst:424 +#: install/index.rst:424 msgid ":file:`{prefix}/lib/python{X.Y}/site-packages`" msgstr ":file:`{prefix}/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:211 ../Doc/install/index.rst:213 +#: install/index.rst:213 msgid ":file:`/usr/local/lib/python{X.Y}/site-packages`" msgstr ":file:`/usr/local/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:211 ../Doc/install/index.rst:213 -#: ../Doc/install/index.rst:737 +#: install/index.rst:213 install/index.rst:737 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/install/index.rst:213 +#: install/index.rst:213 msgid "Unix (non-pure)" msgstr "UNIX (non-pur)" -#: ../Doc/install/index.rst:213 ../Doc/install/index.rst:425 +#: install/index.rst:425 msgid ":file:`{exec-prefix}/lib/python{X.Y}/site-packages`" msgstr ":file:`{exec-prefix}/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:215 +#: install/index.rst:215 msgid "Windows" msgstr "Windows" -#: ../Doc/install/index.rst:215 ../Doc/install/index.rst:476 +#: install/index.rst:476 msgid ":file:`{prefix}\\\\Lib\\\\site-packages`" msgstr ":file:`{prefix}\\\\Lib\\\\site-packages`" -#: ../Doc/install/index.rst:215 +#: install/index.rst:215 msgid ":file:`C:\\\\Python{XY}\\\\Lib\\\\site-packages`" msgstr ":file:`C:\\\\Python{XY}\\\\Lib\\\\site-packages`" -#: ../Doc/install/index.rst:215 ../Doc/install/index.rst:739 +#: install/index.rst:739 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/install/index.rst:218 ../Doc/install/index.rst:759 +#: install/index.rst:759 msgid "Notes:" msgstr "Notes :" -#: ../Doc/install/index.rst:221 +#: install/index.rst:221 msgid "" "Most Linux distributions include Python as a standard part of the system, " "so :file:`{prefix}` and :file:`{exec-prefix}` are usually both :file:`/usr` " @@ -436,17 +458,17 @@ msgstr "" "du système, donc :file:`{prefix}` et :file:`{exec-prefix}` sont généralement " "tous les deux :file:`/usr` sous Linux. Si vous construisez vous-même Python " "sous Linux (ou tout autre système de type Unix), les valeurs par défaut de :" -"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/locale/`." +"file:`{prefix}` et :file:`{exec-prefix}` sont souvent :file:`/usr/local`." -#: ../Doc/install/index.rst:227 +#: install/index.rst:227 msgid "" -"The default installation directory on Windows was :file:`C:\\\\Program Files" -"\\\\Python` under Python 1.6a1, 1.5.2, and earlier." +"The default installation directory on Windows was :file:`C:\\\\Program " +"Files\\\\Python` under Python 1.6a1, 1.5.2, and earlier." msgstr "" -"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" +"Sous Windows, le dossier d'installation par défaut était : :file:`C:\\" "\\Program Files\\\\Python` sous Python 1.6a1, 1.5.2 et avant." -#: ../Doc/install/index.rst:230 +#: install/index.rst:230 msgid "" ":file:`{prefix}` and :file:`{exec-prefix}` stand for the directories that " "Python is installed to, and where it finds its libraries at run-time. They " @@ -461,19 +483,19 @@ msgid "" "find out my :file:`{prefix}` and :file:`{exec-prefix}`:" msgstr "" ":file:`{prefix}` et :file:`{exec-prefix}` désignent les répertoires dans " -"lesquels Python est installé et où il trouve les librairies lors de " +"lesquels Python est installé et où il trouve ses bibliothèques lors de " "l'exécution. Ils sont toujours identiques sous Windows et très souvent les " "mêmes sous Unix et Mac OS X. Vous pouvez trouver ce que votre installation " "de Python utilise pour :file:`{prefix}` et :file:`{exec-prefix}` en " "exécutant Python en mode interactif et en tapant quelques commandes simples. " -"Sous Unix, taper seulement ``python`` à l'invite du *shell*. Sous Windows, " -"sélectionner :menuselection:`Démarrer --> Programmes --> Python X.Y --> " -"Python (ligne de commande)`. Un fois l'interpréteur démarré, vous taper du " +"Sous Unix, tapez simplement ``python`` à l'invite du *shell*. Sous Windows, " +"sélectionnez :menuselection:`Démarrer --> Programmes --> Python X.Y --> " +"Python (ligne de commande)`. Une fois l'interpréteur démarré, vous tapez 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}` :" +"tape les trois instructions ci-dessous et obtiens la sortie suivante pour " +"trouver mes :file:`{prefix}` et :file:`{exec-prefix}` :" -#: ../Doc/install/index.rst:252 +#: install/index.rst:252 msgid "" "A few other placeholders are used in this document: :file:`{X.Y}` stands for " "the version of Python, for example ``3.2``; :file:`{abiflags}` will be " @@ -484,7 +506,7 @@ msgid "" "``python3.2`` on UNIX will typically use ``Python32`` on Windows." msgstr "" "Quelques autres remplacements utilisés dans ce document : :file:`{X.Y}` " -"représenter la version de Python, par exemple ``3.2``; :file:`{abiflags}` " +"représente la version de Python, par exemple ``3.2`` ; :file:`{abiflags}` " "sera remplacé par la valeur de :data:`sys.abiflags` ou la chaine vide pour " "les plateformes qui ne définissent pas d’indicateurs d’ABI ; :file:" "`{distname}` sera remplacé par le nom de la distribution de modules en train " @@ -492,7 +514,7 @@ msgstr "" "chemins ; par exemple, une valeur qui utilise ``python3.2`` sur Unix " "utilisera typiquement ``Python32`` sur Windows." -#: ../Doc/install/index.rst:260 +#: install/index.rst:260 msgid "" "If you don't want to install modules to the standard location, or if you " "don't have permission to write there, then you need to read about alternate " @@ -501,17 +523,17 @@ msgid "" "install` on custom installations." msgstr "" "Si vous ne voulez pas installer des modules à l'emplacement standard, ou si " -"vous n'avez pas la permission d'écrire là-bas, alors vous avez besoin de " -"lire la section :ref:`inst-alt-install` sur les alternatives d'installation. " -"Si vous souhaitez personnaliser vos répertoires d'installation plus " -"fortement, allez voir la section :ref:`inst-custom-install` sur les " -"installations personnalisées." +"vous n'avez pas la permission d'écrire à cet endroit, alors lisez la " +"section :ref:`inst-alt-install` relative aux installations alternatives. Si " +"vous souhaitez personnaliser encore plus vos répertoires d'installation, " +"lisez la section :ref:`inst-custom-install` sur les installations " +"personnalisées." -#: ../Doc/install/index.rst:270 +#: install/index.rst:270 msgid "Alternate Installation" msgstr "Installation alternative" -#: ../Doc/install/index.rst:272 +#: install/index.rst:272 msgid "" "Often, it is necessary or desirable to install modules to a location other " "than the standard location for third-party Python modules. For example, on " @@ -529,10 +551,10 @@ msgstr "" "pouvez vouloir essayer un module avant d’en faire une partie standard de " "votre installation locale de Python. C’est surtout vrai lors d’une mise à " "jour d’une distribution déjà présente : vous voulez vous assurer que votre " -"base de scripts marche encore avec la nouvelle version avant de faire la " -"mise à jour pour de vrai." +"base de scripts fonctionne encore avec la nouvelle version avant de faire la " +"mise à jour pour de bon." -#: ../Doc/install/index.rst:280 +#: install/index.rst:280 msgid "" "The Distutils :command:`install` command is designed to make installing " "module distributions to an alternate location simple and painless. The " @@ -546,11 +568,11 @@ msgstr "" "l’installation de distributions de modules à un emplacement alternatif " "simple et sans douleur. L’idée de base est que vous lui fournissez un " "dossier de base pour l’installation, et la commande :command:`install` " -"choisit un ensemble de dossier (appelé le *schéma d’installation*) dans " +"choisit un ensemble de dossiers (appelé le *schéma d’installation*) dans " "lequel elle installe les fichiers. Les détails diffèrent d’une plateforme à " -"une autre, donc lisez la section ci-dessous qui s’applique à vous." +"une autre, donc lisez les sections ci-dessous qui s’appliquent à vous." -#: ../Doc/install/index.rst:288 +#: install/index.rst:288 msgid "" "Note that the various alternate installation schemes are mutually exclusive: " "you can pass ``--user``, or ``--home``, or ``--prefix`` and ``--exec-" @@ -562,11 +584,11 @@ msgstr "" "``--prefix`` et ``--exc-prefix``, ou ``--install-base`` et ``--install-" "platbase``, mais vous ne pouvez pas mélanger ces groupes." -#: ../Doc/install/index.rst:297 +#: install/index.rst:297 msgid "Alternate installation: the user scheme" msgstr "Installation alternative : le schéma *user*" -#: ../Doc/install/index.rst:299 +#: install/index.rst:299 msgid "" "This scheme is designed to be the most convenient solution for users that " "don't have write permission to the global site-packages directory or don't " @@ -575,9 +597,9 @@ msgstr "" "Ce schéma est conçu pour être la solution la plus pratique pour les " "utilisateurs qui n’ont pas la permission d’écrire dans le dossier site-" "packages global, ou qui ne veulent pas y écrire. Il est activé avec une " -"simple option : ::" +"simple option ::" -#: ../Doc/install/index.rst:305 +#: install/index.rst:305 msgid "" "Files will be installed into subdirectories of :data:`site.USER_BASE` " "(written as :file:`{userbase}` hereafter). This scheme installs pure Python " @@ -588,77 +610,66 @@ msgstr "" "USER_BASE` (écrit :file:`{userbase}` dans la suite). Ce schéma installe des " "modules Python purs et les modules d’extension au même endroit (aussi connu " "sous le nom de :data:`site.USER_SITE`).Voici les valeurs pour UNIX, y " -"compris Mac OS XX : ::" +"compris Mac OS X ::" -#: ../Doc/install/index.rst:311 ../Doc/install/index.rst:322 -#: ../Doc/install/index.rst:373 ../Doc/install/index.rst:422 -#: ../Doc/install/index.rst:474 ../Doc/install/index.rst:499 -#: ../Doc/install/index.rst:735 ../Doc/install/index.rst:747 +#: install/index.rst:322 install/index.rst:422 install/index.rst:499 +#: install/index.rst:747 msgid "Type of file" msgstr "Type de fichier" -#: ../Doc/install/index.rst:311 ../Doc/install/index.rst:322 -#: ../Doc/install/index.rst:373 ../Doc/install/index.rst:422 -#: ../Doc/install/index.rst:474 +#: install/index.rst:322 install/index.rst:422 install/index.rst:474 msgid "Installation directory" msgstr "Dossier d'installation" -#: ../Doc/install/index.rst:313 ../Doc/install/index.rst:324 -#: ../Doc/install/index.rst:375 ../Doc/install/index.rst:476 +#: install/index.rst:324 install/index.rst:476 msgid "modules" msgstr "modules" -#: ../Doc/install/index.rst:313 +#: install/index.rst:313 msgid ":file:`{userbase}/lib/python{X.Y}/site-packages`" msgstr ":file:`{userbase}/lib/python{X.Y}/site-packages`" -#: ../Doc/install/index.rst:314 ../Doc/install/index.rst:325 -#: ../Doc/install/index.rst:376 ../Doc/install/index.rst:426 -#: ../Doc/install/index.rst:477 ../Doc/install/index.rst:504 +#: install/index.rst:325 install/index.rst:426 install/index.rst:504 msgid "scripts" msgstr "scripts" -#: ../Doc/install/index.rst:314 +#: install/index.rst:314 msgid ":file:`{userbase}/bin`" msgstr ":file:`{userbase}/bin`" -#: ../Doc/install/index.rst:315 ../Doc/install/index.rst:326 -#: ../Doc/install/index.rst:377 ../Doc/install/index.rst:427 -#: ../Doc/install/index.rst:478 ../Doc/install/index.rst:505 +#: install/index.rst:326 install/index.rst:427 install/index.rst:505 msgid "data" msgstr "données" -#: ../Doc/install/index.rst:315 ../Doc/install/index.rst:326 +#: install/index.rst:326 msgid ":file:`{userbase}`" msgstr ":file:`{userbase}`" -#: ../Doc/install/index.rst:316 ../Doc/install/index.rst:327 -#: ../Doc/install/index.rst:378 ../Doc/install/index.rst:428 -#: ../Doc/install/index.rst:479 ../Doc/install/index.rst:506 +#: install/index.rst:327 install/index.rst:428 install/index.rst:506 msgid "C headers" msgstr "en-têtes C" -#: ../Doc/install/index.rst:316 +#: install/index.rst:316 msgid ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" msgstr ":file:`{userbase}/include/python{X.Y}{abiflags}/{distname}`" -#: ../Doc/install/index.rst:319 +#: install/index.rst:319 msgid "And here are the values used on Windows:" -msgstr "Et voici les valeurs utilisées sur Windows : ::" +msgstr "Et voici les valeurs utilisées sur Windows ::" -#: ../Doc/install/index.rst:324 +#: install/index.rst:324 msgid ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" msgstr ":file:`{userbase}\\\\Python{XY}\\\\site-packages`" -#: ../Doc/install/index.rst:325 +#: install/index.rst:325 msgid ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" msgstr ":file:`{userbase}\\\\Python{XY}\\\\Scripts`" -#: ../Doc/install/index.rst:327 +#: install/index.rst:327 msgid ":file:`{userbase}\\\\Python{XY}\\\\Include\\\\{distname}`" msgstr ":file:`{userbase}\\\\Python{XY}\\\\Include\\\\{distname}`" -#: ../Doc/install/index.rst:330 +#: install/index.rst:330 msgid "" "The advantage of using this scheme compared to the other ones described " "below is that the user site-packages directory is under normal conditions " @@ -672,19 +683,24 @@ msgstr "" "qui signifie qu’il n’y a rien d’autre à faire après avoir exécuté le script :" "file:`setup.py` pour finaliser l’installation." -#: ../Doc/install/index.rst:336 +#: install/index.rst:336 msgid "" "The :command:`build_ext` command also has a ``--user`` option to add :file:" "`{userbase}/include` to the compiler search path for header files and :file:" "`{userbase}/lib` to the compiler search path for libraries as well as to the " "runtime search path for shared C libraries (rpath)." msgstr "" +"La commande :command:`build_ext` possède aussi une option ``--user`` pour " +"ajouter :file:`{userbase}/include` dans les chemins où le compilateur " +"recherche les fichiers d'en-têtes et :file:`{userbase}/lib` dans les chemins " +"où le compilateur recherche les bibliothèques ainsi que les bibliothèques C " +"partagées chargeables à l'exécution (`rpath`)." -#: ../Doc/install/index.rst:345 +#: install/index.rst:345 msgid "Alternate installation: the home scheme" -msgstr "Installation alternative : le schéma home" +msgstr "Installation alternative : le schéma *home*" -#: ../Doc/install/index.rst:347 +#: install/index.rst:347 msgid "" "The idea behind the \"home scheme\" is that you build and maintain a " "personal stash of Python modules. This scheme's name is derived from the " @@ -696,27 +712,26 @@ msgstr "" "L’idée derrière le « schéma home » est que vous compilez et maintenez un " "espace personnel de modules Python. Le nom de ce schéma vient de l’idée du " "dossier « home » sur Unix, vu qu’il n’est pas rare pour un utilisateur UNIX " -"de construire leur dossier *home* avec la même disposition que :file:`/usr/` " -"or :file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel " -"que soit le système d’exploitation." +"d'agencer son dossier *home* avec la même disposition que :file:`/usr/` ou :" +"file:`/usr/local/`. Ce schéma peut être utilisé par n’importe qui, quel que " +"soit le système d’exploitation." -#: ../Doc/install/index.rst:354 +#: install/index.rst:354 msgid "Installing a new module distribution is as simple as ::" -msgstr "" -"Installer une nouvelle distribution de module est aussi simple que : ::" +msgstr "Installer une nouvelle distribution de module est aussi simple que ::" -#: ../Doc/install/index.rst:358 +#: install/index.rst:358 msgid "" "where you can supply any directory you like for the :option:`!--home` " "option. On Unix, lazy typists can just type a tilde (``~``); the :command:" "`install` command will expand this to your home directory::" msgstr "" "où vous pouvez fournir le dossier de votre choix à l’option :option:`!--" -"home`. Sur Unix, les paresseux pourront juste mettre un tilde (``~``) ; la " +"home`. Sur Unix, les paresseux peuvent mettre un simple tilde (``~``) ; la " "commande :command:`install` le remplacera par le chemin vers votre dossier " -"*home* : ::" +"personnel ::" -#: ../Doc/install/index.rst:364 +#: install/index.rst:364 msgid "" "To make Python find the distributions installed with this scheme, you may " "have to :ref:`modify Python's search path ` or edit :mod:" @@ -726,45 +741,45 @@ msgstr "" "Pour que Python puisse trouver les distributions installées avec ce schéma, " "vous devez :ref:`modifier le chemin de recherche de Python ` ou modifier :mod:`sitecustomize` (voir :mod:`site`) pour appeler :" -"func:`site.addsitedir` ou modifiez :data:`sys.path`." +"func:`site.addsitedir` ou modifier :data:`sys.path`." -#: ../Doc/install/index.rst:369 +#: install/index.rst:369 msgid "" "The :option:`!--home` option defines the installation base directory. Files " "are installed to the following directories under the installation base as " "follows:" msgstr "" "L’option :option:`!--home` définit le dossier de base de l’installation. Les " -"fichiers sont installés dans les dossiers suivants dans la base de " -"l’installation de la façon suivante : ::" +"fichiers sont installés dans les dossiers suivants sous la base de " +"l'installation de la façon suivante ::" -#: ../Doc/install/index.rst:375 +#: install/index.rst:375 msgid ":file:`{home}/lib/python`" msgstr ":file:`{home}/lib/python`" -#: ../Doc/install/index.rst:376 +#: install/index.rst:376 msgid ":file:`{home}/bin`" msgstr ":file:`{home}/bin`" -#: ../Doc/install/index.rst:377 +#: install/index.rst:377 msgid ":file:`{home}`" msgstr ":file:`{home}`" -#: ../Doc/install/index.rst:378 +#: install/index.rst:378 msgid ":file:`{home}/include/python/{distname}`" msgstr ":file:`{home}/include/python/{distname}`" -#: ../Doc/install/index.rst:381 +#: install/index.rst:381 msgid "(Mentally replace slashes with backslashes if you're on Windows.)" msgstr "" -"(Remplacez mentalement les slashs avec des antislash si vous êtes sur " +"(Remplacez mentalement les slashs avec des antislashs si vous êtes sur " "Windows.)" -#: ../Doc/install/index.rst:387 +#: install/index.rst:387 msgid "Alternate installation: Unix (the prefix scheme)" msgstr "Installation alternative : Unix (le schéma de préfixe)" -#: ../Doc/install/index.rst:389 +#: install/index.rst:389 msgid "" "The \"prefix scheme\" is useful when you wish to use one Python installation " "to perform the build/install (i.e., to run the setup script), but install " @@ -775,14 +790,14 @@ msgid "" "where the prefix scheme will be useful." msgstr "" "Le schéma de préfixe est utile quand vous voulez une installation de Python " -"pour faire la compilation/l’installation (i.e. exécuter le script *setup*), " -"mais utiliser les modules tiers d’une installation Python différente (ou " -"quelque chose qui ressemble à une installation Python différente). Si cela " -"semble inhabituel, ça l’est -- c’est pourquoi les schémas *user* et *home* " -"viennent avant. Cependant, il y a au moins deux cas connus où le schéma " -"*prefix* est utile." +"pour faire la compilation/l’installation (c.-à-d. exécuter le script " +"*setup*), mais utiliser les modules tiers d’une installation Python " +"différente (ou quelque chose qui ressemble à une installation Python " +"différente). Si cela vous semble inhabituel, ça l’est — c’est pourquoi les " +"schémas *user* et *home* viennent avant. Cependant, il y a au moins deux cas " +"connus où le schéma *prefix* est utile." -#: ../Doc/install/index.rst:396 +#: install/index.rst:396 msgid "" "First, consider that many Linux distributions put Python in :file:`/usr`, " "rather than the more traditional :file:`/usr/local`. This is entirely " @@ -797,9 +812,9 @@ msgstr "" "plutôt que d’une addition locale. Cependant, si vous installez des modules " "Python depuis leur source, vous voulez probablement qu’ils aillent dans :" "file:`/usr/local/lib/python2.{X}` plutôt que dans :file:`/usr/lib/python2.{X}" -"`. Ça peut être fait avec : ::" +"`. Ça peut être fait avec ::" -#: ../Doc/install/index.rst:405 +#: install/index.rst:405 msgid "" "Another possibility is a network filesystem where the name used to write to " "a remote directory is different from the name used to read it: for example, " @@ -808,14 +823,14 @@ msgid "" "would have to be installed to, say, :file:`/mnt/{@server}/export/lib/python2." "{X}`. This could be done with ::" 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é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 : ::" +"Une autre possibilité est un système de fichiers réseau où le nom utilisé " +"pour écrire dans un dossier distant est différent du nom utilisé pour le " +"lire : par exemple, l’interpréteur Python auquel on accède par :file:`/usr/" +"local/bin/python` peut chercher les modules dans :file:`/usr/local/lib/" +"python2.{X}`, mais ces modules doivent être installés dans, par exemple, :" +"file:`/mnt/{@server}/export/lib/python2.{X}`. Ça peut être fait avec ::" -#: ../Doc/install/index.rst:414 +#: install/index.rst:414 msgid "" "In either case, the :option:`!--prefix` option defines the installation " "base, and the :option:`!--exec-prefix` option defines the platform-specific " @@ -826,34 +841,35 @@ msgid "" "follows:" msgstr "" "Dans les deux cas, l’option :option:`!--prefix` définit la base de " -"l’installation, et l’option :option:`!--exec-prefix` définit la base " -"d’installation spécifique à la plateforme, qui est utilisé pour des fichiers " -"spécifiques à la plateforme. (Actuellement, ça ne signifie que les " -"distributions de modules non-purs, mais peuvent être étendus aux " -"bibliothèques C, exécutables, etc.). Si :option:`!--exec-prefix` n’est pas " -"fourni, il vaut par défaut :option:`!--prefix`. Les fichiers sont ainsi : ::" - -#: ../Doc/install/index.rst:424 ../Doc/install/index.rst:501 +"l’installation et l’option :option:`!--exec-prefix` définit la base " +"d’installation spécifique à la plateforme, qui est utilisée pour des " +"fichiers spécifiques à la plateforme (actuellement, ça ne concerne que les " +"distributions de modules non-purs, mais cela pourrait être étendu aux " +"bibliothèques C, exécutables, etc.). Si l'option :option:`!--exec-prefix` " +"n’est pas fournie, elle vaut par défaut :option:`!--prefix`. Les fichiers " +"sont installés ainsi :" + +#: install/index.rst:501 msgid "Python modules" msgstr "Modules Python" -#: ../Doc/install/index.rst:425 ../Doc/install/index.rst:502 +#: install/index.rst:502 msgid "extension modules" msgstr "modules d'extension" -#: ../Doc/install/index.rst:426 +#: install/index.rst:426 msgid ":file:`{prefix}/bin`" msgstr ":file:`{prefix}/bin`" -#: ../Doc/install/index.rst:427 ../Doc/install/index.rst:478 +#: install/index.rst:478 msgid ":file:`{prefix}`" msgstr ":file:`{prefix}`" -#: ../Doc/install/index.rst:428 +#: install/index.rst:428 msgid ":file:`{prefix}/include/python{X.Y}{abiflags}/{distname}`" msgstr ":file:`{prefix}/include/python{X.Y}{abiflags}/{distname}`" -#: ../Doc/install/index.rst:431 +#: install/index.rst:431 msgid "" "There is no requirement that :option:`!--prefix` or :option:`!--exec-prefix` " "actually point to an alternate Python installation; if the directories " @@ -863,7 +879,7 @@ msgstr "" "pointent vers une installation alternative de Python. Si les dossiers listés " "ci-dessus n’existent pas, ils sont créés au moment de l’installation." -#: ../Doc/install/index.rst:435 +#: install/index.rst:435 msgid "" "Incidentally, the real reason the prefix scheme is important is simply that " "a standard Unix installation uses the prefix scheme, but with :option:`!--" @@ -880,7 +896,7 @@ msgstr "" "schéma *prefix*, mais à chaque fois que vous lancez ``python setup.py " "install`` sans autre option, vous l’utilisez." -#: ../Doc/install/index.rst:442 +#: install/index.rst:442 msgid "" "Note that installing extensions to an alternate Python installation has no " "effect on how those extensions are built: in particular, the Python header " @@ -898,54 +914,64 @@ msgstr "" "aucun effet sur la façon dont ces extensions sont construites. En " "particulier, les fichiers en-têtes de Python (:file:`Python.h` et ses amis) " "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éteur utilisé pour pour exécuter les extensions " +"seront utilisés pour compiler les extensions. Il est de votre responsabilité " +"de vous assurer que l’interpréteur utilisé 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érentes, ou différentes copies de la même). (Évidemment, si vos :option:" "`!--prefix` et :option:`!--exec-prefix` ne pointent pas vers une " -"installation alternative de Python, cela n’a pas de sens." +"installation alternative de Python, cela n’a pas de sens.)" -#: ../Doc/install/index.rst:457 +#: install/index.rst:457 msgid "Alternate installation: Windows (the prefix scheme)" -msgstr "" +msgstr "Installation alternative : Windows (le schéma de préfixe)" -#: ../Doc/install/index.rst:459 +#: install/index.rst:459 msgid "" "Windows has no concept of a user's home directory, and since the standard " "Python installation under Windows is simpler than under Unix, the :option:" "`!--prefix` option has traditionally been used to install additional " "packages in separate locations on Windows. ::" msgstr "" +"Windows n'a pas de concept de répertoire utilisateur, et comme " +"l'installation standard de Python sur Windows est plus simple que sur Unix, " +"l':option:`!--prefix` option a traditionnellement été utilisée pour " +"installer des paquets supplémentaires à des endroits séparés sur Windows. ::" -#: ../Doc/install/index.rst:466 +#: install/index.rst:466 msgid "" "to install modules to the :file:`\\\\Temp\\\\Python` directory on the " "current drive." msgstr "" +"pour installer des modules dans le dossier :file:`\\\\Temp\\\\Python` du " +"disque courant." -#: ../Doc/install/index.rst:468 +#: install/index.rst:468 msgid "" "The installation base is defined by the :option:`!--prefix` option; the :" "option:`!--exec-prefix` option is not supported under Windows, which means " "that pure Python modules and extension modules are installed into the same " "location. Files are installed as follows:" msgstr "" +"Le dossier racine de l'installation est défini par l'option :option:`!--" +"prefix`. L'option :option:`!--exec-prefix` n'est pas gérée sur Windows, ce " +"qui signifie que les modules Python et les modules d'extension sont " +"installés au même endroit. Les fichiers sont installés selon ce tableau :" -#: ../Doc/install/index.rst:477 +#: install/index.rst:477 msgid ":file:`{prefix}\\\\Scripts`" -msgstr "" +msgstr ":file:`{prefix}\\\\Scripts`" -#: ../Doc/install/index.rst:479 +#: install/index.rst:479 msgid ":file:`{prefix}\\\\Include\\\\{distname}`" msgstr ":file:`{prefix}\\\\Include\\\\{distname}`" -#: ../Doc/install/index.rst:486 +#: install/index.rst:486 msgid "Custom Installation" -msgstr "" +msgstr "Installation personnalisée" -#: ../Doc/install/index.rst:488 +#: install/index.rst:488 msgid "" "Sometimes, the alternate installation schemes described in section :ref:" "`inst-alt-install` just don't do what you want. You might want to tweak " @@ -953,47 +979,56 @@ msgid "" "directory, or you might want to completely redefine the installation " "scheme. In either case, you're creating a *custom installation scheme*." msgstr "" +"Parfois, les procédés d'installation alternatifs décrits dans la section :" +"ref:`inst-alt-install` ne font pas ce que vous attendiez. Vous pourriez " +"vouloir modifier seulement un ou deux répertoires en conservant tout le " +"reste sous la même racine, ou vouloir redéfinir l'ensemble du procédé " +"d'installation. Quel que soit le cas, vous créez ainsi un *procédé " +"d'installation personnalisé*." -#: ../Doc/install/index.rst:494 +#: install/index.rst:494 msgid "" "To create a custom installation scheme, you start with one of the alternate " "schemes and override some of the installation directories used for the " "various types of files, using these options:" msgstr "" +"Pour créer un modèle d'installation personnalisé, partez d'un modèle " +"alternatif et remplacez les dossiers d'installation de types de fichiers " +"donnés via ces options :" -#: ../Doc/install/index.rst:499 +#: install/index.rst:499 msgid "Override option" -msgstr "" +msgstr "Option" -#: ../Doc/install/index.rst:501 +#: install/index.rst:501 msgid "``--install-purelib``" -msgstr "" +msgstr "``--install-purelib``" -#: ../Doc/install/index.rst:502 +#: install/index.rst:502 msgid "``--install-platlib``" -msgstr "" +msgstr "``--install-platlib``" -#: ../Doc/install/index.rst:503 +#: install/index.rst:503 msgid "all modules" -msgstr "" +msgstr "tous les modules" -#: ../Doc/install/index.rst:503 +#: install/index.rst:503 msgid "``--install-lib``" -msgstr "" +msgstr "``--install-lib``" -#: ../Doc/install/index.rst:504 +#: install/index.rst:504 msgid "``--install-scripts``" -msgstr "" +msgstr "``--install-scripts``" -#: ../Doc/install/index.rst:505 +#: install/index.rst:505 msgid "``--install-data``" -msgstr "" +msgstr "``--install-data``" -#: ../Doc/install/index.rst:506 +#: install/index.rst:506 msgid "``--install-headers``" -msgstr "" +msgstr "``--install-headers``" -#: ../Doc/install/index.rst:509 +#: install/index.rst:509 msgid "" "These override options can be relative, absolute, or explicitly defined in " "terms of one of the installation base directories. (There are two " @@ -1005,7 +1040,7 @@ msgid "" "between Python and extension modules.)" msgstr "" -#: ../Doc/install/index.rst:518 +#: install/index.rst:518 msgid "" "For example, say you're installing a module distribution to your home " "directory under Unix---but you want scripts to go in :file:`~/scripts` " @@ -1016,7 +1051,7 @@ msgid "" "case)::" msgstr "" -#: ../Doc/install/index.rst:527 +#: install/index.rst:527 msgid "" "Another Unix example: suppose your Python installation was built and " "installed with a prefix of :file:`/usr/local/python`, so under a standard " @@ -1025,14 +1060,14 @@ msgid "" "directory for the :option:`!--install-scripts` option::" msgstr "" -#: ../Doc/install/index.rst:535 +#: install/index.rst:535 msgid "" -"(This performs an installation using the \"prefix scheme,\" where the prefix " +"(This performs an installation using the \"prefix scheme\", where the prefix " "is whatever your Python interpreter was installed with--- :file:`/usr/local/" "python` in this case.)" msgstr "" -#: ../Doc/install/index.rst:539 +#: install/index.rst:539 msgid "" "If you maintain Python on Windows, you might want third-party modules to " "live in a subdirectory of :file:`{prefix}`, rather than right in :file:" @@ -1042,7 +1077,7 @@ msgid "" "conveniently be both controlled by one option::" msgstr "" -#: ../Doc/install/index.rst:548 +#: install/index.rst:548 msgid "" "The specified installation directory is relative to :file:`{prefix}`. Of " "course, you also have to ensure that this directory is in Python's module " @@ -1051,7 +1086,7 @@ msgid "" "modify Python's search path." msgstr "" -#: ../Doc/install/index.rst:554 +#: install/index.rst:554 msgid "" "If you want to define an entire installation scheme, you just have to supply " "all of the installation directory options. The recommended way to do this " @@ -1061,18 +1096,18 @@ msgid "" "from, you might define the following installation scheme::" msgstr "" -#: ../Doc/install/index.rst:567 +#: install/index.rst:567 msgid "or, equivalently, ::" msgstr "ou ::" -#: ../Doc/install/index.rst:575 +#: install/index.rst:575 msgid "" "``$PLAT`` is not (necessarily) an environment variable---it will be expanded " "by the Distutils as it parses your command line options, just as it does " "when parsing your configuration file(s)." msgstr "" -#: ../Doc/install/index.rst:579 +#: install/index.rst:579 msgid "" "Obviously, specifying the entire installation scheme every time you install " "a new module distribution would be very tedious. Thus, you can put these " @@ -1080,24 +1115,24 @@ msgid "" "files`):" msgstr "" -#: ../Doc/install/index.rst:592 +#: install/index.rst:592 msgid "or, equivalently," msgstr "ou (équivalent)," -#: ../Doc/install/index.rst:603 +#: install/index.rst:603 msgid "" "Note that these two are *not* equivalent if you supply a different " "installation base directory when you run the setup script. For example, ::" msgstr "" -#: ../Doc/install/index.rst:608 +#: install/index.rst:608 msgid "" "would install pure modules to :file:`/tmp/python/lib` in the first case, and " "to :file:`/tmp/lib` in the second case. (For the second case, you probably " "want to supply an installation base of :file:`/tmp/python`.)" msgstr "" -#: ../Doc/install/index.rst:612 +#: install/index.rst:612 msgid "" "You probably noticed the use of ``$HOME`` and ``$PLAT`` in the sample " "configuration file input. These are Distutils configuration variables, " @@ -1110,7 +1145,7 @@ msgid "" "section :ref:`inst-config-files` for details." msgstr "" -#: ../Doc/install/index.rst:622 +#: install/index.rst:622 msgid "" "When a :ref:`virtual environment ` is activated, any options that " "change the installation path will be ignored from all distutils " @@ -1118,11 +1153,11 @@ msgid "" "the virtual environment." msgstr "" -#: ../Doc/install/index.rst:636 +#: install/index.rst:636 msgid "Modifying Python's Search Path" msgstr "" -#: ../Doc/install/index.rst:638 +#: install/index.rst:638 msgid "" "When the Python interpreter executes an :keyword:`import` statement, it " "searches for both Python code and extension modules along a search path. A " @@ -1131,12 +1166,12 @@ msgid "" "module and printing the value of ``sys.path``. ::" msgstr "" -#: ../Doc/install/index.rst:655 +#: install/index.rst:655 msgid "" "The null string in ``sys.path`` represents the current working directory." msgstr "" -#: ../Doc/install/index.rst:657 +#: install/index.rst:657 msgid "" "The expected convention for locally installed packages is to put them in " "the :file:`{...}/site-packages/` directory, but you may want to install " @@ -1147,7 +1182,7 @@ msgid "" "There are several different ways to add the directory." msgstr "" -#: ../Doc/install/index.rst:665 +#: install/index.rst:665 msgid "" "The most convenient way is to add a path configuration file to a directory " "that's already on Python's path, usually to the :file:`.../site-packages/` " @@ -1158,14 +1193,14 @@ msgid "" "this mechanism for installing fixed versions of standard modules.)" msgstr "" -#: ../Doc/install/index.rst:673 +#: install/index.rst:673 msgid "" "Paths can be absolute or relative, in which case they're relative to the " "directory containing the :file:`.pth` file. See the documentation of the :" "mod:`site` module for more information." msgstr "" -#: ../Doc/install/index.rst:677 +#: install/index.rst:677 msgid "" "A slightly less convenient way is to edit the :file:`site.py` file in " "Python's standard library, and modify ``sys.path``. :file:`site.py` is " @@ -1174,7 +1209,7 @@ msgid "" "simply edit :file:`site.py` and add two lines to it:" msgstr "" -#: ../Doc/install/index.rst:688 +#: install/index.rst:688 msgid "" "However, if you reinstall the same major version of Python (perhaps when " "upgrading from 2.2 to 2.2.2, for example) :file:`site.py` will be " @@ -1182,7 +1217,7 @@ msgid "" "modified and save a copy before doing the installation." msgstr "" -#: ../Doc/install/index.rst:693 +#: install/index.rst:693 msgid "" "There are two environment variables that can modify ``sys.path``. :envvar:" "`PYTHONHOME` sets an alternate value for the prefix of the Python " @@ -1191,7 +1226,7 @@ msgid "" "Y/', '/www/python/lib/pythonX.Y/plat-linux2', ...]``." msgstr "" -#: ../Doc/install/index.rst:699 +#: install/index.rst:699 msgid "" "The :envvar:`PYTHONPATH` variable can be set to a list of paths that will be " "added to the beginning of ``sys.path``. For example, if :envvar:" @@ -1201,17 +1236,17 @@ msgid "" "don't exist.)" msgstr "" -#: ../Doc/install/index.rst:706 +#: install/index.rst:706 msgid "" "Finally, ``sys.path`` is just a regular Python list, so any Python " "application can modify it by adding or removing entries." msgstr "" -#: ../Doc/install/index.rst:713 +#: install/index.rst:713 msgid "Distutils Configuration Files" msgstr "" -#: ../Doc/install/index.rst:715 +#: install/index.rst:715 msgid "" "As mentioned above, you can use Distutils configuration files to record " "personal or site preferences for any Distutils options. That is, any option " @@ -1223,76 +1258,76 @@ msgid "" "files are overridden by \"later\" files." msgstr "" -#: ../Doc/install/index.rst:728 +#: install/index.rst:728 msgid "Location and names of config files" msgstr "" -#: ../Doc/install/index.rst:730 +#: install/index.rst:730 msgid "" "The names and locations of the configuration files vary slightly across " "platforms. On Unix and Mac OS X, the three configuration files (in the " "order they are processed) are:" msgstr "" -#: ../Doc/install/index.rst:735 ../Doc/install/index.rst:747 +#: install/index.rst:747 msgid "Location and filename" msgstr "" -#: ../Doc/install/index.rst:737 ../Doc/install/index.rst:749 +#: install/index.rst:749 msgid "system" msgstr "" -#: ../Doc/install/index.rst:737 +#: install/index.rst:737 msgid ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" -msgstr "" +msgstr ":file:`{prefix}/lib/python{ver}/distutils/distutils.cfg`" -#: ../Doc/install/index.rst:739 ../Doc/install/index.rst:751 +#: install/index.rst:751 msgid "personal" msgstr "" -#: ../Doc/install/index.rst:739 +#: install/index.rst:739 msgid ":file:`$HOME/.pydistutils.cfg`" -msgstr "" +msgstr ":file:`$HOME/.pydistutils.cfg`" -#: ../Doc/install/index.rst:741 ../Doc/install/index.rst:753 +#: install/index.rst:753 msgid "local" msgstr "" -#: ../Doc/install/index.rst:741 ../Doc/install/index.rst:753 +#: install/index.rst:753 msgid ":file:`setup.cfg`" -msgstr "" +msgstr ":file:`setup.cfg`" -#: ../Doc/install/index.rst:741 ../Doc/install/index.rst:753 +#: install/index.rst:753 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/install/index.rst:744 +#: install/index.rst:744 msgid "And on Windows, the configuration files are:" msgstr "" -#: ../Doc/install/index.rst:749 +#: install/index.rst:749 msgid ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" -msgstr "" +msgstr ":file:`{prefix}\\\\Lib\\\\distutils\\\\distutils.cfg`" -#: ../Doc/install/index.rst:749 +#: install/index.rst:749 msgid "\\(4)" msgstr "\\(4)" -#: ../Doc/install/index.rst:751 +#: install/index.rst:751 msgid ":file:`%HOME%\\\\pydistutils.cfg`" -msgstr "" +msgstr ":file:`%HOME%\\\\pydistutils.cfg`" -#: ../Doc/install/index.rst:751 +#: install/index.rst:751 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/install/index.rst:756 +#: install/index.rst:756 msgid "" "On all platforms, the \"personal\" file can be temporarily disabled by " "passing the `--no-user-cfg` option." msgstr "" -#: ../Doc/install/index.rst:762 +#: install/index.rst:762 msgid "" "Strictly speaking, the system-wide configuration file lives in the directory " "where the Distutils are installed; under Python 1.6 and later on Unix, this " @@ -1301,7 +1336,7 @@ msgid "" "configuration file should be put there under Python 1.5.2." msgstr "" -#: ../Doc/install/index.rst:769 +#: install/index.rst:769 msgid "" "On Unix, if the :envvar:`HOME` environment variable is not defined, the " "user's home directory will be determined with the :func:`getpwuid` function " @@ -1309,12 +1344,12 @@ msgid "" "expanduser` function used by Distutils." msgstr "" -#: ../Doc/install/index.rst:775 +#: install/index.rst:775 msgid "" "I.e., in the current directory (usually the location of the setup script)." msgstr "" -#: ../Doc/install/index.rst:778 +#: install/index.rst:778 msgid "" "(See also note (1).) Under Python 1.6 and later, Python's default " "\"installation prefix\" is :file:`C:\\\\Python`, so the system configuration " @@ -1326,7 +1361,7 @@ msgid "" "Windows." msgstr "" -#: ../Doc/install/index.rst:787 +#: install/index.rst:787 msgid "" "On Windows, if the :envvar:`HOME` environment variable is not defined, :" "envvar:`USERPROFILE` then :envvar:`HOMEDRIVE` and :envvar:`HOMEPATH` will be " @@ -1334,11 +1369,11 @@ msgid "" "Distutils." msgstr "" -#: ../Doc/install/index.rst:796 +#: install/index.rst:796 msgid "Syntax of config files" msgstr "" -#: ../Doc/install/index.rst:798 +#: install/index.rst:798 msgid "" "The Distutils configuration files all have the same syntax. The config " "files are grouped into sections. There is one section for each Distutils " @@ -1347,13 +1382,13 @@ msgid "" "``option=value``." msgstr "" -#: ../Doc/install/index.rst:803 +#: install/index.rst:803 msgid "" "For example, the following is a complete config file that just forces all " "commands to run quietly by default:" msgstr "" -#: ../Doc/install/index.rst:811 +#: install/index.rst:811 msgid "" "If this is installed as the system config file, it will affect all " "processing of any Python module distribution by any user on the current " @@ -1363,18 +1398,18 @@ msgid "" "distribution, it affects only that distribution." msgstr "" -#: ../Doc/install/index.rst:818 +#: install/index.rst:818 msgid "" "You could override the default \"build base\" directory and make the :" "command:`build\\*` commands always forcibly rebuild all files with the " "following:" msgstr "" -#: ../Doc/install/index.rst:828 +#: install/index.rst:828 msgid "which corresponds to the command-line arguments ::" msgstr "" -#: ../Doc/install/index.rst:832 +#: install/index.rst:832 msgid "" "except that including the :command:`build` command on the command-line means " "that command will be run. Including a particular command in config files " @@ -1383,29 +1418,29 @@ msgid "" "values from it are run, they will use the values in the config file.)" msgstr "" -#: ../Doc/install/index.rst:838 +#: install/index.rst:838 msgid "" "You can find out the complete list of options for any command using the :" "option:`!--help` option, e.g.::" msgstr "" -#: ../Doc/install/index.rst:843 +#: install/index.rst:843 msgid "" "and you can find out the complete list of global options by using :option:" "`!--help` without a command::" msgstr "" -#: ../Doc/install/index.rst:848 +#: install/index.rst:848 msgid "" "See also the \"Reference\" section of the \"Distributing Python Modules\" " "manual." msgstr "" -#: ../Doc/install/index.rst:854 +#: install/index.rst:854 msgid "Building Extensions: Tips and Tricks" msgstr "" -#: ../Doc/install/index.rst:856 +#: install/index.rst:856 msgid "" "Whenever possible, the Distutils try to use the configuration information " "made available by the Python interpreter used to run the :file:`setup.py` " @@ -1415,11 +1450,11 @@ msgid "" "section discusses how to override the usual Distutils behaviour." msgstr "" -#: ../Doc/install/index.rst:867 +#: install/index.rst:867 msgid "Tweaking compiler/linker flags" msgstr "" -#: ../Doc/install/index.rst:869 +#: install/index.rst:869 msgid "" "Compiling a Python extension written in C or C++ will sometimes require " "specifying custom flags for the compiler and linker in order to use a " @@ -1428,7 +1463,7 @@ msgid "" "you're trying to cross-compile Python." msgstr "" -#: ../Doc/install/index.rst:875 +#: install/index.rst:875 msgid "" "In the most general case, the extension author might have foreseen that " "compiling the extensions would be complicated, and provided a :file:`Setup` " @@ -1437,18 +1472,18 @@ msgid "" "require elaborate sets of compiler flags in order to work." msgstr "" -#: ../Doc/install/index.rst:881 +#: install/index.rst:881 msgid "" "A :file:`Setup` file, if present, is parsed in order to get a list of " "extensions to build. Each line in a :file:`Setup` describes a single " "module. Lines have the following structure::" msgstr "" -#: ../Doc/install/index.rst:888 +#: install/index.rst:888 msgid "Let's examine each of the fields in turn." msgstr "" -#: ../Doc/install/index.rst:890 +#: install/index.rst:890 msgid "" "*module* is the name of the extension module to be built, and should be a " "valid Python identifier. You can't just change this in order to rename a " @@ -1456,7 +1491,7 @@ msgid "" "left alone." msgstr "" -#: ../Doc/install/index.rst:894 +#: install/index.rst:894 msgid "" "*sourcefile* is anything that's likely to be a source code file, at least " "judging by the filename. Filenames ending in :file:`.c` are assumed to be " @@ -1465,64 +1500,64 @@ msgid "" "assumed to be in Objective C." msgstr "" -#: ../Doc/install/index.rst:900 +#: install/index.rst:900 msgid "" "*cpparg* is an argument for the C preprocessor, and is anything starting " "with :option:`!-I`, :option:`!-D`, :option:`!-U` or :option:`!-C`." msgstr "" -#: ../Doc/install/index.rst:903 +#: install/index.rst:903 msgid "" "*library* is anything ending in :file:`.a` or beginning with :option:`!-l` " "or :option:`!-L`." msgstr "" -#: ../Doc/install/index.rst:906 +#: install/index.rst:906 msgid "" "If a particular platform requires a special library on your platform, you " "can add it by editing the :file:`Setup` file and running ``python setup.py " "build``. For example, if the module defined by the line ::" msgstr "" -#: ../Doc/install/index.rst:912 +#: install/index.rst:912 msgid "" "must be linked with the math library :file:`libm.a` on your platform, simply " "add :option:`!-lm` to the line::" msgstr "" -#: ../Doc/install/index.rst:917 +#: install/index.rst:917 msgid "" "Arbitrary switches intended for the compiler or the linker can be supplied " "with the :option:`!-Xcompiler` *arg* and :option:`!-Xlinker` *arg* options::" msgstr "" -#: ../Doc/install/index.rst:922 +#: install/index.rst:922 msgid "" "The next option after :option:`!-Xcompiler` and :option:`!-Xlinker` will be " "appended to the proper command line, so in the above example the compiler " "will be passed the :option:`!-o32` option, and the linker will be passed :" "option:`!-shared`. If a compiler option requires an argument, you'll have " -"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x c" -"++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -Xcompiler " -"c++``." +"to supply multiple :option:`!-Xcompiler` options; for example, to pass ``-x " +"c++`` the :file:`Setup` file would have to contain ``-Xcompiler -x -" +"Xcompiler c++``." msgstr "" -#: ../Doc/install/index.rst:929 +#: install/index.rst:929 msgid "" "Compiler flags can also be supplied through setting the :envvar:`CFLAGS` " "environment variable. If set, the contents of :envvar:`CFLAGS` will be " "added to the compiler flags specified in the :file:`Setup` file." msgstr "" -#: ../Doc/install/index.rst:937 +#: install/index.rst:937 msgid "Using non-Microsoft compilers on Windows" msgstr "" -#: ../Doc/install/index.rst:944 +#: install/index.rst:944 msgid "Borland/CodeGear C++" msgstr "" -#: ../Doc/install/index.rst:946 +#: install/index.rst:946 msgid "" "This subsection describes the necessary steps to use Distutils with the " "Borland C++ compiler version 5.5. First you have to know that Borland's " @@ -1533,7 +1568,7 @@ msgid "" "`python25.lib` into the Borland format. You can do this as follows:" msgstr "" -#: ../Doc/install/index.rst:961 +#: install/index.rst:961 msgid "" "The :file:`coff2omf` program comes with the Borland compiler. The file :" "file:`python25.lib` is in the :file:`Libs` directory of your Python " @@ -1541,13 +1576,13 @@ msgid "" "to convert them too." msgstr "" -#: ../Doc/install/index.rst:966 +#: install/index.rst:966 msgid "" "The converted files have to reside in the same directories as the normal " "libraries." msgstr "" -#: ../Doc/install/index.rst:969 +#: install/index.rst:969 msgid "" "How does Distutils manage to use these libraries with their changed names? " "If the extension needs a library (eg. :file:`foo`) Distutils checks first if " @@ -1556,46 +1591,46 @@ msgid "" "it uses the default name (:file:`foo.lib`.) [#]_" msgstr "" -#: ../Doc/install/index.rst:975 +#: install/index.rst:975 msgid "" "To let Distutils compile your extension with Borland C++ you now have to " "type::" msgstr "" -#: ../Doc/install/index.rst:979 +#: install/index.rst:979 msgid "" "If you want to use the Borland C++ compiler as the default, you could " "specify this in your personal or system-wide configuration file for " "Distutils (see section :ref:`inst-config-files`.)" msgstr "" -#: ../Doc/install/index.rst:988 +#: install/index.rst:988 msgid "`C++Builder Compiler `_" msgstr "" -#: ../Doc/install/index.rst:987 +#: install/index.rst:987 msgid "" "Information about the free C++ compiler from Borland, including links to the " "download pages." msgstr "" -#: ../Doc/install/index.rst:991 +#: install/index.rst:991 msgid "" "`Creating Python Extensions Using Borland's Free Compiler `_" msgstr "" -#: ../Doc/install/index.rst:991 +#: install/index.rst:991 msgid "" "Document describing how to use Borland's free command-line C++ compiler to " "build Python." msgstr "" -#: ../Doc/install/index.rst:996 +#: install/index.rst:996 msgid "GNU C / Cygwin / MinGW" msgstr "" -#: ../Doc/install/index.rst:998 +#: install/index.rst:998 msgid "" "This section describes the necessary steps to use Distutils with the GNU C/C+" "+ compilers in their Cygwin and MinGW distributions. [#]_ For a Python " @@ -1603,40 +1638,40 @@ msgid "" "of these following steps." msgstr "" -#: ../Doc/install/index.rst:1003 +#: install/index.rst:1003 msgid "" "Not all extensions can be built with MinGW or Cygwin, but many can. " "Extensions most likely to not work are those that use C++ or depend on " "Microsoft Visual C extensions." msgstr "" -#: ../Doc/install/index.rst:1007 +#: install/index.rst:1007 msgid "To let Distutils compile your extension with Cygwin you have to type::" msgstr "" -#: ../Doc/install/index.rst:1011 +#: install/index.rst:1011 msgid "and for Cygwin in no-cygwin mode [#]_ or for MinGW type::" msgstr "" -#: ../Doc/install/index.rst:1015 +#: install/index.rst:1015 msgid "" "If you want to use any of these options/compilers as default, you should " "consider writing it in your personal or system-wide configuration file for " "Distutils (see section :ref:`inst-config-files`.)" msgstr "" -#: ../Doc/install/index.rst:1020 +#: install/index.rst:1020 msgid "Older Versions of Python and MinGW" msgstr "" -#: ../Doc/install/index.rst:1021 +#: install/index.rst:1021 msgid "" "The following instructions only apply if you're using a version of Python " "inferior to 2.4.1 with a MinGW inferior to 3.0.0 (with " "binutils-2.13.90-20030111-1)." msgstr "" -#: ../Doc/install/index.rst:1025 +#: install/index.rst:1025 msgid "" "These compilers require some special libraries. This task is more complex " "than for Borland's C++, because there is no program to convert the library. " @@ -1645,7 +1680,7 @@ msgid "" "projects/mingw/files/MinGW/Extension/pexports/)." msgstr "" -#: ../Doc/install/index.rst:1038 +#: install/index.rst:1038 msgid "" "The location of an installed :file:`python25.dll` will depend on the " "installation options and the version and language of Windows. In a \"just " @@ -1654,53 +1689,51 @@ msgid "" "directory." msgstr "" -#: ../Doc/install/index.rst:1043 +#: install/index.rst:1043 msgid "" "Then you can create from these information an import library for gcc. ::" msgstr "" -#: ../Doc/install/index.rst:1047 +#: install/index.rst:1047 msgid "" "The resulting library has to be placed in the same directory as :file:" "`python25.lib`. (Should be the :file:`libs` directory under your Python " "installation directory.)" msgstr "" -#: ../Doc/install/index.rst:1051 +#: install/index.rst:1051 msgid "" "If your extension uses other libraries (zlib,...) you might have to convert " "them too. The converted files have to reside in the same directories as the " "normal libraries do." msgstr "" -#: ../Doc/install/index.rst:1058 +#: install/index.rst:1058 msgid "" "`Building Python modules on MS Windows platform with MinGW `_" msgstr "" -#: ../Doc/install/index.rst:1059 +#: install/index.rst:1059 msgid "" "Information about building the required libraries for the MinGW environment." msgstr "" -#: ../Doc/install/index.rst:1063 +#: install/index.rst:1063 msgid "Footnotes" msgstr "Notes" -#: ../Doc/install/index.rst:1064 +#: install/index.rst:1064 msgid "" "This also means you could replace all existing COFF-libraries with OMF-" "libraries of the same name." msgstr "" -#: ../Doc/install/index.rst:1067 -msgid "" -"Check https://www.sourceware.org/cygwin/ and http://www.mingw.org/ for more " -"information" +#: install/index.rst:1067 +msgid "Check https://www.sourceware.org/cygwin/ for more information" msgstr "" -#: ../Doc/install/index.rst:1070 +#: install/index.rst:1069 msgid "" "Then you have no POSIX emulation available, but you also don't need :file:" "`cygwin1.dll`." @@ -1712,10 +1745,10 @@ msgstr "" #~ "capabilities of a standard Python installation by building and installing " #~ "third-party Python modules and extensions." #~ msgstr "" -#~ "Ce document décrit les utilitaires de distribution de Python (\"Distutils" -#~ "\") du point de vue de l'utilisateur final, décrivant comment étendre les " -#~ "capacités d'une installation standard de python en construisant et " -#~ "installant des modules python tiers et des extensions." +#~ "Ce document décrit les utilitaires de distribution de Python " +#~ "(\"Distutils\") du point de vue de l'utilisateur final, décrivant comment " +#~ "étendre les capacités d'une installation standard de python en " +#~ "construisant et installant des modules python tiers et des extensions." #~ msgid "" #~ "Although Python's extensive standard library covers many programming " diff --git a/installing/index.po b/installing/index.po index cf0912894b..4b890f18a6 100644 --- a/installing/index.po +++ b/installing/index.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-09-04 11:44+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"PO-Revision-Date: 2019-12-15 21:18+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/installing/index.rst:7 msgid "Installing Python Modules" @@ -47,7 +47,7 @@ msgid "" msgstr "" "Cela permet aux utilisateurs de Python de partager et de collaborer " "efficacement, bénéficiant des solutions que les autres ont déjà crées pour " -"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " +"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " "partager leurs propres solutions à tous." #: ../Doc/installing/index.rst:20 @@ -68,7 +68,7 @@ msgid "" "the distribution and installation tools provided with Python." msgstr "" "Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leur propres règles sur l'utilisation et la contribution " +"organisations ont leurs propres règles sur l'utilisation et la contribution " "au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " "outils de distribution et d'installation fournis par Python." @@ -130,15 +130,15 @@ msgid "" "developers and documentation authors responsible for the maintenance and " "evolution of the standard packaging tools and the associated metadata and " "file format standards. They maintain a variety of tools, documentation, and " -"issue trackers on both `GitHub `__ and `BitBucket " +"issue trackers on both `GitHub `__ and `Bitbucket " "`__." msgstr "" -"l'`Autorité des Paquets Python `__ est le groupe de " +"le `Python Packaging Authority `__ est le groupe de " "développeurs et d'auteurs de documentation responsable de la maintenance et " -"l'évolution des outils d'empaquetage standards et des métadonnées associées, " -"ainsi que des standards sur les formats de fichiers. Ils maintiennent une " -"multitude d'outils, documentations, et des systèmes de tickets sur `GitHub " -"`__ et `BitBucket `__." +"de l'évolution des suites d'outils standard et des normes de métadonnées et " +"de format de fichiers associées. Ils maintiennent une variété d'outils, de " +"documentation, et d'outils de suivi des problèmes sur les deux sites `GitHub " +"`__ et `Bitbucket `__." #: ../Doc/installing/index.rst:57 msgid "" @@ -152,7 +152,7 @@ msgstr "" "``distutils`` est le premier système de construction et de distribution " "ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe de " "``distutils`` soit progressivement supprimée, elle reste le fondement de " -"l'infrastructure actuelle de construction de paquet et de distribution. Au " +"l'infrastructure actuelle de construction de paquet et de distribution. Au-" "delà de rester dans la bibliothèque standard, son nom vit aussi sous " "d'autres formes, tel que la liste de diffusion utilisée pour coordonner le " "développement et les standards de la création de paquet." @@ -262,7 +262,7 @@ msgstr "" #: ../Doc/installing/index.rst:122 msgid "How do I ...?" -msgstr "Comment puis-je ...?" +msgstr "Comment puis-je … ?" #: ../Doc/installing/index.rst:124 msgid "These are quick answers or links for some common tasks." @@ -272,7 +272,7 @@ msgstr "" #: ../Doc/installing/index.rst:127 msgid "... install ``pip`` in versions of Python prior to Python 3.4?" msgstr "" -"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" +"... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" #: ../Doc/installing/index.rst:129 msgid "" @@ -295,7 +295,7 @@ msgstr "" #: ../Doc/installing/index.rst:142 msgid "... install packages just for the current user?" -msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" +msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" #: ../Doc/installing/index.rst:144 msgid "" @@ -308,7 +308,7 @@ msgstr "" #: ../Doc/installing/index.rst:149 msgid "... install scientific Python packages?" -msgstr "... Installer des paquets Python scientifiques ?" +msgstr "... Installer des paquets Python scientifiques ?" #: ../Doc/installing/index.rst:151 msgid "" @@ -336,7 +336,7 @@ msgstr "" #: ../Doc/installing/index.rst:164 msgid "... work with multiple versions of Python installed in parallel?" msgstr "" -"... Travailler avec plusieurs versions de Python installés en parallèle ?" +"... Travailler avec plusieurs versions de Python installés en parallèle ?" #: ../Doc/installing/index.rst:166 msgid "" @@ -396,7 +396,7 @@ msgstr "" #: ../Doc/installing/index.rst:210 msgid "Pip not installed" -msgstr "Pip n'est pas installé" +msgstr "``Pip`` n'est pas installé" #: ../Doc/installing/index.rst:212 msgid "" @@ -404,7 +404,7 @@ msgid "" "fix is::" msgstr "" "Il est possible que ``pip`` ne soit pas installé par défaut. Une solution " -"est : ::" +"est ::" #: ../Doc/installing/index.rst:216 msgid "" diff --git a/library/2to3.po b/library/2to3.po index 4a6d6ff1ed..a643f23ee5 100644 --- a/library/2to3.po +++ b/library/2to3.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 17:52+0200\n" "PO-Revision-Date: 2019-09-16 10:54+0200\n" @@ -455,7 +455,7 @@ msgstr "" #: ../Doc/library/2to3.rst:262 msgid "is changed to ::" -msgstr "est transformé en ::" +msgstr "est transformé en ::" #: ../Doc/library/2to3.rst:268 msgid "Detects sibling imports and converts them to relative imports." diff --git a/library/__future__.po b/library/__future__.po index 45ab9f5746..db3fc92596 100644 --- a/library/__future__.po +++ b/library/__future__.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-06-01 23:02+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" @@ -15,20 +15,20 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/__future__.rst:2 +#: library/__future__.rst:2 msgid ":mod:`__future__` --- Future statement definitions" msgstr ":mod:`__future__` — Définitions des futurs" -#: ../Doc/library/__future__.rst:7 +#: library/__future__.rst:7 msgid "**Source code:** :source:`Lib/__future__.py`" msgstr "**Source code:** :source:`Lib/_future_.py`" -#: ../Doc/library/__future__.rst:11 +#: library/__future__.rst:11 msgid ":mod:`__future__` is a real module, and serves three purposes:" msgstr "" "Le module :mod:`__future__` est un vrai module, et il a trois objectifs :" -#: ../Doc/library/__future__.rst:13 +#: library/__future__.rst:13 msgid "" "To avoid confusing existing tools that analyze import statements and expect " "to find the modules they're importing." @@ -36,7 +36,7 @@ msgstr "" "éviter de dérouter les outils existants qui analysent les instructions " "d'importation et s'attendent à trouver les modules qu'ils importent ;" -#: ../Doc/library/__future__.rst:16 +#: library/__future__.rst:16 msgid "" "To ensure that :ref:`future statements ` run under releases prior to " "2.1 at least yield runtime exceptions (the import of :mod:`__future__` will " @@ -47,7 +47,7 @@ msgstr "" "(l’importation du module :mod:`__future__` échoue, car il n’y avait pas de " "module de ce nom avant 2.1) ;" -#: ../Doc/library/__future__.rst:20 +#: library/__future__.rst:20 msgid "" "To document when incompatible changes were introduced, and when they will be " "--- or were --- made mandatory. This is a form of executable documentation, " @@ -59,11 +59,11 @@ msgstr "" "documentation exécutable, qui peut être inspectée par un programme en " "important :mod:`__future__` et en examinant son contenu." -#: ../Doc/library/__future__.rst:25 +#: library/__future__.rst:25 msgid "Each statement in :file:`__future__.py` is of the form::" msgstr "Chaque instruction dans :file:`__future__.py` est de la forme ::" -#: ../Doc/library/__future__.rst:31 +#: library/__future__.rst:31 msgid "" "where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " "are 5-tuples of the same form as :data:`sys.version_info`::" @@ -72,7 +72,7 @@ msgstr "" "les deux sont des quintuplets de la même forme que :data:`sys." "version_info` ::" -#: ../Doc/library/__future__.rst:41 +#: library/__future__.rst:41 msgid "" "*OptionalRelease* records the first release in which the feature was " "accepted." @@ -80,7 +80,7 @@ msgstr "" "*OptionalRelease* enregistre la première version dans laquelle la " "fonctionnalité a été acceptée." -#: ../Doc/library/__future__.rst:43 +#: library/__future__.rst:43 msgid "" "In the case of a *MandatoryRelease* that has not yet occurred, " "*MandatoryRelease* predicts the release in which the feature will become " @@ -90,7 +90,7 @@ msgstr "" "*MandatoryRelease* prédit la *release* dans laquelle la fonctionnalité " "deviendra un élément du langage." -#: ../Doc/library/__future__.rst:47 +#: library/__future__.rst:47 msgid "" "Else *MandatoryRelease* records when the feature became part of the " "language; in releases at or after that, modules no longer need a future " @@ -102,7 +102,7 @@ msgstr "" "n'ont plus besoin d'une déclaration *future* pour utiliser la fonctionnalité " "en question, mais ils peuvent continuer à utiliser ces importations." -#: ../Doc/library/__future__.rst:51 +#: library/__future__.rst:51 msgid "" "*MandatoryRelease* may also be ``None``, meaning that a planned feature got " "dropped." @@ -110,7 +110,7 @@ msgstr "" "*MandatoryRelease* peut également être ``None``, ce qui signifie qu'une " "fonction planifiée a été abandonnée." -#: ../Doc/library/__future__.rst:54 +#: library/__future__.rst:54 msgid "" "Instances of class :class:`_Feature` have two corresponding methods, :meth:" "`getOptionalRelease` and :meth:`getMandatoryRelease`." @@ -118,7 +118,7 @@ msgstr "" "Les instances de classe :class:`_Feature` ont deux méthodes " "correspondantes, :meth:`getOptionalRelease` et :meth:`getMandatoryRelease`." -#: ../Doc/library/__future__.rst:57 +#: library/__future__.rst:57 msgid "" "*CompilerFlag* is the (bitfield) flag that should be passed in the fourth " "argument to the built-in function :func:`compile` to enable the feature in " @@ -131,7 +131,7 @@ msgstr "" "indicateur est stocké dans l'attribut :attr:`compiler_flag` dans les " "instances de :class:`_Feature`." -#: ../Doc/library/__future__.rst:62 +#: library/__future__.rst:62 msgid "" "No feature description will ever be deleted from :mod:`__future__`. Since " "its introduction in Python 2.1 the following features have found their way " @@ -141,158 +141,160 @@ msgstr "" "son introduction dans Python 2.1, les fonctionnalités suivantes ont trouvé " "leur places dans le langage utilisant ce mécanisme :" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "feature" msgstr "fonctionnalité" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "optional in" msgstr "optionnel dans" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "mandatory in" msgstr "obligatoire dans" -#: ../Doc/library/__future__.rst:67 +#: library/__future__.rst:67 msgid "effect" msgstr "effet" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid "nested_scopes" msgstr "nested_scopes" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid "2.1.0b1" msgstr "2.1.0b1" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid "2.2" msgstr "2.2" -#: ../Doc/library/__future__.rst:69 +#: library/__future__.rst:69 msgid ":pep:`227`: *Statically Nested Scopes*" msgstr ":pep:`227` : *Portées imbriquées*" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid "generators" msgstr "générateurs" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid "2.2.0a1" msgstr "2.2.0a1" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid "2.3" msgstr "2.3" -#: ../Doc/library/__future__.rst:72 +#: library/__future__.rst:72 msgid ":pep:`255`: *Simple Generators*" msgstr ":pep:`255` : *Générateurs simples*" -#: ../Doc/library/__future__.rst:75 +#: library/__future__.rst:75 msgid "division" msgstr "division" -#: ../Doc/library/__future__.rst:75 +#: library/__future__.rst:75 msgid "2.2.0a2" msgstr "2.2.0a2" -#: ../Doc/library/__future__.rst:75 ../Doc/library/__future__.rst:78 -#: ../Doc/library/__future__.rst:84 ../Doc/library/__future__.rst:87 +#: library/__future__.rst:78 library/__future__.rst:87 msgid "3.0" msgstr "3.0" -#: ../Doc/library/__future__.rst:75 +#: library/__future__.rst:75 msgid ":pep:`238`: *Changing the Division Operator*" -msgstr ":pep:`328` : *Changement de l'opérateur de division*" +msgstr ":pep:`238` : *Changement de l'opérateur de division*" -#: ../Doc/library/__future__.rst:78 +#: library/__future__.rst:78 msgid "absolute_import" msgstr "absolute_import" -#: ../Doc/library/__future__.rst:78 ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid "2.5.0a1" msgstr "2.5.0a1" -#: ../Doc/library/__future__.rst:78 +#: library/__future__.rst:78 msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" msgstr "" ":pep:`328` : *Importations : multilignes et absolues/relatives* (ressource " "en anglais)" -#: ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid "with_statement" msgstr "with_statement" -#: ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid "2.6" msgstr "2.6" -#: ../Doc/library/__future__.rst:81 +#: library/__future__.rst:81 msgid ":pep:`343`: *The \"with\" Statement*" msgstr ":pep:`343` : *L'instruction \"with\"*" -#: ../Doc/library/__future__.rst:84 +#: library/__future__.rst:84 msgid "print_function" msgstr "print_function" -#: ../Doc/library/__future__.rst:84 ../Doc/library/__future__.rst:87 +#: library/__future__.rst:87 msgid "2.6.0a2" msgstr "2.6.0a2" -#: ../Doc/library/__future__.rst:84 +#: library/__future__.rst:84 msgid ":pep:`3105`: *Make print a function*" msgstr ":pep:`3105` : *Transformation de print en fonction*" -#: ../Doc/library/__future__.rst:87 +#: library/__future__.rst:87 msgid "unicode_literals" msgstr "unicode_literals" -#: ../Doc/library/__future__.rst:87 +#: library/__future__.rst:87 msgid ":pep:`3112`: *Bytes literals in Python 3000*" msgstr ":pep:`3112` : *Chaînes d'octets littéraux en Python 3000*" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid "generator_stop" msgstr "generator_stop" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid "3.5.0b1" msgstr "3.5.0b1" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid "3.7" msgstr "3.7" -#: ../Doc/library/__future__.rst:90 +#: library/__future__.rst:90 msgid ":pep:`479`: *StopIteration handling inside generators*" msgstr "" ":pep:`479` : *Gestion de *StopIteration* à l’intérieur des générateurs*" -#: ../Doc/library/__future__.rst:93 +#: library/__future__.rst:93 msgid "annotations" msgstr "annotations" -#: ../Doc/library/__future__.rst:93 +#: library/__future__.rst:93 msgid "3.7.0b1" msgstr "3.7.0b1" -#: ../Doc/library/__future__.rst:93 -msgid "4.0" -msgstr "4.0" +#: library/__future__.rst:93 +msgid "3.10" +msgstr "3.10" -#: ../Doc/library/__future__.rst:93 +#: library/__future__.rst:93 msgid ":pep:`563`: *Postponed evaluation of annotations*" msgstr ":pep:`563` : *Évaluation différée des annotations*" -#: ../Doc/library/__future__.rst:102 +#: library/__future__.rst:102 msgid ":ref:`future`" msgstr ":ref:`future`" -#: ../Doc/library/__future__.rst:103 +#: library/__future__.rst:103 msgid "How the compiler treats future imports." msgstr "Comment le compilateur gère les importations « futures »." +#~ msgid "4.0" +#~ msgstr "4.0" + #, fuzzy #~ msgid "future" #~ msgstr "fonctionnalité" diff --git a/library/__main__.po b/library/__main__.po index 026580392f..9ef82a6777 100644 --- a/library/__main__.po +++ b/library/__main__.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-11-07 22:52+0100\n" diff --git a/library/_dummy_thread.po b/library/_dummy_thread.po index d29dc963d6..79894ca0c3 100644 --- a/library/_dummy_thread.po +++ b/library/_dummy_thread.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-09-29 16:01+0200\n" diff --git a/library/_thread.po b/library/_thread.po index d2f821c997..fd2d3b4349 100644 --- a/library/_thread.po +++ b/library/_thread.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-06-11 18:37+0100\n" -"Last-Translator: Stéphane HUC \n" +"PO-Revision-Date: 2019-12-13 12:43+0100\n" +"Last-Translator: Inebhis \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/library/_thread.rst:2 msgid ":mod:`_thread` --- Low-level threading API" @@ -58,7 +58,6 @@ msgid "This is the type of lock objects." msgstr "C'est le type d'objets verrous." #: ../Doc/library/_thread.rst:46 -#, fuzzy msgid "" "Start a new thread and return its identifier. The thread executes the " "function *function* with the argument list *args* (which must be a tuple). " @@ -67,15 +66,11 @@ msgstr "" "Démarre un nouveau fils d'exécution et renvoie son identifiant. Ce fil " "d'exécution exécute la fonction *function* avec la liste d'arguments *args* " "(qui doit être un *tuple*). L'argument optionnel *kwargs* spécifie un " -"dictionnaire d'arguments de mots clés. Quand la fonction se termine, le fil " -"d'exécution se termine silencieusement. Quand la fonction termine avec une " -"exception non gérée, une trace de la pile est affichée et ensuite le fil " -"d'exécution s'arrête (mais les autres fils d'exécutions continuent de " -"s'exécuter)." +"dictionnaire d'arguments de mots clés." #: ../Doc/library/_thread.rst:50 msgid "When the function returns, the thread silently exits." -msgstr "" +msgstr "Au renvoi de la fonction, le fil d'exécution quitte silencieusement." #: ../Doc/library/_thread.rst:52 msgid "" @@ -84,19 +79,25 @@ msgid "" "the hook argument is *function*. By default, a stack trace is printed and " "then the thread exits (but other threads continue to run)." msgstr "" +"Lorsque la fonction se termine avec une exception non gérée, :func:`sys." +"unraisablehook` est appelée pour gérer cette dernière. L'attribut *object* " +"de l'argument *hook* est *function*. Par défaut, la trace d'appels est " +"affichée puis le fil d'exécution se termine (mais les autres fils " +"d'exécution continuent de s'exécuter)." #: ../Doc/library/_thread.rst:57 -#, fuzzy msgid "" "When the function raises a :exc:`SystemExit` exception, it is silently " "ignored." msgstr "" -"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` " -"est équivalent à appeler la fonction :func:`_thread.exit`." +"Lorsque la fonction lève l'exception :exc:`SystemExit`, elle est ignorée " +"silencieusement." #: ../Doc/library/_thread.rst:60 msgid ":func:`sys.unraisablehook` is now used to handle unhandled exceptions." msgstr "" +":func:`sys.unraisablehook` est maintenant utilisée pour s'occuper des " +"exceptions non gérées." #: ../Doc/library/_thread.rst:66 msgid "" @@ -154,15 +155,19 @@ msgid "" "identify this particular thread system-wide (until the thread terminates, " "after which the value may be recycled by the OS)." msgstr "" +"Renvoie l'identifiant natif complet assigné par le noyau du fil d'exécution " +"actuel. C'est un entier non négatif. Sa valeur peut uniquement être utilisée " +"pour identifier ce fil d'exécution à l'échelle du système (jusqu'à ce que le " +"fil d'exécution se termine, après quoi la valeur peut être recyclée par le " +"système d'exploitation)." #: ../Doc/library/_thread.rst:110 -#, fuzzy msgid "" ":ref:`Availability `: Windows, FreeBSD, Linux, macOS, OpenBSD, " "NetBSD, AIX." msgstr "" -":ref:`Disponibilité ` : Windows et systèmes gérant les fils " -"d'exécution POSIX." +":ref:`Disponibilité ` : Windows, FreeBSD, Linux, macOS, " +"OpenBSD, NetBSD, AIX." #: ../Doc/library/_thread.rst:116 msgid "" @@ -220,7 +225,7 @@ msgstr "" #: ../Doc/library/_thread.rst:143 msgid "Lock objects have the following methods:" -msgstr "Les verrous ont les méthodes suivantes : " +msgstr "Les verrous ont les méthodes suivantes :" #: ../Doc/library/_thread.rst:148 msgid "" @@ -297,7 +302,7 @@ msgid "" "`with` statement, e.g.::" msgstr "" "En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via " -"l'instruction :keyword:`with`, e.g. : ::" +"l'instruction :keyword:`with`, e.g. ::" #: ../Doc/library/_thread.rst:193 msgid "**Caveats:**" diff --git a/library/abc.po b/library/abc.po index ae7b58afd0..5628dec8cc 100644 --- a/library/abc.po +++ b/library/abc.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2019-02-21 17:32+0100\n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/abc.rst:2 +#: library/abc.rst:2 msgid ":mod:`abc` --- Abstract Base Classes" msgstr ":mod:`abc` — Classes de Base Abstraites" -#: ../Doc/library/abc.rst:11 +#: library/abc.rst:11 msgid "**Source code:** :source:`Lib/abc.py`" msgstr "**Code source:** :source:`Lib/abc.py`" -#: ../Doc/library/abc.rst:15 +#: library/abc.rst:15 msgid "" "This module provides the infrastructure for defining :term:`abstract base " "classes ` (ABCs) in Python, as outlined in :pep:`3119`; " @@ -39,7 +39,7 @@ msgstr "" "l'abréviation ABC (*Abstract Base Class*) pour désigner une classe de base " "abstraite." -#: ../Doc/library/abc.rst:20 +#: library/abc.rst:20 msgid "" "The :mod:`collections` module has some concrete classes that derive from " "ABCs; these can, of course, be further derived. In addition, the :mod:" @@ -54,7 +54,7 @@ msgstr "" "spécifique. Par exemple, est-elle hachable ou un tableau associatif " "(*mapping* en anglais) ?" -#: ../Doc/library/abc.rst:27 +#: library/abc.rst:27 msgid "" "This module provides the metaclass :class:`ABCMeta` for defining ABCs and a " "helper class :class:`ABC` to alternatively define ABCs through inheritance:" @@ -63,7 +63,7 @@ msgstr "" "que la classe d'aide :class:`ABC`, cette dernière permettant de définir des " "ABC en utilisant l'héritage :" -#: ../Doc/library/abc.rst:32 +#: library/abc.rst:32 msgid "" "A helper class that has :class:`ABCMeta` as its metaclass. With this class, " "an abstract base class can be created by simply deriving from :class:`ABC` " @@ -71,9 +71,9 @@ msgid "" msgstr "" "Classe d'aide qui a :class:`ABCMeta` pour métaclasse. Avec cette classe, une " "ABC peut être créée simplement en héritant de :class:`ABC` , ce qui permet " -"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple : ::" +"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple ::" -#: ../Doc/library/abc.rst:41 +#: library/abc.rst:41 msgid "" "Note that the type of :class:`ABC` is still :class:`ABCMeta`, therefore " "inheriting from :class:`ABC` requires the usual precautions regarding " @@ -86,13 +86,13 @@ msgstr "" "concernant l'utilisation de métaclasses : l'utilisation d'héritage multiple " "peut entrainer des conflits de métaclasses. Il est également possible de " "définir une ABC en passant l'argument nommé *metaclass* et en utilisant :" -"class:`ABCMeta` directement, par exemple : ::" +"class:`ABCMeta` directement, par exemple ::" -#: ../Doc/library/abc.rst:57 +#: library/abc.rst:57 msgid "Metaclass for defining Abstract Base Classes (ABCs)." msgstr "Métaclasse pour définir des classes de base abstraites (ABC)." -#: ../Doc/library/abc.rst:59 +#: library/abc.rst:59 msgid "" "Use this metaclass to create an ABC. An ABC can be subclassed directly, and " "then acts as a mix-in class. You can also register unrelated concrete " @@ -106,15 +106,15 @@ msgstr "" "Utilisez cette métaclasse pour créer une ABC. Il est possible d'hériter " "d'une ABC directement, cette classe de base abstraite fonctionne alors comme " "une classe *mixin*. Vous pouvez également enregistrer une classe concrète " -"sans lien (même une classe native) et des ABC comme \"sous-classes virtuelles" -"\" -- celles-ci et leur descendantes seront considérées comme des sous-" -"classes de la classe de base abstraite par la fonction native :func:" +"sans lien (même une classe native) et des ABC comme \"sous-classes " +"virtuelles\" -- celles-ci et leur descendantes seront considérées comme des " +"sous-classes de la classe de base abstraite par la fonction native :func:" "`issubclass`, mais les ABC enregistrées n'apparaitront pas dans leur ordre " "de résolution des méthodes (*MRO* pour *Method Resolution Order* en " "anglais). Les implémentations de méthodes définies par l'ABC ne seront pas " "appelable (pas même via :func:`super`). [#]_" -#: ../Doc/library/abc.rst:68 +#: library/abc.rst:68 msgid "" "Classes created with a metaclass of :class:`ABCMeta` have the following " "method:" @@ -122,20 +122,20 @@ msgstr "" "Les classes dont la métaclasse est :class:`ABCMeta` possèdent les méthodes " "suivantes :" -#: ../Doc/library/abc.rst:72 +#: library/abc.rst:72 msgid "" "Register *subclass* as a \"virtual subclass\" of this ABC. For example::" msgstr "" "Enregistrer *subclass* en tant que sous-classe virtuelle de cette ABC. Par " -"exemple : ::" +"exemple ::" -#: ../Doc/library/abc.rst:85 +#: library/abc.rst:85 msgid "Returns the registered subclass, to allow usage as a class decorator." msgstr "" "Renvoie la sous-classe enregistrée pour permettre l'utilisation en tant que " "décorateur de classe." -#: ../Doc/library/abc.rst:88 +#: library/abc.rst:88 msgid "" "To detect calls to :meth:`register`, you can use the :func:`get_cache_token` " "function." @@ -143,15 +143,15 @@ msgstr "" "Pour détecter les appels à :meth:`register`, vous pouvez utiliser la " "fonction :func:`get_cache_token`." -#: ../Doc/library/abc.rst:92 +#: library/abc.rst:92 msgid "You can also override this method in an abstract base class:" msgstr "Vous pouvez également redéfinir cette méthode dans une ABC :" -#: ../Doc/library/abc.rst:96 +#: library/abc.rst:96 msgid "(Must be defined as a class method.)" msgstr "(Doit être définie en tant que méthode de classe.)" -#: ../Doc/library/abc.rst:98 +#: library/abc.rst:98 msgid "" "Check whether *subclass* is considered a subclass of this ABC. This means " "that you can customize the behavior of ``issubclass`` further without the " @@ -166,7 +166,7 @@ msgstr "" "méthode de classe est appelée par la méthode :meth:`__subclasscheck__` de la " "classe de base abstraite)." -#: ../Doc/library/abc.rst:104 +#: library/abc.rst:104 msgid "" "This method should return ``True``, ``False`` or ``NotImplemented``. If it " "returns ``True``, the *subclass* is considered a subclass of this ABC. If it " @@ -181,14 +181,14 @@ msgstr "" "renvoie ``NotImplemented``, la vérification d'appartenance à la sous-classe " "continue via le mécanisme habituel." -#: ../Doc/library/abc.rst:114 +#: library/abc.rst:114 msgid "" "For a demonstration of these concepts, look at this example ABC definition::" msgstr "" "Pour une illustration de ces concepts, voir cet exemple de définition de " -"ABC : ::" +"ABC ::" -#: ../Doc/library/abc.rst:143 +#: library/abc.rst:143 msgid "" "The ABC ``MyIterable`` defines the standard iterable method, :meth:" "`~iterator.__iter__`, as an abstract method. The implementation given here " @@ -202,7 +202,7 @@ msgstr "" "fait également partie de la classe de base abstraite ``MyIterable``, mais " "elle n'a pas à être redéfinie dans les classes dérivées non-abstraites." -#: ../Doc/library/abc.rst:149 +#: library/abc.rst:149 msgid "" "The :meth:`__subclasshook__` class method defined here says that any class " "that has an :meth:`~iterator.__iter__` method in its :attr:`~object." @@ -215,7 +215,7 @@ msgstr "" "liste :attr:`~class.__mro__`) est considérée également comme un " "``MyIterable``." -#: ../Doc/library/abc.rst:154 +#: library/abc.rst:154 msgid "" "Finally, the last line makes ``Foo`` a virtual subclass of ``MyIterable``, " "even though it does not define an :meth:`~iterator.__iter__` method (it uses " @@ -230,15 +230,15 @@ msgstr "" "cela ne rendra pas le ``get_iterator`` de ``MyIterable`` disponible comme " "une méthode de ``Foo``, ``get_iterator`` est donc implémenté séparément." -#: ../Doc/library/abc.rst:163 +#: library/abc.rst:163 msgid "The :mod:`abc` module also provides the following decorator:" msgstr "Le module :mod:`abc` fournit aussi le décorateur :" -#: ../Doc/library/abc.rst:167 +#: library/abc.rst:167 msgid "A decorator indicating abstract methods." msgstr "Un décorateur marquant les méthodes comme abstraites." -#: ../Doc/library/abc.rst:169 +#: library/abc.rst:169 msgid "" "Using this decorator requires that the class's metaclass is :class:`ABCMeta` " "or is derived from it. A class that has a metaclass derived from :class:" @@ -255,7 +255,7 @@ msgstr "" "d'appel à 'super'. :func:`abstractmethod` peut être utilisée pour déclarer " "des méthodes abstraites pour les propriétés et descripteurs." -#: ../Doc/library/abc.rst:176 +#: library/abc.rst:176 msgid "" "Dynamically adding abstract methods to a class, or attempting to modify the " "abstraction status of a method or class once it is created, are not " @@ -270,7 +270,7 @@ msgstr "" "classes virtuelles\" enregistrées avec la méthode :meth:`register` de l'ABC " "ne sont pas affectées." -#: ../Doc/library/abc.rst:182 +#: library/abc.rst:182 msgid "" "When :func:`abstractmethod` is applied in combination with other method " "descriptors, it should be applied as the innermost decorator, as shown in " @@ -278,9 +278,9 @@ msgid "" msgstr "" "Quand le décorateur :func:`abstractmethod` est utilisé en même temps que " "d'autres descripteurs de méthodes, il doit être appliqué en tant que " -"décorateur le plus interne. Voir les exemples d'utilisation suivants : ::" +"décorateur le plus interne. Voir les exemples d'utilisation suivants ::" -#: ../Doc/library/abc.rst:216 +#: library/abc.rst:216 msgid "" "In order to correctly interoperate with the abstract base class machinery, " "the descriptor must identify itself as abstract using :attr:" @@ -294,7 +294,7 @@ msgstr "" "moins une des méthodes faisant partie du descripteur est abstraite. Par " "exemple, la classe native :class:`property` de python fait l'équivalent de ::" -#: ../Doc/library/abc.rst:231 +#: library/abc.rst:231 msgid "" "Unlike Java abstract methods, these abstract methods may have an " "implementation. This implementation can be called via the :func:`super` " @@ -308,12 +308,12 @@ msgstr "" "y appeler *super* et ainsi coopérer correctement dans un environnement " "utilisant de l'héritage multiple." -#: ../Doc/library/abc.rst:239 +#: library/abc.rst:239 msgid "The :mod:`abc` module also supports the following legacy decorators:" msgstr "" "Le module :mod:`abc` gère également les décorateurs historiques suivants :" -#: ../Doc/library/abc.rst:244 +#: library/abc.rst:244 msgid "" "It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " "making this decorator redundant." @@ -321,7 +321,7 @@ msgstr "" "Il est désormais possible d'utiliser :class:`classmethod` avec :func:" "`abstractmethod`, cela rend ce décorateur redondant." -#: ../Doc/library/abc.rst:248 +#: library/abc.rst:248 msgid "" "A subclass of the built-in :func:`classmethod`, indicating an abstract " "classmethod. Otherwise it is similar to :func:`abstractmethod`." @@ -330,16 +330,16 @@ msgstr "" "de classe ( ``classmethod`` ) abstraite. En dehors de cela, est similaire à :" "func:`abstractmethod`." -#: ../Doc/library/abc.rst:251 +#: 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 "" "Ce cas spécial est obsolète car le décorateur :func:`classmethod` est " "désormais correctement identifié comme abstrait quand il est appliqué à une " -"méthode abstraite : ::" +"méthode abstraite ::" -#: ../Doc/library/abc.rst:265 +#: library/abc.rst:265 msgid "" "It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " "making this decorator redundant." @@ -347,7 +347,7 @@ msgstr "" "Il est désormais possible d'utiliser :class:`staticmethod` avec :func:" "`abstractmethod`, cela rend ce décorateur redondant." -#: ../Doc/library/abc.rst:269 +#: library/abc.rst:269 msgid "" "A subclass of the built-in :func:`staticmethod`, indicating an abstract " "staticmethod. Otherwise it is similar to :func:`abstractmethod`." @@ -356,16 +356,16 @@ msgstr "" "statique ( ``staticmethod`` ) abstraite. En dehors de cela, est similaire à :" "func:`abstractmethod`." -#: ../Doc/library/abc.rst:272 +#: 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 "" "Ce cas spécial est obsolète car le décorateur :func:`staticmethod` est " "désormais correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" -#: ../Doc/library/abc.rst:285 +#: library/abc.rst:285 msgid "" "It is now possible to use :class:`property`, :meth:`property.getter`, :meth:" "`property.setter` and :meth:`property.deleter` with :func:`abstractmethod`, " @@ -375,21 +375,21 @@ msgstr "" "getter`, :meth:`property.setter` et :meth:`property.deleter` avec :func:" "`abstractmethod`, ce qui rend ce décorateur redondant." -#: ../Doc/library/abc.rst:290 +#: library/abc.rst:290 msgid "" "A subclass of the built-in :func:`property`, indicating an abstract property." msgstr "Sous-classe de :func:`property`, qui indique une propriété abstraite." -#: ../Doc/library/abc.rst:293 +#: 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 "" "Ce cas spécial est obsolète car le décorateur :func:`property` est désormais " "correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite : ::" +"abstraite ::" -#: ../Doc/library/abc.rst:303 +#: 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 " @@ -397,26 +397,26 @@ msgid "" msgstr "" "L'exemple ci-dessus définit une propriété en lecture seule. Vous pouvez " "également définir une propriété en lecture-écriture abstraite en indiquant " -"une ou plusieurs des méthodes sous-jacentes comme abstraite : ::" +"une ou plusieurs des méthodes sous-jacentes comme abstraite ::" -#: ../Doc/library/abc.rst:317 +#: 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 "" "Si seuls certains composants sont abstraits, seuls ces composants abstraits " "nécessitent d'être mis à jour pour créer une propriété concrète dans une " -"sous-classe : ::" +"sous-classe ::" -#: ../Doc/library/abc.rst:326 +#: library/abc.rst:326 msgid "The :mod:`abc` module also provides the following functions:" msgstr "Le module :mod:`abc` fournit également la fonction suivante :" -#: ../Doc/library/abc.rst:330 +#: library/abc.rst:330 msgid "Returns the current abstract base class cache token." msgstr "Renvoie le jeton de cache ( *cache token*) de l'ABC." -#: ../Doc/library/abc.rst:332 +#: 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. " @@ -427,11 +427,11 @@ msgstr "" "virtuelles. Le jeton change avec chaque appel à :meth:`ABCMeta.register` sur " "n'importe quelle ABC." -#: ../Doc/library/abc.rst:340 +#: library/abc.rst:340 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/abc.rst:341 +#: library/abc.rst:341 msgid "" "C++ programmers should note that Python's virtual base class concept is not " "the same as C++'s." diff --git a/library/aifc.po b/library/aifc.po index ecb272400f..659dd6b4ad 100644 --- a/library/aifc.po +++ b/library/aifc.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-12-21 09:48+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -69,7 +69,7 @@ msgstr "" #: ../Doc/library/aifc.rst:50 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/aifc.rst:53 msgid "" @@ -78,8 +78,10 @@ msgid "" msgstr "" #: ../Doc/library/aifc.rst:59 +#, fuzzy msgid "Return the number of audio channels (1 for mono, 2 for stereo)." msgstr "" +"Renvoie le nombre de canaux audio (``1`` pour mono, ``2`` pour stéréo)." #: ../Doc/library/aifc.rst:64 msgid "Return the size in bytes of individual samples." diff --git a/library/allos.po b/library/allos.po index e98f7e4f18..efc78e347c 100644 --- a/library/allos.po +++ b/library/allos.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-07-27 22:58+0200\n" diff --git a/library/archiving.po b/library/archiving.po index 82631a58e9..3578d37162 100644 --- a/library/archiving.po +++ b/library/archiving.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-07-27 23:01+0200\n" diff --git a/library/argparse.po b/library/argparse.po index de8585863a..8d6a695a7f 100644 --- a/library/argparse.po +++ b/library/argparse.po @@ -3,18 +3,19 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2018-07-28 23:47+0200\n" +"POT-Creation-Date: 2019-12-05 23:16+0100\n" +"PO-Revision-Date: 2019-12-12 22:07+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/argparse.rst:2 +#: library/argparse.rst:2 msgid "" ":mod:`argparse` --- Parser for command-line options, arguments and sub-" "commands" @@ -22,15 +23,15 @@ msgstr "" ":mod:`argparse` -- Parseur d'arguments, d'options, et de sous-commandes de " "ligne de commande" -#: ../Doc/library/argparse.rst:12 +#: library/argparse.rst:12 msgid "**Source code:** :source:`Lib/argparse.py`" msgstr "**Code source:** :source:`Lib/argparse.py`" -#: ../Doc/library/argparse.rst:None +#: library/argparse.rst:None msgid "Tutorial" msgstr "Tutoriel" -#: ../Doc/library/argparse.rst:18 +#: library/argparse.rst:18 msgid "" "This page contains the API reference information. For a more gentle " "introduction to Python command-line parsing, have a look at the :ref:" @@ -40,7 +41,7 @@ msgstr "" "à l'analyse des arguments de la ligne de commande, regardez :ref:`le " "tutoriel argparse `." -#: ../Doc/library/argparse.rst:22 +#: library/argparse.rst:22 msgid "" "The :mod:`argparse` module makes it easy to write user-friendly command-line " "interfaces. The program defines what arguments it requires, and :mod:" @@ -48,12 +49,18 @@ msgid "" "mod:`argparse` module also automatically generates help and usage messages " "and issues errors when users give the program invalid arguments." msgstr "" +"Le module :mod:`argparse` facilite l'écriture d'interfaces en ligne de " +"commande agréables à l'emploi. Le programme définit les arguments requis et :" +"mod:`argparse` s'arrange pour analyser ceux provenant de :data:`sys.argv`. " +"Le module :mod:`argparse` génère aussi automatiquement les messages d'aide, " +"le mode d'emploi, et lève des erreurs lorsque les utilisateurs fournissent " +"au programme des arguments invalides." -#: ../Doc/library/argparse.rst:30 +#: library/argparse.rst:30 msgid "Example" msgstr "Exemple" -#: ../Doc/library/argparse.rst:32 +#: library/argparse.rst:32 msgid "" "The following code is a Python program that takes a list of integers and " "produces either the sum or the max::" @@ -61,47 +68,57 @@ msgstr "" "Le code suivant est un programme Python acceptant une liste de nombre " "entiers et en donnant soit la somme, soit le maximum ::" -#: ../Doc/library/argparse.rst:47 +#: library/argparse.rst:47 msgid "" "Assuming the Python code above is saved into a file called ``prog.py``, it " "can be run at the command line and provides useful help messages:" msgstr "" +"En supposant que le code Python ci-dessus est sauvegardé dans un fichier " +"nommé ``prog.py``, il peut être lancé en ligne de commande et fournit des " +"messages d'aide utiles :" -#: ../Doc/library/argparse.rst:64 +#: library/argparse.rst:64 msgid "" "When run with the appropriate arguments, it prints either the sum or the max " "of the command-line integers:" msgstr "" +"Lorsqu'il est lancé avec les arguments appropriés, il affiche la somme ou le " +"maximum des entiers fournis en ligne de commande :" -#: ../Doc/library/argparse.rst:75 +#: library/argparse.rst:75 msgid "If invalid arguments are passed in, it will issue an error:" -msgstr "" +msgstr "Si des arguments invalides sont passés, il lève une erreur :" -#: ../Doc/library/argparse.rst:83 +#: library/argparse.rst:83 msgid "The following sections walk you through this example." -msgstr "" +msgstr "Les sections suivantes vous guident au travers de cet exemple." -#: ../Doc/library/argparse.rst:87 +#: library/argparse.rst:87 msgid "Creating a parser" msgstr "Créer un analyseur (*parser* en anglais)" -#: ../Doc/library/argparse.rst:89 +#: library/argparse.rst:89 msgid "" "The first step in using the :mod:`argparse` is creating an :class:" "`ArgumentParser` object::" msgstr "" +"La première étape dans l'utilisation de :mod:`argparse` est de créer un " +"objet :class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:94 +#: library/argparse.rst:94 msgid "" "The :class:`ArgumentParser` object will hold all the information necessary " "to parse the command line into Python data types." msgstr "" +"L'objet :class:`ArgumentParser` contiendra toutes les informations " +"nécessaires pour interpréter la ligne de commande comme des types de données " +"de Python." -#: ../Doc/library/argparse.rst:99 +#: library/argparse.rst:99 msgid "Adding arguments" msgstr "Ajouter des arguments" -#: ../Doc/library/argparse.rst:101 +#: library/argparse.rst:101 msgid "" "Filling an :class:`ArgumentParser` with information about program arguments " "is done by making calls to the :meth:`~ArgumentParser.add_argument` method. " @@ -110,8 +127,15 @@ msgid "" "stored and used when :meth:`~ArgumentParser.parse_args` is called. For " "example::" msgstr "" +"Alimenter un :class:`ArgumentParser` avec des informations sur les arguments " +"du programme s'effectue en faisant des appels à la méthode :meth:" +"`~ArgumentParser.add_argument`. En général ces appels disent à l':class:" +"`ArgumentParser` comment prendre les chaînes de caractères de la ligne de " +"commande et les transformer en objets. Cette information est stockée et " +"utilisée lorsque :meth:`~ArgumentParser.parse_args` est appelée. Par " +"exemple ::" -#: ../Doc/library/argparse.rst:113 +#: library/argparse.rst:113 msgid "" "Later, calling :meth:`~ArgumentParser.parse_args` will return an object with " "two attributes, ``integers`` and ``accumulate``. The ``integers`` attribute " @@ -119,12 +143,17 @@ msgid "" "either the :func:`sum` function, if ``--sum`` was specified at the command " "line, or the :func:`max` function if it was not." msgstr "" +"Ensuite, appeler :meth:`~ArgumentParser.parse_args` va renvoyer un objet " +"avec deux attributs, ``integers`` et ``accumulate``. L'attribut ``integers`` " +"est une liste d'un ou plusieurs entiers, et l'attribut ``accumulate`` est " +"soit la fonction :func:`sum`, si ``--sum`` était fourni à la ligne de " +"commande, soit la fonction :func:`max` dans le cas contraire." -#: ../Doc/library/argparse.rst:121 +#: library/argparse.rst:121 msgid "Parsing arguments" msgstr "Analyse des arguments" -#: ../Doc/library/argparse.rst:123 +#: library/argparse.rst:123 msgid "" ":class:`ArgumentParser` parses arguments through the :meth:`~ArgumentParser." "parse_args` method. This will inspect the command line, convert each " @@ -132,107 +161,143 @@ msgid "" "most cases, this means a simple :class:`Namespace` object will be built up " "from attributes parsed out of the command line::" msgstr "" +":class:`ArgumentParser` analyse les arguments avec la méthode :meth:" +"`~ArgumentParser.parse_args`. Cette méthode inspecte la ligne de commande, " +"convertit chaque argument au type approprié et invoque l'action requise. " +"Dans la plupart des cas, le résultat est la construction d'un objet :class:" +"`Namespace` à partir des attributs analysés dans la ligne de commande ::" -#: ../Doc/library/argparse.rst:132 +#: library/argparse.rst:132 msgid "" "In a script, :meth:`~ArgumentParser.parse_args` will typically be called " "with no arguments, and the :class:`ArgumentParser` will automatically " "determine the command-line arguments from :data:`sys.argv`." msgstr "" +"Dans un script, :meth:`~ArgumentParser.parse_args` est généralement appelée " +"sans arguments et l'objet :class:`ArgumentParser` détermine automatiquement " +"les arguments de la ligne de commande à partir de :data:`sys.argv`." -#: ../Doc/library/argparse.rst:138 +#: library/argparse.rst:138 msgid "ArgumentParser objects" -msgstr "Objets ArgumentParser" +msgstr "Objets ``ArgumentParser``" -#: ../Doc/library/argparse.rst:147 +#: library/argparse.rst:147 msgid "" "Create a new :class:`ArgumentParser` object. All parameters should be passed " "as keyword arguments. Each parameter has its own more detailed description " "below, but in short they are:" msgstr "" +"Crée un nouvel objet :class:`ArgumentParser`. Tous les paramètres doivent " +"être passés en arguments nommés. Chaque paramètre a sa propre description " +"détaillée ci-dessous, mais en résumé ils sont :" -#: ../Doc/library/argparse.rst:151 +#: library/argparse.rst:151 msgid "prog_ - The name of the program (default: ``sys.argv[0]``)" -msgstr "" +msgstr "prog_ – Le nom du programme (par défaut : ``sys.argv[0]``)" -#: ../Doc/library/argparse.rst:153 +#: library/argparse.rst:153 msgid "" "usage_ - The string describing the program usage (default: generated from " "arguments added to parser)" msgstr "" +"usage_ – La chaîne décrivant l'utilisation du programme (par défaut : " +"générée à partir des arguments ajoutés à l'analyseur)" -#: ../Doc/library/argparse.rst:156 +#: library/argparse.rst:156 msgid "description_ - Text to display before the argument help (default: none)" msgstr "" +"description_ – Texte à afficher avant l'aide des arguments (par défaut : " +"vide)" -#: ../Doc/library/argparse.rst:158 +#: library/argparse.rst:158 msgid "epilog_ - Text to display after the argument help (default: none)" msgstr "" +"epilog_ – Texte à afficher après l'aide des arguments (par défaut : vide)" -#: ../Doc/library/argparse.rst:160 +#: library/argparse.rst:160 msgid "" "parents_ - A list of :class:`ArgumentParser` objects whose arguments should " "also be included" msgstr "" +"parents_ – Liste d'objets :class:`ArgumentParser` contenant des arguments " +"qui devraient aussi être inclus" -#: ../Doc/library/argparse.rst:163 +#: library/argparse.rst:163 msgid "formatter_class_ - A class for customizing the help output" msgstr "" +"formatter_class_ – Classe pour personnaliser la sortie du message d'aide" -#: ../Doc/library/argparse.rst:165 +#: library/argparse.rst:165 msgid "" "prefix_chars_ - The set of characters that prefix optional arguments " "(default: '-')" msgstr "" +"prefix_chars_ – Jeu de caractères qui précède les arguments optionnels (par " +"défaut : ``'-'``)" -#: ../Doc/library/argparse.rst:168 +#: library/argparse.rst:168 msgid "" "fromfile_prefix_chars_ - The set of characters that prefix files from which " "additional arguments should be read (default: ``None``)" msgstr "" +"fromfile_prefix_chars_ – Jeu de caractères qui précède les fichiers d'où des " +"arguments additionnels doivent être lus (par défaut : ``None``)" -#: ../Doc/library/argparse.rst:171 +#: library/argparse.rst:171 msgid "" "argument_default_ - The global default value for arguments (default: " "``None``)" msgstr "" +"argument_default_ – Valeur globale par défaut pour les arguments (par " +"défaut : ``None``)" -#: ../Doc/library/argparse.rst:174 +#: library/argparse.rst:174 msgid "" "conflict_handler_ - The strategy for resolving conflicting optionals " "(usually unnecessary)" msgstr "" +"conflict_handler_ – Stratégie pour résoudre les conflits entre les arguments " +"optionnels (non-nécessaire en général)" -#: ../Doc/library/argparse.rst:177 +#: library/argparse.rst:177 msgid "" "add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" msgstr "" +"add_help_ – Ajoute une option d'aide ``-h/--help`` à l'analyseur (par " +"défaut : ``True``)" -#: ../Doc/library/argparse.rst:179 +#: library/argparse.rst:179 msgid "" "allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " "unambiguous. (default: ``True``)" msgstr "" +"allow_abbrev_ – Permet l'acceptation d'abréviations non-ambigües pour les " +"options longues (par défaut : ``True``)" -#: ../Doc/library/argparse.rst:182 +#: library/argparse.rst:182 msgid "*allow_abbrev* parameter was added." msgstr "Le paramètre *allow_abbrev* est ajouté." -#: ../Doc/library/argparse.rst:185 +#: library/argparse.rst:185 msgid "" "In previous versions, *allow_abbrev* also disabled grouping of short flags " "such as ``-vv`` to mean ``-v -v``." msgstr "" +"Dans les versions précédentes, *allow_abbrev* désactivait aussi le " +"regroupement de plusieurs options courtes telles que ``-vv`` pour signifier " +"``-v -v``." -#: ../Doc/library/argparse.rst:189 ../Doc/library/argparse.rst:687 +#: library/argparse.rst:687 msgid "The following sections describe how each of these are used." msgstr "" +"Les sections suivantes décrivent comment chacune de ces options sont " +"utilisées." -#: ../Doc/library/argparse.rst:193 +#: library/argparse.rst:193 msgid "prog" -msgstr "prog" +msgstr "Le paramètre *prog*" -#: ../Doc/library/argparse.rst:195 +#: library/argparse.rst:195 msgid "" "By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to determine " "how to display the name of the program in help messages. This default is " @@ -240,52 +305,71 @@ msgid "" "program was invoked on the command line. For example, consider a file named " "``myprogram.py`` with the following code::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` utilise ``sys.argv[0]`` pour " +"déterminer comment afficher le nom du programme dans les messages d'aide. " +"Cette valeur par défaut est presque toujours souhaitable, car elle produit " +"un message d'aide qui correspond à la méthode utilisée pour lancer le " +"programme sur la ligne de commande. Par exemple, si on a un fichier nommé " +"``myprogram.py`` avec le code suivant ::" -#: ../Doc/library/argparse.rst:206 +#: library/argparse.rst:206 msgid "" "The help for this program will display ``myprogram.py`` as the program name " "(regardless of where the program was invoked from):" msgstr "" +"Le message d'aide pour ce programme affiche ``myprogram.py`` pour le nom du " +"programme (peu importe d'où le programme est lancé) :" -#: ../Doc/library/argparse.rst:225 +#: library/argparse.rst:225 msgid "" "To change this default behavior, another value can be supplied using the " "``prog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Pour changer ce comportement par défaut, une valeur alternative est passée " +"par l'argument ``prog=`` du constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:235 +#: library/argparse.rst:235 msgid "" "Note that the program name, whether determined from ``sys.argv[0]`` or from " "the ``prog=`` argument, is available to help messages using the ``%(prog)s`` " "format specifier." msgstr "" +"Prenez note que le nom du programme, peu importe s'il provient de ``sys." +"argv[0]`` ou de l'argument ``prog=``, est accessible aux messages d'aide " +"grâce au spécificateur de formatage ``%(prog)s``." -#: ../Doc/library/argparse.rst:252 +#: library/argparse.rst:252 msgid "usage" -msgstr "usage" +msgstr "Le paramètre *usage*" -#: ../Doc/library/argparse.rst:254 +#: library/argparse.rst:254 msgid "" "By default, :class:`ArgumentParser` calculates the usage message from the " "arguments it contains::" msgstr "" +"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " +"l'utilisation à partir des arguments qu'il contient ::" -#: ../Doc/library/argparse.rst:270 +#: library/argparse.rst:270 msgid "" "The default message can be overridden with the ``usage=`` keyword argument::" msgstr "" +"Le message par défaut peut être remplacé grâce à l'argument nommé " +"``usage=`` ::" -#: ../Doc/library/argparse.rst:285 +#: library/argparse.rst:285 msgid "" "The ``%(prog)s`` format specifier is available to fill in the program name " "in your usage messages." msgstr "" +"Le spécificateur de formatage ``%(prog)s`` est disponible pour insérer le " +"nom du programme dans vos messages d'utilisation." -#: ../Doc/library/argparse.rst:290 +#: library/argparse.rst:290 msgid "description" -msgstr "description" +msgstr "Le paramètre *description*" -#: ../Doc/library/argparse.rst:292 +#: library/argparse.rst:292 msgid "" "Most calls to the :class:`ArgumentParser` constructor will use the " "``description=`` keyword argument. This argument gives a brief description " @@ -293,36 +377,51 @@ msgid "" "description is displayed between the command-line usage string and the help " "messages for the various arguments::" msgstr "" +"La plupart des appels au constructeur d':class:`ArgumentParser` utilisent " +"l'argument nommé ``description=``. Cet argument donne une brève description " +"de ce que fait le programme et de comment il fonctionne. Dans les messages " +"d'aide, cette description est affichée entre le prototype de ligne de " +"commande et les messages d'aide des arguments ::" -#: ../Doc/library/argparse.rst:307 +#: library/argparse.rst:307 msgid "" "By default, the description will be line-wrapped so that it fits within the " "given space. To change this behavior, see the formatter_class_ argument." msgstr "" +"Par défaut, la description est sujette au retour à la ligne automatique pour " +"se conformer à l'espace disponible. Pour changer ce comportement, voyez " +"l'argument formatter_class_." -#: ../Doc/library/argparse.rst:312 +#: library/argparse.rst:312 msgid "epilog" -msgstr "epilog" +msgstr "Le paramètre *epilog*" -#: ../Doc/library/argparse.rst:314 +#: library/argparse.rst:314 msgid "" "Some programs like to display additional description of the program after " "the description of the arguments. Such text can be specified using the " "``epilog=`` argument to :class:`ArgumentParser`::" msgstr "" +"Certains programmes aiment afficher un texte supplémentaire après la " +"description des arguments. Un tel texte peut être spécifié grâce à " +"l'argument ``epilog=`` du constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:331 +#: library/argparse.rst:331 msgid "" "As with the description_ argument, the ``epilog=`` text is by default line-" "wrapped, but this behavior can be adjusted with the formatter_class_ " "argument to :class:`ArgumentParser`." msgstr "" +"De même que pour l'argument description_, le texte passé à ``epilog=`` est " +"sujet au retour à la ligne automatique. Ce comportement peut être ajusté " +"grâce à l'argument formatter_class_ du constructeur d':class:" +"`ArgumentParser`." -#: ../Doc/library/argparse.rst:337 +#: library/argparse.rst:337 msgid "parents" -msgstr "parents" +msgstr "Le paramètre *parents*" -#: ../Doc/library/argparse.rst:339 +#: library/argparse.rst:339 msgid "" "Sometimes, several parsers share a common set of arguments. Rather than " "repeating the definitions of these arguments, a single parser with all the " @@ -332,92 +431,137 @@ msgid "" "actions from them, and adds these actions to the :class:`ArgumentParser` " "object being constructed::" msgstr "" +"Parfois, plusieurs analyseurs partagent un jeu commun d'arguments. Plutôt " +"que de répéter les définitions de ces arguments, un analyseur commun qui " +"contient tous les arguments partagés peut être utilisé, puis passé à " +"l'argument ``parents=`` du constructeur d':class:`ArgumentParser`. " +"L'argument ``parents=`` accepte une liste d'objets :class:`ArgumentParser`, " +"accumule toutes les actions positionnelles et optionnelles de ces objets, " +"puis les ajoute à l'instance d':class:`ArgumentParser` en cours de " +"création ::" -#: ../Doc/library/argparse.rst:359 +#: library/argparse.rst:359 msgid "" "Note that most parent parsers will specify ``add_help=False``. Otherwise, " "the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " "parent and one in the child) and raise an error." msgstr "" +"Prenez note que la majorité des analyseurs parents doivent spécifier " +"``add_help=False``. Autrement, le constructeur d':class:`ArgumentParser` va " +"voir plus d'une option ``-h/--help`` (une pour le parent et une pour " +"l'instance en cours de création) et va lever une erreur." -#: ../Doc/library/argparse.rst:364 +#: library/argparse.rst:364 msgid "" "You must fully initialize the parsers before passing them via ``parents=``. " "If you change the parent parsers after the child parser, those changes will " "not be reflected in the child." msgstr "" +"Vous devez initialiser complètement les analyseurs avant de les passer à " +"``parents=``. Si vous changez les analyseurs parents après la création de " +"l'analyseur enfant, ces changements ne seront pas répercutés sur l'enfant." -#: ../Doc/library/argparse.rst:370 +#: library/argparse.rst:370 msgid "formatter_class" -msgstr "formatter_class" +msgstr "Le paramètre *formatter_class*" -#: ../Doc/library/argparse.rst:372 +#: library/argparse.rst:372 msgid "" ":class:`ArgumentParser` objects allow the help formatting to be customized " "by specifying an alternate formatting class. Currently, there are four such " "classes:" msgstr "" +"Les objets :class:`ArgumentParser` permettent la personnalisation de la mise " +"en page des messages d'aide en spécifiant une classe de formatage " +"alternative. Il y a actuellement quatre classes de formatage :" -#: ../Doc/library/argparse.rst:381 +#: library/argparse.rst:381 msgid "" ":class:`RawDescriptionHelpFormatter` and :class:`RawTextHelpFormatter` give " "more control over how textual descriptions are displayed. By default, :class:" "`ArgumentParser` objects line-wrap the description_ and epilog_ texts in " "command-line help messages::" msgstr "" +":class:`RawDescriptionHelpFormatter` et :class:`RawTextHelpFormatter` vous " +"donnent plus de contrôle sur comment les descriptions textuelles sont " +"affichées. Par défaut, les contenus de description_ et epilog_ des objets :" +"class:`ArgumentParser` font l'objet du retour à la ligne automatique dans " +"les messages d'aide ::" -#: ../Doc/library/argparse.rst:406 +#: library/argparse.rst:406 msgid "" "Passing :class:`RawDescriptionHelpFormatter` as ``formatter_class=`` " "indicates that description_ and epilog_ are already correctly formatted and " "should not be line-wrapped::" msgstr "" +"Passer :class:`RawDescriptionHelpFormatter` à ``formatter_class=`` indique " +"que les textes de description_ et d'epilog_ ont déjà été formatés " +"correctement et qu'ils ne doivent pas faire l'objet d'un retour à la ligne " +"automatique ::" -#: ../Doc/library/argparse.rst:432 +#: library/argparse.rst:432 msgid "" ":class:`RawTextHelpFormatter` maintains whitespace for all sorts of help " "text, including argument descriptions. However, multiple new lines are " "replaced with one. If you wish to preserve multiple blank lines, add spaces " "between the newlines." msgstr "" +":class:`RawTextHelpFormatter` conserve les espaces pour toutes les " +"catégories de textes d'aide, y compris les descriptions des arguments. Notez " +"bien que plusieurs retours à la ligne consécutifs sont remplacés par un " +"seul. Si vous voulez garder plusieurs sauts de ligne, ajoutez des espaces " +"entre les caractères de changement de ligne." -#: ../Doc/library/argparse.rst:437 +#: library/argparse.rst:437 msgid "" ":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " "default values to each of the argument help messages::" msgstr "" +":class:`ArgumentDefaultsHelpFormatter` ajoute automatiquement l'information " +"sur les valeurs par défaut aux messages d'aide de tous les arguments ::" -#: ../Doc/library/argparse.rst:455 +#: library/argparse.rst:455 msgid "" ":class:`MetavarTypeHelpFormatter` uses the name of the type_ argument for " "each argument as the display name for its values (rather than using the " "dest_ as the regular formatter does)::" msgstr "" +":class:`MetavarTypeHelpFormatter` utilise le nom du type_ de l'argument pour " +"chacun des arguments comme nom d'affichage pour leurs valeurs (contrairement " +"au formateur standard qui utilise dest_) ::" -#: ../Doc/library/argparse.rst:476 +#: library/argparse.rst:476 msgid "prefix_chars" -msgstr "prefix_chars" +msgstr "Le paramètre *prefix_chars*" -#: ../Doc/library/argparse.rst:478 +#: library/argparse.rst:478 msgid "" "Most command-line options will use ``-`` as the prefix, e.g. ``-f/--foo``. " "Parsers that need to support different or additional prefix characters, e.g. " "for options like ``+f`` or ``/foo``, may specify them using the " "``prefix_chars=`` argument to the ArgumentParser constructor::" msgstr "" +"La majorité des options sur la ligne de commande utilisent ``-`` comme " +"préfixe (par exemple : ``-f/--foo``). Pour les analyseurs qui doivent " +"accepter des caractères préfixes autres ou additionnels (par exemple pour " +"les options ``+f`` ou ``/foo``), vous devez les spécifier en utilisant " +"l'argument ``prefix_chars=`` du constructeur d'``ArgumentParser`` ::" -#: ../Doc/library/argparse.rst:490 +#: library/argparse.rst:490 msgid "" "The ``prefix_chars=`` argument defaults to ``'-'``. Supplying a set of " "characters that does not include ``-`` will cause ``-f/--foo`` options to be " "disallowed." msgstr "" +"La valeur par défaut de ``prefix_chars=`` est ``'-'``. Passer un jeu de " +"caractères qui n'inclut pas ``-`` provoquera le refus des options comme ``-" +"f/--foo``." -#: ../Doc/library/argparse.rst:496 +#: library/argparse.rst:496 msgid "fromfile_prefix_chars" -msgstr "fromfile_prefix_chars" +msgstr "Le paramètre *fromfile_prefix_chars*" -#: ../Doc/library/argparse.rst:498 +#: library/argparse.rst:498 msgid "" "Sometimes, for example when dealing with a particularly long argument lists, " "it may make sense to keep the list of arguments in a file rather than typing " @@ -426,8 +570,15 @@ msgid "" "with any of the specified characters will be treated as files, and will be " "replaced by the arguments they contain. For example::" msgstr "" +"Parfois, par exemple quand on traite une liste d'arguments particulièrement " +"longue, il est logique de stocker la liste d'arguments dans un fichier " +"plutôt que de la saisir sur la ligne de commande. Si un jeu de caractères " +"est passé à l'argument ``fromfile_prefix_chars=`` du constructeur de :class:" +"`ArgumentParser`, alors les arguments qui commencent par l'un des caractères " +"spécifiés seront traités comme des fichiers et seront remplacés par les " +"arguments contenus dans ces fichiers. Par exemple ::" -#: ../Doc/library/argparse.rst:512 +#: library/argparse.rst:512 msgid "" "Arguments read from a file must by default be one per line (but see also :" "meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if they " @@ -436,18 +587,27 @@ msgid "" "'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" "f', 'bar']``." msgstr "" +"Par défaut, les arguments lus à partir d'un fichier doivent être chacun sur " +"une nouvelle ligne (voir aussi :meth:`~ArgumentParser." +"convert_arg_line_to_args`) et ils sont traités comme s'ils étaient au même " +"emplacement que le fichier original référençant les arguments de la ligne de " +"commande. Ainsi dans l'exemple ci-dessus, l'expression ``['-f', 'foo', " +"'@args.txt']`` est équivalente à l'expression ``['-f', 'foo', '-f', 'bar']``." -#: ../Doc/library/argparse.rst:518 +#: library/argparse.rst:518 msgid "" "The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " "arguments will never be treated as file references." msgstr "" +"Par défaut, l'argument ``fromfile_prefix_chars=`` est ``None``, ce qui " +"signifie que les arguments ne seront pas traités en tant que références à " +"des fichiers." -#: ../Doc/library/argparse.rst:523 +#: library/argparse.rst:523 msgid "argument_default" -msgstr "argument_default" +msgstr "Le paramètre *argument_default*" -#: ../Doc/library/argparse.rst:525 +#: library/argparse.rst:525 msgid "" "Generally, argument defaults are specified either by passing a default to :" "meth:`~ArgumentParser.add_argument` or by calling the :meth:`~ArgumentParser." @@ -458,153 +618,209 @@ msgid "" "suppress attribute creation on :meth:`~ArgumentParser.parse_args` calls, we " "supply ``argument_default=SUPPRESS``::" msgstr "" - -#: ../Doc/library/argparse.rst:545 +"Généralement, les valeurs par défaut des arguments sont spécifiées soit en " +"passant la valeur désirée à :meth:`~ArgumentParser.add_argument` soit par un " +"appel à la méthode :meth:`~ArgumentParser.set_defaults`. Cette méthode " +"accepte un ensemble de paires nom-valeur. Il est parfois pertinent de " +"configurer une valeur par défaut pour tous les arguments d'un analyseur. On " +"peut activer ce comportement en passant la valeur désirée à l'argument nommé " +"``argument_default=`` du constructeur de :class:`ArgumentParser`. Par " +"exemple, pour supprimer globalement la création d'attributs pendant l'appel " +"de :meth:`~ArgumentParser.parse_args`, on fournit " +"``argument_default=SUPPRESS`` ::" + +#: library/argparse.rst:545 msgid "allow_abbrev" -msgstr "allow_abbrev" +msgstr "Le paramètre *allow_abbrev*" -#: ../Doc/library/argparse.rst:547 +#: library/argparse.rst:547 msgid "" "Normally, when you pass an argument list to the :meth:`~ArgumentParser." "parse_args` method of an :class:`ArgumentParser`, it :ref:`recognizes " "abbreviations ` of long options." msgstr "" +"En temps normal, lorsque vous passez une liste d'arguments à la méthode :" +"meth:`~ArgumentParser.parse_args` d':class:`ArgumentParser` :ref:`elle " +"accepte les abréviations ` des options longues." -#: ../Doc/library/argparse.rst:551 +#: library/argparse.rst:551 msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" msgstr "" +"Cette fonctionnalité peut être désactivée en passant ``False`` à " +"``allow_abbrev`` ::" -#: ../Doc/library/argparse.rst:564 +#: library/argparse.rst:564 msgid "conflict_handler" -msgstr "conflict_handler" +msgstr "Le paramètre *conflict_handler*" -#: ../Doc/library/argparse.rst:566 +#: library/argparse.rst:566 msgid "" ":class:`ArgumentParser` objects do not allow two actions with the same " "option string. By default, :class:`ArgumentParser` objects raise an " "exception if an attempt is made to create an argument with an option string " "that is already in use::" msgstr "" +"Les objets :class:`ArgumentParser` ne peuvent pas avoir plus d'une option " +"avec la même chaîne d'option. Par défaut, les objets :class:`ArgumentParser` " +"lèvent une exception si on essaie de créer un argument avec une chaîne " +"d'option qui est déjà utilisée ::" -#: ../Doc/library/argparse.rst:578 +#: library/argparse.rst:578 msgid "" "Sometimes (e.g. when using parents_) it may be useful to simply override any " "older arguments with the same option string. To get this behavior, the " "value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " "of :class:`ArgumentParser`::" msgstr "" +"Parfois, par exemple si on utilise des analyseurs parents_, il est " +"souhaitable de surcharger les anciens arguments qui partagent la même chaîne " +"d'option. Pour obtenir ce comportement, vous devez passer ``'resolve'`` à " +"l'argument ``conflict_handler=`` du constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:594 +#: library/argparse.rst:594 msgid "" "Note that :class:`ArgumentParser` objects only remove an action if all of " "its option strings are overridden. So, in the example above, the old ``-f/--" "foo`` action is retained as the ``-f`` action, because only the ``--foo`` " "option string was overridden." msgstr "" +"Prenez note que les objets :class:`ArgumentParser` n'enlèvent une action que " +"si toutes ses chaînes d'options sont surchargées. Ainsi dans l'exemple ci-" +"dessus, l'action ``-f/--foo`` du parent est conservée comme l'action ``-f`` " +"puisque ``--foo`` est la seule chaîne d'options qui a été surchargée." -#: ../Doc/library/argparse.rst:601 +#: library/argparse.rst:601 msgid "add_help" -msgstr "add_help" +msgstr "Le paramètre *add_help*" -#: ../Doc/library/argparse.rst:603 +#: library/argparse.rst:603 msgid "" "By default, ArgumentParser objects add an option which simply displays the " "parser's help message. For example, consider a file named ``myprogram.py`` " "containing the following code::" msgstr "" +"Par défaut, les objets ``ArgumentParser`` ajoutent une option qui offre " +"l'affichage du message d'aide de l'analyseur. Par exemple, prenons le " +"fichier ``myprogram.py`` qui contient le code suivant ::" -#: ../Doc/library/argparse.rst:612 +#: library/argparse.rst:612 msgid "" "If ``-h`` or ``--help`` is supplied at the command line, the ArgumentParser " "help will be printed:" msgstr "" +"Si ``-h`` ou ``--help`` est passé sur la ligne de commande, le message " +"d'aide de l'``ArgumentParser`` sera affiché :" -#: ../Doc/library/argparse.rst:624 +#: library/argparse.rst:624 msgid "" "Occasionally, it may be useful to disable the addition of this help option. " "This can be achieved by passing ``False`` as the ``add_help=`` argument to :" "class:`ArgumentParser`::" msgstr "" +"Il est parfois utile de désactiver l'ajout de cette option d'aide. Pour ce " +"faire, vous devez passer ``False`` à l'argument ``add_help=`` du " +"constructeur d':class:`ArgumentParser` ::" -#: ../Doc/library/argparse.rst:636 +#: library/argparse.rst:636 msgid "" "The help option is typically ``-h/--help``. The exception to this is if the " "``prefix_chars=`` is specified and does not include ``-``, in which case ``-" "h`` and ``--help`` are not valid options. In this case, the first character " "in ``prefix_chars`` is used to prefix the help options::" msgstr "" +"En général, l'option d'aide est ``-h/--help``. L'exception à cette règle est " +"quand une valeur est passée à ``prefix_chars=`` et qu'elle n'inclue pas ``-" +"``, auquel cas, ``-h`` et ``--help`` ne sont pas des options valides. Dans " +"ce cas, le premier caractère de ``prefix_chars`` est utilisé comme préfixe " +"des options d'aide ::" -#: ../Doc/library/argparse.rst:651 +#: library/argparse.rst:651 msgid "The add_argument() method" msgstr "La méthode *add_argument()*" -#: ../Doc/library/argparse.rst:657 +#: library/argparse.rst:657 msgid "" "Define how a single command-line argument should be parsed. Each parameter " "has its own more detailed description below, but in short they are:" msgstr "" +"Définie comment une option de ligne de commande doit être analysée. Chacun " +"des paramètres est décrit plus en détails ci-bas, mais en résumé ils sont :" -#: ../Doc/library/argparse.rst:660 +#: library/argparse.rst:660 msgid "" "`name or flags`_ - Either a name or a list of option strings, e.g. ``foo`` " "or ``-f, --foo``." msgstr "" +"`name_or_flags`_ – un nom ou une liste de chaînes d'options. Par exemple : " +"``foo`` ou ``-f, --foo``." -#: ../Doc/library/argparse.rst:663 +#: library/argparse.rst:663 msgid "" "action_ - The basic type of action to be taken when this argument is " "encountered at the command line." msgstr "" +"action_ – Type élémentaire de l'action à entreprendre quand cet argument est " +"reconnu sur la ligne de commande." -#: ../Doc/library/argparse.rst:666 +#: library/argparse.rst:666 msgid "nargs_ - The number of command-line arguments that should be consumed." -msgstr "" +msgstr "nargs_ – Nombre d'arguments de la ligne de commande à capturer." -#: ../Doc/library/argparse.rst:668 +#: library/argparse.rst:668 msgid "" "const_ - A constant value required by some action_ and nargs_ selections." msgstr "" +"const_ – Valeur constante requise par certains choix d'action_ et de nargs_." -#: ../Doc/library/argparse.rst:670 +#: library/argparse.rst:670 msgid "" "default_ - The value produced if the argument is absent from the command " "line." msgstr "" +"default_ – Valeur produite si l'argument est absent de la ligne de commande." -#: ../Doc/library/argparse.rst:673 +#: library/argparse.rst:673 msgid "" "type_ - The type to which the command-line argument should be converted." msgstr "" +"type_ – Type vers lequel l'argument sur la ligne de commande doit être " +"converti." -#: ../Doc/library/argparse.rst:675 +#: library/argparse.rst:675 msgid "choices_ - A container of the allowable values for the argument." msgstr "" +"choices_ – Conteneur qui contient toutes les valeurs permises pour cet " +"argument." -#: ../Doc/library/argparse.rst:677 +#: library/argparse.rst:677 msgid "" "required_ - Whether or not the command-line option may be omitted (optionals " "only)." msgstr "" +"required_ – ``True`` si l'option sur la ligne de commande est obligatoire " +"(ne s'applique qu'aux arguments optionnels)." -#: ../Doc/library/argparse.rst:680 +#: library/argparse.rst:680 msgid "help_ - A brief description of what the argument does." -msgstr "" +msgstr "help_ – Brève description de ce que fait l'argument." -#: ../Doc/library/argparse.rst:682 +#: library/argparse.rst:682 msgid "metavar_ - A name for the argument in usage messages." -msgstr "" +msgstr "metavar_ – Nom de l'argument dans les messages d'utilisations." -#: ../Doc/library/argparse.rst:684 +#: library/argparse.rst:684 msgid "" "dest_ - The name of the attribute to be added to the object returned by :" "meth:`parse_args`." msgstr "" +"dest_ – Nom de l'attribut qui sera ajouté à l'objet retourné par :meth:" +"`parse_args`." -#: ../Doc/library/argparse.rst:691 +#: library/argparse.rst:691 msgid "name or flags" -msgstr "nom ou option" +msgstr "Les paramètres *name* et *flags*" -#: ../Doc/library/argparse.rst:693 +#: library/argparse.rst:693 msgid "" "The :meth:`~ArgumentParser.add_argument` method must know whether an " "optional argument, like ``-f`` or ``--foo``, or a positional argument, like " @@ -613,23 +829,33 @@ msgid "" "or a simple argument name. For example, an optional argument could be " "created like::" msgstr "" +"La méthode :meth:`~ArgumentParser.add_argument` doit savoir si c'est un " +"argument optionnel (tel que ``-f`` ou ``--foo``) ou plutôt un argument " +"positionnel (tel qu'une liste de noms de fichiers) qui est attendu. Le " +"premier argument passé à :meth:`~ArgumentParser.add_argument` doit donc être " +"soit une série de noms d'options tels qu'ils apparaissent sur la ligne de " +"commande, soit simplement un nom si on désire un argument positionnel. Par " +"exemple, un argument optionnel est créé comme suit ::" -#: ../Doc/library/argparse.rst:702 +#: library/argparse.rst:702 msgid "while a positional argument could be created like::" -msgstr "" +msgstr "alors qu'un argument positionnel est créé comme suit ::" -#: ../Doc/library/argparse.rst:706 +#: library/argparse.rst:706 msgid "" "When :meth:`~ArgumentParser.parse_args` is called, optional arguments will " "be identified by the ``-`` prefix, and the remaining arguments will be " "assumed to be positional::" msgstr "" +"Lors le l'appel de :meth:`~ArgumentParser.parse_args`, les arguments qui " +"commencent par le préfixe ``-`` sont présumés optionnels et tous les autres " +"sont présumés positionnels ::" -#: ../Doc/library/argparse.rst:723 +#: library/argparse.rst:723 msgid "action" -msgstr "action" +msgstr "Le paramètre *action*" -#: ../Doc/library/argparse.rst:725 +#: library/argparse.rst:725 msgid "" ":class:`ArgumentParser` objects associate command-line arguments with " "actions. These actions can do just about anything with the command-line " @@ -638,36 +864,56 @@ msgid "" "``action`` keyword argument specifies how the command-line arguments should " "be handled. The supplied actions are:" msgstr "" +"Les objets :class:`ArgumentParser` associent les arguments de la ligne de " +"commande avec des actions. Ces actions peuvent soumettre les arguments de la " +"ligne de commande auxquels elles sont associées à un traitement arbitraire, " +"mais la majorité des actions se contentent d'ajouter un attribut à l'objet " +"renvoyé par :meth:`~ArgumentParser.parse_args`. L'argument nommé ``action`` " +"indique comment l'argument de la ligne de commande sera traité. Les actions " +"natives sont :" -#: ../Doc/library/argparse.rst:731 +#: library/argparse.rst:731 msgid "" "``'store'`` - This just stores the argument's value. This is the default " "action. For example::" msgstr "" +"``'store'`` – Stocke la valeur de l'argument sans autre traitement. Ceci est " +"l'action par défaut. Par exemple ::" -#: ../Doc/library/argparse.rst:739 +#: library/argparse.rst:739 msgid "" "``'store_const'`` - This stores the value specified by the const_ keyword " "argument. The ``'store_const'`` action is most commonly used with optional " "arguments that specify some sort of flag. For example::" msgstr "" +"``'store_const'`` – Stocke la valeur passée à l'argument nommé const_. " +"L'action ``'store_const'`` est typiquement utilisée avec des arguments " +"optionnels qui représentent un drapeau ou une condition similaire. Par " +"exemple ::" -#: ../Doc/library/argparse.rst:748 +#: library/argparse.rst:748 msgid "" "``'store_true'`` and ``'store_false'`` - These are special cases of " "``'store_const'`` used for storing the values ``True`` and ``False`` " "respectively. In addition, they create default values of ``False`` and " "``True`` respectively. For example::" msgstr "" +"``'store_true'`` et ``'store_false'`` – Ces actions sont des cas " +"particuliers de ``'store_const'`` pour lesquelles la valeur stockée est " +"``True`` et ``False``, respectivement. Aussi, ces actions ont comme valeur " +"par défaut ``False`` et ``True``, respectivement. Par exemple ::" -#: ../Doc/library/argparse.rst:760 +#: library/argparse.rst:760 msgid "" "``'append'`` - This stores a list, and appends each argument value to the " "list. This is useful to allow an option to be specified multiple times. " "Example usage::" msgstr "" +"``'append'`` – Stocke une liste et ajoute la valeur de l'argument à la " +"liste. Ceci est pratique pour les options qui peuvent être répétées sur la " +"ligne de commande ::" -#: ../Doc/library/argparse.rst:769 +#: library/argparse.rst:769 msgid "" "``'append_const'`` - This stores a list, and appends the value specified by " "the const_ keyword argument to the list. (Note that the const_ keyword " @@ -675,35 +921,57 @@ msgid "" "useful when multiple arguments need to store constants to the same list. For " "example::" msgstr "" +"``'append_const'`` – Stocke une liste et ajoute la valeur passée à " +"l'argument nommé const_ à la fin de la liste. Notez que la valeur par défaut " +"de l'argument nommé const_ est ``None``. L'action ``'append_const'`` est " +"pratique quand plusieurs arguments ont besoin de stocker des constantes dans " +"la même liste. Par exemple ::" -#: ../Doc/library/argparse.rst:781 +#: library/argparse.rst:781 msgid "" "``'count'`` - This counts the number of times a keyword argument occurs. For " "example, this is useful for increasing verbosity levels::" msgstr "" +"``'count'`` – Compte le nombre d'occurrences de l'argument nommé. Ceci est " +"pratique, par exemple, pour augmenter le niveau de verbosité ::" -#: ../Doc/library/argparse.rst:789 +#: library/argparse.rst:789 +msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." +msgstr "" +"Prenez note que la valeur de *default* sera ``None`` à moins qu'elle soit " +"explicitement définie à ``0``." + +#: library/argparse.rst:791 msgid "" "``'help'`` - This prints a complete help message for all the options in the " "current parser and then exits. By default a help action is automatically " "added to the parser. See :class:`ArgumentParser` for details of how the " "output is created." msgstr "" +"``'help'`` – Affiche le message d'aide complet pour toutes les options de " +"l'analyseur puis termine l'exécution. Une action ``help`` est " +"automatiquement ajoutée à l'analyseur par défaut. Consultez :class:" +"`ArgumentParser` pour les détails de la création du contenu de l'aide." -#: ../Doc/library/argparse.rst:794 +#: library/argparse.rst:796 msgid "" "``'version'`` - This expects a ``version=`` keyword argument in the :meth:" "`~ArgumentParser.add_argument` call, and prints version information and " "exits when invoked::" msgstr "" +"``'version'`` – Affiche la version du programme puis termine l'exécution. " +"Cette action requiert l'argument nommé ``version=`` dans l'appel à :meth:" +"`~ArgumentParser.add_argument` ::" -#: ../Doc/library/argparse.rst:804 +#: library/argparse.rst:806 msgid "" "``'extend'`` - This stores a list, and extends each argument value to the " "list. Example usage::" msgstr "" +"``'extend'`` – Stock une liste et ajoute à la liste chacune des valeurs de " +"l'argument reçues. Voici un exemple de son utilisation ::" -#: ../Doc/library/argparse.rst:813 +#: library/argparse.rst:817 msgid "" "You may also specify an arbitrary action by passing an Action subclass or " "other object that implements the same interface. The recommended way to do " @@ -711,39 +979,48 @@ msgid "" "optionally the ``__init__`` method." msgstr "" -#: ../Doc/library/argparse.rst:818 +#: library/argparse.rst:822 msgid "An example of a custom action::" msgstr "Un exemple d'action personnalisée ::" -#: ../Doc/library/argparse.rst:838 +#: library/argparse.rst:842 msgid "For more details, see :class:`Action`." msgstr "Pour plus d'information, voir :class:`Action`." -#: ../Doc/library/argparse.rst:841 +#: library/argparse.rst:845 msgid "nargs" -msgstr "nargs" +msgstr "Le paramètre *nargs*" -#: ../Doc/library/argparse.rst:843 +#: library/argparse.rst:847 msgid "" "ArgumentParser objects usually associate a single command-line argument with " "a single action to be taken. The ``nargs`` keyword argument associates a " "different number of command-line arguments with a single action. The " "supported values are:" msgstr "" +"En général, les objets ``ArgumentParser`` associent un seul argument de la " +"ligne de commande à une seule action à entreprendre. L'argument nommé " +"``nargs`` associe un nombre différent d'arguments de la ligne de commande à " +"une action. Les valeurs reconnues sont :" -#: ../Doc/library/argparse.rst:848 +#: library/argparse.rst:852 msgid "" "``N`` (an integer). ``N`` arguments from the command line will be gathered " "together into a list. For example::" msgstr "" +"``N`` (un entier). ``N`` arguments de la ligne de commande seront capturés " +"ensemble et stockés dans une liste. Par exemple ::" -#: ../Doc/library/argparse.rst:857 +#: library/argparse.rst:861 msgid "" "Note that ``nargs=1`` produces a list of one item. This is different from " "the default, in which the item is produced by itself." msgstr "" +"Prenez note que ``nargs=1`` produit une liste avec un seul élément. Ceci est " +"différent du comportement par défaut qui produit l'élément directement " +"(comme un scalaire)." -#: ../Doc/library/argparse.rst:862 +#: library/argparse.rst:866 msgid "" "``'?'``. One argument will be consumed from the command line if possible, " "and produced as a single item. If no command-line argument is present, the " @@ -752,64 +1029,93 @@ msgid "" "by a command-line argument. In this case the value from const_ will be " "produced. Some examples to illustrate this::" msgstr "" +"``'?'``. Un argument sera capturé de la ligne de commande et produit " +"directement. Si aucun argument n'est présent sur la ligne de commande, la " +"valeur de default_ est produite. Prenez note que pour les arguments " +"optionnels, il est aussi possible que la chaîne d'option soit présente mais " +"qu'elle ne soit pas suivie d'un argument. Dans ce cas, la valeur de const_ " +"est produite. Voici quelques exemples pour illustrer ceci ::" -#: ../Doc/library/argparse.rst:879 +#: library/argparse.rst:883 msgid "" "One of the more common uses of ``nargs='?'`` is to allow optional input and " "output files::" msgstr "" +"``nargs='?'`` est fréquemment utilisé pour accepter des fichiers d'entrée et " +"de sortie optionnels ::" -#: ../Doc/library/argparse.rst:896 +#: library/argparse.rst:900 msgid "" "``'*'``. All command-line arguments present are gathered into a list. Note " "that it generally doesn't make much sense to have more than one positional " "argument with ``nargs='*'``, but multiple optional arguments with " "``nargs='*'`` is possible. For example::" msgstr "" +"``'*'``. Tous les arguments présents sur la ligne de commande sont capturés " +"dans une liste. Prenez note qu'il n'est pas logique d'avoir plus d'un " +"argument positionnel avec ``nargs='*'``, mais il est par contre possible " +"d'avoir plusieurs arguments optionnels qui spécifient ``nargs='*'``. Par " +"exemple ::" -#: ../Doc/library/argparse.rst:910 +#: library/argparse.rst:914 msgid "" "``'+'``. Just like ``'*'``, all command-line args present are gathered into " "a list. Additionally, an error message will be generated if there wasn't at " "least one command-line argument present. For example::" msgstr "" +"``'+'``. Comme pour ``'*'``, tous les arguments présents sur la ligne de " +"commande sont capturés dans une liste. De plus, un message d'erreur est " +"produit s'il n'y a pas au moins un argument présent sur la ligne de " +"commande. Par exemple ::" -#: ../Doc/library/argparse.rst:924 +#: library/argparse.rst:928 msgid "" "``argparse.REMAINDER``. All the remaining command-line arguments are " "gathered into a list. This is commonly useful for command line utilities " "that dispatch to other command line utilities::" msgstr "" -#: ../Doc/library/argparse.rst:935 +#: library/argparse.rst:939 msgid "" "If the ``nargs`` keyword argument is not provided, the number of arguments " "consumed is determined by the action_. Generally this means a single " "command-line argument will be consumed and a single item (not a list) will " "be produced." msgstr "" +"Si l'argument nommé ``nargs`` n'est pas fourni, le nombre d'arguments " +"capturés est déterminé par l'action_. En général, c'est un seul argument de " +"la ligne de commande qui est capturé et il est produit directement." -#: ../Doc/library/argparse.rst:941 +#: library/argparse.rst:945 msgid "const" -msgstr "const" +msgstr "Le paramètre *const*" -#: ../Doc/library/argparse.rst:943 +#: library/argparse.rst:947 msgid "" "The ``const`` argument of :meth:`~ArgumentParser.add_argument` is used to " "hold constant values that are not read from the command line but are " "required for the various :class:`ArgumentParser` actions. The two most " "common uses of it are:" msgstr "" +"L'argument ``const`` d':meth:`~ArgumentParser.add_argument` est utilisé pour " +"stocker une constante qui n'est pas lue depuis la ligne de commande mais qui " +"est requise par certaines actions d':class:`ArgumentParser`. Les deux " +"utilisations les plus communes sont :" -#: ../Doc/library/argparse.rst:947 +#: library/argparse.rst:951 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with " "``action='store_const'`` or ``action='append_const'``. These actions add " "the ``const`` value to one of the attributes of the object returned by :meth:" "`~ArgumentParser.parse_args`. See the action_ description for examples." msgstr "" +"quand :meth:`~ArgumentParser.add_argument` est appelée avec " +"``action='store_const'`` ou ``action='append_const'``. Ces actions ajoutent " +"la valeur de ``const`` à l'un des attributs de l'objet renvoyé par :meth:" +"`~ArgumentParser.parse_args`. Consultez la description d'action_ pour voir " +"quelques exemples ;" -#: ../Doc/library/argparse.rst:952 +#: library/argparse.rst:956 msgid "" "When :meth:`~ArgumentParser.add_argument` is called with option strings " "(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " @@ -818,18 +1124,28 @@ msgid "" "command-line argument following it, the value of ``const`` will be assumed " "instead. See the nargs_ description for examples." msgstr "" +"quand la méthode :meth:`~ArgumentParser.add_argument` est appelée avec des " +"chaînes d'options (telles que ``-f`` ou ``--foo``) et ``nargs='?'``. Ceci " +"crée un argument optionnel qui peut être suivi de zéro ou un argument de " +"ligne de commande. Quand la ligne de commande est analysée, si la chaîne " +"d'option est trouvée mais qu'elle n'est pas suivie par un argument, la " +"valeur de ``const`` est utilisée. Consultez la description de nargs_ pour " +"voir quelques exemples." -#: ../Doc/library/argparse.rst:959 +#: library/argparse.rst:963 msgid "" "With the ``'store_const'`` and ``'append_const'`` actions, the ``const`` " "keyword argument must be given. For other actions, it defaults to ``None``." msgstr "" +"Pour les actions ``'store_const'`` et ``'append_const'``, l'argument nommé " +"``const`` doit être spécifié. Pour toutes les autres actions, il est " +"optionnel et sa valeur par défaut est ``None``." -#: ../Doc/library/argparse.rst:964 +#: library/argparse.rst:968 msgid "default" -msgstr "default" +msgstr "Le paramètre *default*" -#: ../Doc/library/argparse.rst:966 +#: library/argparse.rst:970 msgid "" "All optional arguments and some positional arguments may be omitted at the " "command line. The ``default`` keyword argument of :meth:`~ArgumentParser." @@ -838,32 +1154,49 @@ msgid "" "the ``default`` value is used when the option string was not present at the " "command line::" msgstr "" +"Tous les arguments optionnels et certains arguments positionnels peuvent " +"être omis à la ligne de commande. L'argument nommé ``default`` de la " +"méthode :meth:`~ArgumentParser.add_argument` (qui vaut ``None`` par défaut), " +"indique quelle valeur sera utilisé si l'argument est absent de la ligne de " +"commande. Pour les arguments optionnels, la valeur de ``default`` est " +"utilisée si la chaîne d'option n'est pas présente sur la ligne de commande ::" -#: ../Doc/library/argparse.rst:980 +#: library/argparse.rst:984 msgid "" "If the ``default`` value is a string, the parser parses the value as if it " "were a command-line argument. In particular, the parser applies any type_ " "conversion argument, if provided, before setting the attribute on the :class:" "`Namespace` return value. Otherwise, the parser uses the value as is::" msgstr "" +"Si la valeur de ``default`` est une chaîne, l'analyseur analyse cette valeur " +"comme si c'était un argument de la ligne de commande. En particulier, " +"l'analyseur applique la conversion spécifiée par l'argument type_ (si elle " +"est fournie) avant d'affecter l'attribut à l'objet :class:`Namespace` " +"renvoyé. Autrement, l'analyseur utilise la valeur telle qu'elle ::" -#: ../Doc/library/argparse.rst:991 +#: library/argparse.rst:995 msgid "" "For positional arguments with nargs_ equal to ``?`` or ``*``, the " "``default`` value is used when no command-line argument was present::" msgstr "" +"Pour les arguments positionnels pour lesquels nargs_ est ``?`` ou ``*``, la " +"valeur de ``default`` est utilisée quand l'argument est absent de la ligne " +"de commande ::" -#: ../Doc/library/argparse.rst:1002 +#: library/argparse.rst:1006 msgid "" "Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " "the command-line argument was not present::" msgstr "" +"Si vous passez ``default=argparse.SUPPRESS``, aucun attribut ne sera ajouté " +"à l'objet ``Namespace`` quand l'argument est absent de la ligne de " +"commande ::" -#: ../Doc/library/argparse.rst:1014 +#: library/argparse.rst:1018 msgid "type" -msgstr "type" +msgstr "Le paramètre *type*" -#: ../Doc/library/argparse.rst:1016 +#: library/argparse.rst:1020 msgid "" "By default, :class:`ArgumentParser` objects read command-line arguments in " "as simple strings. However, quite often the command-line string should " @@ -873,42 +1206,61 @@ msgid "" "performed. Common built-in types and functions can be used directly as the " "value of the ``type`` argument::" msgstr "" +"Par défaut, les objets :class:`ArgumentParser` capturent les arguments de la " +"ligne de commande comme des chaînes. Très souvent par contre, on désire " +"interpréter les chaînes de la ligne de commande comme un autre type, tel " +"que :class:`float` ou :class:`int`. L'argument nommé ``type`` d':meth:" +"`~ArgumentParser.add_argument` nous permet de faire les vérifications et les " +"conversions de type nécessaires. Les types et les fonctions natives peuvent " +"être utilisés directement pour la valeur de l'argument ``type`` ::" -#: ../Doc/library/argparse.rst:1029 +#: library/argparse.rst:1033 msgid "" "See the section on the default_ keyword argument for information on when the " "``type`` argument is applied to default arguments." msgstr "" +"Consultez la rubrique de l'argument nommé default_ pour plus d'information " +"sur quand l'argument ``type`` est appliqué aux arguments par défaut." -#: ../Doc/library/argparse.rst:1032 +#: library/argparse.rst:1036 msgid "" "To ease the use of various types of files, the argparse module provides the " "factory FileType which takes the ``mode=``, ``bufsize=``, ``encoding=`` and " "``errors=`` arguments of the :func:`open` function. For example, " "``FileType('w')`` can be used to create a writable file::" msgstr "" +"Pour faciliter l'utilisation de types de fichiers variés, le module " +"``argparse`` fournit le type fabrique ``FileType`` qui accepte les arguments " +"``mode=``, ``bufsize=``, ``encoding=`` et ``errors=`` de la fonction :func:" +"`open`. Par exemple, ``FileType('w')`` peut être utilisé pour créer un " +"fichier en mode écriture ::" -#: ../Doc/library/argparse.rst:1042 +#: library/argparse.rst:1046 msgid "" "``type=`` can take any callable that takes a single string argument and " "returns the converted value::" msgstr "" +"``type=`` peut prendre n'importe quelle fonction ou objet appelable qui " +"prend une seule chaîne de caractère comme argument et qui renvoie la valeur " +"convertie ::" -#: ../Doc/library/argparse.rst:1061 +#: library/argparse.rst:1065 msgid "" "The choices_ keyword argument may be more convenient for type checkers that " "simply check against a range of values::" msgstr "" +"L'argument nommé choices_ est parfois plus facile d'utilisation pour les " +"vérificateurs de type qui comparent la valeur à une gamme prédéfinie ::" -#: ../Doc/library/argparse.rst:1072 +#: library/argparse.rst:1076 msgid "See the choices_ section for more details." -msgstr "Voir la section choices_ pour plus de détails." +msgstr "Voir le chapitre choices_ pour plus de détails." -#: ../Doc/library/argparse.rst:1076 +#: library/argparse.rst:1080 msgid "choices" -msgstr "choices" +msgstr "Le paramètre *choices*" -#: ../Doc/library/argparse.rst:1078 +#: library/argparse.rst:1082 msgid "" "Some command-line arguments should be selected from a restricted set of " "values. These can be handled by passing a container object as the *choices* " @@ -916,83 +1268,121 @@ msgid "" "line is parsed, argument values will be checked, and an error message will " "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 ::" -#: ../Doc/library/argparse.rst:1093 +#: library/argparse.rst:1097 msgid "" "Note that inclusion in the *choices* container is checked after any type_ " "conversions have been performed, so the type of the objects in the *choices* " "container 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é ::" -#: ../Doc/library/argparse.rst:1105 +#: library/argparse.rst:1109 msgid "" "Any container can be passed as the *choices* value, so :class:`list` " "objects, :class:`set` objects, and custom containers 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." -#: ../Doc/library/argparse.rst:1110 +#: library/argparse.rst:1114 msgid "required" -msgstr "required" +msgstr "Le paramètre *required*" -#: ../Doc/library/argparse.rst:1112 +#: library/argparse.rst:1116 msgid "" "In general, the :mod:`argparse` module assumes that flags like ``-f`` and " "``--bar`` indicate *optional* arguments, which can always be omitted at the " "command line. To make an option *required*, ``True`` can be specified for " "the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" msgstr "" +"En général, le module :mod:`argparse` prend pour acquis que les drapeaux " +"comme ``-f`` et ``--bar`` annoncent un argument *optionnel* qui peut " +"toujours être omis de la ligne de commande. Pour rendre une option " +"*obligatoire*, ``True`` peut être passé à l'argument nommé ``required=`` d':" +"meth:`~ArgumentParser.add_argument` ::" -#: ../Doc/library/argparse.rst:1125 +#: library/argparse.rst:1129 msgid "" "As the example shows, if an option is marked as ``required``, :meth:" "`~ArgumentParser.parse_args` will report an error if that option is not " "present at the command line." msgstr "" +"Tel qu'illustré' dans l'exemple, quand l'option est marquée comme " +"``required``, :meth:`~ArgumentParser.parse_args` mentionne une erreur si " +"l'option est absente de la ligne de commande." -#: ../Doc/library/argparse.rst:1131 +#: library/argparse.rst:1135 msgid "" "Required options are generally considered bad form because users expect " "*options* to be *optional*, and thus they should be avoided when possible." msgstr "" +"En général, les options obligatoires manifestent un style boiteux, car les " +"utilisateurs s'attendent que les *options* soient *optionnelles*. Elles " +"devraient donc être évitées si possible." -#: ../Doc/library/argparse.rst:1136 +#: library/argparse.rst:1140 msgid "help" -msgstr "help" +msgstr "Le paramètre *help*" -#: ../Doc/library/argparse.rst:1138 +#: library/argparse.rst:1142 msgid "" "The ``help`` value is a string containing a brief description of the " "argument. When a user requests help (usually by using ``-h`` or ``--help`` " "at the command line), these ``help`` descriptions will be displayed with " "each argument::" msgstr "" +"La valeur de ``help`` est une chaîne qui contient une brève description de " +"l'argument. Quand un utilisateur demande de l'aide (en général par " +"l'utilisation de ``-h`` ou ``--help`` sur la ligne de commande), ces " +"descriptions d'aide seront affichées pour chacun des arguments ::" -#: ../Doc/library/argparse.rst:1158 +#: library/argparse.rst:1162 msgid "" "The ``help`` strings can include various format specifiers to avoid " "repetition of things like the program name or the argument default_. The " "available specifiers include the program name, ``%(prog)s`` and most keyword " -"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``" -"%(type)s``, etc.::" +"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, " +"``%(type)s``, etc.::" msgstr "" +"La chaîne ``help`` peut contenir des spécificateurs de formatage afin " +"d'éviter la répétition de contenu tel que le nom du programme et la valeur " +"par défaut de l'argument (voir default_). Les spécificateurs de formatage " +"disponibles incluent entre autres le nom du programme, ``%(prog)s``, et la " +"plupart des arguments nommés d':meth:`~ArgumentParser.add_argument`, tels " +"que ``%(default)s``, ``%(type)s``, etc. ::" -#: ../Doc/library/argparse.rst:1175 +#: library/argparse.rst:1179 msgid "" "As the help string supports %-formatting, if you want a literal ``%`` to " "appear in the help string, you must escape it as ``%%``." msgstr "" +"Comme la chaîne d'aide utilise le caractère ``%`` pour le formatage, si vous " +"désirez afficher un ``%`` littéral dans la chaîne d'aide, vous devez en " +"faire l’échappement avec ``%%``." -#: ../Doc/library/argparse.rst:1178 +#: library/argparse.rst:1182 msgid "" ":mod:`argparse` supports silencing the help entry for certain options, by " "setting the ``help`` value to ``argparse.SUPPRESS``::" msgstr "" +":mod:`argparse` peut supprimer la rubrique d'aide de certaines options. Pour " +"ce faire, passez ``argparse.SUPPRESS`` à ``help`` ::" -#: ../Doc/library/argparse.rst:1191 +#: library/argparse.rst:1195 msgid "metavar" -msgstr "metavar" +msgstr "Le paramètre *metavar*" -#: ../Doc/library/argparse.rst:1193 +#: library/argparse.rst:1197 msgid "" "When :class:`ArgumentParser` generates help messages, it needs some way to " "refer to each expected argument. By default, ArgumentParser objects use the " @@ -1003,30 +1393,45 @@ msgid "" "optional argument ``--foo`` that should be followed by a single command-line " "argument will be referred to as ``FOO``. An example::" msgstr "" - -#: ../Doc/library/argparse.rst:1217 +"Quand un objet :class:`ArgumentParser` construit le message d'aide, il doit " +"pouvoir faire référence à chacun des arguments attendus. Par défaut, les " +"objets ``ArgumentParser`` utilisent la valeur de dest_ pour le nom de chaque " +"objet. Par défaut, la valeur de dest_ est utilisée telle quelle pour les " +"actions d'arguments positionnels et elle (dest_) est convertie en majuscules " +"pour les actions d'arguments optionnels. Ainsi, un argument positionnel " +"unique avec ``dest='bar'`` sera affiché comme ``bar`` et un argument " +"positionnel unique ``--foo`` qui prend un seul argument sur la ligne de " +"commande sera affiché comme ``FOO``. Par exemple ::" + +#: library/argparse.rst:1221 msgid "An alternative name can be specified with ``metavar``::" -msgstr "" +msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" -#: ../Doc/library/argparse.rst:1234 +#: library/argparse.rst:1238 msgid "" "Note that ``metavar`` only changes the *displayed* name - the name of the " "attribute on the :meth:`~ArgumentParser.parse_args` object is still " "determined by the dest_ value." msgstr "" +"Prenez note que ``metavar`` ne change que le nom *affiché*. Le nom de " +"l'attribut ajouté à l'objet renvoyé par :meth:`~ArgumentParser.parse_args` " +"est toujours déterminé par la valeur de dest_." -#: ../Doc/library/argparse.rst:1238 +#: library/argparse.rst:1242 msgid "" "Different values of ``nargs`` may cause the metavar to be used multiple " "times. Providing a tuple to ``metavar`` specifies a different display for " "each of the arguments::" msgstr "" +"Certaines valeurs de ``nargs`` peuvent provoquer l'affichage de ``metavar`` " +"plus d'une fois. Passer un n-uplet à ``metavar`` indique les différents noms " +"à afficher pour chacun des arguments ::" -#: ../Doc/library/argparse.rst:1255 +#: library/argparse.rst:1259 msgid "dest" -msgstr "dest" +msgstr "Le paramètre *dest*" -#: ../Doc/library/argparse.rst:1257 +#: library/argparse.rst:1261 msgid "" "Most :class:`ArgumentParser` actions add some value as an attribute of the " "object returned by :meth:`~ArgumentParser.parse_args`. The name of this " @@ -1035,8 +1440,14 @@ msgid "" "is normally supplied as the first argument to :meth:`~ArgumentParser." "add_argument`::" msgstr "" +"La plupart des actions d':class:`ArgumentParser` ajoutent une valeur dans un " +"attribut de l'objet renvoyé par :meth:`~ArgumentParser.parse_args`. Le nom " +"de l'attribut est déterminé par l'argument nommé ``dest`` d':meth:" +"`~ArgumentParser.add_argument`. Pour les arguments positionnels, ``dest`` " +"est généralement le premier argument d':meth:`~ArgumentParser." +"add_argument` ::" -#: ../Doc/library/argparse.rst:1269 +#: library/argparse.rst:1273 msgid "" "For optional argument actions, the value of ``dest`` is normally inferred " "from the option strings. :class:`ArgumentParser` generates the value of " @@ -1047,23 +1458,35 @@ msgid "" "characters to make sure the string is a valid attribute name. The examples " "below illustrate this behavior::" msgstr "" +"Pour les actions d'arguments optionnels, la valeur de ``dest`` est " +"généralement inférée à partir des chaînes d'option. :class:`ArgumentParser` " +"génère la valeur de ``dest`` en prenant la première chaîne d'option longue " +"et en retirant le préfixe ``--``. Si une chaîne d'option longue n'est pas " +"fournie, ``dest`` sera dérivée de la première chaîne d'option courte sans le " +"préfixe ``-``. Tous les ``-`` subséquents seront convertis en ``_`` pour " +"s'assurer que le chaîne est un nom d'attribut valide. Les exemples suivants " +"illustrent ce comportement ::" -#: ../Doc/library/argparse.rst:1286 +#: library/argparse.rst:1290 msgid "``dest`` allows a custom attribute name to be provided::" -msgstr "" +msgstr "``dest`` vous permet de fournir un nom d'attribut personnalisé ::" -#: ../Doc/library/argparse.rst:1294 +#: library/argparse.rst:1298 msgid "Action classes" msgstr "Classes Action" -#: ../Doc/library/argparse.rst:1296 +#: library/argparse.rst:1300 msgid "" "Action classes implement the Action API, a callable which returns a callable " "which processes arguments from the command-line. Any object which follows " "this API may be passed as the ``action`` parameter to :meth:`add_argument`." msgstr "" +"Les classes ``Action`` implémentent l'API Action, un appelable qui retourne " +"un appelable qui traite les arguments de la ligne de commande. Tout objet " +"qui suit cette API peut être passé comme paramètre ``action`` d':meth:" +"`add_argument`." -#: ../Doc/library/argparse.rst:1305 +#: library/argparse.rst:1309 msgid "" "Action objects are used by an ArgumentParser to represent the information " "needed to parse a single argument from one or more strings from the command " @@ -1071,128 +1494,181 @@ msgid "" "keyword arguments passed to :meth:`ArgumentParser.add_argument` except for " "the ``action`` itself." msgstr "" +"Les objets ``Action`` sont utilisés par un ``ArgumentParser`` pour " +"représenter l'information nécessaire à l'analyse d'un seul argument à partir " +"d'une ou plusieurs chaînes de la ligne de commande. La classe ``Action`` " +"doit accepter les deux arguments positionnels d':meth:`ArgumentParser." +"add_argument` ainsi que tous ses arguments nommés, sauf ``action``." -#: ../Doc/library/argparse.rst:1311 +#: library/argparse.rst:1315 msgid "" "Instances of Action (or return value of any callable to the ``action`` " "parameter) should have attributes \"dest\", \"option_strings\", \"default\", " "\"type\", \"required\", \"help\", etc. defined. The easiest way to ensure " "these attributes are defined is to call ``Action.__init__``." msgstr "" +"Les instances d'``Action`` (ou la valeur de retour de l'appelable passé au " +"paramètre ``action``) doivent définir les attributs nécessaires : *dest*, " +"*option_strings*, *default*, *type*, *required*, *help*, etc. La façon la " +"plus simple de s'assurer que ces attributs sont définis est d'appeler " +"``Action.__init__``." -#: ../Doc/library/argparse.rst:1316 +#: library/argparse.rst:1320 msgid "" "Action instances should be callable, so subclasses must override the " "``__call__`` method, which should accept four parameters:" msgstr "" +"Les instances d'``Action`` doivent être appelables et donc les sous-classes " +"doivent surcharger la méthode ``__call__``. Cette méthode doit accepter " +"quatre paramètres :" -#: ../Doc/library/argparse.rst:1319 +#: library/argparse.rst:1323 msgid "``parser`` - The ArgumentParser object which contains this action." -msgstr "" +msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action." -#: ../Doc/library/argparse.rst:1321 +#: library/argparse.rst:1325 msgid "" "``namespace`` - The :class:`Namespace` object that will be returned by :meth:" "`~ArgumentParser.parse_args`. Most actions add an attribute to this object " "using :func:`setattr`." msgstr "" +"``namespace`` – L'objet :class:`Namespace` qui sera renvoyé par :meth:" +"`~ArgumentParser.parse_args`. La majorité des actions ajoutent un attribut à " +"cet objet avec :func:`setattr`." -#: ../Doc/library/argparse.rst:1325 +#: library/argparse.rst:1329 msgid "" "``values`` - The associated command-line arguments, with any type " "conversions applied. Type conversions are specified with the type_ keyword " "argument to :meth:`~ArgumentParser.add_argument`." msgstr "" +"``values`` – Les arguments de la ligne de commande associés à l'action après " +"les avoir soumis à la conversion de type. Les conversions de types sont " +"spécifiées grâce à l’argument nommé type_ d':meth:`~ArgumentParser." +"add_argument`." -#: ../Doc/library/argparse.rst:1329 +#: library/argparse.rst:1333 msgid "" "``option_string`` - The option string that was used to invoke this action. " "The ``option_string`` argument is optional, and will be absent if the action " "is associated with a positional argument." msgstr "" +"``option_string`` – La chaîne d'option utilisée pour invoquer cette action. " +"L'argument ``option_string`` est optionnel et est absent si l'action est " +"associée à un argument positionnel." -#: ../Doc/library/argparse.rst:1333 +#: library/argparse.rst:1337 msgid "" "The ``__call__`` method may perform arbitrary actions, but will typically " "set attributes on the ``namespace`` based on ``dest`` and ``values``." msgstr "" +"La méthode ``__call__`` peut réaliser un traitement arbitraire, mais en " +"général elle affect des attributs sur ``namespace`` en fonction de ``dest`` " +"et de ``values``." -#: ../Doc/library/argparse.rst:1338 +#: library/argparse.rst:1342 msgid "The parse_args() method" msgstr "La méthode *parse_args()*" -#: ../Doc/library/argparse.rst:1342 +#: library/argparse.rst:1346 msgid "" "Convert argument strings to objects and assign them as attributes of the " "namespace. Return the populated namespace." msgstr "" +"Convertie les chaînes d'arguments en objets et les assigne comme attributs " +"de l'objet ``namespace``. Retourne l'objet ``namespace`` rempli." -#: ../Doc/library/argparse.rst:1345 +#: library/argparse.rst:1349 msgid "" "Previous calls to :meth:`add_argument` determine exactly what objects are " "created and how they are assigned. See the documentation for :meth:" "`add_argument` for details." msgstr "" +"Les appels à :meth:`add_argument` qui ont été faits déterminent exactement " +"quels objets sont créés et comment ils sont affectés. Consultez la rubrique " +"d':meth:`add_argument` pour les détails." -#: ../Doc/library/argparse.rst:1349 +#: library/argparse.rst:1353 msgid "" "args_ - List of strings to parse. The default is taken from :data:`sys." "argv`." msgstr "" +"args_ – Liste de chaînes à analyser. La valeur par défaut est récupérée " +"dans : :data:`sys.argv`." -#: ../Doc/library/argparse.rst:1352 +#: library/argparse.rst:1356 msgid "" "namespace_ - An object to take the attributes. The default is a new empty :" "class:`Namespace` object." msgstr "" +"namespace_ – Un objet pour recevoir les attributs. Par défaut : une nouvelle " +"instance (vide) de :class:`Namespace`." -#: ../Doc/library/argparse.rst:1357 +#: library/argparse.rst:1361 msgid "Option value syntax" -msgstr "" +msgstr "Syntaxe de la valeur des options" -#: ../Doc/library/argparse.rst:1359 +#: library/argparse.rst:1363 msgid "" "The :meth:`~ArgumentParser.parse_args` method supports several ways of " "specifying the value of an option (if it takes one). In the simplest case, " "the option and its value are passed as two separate arguments::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` offre plusieurs façons " +"d'indiquer la valeur d'une option si elle en prend une. Dans le cas le plus " +"simple, l'option et sa valeur sont passées en tant que deux arguments " +"distincts ::" -#: ../Doc/library/argparse.rst:1371 +#: library/argparse.rst:1375 msgid "" "For long options (options with names longer than a single character), the " "option and value can also be passed as a single command-line argument, using " "``=`` to separate them::" msgstr "" +"Pour les options longues (les options qui ont un nom plus long qu'un seul " +"caractère), l'option et sa valeur peuvent être passées comme un seul " +"argument de la ligne de commande en utilisant ``=`` comme séparateur ::" -#: ../Doc/library/argparse.rst:1378 +#: library/argparse.rst:1382 msgid "" "For short options (options only one character long), the option and its " "value can be concatenated::" msgstr "" +"Pour les options courtes (les options qui utilisent un seul caractère), " +"l'option et sa valeur peuvent être concaténées ::" -#: ../Doc/library/argparse.rst:1384 +#: library/argparse.rst:1388 msgid "" "Several short options can be joined together, using only a single ``-`` " "prefix, as long as only the last option (or none of them) requires a value::" msgstr "" +"Plusieurs options courtes peuvent être groupées ensemble après un seul " +"préfixe ``-`` pour autant que seule la dernière (ou aucune) nécessite une " +"valeur ::" -#: ../Doc/library/argparse.rst:1396 +#: library/argparse.rst:1400 msgid "Invalid arguments" msgstr "Arguments invalides" -#: ../Doc/library/argparse.rst:1398 +#: library/argparse.rst:1402 msgid "" "While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " "for a variety of errors, including ambiguous options, invalid types, invalid " "options, wrong number of positional arguments, etc. When it encounters such " "an error, it exits and prints the error along with a usage message::" msgstr "" +"Quand elle fait l'analyse de la ligne de commande, la méthode :meth:" +"`~ArgumentParser.parse_args` vérifie plusieurs erreurs possibles : entre " +"autres, options ambigües, types invalides, options invalides, nombre " +"incorrect d'arguments positionnels, etc. Quand une erreur est rencontrée, " +"elle affiche l'erreur accompagnée du message d'aide puis termine " +"l'exécution ::" -#: ../Doc/library/argparse.rst:1424 +#: library/argparse.rst:1428 msgid "Arguments containing ``-``" msgstr "Arguments contenant ``-``" -#: ../Doc/library/argparse.rst:1426 +#: library/argparse.rst:1430 msgid "" "The :meth:`~ArgumentParser.parse_args` method attempts to give errors " "whenever the user has clearly made a mistake, but some situations are " @@ -1203,77 +1679,113 @@ msgid "" "like negative numbers and there are no options in the parser that look like " "negative numbers::" msgstr "" +"La méthode :meth:`~ArgumentParser.parse_args` tente de signaler une erreur " +"quand l'utilisateur s'est clairement trompé. Par contre, certaines " +"situations sont intrinsèquement ambigües. Par exemple, l'argument de la " +"ligne de commande ``-1`` peut aussi bien être une tentative de spécifier une " +"option qu'une tentative de passer un argument positionnel. La méthode :meth:" +"`~ArgumentParser.parse_args` est prudente : les arguments positionnels ne " +"peuvent commencer par ``-`` que s'ils ont l'apparence d'un nombre négatif et " +"que l'analyseur ne contient aucune option qui a l'apparence d'un nombre " +"négatif ::" -#: ../Doc/library/argparse.rst:1464 +#: library/argparse.rst:1468 msgid "" "If you have positional arguments that must begin with ``-`` and don't look " "like negative numbers, you can insert the pseudo-argument ``'--'`` which " "tells :meth:`~ArgumentParser.parse_args` that everything after that is a " "positional argument::" msgstr "" +"Si l'utilisateur a des arguments positionnels qui commencent par ``-`` et " +"qui n'ont pas l'apparence d'un nombre négatif, il peut insérer le pseudo-" +"argument ``'--'`` qui indique à :meth:`~ArgumentParser.parse_args` de " +"traiter tout ce qui suit comme un argument positionnel ::" -#: ../Doc/library/argparse.rst:1475 +#: library/argparse.rst:1479 msgid "Argument abbreviations (prefix matching)" -msgstr "Arguments abrégés (Part comparaison de leur préfixes)" +msgstr "Arguments abrégés (Par comparaison de leurs préfixes)" -#: ../Doc/library/argparse.rst:1477 +#: library/argparse.rst:1481 msgid "" "The :meth:`~ArgumentParser.parse_args` method :ref:`by default " "` allows long options to be abbreviated to a prefix, if the " "abbreviation is unambiguous (the prefix matches a unique option)::" msgstr "" +"Par défaut, la méthode :meth:`~ArgumentParser.parse_args` accepte que les " +"options longues soient :ref:`abrégées ` par un préfixe pour " +"autant que l’abréviation soit non-ambigüe, c'est-à-dire qu'elle ne " +"corresponde qu'à une seule option ::" -#: ../Doc/library/argparse.rst:1492 +#: library/argparse.rst:1496 msgid "" "An error is produced for arguments that could produce more than one options. " "This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." msgstr "" +"Une erreur est générée pour les arguments qui peuvent produire plus d'une " +"option. Ce comportement peut être désactivé en passant ``False`` à :ref:" +"`allow_abbrev`." -#: ../Doc/library/argparse.rst:1498 +#: library/argparse.rst:1502 msgid "Beyond ``sys.argv``" -msgstr "Au delà de ``sys.argv``" +msgstr "Au-delà de ``sys.argv``" -#: ../Doc/library/argparse.rst:1500 +#: library/argparse.rst:1504 msgid "" "Sometimes it may be useful to have an ArgumentParser parse arguments other " "than those of :data:`sys.argv`. This can be accomplished by passing a list " "of strings to :meth:`~ArgumentParser.parse_args`. This is useful for " "testing at the interactive prompt::" msgstr "" +"Il est parfois désirable de demander à un objet ``ArgumentParser`` de faire " +"l'analyse d'arguments autres que ceux de :data:`sys.argv`. On peut faire ce " +"traitement en passant une liste de chaînes à :meth:`~ArgumentParser." +"parse_args`. Cette approche est pratique pour faire des tests depuis " +"l'invite de commande ::" -#: ../Doc/library/argparse.rst:1520 +#: library/argparse.rst:1524 msgid "The Namespace object" msgstr "L'objet namespace" -#: ../Doc/library/argparse.rst:1524 +#: library/argparse.rst:1528 msgid "" "Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " "an object holding attributes and return it." msgstr "" +"Classe rudimentaire qui est utilisé par défaut par :meth:`~ArgumentParser." +"parse_args` pour créer un objet qui stock les attributs. Cet objet est " +"renvoyé par ``ArgumentParser.parse_args``." -#: ../Doc/library/argparse.rst:1527 +#: library/argparse.rst:1531 msgid "" "This class is deliberately simple, just an :class:`object` subclass with a " "readable string representation. If you prefer to have dict-like view of the " "attributes, you can use the standard Python idiom, :func:`vars`::" msgstr "" +"Cette classe est délibérément rudimentaire : une sous-classe d':class:" +"`object` avec une représentation textuelle intelligible. Si vous préférez " +"une vue *dict-compatible*, vous devez utiliser :func:`vars` (un idiome " +"Python classique) ::" -#: ../Doc/library/argparse.rst:1537 +#: library/argparse.rst:1541 msgid "" "It may also be useful to have an :class:`ArgumentParser` assign attributes " "to an already existing object, rather than a new :class:`Namespace` object. " "This can be achieved by specifying the ``namespace=`` keyword argument::" msgstr "" +"Il est parfois utile de demander à :class:`ArgumentParser` de faire " +"l'affectation des attributs sur un objet existant plutôt que de faire la " +"création d'un nouvel objet :class:`Namespace`. Ceci peut être réalisé avec " +"l'argument nommé ``namespace=`` ::" -#: ../Doc/library/argparse.rst:1553 +#: library/argparse.rst:1557 msgid "Other utilities" msgstr "Autres outils" -#: ../Doc/library/argparse.rst:1556 +#: library/argparse.rst:1560 msgid "Sub-commands" msgstr "Sous commandes" -#: ../Doc/library/argparse.rst:1563 +#: library/argparse.rst:1567 msgid "" "Many programs split up their functionality into a number of sub-commands, " "for example, the ``svn`` program can invoke sub-commands like ``svn " @@ -1288,70 +1800,104 @@ msgid "" "constructor arguments, and returns an :class:`ArgumentParser` object that " "can be modified as usual." msgstr "" - -#: ../Doc/library/argparse.rst:1575 +"Certains programmes divisent leurs fonctionnalités entre un nombre de sous-" +"commandes. Par exemple : le programme ``svn`` peut être invoqué comme ``svn " +"checkout``, ``svn update`` et ``svn commit``. Séparer les fonctionnalités de " +"cette façon est judicieux quand le programme effectue plusieurs fonctions " +"différentes qui requièrent différents types de lignes de commandes. :class:" +"`ArgumentParser` prend en charge la création de ce genre de sous-commandes " +"grâce à la méthode :meth:`add_subparsers`. La méthode :meth:`add_subparsers` " +"est généralement appelée sans argument et elle renvoie un objet ``Action`` " +"spécial. Cet objet possède une seule méthode, :meth:`~ArgumentParser." +"add_parser`, qui prend le nom d'une commande et n'importe quels arguments du " +"constructeur d':class:`ArgumentParser` ; elle renvoie un objet :class:" +"`ArgumentParser` qui peut être modifié normalement." + +#: library/argparse.rst:1579 msgid "Description of parameters:" msgstr "Description des paramètres" -#: ../Doc/library/argparse.rst:1577 +#: library/argparse.rst:1581 msgid "" "title - title for the sub-parser group in help output; by default " "\"subcommands\" if description is provided, otherwise uses title for " "positional arguments" msgstr "" +"``title`` – titre du groupe de ce sous-analyseur dans la sortie d'aide ; par " +"défaut : ``\"subcommands\"`` si ``description`` est fournie, sinon utilise " +"la valeur de ``title`` de la section sur les arguments positionnels ;" -#: ../Doc/library/argparse.rst:1581 +#: library/argparse.rst:1585 msgid "" "description - description for the sub-parser group in help output, by " "default ``None``" msgstr "" +"``description`` – description du groupe de ce sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" -#: ../Doc/library/argparse.rst:1584 +#: library/argparse.rst:1588 msgid "" "prog - usage information that will be displayed with sub-command help, by " "default the name of the program and any positional arguments before the " "subparser argument" msgstr "" +"``prog`` – nom du programme dans le message d'utilisation de l'aide des sous-" +"commandes ; par défaut : le nom du programme et les arguments positionnels " +"qui arrivent avant l'argument de ce sous-analyseur ;" -#: ../Doc/library/argparse.rst:1588 +#: library/argparse.rst:1592 msgid "" "parser_class - class which will be used to create sub-parser instances, by " "default the class of the current parser (e.g. ArgumentParser)" msgstr "" +"``parser_class`` – classe utilisée pour créer les instances de sous-" +"analyseurs ; par défaut : la classe de l'analyseur courant (par exemple " +"``ArgumentParser``) ;" -#: ../Doc/library/argparse.rst:1591 +#: library/argparse.rst:1595 msgid "" "action_ - the basic type of action to be taken when this argument is " "encountered at the command line" msgstr "" +"action_ – action à entreprendre quand cet argument est reconnu sur la ligne " +"de commande ;" -#: ../Doc/library/argparse.rst:1594 +#: library/argparse.rst:1598 msgid "" "dest_ - name of the attribute under which sub-command name will be stored; " "by default ``None`` and no value is stored" msgstr "" +"dest_ – nom de l'attribut sous lequel la sous-commande est stockée ; par " +"défaut : ``None`` et aucune valeur n'est stockée ;" -#: ../Doc/library/argparse.rst:1597 +#: library/argparse.rst:1601 msgid "" "required_ - Whether or not a subcommand must be provided, by default " "``False`` (added in 3.7)" msgstr "" +"required_ – ``True`` si la sous-commande est obligatoire ; par défaut : " +"``False`` (ajouté dans 3.7) ;" -#: ../Doc/library/argparse.rst:1600 +#: library/argparse.rst:1604 msgid "help_ - help for sub-parser group in help output, by default ``None``" msgstr "" +"help_ – message d'aide pour le groupe du sous-analyseur dans la sortie " +"d'aide ; par défaut : ``None`` ;" -#: ../Doc/library/argparse.rst:1602 +#: library/argparse.rst:1606 msgid "" "metavar_ - string presenting available sub-commands in help; by default it " "is ``None`` and presents sub-commands in form {cmd1, cmd2, ..}" msgstr "" +"metavar_ – chaîne qui représente les sous-commandes disponibles dans les " +"messages d'aide ; par défaut : ``None``, ce qui entraine la génération d'une " +"chaîne suivant le format ``'{cmd1, cmd2, …}'``." -#: ../Doc/library/argparse.rst:1605 +#: library/argparse.rst:1609 msgid "Some example usage::" msgstr "Quelques exemples d'utilisation ::" -#: ../Doc/library/argparse.rst:1626 +#: library/argparse.rst:1630 msgid "" "Note that the object returned by :meth:`parse_args` will only contain " "attributes for the main parser and the subparser that was selected by the " @@ -1360,8 +1906,15 @@ msgid "" "present, and when the ``b`` command is specified, only the ``foo`` and " "``baz`` attributes are present." msgstr "" +"Prenez note que l'objet renvoyé par :meth:`parse_args` ne contient que les " +"attributs reconnus par l'analyseur principal et le sous-analyseur " +"sélectionné par la ligne de commande. Les autres sous-analyseurs n'ont pas " +"d'influence sur l'objet renvoyé. Ainsi dans l'exemple précédent, quand la " +"commande ``a`` est spécifiée, seuls les attributs ``foo`` et ``bar`` sont " +"présents ; quand la commande ``b`` est spécifiée, seuls les attributs " +"``foo`` et ``baz`` sont présents." -#: ../Doc/library/argparse.rst:1633 +#: library/argparse.rst:1637 msgid "" "Similarly, when a help message is requested from a subparser, only the help " "for that particular parser will be printed. The help message will not " @@ -1369,30 +1922,48 @@ msgid "" "subparser command, however, can be given by supplying the ``help=`` argument " "to :meth:`add_parser` as above.)" msgstr "" +"De même, quand le message d'aide est demandé depuis l'un des sous-" +"analyseurs, seul le message d'aide de cet analyseur est affiché. Le message " +"d'aide n'inclut pas le message de l'analyseur parent ni celui des sous-" +"analyseurs au même niveau. Il est toutefois possible de fournir un message " +"d'aide pour chacun des sous-analyseurs grâce à l'argument ``help=`` d':meth:" +"`add_parser` tel qu'illustré ci-dessus." -#: ../Doc/library/argparse.rst:1669 +#: library/argparse.rst:1673 msgid "" "The :meth:`add_subparsers` method also supports ``title`` and " "``description`` keyword arguments. When either is present, the subparser's " "commands will appear in their own group in the help output. For example::" msgstr "" +"La méthode :meth:`add_subparsers` accepte les arguments nommés ``title`` et " +"``description``. Quand au moins l'un des deux est présent, les commandes du " +"sous-analyseur sont affichées dans leur propre groupe dans la sortie d'aide. " +"Par exemple ::" -#: ../Doc/library/argparse.rst:1690 +#: library/argparse.rst:1694 msgid "" "Furthermore, ``add_parser`` supports an additional ``aliases`` argument, " "which allows multiple strings to refer to the same subparser. This example, " "like ``svn``, aliases ``co`` as a shorthand for ``checkout``::" msgstr "" +"De plus, ``add_parser`` accepte l'argument additionnel ``aliases`` qui " +"permet à plusieurs chaînes de faire référence au même sous-analyseur. " +"L'exemple suivant, à la manière de ``svn``, utilise ``co`` comme une " +"abréviation de ``checkout`` ::" -#: ../Doc/library/argparse.rst:1701 +#: library/argparse.rst:1705 msgid "" "One particularly effective way of handling sub-commands is to combine the " "use of the :meth:`add_subparsers` method with calls to :meth:`set_defaults` " "so that each subparser knows which Python function it should execute. For " "example::" msgstr "" +"Une façon efficace de traiter les sous-commandes est de combiner " +"l'utilisation de la méthode :meth:`add_subparsers` avec des appels à :meth:" +"`set_defaults` pour que chaque sous-analyseur sache quelle fonction Python " +"doit être exécutée. Par exemple ::" -#: ../Doc/library/argparse.rst:1738 +#: library/argparse.rst:1742 msgid "" "This way, you can let :meth:`parse_args` do the job of calling the " "appropriate function after argument parsing is complete. Associating " @@ -1401,17 +1972,22 @@ msgid "" "to check the name of the subparser that was invoked, the ``dest`` keyword " "argument to the :meth:`add_subparsers` call will work::" msgstr "" +"Ainsi, vous pouvez laisser à :meth:`parse_args` la responsabilité de faire " +"l'appel à la bonne fonction après avoir analysé les arguments. Associer " +"fonctions et actions est en général la façon la plus facile de gérer des " +"actions différentes pour chacun de vos sous-analyseurs. Par contre, si vous " +"avez besoin de consulter le nom de du sous-analyseur qui a été invoqué, vous " +"pouvez utiliser l'argument nommé ``dest`` d':meth:`add_subparsers` ::" -#: ../Doc/library/argparse.rst:1754 -#, fuzzy +#: library/argparse.rst:1758 msgid "New *required* keyword argument." -msgstr "Les arguments nommés ``encodings`` et ``errors``." +msgstr "Introduction des arguments nommés obligatoires." -#: ../Doc/library/argparse.rst:1759 +#: library/argparse.rst:1763 msgid "FileType objects" msgstr "Objets ``FileType``" -#: ../Doc/library/argparse.rst:1763 +#: library/argparse.rst:1767 msgid "" "The :class:`FileType` factory creates objects that can be passed to the type " "argument of :meth:`ArgumentParser.add_argument`. Arguments that have :class:" @@ -1419,23 +1995,33 @@ msgid "" "with the requested modes, buffer sizes, encodings and error handling (see " "the :func:`open` function for more details)::" msgstr "" +"Le type fabrique :class:`FileType` crée des objets qui peuvent être passés à " +"l'argument ``type`` d':meth:`ArgumentParser.add_argument`. Les arguments qui " +"ont comme ``type`` un objet :class:`FileType` ouvrent les arguments de la " +"ligne de commande en tant que fichiers avec les options spécifiées : mode, " +"taille du tampon, encodage et gestion des erreurs (voir la fonction :func:" +"`open` pour plus de détails) ::" -#: ../Doc/library/argparse.rst:1775 +#: library/argparse.rst:1779 msgid "" "FileType objects understand the pseudo-argument ``'-'`` and automatically " "convert this into ``sys.stdin`` for readable :class:`FileType` objects and " "``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 ::" -#: ../Doc/library/argparse.rst:1784 +#: library/argparse.rst:1788 msgid "The *encodings* and *errors* keyword arguments." msgstr "Les arguments nommés ``encodings`` et ``errors``." -#: ../Doc/library/argparse.rst:1789 +#: library/argparse.rst:1793 msgid "Argument groups" msgstr "Groupes d'arguments" -#: ../Doc/library/argparse.rst:1793 +#: library/argparse.rst:1797 msgid "" "By default, :class:`ArgumentParser` groups command-line arguments into " "\"positional arguments\" and \"optional arguments\" when displaying help " @@ -1443,8 +2029,13 @@ msgid "" "default one, appropriate groups can be created using the :meth:" "`add_argument_group` method::" msgstr "" +"Par défaut, :class:`ArgumentParser` sépare les arguments de la ligne de " +"commande entre les groupes « arguments positionnels » et « arguments " +"optionnels » au moment d'afficher les messages d'aide. S'il existe un " +"meilleur regroupement conceptuel des arguments, les groupes adéquats peuvent " +"être créés avec la méthode :meth:`add_argument_group` ::" -#: ../Doc/library/argparse.rst:1810 +#: library/argparse.rst:1814 msgid "" "The :meth:`add_argument_group` method returns an argument group object which " "has an :meth:`~ArgumentParser.add_argument` method just like a regular :" @@ -1454,43 +2045,62 @@ msgid "" "accepts *title* and *description* arguments which can be used to customize " "this display::" msgstr "" +"La méthode :meth:`add_argument_group` renvoie un objet représentant le " +"groupe d'arguments. Cet objet possède une méthode :meth:`~ArgumentParser." +"add_argument` semblable à celle d':class:`ArgumentParser`. Quand un argument " +"est ajouté au groupe, l'analyseur le traite comme un argument normal, mais " +"il affiche le nouvel argument dans un groupe séparé dans les messages " +"d'aide. Afin de personnaliser l'affichage, la méthode :meth:" +"`add_argument_group` accepte les arguments ``title`` et ``description`` ::" -#: ../Doc/library/argparse.rst:1836 +#: library/argparse.rst:1840 msgid "" "Note that any arguments not in your user-defined groups will end up back in " "the usual \"positional arguments\" and \"optional arguments\" sections." msgstr "" +"Prenez note que tout argument qui n'est pas dans l'un de vos groupes est " +"affiché dans l'une des sections usuelles *positional arguments* et *optional " +"arguments*." -#: ../Doc/library/argparse.rst:1841 +#: library/argparse.rst:1845 msgid "Mutual exclusion" msgstr "Exclusion mutuelle" -#: ../Doc/library/argparse.rst:1845 +#: library/argparse.rst:1849 msgid "" "Create a mutually exclusive group. :mod:`argparse` will make sure that only " "one of the arguments in the mutually exclusive group was present on the " "command line::" msgstr "" +"Crée un groupe mutuellement exclusif. Le module :mod:`argparse` vérifie " +"qu'au plus un des arguments du groupe mutuellement exclusif est présent sur " +"la ligne de commande ::" -#: ../Doc/library/argparse.rst:1861 +#: library/argparse.rst:1865 msgid "" "The :meth:`add_mutually_exclusive_group` method also accepts a *required* " "argument, to indicate that at least one of the mutually exclusive arguments " "is required::" msgstr "" +"La méthode :meth:`add_mutually_exclusive_group` accepte aussi l'argument " +"``required`` pour indiquer qu'au moins un des arguments mutuellement " +"exclusifs est nécessaire ::" -#: ../Doc/library/argparse.rst:1873 +#: library/argparse.rst:1877 msgid "" "Note that currently mutually exclusive argument groups do not support the " "*title* and *description* arguments of :meth:`~ArgumentParser." "add_argument_group`." msgstr "" +"Prenez note que présentement les groupes d'arguments mutuellement exclusifs " +"n'acceptent pas les arguments ``title`` et ``description`` d':meth:" +"`~ArgumentParser.add_argument_group`." -#: ../Doc/library/argparse.rst:1879 +#: library/argparse.rst:1883 msgid "Parser defaults" msgstr "Valeurs par défaut de l'analyseur" -#: ../Doc/library/argparse.rst:1883 +#: library/argparse.rst:1887 msgid "" "Most of the time, the attributes of the object returned by :meth:" "`parse_args` will be fully determined by inspecting the command-line " @@ -1498,73 +2108,102 @@ msgid "" "additional attributes that are determined without any inspection of the " "command line to be added::" msgstr "" +"Dans la majorité des cas, les attributs de l'objet renvoyé par :meth:" +"`parse_args` sont entièrement définis par l'inspection des arguments de la " +"ligne de commande et par les actions des arguments. La méthode :meth:" +"`set_defaults` permet l'ajout d'attributs additionnels qui sont définis sans " +"nécessiter l'inspection de la ligne de commande ::" -#: ../Doc/library/argparse.rst:1895 +#: library/argparse.rst:1899 msgid "" "Note that parser-level defaults always override argument-level defaults::" msgstr "" +"Prenez note que les valeurs par défaut au niveau de l'analyseur ont " +"précédence sur les valeurs par défaut au niveau de l'argument ::" -#: ../Doc/library/argparse.rst:1903 +#: library/argparse.rst:1907 msgid "" "Parser-level defaults can be particularly useful when working with multiple " "parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " "example of this type." msgstr "" +"Les valeurs par défaut au niveau de l'analyseur sont particulièrement utiles " +"quand on travaille avec plusieurs analyseurs. Voir la méthode :meth:" +"`~ArgumentParser.add_subparsers` pour un exemple de cette utilisation." -#: ../Doc/library/argparse.rst:1909 +#: library/argparse.rst:1913 msgid "" "Get the default value for a namespace attribute, as set by either :meth:" "`~ArgumentParser.add_argument` or by :meth:`~ArgumentParser.set_defaults`::" msgstr "" +"Renvoie la valeur par défaut d'un attribut de l'objet ``Namespace`` tel " +"qu'il a été défini soit par :meth:`~ArgumentParser.add_argument` ou par :" +"meth:`~ArgumentParser.set_defaults` ::" -#: ../Doc/library/argparse.rst:1920 +#: library/argparse.rst:1924 msgid "Printing help" msgstr "Afficher l'aide" -#: ../Doc/library/argparse.rst:1922 +#: library/argparse.rst:1926 msgid "" "In most typical applications, :meth:`~ArgumentParser.parse_args` will take " "care of formatting and printing any usage or error messages. However, " "several formatting methods are available:" msgstr "" +"Pour la majorité des applications, :meth:`~ArgumentParser.parse_args` se " +"charge du formatage et de l'affichage des messages d'erreur et " +"d'utilisation. Plusieurs méthodes de formatage sont toutefois disponibles :" -#: ../Doc/library/argparse.rst:1928 +#: library/argparse.rst:1932 msgid "" "Print a brief description of how the :class:`ArgumentParser` should be " "invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " "assumed." msgstr "" +"Affiche une brève description sur la façon d'invoquer l':class:" +"`ArgumentParser` depuis la ligne de commande. Si ``file`` est ``None``, " +"utilise :data:`sys.stdout`." -#: ../Doc/library/argparse.rst:1934 +#: library/argparse.rst:1938 msgid "" "Print a help message, including the program usage and information about the " "arguments registered with the :class:`ArgumentParser`. If *file* is " "``None``, :data:`sys.stdout` is assumed." msgstr "" +"Affiche un message d'aide qui inclut l'utilisation du programme et " +"l'information sur les arguments répertoriés dans l':class:`ArgumentParser`. " +"Si ``file`` est ``None``, utilise :data:`sys.stdout`." -#: ../Doc/library/argparse.rst:1938 +#: library/argparse.rst:1942 msgid "" "There are also variants of these methods that simply return a string instead " "of printing it:" msgstr "" +"Des variantes de ces méthodes sont fournies pour renvoyer la chaîne plutôt " +"que de l'afficher :" -#: ../Doc/library/argparse.rst:1943 +#: library/argparse.rst:1947 msgid "" "Return a string containing a brief description of how the :class:" "`ArgumentParser` should be invoked on the command line." msgstr "" +"Renvoie une chaîne contenant une brève description sur la façon d'invoquer " +"l':class:`ArgumentParser` depuis la ligne de commande." -#: ../Doc/library/argparse.rst:1948 +#: library/argparse.rst:1952 msgid "" "Return a string containing a help message, including the program usage and " "information about the arguments registered with the :class:`ArgumentParser`." msgstr "" +"Renvoie une chaîne représentant un message d'aide qui inclut des " +"informations sur l'utilisation du programme et sur les arguments définis " +"dans l':class:`ArgumentParser`." -#: ../Doc/library/argparse.rst:1953 +#: library/argparse.rst:1957 msgid "Partial parsing" msgstr "*Parsing* partiel" -#: ../Doc/library/argparse.rst:1957 +#: library/argparse.rst:1961 msgid "" "Sometimes a script may only parse a few of the command-line arguments, " "passing the remaining arguments on to another script or program. In these " @@ -1574,98 +2213,145 @@ msgid "" "a two item tuple containing the populated namespace and the list of " "remaining argument strings." msgstr "" +"Parfois, un script n'analyse que de quelques-uns des arguments de la ligne " +"de commande avant de passer les arguments non-traités à un autre script ou " +"un autre programme. La méthode :meth:`~ArgumentParser.parse_known_args` est " +"utile dans ces cas. Elle fonctionne similairement à :meth:`~ArgumentParser." +"parse_args`, mais elle ne lève pas d'erreur quand des arguments non-reconnus " +"sont présents. Au lieu, elle renvoie une paire de valeurs : l'objet " +"``Namespace`` rempli et la liste des arguments non-traités." -#: ../Doc/library/argparse.rst:1973 +#: library/argparse.rst:1977 msgid "" ":ref:`Prefix matching ` rules apply to :meth:" "`parse_known_args`. The parser may consume an option even if it's just a " "prefix of one of its known options, instead of leaving it in the remaining " "arguments list." msgstr "" +"Les règles d':ref:`acceptation des abréviations ` sont " +"applicables à :meth:`parse_known_args`. L'analyseur peut ainsi capturer une " +"option même si elle n'est que le préfixe d'une option reconnue plutôt que de " +"la laisser dans la liste des arguments non-traités." -#: ../Doc/library/argparse.rst:1980 +#: library/argparse.rst:1984 msgid "Customizing file parsing" msgstr "Personnaliser le *parsing* de fichiers" -#: ../Doc/library/argparse.rst:1984 +#: library/argparse.rst:1988 msgid "" "Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " "argument to the :class:`ArgumentParser` constructor) are read one argument " "per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " "reading." msgstr "" +"Les arguments qui proviennent d'un fichier sont lus un par ligne. La " +"méthode :meth:`convert_arg_line_to_args` peut être surchargée pour accomplir " +"un traitement plus élaboré. Voir aussi l'argument nommé " +"``fromfile_prefix_chars`` du constructeur d':class:`ArgumentParser`." -#: ../Doc/library/argparse.rst:1989 +#: library/argparse.rst:1993 msgid "" "This method takes a single argument *arg_line* which is a string read from " "the argument file. It returns a list of arguments parsed from this string. " "The method is called once per line read from the argument file, in order." msgstr "" +"La méthode ``convert_arg_line_to_args`` accepte un seul argument, " +"``arg_line``, qui est une chaîne lue dans le fichier d'arguments. Elle " +"renvoie une liste d'arguments analysés dans cette chaîne. La méthode est " +"appelée une fois pour chaque ligne lue du fichier d'arguments. L'ordre est " +"préservé." -#: ../Doc/library/argparse.rst:1993 +#: library/argparse.rst:1997 msgid "" "A useful override of this method is one that treats each space-separated " "word as an argument. The following example demonstrates how to do this::" msgstr "" +"Une surcharge utile de cette méthode est de permettre à chaque mot délimité " +"par des espaces d'être traité comme un argument. L'exemple suivant illustre " +"comment réaliser ceci ::" -#: ../Doc/library/argparse.rst:2002 +#: library/argparse.rst:2006 msgid "Exiting methods" -msgstr "" +msgstr "Méthodes d'interruptions" -#: ../Doc/library/argparse.rst:2006 +#: library/argparse.rst:2010 msgid "" "This method terminates the program, exiting with the specified *status* and, " "if given, it prints a *message* before that. The user can override this " "method to handle these steps differently::" msgstr "" +"Cette méthode interrompt l'exécution du programme et renvoie ``status`` " +"comme valeur de retour du processus. Si ``message`` est fourni, la chaîne " +"est affichée avant la fin de l'exécution. Vous pouvez surcharger cette " +"méthode pour traiter ces étapes différemment ::" -#: ../Doc/library/argparse.rst:2018 +#: library/argparse.rst:2022 msgid "" "This method prints a usage message including the *message* to the standard " "error and terminates the program with a status code of 2." msgstr "" +"Cette méthode affiche un message d'utilisation qui inclut la chaîne " +"``message`` sur la sortie d'erreur standard puis termine l'exécution avec le " +"code de fin d'exécution 2." -#: ../Doc/library/argparse.rst:2023 +#: library/argparse.rst:2027 msgid "Intermixed parsing" msgstr "Analyse entremêlée" -#: ../Doc/library/argparse.rst:2028 +#: library/argparse.rst:2032 msgid "" "A number of Unix commands allow the user to intermix optional arguments with " "positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " "and :meth:`~ArgumentParser.parse_known_intermixed_args` methods support this " "parsing style." msgstr "" +"De nombreuses commandes Unix permettent à l'utilisateur d'entremêler les " +"arguments optionnels et les arguments positionnels. Les méthodes :meth:" +"`~ArgumentParser.parse_intermixed_args` et :meth:`~ArgumentParser." +"parse_known_intermixed_args` permettent ce style d'analyse." -#: ../Doc/library/argparse.rst:2033 +#: library/argparse.rst:2037 msgid "" "These parsers do not support all the argparse features, and will raise " "exceptions if unsupported features are used. In particular, subparsers, " "``argparse.REMAINDER``, and mutually exclusive groups that include both " "optionals and positionals are not supported." msgstr "" +"Ces analyseurs n'offrent pas toutes les fonctionnalités d'``argparse`` et " +"ils lèvent une exception si une fonctionnalité non prise en charge est " +"utilisée. En particulier, les sous-analyseurs, ``argparse.REMAINDER`` et les " +"groupes mutuellement exclusifs qui contiennent à la fois des arguments " +"optionnels et des arguments positionnels ne sont pas pris en charge." -#: ../Doc/library/argparse.rst:2038 +#: library/argparse.rst:2042 msgid "" "The following example shows the difference between :meth:`~ArgumentParser." "parse_known_args` and :meth:`~ArgumentParser.parse_intermixed_args`: the " "former returns ``['2', '3']`` as unparsed arguments, while the latter " "collects all the positionals into ``rest``. ::" msgstr "" +"L'exemple suivant illustre la différence entre :meth:`~ArgumentParser." +"parse_known_args` et :meth:`~ArgumentParser.parse_intermixed_args` : le " +"premier renvoie ``['2', '3']`` comme arguments non-traités alors que le " +"second capture tous les arguments positionnels dans ``rest`` ::" -#: ../Doc/library/argparse.rst:2053 +#: library/argparse.rst:2057 msgid "" ":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " "containing the populated namespace and the list of remaining argument " "strings. :meth:`~ArgumentParser.parse_intermixed_args` raises an error if " "there are any remaining unparsed argument strings." msgstr "" +":meth:`~ArgumentParser.parse_known_intermixed_args` renvoie une paire de " +"valeurs : l'objet ``Namespace`` rempli et une liste de chaînes d'arguments " +"non-traités. :meth:`~ArgumentParser.parse_intermixed_args` lève une erreur " +"s'il reste des chaînes d'arguments non-traités." -#: ../Doc/library/argparse.rst:2063 +#: library/argparse.rst:2067 msgid "Upgrading optparse code" msgstr "Mettre à jour du code ``optparse``" -#: ../Doc/library/argparse.rst:2065 +#: library/argparse.rst:2069 msgid "" "Originally, the :mod:`argparse` module had attempted to maintain " "compatibility with :mod:`optparse`. However, :mod:`optparse` was difficult " @@ -1675,90 +2361,125 @@ msgid "" "patched, it no longer seemed practical to try to maintain the backwards " "compatibility." msgstr "" +"Initialement, le module :mod:`argparse` tentait de rester compatible avec :" +"mod:`optparse`. Hélas, il était difficile de faire des améliorations à :mod:" +"`optparse` de façon transparente, en particulier pour les changements requis " +"pour gérer les nouveaux spécificateurs de ``nargs=`` et les messages " +"d'utilisation améliorés. Après avoir porté ou surchargé tout le code d':mod:" +"`optparse`, la rétro-compatibilité pouvait difficilement être conservée." -#: ../Doc/library/argparse.rst:2072 +#: library/argparse.rst:2076 msgid "" "The :mod:`argparse` module improves on the standard library :mod:`optparse` " "module in a number of ways including:" msgstr "" +"Le module :mod:`argparse` fournit plusieurs améliorations par rapport au " +"module :mod:`optparse` de la bibliothèque standard :" -#: ../Doc/library/argparse.rst:2075 +#: library/argparse.rst:2079 msgid "Handling positional arguments." -msgstr "Gérer les arguments positionnels." +msgstr "Gère les arguments positionnels." -#: ../Doc/library/argparse.rst:2076 +#: library/argparse.rst:2080 msgid "Supporting sub-commands." -msgstr "Gérer les sous commandes." +msgstr "Prise en charge des sous commandes." -#: ../Doc/library/argparse.rst:2077 +#: library/argparse.rst:2081 msgid "Allowing alternative option prefixes like ``+`` and ``/``." msgstr "" +"Permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option." -#: ../Doc/library/argparse.rst:2078 +#: library/argparse.rst:2082 msgid "Handling zero-or-more and one-or-more style arguments." -msgstr "" +msgstr "Prend en charge la répétition de valeurs (zéro ou plus, un ou plus)." -#: ../Doc/library/argparse.rst:2079 +#: library/argparse.rst:2083 msgid "Producing more informative usage messages." -msgstr "Fournir des message d'aide plus complets." +msgstr "Fournit des messages d'aide plus complets." -#: ../Doc/library/argparse.rst:2080 +#: library/argparse.rst:2084 msgid "Providing a much simpler interface for custom ``type`` and ``action``." msgstr "" +"Fournit une interface plus simple pour les types et actions personnalisés" -#: ../Doc/library/argparse.rst:2082 +#: library/argparse.rst:2086 msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" -msgstr "" +msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" -#: ../Doc/library/argparse.rst:2084 +#: library/argparse.rst:2088 msgid "" "Replace all :meth:`optparse.OptionParser.add_option` calls with :meth:" "`ArgumentParser.add_argument` calls." msgstr "" +"Remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par des " +"appels à :meth:`ArgumentParser.add_argument`." -#: ../Doc/library/argparse.rst:2087 +#: library/argparse.rst:2091 msgid "" "Replace ``(options, args) = parser.parse_args()`` with ``args = parser." "parse_args()`` and add additional :meth:`ArgumentParser.add_argument` calls " "for the positional arguments. Keep in mind that what was previously called " "``options``, now in the :mod:`argparse` context is called ``args``." msgstr "" +"Remplacer ``(options, args) = parser.parse_args()`` par ``args = parser." +"parse_args()`` et ajouter des appels à :meth:`ArgumentParser.add_argument` " +"pour les arguments positionnels. Prenez note que les valeurs précédemment " +"appelées ``options`` sont appelées ``args`` dans le contexte d':mod:" +"`argparse`." -#: ../Doc/library/argparse.rst:2092 +#: library/argparse.rst:2096 msgid "" "Replace :meth:`optparse.OptionParser.disable_interspersed_args` by using :" "meth:`~ArgumentParser.parse_intermixed_args` instead of :meth:" "`~ArgumentParser.parse_args`." msgstr "" +"Remplacer :meth:`optparse.OptionParser.disable_interspersed_args` en " +"appelant :meth:`~ArgumentParser.parse_intermixed_args` plutôt que :meth:" +"`~ArgumentParser.parse_args`." -#: ../Doc/library/argparse.rst:2096 +#: library/argparse.rst:2100 msgid "" "Replace callback actions and the ``callback_*`` keyword arguments with " "``type`` or ``action`` arguments." msgstr "" +"Remplacer les actions de rappel (*callback actions* en anglais) et les " +"arguments nommés ``callback_*`` par des arguments ``type`` et ``actions``." -#: ../Doc/library/argparse.rst:2099 +#: library/argparse.rst:2103 msgid "" "Replace string names for ``type`` keyword arguments with the corresponding " "type objects (e.g. int, float, complex, etc)." msgstr "" +"Remplacer les chaînes représentant le nom des types pour l'argument nommé " +"``type`` par les objets types correspondants (par exemple : ``int``, " +"``float``, ``complex``, etc)." -#: ../Doc/library/argparse.rst:2102 +#: library/argparse.rst:2106 msgid "" "Replace :class:`optparse.Values` with :class:`Namespace` and :exc:`optparse." "OptionError` and :exc:`optparse.OptionValueError` with :exc:`ArgumentError`." msgstr "" +"Remplacer :class:`optparse.Values` par :class:`Namespace` ; et :exc:" +"`optparse.OptionError` et :exc:`optparse.OptionValueError` par :exc:" +"`ArgumentError`." -#: ../Doc/library/argparse.rst:2106 +#: library/argparse.rst:2110 msgid "" "Replace strings with implicit arguments such as ``%default`` or ``%prog`` " "with the standard Python syntax to use dictionaries to format strings, that " "is, ``%(default)s`` and ``%(prog)s``." msgstr "" +"Remplacer les chaînes avec des arguments de formatage implicite (tels que " +"``%default`` ou ``%prog``) par la syntaxe standard de Python pour " +"l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" +"dire ``%(default)s`` et ``%(prog)s``)." -#: ../Doc/library/argparse.rst:2110 +#: library/argparse.rst:2114 msgid "" "Replace the OptionParser constructor ``version`` argument with a call to " "``parser.add_argument('--version', action='version', version='')``." msgstr "" +"Remplacer l'argument ``version`` du constructeur d'``OptionParser`` par un " +"appel à ``parser.add_argument('--version', action='version', version='')``." diff --git a/library/array.po b/library/array.po index b97e39da27..777ccb9dfc 100644 --- a/library/array.po +++ b/library/array.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-10-06 15:31+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-10-31 12:47+0100\n" +"Last-Translator: Cléo Buck \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.1.1\n" +"X-Generator: Poedit 2.0.6\n" -#: ../Doc/library/array.rst:2 +#: library/array.rst:2 msgid ":mod:`array` --- Efficient arrays of numeric values" msgstr ":mod:`array` — Tableaux efficaces de valeurs numériques" -#: ../Doc/library/array.rst:11 +#: library/array.rst:11 msgid "" "This module defines an object type which can compactly represent an array of " "basic values: characters, integers, floating point numbers. Arrays are " @@ -36,171 +36,164 @@ msgstr "" "utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous " "pour la définition des types :" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Type code" msgstr "Code d'indication du type" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "C Type" msgstr "Type C" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Python Type" msgstr "Type Python" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Minimum size in bytes" msgstr "Taille minimum en octets" -#: ../Doc/library/array.rst:19 +#: library/array.rst:19 msgid "Notes" msgstr "Notes" -#: ../Doc/library/array.rst:21 +#: library/array.rst:21 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/array.rst:21 +#: library/array.rst:21 msgid "signed char" msgstr "``signed char``" -#: ../Doc/library/array.rst:21 ../Doc/library/array.rst:23 -#: ../Doc/library/array.rst:27 ../Doc/library/array.rst:29 -#: ../Doc/library/array.rst:31 ../Doc/library/array.rst:33 -#: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 -#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 +#: library/array.rst:23 library/array.rst:29 library/array.rst:33 +#: library/array.rst:37 library/array.rst:41 msgid "int" msgstr "*int*" -#: ../Doc/library/array.rst:21 ../Doc/library/array.rst:23 +#: library/array.rst:23 msgid "1" msgstr "1" -#: ../Doc/library/array.rst:23 +#: library/array.rst:23 msgid "``'B'``" msgstr "``'B'``" -#: ../Doc/library/array.rst:23 +#: library/array.rst:23 msgid "unsigned char" msgstr "``unsigned char``" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "``'u'``" msgstr "``'u'``" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "Py_UNICODE" msgstr "Py_UNICODE" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "Unicode character" msgstr "Caractère Unicode" -#: ../Doc/library/array.rst:25 ../Doc/library/array.rst:27 -#: ../Doc/library/array.rst:29 ../Doc/library/array.rst:31 -#: ../Doc/library/array.rst:33 +#: library/array.rst:27 library/array.rst:31 library/array.rst:33 msgid "2" msgstr "2" -#: ../Doc/library/array.rst:25 +#: library/array.rst:25 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/array.rst:27 +#: library/array.rst:27 msgid "``'h'``" msgstr "``'h'``" -#: ../Doc/library/array.rst:27 +#: library/array.rst:27 msgid "signed short" msgstr "``signed short``" -#: ../Doc/library/array.rst:29 +#: library/array.rst:29 msgid "``'H'``" msgstr "``'H'``" -#: ../Doc/library/array.rst:29 +#: library/array.rst:29 msgid "unsigned short" msgstr "``unsigned short``" -#: ../Doc/library/array.rst:31 +#: library/array.rst:31 msgid "``'i'``" msgstr "``'i'``" -#: ../Doc/library/array.rst:31 +#: library/array.rst:31 msgid "signed int" msgstr "``signed int``" -#: ../Doc/library/array.rst:33 +#: library/array.rst:33 msgid "``'I'``" msgstr "``'I'``" -#: ../Doc/library/array.rst:33 +#: library/array.rst:33 msgid "unsigned int" msgstr "``unsigned int``" -#: ../Doc/library/array.rst:35 +#: library/array.rst:35 msgid "``'l'``" msgstr "``'l'``" -#: ../Doc/library/array.rst:35 +#: library/array.rst:35 msgid "signed long" msgstr "``signed long``" -#: ../Doc/library/array.rst:35 ../Doc/library/array.rst:37 -#: ../Doc/library/array.rst:43 +#: library/array.rst:37 library/array.rst:43 msgid "4" msgstr "4" -#: ../Doc/library/array.rst:37 +#: library/array.rst:37 msgid "``'L'``" msgstr "``'L'``" -#: ../Doc/library/array.rst:37 +#: library/array.rst:37 msgid "unsigned long" msgstr "``unsigned long``" -#: ../Doc/library/array.rst:39 +#: library/array.rst:39 msgid "``'q'``" msgstr "``'q'``" -#: ../Doc/library/array.rst:39 +#: library/array.rst:39 msgid "signed long long" msgstr "``signed long long``" -#: ../Doc/library/array.rst:39 ../Doc/library/array.rst:41 -#: ../Doc/library/array.rst:45 +#: library/array.rst:41 library/array.rst:45 msgid "8" msgstr "8" -#: ../Doc/library/array.rst:41 +#: library/array.rst:41 msgid "``'Q'``" msgstr "``'Q'``" -#: ../Doc/library/array.rst:41 +#: library/array.rst:41 msgid "unsigned long long" msgstr "``unsigned long long``" -#: ../Doc/library/array.rst:43 +#: library/array.rst:43 msgid "``'f'``" msgstr "``'f'``" -#: ../Doc/library/array.rst:43 ../Doc/library/array.rst:45 +#: library/array.rst:45 msgid "float" msgstr "*float*" -#: ../Doc/library/array.rst:45 +#: library/array.rst:45 msgid "``'d'``" msgstr "``'d'``" -#: ../Doc/library/array.rst:45 +#: library/array.rst:45 msgid "double" msgstr "double" -#: ../Doc/library/array.rst:48 +#: library/array.rst:48 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/array.rst:51 +#: library/array.rst:51 msgid "" "The ``'u'`` type code corresponds to Python's obsolete unicode character (:c:" "type:`Py_UNICODE` which is :c:type:`wchar_t`). Depending on the platform, it " @@ -210,13 +203,13 @@ msgstr "" "Unicode (:c:type:`Py_UNICODE` de type :c:type:`wchar_t`). Selon la " "plateforme, il peut être 16 bits ou 32 bits." -#: ../Doc/library/array.rst:55 +#: library/array.rst:55 msgid "" "``'u'`` will be removed together with the rest of the :c:type:`Py_UNICODE` " "API." msgstr "``'u'`` sera supprimé avec le reste de l'API :c:type:`Py_UNICODE`." -#: ../Doc/library/array.rst:60 +#: library/array.rst:60 msgid "" "The actual representation of values is determined by the machine " "architecture (strictly speaking, by the C implementation). The actual size " @@ -226,11 +219,11 @@ msgstr "" "machine (à proprement parler, par l'implémentation C). La taille réelle est " "accessible via l'attribut :attr:`itemsize`." -#: ../Doc/library/array.rst:64 +#: library/array.rst:64 msgid "The module defines the following type:" msgstr "Le module définit le type suivant :" -#: ../Doc/library/array.rst:69 +#: library/array.rst:69 msgid "" "A new array whose items are restricted by *typecode*, and initialized from " "the optional *initializer* value, which must be a list, a :term:`bytes-like " @@ -241,7 +234,7 @@ msgstr "" "liste, un :term:`bytes-like object`, ou un itérable sur des éléments du type " "approprié." -#: ../Doc/library/array.rst:74 +#: library/array.rst:74 msgid "" "If given a list or string, the initializer is passed to the new array's :" "meth:`fromlist`, :meth:`frombytes`, or :meth:`fromunicode` method (see " @@ -254,17 +247,19 @@ msgstr "" "initiaux du tableau. Si c'est un itérable, il est passé à la méthode :meth:" "`extend`." -#: ../Doc/library/array.rst:79 +#: library/array.rst:79 msgid "" "Raises an :ref:`auditing event ` ``array.__new__`` with arguments " "``typecode``, ``initializer``." msgstr "" +"Lève un :ref:`événement d'audit ` ``array.__new__`` avec les " +"arguments ``typecode``, ``initializer``." -#: ../Doc/library/array.rst:83 +#: library/array.rst:83 msgid "A string with all available type codes." msgstr "Une chaîne avec tous les codes de types disponibles." -#: ../Doc/library/array.rst:85 +#: library/array.rst:85 msgid "" "Array objects support the ordinary sequence operations of indexing, slicing, " "concatenation, and multiplication. When using slice assignment, the " @@ -280,27 +275,27 @@ msgstr "" "tableau implémentent également l'interface tampon, et peuvent être utilisés " "partout où :term:`bytes-like objects ` sont supportés." -#: ../Doc/library/array.rst:91 +#: library/array.rst:91 msgid "The following data items and methods are also supported:" msgstr "" "Les éléments de données et méthodes suivants sont également supportés :" -#: ../Doc/library/array.rst:95 +#: library/array.rst:95 msgid "The typecode character used to create the array." msgstr "" "Le code (de type Python caractère) utilisé pour spécifier le type des " "éléments du tableau." -#: ../Doc/library/array.rst:100 +#: library/array.rst:100 msgid "The length in bytes of one array item in the internal representation." msgstr "" "La longueur en octets d'un élément du tableau dans la représentation interne." -#: ../Doc/library/array.rst:105 +#: library/array.rst:105 msgid "Append a new item with value *x* to the end of the array." msgstr "Ajoute un nouvel élément avec la valeur *x* à la fin du tableau." -#: ../Doc/library/array.rst:110 +#: library/array.rst:110 msgid "" "Return a tuple ``(address, length)`` giving the current memory address and " "the length in elements of the buffer used to hold array's contents. The " @@ -321,7 +316,7 @@ msgstr "" "tableau existe et qu'aucune opération qui modifie sa taille ne lui est " "appliquée." -#: ../Doc/library/array.rst:120 +#: library/array.rst:120 msgid "" "When using array objects from code written in C or C++ (the only way to " "effectively make use of this information), it makes more sense to use the " @@ -336,7 +331,7 @@ msgstr "" "devrait être évitée dans un nouveau code. L'interface tampon est documentée " "dans :ref:`bufferobjects`." -#: ../Doc/library/array.rst:129 +#: library/array.rst:129 msgid "" "\"Byteswap\" all items of the array. This is only supported for values " "which are 1, 2, 4, or 8 bytes in size; for other types of values, :exc:" @@ -348,11 +343,11 @@ msgstr "" "`RuntimeError` est levée. Il est utile lors de la lecture de données à " "partir d'un fichier écrit sur une machine avec un ordre d'octets différent." -#: ../Doc/library/array.rst:137 +#: library/array.rst:137 msgid "Return the number of occurrences of *x* in the array." msgstr "Renvoi le nombre d'occurrences de *x* dans le tableau." -#: ../Doc/library/array.rst:142 +#: library/array.rst:142 msgid "" "Append items from *iterable* to the end of the array. If *iterable* is " "another array, it must have *exactly* the same type code; if not, :exc:" @@ -365,7 +360,7 @@ msgstr "" "il doit être itérable et ces éléments doivent être du bon type pour être " "ajoutés dans le tableau." -#: ../Doc/library/array.rst:150 +#: library/array.rst:150 msgid "" "Appends items from the string, interpreting the string as an array of " "machine values (as if it had been read from a file using the :meth:" @@ -375,18 +370,18 @@ msgstr "" "valeurs machine (comme si elle avait été lue depuis le fichier en utilisant " "la méthode :meth:`from file`)." -#: ../Doc/library/array.rst:153 +#: library/array.rst:153 msgid ":meth:`fromstring` is renamed to :meth:`frombytes` for clarity." msgstr "" ":meth:`fromstring` est renommée en :meth:`frombytes` pour plus de lisibilité." -#: ../Doc/library/array.rst:159 +#: library/array.rst:159 +#, fuzzy msgid "" "Read *n* items (as machine values) from the :term:`file object` *f* and " "append them to the end of the array. If less than *n* items are available, :" "exc:`EOFError` is raised, but the items that were available are still " -"inserted into the array. *f* must be a real built-in file object; something " -"else with a :meth:`read` method won't do." +"inserted into the array." msgstr "" "Lit *n* éléments (en tant que valeurs machine) du :term:`file object` *f* et " "les ajouter à la fin du tableau. Si moins de *n* éléments sont disponibles, :" @@ -394,7 +389,7 @@ msgstr "" "tout de même insérés dans le tableau. *f* doit être un objet fichier natif ; " "quelque chose d'autre avec une méthode :meth:`read` ne suffit pas." -#: ../Doc/library/array.rst:168 +#: library/array.rst:167 msgid "" "Append items from the list. This is equivalent to ``for x in list: a." "append(x)`` except that if there is a type error, the array is unchanged." @@ -402,11 +397,11 @@ msgstr "" "Ajoute les éléments de la liste. C'est l'équivalent de ``for x in list: a." "append(x)`` sauf que s'il y a une erreur de type, le tableau est inchangé." -#: ../Doc/library/array.rst:174 +#: library/array.rst:173 msgid "Deprecated alias for :meth:`frombytes`." msgstr "Alias obsolète de :meth:`frombytes`." -#: ../Doc/library/array.rst:179 +#: library/array.rst:180 msgid "" "Extends this array with data from the given unicode string. The array must " "be a type ``'u'`` array; otherwise a :exc:`ValueError` is raised. Use " @@ -418,7 +413,7 @@ msgstr "" "``array.frombytes(unicodestring.encode(enc))`` pour ajouter des données " "Unicode à un tableau d'un autre type." -#: ../Doc/library/array.rst:187 +#: library/array.rst:188 msgid "" "Return the smallest *i* such that *i* is the index of the first occurrence " "of *x* in the array." @@ -426,7 +421,7 @@ msgstr "" "Renvoie le plus petit *i* tel que *i* est l'index de la première occurrence " "de *x* dans le tableau." -#: ../Doc/library/array.rst:193 +#: library/array.rst:194 msgid "" "Insert a new item with value *x* in the array before position *i*. Negative " "values are treated as being relative to the end of the array." @@ -435,7 +430,7 @@ msgstr "" "position *i*. Les valeurs négatives sont traitées relativement à la fin du " "tableau." -#: ../Doc/library/array.rst:199 +#: library/array.rst:200 msgid "" "Removes the item with the index *i* from the array and returns it. The " "optional argument defaults to ``-1``, so that by default the last item is " @@ -445,15 +440,15 @@ msgstr "" "optionnel par défaut est à ``-1``, de sorte que par défaut le dernier " "élément est supprimé et renvoyé." -#: ../Doc/library/array.rst:206 +#: library/array.rst:207 msgid "Remove the first occurrence of *x* from the array." msgstr "Supprime la première occurrence de *x* du tableau." -#: ../Doc/library/array.rst:211 +#: library/array.rst:212 msgid "Reverse the order of the items in the array." msgstr "Inverse l'ordre des éléments du tableau." -#: ../Doc/library/array.rst:216 +#: library/array.rst:217 msgid "" "Convert the array to an array of machine values and return the bytes " "representation (the same sequence of bytes that would be written to a file " @@ -463,26 +458,26 @@ msgstr "" "représentation en octets (la même séquence d'octets qui serait écrite par la " "méthode :meth:`tofile`)." -#: ../Doc/library/array.rst:220 +#: library/array.rst:221 msgid ":meth:`tostring` is renamed to :meth:`tobytes` for clarity." msgstr "" ":meth:`tostring` est renommé en :meth:`tobytes` pour plus de lisibilité." -#: ../Doc/library/array.rst:226 +#: library/array.rst:227 msgid "Write all items (as machine values) to the :term:`file object` *f*." msgstr "" "Écrit tous les éléments (en tant que valeurs machine) du :term:`file object` " "*f*." -#: ../Doc/library/array.rst:231 +#: library/array.rst:232 msgid "Convert the array to an ordinary list with the same items." msgstr "Convertit le tableau en une liste ordinaire avec les mêmes éléments." -#: ../Doc/library/array.rst:236 +#: library/array.rst:237 msgid "Deprecated alias for :meth:`tobytes`." msgstr "Alias obsolète de :meth:`tobytes`." -#: ../Doc/library/array.rst:241 +#: library/array.rst:244 msgid "" "Convert the array to a unicode string. The array must be a type ``'u'`` " "array; otherwise a :exc:`ValueError` is raised. Use ``array.tobytes()." @@ -493,7 +488,7 @@ msgstr "" "tobytes().decode(enc)`` pour obtenir une chaîne Unicode depuis un tableau de " "tout autre type." -#: ../Doc/library/array.rst:246 +#: library/array.rst:249 msgid "" "When an array object is printed or converted to a string, it is represented " "as ``array(typecode, initializer)``. The *initializer* is omitted if the " @@ -511,19 +506,19 @@ msgstr "" "func:`eval`, tant que la classe :class:`~array.array` a été importée en " "utilisant ``from array import array``. Exemples ::" -#: ../Doc/library/array.rst:263 +#: library/array.rst:266 msgid "Module :mod:`struct`" msgstr "Module :mod:`struct`" -#: ../Doc/library/array.rst:263 +#: library/array.rst:266 msgid "Packing and unpacking of heterogeneous binary data." msgstr "Empaquetage et dépaquetage de données binaires hétérogènes." -#: ../Doc/library/array.rst:267 +#: library/array.rst:270 msgid "Module :mod:`xdrlib`" msgstr "Module :mod:`xdrlib`" -#: ../Doc/library/array.rst:266 +#: library/array.rst:269 msgid "" "Packing and unpacking of External Data Representation (XDR) data as used in " "some remote procedure call systems." @@ -532,11 +527,11 @@ msgstr "" "telles qu'elles sont utilisées dans certains systèmes d'appels de procédures " "à distance (ou RPC pour *remote procedure call* en anglais)." -#: ../Doc/library/array.rst:270 +#: library/array.rst:273 msgid "`The Numerical Python Documentation `_" -msgstr "`The Numerical Python Documentation `_" +msgstr "`La documentation de *Numerical Python* `" -#: ../Doc/library/array.rst:270 +#: library/array.rst:273 msgid "" "The Numeric Python extension (NumPy) defines another array type; see http://" "www.numpy.org/ for further information about Numerical Python." diff --git a/library/ast.po b/library/ast.po index fd8d5104f0..d521d22868 100644 --- a/library/ast.po +++ b/library/ast.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-09-11 07:42+0200\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/ast.rst:2 +#: library/ast.rst:2 msgid ":mod:`ast` --- Abstract Syntax Trees" msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits" -#: ../Doc/library/ast.rst:10 +#: library/ast.rst:10 msgid "**Source code:** :source:`Lib/ast.py`" msgstr "**Code source :** :source:`Lib/ast.py`" -#: ../Doc/library/ast.rst:14 +#: library/ast.rst:14 msgid "" "The :mod:`ast` module helps Python applications to process trees of the " "Python abstract syntax grammar. The abstract syntax itself might change " @@ -35,7 +35,7 @@ msgstr "" "même est susceptible d'être modifiée à chaque nouvelle version de Python; ce " "module permet de trouver à quoi la grammaire actuelle ressemble." -#: ../Doc/library/ast.rst:19 +#: library/ast.rst:19 msgid "" "An abstract syntax tree can be generated by passing :data:`ast." "PyCF_ONLY_AST` as a flag to the :func:`compile` built-in function, or using " @@ -51,11 +51,11 @@ msgstr "" "Un arbre syntaxique abstrait peut être compilé en code objet Python en " "utilisant la fonction native :func:`compile`." -#: ../Doc/library/ast.rst:27 +#: library/ast.rst:27 msgid "Node classes" msgstr "Les classes nœud" -#: ../Doc/library/ast.rst:31 +#: library/ast.rst:31 msgid "" "This is the base of all AST node classes. The actual node classes are " "derived from the :file:`Parser/Python.asdl` file, which is reproduced :ref:" @@ -67,7 +67,7 @@ msgstr "" "reproduit :ref:`ci-dessous `. Ils sont définis dans le " "module C :mod:`_ast` et ré-exportés dans le module :mod:`ast`." -#: ../Doc/library/ast.rst:36 +#: library/ast.rst:36 msgid "" "There is one class defined for each left-hand side symbol in the abstract " "grammar (for example, :class:`ast.stmt` or :class:`ast.expr`). In addition, " @@ -86,7 +86,7 @@ msgstr "" "*sums*), la partie gauche est abstraite : seules les instances des " "constructeurs spécifiques aux nœuds sont créés." -#: ../Doc/library/ast.rst:49 +#: library/ast.rst:49 msgid "" "Each concrete class has an attribute :attr:`_fields` which gives the names " "of all child nodes." @@ -94,7 +94,7 @@ msgstr "" "Chaque classe concrète possède un attribut :attr:`_fields` donnant les noms " "de tous les nœuds enfants." -#: ../Doc/library/ast.rst:52 +#: library/ast.rst:52 msgid "" "Each instance of a concrete class has one attribute for each child node, of " "the type as defined in the grammar. For example, :class:`ast.BinOp` " @@ -104,7 +104,7 @@ msgstr "" "enfant, du type défini par la grammaire. Par exemple, les instances :class:" "`ast.BinOp` possèdent un attribut :attr:`left` de type :class:`ast.expr`." -#: ../Doc/library/ast.rst:56 +#: library/ast.rst:56 msgid "" "If these attributes are marked as optional in the grammar (using a question " "mark), the value might be ``None``. If the attributes can have zero-or-more " @@ -119,7 +119,7 @@ msgstr "" "attributs possibles doivent être présents et avoir une valeur valide pour " "compiler un AST avec :func:`compile`." -#: ../Doc/library/ast.rst:67 +#: library/ast.rst:67 #, fuzzy msgid "" "Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses have :attr:" @@ -139,22 +139,26 @@ msgstr "" "nœud. Le décalage UTF-8 est enregistré parce que l'analyseur syntaxique " "utilise l'UTF-8 en interne." -#: ../Doc/library/ast.rst:75 +#: library/ast.rst:75 msgid "" "Note that the end positions are not required by the compiler and are " "therefore optional. The end offset is *after* the last symbol, for example " "one can get the source segment of a one-line expression node using " "``source_line[node.col_offset : node.end_col_offset]``." msgstr "" +"Les décalages *end…* ne sont pas obligatoires ni nécessaires au compilateur. " +"*end_col_offset* pointe *après* le dernier lexème. On peut donc obtenir la " +"partie du code source ayant donné lieu à une expression avec " +"``ligne_source[nœud.col_offset : nœud.end_col_offset]``." -#: ../Doc/library/ast.rst:80 +#: library/ast.rst:80 msgid "" "The constructor of a class :class:`ast.T` parses its arguments as follows:" msgstr "" "Le constructeur d'une classe :class:`ast.T` analyse ses arguments comme " "suit :" -#: ../Doc/library/ast.rst:82 +#: library/ast.rst:82 msgid "" "If there are positional arguments, there must be as many as there are items " "in :attr:`T._fields`; they will be assigned as attributes of these names." @@ -162,7 +166,7 @@ msgstr "" "S'il y a des arguments positionnels, il doit y avoir autant de termes dans :" "attr:`T._fields`; ils sont assignés comme attributs portant ces noms." -#: ../Doc/library/ast.rst:84 +#: library/ast.rst:84 msgid "" "If there are keyword arguments, they will set the attributes of the same " "names to the given values." @@ -170,39 +174,45 @@ msgstr "" "S'il y a des arguments nommés, ils définissent les attributs de mêmes noms " "avec les valeurs données." -#: ../Doc/library/ast.rst:87 +#: library/ast.rst:87 msgid "" "For example, to create and populate an :class:`ast.UnaryOp` node, you could " "use ::" msgstr "" "Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " -"utiliser ::" +"utiliser ::" -#: ../Doc/library/ast.rst:99 +#: library/ast.rst:99 msgid "or the more compact ::" -msgstr "ou, plus compact ::" +msgstr "ou, plus compact ::" -#: ../Doc/library/ast.rst:106 +#: library/ast.rst:106 +msgid "Class :class:`ast.Constant` is now used for all constants." +msgstr "" +"toutes les constantes sont désormais représentées par des instances de :" +"class:`ast.Constant`." + +#: library/ast.rst:110 msgid "" -"Class :class:`ast.Constant` is now used for all constants. Old classes :" -"class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`, :class:`ast." -"NameConstant` and :class:`ast.Ellipsis` are still available, but they will " -"be removed in future Python releases." +"Old classes :class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`, :class:" +"`ast.NameConstant` and :class:`ast.Ellipsis` are still available, but they " +"will be removed in future Python releases. In the meanwhile, instantiating " +"them will return an instance of a different class." msgstr "" -#: ../Doc/library/ast.rst:115 +#: library/ast.rst:119 msgid "Abstract Grammar" msgstr "Grammaire abstraite" -#: ../Doc/library/ast.rst:117 +#: library/ast.rst:121 msgid "The abstract grammar is currently defined as follows:" msgstr "La grammaire abstraite est actuellement définie comme suit :" -#: ../Doc/library/ast.rst:124 +#: library/ast.rst:128 msgid ":mod:`ast` Helpers" msgstr "Outils du module :mod:`ast`" -#: ../Doc/library/ast.rst:126 +#: library/ast.rst:130 msgid "" "Apart from the node classes, the :mod:`ast` module defines these utility " "functions and classes for traversing abstract syntax trees:" @@ -210,7 +220,7 @@ msgstr "" "À part la classe nœud, le module :mod:`ast` définit ces fonctions et classes " "utilitaires pour traverser les arbres syntaxiques abstraits :" -#: ../Doc/library/ast.rst:131 +#: library/ast.rst:135 msgid "" "Parse the source into an AST node. Equivalent to ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." @@ -218,7 +228,7 @@ msgstr "" "Analyse le code source en un nœud AST. Équivalent à ``compile(source, " "filename, mode, ast.PyCF_ONLY_AST)``." -#: ../Doc/library/ast.rst:134 +#: library/ast.rst:138 msgid "" "If ``type_comments=True`` is given, the parser is modified to check and " "return type comments as specified by :pep:`484` and :pep:`526`. This is " @@ -230,15 +240,25 @@ msgid "" "the ``type_ignores`` attribute of :class:`Module` (otherwise it is always an " "empty list)." msgstr "" +"Si *type_comments* est mis à ``True``, l'analyseur syntaxique reconnaît les " +"commentaires de type et les ajoute à l'arbre, comme décrit dans la :pep:" +"`484` et la :pep:`526`. Ceci revient à ajouter :data:`ast." +"PyCF_TYPE_COMMENTS` à l'argument *flags* de :func:`compile`. Une erreur de " +"syntaxe est levée si un commentaire de type est placé au mauvais endroit. " +"Les commentaires ``# type: ignore`` sont également détectés et leurs " +"positions dans la source sont placées dans l'attribut *type_ignores* du " +"nœud :class:`Module`. Sans cette option, les commentaires de type sont " +"ignorés tout comme les commentaires ordinaires, et l'attribut *type_comment* " +"des nœuds dont le type possède ce champ sera toujours mis à ``None``." -#: ../Doc/library/ast.rst:144 +#: library/ast.rst:148 msgid "" "In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to " "correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> " "List[str]``." msgstr "" -#: ../Doc/library/ast.rst:148 +#: library/ast.rst:152 msgid "" "Also, setting ``feature_version`` to a tuple ``(major, minor)`` will attempt " "to parse using that Python version's grammar. Currently ``major`` must equal " @@ -246,8 +266,14 @@ msgid "" "use of ``async`` and ``await`` as variable names. The lowest supported " "version is ``(3, 4)``; the highest is ``sys.version_info[0:2]``." msgstr "" +"Si *feature_version* est défini à une version de Python, sous la forme d'un " +"couple ``(version_majeure, version_mineure)``, l'analyseur tentera de lire " +"la source en se conformant à la syntaxe de cette version. Ainsi, avec " +"``feature_version=(3, 4)``, les noms ``async`` et ``await`` peuvent nommer " +"des variables. La version la plus ancienne prise en charge est actuellement " +"``(3, 4)`` ; la plus récente est ``sys.version_info[0:2]``." -#: ../Doc/library/ast.rst:156 ../Doc/library/ast.rst:177 +#: library/ast.rst:181 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." @@ -256,11 +282,13 @@ msgstr "" "suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " "la limitation de la profondeur de la pile d'appels." -#: ../Doc/library/ast.rst:160 +#: library/ast.rst:164 msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." msgstr "" +"ajout des paramètres *type_comments* et *feature_version* ainsi que de la " +"valeur ``'func_type'`` pour *mode*." -#: ../Doc/library/ast.rst:166 +#: library/ast.rst:170 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 " @@ -273,7 +301,7 @@ msgstr "" "Python suivants : chaînes de caractères, bytes, nombres, n-uplets, listes, " "dictionnaires, ensembles, booléens, et ``None``." -#: ../Doc/library/ast.rst:171 +#: library/ast.rst:175 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 " @@ -286,11 +314,11 @@ msgstr "" "d'évaluer des expressions complexes arbitraires, par exemple impliquant des " "opérateurs ou de l'indexation." -#: ../Doc/library/ast.rst:181 +#: library/ast.rst:185 msgid "Now allows bytes and set literals." msgstr "Accepte maintenant les littéraux suivants *bytes* et *sets*." -#: ../Doc/library/ast.rst:187 +#: library/ast.rst:191 msgid "" "Return the docstring of the given *node* (which must be a :class:" "`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, or :class:" @@ -303,24 +331,28 @@ msgstr "" "cette fonction nettoie l'indentation de la *docstring* avec :func:`inspect." "cleandoc`." -#: ../Doc/library/ast.rst:193 +#: library/ast.rst:197 msgid ":class:`AsyncFunctionDef` is now supported." msgstr ":class:`AsyncFunctionDef` est maintenant gérée" -#: ../Doc/library/ast.rst:199 +#: library/ast.rst:203 msgid "" "Get source code segment of the *source* that generated *node*. If some " "location information (:attr:`lineno`, :attr:`end_lineno`, :attr:" "`col_offset`, or :attr:`end_col_offset`) is missing, return ``None``." msgstr "" +"Donne la partie de *source* (le code source) qui a donné lieu à *node*. Si " +"l'un des attributs de localisation du nœud (:attr:`lineno`, :attr:" +"`end_lineno`, :attr:`col_offset` et :attr:`end_col_offset`) n'est pas " +"rempli, cette fonction renvoie ``None``." -#: ../Doc/library/ast.rst:203 +#: library/ast.rst:207 msgid "" "If *padded* is ``True``, the first line of a multi-line statement will be " "padded with spaces to match its original position." msgstr "" -#: ../Doc/library/ast.rst:211 +#: library/ast.rst:215 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 " @@ -335,29 +367,28 @@ msgstr "" "ils ne sont pas déjà définis, en les définissant comme les valeurs du nœud " "parent. Elle fonctionne récursivement en démarrant de *node*." -#: ../Doc/library/ast.rst:220 -#, fuzzy +#: library/ast.rst:224 msgid "" "Increment the line number and end line number of each node in the tree " "starting at *node* by *n*. This is useful to \"move code\" to a different " "location in a file." msgstr "" -"Incrémente de *n* le numéro de ligne de chaque nœud dans l'arbre en " -"commençant par le nœud *node*. C'est utile pour \"déplacer du code\" à un " -"endroit différent dans un fichier." +"Incrémente de *n* les numéros des lignes de début et ligne de fin de chaque " +"nœud dans l'arbre, en commençant par le nœud *node*. C'est utile pour " +"« déplacer du code » à un endroit différent dans un fichier." -#: ../Doc/library/ast.rst:227 -#, fuzzy +#: library/ast.rst:231 msgid "" "Copy source location (:attr:`lineno`, :attr:`col_offset`, :attr:" "`end_lineno`, and :attr:`end_col_offset`) from *old_node* to *new_node* if " "possible, and return *new_node*." msgstr "" -"Copie le code source (:attr:`lineno` et :attr:`col_offset`) de l'ancien nœud " -"*old_node* vers le nouveau nœud *new_node* si possible, et renvoie " +"Copie la position dans la source (attributs :attr:`lineno`, :attr:" +"`col_offset`, :attr:`end_lineno` et :attr:`end_col_offset`) de l'ancien nœud " +"*old_node* vers le nouveau nœud *new_node*, si possible, et renvoie " "*new_node*." -#: ../Doc/library/ast.rst:234 +#: library/ast.rst:238 msgid "" "Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " "that is present on *node*." @@ -365,7 +396,7 @@ msgstr "" "Produit un n-uplet de ``(fieldname, value)`` pour chaque champ de ``node." "_fields`` qui est présent dans *node*." -#: ../Doc/library/ast.rst:240 +#: library/ast.rst:244 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." @@ -374,7 +405,7 @@ msgstr "" "champs qui sont des nœuds et tous les éléments des champs qui sont des " "listes de nœuds." -#: ../Doc/library/ast.rst:246 +#: library/ast.rst:250 msgid "" "Recursively yield all descendant nodes in the tree starting at *node* " "(including *node* itself), in no specified order. This is useful if you " @@ -385,7 +416,7 @@ msgstr "" "lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au " "contexte." -#: ../Doc/library/ast.rst:253 +#: library/ast.rst:257 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 " @@ -396,7 +427,7 @@ msgstr "" "Cette fonction peut renvoyer une valeur qui est transmise par la méthode :" "meth:`visit`." -#: ../Doc/library/ast.rst:257 +#: library/ast.rst:261 msgid "" "This class is meant to be subclassed, with the subclass adding visitor " "methods." @@ -404,7 +435,7 @@ msgstr "" "Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite " "à la sous-classe." -#: ../Doc/library/ast.rst:262 +#: library/ast.rst:266 msgid "" "Visit a node. The default implementation calls the method called :samp:" "`self.visit_{classname}` where *classname* is the name of the node class, " @@ -414,12 +445,12 @@ msgstr "" "visit_{classname}` où *classname* représente le nom de la classe du nœud, " "ou :meth:`generic_visit` si cette méthode n'existe pas." -#: ../Doc/library/ast.rst:268 +#: library/ast.rst:272 msgid "This visitor calls :meth:`visit` on all children of the node." msgstr "" "Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud." -#: ../Doc/library/ast.rst:270 +#: library/ast.rst:274 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." @@ -428,7 +459,7 @@ msgstr "" "seront pas visités à moins que le visiteur n'appelle la méthode :meth:" "`generic_visit` ou ne les visite lui-même." -#: ../Doc/library/ast.rst:274 +#: library/ast.rst:278 msgid "" "Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " "during traversal. For this a special visitor exists (:class:" @@ -438,15 +469,20 @@ msgstr "" "changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial " "existe (:class:`NodeTransformer`) qui permet les modifications." -#: ../Doc/library/ast.rst:280 +#: library/ast.rst:284 msgid "" "Methods :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:" "`visit_NameConstant` and :meth:`visit_Ellipsis` are deprecated now and will " "not be called in future Python versions. Add the :meth:`visit_Constant` " "method to handle all constant nodes." msgstr "" +"les méthodes :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :" +"meth:`visit_NameConstant` et :meth:`visit_Ellipsis` sont devenues obsolètes " +"et cesseront d'être appelées dans une version ultérieure de Python. Écrivez " +"une méthode :meth:`visit_Constant` pour traiter tous les nœuds qui " +"représentent des valeurs constantes." -#: ../Doc/library/ast.rst:288 +#: library/ast.rst:292 msgid "" "A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " "allows modification of nodes." @@ -454,7 +490,7 @@ msgstr "" "Une sous-classe :class:`NodeVisitor` qui traverse l'arbre syntaxique " "abstrait et permet les modifications des nœuds." -#: ../Doc/library/ast.rst:291 +#: library/ast.rst:295 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 " @@ -469,7 +505,7 @@ msgstr "" "valeur de retour peut être le nœud original et dans ce cas, il n'y a pas de " "remplacement. " -#: ../Doc/library/ast.rst:297 +#: library/ast.rst:301 msgid "" "Here is an example transformer that rewrites all occurrences of name lookups " "(``foo``) to ``data['foo']``::" @@ -477,7 +513,7 @@ msgstr "" "Voici un exemple du *transformer* qui réécrit les occurrences du " "dictionnaire (``foo``) en ``data['foo']`` ::" -#: ../Doc/library/ast.rst:309 +#: library/ast.rst:313 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` " @@ -487,7 +523,7 @@ msgstr "" "enfants, vous devez transformer également ces nœuds enfant vous-même ou " "appeler d'abord la méthode :meth:`generic_visit` sur le nœud." -#: ../Doc/library/ast.rst:313 +#: library/ast.rst:317 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 " @@ -497,12 +533,23 @@ msgstr "" "s'applique à tous les nœuds instruction), le visiteur peut aussi renvoyer la " "liste des nœuds plutôt qu'un seul nœud." -#: ../Doc/library/ast.rst:317 +#: library/ast.rst:321 +msgid "" +"If :class:`NodeTransformer` introduces new nodes (that weren't part of " +"original tree) without giving them location information (such as :attr:" +"`lineno`), :func:`fix_missing_locations` should be called with the new sub-" +"tree to recalculate the location information::" +msgstr "" +"Si :class:`NodeTransformer` ajoute de nouveaux nœuds à l'original sans leur " +"donner les attributs de position dans la source (:attr:`lineno` et " +"consorts), il faut passer le nouvel arbre (ou la nouvelle partie de l'arbre) " +"à :func:`fix_missing_locations` pour calculer les positions manquantes :" + +#: library/ast.rst:329 msgid "Usually you use the transformer like this::" msgstr "Utilisation typique du *transformer* ::" -#: ../Doc/library/ast.rst:324 -#, fuzzy +#: library/ast.rst:336 msgid "" "Return a formatted dump of the tree in *node*. This is mainly useful for " "debugging purposes. If *annotate_fields* is true (by default), the returned " @@ -512,15 +559,17 @@ msgid "" "dumped by default. If this is wanted, *include_attributes* can be set to " "true." msgstr "" -"Renvoie un *dump* formaté de l'arbre dans *node*. C'est principalement utile " -"à des fins de débogage. La chaîne de caractères renvoyée présente les noms " -"et valeurs des champs. Cela rend le code impossible à évaluer, si l'on " -"souhaite évaluer ce code, l'option *annotate_fields* doit être définie comme " -"``False``. Les attributs comme les numéros de ligne et les décalages de " -"colonne ne sont pas récupérés par défaut. Si l'on souhaite les récupérer, " -"l'option *include_attributes* peut être définie comme ``True``." +"Renvoie une représentation sous forme de chaîne de caractères de l'arbre " +"contenu dans *node*. Ceci est principalement utile à des fins de débogage. " +"Par défaut, les champs sont passés comme paramètres nommés aux constructeurs " +"des classes d'arbre syntaxiques. Cependant, si *annotate_fields* est mis à " +"``False``, les valeurs sont passées, lorsque cela est possible, comme " +"arguments positionnels, rendant la représentation plus compacte. Les " +"attributs comme les numéros de lignes et positions sur les lignes sont " +"masqués par défaut, mais on peut les inclure en mettant *include_attributes* " +"à ``True``." -#: ../Doc/library/ast.rst:334 +#: library/ast.rst:346 msgid "" "`Green Tree Snakes `_, an external " "documentation resource, has good details on working with Python ASTs." @@ -528,3 +577,46 @@ msgstr "" "`Green Tree Snakes `_, une " "ressource documentaire externe, qui possède plus de détails pour travailler " "avec des ASTs Python." + +#: library/ast.rst:349 +msgid "" +"`ASTTokens `_ " +"annotates Python ASTs with the positions of tokens and text in the source " +"code that generated them. This is helpful for tools that make source code " +"transformations." +msgstr "" +"`ASTTokens `_ " +"annote les arbres syntaxiques Python avec les positions des lexèmes et les " +"extraits de code source à partir desquels ils sont produits. Ceci est utile " +"pour les outils qui transforment du code source." + +#: library/ast.rst:354 +msgid "" +"`leoAst.py `_ unifies the " +"token-based and parse-tree-based views of python programs by inserting two-" +"way links between tokens and ast nodes." +msgstr "" + +#: library/ast.rst:358 +msgid "" +"`LibCST `_ parses code as a Concrete Syntax " +"Tree that looks like an ast tree and keeps all formatting details. It's " +"useful for building automated refactoring (codemod) applications and linters." +msgstr "" +"`LibCST `_ produit à partir du code source " +"des arbres syntaxiques concrets, qui ressemblent à leurs homologues " +"abstraits et conservent tous les détails du formatage. Cette bibliothèque " +"est utile aux outils de réusinage et d'analyse de code." + +#: library/ast.rst:363 +msgid "" +"`Parso `_ is a Python parser that supports " +"error recovery and round-trip parsing for different Python versions (in " +"multiple Python versions). Parso is also able to list multiple syntax errors " +"in your python file." +msgstr "" +"`Parso `_ est un analyseur syntaxique de code " +"Python qui gère la récupération d'erreurs et la génération de code (de " +"l'arbre syntaxique vers le code source), le tout pour les grammaires de " +"différentes versions de Python et en utilisant différentes versions. Il sait " +"également donner plusieurs erreurs de syntaxe en une seule fois." diff --git a/library/asynchat.po b/library/asynchat.po index 3015094468..1030aa40df 100644 --- a/library/asynchat.po +++ b/library/asynchat.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-10-06 17:04+0200\n" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po index b741f53fc0..60bd18d052 100644 --- a/library/asyncio-api-index.po +++ b/library/asyncio-api-index.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -33,8 +33,9 @@ msgid "" msgstr "" #: ../Doc/library/asyncio-api-index.rst:21 +#, fuzzy msgid ":func:`run`" -msgstr "" +msgstr ":func:`round`" #: ../Doc/library/asyncio-api-index.rst:22 msgid "Create event loop, run a coroutine, close the loop." @@ -42,7 +43,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:24 msgid ":func:`create_task`" -msgstr "" +msgstr ":func:`create_task`" #: ../Doc/library/asyncio-api-index.rst:25 msgid "Start an asyncio Task." @@ -90,7 +91,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:42 msgid ":func:`current_task`" -msgstr "" +msgstr ":func:`current_task`" #: ../Doc/library/asyncio-api-index.rst:43 msgid "Return the current Task." @@ -98,7 +99,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:45 msgid ":func:`all_tasks`" -msgstr "" +msgstr ":func:`all_tasks`" #: ../Doc/library/asyncio-api-index.rst:46 msgid "Return all tasks for an event loop." @@ -106,7 +107,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:48 msgid ":class:`Task`" -msgstr "" +msgstr ":class:`Task`" #: ../Doc/library/asyncio-api-index.rst:49 msgid "Task object." @@ -114,7 +115,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:51 msgid ":func:`run_coroutine_threadsafe`" -msgstr "" +msgstr ":func:`run_coroutine_threadsafe`" #: ../Doc/library/asyncio-api-index.rst:52 msgid "Schedule a coroutine from another OS thread." @@ -219,7 +220,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:112 msgid "Create a subprocess." -msgstr "" +msgstr "Crée un sous-processus." #: ../Doc/library/asyncio-api-index.rst:114 msgid "``await`` :func:`create_subprocess_shell`" @@ -279,7 +280,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:147 msgid ":class:`StreamReader`" -msgstr "" +msgstr ":class:`StreamReader`" #: ../Doc/library/asyncio-api-index.rst:148 msgid "High-level async/await object to receive network data." @@ -287,7 +288,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:150 msgid ":class:`StreamWriter`" -msgstr "" +msgstr ":class:`StreamWriter`" #: ../Doc/library/asyncio-api-index.rst:151 msgid "High-level async/await object to send network data." @@ -376,7 +377,7 @@ msgstr "" #: ../Doc/library/asyncio-api-index.rst:208 msgid ":exc:`asyncio.CancelledError`" -msgstr "" +msgstr ":exc:`asyncio.CancelledError`" #: ../Doc/library/asyncio-api-index.rst:209 msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po index f4bb8fe10a..da48142a01 100644 --- a/library/asyncio-dev.po +++ b/library/asyncio-dev.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-13 17:38+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,105 +14,128 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-dev.rst:7 +#: library/asyncio-dev.rst:7 msgid "Developing with asyncio" msgstr "Programmer avec *asyncio*" -#: ../Doc/library/asyncio-dev.rst:9 +#: library/asyncio-dev.rst:9 msgid "" "Asynchronous programming is different from classic \"sequential\" " "programming." msgstr "" +"La programmation asynchrone est différente de la programmation " +"« séquentielle » classique." -#: ../Doc/library/asyncio-dev.rst:12 +#: library/asyncio-dev.rst:12 msgid "" "This page lists common mistakes and traps and explains how to avoid them." msgstr "" +"Cette page liste les pièges et erreurs communs que le développeur pourrait " +"rencontrer et décrit comment les éviter." -#: ../Doc/library/asyncio-dev.rst:19 +#: library/asyncio-dev.rst:19 msgid "Debug Mode" -msgstr "" +msgstr "Mode débogage" -#: ../Doc/library/asyncio-dev.rst:21 +#: library/asyncio-dev.rst:21 msgid "" "By default asyncio runs in production mode. In order to ease the " "development asyncio has a *debug mode*." msgstr "" +"Par défaut, *asyncio* s'exécute en mode production. Pour faciliter le " +"développement, *asyncio* possède un « mode débogage »." -#: ../Doc/library/asyncio-dev.rst:24 +#: library/asyncio-dev.rst:24 msgid "There are several ways to enable asyncio debug mode:" -msgstr "" +msgstr "Il existe plusieurs façons d'activer le mode débogage de *asyncio* :" -#: ../Doc/library/asyncio-dev.rst:26 +#: library/asyncio-dev.rst:26 msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." msgstr "" +"en réglant la variable d’environnement :envvar:`PYTHONASYNCIODEBUG` à ``1`` ;" -#: ../Doc/library/asyncio-dev.rst:28 +#: library/asyncio-dev.rst:28 msgid "Using the :option:`-X` ``dev`` Python command line option." msgstr "" -#: ../Doc/library/asyncio-dev.rst:30 +#: library/asyncio-dev.rst:30 msgid "Passing ``debug=True`` to :func:`asyncio.run`." -msgstr "" +msgstr "en passant ``debug=True`` à la fonction :func:`asyncio.run` ;" -#: ../Doc/library/asyncio-dev.rst:32 +#: library/asyncio-dev.rst:32 msgid "Calling :meth:`loop.set_debug`." -msgstr "" +msgstr "en appelant la méthode :meth:`loop.set_debug`." -#: ../Doc/library/asyncio-dev.rst:34 +#: library/asyncio-dev.rst:34 msgid "In addition to enabling the debug mode, consider also:" -msgstr "" +msgstr "En plus d'activer le mode débogage, vous pouvez également :" -#: ../Doc/library/asyncio-dev.rst:36 +#: library/asyncio-dev.rst:36 msgid "" "setting the log level of the :ref:`asyncio logger ` to :py:" "data:`logging.DEBUG`, for example the following snippet of code can be run " "at startup of the application::" msgstr "" +"régler le niveau de journalisation pour l'enregistreur d'*asyncio* (:ref:" +"`asyncio logger `) à :py:data:`logging.DEBUG` ; par exemple, " +"le fragment de code suivant peut être exécuté au démarrage de " +"l'application ::" -#: ../Doc/library/asyncio-dev.rst:42 +#: library/asyncio-dev.rst:42 msgid "" "configuring the :mod:`warnings` module to display :exc:`ResourceWarning` " "warnings. One way of doing that is by using the :option:`-W` ``default`` " "command line option." msgstr "" +"configurer le module :mod:`warnings` afin d'afficher les avertissements de " +"type :exc:`ResourceWarning` ; vous pouvez faire cela en utilisant l'option :" +"option:`-W` ``default`` sur la ligne de commande." -#: ../Doc/library/asyncio-dev.rst:47 +#: library/asyncio-dev.rst:47 msgid "When the debug mode is enabled:" -msgstr "" +msgstr "Lorsque le mode débogage est activé :" -#: ../Doc/library/asyncio-dev.rst:49 +#: library/asyncio-dev.rst:49 msgid "" "asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten await\" " "pitfall." msgstr "" +"*asyncio* surveille les :ref:`coroutines qui ne sont jamais attendues " +"` et les journalise ; cela atténue le " +"problème des « *await* oubliés » ;" -#: ../Doc/library/asyncio-dev.rst:53 +#: library/asyncio-dev.rst:53 msgid "" "Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` and :meth:" "`loop.call_at` methods) raise an exception if they are called from a wrong " "thread." msgstr "" +"beaucoup d'*API* *asyncio* ne prenant pas en charge les fils d'exécution " +"multiples (comme les méthodes :meth:`loop.call_soon` et :meth:`loop." +"call_at`) lèvent une exception si elles sont appelées par le mauvais fil " +"d’exécution ;" -#: ../Doc/library/asyncio-dev.rst:57 +#: library/asyncio-dev.rst:57 msgid "" "The execution time of the I/O selector is logged if it takes too long to " "perform an I/O operation." msgstr "" +"le temps d'exécution du sélecteur d'entrée-sortie est journalisé si une " +"opération prend trop de temps à s'effectuer ;" -#: ../Doc/library/asyncio-dev.rst:60 +#: library/asyncio-dev.rst:60 msgid "" "Callbacks taking longer than 100ms are logged. The :attr:`loop." "slow_callback_duration` attribute can be used to set the minimum execution " "duration in seconds that is considered \"slow\"." msgstr "" -#: ../Doc/library/asyncio-dev.rst:68 +#: library/asyncio-dev.rst:68 msgid "Concurrency and Multithreading" msgstr "Concourance et *multithreading*" -#: ../Doc/library/asyncio-dev.rst:70 +#: library/asyncio-dev.rst:70 msgid "" "An event loop runs in a thread (typically the main thread) and executes all " "callbacks and Tasks in its thread. While a Task is running in the event " @@ -120,122 +143,184 @@ msgid "" "``await`` expression, the running Task gets suspended, and the event loop " "executes the next Task." msgstr "" +"Une boucle d'évènements s'exécute dans un fil d’exécution (typiquement dans " +"le fil principal) et traite toutes les fonctions de rappel (*callbacks*) " +"ainsi que toutes les tâches dans ce même fil. Lorsqu'une tâche est en cours " +"d'exécution dans la boucle d'évènements, aucune autre tâche ne peut " +"s'exécuter dans ce fil. Quand une tâche traite une expression ``await``, " +"elle se suspend et laisse la boucle d’évènements traiter la tâche suivante." -#: ../Doc/library/asyncio-dev.rst:76 +#: library/asyncio-dev.rst:76 msgid "" -"To schedule a callback from a different OS thread, the :meth:`loop." +"To schedule a :term:`callback` from another OS thread, the :meth:`loop." "call_soon_threadsafe` method should be used. Example::" msgstr "" +"Pour planifier un :term:`rappel ` depuis un autre fil d'exécution " +"système, utilisez la méthode :meth:`loop.call_soon_threadsafe`. Par " +"exemple ::" -#: ../Doc/library/asyncio-dev.rst:81 +#: library/asyncio-dev.rst:81 msgid "" "Almost all asyncio objects are not thread safe, which is typically not a " "problem unless there is code that works with them from outside of a Task or " "a callback. If there's a need for such code to call a low-level asyncio " "API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" msgstr "" +"La plupart des objets *asyncio* ne sont pas conçus pour être exécutés dans " +"un contexte multi-fils (*thread-safe*) mais cela n'est en général pas un " +"problème à moins que l'objet ne fasse appel à du code se trouvant en dehors " +"d'une tâche ou d'une fonction de rappel. Dans ce dernier cas, si le code " +"appelle les *API* bas niveau de *asyncio*, utilisez la méthode :meth:`loop." +"call_soon_threadsafe`. Par exemple ::" -#: ../Doc/library/asyncio-dev.rst:89 +#: library/asyncio-dev.rst:89 msgid "" "To schedule a coroutine object from a different OS thread, the :func:" "`run_coroutine_threadsafe` function should be used. It returns a :class:" "`concurrent.futures.Future` to access the result::" msgstr "" +"Pour planifier un objet concurrent depuis un autre fil d'exécution système, " +"utilisez :func:`run_coroutine_threadsafe`. Cette fonction renvoie un objet :" +"class:`concurrent.futures.Future` pour accéder au résultat ::" -#: ../Doc/library/asyncio-dev.rst:102 +#: library/asyncio-dev.rst:102 msgid "" "To handle signals and to execute subprocesses, the event loop must be run in " "the main thread." msgstr "" +"Pour pouvoir traiter les signaux et démarrer des processus enfants, la " +"boucle d'évènements doit être exécutée dans le fil principal." -#: ../Doc/library/asyncio-dev.rst:105 +#: library/asyncio-dev.rst:105 msgid "" "The :meth:`loop.run_in_executor` method can be used with a :class:" "`concurrent.futures.ThreadPoolExecutor` to execute blocking code in a " "different OS thread without blocking the OS thread that the event loop runs " "in." msgstr "" +"La méthode :meth:`loop.run_in_executor` peut être utilisée avec :class:" +"`concurrent.futures.ThreadPoolExecutor` pour exécuter du code bloquant dans " +"un autre fil d'exécution, afin de ne pas bloquer le fil où la boucle " +"d'évènements se trouve." -#: ../Doc/library/asyncio-dev.rst:114 +#: library/asyncio-dev.rst:110 +msgid "" +"There is currently no way to schedule coroutines or callbacks directly from " +"a different process (such as one started with :mod:`multiprocessing`). The :" +"ref:`Event Loop Methods ` section lists APIs that can " +"read from pipes and watch file descriptors without blocking the event loop. " +"In addition, asyncio's :ref:`Subprocess ` APIs provide a " +"way to start a process and communicate with it from the event loop. Lastly, " +"the aforementioned :meth:`loop.run_in_executor` method can also be used with " +"a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a " +"different process." +msgstr "" + +#: library/asyncio-dev.rst:124 msgid "Running Blocking Code" -msgstr "" +msgstr "Exécution de code bloquant" -#: ../Doc/library/asyncio-dev.rst:116 +#: library/asyncio-dev.rst:126 msgid "" "Blocking (CPU-bound) code should not be called directly. For example, if a " "function performs a CPU-intensive calculation for 1 second, all concurrent " "asyncio Tasks and IO operations would be delayed by 1 second." msgstr "" +"Du code bloquant sur des opérations de calcul (*CPU-bound*) ne devrait pas " +"être appelé directement. Par exemple, si une fonction effectue des calculs " +"utilisant le CPU intensivement pendant une seconde, toutes les tâches " +"*asyncio* concurrentes et les opérations d'entrées-sorties seront bloquées " +"pour une seconde." -#: ../Doc/library/asyncio-dev.rst:121 +#: library/asyncio-dev.rst:131 msgid "" "An executor can be used to run a task in a different thread or even in a " "different process to avoid blocking the OS thread with the event loop. See " "the :meth:`loop.run_in_executor` method for more details." msgstr "" +"Un exécuteur peut être utilisé pour traiter une tâche dans un fil " +"d'exécution ou un processus différent, afin d'éviter de bloquer le fil " +"d'exécution système dans lequel se trouve la boucle d’évènements. Voir :meth:" +"`loop.run_in_executor` pour plus de détails." -#: ../Doc/library/asyncio-dev.rst:130 +#: library/asyncio-dev.rst:140 msgid "Logging" msgstr "Journalisation" -#: ../Doc/library/asyncio-dev.rst:132 +#: library/asyncio-dev.rst:142 msgid "" "asyncio uses the :mod:`logging` module and all logging is performed via the " "``\"asyncio\"`` logger." msgstr "" +"*Asyncio* utilise le module :mod:`logging`. Toutes les opérations de " +"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``." -#: ../Doc/library/asyncio-dev.rst:135 +#: library/asyncio-dev.rst:145 msgid "" "The default log level is :py:data:`logging.INFO`, which can be easily " "adjusted::" msgstr "" +"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut " +"être ajusté facilement ::" -#: ../Doc/library/asyncio-dev.rst:144 +#: library/asyncio-dev.rst:154 msgid "Detect never-awaited coroutines" -msgstr "" +msgstr "Détection des coroutines jamais attendues" -#: ../Doc/library/asyncio-dev.rst:146 +#: library/asyncio-dev.rst:156 msgid "" "When a coroutine function is called, but not awaited (e.g. ``coro()`` " "instead of ``await coro()``) or the coroutine is not scheduled with :meth:" "`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" msgstr "" +"Lorsqu'une fonction coroutine est appelée mais qu'elle n'est pas attendue " +"(p. ex. ``coro()`` au lieu de ``await coro()``) ou si la coroutine n'est " +"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet un :exc:" +"`RuntimeWarning` ::" -#: ../Doc/library/asyncio-dev.rst:161 ../Doc/library/asyncio-dev.rst:206 +#: library/asyncio-dev.rst:216 msgid "Output::" msgstr "Sortie ::" -#: ../Doc/library/asyncio-dev.rst:166 ../Doc/library/asyncio-dev.rst:222 +#: library/asyncio-dev.rst:232 msgid "Output in debug mode::" msgstr "Affichage en mode débogage ::" -#: ../Doc/library/asyncio-dev.rst:179 +#: library/asyncio-dev.rst:189 msgid "" "The usual fix is to either await the coroutine or call the :meth:`asyncio." "create_task` function::" msgstr "" +"La façon habituelle de régler ce problème est d'attendre (*await*) la " +"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::" -#: ../Doc/library/asyncio-dev.rst:187 +#: library/asyncio-dev.rst:197 msgid "Detect never-retrieved exceptions" -msgstr "" +msgstr "Détection des exceptions jamais récupérées" -#: ../Doc/library/asyncio-dev.rst:189 +#: library/asyncio-dev.rst:199 msgid "" "If a :meth:`Future.set_exception` is called but the Future object is never " "awaited on, the exception would never be propagated to the user code. In " "this case, asyncio would emit a log message when the Future object is " "garbage collected." msgstr "" +"Si la méthode :meth:`Future.set_exception` est appelée mais que l'objet " +"*Future* n'est pas attendu, l'exception n'est pas propagée au code " +"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque " +"l'objet *Future* est récupéré par le ramasse-miette." -#: ../Doc/library/asyncio-dev.rst:194 +#: library/asyncio-dev.rst:204 msgid "Example of an unhandled exception::" -msgstr "" +msgstr "Exemple d'une exception non-gérée ::" -#: ../Doc/library/asyncio-dev.rst:217 +#: library/asyncio-dev.rst:227 msgid "" ":ref:`Enable the debug mode ` to get the traceback where " "the task was created::" msgstr "" +":ref:`Activez le mode débogage ` pour récupérer la trace " +"d'appels indiquant où la tâche a été créée ::" #~ msgid "Debug mode of asyncio" #~ msgstr "Mode de débogage d'*asyncio*" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po index 33c7a49f7b..401163c08c 100644 --- a/library/asyncio-eventloop.po +++ b/library/asyncio-eventloop.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-06-10 15:50+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,22 +15,28 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/asyncio-eventloop.rst:6 +#: library/asyncio-eventloop.rst:6 msgid "Event Loop" msgstr "Boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:10 +#: library/asyncio-eventloop.rst:8 +msgid "" +"**Source code:** :source:`Lib/asyncio/events.py`, :source:`Lib/asyncio/" +"base_events.py`" +msgstr "" + +#: library/asyncio-eventloop.rst:14 msgid "Preface" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:11 +#: library/asyncio-eventloop.rst:15 msgid "" "The event loop is the core of every asyncio application. Event loops run " "asynchronous tasks and callbacks, perform network IO operations, and run " "subprocesses." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:15 +#: library/asyncio-eventloop.rst:19 msgid "" "Application developers should typically use the high-level asyncio " "functions, such as :func:`asyncio.run`, and should rarely need to reference " @@ -39,132 +45,137 @@ msgid "" "control over the event loop behavior." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:22 +#: library/asyncio-eventloop.rst:26 msgid "Obtaining the Event Loop" msgstr "Obtenir une boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:23 +#: library/asyncio-eventloop.rst:27 msgid "" "The following low-level functions can be used to get, set, or create an " "event loop:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:28 +#: library/asyncio-eventloop.rst:32 msgid "Return the running event loop in the current OS thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:30 +#: library/asyncio-eventloop.rst:34 msgid "" "If there is no running event loop a :exc:`RuntimeError` is raised. This " "function can only be called from a coroutine or a callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:37 +#: library/asyncio-eventloop.rst:41 +#, fuzzy +msgid "Get the current event loop." +msgstr "Arrête l'exécution de la boucle d'évènements." + +#: library/asyncio-eventloop.rst:43 msgid "" -"Get the current event loop. If there is no current event loop set in the " -"current OS thread and :func:`set_event_loop` has not yet been called, " -"asyncio will create a new event loop and set it as the current one." +"If there is no current event loop set in the current OS thread, the OS " +"thread is main, and :func:`set_event_loop` has not yet been called, asyncio " +"will create a new event loop and set it as the current one." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:42 +#: library/asyncio-eventloop.rst:48 msgid "" "Because this function has rather complex behavior (especially when custom " "event loop policies are in use), using the :func:`get_running_loop` function " "is preferred to :func:`get_event_loop` in coroutines and callbacks." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:47 +#: library/asyncio-eventloop.rst:53 msgid "" "Consider also using the :func:`asyncio.run` function instead of using lower " "level functions to manually create and close an event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:52 +#: library/asyncio-eventloop.rst:58 msgid "Set *loop* as a current event loop for the current OS thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:56 +#: library/asyncio-eventloop.rst:62 msgid "Create a new event loop object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:58 +#: library/asyncio-eventloop.rst:64 msgid "" "Note that the behaviour of :func:`get_event_loop`, :func:`set_event_loop`, " "and :func:`new_event_loop` functions can be altered by :ref:`setting a " "custom event loop policy `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:64 +#: library/asyncio-eventloop.rst:70 msgid "Contents" msgstr "Sommaire" -#: ../Doc/library/asyncio-eventloop.rst:65 +#: library/asyncio-eventloop.rst:71 msgid "This documentation page contains the following sections:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:67 +#: library/asyncio-eventloop.rst:73 msgid "" "The `Event Loop Methods`_ section is the reference documentation of the " "event loop APIs;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:70 +#: library/asyncio-eventloop.rst:76 msgid "" "The `Callback Handles`_ section documents the :class:`Handle` and :class:" "`TimerHandle` instances which are returned from scheduling methods such as :" "meth:`loop.call_soon` and :meth:`loop.call_later`;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:74 +#: library/asyncio-eventloop.rst:80 msgid "" "The `Server Objects`_ section documents types returned from event loop " "methods like :meth:`loop.create_server`;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:77 +#: library/asyncio-eventloop.rst:83 msgid "" "The `Event Loop Implementations`_ section documents the :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:80 +#: library/asyncio-eventloop.rst:86 msgid "" "The `Examples`_ section showcases how to work with some event loop APIs." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:87 +#: library/asyncio-eventloop.rst:93 msgid "Event Loop Methods" msgstr "Méthodes de la boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:89 +#: library/asyncio-eventloop.rst:95 msgid "Event loops have **low-level** APIs for the following:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:97 +#: library/asyncio-eventloop.rst:103 msgid "Running and stopping the loop" msgstr "Démarrer et arrêter une boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:101 +#: library/asyncio-eventloop.rst:107 msgid "Run until the *future* (an instance of :class:`Future`) has completed." msgstr "" "Lance la boucle jusqu'à ce que *future* (une instance de :class:`Future`) " "soit terminée." -#: ../Doc/library/asyncio-eventloop.rst:104 +#: library/asyncio-eventloop.rst:110 msgid "" "If the argument is a :ref:`coroutine object ` it is implicitly " "scheduled to run as a :class:`asyncio.Task`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:107 +#: library/asyncio-eventloop.rst:113 msgid "Return the Future's result or raise its exception." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:111 +#: library/asyncio-eventloop.rst:117 msgid "Run the event loop until :meth:`stop` is called." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:113 +#: library/asyncio-eventloop.rst:119 msgid "" "If :meth:`stop` is called before :meth:`run_forever()` is called, the loop " "will poll the I/O selector once with a timeout of zero, run all callbacks " @@ -172,7 +183,7 @@ msgid "" "and then exit." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:118 +#: library/asyncio-eventloop.rst:124 msgid "" "If :meth:`stop` is called while :meth:`run_forever` is running, the loop " "will run the current batch of callbacks and then exit. Note that new " @@ -181,41 +192,41 @@ msgid "" "called." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:126 +#: library/asyncio-eventloop.rst:132 msgid "Stop the event loop." msgstr "Arrête l'exécution de la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:130 +#: library/asyncio-eventloop.rst:136 msgid "Return ``True`` if the event loop is currently running." msgstr "Renvoie ``True`` si la boucle d'évènements est démarrée." -#: ../Doc/library/asyncio-eventloop.rst:134 +#: library/asyncio-eventloop.rst:140 msgid "Return ``True`` if the event loop was closed." msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." -#: ../Doc/library/asyncio-eventloop.rst:138 +#: library/asyncio-eventloop.rst:144 msgid "Close the event loop." msgstr "Arrête la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:140 +#: library/asyncio-eventloop.rst:146 msgid "" "The loop must not be running when this function is called. Any pending " "callbacks will be discarded." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:143 +#: library/asyncio-eventloop.rst:149 msgid "" "This method clears all queues and shuts down the executor, but does not wait " "for the executor to finish." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:146 +#: library/asyncio-eventloop.rst:152 msgid "" "This method is idempotent and irreversible. No other methods should be " "called after the event loop is closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:151 +#: library/asyncio-eventloop.rst:157 msgid "" "Schedule all currently open :term:`asynchronous generator` objects to close " "with an :meth:`~agen.aclose()` call. After calling this method, the event " @@ -223,59 +234,60 @@ msgid "" "should be used to reliably finalize all scheduled asynchronous generators." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:157 +#: library/asyncio-eventloop.rst:163 msgid "" "Note that there is no need to call this function when :func:`asyncio.run` is " "used." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:160 -#: ../Doc/library/asyncio-eventloop.rst:1030 -#: ../Doc/library/asyncio-eventloop.rst:1412 +#: library/asyncio-eventloop.rst:166 library/asyncio-eventloop.rst:1062 +#: library/asyncio-eventloop.rst:1444 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/asyncio-eventloop.rst:172 +#: library/asyncio-eventloop.rst:178 msgid "Scheduling callbacks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:176 +#: library/asyncio-eventloop.rst:182 msgid "" -"Schedule a *callback* to be called with *args* arguments at the next " -"iteration of the event loop." +"Schedule the *callback* :term:`callback` to be called with *args* arguments " +"at the next iteration of the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:179 +#: library/asyncio-eventloop.rst:185 msgid "" "Callbacks are called in the order in which they are registered. Each " "callback will be called exactly once." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:182 -#: ../Doc/library/asyncio-eventloop.rst:245 +#: library/asyncio-eventloop.rst:188 library/asyncio-eventloop.rst:251 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" +"L'argument nommé optionnel *context* permet de spécifier une classe :class:" +"`contextvars.Context` personnalisée dans laquelle la fonction de rappel " +"s’exécutera. Le contexte actuel est utilisé si *context* n'est pas fourni." -#: ../Doc/library/asyncio-eventloop.rst:186 +#: library/asyncio-eventloop.rst:192 msgid "" "An instance of :class:`asyncio.Handle` is returned, which can be used later " "to cancel the callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:189 +#: library/asyncio-eventloop.rst:195 msgid "This method is not thread-safe." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:193 +#: library/asyncio-eventloop.rst:199 msgid "" "A thread-safe variant of :meth:`call_soon`. Must be used to schedule " "callbacks *from another thread*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:196 +#: library/asyncio-eventloop.rst:202 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." @@ -283,143 +295,142 @@ msgstr "" "Voir la section :ref:`exécution concurrente et multi-fils d'exécution " "` de la documentation." -#: ../Doc/library/asyncio-eventloop.rst:199 -#: ../Doc/library/asyncio-eventloop.rst:249 -#: ../Doc/library/asyncio-eventloop.rst:269 +#: library/asyncio-eventloop.rst:205 library/asyncio-eventloop.rst:255 +#: library/asyncio-eventloop.rst:275 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" +"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." -#: ../Doc/library/asyncio-eventloop.rst:207 +#: library/asyncio-eventloop.rst:213 msgid "" "Most :mod:`asyncio` scheduling functions don't allow passing keyword " "arguments. To do that, use :func:`functools.partial`::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:214 +#: library/asyncio-eventloop.rst:220 msgid "" "Using partial objects is usually more convenient than using lambdas, as " "asyncio can render partial objects better in debug and error messages." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:222 +#: library/asyncio-eventloop.rst:228 msgid "Scheduling delayed callbacks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:224 +#: library/asyncio-eventloop.rst:230 msgid "" "Event loop provides mechanisms to schedule callback functions to be called " "at some point in the future. Event loop uses monotonic clocks to track time." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:231 +#: library/asyncio-eventloop.rst:237 msgid "" "Schedule *callback* to be called after the given *delay* number of seconds " "(can be either an int or a float)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:234 -#: ../Doc/library/asyncio-eventloop.rst:266 +#: library/asyncio-eventloop.rst:240 library/asyncio-eventloop.rst:272 msgid "" "An instance of :class:`asyncio.TimerHandle` is returned which can be used to " "cancel the callback." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:237 +#: library/asyncio-eventloop.rst:243 msgid "" "*callback* will be called exactly once. If two callbacks are scheduled for " "exactly the same time, the order in which they are called is undefined." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:241 +#: library/asyncio-eventloop.rst:247 msgid "" "The optional positional *args* will be passed to the callback when it is " "called. If you want the callback to be called with keyword arguments use :" "func:`functools.partial`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:253 +#: library/asyncio-eventloop.rst:259 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "*delay* could not exceed one day. This has been fixed in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:260 +#: library/asyncio-eventloop.rst:266 msgid "" "Schedule *callback* to be called at the given absolute timestamp *when* (an " "int or a float), using the same time reference as :meth:`loop.time`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:264 +#: library/asyncio-eventloop.rst:270 msgid "This method's behavior is the same as :meth:`call_later`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:273 +#: library/asyncio-eventloop.rst:279 msgid "" "In Python 3.7 and earlier with the default event loop implementation, the " "difference between *when* and the current time could not exceed one day. " "This has been fixed in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:280 +#: library/asyncio-eventloop.rst:286 msgid "" "Return the current time, as a :class:`float` value, according to the event " "loop's internal monotonic clock." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:284 +#: library/asyncio-eventloop.rst:290 msgid "" "In Python 3.7 and earlier timeouts (relative *delay* or absolute *when*) " "should not exceed one day. This has been fixed in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:290 +#: library/asyncio-eventloop.rst:296 msgid "The :func:`asyncio.sleep` function." msgstr "La fonction :func:`asyncio.sleep`." -#: ../Doc/library/asyncio-eventloop.rst:294 +#: library/asyncio-eventloop.rst:300 msgid "Creating Futures and Tasks" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:298 +#: library/asyncio-eventloop.rst:304 msgid "Create an :class:`asyncio.Future` object attached to the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:300 +#: library/asyncio-eventloop.rst:306 msgid "" "This is the preferred way to create Futures in asyncio. This lets third-" "party event loops provide alternative implementations of the Future object " "(with better performance or instrumentation)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:308 +#: library/asyncio-eventloop.rst:314 msgid "" "Schedule the execution of a :ref:`coroutine`. Return a :class:`Task` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:311 +#: library/asyncio-eventloop.rst:317 msgid "" "Third-party event loops can use their own subclass of :class:`Task` for " "interoperability. In this case, the result type is a subclass of :class:" "`Task`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:315 +#: library/asyncio-eventloop.rst:321 msgid "" "If the *name* argument is provided and not ``None``, it is set as the name " "of the task using :meth:`Task.set_name`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:318 +#: library/asyncio-eventloop.rst:324 msgid "Added the ``name`` parameter." -msgstr "" +msgstr "ajout du paramètre ``name``." -#: ../Doc/library/asyncio-eventloop.rst:323 +#: library/asyncio-eventloop.rst:329 msgid "Set a task factory that will be used by :meth:`loop.create_task`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:326 +#: library/asyncio-eventloop.rst:332 msgid "" "If *factory* is ``None`` the default task factory will be set. Otherwise, " "*factory* must be a *callable* with the signature matching ``(loop, coro)``, " @@ -428,82 +439,80 @@ msgid "" "compatible object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:334 +#: library/asyncio-eventloop.rst:340 msgid "Return a task factory or ``None`` if the default one is in use." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:338 +#: library/asyncio-eventloop.rst:344 msgid "Opening network connections" msgstr "Créer des connexions" -#: ../Doc/library/asyncio-eventloop.rst:346 +#: library/asyncio-eventloop.rst:353 msgid "" "Open a streaming transport connection to a given address specified by *host* " "and *port*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:349 +#: library/asyncio-eventloop.rst:356 msgid "" "The socket family can be either :py:data:`~socket.AF_INET` or :py:data:" "`~socket.AF_INET6` depending on *host* (or the *family* argument, if " "provided)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:353 +#: library/asyncio-eventloop.rst:360 msgid "The socket type will be :py:data:`~socket.SOCK_STREAM`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:355 -#: ../Doc/library/asyncio-eventloop.rst:946 -#: ../Doc/library/asyncio-eventloop.rst:962 +#: library/asyncio-eventloop.rst:362 library/asyncio-eventloop.rst:978 +#: library/asyncio-eventloop.rst:994 msgid "" "*protocol_factory* must be a callable returning an :ref:`asyncio protocol " "` implementation." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:358 +#: library/asyncio-eventloop.rst:365 msgid "" "This method will try to establish the connection in the background. When " "successful, it returns a ``(transport, protocol)`` pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:361 +#: library/asyncio-eventloop.rst:368 msgid "The chronological synopsis of the underlying operation is as follows:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:363 +#: library/asyncio-eventloop.rst:370 msgid "" "The connection is established and a :ref:`transport ` is " "created for it." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:366 +#: library/asyncio-eventloop.rst:373 msgid "" "*protocol_factory* is called without arguments and is expected to return a :" "ref:`protocol ` instance." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:369 +#: library/asyncio-eventloop.rst:376 msgid "" "The protocol instance is coupled with the transport by calling its :meth:" "`~BaseProtocol.connection_made` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:372 +#: library/asyncio-eventloop.rst:379 msgid "A ``(transport, protocol)`` tuple is returned on success." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:374 +#: library/asyncio-eventloop.rst:381 msgid "" "The created transport is an implementation-dependent bidirectional stream." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:377 -#: ../Doc/library/asyncio-eventloop.rst:473 +#: library/asyncio-eventloop.rst:384 library/asyncio-eventloop.rst:506 msgid "Other arguments:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:379 +#: library/asyncio-eventloop.rst:386 msgid "" "*ssl*: if given and not false, a SSL/TLS transport is created (by default a " "plain TCP transport is created). If *ssl* is a :class:`ssl.SSLContext` " @@ -512,11 +521,11 @@ msgid "" "is used." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:385 +#: library/asyncio-eventloop.rst:392 msgid ":ref:`SSL/TLS security considerations `" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:387 +#: library/asyncio-eventloop.rst:394 msgid "" "*server_hostname* sets or overrides the hostname that the target server's " "certificate will be matched against. Should only be passed if *ssl* is not " @@ -527,7 +536,7 @@ msgid "" "potential man-in-the-middle attacks)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:395 +#: library/asyncio-eventloop.rst:402 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to getaddrinfo() for *host* resolution. If given, " @@ -535,28 +544,28 @@ msgid "" "constants." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:400 +#: library/asyncio-eventloop.rst:407 msgid "" "*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " "connection. It should be a floating-point number representing the amount of " "time in seconds to wait for a connection attempt to complete, before " -"starting the next attempt in parallel. This is the \"Connection Attempt Delay" -"\" as defined in :rfc:`8305`. A sensible default value recommended by the " -"RFC is ``0.25`` (250 milliseconds)." +"starting the next attempt in parallel. This is the \"Connection Attempt " +"Delay\" as defined in :rfc:`8305`. A sensible default value recommended by " +"the RFC is ``0.25`` (250 milliseconds)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:408 +#: library/asyncio-eventloop.rst:415 msgid "" "*interleave* controls address reordering when a host name resolves to " "multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " "addresses are tried in the order returned by :meth:`getaddrinfo`. If a " "positive integer is specified, the addresses are interleaved by address " -"family, and the given integer is interpreted as \"First Address Family Count" -"\" as defined in :rfc:`8305`. The default is ``0`` if *happy_eyeballs_delay* " -"is not specified, and ``1`` if it is." +"family, and the given integer is interpreted as \"First Address Family " +"Count\" as defined in :rfc:`8305`. The default is ``0`` if " +"*happy_eyeballs_delay* is not specified, and ``1`` if it is." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:417 +#: library/asyncio-eventloop.rst:424 msgid "" "*sock*, if given, should be an existing, already connected :class:`socket." "socket` object to be used by the transport. If *sock* is given, none of " @@ -564,93 +573,124 @@ msgid "" "*interleave* and *local_addr* should be specified." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:423 +#: library/asyncio-eventloop.rst:430 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket to locally. The *local_host* and *local_port* are looked up " "using ``getaddrinfo()``, similarly to *host* and *port*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:427 -#: ../Doc/library/asyncio-eventloop.rst:755 +#: library/asyncio-eventloop.rst:434 library/asyncio-eventloop.rst:787 msgid "" "*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " "wait for the TLS handshake to complete before aborting the connection. " "``60.0`` seconds if ``None`` (default)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:433 -msgid "The *happy_eyeballs_delay* and *interleave* parameters." +#: library/asyncio-eventloop.rst:440 +msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:437 -#: ../Doc/library/asyncio-eventloop.rst:540 -#: ../Doc/library/asyncio-eventloop.rst:693 +#: library/asyncio-eventloop.rst:442 +msgid "" +"Happy Eyeballs Algorithm: Success with Dual-Stack Hosts. When a server's " +"IPv4 path and protocol are working, but the server's IPv6 path and protocol " +"are not working, a dual-stack client application experiences significant " +"connection delay compared to an IPv4-only client. This is undesirable " +"because it causes the dual- stack client to have a worse user experience. " +"This document specifies requirements for algorithms that reduce this user-" +"visible delay and provides an algorithm." +msgstr "" + +#: library/asyncio-eventloop.rst:451 +msgid "For more information: https://tools.ietf.org/html/rfc6555" +msgstr "" + +#: library/asyncio-eventloop.rst:455 library/asyncio-eventloop.rst:572 +#: library/asyncio-eventloop.rst:725 msgid "The *ssl_handshake_timeout* parameter." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:441 -#: ../Doc/library/asyncio-eventloop.rst:623 +#: library/asyncio-eventloop.rst:459 library/asyncio-eventloop.rst:655 msgid "" "The socket option :py:data:`~socket.TCP_NODELAY` is set by default for all " "TCP connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:446 -#: ../Doc/library/asyncio-eventloop.rst:628 +#: library/asyncio-eventloop.rst:464 library/asyncio-eventloop.rst:660 msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:450 +#: library/asyncio-eventloop.rst:468 msgid "" "The :func:`open_connection` function is a high-level alternative API. It " "returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " "used directly in async/await code." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:460 +#: library/asyncio-eventloop.rst:479 +msgid "" +"The parameter *reuse_address* is no longer supported, as using :py:data:" +"`~sockets.SO_REUSEADDR` poses a significant security concern for UDP. " +"Explicitly passing ``reuse_address=True`` will raise an exception." +msgstr "" + +#: library/asyncio-eventloop.rst:483 +msgid "" +"When multiple processes with differing UIDs assign sockets to an identical " +"UDP socket address with ``SO_REUSEADDR``, incoming packets can become " +"randomly distributed among the sockets." +msgstr "" + +#: library/asyncio-eventloop.rst:487 +msgid "" +"For supported platforms, *reuse_port* can be used as a replacement for " +"similar functionality. With *reuse_port*, :py:data:`~sockets.SO_REUSEPORT` " +"is used instead, which specifically prevents processes with differing UIDs " +"from assigning sockets to the same socket address." +msgstr "" + +#: library/asyncio-eventloop.rst:493 msgid "Create a datagram connection." msgstr "Créer une connexion par datagramme" -#: ../Doc/library/asyncio-eventloop.rst:462 +#: library/asyncio-eventloop.rst:495 msgid "" "The socket family can be either :py:data:`~socket.AF_INET`, :py:data:" "`~socket.AF_INET6`, or :py:data:`~socket.AF_UNIX`, depending on *host* (or " "the *family* argument, if provided)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:466 +#: library/asyncio-eventloop.rst:499 msgid "The socket type will be :py:data:`~socket.SOCK_DGRAM`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:468 -#: ../Doc/library/asyncio-eventloop.rst:565 -#: ../Doc/library/asyncio-eventloop.rst:676 +#: library/asyncio-eventloop.rst:501 library/asyncio-eventloop.rst:597 +#: library/asyncio-eventloop.rst:708 msgid "" "*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:471 -#: ../Doc/library/asyncio-eventloop.rst:526 +#: library/asyncio-eventloop.rst:504 library/asyncio-eventloop.rst:558 msgid "A tuple of ``(transport, protocol)`` is returned on success." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:475 +#: library/asyncio-eventloop.rst:508 msgid "" "*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " "the socket to locally. The *local_host* and *local_port* are looked up " "using :meth:`getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:479 +#: library/asyncio-eventloop.rst:512 msgid "" "*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " "connect the socket to a remote address. The *remote_host* and *remote_port* " "are looked up using :meth:`getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:483 +#: library/asyncio-eventloop.rst:516 msgid "" "*family*, *proto*, *flags* are the optional address family, protocol and " "flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " @@ -658,15 +698,7 @@ msgid "" "module constants." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:488 -#: ../Doc/library/asyncio-eventloop.rst:597 -msgid "" -"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " -"state, without waiting for its natural timeout to expire. If not specified " -"will automatically be set to ``True`` on Unix." -msgstr "" - -#: ../Doc/library/asyncio-eventloop.rst:493 +#: library/asyncio-eventloop.rst:521 msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " @@ -675,13 +707,13 @@ msgid "" "this capability is unsupported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:499 +#: library/asyncio-eventloop.rst:527 msgid "" "*allow_broadcast* tells the kernel to allow this endpoint to send messages " "to the broadcast address." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:502 +#: library/asyncio-eventloop.rst:530 msgid "" "*sock* can optionally be specified in order to use a preexisting, already " "connected, :class:`socket.socket` object to be used by the transport. If " @@ -689,142 +721,155 @@ msgid "" "`None`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:507 +#: library/asyncio-eventloop.rst:535 msgid "" "See :ref:`UDP echo client protocol ` and :" "ref:`UDP echo server protocol ` examples." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:510 +#: library/asyncio-eventloop.rst:538 msgid "" "The *family*, *proto*, *flags*, *reuse_address*, *reuse_port, " "*allow_broadcast*, and *sock* parameters were added." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:514 +#: library/asyncio-eventloop.rst:542 +msgid "" +"The *reuse_address* parameter is no longer supported due to security " +"concerns." +msgstr "" + +#: library/asyncio-eventloop.rst:546 msgid "Added support for Windows." msgstr "Prise en charge sur Windows." -#: ../Doc/library/asyncio-eventloop.rst:521 +#: library/asyncio-eventloop.rst:553 msgid "Create a Unix connection." msgstr "Créer une connexion Unix" -#: ../Doc/library/asyncio-eventloop.rst:523 +#: library/asyncio-eventloop.rst:555 msgid "" "The socket family will be :py:data:`~socket.AF_UNIX`; socket type will be :" "py:data:`~socket.SOCK_STREAM`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:528 +#: library/asyncio-eventloop.rst:560 msgid "" "*path* is the name of a Unix domain socket and is required, unless a *sock* " "parameter is specified. Abstract Unix sockets, :class:`str`, :class:" "`bytes`, and :class:`~pathlib.Path` paths are supported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:533 +#: library/asyncio-eventloop.rst:565 msgid "" "See the documentation of the :meth:`loop.create_connection` method for " "information about arguments to this method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:537 -#: ../Doc/library/asyncio-eventloop.rst:657 -#: ../Doc/library/asyncio-eventloop.rst:1013 +#: library/asyncio-eventloop.rst:569 library/asyncio-eventloop.rst:689 +#: library/asyncio-eventloop.rst:1045 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilité ` : Unix." -#: ../Doc/library/asyncio-eventloop.rst:544 +#: library/asyncio-eventloop.rst:576 msgid "The *path* parameter can now be a :term:`path-like object`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:548 +#: library/asyncio-eventloop.rst:580 msgid "Creating network servers" msgstr "Créer des serveurs" -#: ../Doc/library/asyncio-eventloop.rst:558 +#: library/asyncio-eventloop.rst:590 msgid "" "Create a TCP server (socket type :data:`~socket.SOCK_STREAM`) listening on " "*port* of the *host* address." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:561 +#: library/asyncio-eventloop.rst:593 msgid "Returns a :class:`Server` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:563 +#: library/asyncio-eventloop.rst:595 +#, fuzzy msgid "Arguments:" -msgstr "" +msgstr "Arguments" -#: ../Doc/library/asyncio-eventloop.rst:568 +#: library/asyncio-eventloop.rst:600 msgid "" "The *host* parameter can be set to several types which determine where the " "server would be listening:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:571 +#: library/asyncio-eventloop.rst:603 msgid "" "If *host* is a string, the TCP server is bound to a single network interface " "specified by *host*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:574 +#: library/asyncio-eventloop.rst:606 msgid "" "If *host* is a sequence of strings, the TCP server is bound to all network " "interfaces specified by the sequence." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:577 +#: library/asyncio-eventloop.rst:609 msgid "" "If *host* is an empty string or ``None``, all interfaces are assumed and a " "list of multiple sockets will be returned (most likely one for IPv4 and " "another one for IPv6)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:581 +#: library/asyncio-eventloop.rst:613 msgid "" "*family* can be set to either :data:`socket.AF_INET` or :data:`~socket." "AF_INET6` to force the socket to use IPv4 or IPv6. If not set, the *family* " "will be determined from host name (defaults to :data:`~socket.AF_UNSPEC`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:586 +#: library/asyncio-eventloop.rst:618 msgid "*flags* is a bitmask for :meth:`getaddrinfo`." msgstr "*flags* est un masque de bits pour :meth:`getaddrinfo`." -#: ../Doc/library/asyncio-eventloop.rst:588 +#: library/asyncio-eventloop.rst:620 msgid "" "*sock* can optionally be specified in order to use a preexisting socket " "object. If specified, *host* and *port* must not be specified." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:591 +#: library/asyncio-eventloop.rst:623 msgid "" "*backlog* is the maximum number of queued connections passed to :meth:" "`~socket.socket.listen` (defaults to 100)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:594 +#: library/asyncio-eventloop.rst:626 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " "the accepted connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:602 +#: library/asyncio-eventloop.rst:629 +msgid "" +"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " +"state, without waiting for its natural timeout to expire. If not specified " +"will automatically be set to ``True`` on Unix." +msgstr "" + +#: library/asyncio-eventloop.rst:634 msgid "" "*reuse_port* tells the kernel to allow this endpoint to be bound to the same " "port as other existing endpoints are bound to, so long as they all set this " "flag when being created. This option is not supported on Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:607 +#: library/asyncio-eventloop.rst:639 msgid "" "*ssl_handshake_timeout* is (for a TLS server) the time in seconds to wait " "for the TLS handshake to complete before aborting the connection. ``60.0`` " "seconds if ``None`` (default)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:611 +#: library/asyncio-eventloop.rst:643 msgid "" "*start_serving* set to ``True`` (the default) causes the created server to " "start accepting connections immediately. When set to ``False``, the user " @@ -832,105 +877,103 @@ msgid "" "to make the server to start accepting connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:619 +#: library/asyncio-eventloop.rst:651 msgid "Added *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:632 +#: library/asyncio-eventloop.rst:664 msgid "The *host* parameter can be a sequence of strings." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:636 +#: library/asyncio-eventloop.rst:668 msgid "" "The :func:`start_server` function is a higher-level alternative API that " "returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " "be used in an async/await code." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:645 +#: library/asyncio-eventloop.rst:677 msgid "" "Similar to :meth:`loop.create_server` but works with the :py:data:`~socket." "AF_UNIX` socket family." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:648 +#: library/asyncio-eventloop.rst:680 msgid "" "*path* is the name of a Unix domain socket, and is required, unless a *sock* " "argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " "and :class:`~pathlib.Path` paths are supported." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:653 +#: library/asyncio-eventloop.rst:685 msgid "" "See the documentation of the :meth:`loop.create_server` method for " "information about arguments to this method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:660 +#: library/asyncio-eventloop.rst:692 msgid "The *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:664 +#: library/asyncio-eventloop.rst:696 msgid "The *path* parameter can now be a :class:`~pathlib.Path` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:669 +#: library/asyncio-eventloop.rst:701 msgid "Wrap an already accepted connection into a transport/protocol pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:671 +#: library/asyncio-eventloop.rst:703 msgid "" "This method can be used by servers that accept connections outside of " "asyncio but that use asyncio to handle them." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:674 -#: ../Doc/library/asyncio-eventloop.rst:741 +#: library/asyncio-eventloop.rst:706 library/asyncio-eventloop.rst:773 msgid "Parameters:" msgstr "Paramètres :" -#: ../Doc/library/asyncio-eventloop.rst:679 +#: library/asyncio-eventloop.rst:711 msgid "" "*sock* is a preexisting socket object returned from :meth:`socket.accept " "`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:682 +#: library/asyncio-eventloop.rst:714 msgid "" "*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " "accepted connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:685 +#: library/asyncio-eventloop.rst:717 msgid "" "*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " "wait for the SSL handshake to complete before aborting the connection. " "``60.0`` seconds if ``None`` (default)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:689 +#: library/asyncio-eventloop.rst:721 msgid "Returns a ``(transport, protocol)`` pair." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:699 +#: library/asyncio-eventloop.rst:731 msgid "Transferring files" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:704 +#: library/asyncio-eventloop.rst:736 msgid "" "Send a *file* over a *transport*. Return the total number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:707 +#: library/asyncio-eventloop.rst:739 msgid "The method uses high-performance :meth:`os.sendfile` if available." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:709 +#: library/asyncio-eventloop.rst:741 msgid "*file* must be a regular file object opened in binary mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:711 -#: ../Doc/library/asyncio-eventloop.rst:901 +#: library/asyncio-eventloop.rst:743 library/asyncio-eventloop.rst:933 msgid "" "*offset* tells from where to start reading the file. If specified, *count* " "is the total number of bytes to transmit as opposed to sending the file " @@ -939,98 +982,97 @@ msgid "" "obtain the actual number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:718 +#: library/asyncio-eventloop.rst:750 msgid "" "*fallback* set to ``True`` makes asyncio to manually read and send the file " "when the platform does not support the sendfile system call (e.g. Windows or " "SSL socket on Unix)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:722 +#: library/asyncio-eventloop.rst:754 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support the " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:729 +#: library/asyncio-eventloop.rst:761 msgid "TLS Upgrade" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:735 +#: library/asyncio-eventloop.rst:767 msgid "Upgrade an existing transport-based connection to TLS." msgstr "Convertit une connexion existante en connexion TLS." -#: ../Doc/library/asyncio-eventloop.rst:737 +#: library/asyncio-eventloop.rst:769 msgid "" "Return a new transport instance, that the *protocol* must start using " "immediately after the *await*. The *transport* instance passed to the " "*start_tls* method should never be used again." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:743 +#: library/asyncio-eventloop.rst:775 msgid "" "*transport* and *protocol* instances that methods like :meth:`~loop." "create_server` and :meth:`~loop.create_connection` return." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:747 +#: library/asyncio-eventloop.rst:779 msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:749 +#: library/asyncio-eventloop.rst:781 msgid "" "*server_side* pass ``True`` when a server-side connection is being upgraded " "(like the one created by :meth:`~loop.create_server`)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:752 +#: library/asyncio-eventloop.rst:784 msgid "" "*server_hostname*: sets or overrides the host name that the target server's " "certificate will be matched against." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:763 +#: library/asyncio-eventloop.rst:795 msgid "Watching file descriptors" msgstr "Surveiller des descripteurs de fichiers" -#: ../Doc/library/asyncio-eventloop.rst:767 +#: library/asyncio-eventloop.rst:799 msgid "" "Start monitoring the *fd* file descriptor for read availability and invoke " "*callback* with the specified arguments once *fd* is available for reading." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:773 +#: library/asyncio-eventloop.rst:805 msgid "Stop monitoring the *fd* file descriptor for read availability." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:777 +#: library/asyncio-eventloop.rst:809 msgid "" "Start monitoring the *fd* file descriptor for write availability and invoke " "*callback* with the specified arguments once *fd* is available for writing." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:781 -#: ../Doc/library/asyncio-eventloop.rst:1000 +#: library/asyncio-eventloop.rst:813 library/asyncio-eventloop.rst:1032 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:786 +#: library/asyncio-eventloop.rst:818 msgid "Stop monitoring the *fd* file descriptor for write availability." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:788 +#: library/asyncio-eventloop.rst:820 msgid "" "See also :ref:`Platform Support ` section for some " "limitations of these methods." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:793 +#: library/asyncio-eventloop.rst:825 msgid "Working with socket objects directly" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:795 +#: library/asyncio-eventloop.rst:827 msgid "" "In general, protocol implementations that use transport-based APIs such as :" "meth:`loop.create_connection` and :meth:`loop.create_server` are faster than " @@ -1039,49 +1081,46 @@ msgid "" "socket` objects directly is more convenient." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:804 +#: library/asyncio-eventloop.rst:836 msgid "" "Receive up to *nbytes* from *sock*. Asynchronous version of :meth:`socket." "recv() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:807 +#: library/asyncio-eventloop.rst:839 msgid "Return the received data as a bytes object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:809 -#: ../Doc/library/asyncio-eventloop.rst:823 -#: ../Doc/library/asyncio-eventloop.rst:838 -#: ../Doc/library/asyncio-eventloop.rst:851 -#: ../Doc/library/asyncio-eventloop.rst:877 -#: ../Doc/library/asyncio-eventloop.rst:915 +#: library/asyncio-eventloop.rst:841 library/asyncio-eventloop.rst:855 +#: library/asyncio-eventloop.rst:870 library/asyncio-eventloop.rst:883 +#: library/asyncio-eventloop.rst:909 library/asyncio-eventloop.rst:947 msgid "*sock* must be a non-blocking socket." msgstr "Le connecteur *sock* ne doit pas être bloquant." -#: ../Doc/library/asyncio-eventloop.rst:811 +#: library/asyncio-eventloop.rst:843 msgid "" "Even though this method was always documented as a coroutine method, " "releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " "is an ``async def`` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:818 +#: library/asyncio-eventloop.rst:850 msgid "" "Receive data from *sock* into the *buf* buffer. Modeled after the blocking :" "meth:`socket.recv_into() ` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:821 +#: library/asyncio-eventloop.rst:853 msgid "Return the number of bytes written to the buffer." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:829 +#: library/asyncio-eventloop.rst:861 msgid "" "Send *data* to the *sock* socket. Asynchronous version of :meth:`socket." "sendall() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:832 +#: library/asyncio-eventloop.rst:864 msgid "" "This method continues to send to the socket until either all data in *data* " "has been sent or an error occurs. ``None`` is returned on success. On " @@ -1090,23 +1129,23 @@ msgid "" "the connection." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:840 +#: library/asyncio-eventloop.rst:872 msgid "" "Even though the method was always documented as a coroutine method, before " "Python 3.7 it returned an :class:`Future`. Since Python 3.7, this is an " "``async def`` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:847 +#: library/asyncio-eventloop.rst:879 msgid "Connect *sock* to a remote socket at *address*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:849 +#: library/asyncio-eventloop.rst:881 msgid "" "Asynchronous version of :meth:`socket.connect() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:853 +#: library/asyncio-eventloop.rst:885 msgid "" "``address`` no longer needs to be resolved. ``sock_connect`` will try to " "check if the *address* is already resolved by calling :func:`socket." @@ -1114,19 +1153,19 @@ msgid "" "*address*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:862 +#: library/asyncio-eventloop.rst:894 msgid "" ":meth:`loop.create_connection` and :func:`asyncio.open_connection() " "`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:868 +#: library/asyncio-eventloop.rst:900 msgid "" "Accept a connection. Modeled after the blocking :meth:`socket.accept() " "` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:871 +#: library/asyncio-eventloop.rst:903 msgid "" "The socket must be bound to an address and listening for connections. The " "return value is a pair ``(conn, address)`` where *conn* is a *new* socket " @@ -1134,64 +1173,64 @@ msgid "" "the address bound to the socket on the other end of the connection." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:879 +#: library/asyncio-eventloop.rst:911 msgid "" "Even though the method was always documented as a coroutine method, before " "Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " "``async def`` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:886 +#: library/asyncio-eventloop.rst:918 msgid ":meth:`loop.create_server` and :func:`start_server`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:891 +#: library/asyncio-eventloop.rst:923 msgid "" "Send a file using high-performance :mod:`os.sendfile` if possible. Return " "the total number of bytes sent." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:894 +#: library/asyncio-eventloop.rst:926 msgid "" "Asynchronous version of :meth:`socket.sendfile() `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:896 +#: library/asyncio-eventloop.rst:928 msgid "" "*sock* must be a non-blocking :const:`socket.SOCK_STREAM` :class:`~socket." "socket`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:899 +#: library/asyncio-eventloop.rst:931 msgid "*file* must be a regular file object open in binary mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:908 +#: library/asyncio-eventloop.rst:940 msgid "" "*fallback*, when set to ``True``, makes asyncio manually read and send the " "file when the platform does not support the sendfile syscall (e.g. Windows " "or SSL socket on Unix)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:912 +#: library/asyncio-eventloop.rst:944 msgid "" "Raise :exc:`SendfileNotAvailableError` if the system does not support " "*sendfile* syscall and *fallback* is ``False``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:921 +#: library/asyncio-eventloop.rst:953 msgid "DNS" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:926 +#: library/asyncio-eventloop.rst:958 msgid "Asynchronous version of :meth:`socket.getaddrinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:930 +#: library/asyncio-eventloop.rst:962 msgid "Asynchronous version of :meth:`socket.getnameinfo`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:932 +#: library/asyncio-eventloop.rst:964 msgid "" "Both *getaddrinfo* and *getnameinfo* methods were always documented to " "return a coroutine, but prior to Python 3.7 they were, in fact, returning :" @@ -1199,68 +1238,67 @@ msgid "" "coroutines." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:940 +#: library/asyncio-eventloop.rst:972 msgid "Working with pipes" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:944 +#: library/asyncio-eventloop.rst:976 msgid "Register the read end of *pipe* in the event loop." msgstr "" "Branche l'extrémité en lecture du tube *pipe* à la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:949 +#: library/asyncio-eventloop.rst:981 msgid "*pipe* is a :term:`file-like object `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:951 +#: library/asyncio-eventloop.rst:983 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports the :class:" "`ReadTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:955 -#: ../Doc/library/asyncio-eventloop.rst:971 +#: library/asyncio-eventloop.rst:987 library/asyncio-eventloop.rst:1003 msgid "" "With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" "blocking mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:960 +#: library/asyncio-eventloop.rst:992 msgid "Register the write end of *pipe* in the event loop." msgstr "Branche l'extrémité en écriture de *pipe* à la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:965 +#: library/asyncio-eventloop.rst:997 msgid "*pipe* is :term:`file-like object `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:967 +#: library/asyncio-eventloop.rst:999 msgid "" "Return pair ``(transport, protocol)``, where *transport* supports :class:" "`WriteTransport` interface and *protocol* is an object instantiated by the " "*protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:976 +#: library/asyncio-eventloop.rst:1008 msgid "" ":class:`SelectorEventLoop` does not support the above methods on Windows. " "Use :class:`ProactorEventLoop` instead for Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:981 +#: library/asyncio-eventloop.rst:1013 msgid "" "The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:986 +#: library/asyncio-eventloop.rst:1018 msgid "Unix signals" msgstr "Signaux Unix" -#: ../Doc/library/asyncio-eventloop.rst:990 +#: library/asyncio-eventloop.rst:1022 msgid "Set *callback* as the handler for the *signum* signal." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:992 +#: library/asyncio-eventloop.rst:1024 msgid "" "The callback will be invoked by *loop*, along with other queued callbacks " "and runnable coroutines of that event loop. Unlike signal handlers " @@ -1268,56 +1306,56 @@ msgid "" "function is allowed to interact with the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:997 +#: library/asyncio-eventloop.rst:1029 msgid "" "Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " "Raise :exc:`RuntimeError` if there is a problem setting up the handler." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1003 +#: library/asyncio-eventloop.rst:1035 msgid "" "Like :func:`signal.signal`, this function must be invoked in the main thread." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1008 +#: library/asyncio-eventloop.rst:1040 msgid "Remove the handler for the *sig* signal." msgstr "Supprime le gestionnaire du signal *sig*." -#: ../Doc/library/asyncio-eventloop.rst:1010 +#: library/asyncio-eventloop.rst:1042 msgid "" "Return ``True`` if the signal handler was removed, or ``False`` if no " "handler was set for the given signal." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1017 +#: library/asyncio-eventloop.rst:1049 msgid "The :mod:`signal` module." msgstr "Le module :mod:`signal`." -#: ../Doc/library/asyncio-eventloop.rst:1021 +#: library/asyncio-eventloop.rst:1053 msgid "Executing code in thread or process pools" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1025 +#: library/asyncio-eventloop.rst:1057 msgid "Arrange for *func* to be called in the specified executor." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1027 +#: library/asyncio-eventloop.rst:1059 msgid "" "The *executor* argument should be an :class:`concurrent.futures.Executor` " "instance. The default executor is used if *executor* is ``None``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1071 +#: library/asyncio-eventloop.rst:1103 msgid "This method returns a :class:`asyncio.Future` object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1073 +#: library/asyncio-eventloop.rst:1105 msgid "" "Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1076 +#: library/asyncio-eventloop.rst:1108 msgid "" ":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " "thread pool executor it creates, instead leaving it up to the thread pool " @@ -1325,38 +1363,38 @@ msgid "" "default." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1085 +#: library/asyncio-eventloop.rst:1117 msgid "" "Set *executor* as the default executor used by :meth:`run_in_executor`. " "*executor* should be an instance of :class:`~concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1089 +#: library/asyncio-eventloop.rst:1121 msgid "" "Using an executor that is not an instance of :class:`~concurrent.futures." "ThreadPoolExecutor` is deprecated and will trigger an error in Python 3.9." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1094 +#: library/asyncio-eventloop.rst:1126 msgid "" "*executor* must be an instance of :class:`concurrent.futures." "ThreadPoolExecutor`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1099 +#: library/asyncio-eventloop.rst:1131 msgid "Error Handling API" msgstr "API de gestion d'erreur" -#: ../Doc/library/asyncio-eventloop.rst:1101 +#: library/asyncio-eventloop.rst:1133 msgid "Allows customizing how exceptions are handled in the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1105 +#: library/asyncio-eventloop.rst:1137 msgid "Set *handler* as the new event loop exception handler." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1107 +#: library/asyncio-eventloop.rst:1139 msgid "" "If *handler* is ``None``, the default exception handler will be set. " "Otherwise, *handler* must be a callable with the signature matching ``(loop, " @@ -1365,147 +1403,148 @@ msgid "" "(see :meth:`call_exception_handler` documentation for details about context)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1117 +#: library/asyncio-eventloop.rst:1149 msgid "" "Return the current exception handler, or ``None`` if no custom exception " "handler was set." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1124 +#: library/asyncio-eventloop.rst:1156 msgid "Default exception handler." msgstr "Gestionnaire d'exception par défaut." -#: ../Doc/library/asyncio-eventloop.rst:1126 +#: library/asyncio-eventloop.rst:1158 msgid "" "This is called when an exception occurs and no exception handler is set. " "This can be called by a custom exception handler that wants to defer to the " "default handler behavior." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1130 +#: library/asyncio-eventloop.rst:1162 msgid "" "*context* parameter has the same meaning as in :meth:" "`call_exception_handler`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1135 +#: library/asyncio-eventloop.rst:1167 msgid "Call the current event loop exception handler." msgstr "" "Appelle le gestionnaire d'exception de la boucle d'évènements actuelle." -#: ../Doc/library/asyncio-eventloop.rst:1137 +#: library/asyncio-eventloop.rst:1169 msgid "" "*context* is a ``dict`` object containing the following keys (new keys may " "be introduced in future Python versions):" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1140 +#: library/asyncio-eventloop.rst:1172 msgid "'message': Error message;" msgstr "``message`` : Message d'erreur ;" -#: ../Doc/library/asyncio-eventloop.rst:1141 +#: library/asyncio-eventloop.rst:1173 msgid "'exception' (optional): Exception object;" msgstr "``exception`` (optionnel): Un objet exception ;" -#: ../Doc/library/asyncio-eventloop.rst:1142 +#: library/asyncio-eventloop.rst:1174 msgid "'future' (optional): :class:`asyncio.Future` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1143 +#: library/asyncio-eventloop.rst:1175 msgid "'handle' (optional): :class:`asyncio.Handle` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1144 +#: library/asyncio-eventloop.rst:1176 msgid "'protocol' (optional): :ref:`Protocol ` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1145 +#: library/asyncio-eventloop.rst:1177 msgid "'transport' (optional): :ref:`Transport ` instance;" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1146 +#: library/asyncio-eventloop.rst:1178 msgid "'socket' (optional): :class:`socket.socket` instance." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1150 +#: library/asyncio-eventloop.rst:1182 msgid "" "This method should not be overloaded in subclassed event loops. For custom " "exception handling, use the :meth:`set_exception_handler()` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1155 +#: library/asyncio-eventloop.rst:1187 msgid "Enabling debug mode" msgstr "Active le mode débogage" -#: ../Doc/library/asyncio-eventloop.rst:1159 +#: library/asyncio-eventloop.rst:1191 msgid "Get the debug mode (:class:`bool`) of the event loop." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1161 +#: library/asyncio-eventloop.rst:1193 msgid "" "The default value is ``True`` if the environment variable :envvar:" "`PYTHONASYNCIODEBUG` is set to a non-empty string, ``False`` otherwise." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1167 +#: library/asyncio-eventloop.rst:1199 msgid "Set the debug mode of the event loop." msgstr "Active le mode débogage pour la boucle d'évènements." -#: ../Doc/library/asyncio-eventloop.rst:1171 +#: library/asyncio-eventloop.rst:1203 msgid "" "The new ``-X dev`` command line option can now also be used to enable the " "debug mode." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1176 +#: library/asyncio-eventloop.rst:1208 msgid "The :ref:`debug mode of asyncio `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1180 +#: library/asyncio-eventloop.rst:1212 msgid "Running Subprocesses" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1182 +#: library/asyncio-eventloop.rst:1214 msgid "" "Methods described in this subsections are low-level. In regular async/await " "code consider using the high-level :func:`asyncio.create_subprocess_shell` " "and :func:`asyncio.create_subprocess_exec` convenience functions instead." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1189 +#: library/asyncio-eventloop.rst:1221 msgid "" "The default asyncio event loop on **Windows** does not support subprocesses. " "See :ref:`Subprocess Support on Windows ` for " "details." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1197 +#: library/asyncio-eventloop.rst:1229 msgid "" "Create a subprocess from one or more string arguments specified by *args*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1200 +#: library/asyncio-eventloop.rst:1232 msgid "*args* must be a list of strings represented by:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1202 +#: library/asyncio-eventloop.rst:1234 +#, fuzzy msgid ":class:`str`;" -msgstr "" +msgstr ":class:`str`" -#: ../Doc/library/asyncio-eventloop.rst:1203 +#: library/asyncio-eventloop.rst:1235 msgid "" "or :class:`bytes`, encoded to the :ref:`filesystem encoding `." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1206 +#: library/asyncio-eventloop.rst:1238 msgid "" "The first string specifies the program executable, and the remaining strings " "specify the arguments. Together, string arguments form the ``argv`` of the " "program." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1210 +#: library/asyncio-eventloop.rst:1242 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=False`` and the list of strings passed as the first " @@ -1513,136 +1552,133 @@ msgid "" "which is list of strings, *subprocess_exec* takes multiple string arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1216 +#: library/asyncio-eventloop.rst:1248 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`asyncio.SubprocessProtocol` class." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1219 +#: library/asyncio-eventloop.rst:1251 msgid "Other parameters:" msgstr "Autres paramètres :" -#: ../Doc/library/asyncio-eventloop.rst:1221 +#: library/asyncio-eventloop.rst:1253 msgid "*stdin* can be any of these:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1223 +#: library/asyncio-eventloop.rst:1255 msgid "" "a file-like object representing a pipe to be connected to the subprocess's " "standard input stream using :meth:`~loop.connect_write_pipe`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1226 -#: ../Doc/library/asyncio-eventloop.rst:1238 -#: ../Doc/library/asyncio-eventloop.rst:1250 +#: library/asyncio-eventloop.rst:1258 library/asyncio-eventloop.rst:1270 +#: library/asyncio-eventloop.rst:1282 msgid "" "the :const:`subprocess.PIPE` constant (default) which will create a new pipe " "and connect it," msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1228 -#: ../Doc/library/asyncio-eventloop.rst:1240 -#: ../Doc/library/asyncio-eventloop.rst:1252 +#: library/asyncio-eventloop.rst:1260 library/asyncio-eventloop.rst:1272 +#: library/asyncio-eventloop.rst:1284 msgid "" "the value ``None`` which will make the subprocess inherit the file " "descriptor from this process" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1230 -#: ../Doc/library/asyncio-eventloop.rst:1242 -#: ../Doc/library/asyncio-eventloop.rst:1254 +#: library/asyncio-eventloop.rst:1262 library/asyncio-eventloop.rst:1274 +#: library/asyncio-eventloop.rst:1286 msgid "" "the :const:`subprocess.DEVNULL` constant which indicates that the special :" "data:`os.devnull` file will be used" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1233 +#: library/asyncio-eventloop.rst:1265 msgid "*stdout* can be any of these:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1235 +#: library/asyncio-eventloop.rst:1267 msgid "" "a file-like object representing a pipe to be connected to the subprocess's " "standard output stream using :meth:`~loop.connect_write_pipe`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1245 +#: library/asyncio-eventloop.rst:1277 msgid "*stderr* can be any of these:" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1247 +#: library/asyncio-eventloop.rst:1279 msgid "" "a file-like object representing a pipe to be connected to the subprocess's " "standard error stream using :meth:`~loop.connect_write_pipe`" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1256 +#: library/asyncio-eventloop.rst:1288 msgid "" "the :const:`subprocess.STDOUT` constant which will connect the standard " "error stream to the process' standard output stream" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1259 +#: library/asyncio-eventloop.rst:1291 msgid "" "All other keyword arguments are passed to :class:`subprocess.Popen` without " "interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " "*encoding* and *errors*, which should not be specified at all." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1264 +#: library/asyncio-eventloop.rst:1296 msgid "" "The ``asyncio`` subprocess API does not support decoding the streams as " "text. :func:`bytes.decode` can be used to convert the bytes returned from " "the stream to text." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1268 +#: library/asyncio-eventloop.rst:1300 msgid "" "See the constructor of the :class:`subprocess.Popen` class for documentation " "on other arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1271 +#: library/asyncio-eventloop.rst:1303 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " "object instantiated by the *protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1279 +#: library/asyncio-eventloop.rst:1311 msgid "" "Create a subprocess from *cmd*, which can be a :class:`str` or a :class:" "`bytes` string encoded to the :ref:`filesystem encoding `, using the platform's \"shell\" syntax." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1284 +#: library/asyncio-eventloop.rst:1316 msgid "" "This is similar to the standard library :class:`subprocess.Popen` class " "called with ``shell=True``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1287 +#: library/asyncio-eventloop.rst:1319 msgid "" "The *protocol_factory* must be a callable returning a subclass of the :class:" "`SubprocessProtocol` class." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1290 +#: library/asyncio-eventloop.rst:1322 msgid "" "See :meth:`~loop.subprocess_exec` for more details about the remaining " "arguments." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1293 +#: library/asyncio-eventloop.rst:1325 msgid "" "Returns a pair of ``(transport, protocol)``, where *transport* conforms to " "the :class:`SubprocessTransport` base class and *protocol* is an object " "instantiated by the *protocol_factory*." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1298 +#: library/asyncio-eventloop.rst:1330 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -1652,105 +1688,105 @@ msgid "" "used to construct shell commands." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1307 +#: library/asyncio-eventloop.rst:1339 msgid "Callback Handles" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1311 +#: library/asyncio-eventloop.rst:1343 msgid "" "A callback wrapper object returned by :meth:`loop.call_soon`, :meth:`loop." "call_soon_threadsafe`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1316 +#: library/asyncio-eventloop.rst:1348 msgid "" "Cancel the callback. If the callback has already been canceled or executed, " "this method has no effect." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1321 +#: library/asyncio-eventloop.rst:1353 msgid "Return ``True`` if the callback was cancelled." msgstr "Renvoie ``True`` si la fonction de rappel à été annulé." -#: ../Doc/library/asyncio-eventloop.rst:1327 +#: library/asyncio-eventloop.rst:1359 msgid "" "A callback wrapper object returned by :meth:`loop.call_later`, and :meth:" "`loop.call_at`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1330 +#: library/asyncio-eventloop.rst:1362 msgid "This class is a subclass of :class:`Handle`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1334 +#: library/asyncio-eventloop.rst:1366 msgid "Return a scheduled callback time as :class:`float` seconds." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1336 +#: library/asyncio-eventloop.rst:1368 msgid "" "The time is an absolute timestamp, using the same time reference as :meth:" "`loop.time`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1343 +#: library/asyncio-eventloop.rst:1375 msgid "Server Objects" msgstr "Objets Serveur" -#: ../Doc/library/asyncio-eventloop.rst:1345 +#: library/asyncio-eventloop.rst:1377 msgid "" "Server objects are created by :meth:`loop.create_server`, :meth:`loop." "create_unix_server`, :func:`start_server`, and :func:`start_unix_server` " "functions." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1349 +#: library/asyncio-eventloop.rst:1381 msgid "Do not instantiate the class directly." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1353 +#: library/asyncio-eventloop.rst:1385 msgid "" "*Server* objects are asynchronous context managers. When used in an ``async " "with`` statement, it's guaranteed that the Server object is closed and not " "accepting new connections when the ``async with`` statement is completed::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1366 +#: library/asyncio-eventloop.rst:1398 msgid "Server object is an asynchronous context manager since Python 3.7." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1371 +#: library/asyncio-eventloop.rst:1403 msgid "" "Stop serving: close listening sockets and set the :attr:`sockets` attribute " "to ``None``." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1374 +#: library/asyncio-eventloop.rst:1406 msgid "" "The sockets that represent existing incoming client connections are left " "open." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1377 +#: library/asyncio-eventloop.rst:1409 msgid "" "The server is closed asynchronously, use the :meth:`wait_closed` coroutine " "to wait until the server is closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1382 +#: library/asyncio-eventloop.rst:1414 msgid "Return the event loop associated with the server object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1388 +#: library/asyncio-eventloop.rst:1420 msgid "Start accepting connections." msgstr "Commence à accepter les connexions." -#: ../Doc/library/asyncio-eventloop.rst:1390 +#: library/asyncio-eventloop.rst:1422 msgid "" "This method is idempotent, so it can be called when the server is already " "being serving." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1393 +#: library/asyncio-eventloop.rst:1425 msgid "" "The *start_serving* keyword-only parameter to :meth:`loop.create_server` " "and :meth:`asyncio.start_server` allows creating a Server object that is not " @@ -1759,97 +1795,97 @@ msgid "" "accepting connections." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1404 +#: library/asyncio-eventloop.rst:1436 msgid "" "Start accepting connections until the coroutine is cancelled. Cancellation " "of ``serve_forever`` task causes the server to be closed." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1408 +#: library/asyncio-eventloop.rst:1440 msgid "" "This method can be called if the server is already accepting connections. " "Only one ``serve_forever`` task can exist per one *Server* object." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1430 +#: library/asyncio-eventloop.rst:1462 msgid "Return ``True`` if the server is accepting new connections." msgstr "Donne ``True`` si le serveur accepte de nouvelles connexions." -#: ../Doc/library/asyncio-eventloop.rst:1436 +#: library/asyncio-eventloop.rst:1468 msgid "Wait until the :meth:`close` method completes." msgstr "Attends que la méthode :meth:`close` se termine." -#: ../Doc/library/asyncio-eventloop.rst:1440 +#: library/asyncio-eventloop.rst:1472 msgid "List of :class:`socket.socket` objects the server is listening on." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1442 +#: library/asyncio-eventloop.rst:1474 msgid "" "Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " "server sockets directly. In 3.7 a copy of that list is returned." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1451 +#: library/asyncio-eventloop.rst:1483 msgid "Event Loop Implementations" msgstr "Implémentations de boucle d'évènements" -#: ../Doc/library/asyncio-eventloop.rst:1453 +#: library/asyncio-eventloop.rst:1485 msgid "" "asyncio ships with two different event loop implementations: :class:" "`SelectorEventLoop` and :class:`ProactorEventLoop`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1456 +#: library/asyncio-eventloop.rst:1488 msgid "" "By default asyncio is configured to use :class:`SelectorEventLoop` on Unix " "and :class:`ProactorEventLoop` on Windows." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1462 +#: library/asyncio-eventloop.rst:1494 msgid "An event loop based on the :mod:`selectors` module." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1464 +#: library/asyncio-eventloop.rst:1496 msgid "" "Uses the most efficient *selector* available for the given platform. It is " "also possible to manually configure the exact selector implementation to be " "used::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1476 +#: library/asyncio-eventloop.rst:1508 msgid ":ref:`Availability `: Unix, Windows." msgstr ":ref:`Disponibilité ` : Unix, Windows." -#: ../Doc/library/asyncio-eventloop.rst:1481 +#: library/asyncio-eventloop.rst:1513 msgid "An event loop for Windows that uses \"I/O Completion Ports\" (IOCP)." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1484 +#: library/asyncio-eventloop.rst:1516 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/library/asyncio-eventloop.rst:1487 +#: library/asyncio-eventloop.rst:1519 msgid "" "`MSDN documentation on I/O Completion Ports `_." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1493 +#: library/asyncio-eventloop.rst:1525 msgid "Abstract base class for asyncio-compliant event loops." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1495 +#: library/asyncio-eventloop.rst:1527 msgid "" "The :ref:`Event Loop Methods ` section lists all methods " "that an alternative implementation of ``AbstractEventLoop`` should have " "defined." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1501 +#: library/asyncio-eventloop.rst:1533 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-eventloop.rst:1503 +#: library/asyncio-eventloop.rst:1535 msgid "" "Note that all examples in this section **purposefully** show how to use the " "low-level event loop APIs, such as :meth:`loop.run_forever` and :meth:`loop." @@ -1857,70 +1893,70 @@ msgid "" "consider using the high-level functions like :func:`asyncio.run`." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1513 +#: library/asyncio-eventloop.rst:1545 msgid "Hello World with call_soon()" msgstr "\"Hello World\" avec ``call_soon()``" -#: ../Doc/library/asyncio-eventloop.rst:1515 +#: library/asyncio-eventloop.rst:1547 msgid "" "An example using the :meth:`loop.call_soon` method to schedule a callback. " "The callback displays ``\"Hello World\"`` and then stops the event loop::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1539 +#: library/asyncio-eventloop.rst:1571 msgid "" "A similar :ref:`Hello World ` example created with a coroutine " "and the :func:`run` function." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1546 +#: library/asyncio-eventloop.rst:1578 msgid "Display the current date with call_later()" msgstr "Afficher la date actuelle avec ``call_later()``" -#: ../Doc/library/asyncio-eventloop.rst:1548 +#: library/asyncio-eventloop.rst:1580 msgid "" "An example of a callback displaying the current date every second. The " "callback uses the :meth:`loop.call_later` method to reschedule itself after " "5 seconds, and then stops the event loop::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1576 +#: library/asyncio-eventloop.rst:1608 msgid "" "A similar :ref:`current date ` example created with a " "coroutine and the :func:`run` function." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1583 +#: library/asyncio-eventloop.rst:1615 msgid "Watch a file descriptor for read events" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1585 +#: library/asyncio-eventloop.rst:1617 msgid "" "Wait until a file descriptor received some data using the :meth:`loop." "add_reader` method and then close the event loop::" msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1623 +#: library/asyncio-eventloop.rst:1655 msgid "" "A similar :ref:`example ` using " "transports, protocols, and the :meth:`loop.create_connection` method." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1627 +#: library/asyncio-eventloop.rst:1659 msgid "" "Another similar :ref:`example ` " "using the high-level :func:`asyncio.open_connection` function and streams." msgstr "" -#: ../Doc/library/asyncio-eventloop.rst:1635 +#: library/asyncio-eventloop.rst:1667 msgid "Set signal handlers for SIGINT and SIGTERM" msgstr "Définit les gestionnaires de signaux pour *SIGINT* et *SIGTERM*" -#: ../Doc/library/asyncio-eventloop.rst:1637 +#: library/asyncio-eventloop.rst:1669 msgid "(This ``signals`` example only works on Unix.)" msgstr "(Cet exemple ne fonctionne que sur Unix.)" -#: ../Doc/library/asyncio-eventloop.rst:1639 +#: library/asyncio-eventloop.rst:1671 msgid "" "Register handlers for signals :py:data:`SIGINT` and :py:data:`SIGTERM` using " "the :meth:`loop.add_signal_handler` method::" diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po index 36750930b0..bf1e12c4e6 100644 --- a/library/asyncio-exceptions.po +++ b/library/asyncio-exceptions.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -18,76 +18,81 @@ msgstr "" msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/asyncio-exceptions.rst:13 -msgid "The operation has exceeded the given deadline." +#: ../Doc/library/asyncio-exceptions.rst:10 +msgid "**Source code:** :source:`Lib/asyncio/exceptions.py`" msgstr "" #: ../Doc/library/asyncio-exceptions.rst:16 +#, fuzzy +msgid "The operation has exceeded the given deadline." +msgstr "L'opération a dépassé le délai donné." + +#: ../Doc/library/asyncio-exceptions.rst:19 msgid "" "This exception is different from the builtin :exc:`TimeoutError` exception." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:22 +#: ../Doc/library/asyncio-exceptions.rst:25 msgid "The operation has been cancelled." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:24 +#: ../Doc/library/asyncio-exceptions.rst:27 msgid "" "This exception can be caught to perform custom operations when asyncio Tasks " "are cancelled. In almost all situations the exception must be re-raised." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:30 +#: ../Doc/library/asyncio-exceptions.rst:33 msgid ":exc:`CancelledError` is now a subclass of :class:`BaseException`." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:35 +#: ../Doc/library/asyncio-exceptions.rst:38 msgid "Invalid internal state of :class:`Task` or :class:`Future`." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:37 +#: ../Doc/library/asyncio-exceptions.rst:40 msgid "" "Can be raised in situations like setting a result value for a *Future* " "object that already has a result value set." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:43 +#: ../Doc/library/asyncio-exceptions.rst:46 msgid "" "The \"sendfile\" syscall is not available for the given socket or file type." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:46 +#: ../Doc/library/asyncio-exceptions.rst:49 msgid "A subclass of :exc:`RuntimeError`." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:51 +#: ../Doc/library/asyncio-exceptions.rst:54 msgid "The requested read operation did not complete fully." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:53 +#: ../Doc/library/asyncio-exceptions.rst:56 msgid "Raised by the :ref:`asyncio stream APIs`." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:55 +#: ../Doc/library/asyncio-exceptions.rst:58 msgid "This exception is a subclass of :exc:`EOFError`." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:59 +#: ../Doc/library/asyncio-exceptions.rst:62 msgid "The total number (:class:`int`) of expected bytes." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:63 +#: ../Doc/library/asyncio-exceptions.rst:66 msgid "A string of :class:`bytes` read before the end of stream was reached." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:68 +#: ../Doc/library/asyncio-exceptions.rst:71 msgid "Reached the buffer size limit while looking for a separator." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:70 +#: ../Doc/library/asyncio-exceptions.rst:73 msgid "Raised by the :ref:`asyncio stream APIs `." msgstr "" -#: ../Doc/library/asyncio-exceptions.rst:74 +#: ../Doc/library/asyncio-exceptions.rst:77 msgid "The total number of to be consumed bytes." msgstr "" diff --git a/library/asyncio-future.po b/library/asyncio-future.po index 1951d37847..e211b77a63 100644 --- a/library/asyncio-future.po +++ b/library/asyncio-future.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -20,282 +20,371 @@ msgstr "Futurs" #: ../Doc/library/asyncio-future.rst:10 msgid "" +"**Source code:** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" +"base_futures.py`" +msgstr "" +"**Code source :** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" +"base_futures.py`" + +#: ../Doc/library/asyncio-future.rst:15 +msgid "" "*Future* objects are used to bridge **low-level callback-based code** with " "high-level async/await code." msgstr "" +"Les objets *Future* sont utilisés comme passerelles entre du **code bas " +"niveau basé sur des fonctions de rappel** et du code haut niveau utilisant " +"*async* et *await*." -#: ../Doc/library/asyncio-future.rst:15 +#: ../Doc/library/asyncio-future.rst:20 msgid "Future Functions" -msgstr "" +msgstr "Fonctions pour *Future*" -#: ../Doc/library/asyncio-future.rst:19 +#: ../Doc/library/asyncio-future.rst:24 msgid "Return ``True`` if *obj* is either of:" -msgstr "" +msgstr "Renvoie ``True`` si *obj* est soit :" -#: ../Doc/library/asyncio-future.rst:21 +#: ../Doc/library/asyncio-future.rst:26 msgid "an instance of :class:`asyncio.Future`," -msgstr "" +msgstr "une instance de :class:`asyncio.Future` ;" -#: ../Doc/library/asyncio-future.rst:22 +#: ../Doc/library/asyncio-future.rst:27 msgid "an instance of :class:`asyncio.Task`," -msgstr "" +msgstr "une instance de :class:`asyncio.Task` ;" -#: ../Doc/library/asyncio-future.rst:23 +#: ../Doc/library/asyncio-future.rst:28 msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." msgstr "" +"un objet se comportant comme *Future* et possédant un attribut " +"``_asyncio_future_blocking``." -#: ../Doc/library/asyncio-future.rst:31 +#: ../Doc/library/asyncio-future.rst:36 msgid "Return:" -msgstr "" +msgstr "Renvoie :" -#: ../Doc/library/asyncio-future.rst:33 +#: ../Doc/library/asyncio-future.rst:38 msgid "" "*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a " "Future-like object (:func:`isfuture` is used for the test.)" msgstr "" +"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:`Task` ou " +"se comportant comme un *Future*. :func:`isfuture` est utilisée pour le test ;" -#: ../Doc/library/asyncio-future.rst:37 +#: ../Doc/library/asyncio-future.rst:42 msgid "" "a :class:`Task` object wrapping *obj*, if *obj* is a coroutine (:func:" "`iscoroutine` is used for the test); in this case the coroutine will be " "scheduled by ``ensure_future()``." msgstr "" +"un objet :class:`Task` encapsulant *obj* si ce dernier est une coroutine (:" +"func:`iscoroutine` est utilisée pour le test). Dans ce cas, l’exécution de " +"la coroutine sera planifiée par ``ensure_future()`` ;" -#: ../Doc/library/asyncio-future.rst:42 +#: ../Doc/library/asyncio-future.rst:47 msgid "" "a :class:`Task` object that would await on *obj*, if *obj* is an awaitable (:" "func:`inspect.isawaitable` is used for the test.)" msgstr "" +"un objet :class:`Task` qui attendra (*await*) *obj* si ce dernier peut être " +"attendu (*awaitable*). :func:`iscoroutine` est utilisée pour le test." -#: ../Doc/library/asyncio-future.rst:45 +#: ../Doc/library/asyncio-future.rst:50 msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." msgstr "" +"Si *obj* ne correspond à aucun des critères ci-dessus, une exception :exc:" +"`TypeError` est levée." -#: ../Doc/library/asyncio-future.rst:49 +#: ../Doc/library/asyncio-future.rst:54 msgid "" "See also the :func:`create_task` function which is the preferred way for " "creating new Tasks." msgstr "" +"Voir aussi la fonction :func:`create_task` qui est la manière privilégiée " +"pour créer des nouvelles tâches." -#: ../Doc/library/asyncio-future.rst:52 +#: ../Doc/library/asyncio-future.rst:57 msgid "The function accepts any :term:`awaitable` object." msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." -#: ../Doc/library/asyncio-future.rst:58 +#: ../Doc/library/asyncio-future.rst:63 msgid "" "Wrap a :class:`concurrent.futures.Future` object in a :class:`asyncio." "Future` object." msgstr "" +"Encapsule un objet :class:`concurrent.futures.Future` dans un objet :class:" +"`asyncio.Future`." -#: ../Doc/library/asyncio-future.rst:63 +#: ../Doc/library/asyncio-future.rst:68 msgid "Future Object" -msgstr "" +msgstr "Objet *Future*" -#: ../Doc/library/asyncio-future.rst:67 +#: ../Doc/library/asyncio-future.rst:72 msgid "" "A Future represents an eventual result of an asynchronous operation. Not " "thread-safe." msgstr "" +"Un *Future* représente le résultat final d'une opération asynchrone. Il " +"n'est pas conçu pour pouvoir être utilisé par plusieurs fils d'exécution." -#: ../Doc/library/asyncio-future.rst:70 +#: ../Doc/library/asyncio-future.rst:75 msgid "" "Future is an :term:`awaitable` object. Coroutines can await on Future " "objects until they either have a result or an exception set, or until they " "are cancelled." msgstr "" -#: ../Doc/library/asyncio-future.rst:74 +#: ../Doc/library/asyncio-future.rst:79 msgid "" "Typically Futures are used to enable low-level callback-based code (e.g. in " "protocols implemented using asyncio :ref:`transports `) to interoperate with high-level async/await code." msgstr "" +"Les *Futures* sont habituellement utilisés pour permettre à du code bas " +"niveau basé sur des fonctions de rappel (par exemple : les protocoles " +"utilisant *asyncio* :ref:`transports `) " +"d'interagir avec du code haut niveau utilisant *async* et *await*." -#: ../Doc/library/asyncio-future.rst:79 +#: ../Doc/library/asyncio-future.rst:84 msgid "" "The rule of thumb is to never expose Future objects in user-facing APIs, and " "the recommended way to create a Future object is to call :meth:`loop." "create_future`. This way alternative event loop implementations can inject " "their own optimized implementations of a Future object." msgstr "" +"Une bonne règle empirique est de ne jamais exposer des objets *Future* dans " +"des *API* destinées à l'utilisateur. La façon privilégiée de créer des " +"objets *Future* est d'appeler la méthode :meth:`loop.create_future`. Cela " +"permet aux implémentations alternatives de la boucle d'évènements d'utiliser " +"leur propre implémentation de l'objet *Future*." -#: ../Doc/library/asyncio-future.rst:85 +#: ../Doc/library/asyncio-future.rst:90 msgid "Added support for the :mod:`contextvars` module." msgstr "Ajout du support du module :mod:`contextvars`." -#: ../Doc/library/asyncio-future.rst:90 +#: ../Doc/library/asyncio-future.rst:95 msgid "Return the result of the Future." -msgstr "" +msgstr "Renvoie le résultat du *Future*." -#: ../Doc/library/asyncio-future.rst:92 +#: ../Doc/library/asyncio-future.rst:97 msgid "" "If the Future is *done* and has a result set by the :meth:`set_result` " "method, the result value is returned." msgstr "" +"Si le *Future* est « terminé » et a un résultat défini par la méthode :meth:" +"`set_result`, ce résultat est renvoyé." -#: ../Doc/library/asyncio-future.rst:95 +#: ../Doc/library/asyncio-future.rst:100 msgid "" "If the Future is *done* and has an exception set by the :meth:" "`set_exception` method, this method raises the exception." msgstr "" +"Si le *Future* est « terminé » et a une exception définie par la méthode :" +"meth:`set_exception`, cette méthode lève l'exception." -#: ../Doc/library/asyncio-future.rst:98 ../Doc/library/asyncio-future.rst:183 +#: ../Doc/library/asyncio-future.rst:103 ../Doc/library/asyncio-future.rst:188 msgid "" "If the Future has been *cancelled*, this method raises a :exc:" "`CancelledError` exception." msgstr "" +"Si le *Future* a été *annulé*, cette méthode lève une exception :exc:" +"`CancelledError`." -#: ../Doc/library/asyncio-future.rst:101 +#: ../Doc/library/asyncio-future.rst:106 +#, fuzzy msgid "" "If the Future's result isn't yet available, this method raises a :exc:" "`InvalidStateError` exception." msgstr "" +"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " +"une exception :exc:`InvalidStateError`." -#: ../Doc/library/asyncio-future.rst:106 +#: ../Doc/library/asyncio-future.rst:111 msgid "Mark the Future as *done* and set its result." -msgstr "" +msgstr "Marque le *Future* comme « terminé » et définit son résultat." -#: ../Doc/library/asyncio-future.rst:108 ../Doc/library/asyncio-future.rst:115 +#: ../Doc/library/asyncio-future.rst:113 ../Doc/library/asyncio-future.rst:120 msgid "" "Raises a :exc:`InvalidStateError` error if the Future is already *done*." msgstr "" +"Lève une erreur :exc:`InvalidStateError` si le *Future* est déjà « terminé »." -#: ../Doc/library/asyncio-future.rst:113 +#: ../Doc/library/asyncio-future.rst:118 msgid "Mark the Future as *done* and set an exception." -msgstr "" +msgstr "Marque le *Future* comme « terminé » et définit une exception." -#: ../Doc/library/asyncio-future.rst:120 +#: ../Doc/library/asyncio-future.rst:125 msgid "Return ``True`` if the Future is *done*." -msgstr "" +msgstr "Renvoie ``True`` si le *Future* est « terminé »." -#: ../Doc/library/asyncio-future.rst:122 +#: ../Doc/library/asyncio-future.rst:127 msgid "" "A Future is *done* if it was *cancelled* or if it has a result or an " "exception set with :meth:`set_result` or :meth:`set_exception` calls." msgstr "" +"Un *Future* est « terminé » s'il a été « annulé » ou si un résultat ou une " +"exception a été définie par les méthodes :meth:`set_result` ou :meth:" +"`set_exception`." -#: ../Doc/library/asyncio-future.rst:128 +#: ../Doc/library/asyncio-future.rst:133 msgid "Return ``True`` if the Future was *cancelled*." -msgstr "" +msgstr "Renvoie ``True`` si le *Future* a été « annulé »." -#: ../Doc/library/asyncio-future.rst:130 +#: ../Doc/library/asyncio-future.rst:135 msgid "" "The method is usually used to check if a Future is not *cancelled* before " "setting a result or an exception for it::" msgstr "" +"Cette méthode est habituellement utilisée pour vérifier qu'un *Future* n'est " +"pas « annulé » avant de définir un résultat ou une exception pour celui-ci ::" -#: ../Doc/library/asyncio-future.rst:138 +#: ../Doc/library/asyncio-future.rst:143 msgid "Add a callback to be run when the Future is *done*." msgstr "" +"Ajoute une fonction de rappel à exécuter lorsque le *Future* est « terminé »." -#: ../Doc/library/asyncio-future.rst:140 +#: ../Doc/library/asyncio-future.rst:145 msgid "The *callback* is called with the Future object as its only argument." msgstr "" +"L'argument *callback* est appelé avec l'objet *Future* comme seul argument." -#: ../Doc/library/asyncio-future.rst:143 +#: ../Doc/library/asyncio-future.rst:148 msgid "" "If the Future is already *done* when this method is called, the callback is " "scheduled with :meth:`loop.call_soon`." msgstr "" +"Si le *Future* est déjà « terminé » lorsque la méthode est appelée, " +"l'exécution de la fonction de rappel est planifiée avec :meth:`loop." +"call_soon`." -#: ../Doc/library/asyncio-future.rst:146 +#: ../Doc/library/asyncio-future.rst:151 msgid "" "An optional keyword-only *context* argument allows specifying a custom :" "class:`contextvars.Context` for the *callback* to run in. The current " "context is used when no *context* is provided." msgstr "" +"L'argument nommé optionnel *context* permet de spécifier une classe :class:" +"`contextvars.Context` personnalisée dans laquelle la fonction de rappel " +"s’exécutera. Le contexte actuel est utilisé si *context* n'est pas fourni." -#: ../Doc/library/asyncio-future.rst:150 +#: ../Doc/library/asyncio-future.rst:155 msgid "" ":func:`functools.partial` can be used to pass parameters to the callback, e." "g.::" msgstr "" +":func:`functools.partial` peut être utilisée pour passer des paramètres à la " +"fonction de rappel ::" -#: ../Doc/library/asyncio-future.rst:157 +#: ../Doc/library/asyncio-future.rst:162 msgid "" "The *context* keyword-only parameter was added. See :pep:`567` for more " "details." msgstr "" +"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." -#: ../Doc/library/asyncio-future.rst:163 +#: ../Doc/library/asyncio-future.rst:168 msgid "Remove *callback* from the callbacks list." msgstr "Retire *callback* de la liste de fonctions de rappel." -#: ../Doc/library/asyncio-future.rst:165 +#: ../Doc/library/asyncio-future.rst:170 msgid "" "Returns the number of callbacks removed, which is typically 1, unless a " "callback was added more than once." msgstr "" +"Renvoie le nombre de fonctions de rappel retiré. La méthode renvoie " +"généralement 1, à moins que la fonction ait été ajoutée plus d'une fois." -#: ../Doc/library/asyncio-future.rst:170 +#: ../Doc/library/asyncio-future.rst:175 msgid "Cancel the Future and schedule callbacks." -msgstr "" +msgstr "Annule le *Future* et planifie l'exécution des fonctions de rappel." -#: ../Doc/library/asyncio-future.rst:172 +#: ../Doc/library/asyncio-future.rst:177 msgid "" "If the Future is already *done* or *cancelled*, return ``False``. Otherwise, " "change the Future's state to *cancelled*, schedule the callbacks, and return " "``True``." msgstr "" +"Si le *Future* est déjà « terminé » ou « annulé », renvoie ``False``. " +"Autrement, change l'état du *Future* à « annulé », planifie l'exécution des " +"fonctions de rappel et renvoie ``True``." -#: ../Doc/library/asyncio-future.rst:178 +#: ../Doc/library/asyncio-future.rst:183 msgid "Return the exception that was set on this Future." -msgstr "" +msgstr "Renvoie l'exception définie pour ce *Future*." -#: ../Doc/library/asyncio-future.rst:180 +#: ../Doc/library/asyncio-future.rst:185 msgid "" "The exception (or ``None`` if no exception was set) is returned only if the " "Future is *done*." msgstr "" +"L'exception, ou ``None`` si aucune exception n'a été définie, est renvoyé " +"seulement si le *Future* est « terminé »." -#: ../Doc/library/asyncio-future.rst:186 +#: ../Doc/library/asyncio-future.rst:191 msgid "" "If the Future isn't *done* yet, this method raises an :exc:" "`InvalidStateError` exception." msgstr "" +"Si le *Future* n'est pas encore « terminé », cette méthode lève une " +"exception :exc:`InvalidStateError`." -#: ../Doc/library/asyncio-future.rst:191 +#: ../Doc/library/asyncio-future.rst:196 msgid "Return the event loop the Future object is bound to." -msgstr "" +msgstr "Renvoie la boucle d'évènements à laquelle le *Future* est attaché." -#: ../Doc/library/asyncio-future.rst:198 +#: ../Doc/library/asyncio-future.rst:203 msgid "" "This example creates a Future object, creates and schedules an asynchronous " "Task to set result for the Future, and waits until the Future has a result::" msgstr "" +"Cet exemple crée un objet *Future*, puis crée et planifie l’exécution d'une " +"tâche asynchrone qui définira le résultat du *Future* et attend jusqu'à ce " +"que le *Future* ait un résultat ::" -#: ../Doc/library/asyncio-future.rst:233 +#: ../Doc/library/asyncio-future.rst:238 msgid "" "The Future object was designed to mimic :class:`concurrent.futures.Future`. " "Key differences include:" msgstr "" +"L'objet *Future* est conçu pour imiter la classe :class:`concurrent.futures." +"Future`. Les principales différences sont :" -#: ../Doc/library/asyncio-future.rst:236 +#: ../Doc/library/asyncio-future.rst:241 msgid "" "unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " "be awaited." msgstr "" +"contrairement au *Future asyncio*, les instances de :class:`concurrent." +"futures.Future` ne peuvent pas être attendues ;" -#: ../Doc/library/asyncio-future.rst:239 +#: ../Doc/library/asyncio-future.rst:244 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " "accept the *timeout* argument." msgstr "" +":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` " +"n'acceptent pas d'argument *timeout* ;" -#: ../Doc/library/asyncio-future.rst:242 +#: ../Doc/library/asyncio-future.rst:247 msgid "" ":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise an :" "exc:`InvalidStateError` exception when the Future is not *done*." msgstr "" +":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` lèvent une " +"exception :exc:`InvalidStateError` lorsque le *Future* n'est pas " +"« terminé » ;" -#: ../Doc/library/asyncio-future.rst:246 +#: ../Doc/library/asyncio-future.rst:251 msgid "" "Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " "called immediately. They are scheduled with :meth:`loop.call_soon` instead." msgstr "" +"les fonctions de rappel enregistrées à l'aide de :meth:`asyncio.Future." +"add_done_callback` ne sont pas exécutées immédiatement mais planifiées avec :" +"meth:`loop.call_soon` ;" -#: ../Doc/library/asyncio-future.rst:250 +#: ../Doc/library/asyncio-future.rst:255 msgid "" "asyncio Future is not compatible with the :func:`concurrent.futures.wait` " "and :func:`concurrent.futures.as_completed` functions." msgstr "" +"les *Future asyncio* ne sont pas compatibles avec les fonctions :func:" +"`concurrent.futures.wait` et :func:`concurrent.futures.as_completed` ;" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po index 16daf66de2..33f1cea35a 100644 --- a/library/asyncio-llapi-index.po +++ b/library/asyncio-llapi-index.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -28,7 +28,7 @@ msgstr "Obtenir une boucle d'évènements" #: ../Doc/library/asyncio-llapi-index.rst:18 msgid ":func:`asyncio.get_running_loop`" -msgstr "" +msgstr ":func:`asyncio.get_running_loop`" #: ../Doc/library/asyncio-llapi-index.rst:19 msgid "The **preferred** function to get the running event loop." @@ -36,7 +36,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:21 msgid ":func:`asyncio.get_event_loop`" -msgstr "" +msgstr ":func:`asyncio.get_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:22 msgid "Get an event loop instance (current or via the policy)." @@ -44,7 +44,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:24 msgid ":func:`asyncio.set_event_loop`" -msgstr "" +msgstr ":func:`asyncio.set_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:25 msgid "Set the event loop as current via the current policy." @@ -52,7 +52,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:27 msgid ":func:`asyncio.new_event_loop`" -msgstr "" +msgstr ":func:`asyncio.new_event_loop`" #: ../Doc/library/asyncio-llapi-index.rst:28 msgid "Create a new event loop." @@ -83,7 +83,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:47 msgid ":meth:`loop.run_until_complete`" -msgstr "" +msgstr ":meth:`loop.run_until_complete`" #: ../Doc/library/asyncio-llapi-index.rst:48 msgid "Run a Future/Task/awaitable until complete." @@ -91,7 +91,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:50 msgid ":meth:`loop.run_forever`" -msgstr "" +msgstr ":meth:`loop.run_forever`" #: ../Doc/library/asyncio-llapi-index.rst:51 msgid "Run the event loop forever." @@ -99,7 +99,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:53 msgid ":meth:`loop.stop`" -msgstr "" +msgstr ":meth:`loop.stop`" #: ../Doc/library/asyncio-llapi-index.rst:54 msgid "Stop the event loop." @@ -107,7 +107,7 @@ msgstr "Arrête l'exécution de la boucle d'évènements." #: ../Doc/library/asyncio-llapi-index.rst:56 msgid ":meth:`loop.close`" -msgstr "" +msgstr ":meth:`loop.close`" #: ../Doc/library/asyncio-llapi-index.rst:57 msgid "Close the event loop." @@ -115,7 +115,7 @@ msgstr "Arrête la boucle d'évènements." #: ../Doc/library/asyncio-llapi-index.rst:59 msgid ":meth:`loop.is_running()`" -msgstr "" +msgstr ":meth:`loop.is_running()`" #: ../Doc/library/asyncio-llapi-index.rst:60 msgid "Return ``True`` if the event loop is running." @@ -123,11 +123,12 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:62 msgid ":meth:`loop.is_closed()`" -msgstr "" +msgstr ":meth:`loop.is_closed()`" #: ../Doc/library/asyncio-llapi-index.rst:63 +#, fuzzy msgid "Return ``True`` if the event loop is closed." -msgstr "" +msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." #: ../Doc/library/asyncio-llapi-index.rst:65 msgid "``await`` :meth:`loop.shutdown_asyncgens`" @@ -139,11 +140,11 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:69 msgid "Debugging" -msgstr "" +msgstr "Débogage" #: ../Doc/library/asyncio-llapi-index.rst:74 msgid ":meth:`loop.set_debug`" -msgstr "" +msgstr ":meth:`loop.set_debug`" #: ../Doc/library/asyncio-llapi-index.rst:75 msgid "Enable or disable the debug mode." @@ -151,7 +152,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:77 msgid ":meth:`loop.get_debug`" -msgstr "" +msgstr ":meth:`loop.get_debug`" #: ../Doc/library/asyncio-llapi-index.rst:78 msgid "Get the current debug mode." @@ -163,7 +164,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:86 msgid ":meth:`loop.call_soon`" -msgstr "" +msgstr ":meth:`loop.call_soon`" #: ../Doc/library/asyncio-llapi-index.rst:87 msgid "Invoke a callback soon." @@ -171,7 +172,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:89 msgid ":meth:`loop.call_soon_threadsafe`" -msgstr "" +msgstr ":meth:`loop.call_soon_threadsafe`" #: ../Doc/library/asyncio-llapi-index.rst:90 msgid "A thread-safe variant of :meth:`loop.call_soon`." @@ -179,7 +180,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:92 msgid ":meth:`loop.call_later`" -msgstr "" +msgstr ":meth:`loop.call_later`" #: ../Doc/library/asyncio-llapi-index.rst:93 msgid "Invoke a callback *after* the given time." @@ -187,7 +188,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:95 msgid ":meth:`loop.call_at`" -msgstr "" +msgstr ":meth:`loop.call_at`" #: ../Doc/library/asyncio-llapi-index.rst:96 msgid "Invoke a callback *at* the given time." @@ -209,7 +210,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:108 msgid ":meth:`loop.set_default_executor`" -msgstr "" +msgstr ":meth:`loop.set_default_executor`" #: ../Doc/library/asyncio-llapi-index.rst:109 msgid "Set the default executor for :meth:`loop.run_in_executor`." @@ -221,7 +222,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:117 msgid ":meth:`loop.create_future`" -msgstr "" +msgstr ":meth:`loop.create_future`" #: ../Doc/library/asyncio-llapi-index.rst:118 msgid "Create a :class:`Future` object." @@ -229,7 +230,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:120 msgid ":meth:`loop.create_task`" -msgstr "" +msgstr ":meth:`loop.create_task`" #: ../Doc/library/asyncio-llapi-index.rst:121 msgid "Schedule coroutine as a :class:`Task`." @@ -237,7 +238,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:123 msgid ":meth:`loop.set_task_factory`" -msgstr "" +msgstr ":meth:`loop.set_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:124 msgid "" @@ -247,7 +248,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:127 msgid ":meth:`loop.get_task_factory`" -msgstr "" +msgstr ":meth:`loop.get_task_factory`" #: ../Doc/library/asyncio-llapi-index.rst:128 msgid "" @@ -413,7 +414,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:204 msgid ":meth:`loop.add_reader`" -msgstr "" +msgstr ":meth:`loop.add_reader`" #: ../Doc/library/asyncio-llapi-index.rst:205 msgid "Start watching a file descriptor for read availability." @@ -421,7 +422,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:207 msgid ":meth:`loop.remove_reader`" -msgstr "" +msgstr ":meth:`loop.remove_reader`" #: ../Doc/library/asyncio-llapi-index.rst:208 msgid "Stop watching a file descriptor for read availability." @@ -429,7 +430,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:210 msgid ":meth:`loop.add_writer`" -msgstr "" +msgstr ":meth:`loop.add_writer`" #: ../Doc/library/asyncio-llapi-index.rst:211 msgid "Start watching a file descriptor for write availability." @@ -437,19 +438,20 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:213 msgid ":meth:`loop.remove_writer`" -msgstr "" +msgstr ":meth:`loop.remove_writer`" #: ../Doc/library/asyncio-llapi-index.rst:214 msgid "Stop watching a file descriptor for write availability." msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:217 +#, fuzzy msgid "Unix Signals" -msgstr "" +msgstr "Signaux Unix" #: ../Doc/library/asyncio-llapi-index.rst:222 msgid ":meth:`loop.add_signal_handler`" -msgstr "" +msgstr ":meth:`loop.add_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:223 msgid "Add a handler for a :mod:`signal`." @@ -457,7 +459,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:225 msgid ":meth:`loop.remove_signal_handler`" -msgstr "" +msgstr ":meth:`loop.remove_signal_handler`" #: ../Doc/library/asyncio-llapi-index.rst:226 msgid "Remove a handler for a :mod:`signal`." @@ -469,7 +471,7 @@ msgstr "Sous-processus" #: ../Doc/library/asyncio-llapi-index.rst:234 msgid ":meth:`loop.subprocess_exec`" -msgstr "" +msgstr ":meth:`loop.subprocess_exec`" #: ../Doc/library/asyncio-llapi-index.rst:235 msgid "Spawn a subprocess." @@ -477,7 +479,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:237 msgid ":meth:`loop.subprocess_shell`" -msgstr "" +msgstr ":meth:`loop.subprocess_shell`" #: ../Doc/library/asyncio-llapi-index.rst:238 msgid "Spawn a subprocess from a shell command." @@ -489,7 +491,7 @@ msgstr "Gestion des erreurs" #: ../Doc/library/asyncio-llapi-index.rst:246 msgid ":meth:`loop.call_exception_handler`" -msgstr "" +msgstr ":meth:`loop.call_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:247 msgid "Call the exception handler." @@ -497,7 +499,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:249 msgid ":meth:`loop.set_exception_handler`" -msgstr "" +msgstr ":meth:`loop.set_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:250 msgid "Set a new exception handler." @@ -505,7 +507,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:252 msgid ":meth:`loop.get_exception_handler`" -msgstr "" +msgstr ":meth:`loop.get_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:253 msgid "Get the current exception handler." @@ -513,7 +515,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:255 msgid ":meth:`loop.default_exception_handler`" -msgstr "" +msgstr ":meth:`loop.default_exception_handler`" #: ../Doc/library/asyncio-llapi-index.rst:256 msgid "The default exception handler implementation." @@ -802,7 +804,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:407 msgid "Protocols" -msgstr "" +msgstr "Protocoles" #: ../Doc/library/asyncio-llapi-index.rst:409 msgid "Protocol classes can implement the following **callback methods**:" @@ -918,9 +920,12 @@ msgid "" msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:476 +#, fuzzy msgid "" "Called when the child process writes data into its *stdout* or *stderr* pipe." msgstr "" +"Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " +"standard." #: ../Doc/library/asyncio-llapi-index.rst:479 msgid "" @@ -961,15 +966,15 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:503 msgid ":meth:`asyncio.get_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.get_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:504 msgid "Return the current process-wide policy." -msgstr "" +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." #: ../Doc/library/asyncio-llapi-index.rst:506 msgid ":meth:`asyncio.set_event_loop_policy`" -msgstr "" +msgstr ":meth:`asyncio.set_event_loop_policy`" #: ../Doc/library/asyncio-llapi-index.rst:507 msgid "Set a new process-wide policy." @@ -977,7 +982,7 @@ msgstr "" #: ../Doc/library/asyncio-llapi-index.rst:509 msgid ":class:`AbstractEventLoopPolicy`" -msgstr "" +msgstr ":class:`AbstractEventLoopPolicy`" #: ../Doc/library/asyncio-llapi-index.rst:510 msgid "Base class for policy objects." diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po index 70061bdf47..794faae52b 100644 --- a/library/asyncio-platforms.po +++ b/library/asyncio-platforms.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -39,66 +39,72 @@ msgstr "" msgid "Windows" msgstr "Windows" -#: ../Doc/library/asyncio-platforms.rst:28 +#: ../Doc/library/asyncio-platforms.rst:26 +msgid "" +"**Source code:** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/" +"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`" +msgstr "" + +#: ../Doc/library/asyncio-platforms.rst:34 msgid "On Windows, :class:`ProactorEventLoop` is now the default event loop." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:30 +#: ../Doc/library/asyncio-platforms.rst:36 msgid "All event loops on Windows do not support the following methods:" msgstr "" -#: ../Doc/library/asyncio-platforms.rst:32 +#: ../Doc/library/asyncio-platforms.rst:38 msgid "" ":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are " "not supported. The :data:`socket.AF_UNIX` socket family is specific to Unix." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:36 +#: ../Doc/library/asyncio-platforms.rst:42 msgid "" ":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are " "not supported." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:39 +#: ../Doc/library/asyncio-platforms.rst:45 msgid ":class:`SelectorEventLoop` has the following limitations:" msgstr "" -#: ../Doc/library/asyncio-platforms.rst:41 +#: ../Doc/library/asyncio-platforms.rst:47 msgid "" ":class:`~selectors.SelectSelector` is used to wait on socket events: it " "supports sockets and is limited to 512 sockets." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:44 +#: ../Doc/library/asyncio-platforms.rst:50 msgid "" ":meth:`loop.add_reader` and :meth:`loop.add_writer` only accept socket " "handles (e.g. pipe file descriptors are not supported)." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:47 +#: ../Doc/library/asyncio-platforms.rst:53 msgid "" "Pipes are not supported, so the :meth:`loop.connect_read_pipe` and :meth:" "`loop.connect_write_pipe` methods are not implemented." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:50 +#: ../Doc/library/asyncio-platforms.rst:56 msgid "" ":ref:`Subprocesses ` are not supported, i.e. :meth:`loop." "subprocess_exec` and :meth:`loop.subprocess_shell` methods are not " "implemented." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:54 +#: ../Doc/library/asyncio-platforms.rst:60 msgid ":class:`ProactorEventLoop` has the following limitations:" msgstr "" -#: ../Doc/library/asyncio-platforms.rst:56 +#: ../Doc/library/asyncio-platforms.rst:62 msgid "" "The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not " "supported." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:59 +#: ../Doc/library/asyncio-platforms.rst:65 msgid "" "The resolution of the monotonic clock on Windows is usually around 15.6 " "msec. The best resolution is 0.5 msec. The resolution depends on the " @@ -106,36 +112,36 @@ msgid "" "High_Precision_Event_Timer>`_) and on the Windows configuration." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:69 +#: ../Doc/library/asyncio-platforms.rst:75 msgid "Subprocess Support on Windows" msgstr "" -#: ../Doc/library/asyncio-platforms.rst:71 +#: ../Doc/library/asyncio-platforms.rst:77 msgid "" "On Windows, the default event loop :class:`ProactorEventLoop` supports " "subprocesses, whereas :class:`SelectorEventLoop` does not." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:74 +#: ../Doc/library/asyncio-platforms.rst:80 msgid "" "The :meth:`policy.set_child_watcher() ` function is also not supported, as :class:" "`ProactorEventLoop` has a different mechanism to watch child processes." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:81 +#: ../Doc/library/asyncio-platforms.rst:87 msgid "macOS" -msgstr "" +msgstr "macOS" -#: ../Doc/library/asyncio-platforms.rst:83 +#: ../Doc/library/asyncio-platforms.rst:89 msgid "Modern macOS versions are fully supported." msgstr "" -#: ../Doc/library/asyncio-platforms.rst:86 +#: ../Doc/library/asyncio-platforms.rst:92 msgid "macOS <= 10.8" msgstr "" -#: ../Doc/library/asyncio-platforms.rst:87 +#: ../Doc/library/asyncio-platforms.rst:93 msgid "" "On macOS 10.6, 10.7 and 10.8, the default event loop uses :class:`selectors." "KqueueSelector`, which does not support character devices on these " diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po index 07b91656fe..5c3d2253a4 100644 --- a/library/asyncio-policy.po +++ b/library/asyncio-policy.po @@ -3,175 +3,215 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-11-29 18:26+0100\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-11-17 01:26+0100\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/library/asyncio-policy.rst:8 +#: library/asyncio-policy.rst:8 msgid "Policies" -msgstr "" +msgstr "Stratégies" -#: ../Doc/library/asyncio-policy.rst:10 +#: library/asyncio-policy.rst:10 msgid "" "An event loop policy is a global per-process object that controls the " "management of the event loop. Each event loop has a default policy, which " "can be changed and customized using the policy API." msgstr "" +"Une stratégie de boucle d'événements est un objet global, pour chaque " +"processus, qui contrôle la gestion de la boucle d'événement. Chaque boucle " +"d'événement a une stratégie par défaut, qui peut être modifiée et " +"personnalisée à l'aide de l'API de la stratégie." -#: ../Doc/library/asyncio-policy.rst:14 +#: library/asyncio-policy.rst:14 msgid "" "A policy defines the notion of *context* and manages a separate event loop " "per context. The default policy defines *context* to be the current thread." msgstr "" +"Une stratégie définit la notion de *contexte* et gère une boucle d'événement " +"distincte par contexte. La stratégie par défaut définit le *contexte* comme " +"étant le fil d'exécution actuel." -#: ../Doc/library/asyncio-policy.rst:18 +#: library/asyncio-policy.rst:18 msgid "" "By using a custom event loop policy, the behavior of :func:" "`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop` " "functions can be customized." msgstr "" +"En utilisant une stratégie de boucle d'événement personnalisée, le " +"comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` " +"et :func:`new_event_loop` peut être personnalisé." -#: ../Doc/library/asyncio-policy.rst:22 +#: library/asyncio-policy.rst:22 msgid "" "Policy objects should implement the APIs defined in the :class:" "`AbstractEventLoopPolicy` abstract base class." msgstr "" +"Les objets de stratégie doivent implémenter les API définies dans la classe " +"de base abstraite :class:`AbstractEventLoopPolicy`." -#: ../Doc/library/asyncio-policy.rst:27 +#: library/asyncio-policy.rst:27 msgid "Getting and Setting the Policy" -msgstr "" +msgstr "Obtenir et définir la stratégie" -#: ../Doc/library/asyncio-policy.rst:29 +#: library/asyncio-policy.rst:29 msgid "" "The following functions can be used to get and set the policy for the " "current process:" msgstr "" +"Les fonctions suivantes peuvent être utilisées pour obtenir et définir la " +"stratégie du processus en cours :" -#: ../Doc/library/asyncio-policy.rst:34 +#: library/asyncio-policy.rst:34 msgid "Return the current process-wide policy." -msgstr "" +msgstr "Renvoie la stratégie actuelle à l'échelle du processus." -#: ../Doc/library/asyncio-policy.rst:38 +#: library/asyncio-policy.rst:38 msgid "Set the current process-wide policy to *policy*." msgstr "" +"Définit la stratégie actuelle sur l'ensemble du processus sur *policy*." -#: ../Doc/library/asyncio-policy.rst:40 +#: library/asyncio-policy.rst:40 msgid "If *policy* is set to ``None``, the default policy is restored." msgstr "" +"Si *policy* est définie sur ``None``, la stratégie par défaut est restaurée." -#: ../Doc/library/asyncio-policy.rst:44 +#: library/asyncio-policy.rst:44 msgid "Policy Objects" -msgstr "" +msgstr "Sujets de stratégie" -#: ../Doc/library/asyncio-policy.rst:46 +#: library/asyncio-policy.rst:46 msgid "The abstract event loop policy base class is defined as follows:" msgstr "" +"La classe de base abstraite de la stratégie de boucle d'événements est " +"définie comme suit:" -#: ../Doc/library/asyncio-policy.rst:50 +#: library/asyncio-policy.rst:50 msgid "An abstract base class for asyncio policies." -msgstr "" +msgstr "Une classe de base abstraite pour les stratégies *asyncio*." -#: ../Doc/library/asyncio-policy.rst:54 +#: library/asyncio-policy.rst:54 msgid "Get the event loop for the current context." msgstr "Récupère la boucle d'évènements pour le contexte actuel." -#: ../Doc/library/asyncio-policy.rst:56 +#: library/asyncio-policy.rst:56 msgid "" "Return an event loop object implementing the :class:`AbstractEventLoop` " "interface." msgstr "" +"Renvoie un objet de boucle d'événements en implémentant l'interface :class:" +"`AbstractEventLoop`." -#: ../Doc/library/asyncio-policy.rst:59 ../Doc/library/asyncio-policy.rst:71 +#: library/asyncio-policy.rst:71 msgid "This method should never return ``None``." -msgstr "" +msgstr "Cette méthode ne devrait jamais renvoyer ``None``." -#: ../Doc/library/asyncio-policy.rst:65 +#: library/asyncio-policy.rst:65 msgid "Set the event loop for the current context to *loop*." -msgstr "" +msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." -#: ../Doc/library/asyncio-policy.rst:69 +#: library/asyncio-policy.rst:69 msgid "Create and return a new event loop object." -msgstr "" +msgstr "Crée et renvoie un nouvel objet de boucle d'événements." -#: ../Doc/library/asyncio-policy.rst:75 +#: library/asyncio-policy.rst:75 msgid "Get a child process watcher object." -msgstr "" +msgstr "Récupère un objet observateur du processus enfant." -#: ../Doc/library/asyncio-policy.rst:77 +#: library/asyncio-policy.rst:77 msgid "" "Return a watcher object implementing the :class:`AbstractChildWatcher` " "interface." msgstr "" +"Renvoie un objet observateur implémentant l'interface :class:" +"`AbstractChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:80 ../Doc/library/asyncio-policy.rst:86 +#: library/asyncio-policy.rst:86 msgid "This function is Unix specific." -msgstr "" +msgstr "Cette fonction est spécifique à Unix." -#: ../Doc/library/asyncio-policy.rst:84 +#: library/asyncio-policy.rst:84 msgid "Set the current child process watcher to *watcher*." -msgstr "" +msgstr "Définit l'observateur du processus enfant actuel à *watcher*." -#: ../Doc/library/asyncio-policy.rst:89 +#: library/asyncio-policy.rst:89 msgid "asyncio ships with the following built-in policies:" -msgstr "" +msgstr "*asyncio* est livré avec les stratégies intégrées suivantes :" -#: ../Doc/library/asyncio-policy.rst:94 +#: library/asyncio-policy.rst:94 msgid "" "The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix and :" "class:`ProactorEventLoop` on Windows." msgstr "" +"La stratégie *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur " +"les plates-formes Unix et :class:`ProactorEventLoop` sur Windows." -#: ../Doc/library/asyncio-policy.rst:97 +#: library/asyncio-policy.rst:97 msgid "" "There is no need to install the default policy manually. asyncio is " "configured to use the default policy automatically." msgstr "" +"Il n'est pas nécessaire d'installer la stratégie par défaut manuellement. " +"*asyncio* est configuré pour utiliser automatiquement la stratégie par " +"défaut." -#: ../Doc/library/asyncio-policy.rst:102 +#: library/asyncio-policy.rst:102 msgid "On Windows, :class:`ProactorEventLoop` is now used by default." msgstr "" -#: ../Doc/library/asyncio-policy.rst:107 +#: library/asyncio-policy.rst:107 msgid "" "An alternative event loop policy that uses the :class:`SelectorEventLoop` " "event loop implementation." msgstr "" +"Stratégie de boucle d'événements alternative utilisant l'implémentation de " +"la boucle d'événements :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-policy.rst:110 ../Doc/library/asyncio-policy.rst:118 +#: library/asyncio-policy.rst:118 msgid ":ref:`Availability `: Windows." msgstr ":ref:`Disponibilité ` : Windows." -#: ../Doc/library/asyncio-policy.rst:115 +#: library/asyncio-policy.rst:115 +#, fuzzy msgid "" "An alternative event loop policy that uses the :class:`ProactorEventLoop` " "event loop implementation." msgstr "" +"Stratégie de boucle d'événements alternative utilisant l'implémentation de " +"la boucle d'événements :class:`ProactorEventLoop`." -#: ../Doc/library/asyncio-policy.rst:123 +#: library/asyncio-policy.rst:123 msgid "Process Watchers" -msgstr "" +msgstr "Observateurs de processus" -#: ../Doc/library/asyncio-policy.rst:125 +#: library/asyncio-policy.rst:125 msgid "" "A process watcher allows customization of how an event loop monitors child " "processes on Unix. Specifically, the event loop needs to know when a child " "process has exited." msgstr "" +"Un observateur de processus permet de personnaliser la manière dont une " +"boucle d'événements surveille les processus enfants sous Unix. Plus " +"précisément, la boucle d'événements a besoin de savoir quand un processus " +"enfant s'est terminé." -#: ../Doc/library/asyncio-policy.rst:129 +#: library/asyncio-policy.rst:129 msgid "" "In asyncio, child processes are created with :func:`create_subprocess_exec` " "and :meth:`loop.subprocess_exec` functions." msgstr "" +"Dans *asyncio*, les processus enfants sont créés avec les fonctions :func:" +"`create_subprocess_exec` et :meth:`loop.subprocess_exec`." -#: ../Doc/library/asyncio-policy.rst:133 +#: library/asyncio-policy.rst:133 +#, fuzzy msgid "" "asyncio defines the :class:`AbstractChildWatcher` abstract base class, which " "child watchers should implement, and has four different implementations: :" @@ -179,183 +219,232 @@ msgid "" "`MultiLoopChildWatcher`, :class:`SafeChildWatcher`, and :class:" "`FastChildWatcher`." msgstr "" +"*asyncio* définit la classe de base abstraite :class:`AbstractChildWatcher`, " +"que les observateurs enfants doivent implémenter et possède deux " +"implémentations différentes : :class:`SafeChildWatcher` (configurée pour " +"être utilisé par défaut) et :class:`FastChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:139 +#: library/asyncio-policy.rst:139 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" +"Voir aussi la section :ref:`sous-processus et fils d'exécution `." -#: ../Doc/library/asyncio-policy.rst:142 +#: library/asyncio-policy.rst:142 msgid "" "The following two functions can be used to customize the child process " "watcher implementation used by the asyncio event loop:" msgstr "" +"Les deux fonctions suivantes peuvent être utilisées pour personnaliser " +"l'implémentation de l'observateur de processus enfant utilisé par la boucle " +"d'événements *asyncio* :" -#: ../Doc/library/asyncio-policy.rst:147 +#: library/asyncio-policy.rst:147 msgid "Return the current child watcher for the current policy." -msgstr "" +msgstr "Renvoie l'observateur enfant actuel pour la stratégie actuelle." -#: ../Doc/library/asyncio-policy.rst:151 +#: library/asyncio-policy.rst:151 msgid "" "Set the current child watcher to *watcher* for the current policy. " "*watcher* must implement methods defined in the :class:" "`AbstractChildWatcher` base class." msgstr "" +"Définit l'observateur enfant actuel à *watcher* pour la stratégie actuelle. " +"*watcher* doit implémenter les méthodes définies dans la classe de base :" +"class:`AbstractChildWatcher`." -#: ../Doc/library/asyncio-policy.rst:156 +#: library/asyncio-policy.rst:156 msgid "" "Third-party event loops implementations might not support custom child " "watchers. For such event loops, using :func:`set_child_watcher` might be " "prohibited or have no effect." msgstr "" +"Les implémentations de boucles d'événement tierces peuvent ne pas prendre en " +"charge les observateurs enfants personnalisés. Pour ces boucles " +"d'événements, utiliser :func:`set_child_watcher` pourrait être interdit ou " +"n'avoir aucun effet." -#: ../Doc/library/asyncio-policy.rst:164 +#: library/asyncio-policy.rst:164 msgid "Register a new child handler." -msgstr "" +msgstr "Enregistre un nouveau gestionnaire." -#: ../Doc/library/asyncio-policy.rst:166 +#: library/asyncio-policy.rst:166 msgid "" "Arrange for ``callback(pid, returncode, *args)`` to be called when a process " "with PID equal to *pid* terminates. Specifying another callback for the " "same process replaces the previous handler." msgstr "" +"Organise l'appel de ``callback(pid, returncode, * args)`` lorsqu'un " +"processus dont le PID est égal à *pid* se termine. La spécification d'un " +"autre rappel pour le même processus remplace le gestionnaire précédent." -#: ../Doc/library/asyncio-policy.rst:171 +#: library/asyncio-policy.rst:171 msgid "The *callback* callable must be thread-safe." msgstr "" +"L'appelable *callback* doit être compatible avec les programmes à fils " +"d'exécution multiples." -#: ../Doc/library/asyncio-policy.rst:175 +#: library/asyncio-policy.rst:175 msgid "Removes the handler for process with PID equal to *pid*." -msgstr "" +msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*." -#: ../Doc/library/asyncio-policy.rst:177 +#: library/asyncio-policy.rst:177 msgid "" "The function returns ``True`` if the handler was successfully removed, " "``False`` if there was nothing to remove." msgstr "" +"La fonction renvoie ``True`` si le gestionnaire a été supprimé avec succès, " +"``False`` s'il n'y a rien à supprimer." -#: ../Doc/library/asyncio-policy.rst:182 +#: library/asyncio-policy.rst:182 msgid "Attach the watcher to an event loop." -msgstr "" +msgstr "Attache l'observateur à une boucle d'événement." -#: ../Doc/library/asyncio-policy.rst:184 +#: library/asyncio-policy.rst:184 msgid "" "If the watcher was previously attached to an event loop, then it is first " "detached before attaching to the new loop." msgstr "" +"Si l'observateur était précédemment attaché à une boucle d'événements, il " +"est d'abord détaché avant d'être rattaché à la nouvelle boucle." -#: ../Doc/library/asyncio-policy.rst:187 +#: library/asyncio-policy.rst:187 msgid "Note: loop may be ``None``." -msgstr "" +msgstr "Remarque : la boucle peut être ``None``." -#: ../Doc/library/asyncio-policy.rst:191 +#: library/asyncio-policy.rst:191 msgid "Return ``True`` if the watcher is ready to use." msgstr "" -#: ../Doc/library/asyncio-policy.rst:193 +#: library/asyncio-policy.rst:193 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Instancier un sous-processus avec un observateur enfant actuel *inactif* " +"lève l'exception :exc:`RuntimeError`." -#: ../Doc/library/asyncio-policy.rst:200 +#: library/asyncio-policy.rst:200 msgid "Close the watcher." -msgstr "" +msgstr "Ferme l'observateur." -#: ../Doc/library/asyncio-policy.rst:202 +#: library/asyncio-policy.rst:202 msgid "" "This method has to be called to ensure that underlying resources are cleaned-" "up." msgstr "" +"Cette méthode doit être appelée pour s'assurer que les ressources sous-" +"jacentes sont nettoyées." -#: ../Doc/library/asyncio-policy.rst:207 +#: library/asyncio-policy.rst:207 +#, fuzzy msgid "" "This implementation starts a new waiting thread for every subprocess spawn." msgstr "" +"Cette implémentation évite de perturber un autre code qui aurait besoin de " +"générer des processus en interrogeant chaque processus explicitement par un " +"signal :py:data:`SIGCHLD`." -#: ../Doc/library/asyncio-policy.rst:209 +#: library/asyncio-policy.rst:209 +#, fuzzy msgid "" "It works reliably even when the asyncio event loop is run in a non-main OS " "thread." msgstr "" +"C'est une solution sûre, mais elle nécessite un temps système important lors " +"de la manipulation d'un grand nombre de processus (*O(n)* à chaque fois que " +"un :py:data:`SIGCHLD` est reçu)." -#: ../Doc/library/asyncio-policy.rst:211 +#: library/asyncio-policy.rst:211 +#, fuzzy msgid "" "There is no noticeable overhead when handling a big number of children " -"(*O(1)* each time a child terminates), but stating a thread per process " +"(*O(1)* each time a child terminates), but starting a thread per process " "requires extra memory." msgstr "" +"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre " +"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." -#: ../Doc/library/asyncio-policy.rst:214 +#: library/asyncio-policy.rst:214 msgid "This watcher is used by default." msgstr "" -#: ../Doc/library/asyncio-policy.rst:220 +#: library/asyncio-policy.rst:220 msgid "" "This implementation registers a :py:data:`SIGCHLD` signal handler on " "instantiation. That can break third-party code that installs a custom " -"handler for `SIGCHLD`. signal)." +"handler for :py:data:`SIGCHLD` signal." msgstr "" -#: ../Doc/library/asyncio-policy.rst:224 ../Doc/library/asyncio-policy.rst:242 +#: library/asyncio-policy.rst:242 msgid "" "The watcher avoids disrupting other code spawning processes by polling every " "process explicitly on a :py:data:`SIGCHLD` signal." msgstr "" -#: ../Doc/library/asyncio-policy.rst:227 +#: library/asyncio-policy.rst:227 msgid "" "There is no limitation for running subprocesses from different threads once " "the watcher is installed." msgstr "" -#: ../Doc/library/asyncio-policy.rst:230 +#: library/asyncio-policy.rst:230 msgid "" "The solution is safe but it has a significant overhead when handling a big " "number of processes (*O(n)* each time a :py:data:`SIGCHLD` is received)." msgstr "" -#: ../Doc/library/asyncio-policy.rst:238 +#: library/asyncio-policy.rst:238 msgid "" "This implementation uses active event loop from the main thread to handle :" "py:data:`SIGCHLD` signal. If the main thread has no running event loop " "another thread cannot spawn a subprocess (:exc:`RuntimeError` is raised)." msgstr "" -#: ../Doc/library/asyncio-policy.rst:245 +#: library/asyncio-policy.rst:245 msgid "" "This solution is as safe as :class:`MultiLoopChildWatcher` and has the same " "*O(N)* complexity but requires a running event loop in the main thread to " "work." msgstr "" -#: ../Doc/library/asyncio-policy.rst:250 +#: library/asyncio-policy.rst:250 msgid "" "This implementation reaps every terminated processes by calling ``os." "waitpid(-1)`` directly, possibly breaking other code spawning processes and " "waiting for their termination." msgstr "" +"Cette implémentation récupère tous les processus terminés en appelant " +"directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui " +"génère des processus et attend leur fin." -#: ../Doc/library/asyncio-policy.rst:254 +#: library/asyncio-policy.rst:254 msgid "" "There is no noticeable overhead when handling a big number of children " "(*O(1)* each time a child terminates)." msgstr "" +"Il n'y a pas de surcharge visible lors de la manipulation d'un grand nombre " +"d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." -#: ../Doc/library/asyncio-policy.rst:257 +#: library/asyncio-policy.rst:257 msgid "" "This solution requires a running event loop in the main thread to work, as :" "class:`SafeChildWatcher`." msgstr "" -#: ../Doc/library/asyncio-policy.rst:262 +#: library/asyncio-policy.rst:262 msgid "Custom Policies" -msgstr "" +msgstr "Stratégies personnalisées" -#: ../Doc/library/asyncio-policy.rst:264 +#: library/asyncio-policy.rst:264 msgid "" "To implement a new event loop policy, it is recommended to subclass :class:" "`DefaultEventLoopPolicy` and override the methods for which custom behavior " "is wanted, e.g.::" msgstr "" +"Pour implémenter une nouvelle politique de boucle d’événements, il est " +"recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de " +"réimplémenter les méthodes pour lesquelles un comportement personnalisé est " +"souhaité, par exemple ::" diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po index 9c496ba82e..5063bd0a4a 100644 --- a/library/asyncio-protocol.po +++ b/library/asyncio-protocol.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-06-18 22:29+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/asyncio-protocol.rst:9 +#: library/asyncio-protocol.rst:9 msgid "Transports and Protocols" msgstr "Transports et Protocoles" -#: ../Doc/library/asyncio-protocol.rst:12 +#: library/asyncio-protocol.rst:12 msgid "Preface" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:13 +#: library/asyncio-protocol.rst:13 msgid "" "Transports and Protocols are used by the **low-level** event loop APIs such " "as :meth:`loop.create_connection`. They use callback-based programming " @@ -31,48 +31,48 @@ msgid "" "protocols (e.g. HTTP)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:18 +#: library/asyncio-protocol.rst:18 msgid "" "Essentially, transports and protocols should only be used in libraries and " "frameworks and never in high-level asyncio applications." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:22 +#: library/asyncio-protocol.rst:22 msgid "This documentation page covers both `Transports`_ and `Protocols`_." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:25 +#: library/asyncio-protocol.rst:25 msgid "Introduction" msgstr "Introduction" -#: ../Doc/library/asyncio-protocol.rst:26 +#: library/asyncio-protocol.rst:26 msgid "" "At the highest level, the transport is concerned with *how* bytes are " "transmitted, while the protocol determines *which* bytes to transmit (and to " "some extent when)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:30 +#: library/asyncio-protocol.rst:30 msgid "" "A different way of saying the same thing: a transport is an abstraction for " "a socket (or similar I/O endpoint) while a protocol is an abstraction for an " "application, from the transport's point of view." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:35 +#: library/asyncio-protocol.rst:35 msgid "" "Yet another view is the transport and protocol interfaces together define an " "abstract interface for using network I/O and interprocess I/O." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:39 +#: library/asyncio-protocol.rst:39 msgid "" "There is always a 1:1 relationship between transport and protocol objects: " "the protocol calls transport methods to send data, while the transport calls " "protocol methods to pass it data that has been received." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:44 +#: library/asyncio-protocol.rst:44 msgid "" "Most of connection oriented event loop methods (such as :meth:`loop." "create_connection`) usually accept a *protocol_factory* argument used to " @@ -81,106 +81,110 @@ msgid "" "protocol)``." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:51 +#: library/asyncio-protocol.rst:51 msgid "Contents" msgstr "Sommaire" -#: ../Doc/library/asyncio-protocol.rst:52 +#: library/asyncio-protocol.rst:52 msgid "This documentation page contains the following sections:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:54 +#: library/asyncio-protocol.rst:54 msgid "" "The `Transports`_ section documents asyncio :class:`BaseTransport`, :class:" "`ReadTransport`, :class:`WriteTransport`, :class:`Transport`, :class:" "`DatagramTransport`, and :class:`SubprocessTransport` classes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:59 +#: library/asyncio-protocol.rst:59 msgid "" "The `Protocols`_ section documents asyncio :class:`BaseProtocol`, :class:" "`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol`, and :class:" "`SubprocessProtocol` classes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:63 +#: library/asyncio-protocol.rst:63 msgid "" "The `Examples`_ section showcases how to work with transports, protocols, " "and low-level event loop APIs." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:70 +#: library/asyncio-protocol.rst:70 msgid "Transports" msgstr "Transports" -#: ../Doc/library/asyncio-protocol.rst:72 +#: library/asyncio-protocol.rst:72 +msgid "**Source code:** :source:`Lib/asyncio/transports.py`" +msgstr "" + +#: library/asyncio-protocol.rst:76 msgid "" "Transports are classes provided by :mod:`asyncio` in order to abstract " "various kinds of communication channels." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:75 +#: library/asyncio-protocol.rst:79 msgid "" "Transport objects are always instantiated by an :ref:`asyncio event loop " "`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:78 +#: library/asyncio-protocol.rst:82 msgid "" "asyncio implements transports for TCP, UDP, SSL, and subprocess pipes. The " "methods available on a transport depend on the transport's kind." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:81 +#: library/asyncio-protocol.rst:85 msgid "" "The transport classes are :ref:`not thread safe `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:85 +#: library/asyncio-protocol.rst:89 msgid "Transports Hierarchy" msgstr "Hiérarchie des transports" -#: ../Doc/library/asyncio-protocol.rst:89 +#: library/asyncio-protocol.rst:93 msgid "" "Base class for all transports. Contains methods that all asyncio transports " "share." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:94 +#: library/asyncio-protocol.rst:98 msgid "A base transport for write-only connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:96 +#: library/asyncio-protocol.rst:100 msgid "" "Instances of the *WriteTransport* class are returned from the :meth:`loop." "connect_write_pipe` event loop method and are also used by subprocess-" "related methods like :meth:`loop.subprocess_exec`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:103 +#: library/asyncio-protocol.rst:107 msgid "A base transport for read-only connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:105 +#: library/asyncio-protocol.rst:109 msgid "" "Instances of the *ReadTransport* class are returned from the :meth:`loop." "connect_read_pipe` event loop method and are also used by subprocess-related " "methods like :meth:`loop.subprocess_exec`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:112 +#: library/asyncio-protocol.rst:116 msgid "" "Interface representing a bidirectional transport, such as a TCP connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:115 +#: library/asyncio-protocol.rst:119 msgid "" "The user does not instantiate a transport directly; they call a utility " "function, passing it a protocol factory and other information necessary to " "create the transport and protocol." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:119 +#: library/asyncio-protocol.rst:123 msgid "" "Instances of the *Transport* class are returned from or used by event loop " "methods like :meth:`loop.create_connection`, :meth:`loop." @@ -188,37 +192,37 @@ msgid "" "etc." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:127 +#: library/asyncio-protocol.rst:131 msgid "A transport for datagram (UDP) connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:129 +#: library/asyncio-protocol.rst:133 msgid "" "Instances of the *DatagramTransport* class are returned from the :meth:`loop." "create_datagram_endpoint` event loop method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:135 +#: library/asyncio-protocol.rst:139 msgid "" "An abstraction to represent a connection between a parent and its child OS " "process." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:138 +#: library/asyncio-protocol.rst:142 msgid "" "Instances of the *SubprocessTransport* class are returned from event loop " "methods :meth:`loop.subprocess_shell` and :meth:`loop.subprocess_exec`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:144 +#: library/asyncio-protocol.rst:148 msgid "Base Transport" msgstr "Classe de base des Transports" -#: ../Doc/library/asyncio-protocol.rst:148 +#: library/asyncio-protocol.rst:152 msgid "Close the transport." msgstr "Ferme le transport." -#: ../Doc/library/asyncio-protocol.rst:150 +#: library/asyncio-protocol.rst:154 msgid "" "If the transport has a buffer for outgoing data, buffered data will be " "flushed asynchronously. No more data will be received. After all buffered " @@ -227,158 +231,158 @@ msgid "" "its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:159 +#: library/asyncio-protocol.rst:163 msgid "Return ``True`` if the transport is closing or is closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:163 +#: library/asyncio-protocol.rst:167 msgid "Return information about the transport or underlying resources it uses." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:166 +#: library/asyncio-protocol.rst:170 msgid "" "*name* is a string representing the piece of transport-specific information " "to get." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:169 +#: library/asyncio-protocol.rst:173 msgid "" "*default* is the value to return if the information is not available, or if " "the transport does not support querying it with the given third-party event " "loop implementation or on the current platform." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:174 +#: library/asyncio-protocol.rst:178 msgid "" "For example, the following code attempts to get the underlying socket object " "of the transport::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:181 +#: library/asyncio-protocol.rst:185 msgid "Categories of information that can be queried on some transports:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:183 +#: library/asyncio-protocol.rst:187 msgid "socket:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:185 +#: library/asyncio-protocol.rst:189 msgid "" "``'peername'``: the remote address to which the socket is connected, result " "of :meth:`socket.socket.getpeername` (``None`` on error)" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:189 +#: library/asyncio-protocol.rst:193 msgid "``'socket'``: :class:`socket.socket` instance" msgstr "``'socket'`` : Instance de :class:`socket.socket`" -#: ../Doc/library/asyncio-protocol.rst:191 +#: library/asyncio-protocol.rst:195 msgid "" "``'sockname'``: the socket's own address, result of :meth:`socket.socket." "getsockname`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:194 +#: library/asyncio-protocol.rst:198 msgid "SSL socket:" msgstr "Connecteur (*socket* en anglais) SSL :" -#: ../Doc/library/asyncio-protocol.rst:196 +#: library/asyncio-protocol.rst:200 msgid "" "``'compression'``: the compression algorithm being used as a string, or " "``None`` if the connection isn't compressed; result of :meth:`ssl.SSLSocket." "compression`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:200 +#: library/asyncio-protocol.rst:204 msgid "" "``'cipher'``: a three-value tuple containing the name of the cipher being " "used, the version of the SSL protocol that defines its use, and the number " "of secret bits being used; result of :meth:`ssl.SSLSocket.cipher`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:205 +#: library/asyncio-protocol.rst:209 msgid "" "``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:208 +#: library/asyncio-protocol.rst:212 msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance" msgstr "``sslcontext'`` : Instance de :class:`ssl.SSLContext`" -#: ../Doc/library/asyncio-protocol.rst:210 +#: library/asyncio-protocol.rst:214 msgid "" "``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:213 +#: library/asyncio-protocol.rst:217 msgid "pipe:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:215 +#: library/asyncio-protocol.rst:219 msgid "``'pipe'``: pipe object" msgstr "``'pipe'`` : objet *pipe*" -#: ../Doc/library/asyncio-protocol.rst:217 +#: library/asyncio-protocol.rst:221 msgid "subprocess:" msgstr "sous-processus :" -#: ../Doc/library/asyncio-protocol.rst:219 +#: library/asyncio-protocol.rst:223 msgid "``'subprocess'``: :class:`subprocess.Popen` instance" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:223 +#: library/asyncio-protocol.rst:227 msgid "Set a new protocol." msgstr "Change le protocole." -#: ../Doc/library/asyncio-protocol.rst:225 +#: library/asyncio-protocol.rst:229 msgid "" "Switching protocol should only be done when both protocols are documented to " "support the switch." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:230 +#: library/asyncio-protocol.rst:234 msgid "Return the current protocol." msgstr "Renvoie le protocole courant." -#: ../Doc/library/asyncio-protocol.rst:234 +#: library/asyncio-protocol.rst:238 msgid "Read-only Transports" msgstr "Transports en lecture seule" -#: ../Doc/library/asyncio-protocol.rst:238 +#: library/asyncio-protocol.rst:242 msgid "Return ``True`` if the transport is receiving new data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:244 +#: library/asyncio-protocol.rst:248 msgid "" "Pause the receiving end of the transport. No data will be passed to the " "protocol's :meth:`protocol.data_received() ` method " "until :meth:`resume_reading` is called." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:248 +#: library/asyncio-protocol.rst:252 msgid "" "The method is idempotent, i.e. it can be called when the transport is " "already paused or closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:254 +#: library/asyncio-protocol.rst:258 msgid "" "Resume the receiving end. The protocol's :meth:`protocol.data_received() " "` method will be called once again if some data is " "available for reading." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:258 +#: library/asyncio-protocol.rst:262 msgid "" "The method is idempotent, i.e. it can be called when the transport is " "already reading." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:264 +#: library/asyncio-protocol.rst:268 msgid "Write-only Transports" msgstr "Transports en lecture/écriture" -#: ../Doc/library/asyncio-protocol.rst:268 +#: library/asyncio-protocol.rst:272 msgid "" "Close the transport immediately, without waiting for pending operations to " "complete. Buffered data will be lost. No more data will be received. The " @@ -386,31 +390,31 @@ msgid "" "method will eventually be called with :const:`None` as its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:276 +#: library/asyncio-protocol.rst:280 msgid "" "Return :const:`True` if the transport supports :meth:`~WriteTransport." "write_eof`, :const:`False` if not." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:281 +#: library/asyncio-protocol.rst:285 msgid "Return the current size of the output buffer used by the transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:285 +#: library/asyncio-protocol.rst:289 msgid "" "Get the *high* and *low* watermarks for write flow control. Return a tuple " "``(low, high)`` where *low* and *high* are positive number of bytes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:289 +#: library/asyncio-protocol.rst:293 msgid "Use :meth:`set_write_buffer_limits` to set the limits." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:295 +#: library/asyncio-protocol.rst:299 msgid "Set the *high* and *low* watermarks for write flow control." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:297 +#: library/asyncio-protocol.rst:301 msgid "" "These two values (measured in number of bytes) control when the protocol's :" "meth:`protocol.pause_writing() ` and :meth:" @@ -419,7 +423,7 @@ msgid "" "high watermark. Neither *high* nor *low* can be negative." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:305 +#: library/asyncio-protocol.rst:309 msgid "" ":meth:`~BaseProtocol.pause_writing` is called when the buffer size becomes " "greater than or equal to the *high* value. If writing has been paused, :meth:" @@ -427,7 +431,7 @@ msgid "" "than or equal to the *low* value." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:310 +#: library/asyncio-protocol.rst:314 msgid "" "The defaults are implementation-specific. If only the high watermark is " "given, the low watermark defaults to an implementation-specific value less " @@ -439,52 +443,51 @@ msgid "" "opportunities for doing I/O and computation concurrently." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:321 +#: library/asyncio-protocol.rst:325 msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:326 +#: library/asyncio-protocol.rst:330 msgid "Write some *data* bytes to the transport." msgstr "Écrit des octets de *data* sur le transport." -#: ../Doc/library/asyncio-protocol.rst:328 -#: ../Doc/library/asyncio-protocol.rst:357 +#: library/asyncio-protocol.rst:332 library/asyncio-protocol.rst:361 msgid "" "This method does not block; it buffers the data and arranges for it to be " "sent out asynchronously." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:333 +#: library/asyncio-protocol.rst:337 msgid "" "Write a list (or any iterable) of data bytes to the transport. This is " "functionally equivalent to calling :meth:`write` on each element yielded by " "the iterable, but may be implemented more efficiently." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:340 +#: library/asyncio-protocol.rst:344 msgid "" "Close the write end of the transport after flushing all buffered data. Data " "may still be received." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:343 +#: library/asyncio-protocol.rst:347 msgid "" "This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) " "doesn't support half-closed connections." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:348 +#: library/asyncio-protocol.rst:352 msgid "Datagram Transports" msgstr "Transports de datagrammes" -#: ../Doc/library/asyncio-protocol.rst:352 +#: library/asyncio-protocol.rst:356 msgid "" "Send the *data* bytes to the remote peer given by *addr* (a transport-" "dependent target address). If *addr* is :const:`None`, the data is sent to " "the target address given on transport creation." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:362 +#: library/asyncio-protocol.rst:366 msgid "" "Close the transport immediately, without waiting for pending operations to " "complete. Buffered data will be lost. No more data will be received. The " @@ -492,106 +495,110 @@ msgid "" "method will eventually be called with :const:`None` as its argument." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:372 +#: library/asyncio-protocol.rst:376 msgid "Subprocess Transports" msgstr "Transports vers des sous-processus" -#: ../Doc/library/asyncio-protocol.rst:376 +#: library/asyncio-protocol.rst:380 msgid "Return the subprocess process id as an integer." msgstr "" "Donne l'identifiant du sous processus sous la forme d'un nombre entier." -#: ../Doc/library/asyncio-protocol.rst:380 +#: library/asyncio-protocol.rst:384 msgid "" "Return the transport for the communication pipe corresponding to the integer " "file descriptor *fd*:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:383 +#: library/asyncio-protocol.rst:387 msgid "" "``0``: readable streaming transport of the standard input (*stdin*), or :" "const:`None` if the subprocess was not created with ``stdin=PIPE``" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:385 +#: library/asyncio-protocol.rst:389 msgid "" "``1``: writable streaming transport of the standard output (*stdout*), or :" "const:`None` if the subprocess was not created with ``stdout=PIPE``" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:387 +#: library/asyncio-protocol.rst:391 msgid "" "``2``: writable streaming transport of the standard error (*stderr*), or :" "const:`None` if the subprocess was not created with ``stderr=PIPE``" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:389 +#: library/asyncio-protocol.rst:393 msgid "other *fd*: :const:`None`" msgstr "autre *fd* : :const:`None`" -#: ../Doc/library/asyncio-protocol.rst:393 +#: library/asyncio-protocol.rst:397 msgid "" "Return the subprocess return code as an integer or :const:`None` if it " "hasn't returned, which is similar to the :attr:`subprocess.Popen.returncode` " "attribute." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:399 +#: library/asyncio-protocol.rst:403 msgid "Kill the subprocess." msgstr "Tue le sous-processus." -#: ../Doc/library/asyncio-protocol.rst:401 +#: library/asyncio-protocol.rst:405 msgid "" "On POSIX systems, the function sends SIGKILL to the subprocess. On Windows, " "this method is an alias for :meth:`terminate`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:404 +#: library/asyncio-protocol.rst:408 msgid "See also :meth:`subprocess.Popen.kill`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:408 +#: library/asyncio-protocol.rst:412 msgid "" "Send the *signal* number to the subprocess, as in :meth:`subprocess.Popen." "send_signal`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:413 +#: library/asyncio-protocol.rst:417 msgid "Stop the subprocess." msgstr "Termine le sous-processus." -#: ../Doc/library/asyncio-protocol.rst:415 +#: library/asyncio-protocol.rst:419 msgid "" "On POSIX systems, this method sends SIGTERM to the subprocess. On Windows, " "the Windows API function TerminateProcess() is called to stop the subprocess." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:419 +#: library/asyncio-protocol.rst:423 msgid "See also :meth:`subprocess.Popen.terminate`." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:423 +#: library/asyncio-protocol.rst:427 msgid "Kill the subprocess by calling the :meth:`kill` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:425 +#: library/asyncio-protocol.rst:429 msgid "" "If the subprocess hasn't returned yet, and close transports of *stdin*, " "*stdout*, and *stderr* pipes." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:432 +#: library/asyncio-protocol.rst:436 msgid "Protocols" +msgstr "Protocoles" + +#: library/asyncio-protocol.rst:438 +msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:434 +#: library/asyncio-protocol.rst:442 msgid "" "asyncio provides a set of abstract base classes that should be used to " "implement network protocols. Those classes are meant to be used together " "with :ref:`transports `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:438 +#: library/asyncio-protocol.rst:446 msgid "" "Subclasses of abstract base protocol classes may implement some or all " "methods. All these methods are callbacks: they are called by transports on " @@ -599,117 +606,118 @@ msgid "" "method should be called by the corresponding transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:445 +#: library/asyncio-protocol.rst:453 msgid "Base Protocols" msgstr "Protocoles de base" -#: ../Doc/library/asyncio-protocol.rst:449 +#: library/asyncio-protocol.rst:457 msgid "Base protocol with methods that all protocols share." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:453 +#: library/asyncio-protocol.rst:461 msgid "" "The base class for implementing streaming protocols (TCP, Unix sockets, etc)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:458 +#: library/asyncio-protocol.rst:466 msgid "" "A base class for implementing streaming protocols with manual control of the " "receive buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:463 +#: library/asyncio-protocol.rst:471 msgid "The base class for implementing datagram (UDP) protocols." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:467 +#: library/asyncio-protocol.rst:475 msgid "" "The base class for implementing protocols communicating with child processes " "(unidirectional pipes)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:472 +#: library/asyncio-protocol.rst:480 +#, fuzzy msgid "Base Protocol" -msgstr "" +msgstr "Protocoles de base" -#: ../Doc/library/asyncio-protocol.rst:474 +#: library/asyncio-protocol.rst:482 msgid "All asyncio protocols can implement Base Protocol callbacks." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:477 +#: library/asyncio-protocol.rst:485 msgid "Connection Callbacks" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:478 +#: library/asyncio-protocol.rst:486 msgid "" "Connection callbacks are called on all protocols, exactly once per a " "successful connection. All other protocol callbacks can only be called " "between those two methods." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:484 +#: library/asyncio-protocol.rst:492 msgid "Called when a connection is made." msgstr "Appelé lorsqu'une connexion est établie." -#: ../Doc/library/asyncio-protocol.rst:486 +#: library/asyncio-protocol.rst:494 msgid "" "The *transport* argument is the transport representing the connection. The " "protocol is responsible for storing the reference to its transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:492 +#: library/asyncio-protocol.rst:500 msgid "Called when the connection is lost or closed." msgstr "Appelé lorsqu'une connexion est perdue ou fermée." -#: ../Doc/library/asyncio-protocol.rst:494 +#: library/asyncio-protocol.rst:502 msgid "" "The argument is either an exception object or :const:`None`. The latter " "means a regular EOF is received, or the connection was aborted or closed by " "this side of the connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:500 +#: library/asyncio-protocol.rst:508 msgid "Flow Control Callbacks" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:501 +#: library/asyncio-protocol.rst:509 msgid "" "Flow control callbacks can be called by transports to pause or resume " "writing performed by the protocol." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:504 +#: library/asyncio-protocol.rst:512 msgid "" "See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` " "method for more details." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:509 +#: library/asyncio-protocol.rst:517 msgid "Called when the transport's buffer goes over the high watermark." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:513 +#: library/asyncio-protocol.rst:521 msgid "Called when the transport's buffer drains below the low watermark." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:515 +#: library/asyncio-protocol.rst:523 msgid "" "If the buffer size equals the high watermark, :meth:`~BaseProtocol." "pause_writing` is not called: the buffer size must go strictly over." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:519 +#: library/asyncio-protocol.rst:527 msgid "" "Conversely, :meth:`~BaseProtocol.resume_writing` is called when the buffer " "size is equal or lower than the low watermark. These end conditions are " "important to ensure that things go as expected when either mark is zero." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:526 +#: library/asyncio-protocol.rst:534 msgid "Streaming Protocols" msgstr "Protocoles connectés" -#: ../Doc/library/asyncio-protocol.rst:528 +#: library/asyncio-protocol.rst:536 msgid "" "Event methods, such as :meth:`loop.create_server`, :meth:`loop." "create_unix_server`, :meth:`loop.create_connection`, :meth:`loop." @@ -718,13 +726,13 @@ msgid "" "that return streaming protocols." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:536 +#: library/asyncio-protocol.rst:544 msgid "" "Called when some data is received. *data* is a non-empty bytes object " "containing the incoming data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:539 +#: library/asyncio-protocol.rst:547 msgid "" "Whether the data is buffered, chunked or reassembled depends on the " "transport. In general, you shouldn't rely on specific semantics and instead " @@ -732,27 +740,27 @@ msgid "" "the correct order." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:544 +#: library/asyncio-protocol.rst:552 msgid "" "The method can be called an arbitrary number of times while a connection is " "open." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:547 +#: library/asyncio-protocol.rst:555 msgid "" "However, :meth:`protocol.eof_received() ` is called " "at most once. Once `eof_received()` is called, ``data_received()`` is not " "called anymore." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:553 +#: library/asyncio-protocol.rst:561 msgid "" "Called when the other end signals it won't send any more data (for example " "by calling :meth:`transport.write_eof() `, if the " "other end also uses asyncio)." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:558 +#: library/asyncio-protocol.rst:566 msgid "" "This method may return a false value (including ``None``), in which case the " "transport will close itself. Conversely, if this method returns a true " @@ -761,36 +769,35 @@ msgid "" "connection." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:564 +#: library/asyncio-protocol.rst:572 msgid "" "Some transports, including SSL, don't support half-closed connections, in " "which case returning true from this method will result in the connection " "being closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:569 -#: ../Doc/library/asyncio-protocol.rst:630 +#: library/asyncio-protocol.rst:577 library/asyncio-protocol.rst:638 msgid "State machine:" msgstr "Machine à états :" -#: ../Doc/library/asyncio-protocol.rst:580 +#: library/asyncio-protocol.rst:588 msgid "Buffered Streaming Protocols" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:582 +#: library/asyncio-protocol.rst:590 msgid "" "**Important:** this has been added to asyncio in Python 3.7 *on a " "provisional basis*! This is as an experimental API that might be changed or " "removed completely in Python 3.8." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:587 +#: library/asyncio-protocol.rst:595 msgid "" "Buffered Protocols can be used with any event loop method that supports " "`Streaming Protocols`_." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:590 +#: library/asyncio-protocol.rst:598 msgid "" "``BufferedProtocol`` implementations allow explicit manual allocation and " "control of the receive buffer. Event loops can then use the buffer provided " @@ -800,16 +807,16 @@ msgid "" "number of buffer allocations." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:597 +#: library/asyncio-protocol.rst:605 msgid "" "The following callbacks are called on :class:`BufferedProtocol` instances:" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:602 +#: library/asyncio-protocol.rst:610 msgid "Called to allocate a new receive buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:604 +#: library/asyncio-protocol.rst:612 msgid "" "*sizehint* is the recommended minimum size for the returned buffer. It is " "acceptable to return smaller or larger buffers than what *sizehint* " @@ -817,27 +824,27 @@ msgid "" "to return a buffer with a zero size." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:609 +#: library/asyncio-protocol.rst:617 msgid "" "``get_buffer()`` must return an object implementing the :ref:`buffer " "protocol `." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:614 +#: library/asyncio-protocol.rst:622 msgid "Called when the buffer was updated with the received data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:616 +#: library/asyncio-protocol.rst:624 msgid "*nbytes* is the total number of bytes that were written to the buffer." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:620 +#: library/asyncio-protocol.rst:628 msgid "" "See the documentation of the :meth:`protocol.eof_received() ` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:624 +#: library/asyncio-protocol.rst:632 msgid "" ":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of " "times during a connection. However, :meth:`protocol.eof_received() " @@ -846,44 +853,44 @@ msgid "" "won't be called after it." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:643 +#: library/asyncio-protocol.rst:651 msgid "Datagram Protocols" msgstr "Protocoles non-connectés" -#: ../Doc/library/asyncio-protocol.rst:645 +#: library/asyncio-protocol.rst:653 msgid "" "Datagram Protocol instances should be constructed by protocol factories " "passed to the :meth:`loop.create_datagram_endpoint` method." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:650 +#: library/asyncio-protocol.rst:658 msgid "" "Called when a datagram is received. *data* is a bytes object containing the " "incoming data. *addr* is the address of the peer sending the data; the " "exact format depends on the transport." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:656 +#: library/asyncio-protocol.rst:664 msgid "" "Called when a previous send or receive operation raises an :class:" "`OSError`. *exc* is the :class:`OSError` instance." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:659 +#: library/asyncio-protocol.rst:667 msgid "" "This method is called in rare conditions, when the transport (e.g. UDP) " "detects that a datagram could not be delivered to its recipient. In many " "conditions though, undeliverable datagrams will be silently dropped." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:666 +#: library/asyncio-protocol.rst:674 msgid "" "On BSD systems (macOS, FreeBSD, etc.) flow control is not supported for " "datagram protocols, because there is no reliable way to detect send failures " "caused by writing too many packets." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:670 +#: library/asyncio-protocol.rst:678 msgid "" "The socket always appears 'ready' and excess packets are dropped. An :class:" "`OSError` with ``errno`` set to :const:`errno.ENOBUFS` may or may not be " @@ -891,142 +898,142 @@ msgid "" "error_received` but otherwise ignored." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:679 +#: library/asyncio-protocol.rst:687 msgid "Subprocess Protocols" msgstr "Protocoles liés aux sous-processus" -#: ../Doc/library/asyncio-protocol.rst:681 +#: library/asyncio-protocol.rst:689 msgid "" "Datagram Protocol instances should be constructed by protocol factories " "passed to the :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` " "methods." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:687 +#: library/asyncio-protocol.rst:695 msgid "" "Called when the child process writes data into its stdout or stderr pipe." msgstr "" "Appelé lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " "standard." -#: ../Doc/library/asyncio-protocol.rst:690 +#: library/asyncio-protocol.rst:698 msgid "*fd* is the integer file descriptor of the pipe." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:692 +#: library/asyncio-protocol.rst:700 msgid "*data* is a non-empty bytes object containing the received data." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:696 +#: library/asyncio-protocol.rst:704 msgid "" "Called when one of the pipes communicating with the child process is closed." msgstr "" "Appelé lorsqu'une des *pipe*\\ s de communication avec un sous-processus est " "fermée." -#: ../Doc/library/asyncio-protocol.rst:699 +#: library/asyncio-protocol.rst:707 msgid "*fd* is the integer file descriptor that was closed." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:703 +#: library/asyncio-protocol.rst:711 msgid "Called when the child process has exited." msgstr "Appelé lorsqu'un processus enfant se termine." -#: ../Doc/library/asyncio-protocol.rst:707 +#: library/asyncio-protocol.rst:715 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-protocol.rst:712 +#: library/asyncio-protocol.rst:720 msgid "TCP Echo Server" msgstr "Serveur de *ping* en TCP" -#: ../Doc/library/asyncio-protocol.rst:714 +#: library/asyncio-protocol.rst:722 msgid "" "Create a TCP echo server using the :meth:`loop.create_server` method, send " "back received data, and close the connection::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:755 +#: library/asyncio-protocol.rst:763 msgid "" "The :ref:`TCP echo server using streams ` " "example uses the high-level :func:`asyncio.start_server` function." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:761 +#: library/asyncio-protocol.rst:769 msgid "TCP Echo Client" msgstr "Client de *ping* en TCP" -#: ../Doc/library/asyncio-protocol.rst:763 +#: library/asyncio-protocol.rst:771 msgid "" "A TCP echo client using the :meth:`loop.create_connection` method, sends " "data, and waits until the connection is closed::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:811 +#: library/asyncio-protocol.rst:819 msgid "" "The :ref:`TCP echo client using streams ` " "example uses the high-level :func:`asyncio.open_connection` function." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:818 +#: library/asyncio-protocol.rst:826 msgid "UDP Echo Server" msgstr "Serveur de *ping* en UDP" -#: ../Doc/library/asyncio-protocol.rst:820 +#: library/asyncio-protocol.rst:828 msgid "" "A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, " "sends back received data::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:862 +#: library/asyncio-protocol.rst:870 msgid "UDP Echo Client" msgstr "Client de *ping* en UDP" -#: ../Doc/library/asyncio-protocol.rst:864 +#: library/asyncio-protocol.rst:872 msgid "" "A UDP echo client, using the :meth:`loop.create_datagram_endpoint` method, " "sends data and closes the transport when it receives the answer::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:919 +#: library/asyncio-protocol.rst:927 msgid "Connecting Existing Sockets" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:921 +#: library/asyncio-protocol.rst:929 msgid "" "Wait until a socket receives data using the :meth:`loop.create_connection` " "method with a protocol::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:975 +#: library/asyncio-protocol.rst:983 msgid "" "The :ref:`watch a file descriptor for read events " "` example uses the low-level :meth:`loop." "add_reader` method to register an FD." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:979 +#: library/asyncio-protocol.rst:987 msgid "" "The :ref:`register an open socket to wait for data using streams " "` example uses high-level streams " "created by the :func:`open_connection` function in a coroutine." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:986 +#: library/asyncio-protocol.rst:994 msgid "loop.subprocess_exec() and SubprocessProtocol" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:988 +#: library/asyncio-protocol.rst:996 msgid "" "An example of a subprocess protocol used to get the output of a subprocess " "and to wait for the subprocess exit." msgstr "" -#: ../Doc/library/asyncio-protocol.rst:991 -msgid "The subprocess is created by th :meth:`loop.subprocess_exec` method::" +#: library/asyncio-protocol.rst:999 +msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::" msgstr "" -#: ../Doc/library/asyncio-protocol.rst:1037 +#: library/asyncio-protocol.rst:1045 msgid "" "See also the :ref:`same example ` " "written using high-level APIs." diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po index 6630a69082..f1976440e6 100644 --- a/library/asyncio-queue.po +++ b/library/asyncio-queue.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2018-10-13 17:37+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -19,85 +19,96 @@ msgid "Queues" msgstr "" #: ../Doc/library/asyncio-queue.rst:9 +#, fuzzy +msgid "**Source code:** :source:`Lib/asyncio/queues.py`" +msgstr "**Code source :** :source:`Lib/asyncore.py`" + +#: ../Doc/library/asyncio-queue.rst:13 msgid "" "asyncio queues are designed to be similar to classes of the :mod:`queue` " "module. Although asyncio queues are not thread-safe, they are designed to " "be used specifically in async/await code." msgstr "" -#: ../Doc/library/asyncio-queue.rst:13 +#: ../Doc/library/asyncio-queue.rst:17 msgid "" "Note that methods of asyncio queues don't have a *timeout* parameter; use :" "func:`asyncio.wait_for` function to do queue operations with a timeout." msgstr "" -#: ../Doc/library/asyncio-queue.rst:17 +#: ../Doc/library/asyncio-queue.rst:21 msgid "See also the `Examples`_ section below." msgstr "" -#: ../Doc/library/asyncio-queue.rst:20 +#: ../Doc/library/asyncio-queue.rst:24 msgid "Queue" msgstr "" -#: ../Doc/library/asyncio-queue.rst:24 +#: ../Doc/library/asyncio-queue.rst:28 msgid "A first in, first out (FIFO) queue." msgstr "" -#: ../Doc/library/asyncio-queue.rst:26 +#: ../Doc/library/asyncio-queue.rst:30 msgid "" "If *maxsize* is less than or equal to zero, the queue size is infinite. If " "it is an integer greater than ``0``, then ``await put()`` blocks when the " "queue reaches *maxsize* until an item is removed by :meth:`get`." msgstr "" -#: ../Doc/library/asyncio-queue.rst:31 +#: ../Doc/library/asyncio-queue.rst:35 msgid "" "Unlike the standard library threading :mod:`queue`, the size of the queue is " "always known and can be returned by calling the :meth:`qsize` method." msgstr "" -#: ../Doc/library/asyncio-queue.rst:38 +#: ../Doc/library/asyncio-queue.rst:42 msgid "The *loop* parameter." -msgstr "" +msgstr "Le paramètre *loop*." -#: ../Doc/library/asyncio-queue.rst:39 +#: ../Doc/library/asyncio-queue.rst:43 msgid "This class is :ref:`not thread safe `." msgstr "" +"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." -#: ../Doc/library/asyncio-queue.rst:43 +#: ../Doc/library/asyncio-queue.rst:47 msgid "Number of items allowed in the queue." msgstr "Nombre d'éléments autorisés dans la queue." -#: ../Doc/library/asyncio-queue.rst:47 +#: ../Doc/library/asyncio-queue.rst:51 msgid "Return ``True`` if the queue is empty, ``False`` otherwise." msgstr "Renvoie ``True`` si la queue est vide, ``False`` sinon." -#: ../Doc/library/asyncio-queue.rst:51 +#: ../Doc/library/asyncio-queue.rst:55 msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." msgstr "" -#: ../Doc/library/asyncio-queue.rst:53 +#: ../Doc/library/asyncio-queue.rst:57 msgid "" "If the queue was initialized with ``maxsize=0`` (the default), then :meth:" "`full()` never returns ``True``." msgstr "" -#: ../Doc/library/asyncio-queue.rst:58 +#: ../Doc/library/asyncio-queue.rst:62 msgid "" "Remove and return an item from the queue. If queue is empty, wait until an " "item is available." msgstr "" -#: ../Doc/library/asyncio-queue.rst:63 +#: ../Doc/library/asyncio-queue.rst:67 msgid "" "Return an item if one is immediately available, else raise :exc:`QueueEmpty`." msgstr "" -#: ../Doc/library/asyncio-queue.rst:68 +#: ../Doc/library/asyncio-queue.rst:72 +#, fuzzy msgid "Block until all items in the queue have been received and processed." msgstr "" +"Bloque jusqu'à ce que tous les éléments de la queue aient été récupérés et " +"traités." -#: ../Doc/library/asyncio-queue.rst:70 +#: ../Doc/library/asyncio-queue.rst:74 +#, fuzzy msgid "" "The count of unfinished tasks goes up whenever an item is added to the " "queue. The count goes down whenever a consumer coroutine calls :meth:" @@ -105,94 +116,106 @@ msgid "" "complete. When the count of unfinished tasks drops to zero, :meth:`join` " "unblocks." msgstr "" +"Le nombre de tâches inachevées augmente chaque fois qu'un élément est ajouté " +"à la file. Ce nombre diminue chaque fois qu'un fil d'exécution consommateur " +"appelle :meth:`task_done` pour indiquer que l'élément a été extrait et que " +"tout le travail à effectuer dessus est terminé. Lorsque le nombre de tâches " +"non terminées devient nul, :meth:`join` débloque." -#: ../Doc/library/asyncio-queue.rst:78 +#: ../Doc/library/asyncio-queue.rst:82 msgid "" "Put an item into the queue. If the queue is full, wait until a free slot is " "available before adding the item." msgstr "" -#: ../Doc/library/asyncio-queue.rst:83 +#: ../Doc/library/asyncio-queue.rst:87 msgid "Put an item into the queue without blocking." msgstr "Ajoute un élément dans la queue sans bloquer." -#: ../Doc/library/asyncio-queue.rst:85 +#: ../Doc/library/asyncio-queue.rst:89 msgid "If no free slot is immediately available, raise :exc:`QueueFull`." msgstr "" -#: ../Doc/library/asyncio-queue.rst:89 +#: ../Doc/library/asyncio-queue.rst:93 msgid "Return the number of items in the queue." msgstr "Renvoie le nombre d'éléments dans la queue." -#: ../Doc/library/asyncio-queue.rst:93 +#: ../Doc/library/asyncio-queue.rst:97 msgid "Indicate that a formerly enqueued task is complete." msgstr "" -#: ../Doc/library/asyncio-queue.rst:95 +#: ../Doc/library/asyncio-queue.rst:99 msgid "" "Used by queue consumers. For each :meth:`~Queue.get` used to fetch a task, a " "subsequent call to :meth:`task_done` tells the queue that the processing on " "the task is complete." msgstr "" -#: ../Doc/library/asyncio-queue.rst:99 +#: ../Doc/library/asyncio-queue.rst:103 +#, fuzzy msgid "" "If a :meth:`join` is currently blocking, it will resume when all items have " "been processed (meaning that a :meth:`task_done` call was received for every " "item that had been :meth:`~Queue.put` into the queue)." msgstr "" +"Si un :meth:`join` est actuellement bloquant, on reprendra lorsque tous les " +"éléments auront été traités (ce qui signifie qu'un appel à :meth:`task_done` " +"a été effectué pour chaque élément qui a été :meth:`put` dans la file)." -#: ../Doc/library/asyncio-queue.rst:104 +#: ../Doc/library/asyncio-queue.rst:108 +#, fuzzy msgid "" "Raises :exc:`ValueError` if called more times than there were items placed " "in the queue." msgstr "" +"Lève une exception :exc:`ValueError` si appelée plus de fois qu'il y avait " +"d'éléments dans la file." -#: ../Doc/library/asyncio-queue.rst:109 +#: ../Doc/library/asyncio-queue.rst:113 msgid "Priority Queue" msgstr "File de priorité" -#: ../Doc/library/asyncio-queue.rst:113 +#: ../Doc/library/asyncio-queue.rst:117 msgid "" "A variant of :class:`Queue`; retrieves entries in priority order (lowest " "first)." msgstr "" -#: ../Doc/library/asyncio-queue.rst:116 +#: ../Doc/library/asyncio-queue.rst:120 msgid "Entries are typically tuples of the form ``(priority_number, data)``." msgstr "" -#: ../Doc/library/asyncio-queue.rst:121 +#: ../Doc/library/asyncio-queue.rst:125 msgid "LIFO Queue" msgstr "" -#: ../Doc/library/asyncio-queue.rst:125 +#: ../Doc/library/asyncio-queue.rst:129 msgid "" "A variant of :class:`Queue` that retrieves most recently added entries first " "(last in, first out)." msgstr "" -#: ../Doc/library/asyncio-queue.rst:130 +#: ../Doc/library/asyncio-queue.rst:134 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/asyncio-queue.rst:134 +#: ../Doc/library/asyncio-queue.rst:138 msgid "" "This exception is raised when the :meth:`~Queue.get_nowait` method is called " "on an empty queue." msgstr "" -#: ../Doc/library/asyncio-queue.rst:140 +#: ../Doc/library/asyncio-queue.rst:144 msgid "" "Exception raised when the :meth:`~Queue.put_nowait` method is called on a " "queue that has reached its *maxsize*." msgstr "" -#: ../Doc/library/asyncio-queue.rst:145 +#: ../Doc/library/asyncio-queue.rst:149 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-queue.rst:149 +#: ../Doc/library/asyncio-queue.rst:153 msgid "" "Queues can be used to distribute workload between several concurrent tasks::" msgstr "" diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po index 9c3c8daf9c..c461cb4adc 100644 --- a/library/asyncio-stream.po +++ b/library/asyncio-stream.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: 2019-09-06 13:48+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -19,69 +19,74 @@ msgid "Streams" msgstr "Streams" #: ../Doc/library/asyncio-stream.rst:9 +#, fuzzy +msgid "**Source code:** :source:`Lib/asyncio/streams.py`" +msgstr "**Code source :** :source:`Lib/asyncore.py`" + +#: ../Doc/library/asyncio-stream.rst:13 msgid "" "Streams are high-level async/await-ready primitives to work with network " "connections. Streams allow sending and receiving data without using " "callbacks or low-level protocols and transports." msgstr "" -#: ../Doc/library/asyncio-stream.rst:15 +#: ../Doc/library/asyncio-stream.rst:19 msgid "Here is an example of a TCP echo client written using asyncio streams::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:38 +#: ../Doc/library/asyncio-stream.rst:42 msgid "See also the `Examples`_ section below." msgstr "" -#: ../Doc/library/asyncio-stream.rst:42 +#: ../Doc/library/asyncio-stream.rst:46 msgid "Stream Functions" msgstr "" -#: ../Doc/library/asyncio-stream.rst:43 +#: ../Doc/library/asyncio-stream.rst:47 msgid "" "The following top-level asyncio functions can be used to create and work " "with streams:" msgstr "" -#: ../Doc/library/asyncio-stream.rst:52 +#: ../Doc/library/asyncio-stream.rst:56 msgid "" "Establish a network connection and return a pair of ``(reader, writer)`` " "objects." msgstr "" -#: ../Doc/library/asyncio-stream.rst:55 +#: ../Doc/library/asyncio-stream.rst:59 msgid "" "The returned *reader* and *writer* objects are instances of :class:" "`StreamReader` and :class:`StreamWriter` classes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:58 +#: ../Doc/library/asyncio-stream.rst:62 msgid "" "The *loop* argument is optional and can always be determined automatically " "when this function is awaited from a coroutine." msgstr "" -#: ../Doc/library/asyncio-stream.rst:61 ../Doc/library/asyncio-stream.rst:94 +#: ../Doc/library/asyncio-stream.rst:65 ../Doc/library/asyncio-stream.rst:98 msgid "" "*limit* determines the buffer size limit used by the returned :class:" "`StreamReader` instance. By default the *limit* is set to 64 KiB." msgstr "" -#: ../Doc/library/asyncio-stream.rst:65 +#: ../Doc/library/asyncio-stream.rst:69 msgid "" "The rest of the arguments are passed directly to :meth:`loop." "create_connection`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:70 ../Doc/library/asyncio-stream.rst:123 +#: ../Doc/library/asyncio-stream.rst:74 ../Doc/library/asyncio-stream.rst:127 msgid "The *ssl_handshake_timeout* parameter." msgstr "" -#: ../Doc/library/asyncio-stream.rst:80 +#: ../Doc/library/asyncio-stream.rst:84 msgid "Start a socket server." msgstr "" -#: ../Doc/library/asyncio-stream.rst:82 +#: ../Doc/library/asyncio-stream.rst:86 msgid "" "The *client_connected_cb* callback is called whenever a new client " "connection is established. It receives a ``(reader, writer)`` pair as two " @@ -89,143 +94,143 @@ msgid "" "classes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:87 +#: ../Doc/library/asyncio-stream.rst:91 msgid "" "*client_connected_cb* can be a plain callable or a :ref:`coroutine function " "`; if it is a coroutine function, it will be automatically " "scheduled as a :class:`Task`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:91 +#: ../Doc/library/asyncio-stream.rst:95 msgid "" "The *loop* argument is optional and can always be determined automatically " "when this method is awaited from a coroutine." msgstr "" -#: ../Doc/library/asyncio-stream.rst:98 +#: ../Doc/library/asyncio-stream.rst:102 msgid "" "The rest of the arguments are passed directly to :meth:`loop.create_server`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:103 ../Doc/library/asyncio-stream.rst:145 +#: ../Doc/library/asyncio-stream.rst:107 ../Doc/library/asyncio-stream.rst:149 msgid "The *ssl_handshake_timeout* and *start_serving* parameters." msgstr "" -#: ../Doc/library/asyncio-stream.rst:107 +#: ../Doc/library/asyncio-stream.rst:111 msgid "Unix Sockets" msgstr "" -#: ../Doc/library/asyncio-stream.rst:112 +#: ../Doc/library/asyncio-stream.rst:116 msgid "" "Establish a Unix socket connection and return a pair of ``(reader, writer)``." msgstr "" -#: ../Doc/library/asyncio-stream.rst:115 +#: ../Doc/library/asyncio-stream.rst:119 msgid "Similar to :func:`open_connection` but operates on Unix sockets." msgstr "" -#: ../Doc/library/asyncio-stream.rst:117 +#: ../Doc/library/asyncio-stream.rst:121 msgid "See also the documentation of :meth:`loop.create_unix_connection`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:120 ../Doc/library/asyncio-stream.rst:142 +#: ../Doc/library/asyncio-stream.rst:124 ../Doc/library/asyncio-stream.rst:146 msgid ":ref:`Availability `: Unix." msgstr ":ref:`Disponibilité ` : Unix." -#: ../Doc/library/asyncio-stream.rst:127 +#: ../Doc/library/asyncio-stream.rst:131 msgid "The *path* parameter can now be a :term:`path-like object`" msgstr "" -#: ../Doc/library/asyncio-stream.rst:135 +#: ../Doc/library/asyncio-stream.rst:139 msgid "Start a Unix socket server." msgstr "" -#: ../Doc/library/asyncio-stream.rst:137 +#: ../Doc/library/asyncio-stream.rst:141 msgid "Similar to :func:`start_server` but works with Unix sockets." msgstr "" -#: ../Doc/library/asyncio-stream.rst:139 +#: ../Doc/library/asyncio-stream.rst:143 msgid "See also the documentation of :meth:`loop.create_unix_server`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:149 +#: ../Doc/library/asyncio-stream.rst:153 msgid "The *path* parameter can now be a :term:`path-like object`." msgstr "" -#: ../Doc/library/asyncio-stream.rst:153 +#: ../Doc/library/asyncio-stream.rst:157 msgid "StreamReader" msgstr "StreamReader" -#: ../Doc/library/asyncio-stream.rst:157 +#: ../Doc/library/asyncio-stream.rst:161 msgid "" "Represents a reader object that provides APIs to read data from the IO " "stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:160 +#: ../Doc/library/asyncio-stream.rst:164 msgid "" "It is not recommended to instantiate *StreamReader* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." msgstr "" -#: ../Doc/library/asyncio-stream.rst:166 +#: ../Doc/library/asyncio-stream.rst:170 msgid "" "Read up to *n* bytes. If *n* is not provided, or set to ``-1``, read until " "EOF and return all read bytes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:169 +#: ../Doc/library/asyncio-stream.rst:173 msgid "" "If EOF was received and the internal buffer is empty, return an empty " "``bytes`` object." msgstr "" -#: ../Doc/library/asyncio-stream.rst:174 +#: ../Doc/library/asyncio-stream.rst:178 msgid "" "Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." msgstr "" -#: ../Doc/library/asyncio-stream.rst:177 +#: ../Doc/library/asyncio-stream.rst:181 msgid "" "If EOF is received and ``\\n`` was not found, the method returns partially " "read data." msgstr "" -#: ../Doc/library/asyncio-stream.rst:180 +#: ../Doc/library/asyncio-stream.rst:184 msgid "" "If EOF is received and the internal buffer is empty, return an empty " "``bytes`` object." msgstr "" -#: ../Doc/library/asyncio-stream.rst:185 +#: ../Doc/library/asyncio-stream.rst:189 msgid "Read exactly *n* bytes." msgstr "" -#: ../Doc/library/asyncio-stream.rst:187 +#: ../Doc/library/asyncio-stream.rst:191 msgid "" "Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be " "read. Use the :attr:`IncompleteReadError.partial` attribute to get the " "partially read data." msgstr "" -#: ../Doc/library/asyncio-stream.rst:193 +#: ../Doc/library/asyncio-stream.rst:197 msgid "Read data from the stream until *separator* is found." msgstr "" -#: ../Doc/library/asyncio-stream.rst:195 +#: ../Doc/library/asyncio-stream.rst:199 msgid "" "On success, the data and separator will be removed from the internal buffer " "(consumed). Returned data will include the separator at the end." msgstr "" -#: ../Doc/library/asyncio-stream.rst:199 +#: ../Doc/library/asyncio-stream.rst:203 msgid "" "If the amount of data read exceeds the configured stream limit, a :exc:" "`LimitOverrunError` exception is raised, and the data is left in the " "internal buffer and can be read again." msgstr "" -#: ../Doc/library/asyncio-stream.rst:203 +#: ../Doc/library/asyncio-stream.rst:207 msgid "" "If EOF is reached before the complete separator is found, an :exc:" "`IncompleteReadError` exception is raised, and the internal buffer is " @@ -233,77 +238,77 @@ msgid "" "portion of the separator." msgstr "" -#: ../Doc/library/asyncio-stream.rst:212 +#: ../Doc/library/asyncio-stream.rst:216 msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." msgstr "" -#: ../Doc/library/asyncio-stream.rst:217 +#: ../Doc/library/asyncio-stream.rst:221 msgid "StreamWriter" msgstr "StreamWriter" -#: ../Doc/library/asyncio-stream.rst:221 +#: ../Doc/library/asyncio-stream.rst:225 msgid "" "Represents a writer object that provides APIs to write data to the IO stream." msgstr "" -#: ../Doc/library/asyncio-stream.rst:224 +#: ../Doc/library/asyncio-stream.rst:228 msgid "" "It is not recommended to instantiate *StreamWriter* objects directly; use :" "func:`open_connection` and :func:`start_server` instead." msgstr "" -#: ../Doc/library/asyncio-stream.rst:230 +#: ../Doc/library/asyncio-stream.rst:234 msgid "" "The method attempts to write the *data* to the underlying socket " "immediately. If that fails, the data is queued in an internal write buffer " "until it can be sent." msgstr "" -#: ../Doc/library/asyncio-stream.rst:234 ../Doc/library/asyncio-stream.rst:246 +#: ../Doc/library/asyncio-stream.rst:238 ../Doc/library/asyncio-stream.rst:250 msgid "The method should be used along with the ``drain()`` method::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:241 +#: ../Doc/library/asyncio-stream.rst:245 msgid "" "The method writes a list (or any iterable) of bytes to the underlying socket " "immediately. If that fails, the data is queued in an internal write buffer " "until it can be sent." msgstr "" -#: ../Doc/library/asyncio-stream.rst:253 +#: ../Doc/library/asyncio-stream.rst:257 msgid "The method closes the stream and the underlying socket." msgstr "" -#: ../Doc/library/asyncio-stream.rst:255 +#: ../Doc/library/asyncio-stream.rst:259 msgid "The method should be used along with the ``wait_closed()`` method::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:262 +#: ../Doc/library/asyncio-stream.rst:266 msgid "" -"Return *True* if the underlying transport supports the :meth:`write_eof` " -"method, *False* otherwise." +"Return ``True`` if the underlying transport supports the :meth:`write_eof` " +"method, ``False`` otherwise." msgstr "" -#: ../Doc/library/asyncio-stream.rst:267 +#: ../Doc/library/asyncio-stream.rst:271 msgid "" "Close the write end of the stream after the buffered write data is flushed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:272 +#: ../Doc/library/asyncio-stream.rst:276 msgid "Return the underlying asyncio transport." msgstr "" -#: ../Doc/library/asyncio-stream.rst:276 +#: ../Doc/library/asyncio-stream.rst:280 msgid "" "Access optional transport information; see :meth:`BaseTransport." "get_extra_info` for details." msgstr "" -#: ../Doc/library/asyncio-stream.rst:281 +#: ../Doc/library/asyncio-stream.rst:285 msgid "Wait until it is appropriate to resume writing to the stream. Example::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:287 +#: ../Doc/library/asyncio-stream.rst:291 msgid "" "This is a flow control method that interacts with the underlying IO write " "buffer. When the size of the buffer reaches the high watermark, *drain()* " @@ -312,90 +317,90 @@ msgid "" "`drain` returns immediately." msgstr "" -#: ../Doc/library/asyncio-stream.rst:296 +#: ../Doc/library/asyncio-stream.rst:300 msgid "" "Return ``True`` if the stream is closed or in the process of being closed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:303 +#: ../Doc/library/asyncio-stream.rst:307 msgid "Wait until the stream is closed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:305 +#: ../Doc/library/asyncio-stream.rst:309 msgid "" "Should be called after :meth:`close` to wait until the underlying connection " "is closed." msgstr "" -#: ../Doc/library/asyncio-stream.rst:312 +#: ../Doc/library/asyncio-stream.rst:316 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-stream.rst:317 +#: ../Doc/library/asyncio-stream.rst:321 msgid "TCP echo client using streams" msgstr "" -#: ../Doc/library/asyncio-stream.rst:319 +#: ../Doc/library/asyncio-stream.rst:323 msgid "TCP echo client using the :func:`asyncio.open_connection` function::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:341 +#: ../Doc/library/asyncio-stream.rst:345 msgid "" "The :ref:`TCP echo client protocol " "` example uses the low-level :meth:" "`loop.create_connection` method." msgstr "" -#: ../Doc/library/asyncio-stream.rst:348 +#: ../Doc/library/asyncio-stream.rst:352 msgid "TCP echo server using streams" msgstr "" -#: ../Doc/library/asyncio-stream.rst:350 +#: ../Doc/library/asyncio-stream.rst:354 msgid "TCP echo server using the :func:`asyncio.start_server` function::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:383 +#: ../Doc/library/asyncio-stream.rst:387 msgid "" "The :ref:`TCP echo server protocol " "` example uses the :meth:`loop." "create_server` method." msgstr "" -#: ../Doc/library/asyncio-stream.rst:388 +#: ../Doc/library/asyncio-stream.rst:392 msgid "Get HTTP headers" msgstr "Récupère les en-têtes HTTP" -#: ../Doc/library/asyncio-stream.rst:390 +#: ../Doc/library/asyncio-stream.rst:394 msgid "" "Simple example querying HTTP headers of the URL passed on the command line::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:428 +#: ../Doc/library/asyncio-stream.rst:432 msgid "Usage::" msgstr "Utilisation ::" -#: ../Doc/library/asyncio-stream.rst:432 +#: ../Doc/library/asyncio-stream.rst:436 msgid "or with HTTPS::" msgstr "ou avec HTTPS ::" -#: ../Doc/library/asyncio-stream.rst:440 +#: ../Doc/library/asyncio-stream.rst:444 msgid "Register an open socket to wait for data using streams" msgstr "" -#: ../Doc/library/asyncio-stream.rst:442 +#: ../Doc/library/asyncio-stream.rst:446 msgid "" "Coroutine waiting until a socket receives data using the :func:" "`open_connection` function::" msgstr "" -#: ../Doc/library/asyncio-stream.rst:476 +#: ../Doc/library/asyncio-stream.rst:480 msgid "" "The :ref:`register an open socket to wait for data using a protocol " "` example uses a low-level protocol and " "the :meth:`loop.create_connection` method." msgstr "" -#: ../Doc/library/asyncio-stream.rst:480 +#: ../Doc/library/asyncio-stream.rst:484 msgid "" "The :ref:`watch a file descriptor for read events " "` example uses the low-level :meth:`loop." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po index 2be9e97cc1..07932af7f9 100644 --- a/library/asyncio-subprocess.po +++ b/library/asyncio-subprocess.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-15 00:37+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -14,27 +14,38 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-subprocess.rst:7 +#: library/asyncio-subprocess.rst:7 msgid "Subprocesses" msgstr "Sous-processus" -#: ../Doc/library/asyncio-subprocess.rst:9 +#: library/asyncio-subprocess.rst:9 +msgid "" +"**Source code:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" +"base_subprocess.py`" +msgstr "" + +#: library/asyncio-subprocess.rst:14 msgid "" "This section describes high-level async/await asyncio APIs to create and " "manage subprocesses." msgstr "" +"Cette section décrit des API de haut niveau de *asyncio* pour créer et gérer " +"des sous-processus via ``async``/``await``." -#: ../Doc/library/asyncio-subprocess.rst:14 +#: library/asyncio-subprocess.rst:19 msgid "" "Here's an example of how asyncio can run a shell command and obtain its " "result::" msgstr "" +"Voici un exemple de comment *asyncio* peut lancer une commande shell et " +"obtenir son résultat ::" -#: ../Doc/library/asyncio-subprocess.rst:35 +#: library/asyncio-subprocess.rst:40 +#, fuzzy msgid "will print::" -msgstr "" +msgstr "affiche ::" -#: ../Doc/library/asyncio-subprocess.rst:41 +#: library/asyncio-subprocess.rst:46 msgid "" "Because all asyncio subprocess functions are asynchronous and asyncio " "provides many tools to work with such functions, it is easy to execute and " @@ -42,52 +53,57 @@ msgid "" "the above example to run several commands simultaneously::" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:53 +#: library/asyncio-subprocess.rst:58 msgid "See also the `Examples`_ subsection." -msgstr "" +msgstr "Voir également la section `Exemples`_." -#: ../Doc/library/asyncio-subprocess.rst:57 +#: library/asyncio-subprocess.rst:62 msgid "Creating Subprocesses" -msgstr "" +msgstr "Créer des sous-processus" -#: ../Doc/library/asyncio-subprocess.rst:63 +#: library/asyncio-subprocess.rst:68 msgid "Create a subprocess." -msgstr "" +msgstr "Crée un sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:65 -#: ../Doc/library/asyncio-subprocess.rst:84 +#: library/asyncio-subprocess.rst:70 library/asyncio-subprocess.rst:89 msgid "" "The *limit* argument sets the buffer limit for :class:`StreamReader` " "wrappers for :attr:`Process.stdout` and :attr:`Process.stderr` (if :attr:" "`subprocess.PIPE` is passed to *stdout* and *stderr* arguments)." msgstr "" +"Le paramètre *limit* définit la taille maximale du tampon pour les instances " +"de :class:`StreamReader` encapsulant :attr:`Process.stdout` et :attr:" +"`Process.stderr` (Si :attr:`subprocess.PIPE` est passé aux paramètres " +"*stdout* et *stderr*)." -#: ../Doc/library/asyncio-subprocess.rst:69 -#: ../Doc/library/asyncio-subprocess.rst:88 +#: library/asyncio-subprocess.rst:74 library/asyncio-subprocess.rst:93 msgid "Return a :class:`~asyncio.subprocess.Process` instance." -msgstr "" +msgstr "Renvoie une instance de :class:`~asyncio.subprocess.Process`." -#: ../Doc/library/asyncio-subprocess.rst:71 +#: library/asyncio-subprocess.rst:76 msgid "" "See the documentation of :meth:`loop.subprocess_exec` for other parameters." msgstr "" +"Voir la documentation de :meth:`loop.subprocess_exec` pour d'autres " +"paramètres." -#: ../Doc/library/asyncio-subprocess.rst:76 -#: ../Doc/library/asyncio-subprocess.rst:104 +#: library/asyncio-subprocess.rst:81 library/asyncio-subprocess.rst:109 #, fuzzy msgid "The *loop* parameter." msgstr "Autres paramètres :" -#: ../Doc/library/asyncio-subprocess.rst:82 +#: library/asyncio-subprocess.rst:87 msgid "Run the *cmd* shell command." msgstr "Exécute la commande *cmd* dans un *shell*." -#: ../Doc/library/asyncio-subprocess.rst:90 +#: library/asyncio-subprocess.rst:95 msgid "" "See the documentation of :meth:`loop.subprocess_shell` for other parameters." msgstr "" +"Voir la documentation de :meth:`loop.subprocess_shell` pour d'autres " +"paramètres." -#: ../Doc/library/asyncio-subprocess.rst:95 +#: library/asyncio-subprocess.rst:100 msgid "" "It is the application's responsibility to ensure that all whitespace and " "special characters are quoted appropriately to avoid `shell injection " @@ -96,16 +112,25 @@ msgid "" "escape whitespace and special shell characters in strings that are going to " "be used to construct shell commands." msgstr "" +"Il est de la responsabilité de l'application de s'assurer que tous les " +"espaces et les caractères spéciaux sont correctement mis entre guillemets " +"pour éviter les vulnérabilités de type `injection de code `_. La fonction :func:" +"`shlex.quote` peut être utilisée pour l’échappement des espaces et " +"caractères spéciaux dans les chaînes utilisées pour construire des commandes " +"shell." -#: ../Doc/library/asyncio-subprocess.rst:108 +#: library/asyncio-subprocess.rst:113 msgid "" -"The default asyncio event loop implementation on **Windows** does not " -"support subprocesses. Subprocesses are available for Windows if a :class:" -"`ProactorEventLoop` is used. See :ref:`Subprocess Support on Windows " -"` for details." +"Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " +"used. See :ref:`Subprocess Support on Windows ` " +"for details." msgstr "" +"Les sous-processus sont disponibles pour Windows si un :class:" +"`ProactorEventLoop` est utilisé. Voir :ref:`Support des sous-processus sous " +"Windows ` pour plus de précisions." -#: ../Doc/library/asyncio-subprocess.rst:116 +#: library/asyncio-subprocess.rst:119 msgid "" "asyncio also has the following *low-level* APIs to work with subprocesses: :" "meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop." @@ -114,47 +139,59 @@ msgid "" "Protocols `." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:124 +#: library/asyncio-subprocess.rst:127 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/asyncio-subprocess.rst:128 +#: library/asyncio-subprocess.rst:131 msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." -msgstr "" +msgstr "Peut être passé aux paramètres *stdin*, *stdout* ou *stderr*." -#: ../Doc/library/asyncio-subprocess.rst:130 +#: library/asyncio-subprocess.rst:133 msgid "" "If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin ` attribute will point to a :class:`StreamWriter` " "instance." msgstr "" +"Si *PIPE* est passé au paramètre *stdin*, l'attribut :attr:`Process.stdin " +"` ne pointera pas vers une instance de :" +"class:`StreamWriter`." -#: ../Doc/library/asyncio-subprocess.rst:134 +#: library/asyncio-subprocess.rst:137 msgid "" "If *PIPE* is passed to *stdout* or *stderr* arguments, the :attr:`Process." "stdout ` and :attr:`Process.stderr " "` attributes will point to :class:" "`StreamReader` instances." msgstr "" +"Si *PIPE* est passé au paramètre *stdout* ou *stderr* , l'attribut :attr:" +"`Process.stdout ` et :attr:`Process." +"stderr ` pointeront vers des instances " +"de :class:`StreamReader`." -#: ../Doc/library/asyncio-subprocess.rst:141 +#: library/asyncio-subprocess.rst:144 msgid "" "Special value that can be used as the *stderr* argument and indicates that " "standard error should be redirected into standard output." msgstr "" +"Une valeur spéciale qui peut être passée au paramètre *stderr* et qui " +"indique que la sortie d'erreur doit être redirigée vers la sortie standard." -#: ../Doc/library/asyncio-subprocess.rst:146 +#: library/asyncio-subprocess.rst:149 msgid "" "Special value that can be used as the *stdin*, *stdout* or *stderr* argument " "to process creation functions. It indicates that the special file :data:`os." "devnull` will be used for the corresponding subprocess stream." msgstr "" +"Une valeur spéciale qui peut être passée à l'argument *stdin*, *stdout* ou " +"*stderr* des fonctions créant des processus. Elle implique l'utilisation du " +"fichier :data:`os.devnull` pour le flux correspondant du processus." -#: ../Doc/library/asyncio-subprocess.rst:152 +#: library/asyncio-subprocess.rst:155 msgid "Interacting with Subprocesses" -msgstr "" +msgstr "Interagir avec les sous-processus" -#: ../Doc/library/asyncio-subprocess.rst:154 +#: library/asyncio-subprocess.rst:157 msgid "" "Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " "functions return instances of the *Process* class. *Process* is a high-" @@ -162,95 +199,108 @@ msgid "" "their completion." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:161 +#: library/asyncio-subprocess.rst:164 msgid "" "An object that wraps OS processes created by the :func:" "`create_subprocess_exec` and :func:`create_subprocess_shell` functions." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:165 +#: library/asyncio-subprocess.rst:168 msgid "" "This class is designed to have a similar API to the :class:`subprocess." "Popen` class, but there are some notable differences:" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:169 +#: library/asyncio-subprocess.rst:172 msgid "" "unlike Popen, Process instances do not have an equivalent to the :meth:" "`~subprocess.Popen.poll` method;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:172 +#: library/asyncio-subprocess.rst:175 msgid "" "the :meth:`~asyncio.subprocess.Process.communicate` and :meth:`~asyncio." "subprocess.Process.wait` methods don't have a *timeout* parameter: use the :" "func:`wait_for` function;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:176 +#: library/asyncio-subprocess.rst:179 msgid "" "the :meth:`Process.wait() ` method is " "asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " "a blocking busy loop;" msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:180 +#: library/asyncio-subprocess.rst:183 msgid "the *universal_newlines* parameter is not supported." -msgstr "" +msgstr "le paramètre *universal_newlines* n'est pas pris en charge." -#: ../Doc/library/asyncio-subprocess.rst:182 +#: library/asyncio-subprocess.rst:185 msgid "This class is :ref:`not thread safe `." msgstr "" +"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." -#: ../Doc/library/asyncio-subprocess.rst:184 +#: library/asyncio-subprocess.rst:187 msgid "" "See also the :ref:`Subprocess and Threads ` " "section." msgstr "" +"Voir aussi la section :ref:`sous-processus et fils d'exécution `." -#: ../Doc/library/asyncio-subprocess.rst:189 +#: library/asyncio-subprocess.rst:192 msgid "Wait for the child process to terminate." -msgstr "" +msgstr "Attend que le sous processus s'arrête." -#: ../Doc/library/asyncio-subprocess.rst:191 +#: library/asyncio-subprocess.rst:194 msgid "Set and return the :attr:`returncode` attribute." -msgstr "" +msgstr "Définit et renvoie l'attribut :attr:`returncode`." -#: ../Doc/library/asyncio-subprocess.rst:195 +#: library/asyncio-subprocess.rst:198 msgid "" "This method can deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and " "the child process generates so much output that it blocks waiting for the OS " "pipe buffer to accept more data. Use the :meth:`communicate` method when " "using pipes to avoid this condition." msgstr "" +"Cette méthode peut générer un interblocage quand ``stdout=PIPE`` ou " +"``stderr=PIPE`` est utilisé et que le sous-processus génère tellement de " +"sorties qu'il se bloque, dans l'attente que le tampon du tube côté OS " +"accepte des données supplémentaires. Pour éviter cette situation, choisissez " +"la méthode :meth:`communicate` quand vous utilisez des tubes." -#: ../Doc/library/asyncio-subprocess.rst:203 +#: library/asyncio-subprocess.rst:206 msgid "Interact with process:" -msgstr "" +msgstr "Interagit avec le processus :" -#: ../Doc/library/asyncio-subprocess.rst:205 +#: library/asyncio-subprocess.rst:208 msgid "send data to *stdin* (if *input* is not ``None``);" -msgstr "" +msgstr "envoie des données sur le *stdin* (si *input* n'est pas ``None``);" -#: ../Doc/library/asyncio-subprocess.rst:206 +#: library/asyncio-subprocess.rst:209 msgid "read data from *stdout* and *stderr*, until EOF is reached;" msgstr "" +"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit " +"atteint ;" -#: ../Doc/library/asyncio-subprocess.rst:207 +#: library/asyncio-subprocess.rst:210 msgid "wait for process to terminate." -msgstr "" +msgstr "attend que le processus s'arrête." -#: ../Doc/library/asyncio-subprocess.rst:209 +#: library/asyncio-subprocess.rst:212 msgid "" "The optional *input* argument is the data (:class:`bytes` object) that will " "be sent to the child process." msgstr "" +"Le paramètre optionnel *input* (objet de type :class:`bytes`) représente les " +"données transmises au sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:212 +#: library/asyncio-subprocess.rst:215 msgid "Return a tuple ``(stdout_data, stderr_data)``." -msgstr "" +msgstr "Renvoie un tuple ``(stdout_data, stderr_data)``." -#: ../Doc/library/asyncio-subprocess.rst:214 +#: library/asyncio-subprocess.rst:217 msgid "" "If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " "raised when writing *input* into *stdin*, the exception is ignored. This " @@ -258,7 +308,7 @@ msgid "" "*stdin*." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:219 +#: library/asyncio-subprocess.rst:222 msgid "" "If it is desired to send data to the process' *stdin*, the process needs to " "be created with ``stdin=PIPE``. Similarly, to get anything other than " @@ -266,7 +316,7 @@ msgid "" "``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:225 +#: library/asyncio-subprocess.rst:228 msgid "" "Note, that the data read is buffered in memory, so do not use this method if " "the data size is large or unlimited." @@ -274,22 +324,26 @@ msgstr "" "Notez que les données lues sont mises en cache en mémoire, donc n'utilisez " "pas cette méthode si la taille des données est importante voire illimitée." -#: ../Doc/library/asyncio-subprocess.rst:230 +#: library/asyncio-subprocess.rst:233 msgid "Sends the signal *signal* to the child process." msgstr "Envoie le signal *signal* au sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:234 +#: library/asyncio-subprocess.rst:237 msgid "" "On Windows, :py:data:`SIGTERM` is an alias for :meth:`terminate`. " "``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " "with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." msgstr "" +"Sous Windows, :py:data:`SIGTERM` est un alias pour :meth:`terminate`. " +"*CTRL_C_EVENT* et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus " +"démarrés avec un paramètre *creationflags* incluant " +"``CREATE_NEW_PROCESS_GROUP``." -#: ../Doc/library/asyncio-subprocess.rst:241 +#: library/asyncio-subprocess.rst:244 msgid "Stop the child process." msgstr "Arrête le sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:243 +#: library/asyncio-subprocess.rst:246 msgid "" "On POSIX systems this method sends :py:data:`signal.SIGTERM` to the child " "process." @@ -297,44 +351,47 @@ msgstr "" "Sur les systèmes POSIX, cette méthode envoie un :py:data:`signal.SIGTERM` au " "sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:246 +#: library/asyncio-subprocess.rst:249 msgid "" "On Windows the Win32 API function :c:func:`TerminateProcess` is called to " "stop the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:251 -msgid "Kill the child." -msgstr "" +#: library/asyncio-subprocess.rst:254 +#, fuzzy +msgid "Kill the child process." +msgstr "Arrête le sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:253 +#: library/asyncio-subprocess.rst:256 msgid "" "On POSIX systems this method sends :py:data:`SIGKILL` to the child process." msgstr "" +"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au " +"sous-processus." -#: ../Doc/library/asyncio-subprocess.rst:256 +#: library/asyncio-subprocess.rst:259 msgid "On Windows this method is an alias for :meth:`terminate`." -msgstr "" +msgstr "Sous Windows, cette méthode est un alias pour :meth:`terminate`." -#: ../Doc/library/asyncio-subprocess.rst:260 +#: library/asyncio-subprocess.rst:263 msgid "" "Standard input stream (:class:`StreamWriter`) or ``None`` if the process was " "created with ``stdin=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:265 +#: library/asyncio-subprocess.rst:268 msgid "" "Standard output stream (:class:`StreamReader`) or ``None`` if the process " "was created with ``stdout=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:270 +#: library/asyncio-subprocess.rst:273 msgid "" "Standard error stream (:class:`StreamReader`) or ``None`` if the process was " "created with ``stderr=None``." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:275 +#: library/asyncio-subprocess.rst:278 msgid "" "Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " "`, :attr:`await process.stdout.read() ` or :attr:`await " @@ -342,25 +399,27 @@ msgid "" "reading or writing and blocking the child process." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:284 +#: library/asyncio-subprocess.rst:287 msgid "Process identification number (PID)." msgstr "" +"Numéro d'identification du processus (PID, pour *Process Identification " +"Number* en anglais)." -#: ../Doc/library/asyncio-subprocess.rst:286 +#: library/asyncio-subprocess.rst:289 msgid "" "Note that for processes created by the :func:`create_subprocess_shell` " "function, this attribute is the PID of the spawned shell." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:291 +#: library/asyncio-subprocess.rst:294 msgid "Return code of the process when it exits." -msgstr "" +msgstr "Code de retour du processus quand il se termine." -#: ../Doc/library/asyncio-subprocess.rst:293 +#: library/asyncio-subprocess.rst:296 msgid "A ``None`` value indicates that the process has not terminated yet." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:295 +#: library/asyncio-subprocess.rst:298 msgid "" "A negative value ``-N`` indicates that the child was terminated by signal " "``N`` (POSIX only)." @@ -368,73 +427,86 @@ msgstr "" "Une valeur négative ``-N`` indique que le sous-processus a été terminé par " "un signal ``N`` (seulement sur les systèmes *POSIX*)." -#: ../Doc/library/asyncio-subprocess.rst:302 +#: library/asyncio-subprocess.rst:305 msgid "Subprocess and Threads" msgstr "Sous-processus et fils d'exécution" -#: ../Doc/library/asyncio-subprocess.rst:304 +#: library/asyncio-subprocess.rst:307 msgid "" "Standard asyncio event loop supports running subprocesses from different " "threads by default." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:307 +#: library/asyncio-subprocess.rst:310 msgid "" "On Windows subprocesses are provided by :class:`ProactorEventLoop` only " "(default), :class:`SelectorEventLoop` has no subprocess support." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:310 +#: library/asyncio-subprocess.rst:313 msgid "" "On UNIX *child watchers* are used for subprocess finish waiting, see :ref:" "`asyncio-watchers` for more info." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:316 +#: library/asyncio-subprocess.rst:319 msgid "" "UNIX switched to use :class:`ThreadedChildWatcher` for spawning subprocesses " "from different threads without any limitation." msgstr "" -#: ../Doc/library/asyncio-subprocess.rst:319 +#: library/asyncio-subprocess.rst:322 msgid "" "Spawning a subprocess with *inactive* current child watcher raises :exc:" "`RuntimeError`." msgstr "" +"Instancier un sous-processus avec un observateur enfant actuel *inactif* " +"lève l'exception :exc:`RuntimeError`." -#: ../Doc/library/asyncio-subprocess.rst:322 +#: library/asyncio-subprocess.rst:325 msgid "" "Note that alternative event loop implementations might have own limitations; " "please refer to their documentation." msgstr "" +"Notez que ces implémentations alternatives de la boucle d'événements peuvent " +"comporter leurs propres limitations. Veuillez vous référer à leur " +"documentation." -#: ../Doc/library/asyncio-subprocess.rst:327 +#: library/asyncio-subprocess.rst:330 msgid "" "The :ref:`Concurrency and multithreading in asyncio ` section." msgstr "" +"La section :ref:`Exécution concurrente et multi-fils d'exécution `." -#: ../Doc/library/asyncio-subprocess.rst:332 +#: library/asyncio-subprocess.rst:335 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/asyncio-subprocess.rst:334 +#: library/asyncio-subprocess.rst:337 msgid "" "An example using the :class:`~asyncio.subprocess.Process` class to control a " "subprocess and the :class:`StreamReader` class to read from its standard " "output." msgstr "" +"Un exemple utilisant la classe :class:`~asyncio.subprocess.Process` pour " +"contrôler un sous-processus et la classe :class:`StreamReader` pour lire sa " +"sortie standard." -#: ../Doc/library/asyncio-subprocess.rst:340 +#: library/asyncio-subprocess.rst:343 msgid "" "The subprocess is created by the :func:`create_subprocess_exec` function::" msgstr "" +"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::" -#: ../Doc/library/asyncio-subprocess.rst:367 +#: library/asyncio-subprocess.rst:370 msgid "" "See also the :ref:`same example ` written " "using low-level APIs." msgstr "" +"Voir également :ref:`le même exemple `, " +"écrit en utilisant des API de bas niveau." #~ msgid "An event loop must run in the main thread." #~ msgstr "" diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po index bd28d8d1ef..d6b954a9b5 100644 --- a/library/asyncio-sync.po +++ b/library/asyncio-sync.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-15 00:46+0200\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,193 +14,196 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/asyncio-sync.rst:7 +#: library/asyncio-sync.rst:7 +#, fuzzy msgid "Synchronization Primitives" +msgstr "Primitives de synchronisation" + +#: library/asyncio-sync.rst:9 +msgid "**Source code:** :source:`Lib/asyncio/locks.py`" msgstr "" -#: ../Doc/library/asyncio-sync.rst:9 +#: library/asyncio-sync.rst:13 msgid "" "asyncio synchronization primitives are designed to be similar to those of " "the :mod:`threading` module with two important caveats:" msgstr "" -#: ../Doc/library/asyncio-sync.rst:12 +#: library/asyncio-sync.rst:16 msgid "" "asyncio primitives are not thread-safe, therefore they should not be used " "for OS thread synchronization (use :mod:`threading` for that);" msgstr "" -#: ../Doc/library/asyncio-sync.rst:16 +#: library/asyncio-sync.rst:20 msgid "" "methods of these synchronization primitives do not accept the *timeout* " "argument; use the :func:`asyncio.wait_for` function to perform operations " "with timeouts." msgstr "" -#: ../Doc/library/asyncio-sync.rst:20 +#: library/asyncio-sync.rst:24 msgid "asyncio has the following basic synchronization primitives:" msgstr "" -#: ../Doc/library/asyncio-sync.rst:22 +#: library/asyncio-sync.rst:26 msgid ":class:`Lock`" msgstr ":class:`Lock`" -#: ../Doc/library/asyncio-sync.rst:23 +#: library/asyncio-sync.rst:27 msgid ":class:`Event`" msgstr ":class:`Event`" -#: ../Doc/library/asyncio-sync.rst:24 +#: library/asyncio-sync.rst:28 msgid ":class:`Condition`" msgstr ":class:`Condition`" -#: ../Doc/library/asyncio-sync.rst:25 +#: library/asyncio-sync.rst:29 msgid ":class:`Semaphore`" msgstr ":class:`Semaphore`" -#: ../Doc/library/asyncio-sync.rst:26 +#: library/asyncio-sync.rst:30 msgid ":class:`BoundedSemaphore`" msgstr ":class:`BoundedSemaphore`" -#: ../Doc/library/asyncio-sync.rst:33 +#: library/asyncio-sync.rst:37 msgid "Lock" msgstr "" -#: ../Doc/library/asyncio-sync.rst:37 +#: library/asyncio-sync.rst:41 msgid "Implements a mutex lock for asyncio tasks. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:39 +#: library/asyncio-sync.rst:43 msgid "" "An asyncio lock can be used to guarantee exclusive access to a shared " "resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:42 +#: library/asyncio-sync.rst:46 msgid "The preferred way to use a Lock is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:51 ../Doc/library/asyncio-sync.rst:196 -#: ../Doc/library/asyncio-sync.rst:296 +#: library/asyncio-sync.rst:200 library/asyncio-sync.rst:300 msgid "which is equivalent to::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:64 ../Doc/library/asyncio-sync.rst:110 -#: ../Doc/library/asyncio-sync.rst:186 ../Doc/library/asyncio-sync.rst:286 -#: ../Doc/library/asyncio-sync.rst:341 +#: library/asyncio-sync.rst:114 library/asyncio-sync.rst:290 +#: library/asyncio-sync.rst:345 msgid "The *loop* parameter." -msgstr "" +msgstr "Le paramètre *loop*." -#: ../Doc/library/asyncio-sync.rst:67 +#: library/asyncio-sync.rst:71 msgid "Acquire the lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:69 +#: library/asyncio-sync.rst:73 msgid "" "This method waits until the lock is *unlocked*, sets it to *locked* and " "returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:72 +#: library/asyncio-sync.rst:76 msgid "" "When more than one coroutine is blocked in :meth:`acquire` waiting for the " "lock to be unlocked, only one coroutine eventually proceeds." msgstr "" -#: ../Doc/library/asyncio-sync.rst:76 +#: library/asyncio-sync.rst:80 msgid "" "Acquiring a lock is *fair*: the coroutine that proceeds will be the first " "coroutine that started waiting on the lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:81 +#: library/asyncio-sync.rst:85 msgid "Release the lock." msgstr "Libère un verrou." -#: ../Doc/library/asyncio-sync.rst:83 +#: library/asyncio-sync.rst:87 msgid "When the lock is *locked*, reset it to *unlocked* and return." msgstr "" -#: ../Doc/library/asyncio-sync.rst:85 +#: library/asyncio-sync.rst:89 msgid "If the lock is *unlocked*, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:89 +#: library/asyncio-sync.rst:93 msgid "Return ``True`` if the lock is *locked*." msgstr "Donne ``True`` si le verrou est verrouillé." -#: ../Doc/library/asyncio-sync.rst:93 +#: library/asyncio-sync.rst:97 msgid "Event" msgstr "" -#: ../Doc/library/asyncio-sync.rst:97 +#: library/asyncio-sync.rst:101 msgid "An event object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:99 +#: library/asyncio-sync.rst:103 msgid "" "An asyncio event can be used to notify multiple asyncio tasks that some " "event has happened." msgstr "" -#: ../Doc/library/asyncio-sync.rst:102 +#: library/asyncio-sync.rst:106 msgid "" "An Event object manages an internal flag that can be set to *true* with the :" -"meth:`set` method and reset to *false* with the :meth:`clear` method. The :" -"meth:`wait` method blocks until the flag is set to *true*. The flag is set " -"to *false* initially." +"meth:`~Event.set` method and reset to *false* with the :meth:`clear` " +"method. The :meth:`~Event.wait` method blocks until the flag is set to " +"*true*. The flag is set to *false* initially." msgstr "" -#: ../Doc/library/asyncio-sync.rst:113 +#: library/asyncio-sync.rst:117 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/asyncio-sync.rst:138 +#: library/asyncio-sync.rst:142 msgid "Wait until the event is set." msgstr "Attend que l'évènement ait une valeur." -#: ../Doc/library/asyncio-sync.rst:140 +#: library/asyncio-sync.rst:144 msgid "" "If the event is set, return ``True`` immediately. Otherwise block until " -"another task calls :meth:`set`." +"another task calls :meth:`~Event.set`." msgstr "" -#: ../Doc/library/asyncio-sync.rst:145 +#: library/asyncio-sync.rst:149 msgid "Set the event." msgstr "" -#: ../Doc/library/asyncio-sync.rst:147 +#: library/asyncio-sync.rst:151 msgid "All tasks waiting for event to be set will be immediately awakened." msgstr "" -#: ../Doc/library/asyncio-sync.rst:152 +#: library/asyncio-sync.rst:156 msgid "Clear (unset) the event." msgstr "" -#: ../Doc/library/asyncio-sync.rst:154 +#: library/asyncio-sync.rst:158 msgid "" -"Tasks awaiting on :meth:`wait` will now block until the :meth:`set` method " -"is called again." +"Tasks awaiting on :meth:`~Event.wait` will now block until the :meth:`~Event." +"set` method is called again." msgstr "" -#: ../Doc/library/asyncio-sync.rst:159 +#: library/asyncio-sync.rst:163 msgid "Return ``True`` if the event is set." msgstr "Renvoie ``True`` si l'évènement a une valeur." -#: ../Doc/library/asyncio-sync.rst:163 +#: library/asyncio-sync.rst:167 msgid "Condition" msgstr "" -#: ../Doc/library/asyncio-sync.rst:167 +#: library/asyncio-sync.rst:171 msgid "A Condition object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:169 +#: library/asyncio-sync.rst:173 msgid "" "An asyncio condition primitive can be used by a task to wait for some event " "to happen and then get exclusive access to a shared resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:173 +#: library/asyncio-sync.rst:177 msgid "" "In essence, a Condition object combines the functionality of an :class:" "`Event` and a :class:`Lock`. It is possible to have multiple Condition " @@ -209,96 +212,96 @@ msgid "" "that shared resource." msgstr "" -#: ../Doc/library/asyncio-sync.rst:179 +#: library/asyncio-sync.rst:183 msgid "" "The optional *lock* argument must be a :class:`Lock` object or ``None``. In " "the latter case a new Lock object is created automatically." msgstr "" -#: ../Doc/library/asyncio-sync.rst:187 +#: library/asyncio-sync.rst:191 msgid "" "The preferred way to use a Condition is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:209 +#: library/asyncio-sync.rst:213 msgid "Acquire the underlying lock." msgstr "" -#: ../Doc/library/asyncio-sync.rst:211 +#: library/asyncio-sync.rst:215 msgid "" "This method waits until the underlying lock is *unlocked*, sets it to " "*locked* and returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:216 +#: library/asyncio-sync.rst:220 msgid "" "Wake up at most *n* tasks (1 by default) waiting on this condition. The " "method is no-op if no tasks are waiting." msgstr "" -#: ../Doc/library/asyncio-sync.rst:219 ../Doc/library/asyncio-sync.rst:234 +#: library/asyncio-sync.rst:238 msgid "" "The lock must be acquired before this method is called and released shortly " "after. If called with an *unlocked* lock a :exc:`RuntimeError` error is " "raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:225 +#: library/asyncio-sync.rst:229 msgid "Return ``True`` if the underlying lock is acquired." msgstr "" -#: ../Doc/library/asyncio-sync.rst:229 +#: library/asyncio-sync.rst:233 msgid "Wake up all tasks waiting on this condition." msgstr "" -#: ../Doc/library/asyncio-sync.rst:231 +#: library/asyncio-sync.rst:235 msgid "This method acts like :meth:`notify`, but wakes up all waiting tasks." msgstr "" -#: ../Doc/library/asyncio-sync.rst:240 +#: library/asyncio-sync.rst:244 msgid "Release the underlying lock." msgstr "Libère le verrou sous-jacent." -#: ../Doc/library/asyncio-sync.rst:242 +#: library/asyncio-sync.rst:246 msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:247 +#: library/asyncio-sync.rst:251 msgid "Wait until notified." msgstr "Attends d'être notifié." -#: ../Doc/library/asyncio-sync.rst:249 +#: library/asyncio-sync.rst:253 msgid "" "If the calling task has not acquired the lock when this method is called, a :" "exc:`RuntimeError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:252 +#: library/asyncio-sync.rst:256 msgid "" "This method releases the underlying lock, and then blocks until it is " "awakened by a :meth:`notify` or :meth:`notify_all` call. Once awakened, the " "Condition re-acquires its lock and this method returns ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:259 +#: library/asyncio-sync.rst:263 msgid "Wait until a predicate becomes *true*." msgstr "Attends jusqu'à ce qu'un prédicat devienne vrai." -#: ../Doc/library/asyncio-sync.rst:261 +#: library/asyncio-sync.rst:265 msgid "" "The predicate must be a callable which result will be interpreted as a " "boolean value. The final value is the return value." msgstr "" -#: ../Doc/library/asyncio-sync.rst:267 +#: library/asyncio-sync.rst:271 msgid "Semaphore" msgstr "Sémaphore" -#: ../Doc/library/asyncio-sync.rst:271 +#: library/asyncio-sync.rst:275 msgid "A Semaphore object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:273 +#: library/asyncio-sync.rst:277 msgid "" "A semaphore manages an internal counter which is decremented by each :meth:" "`acquire` call and incremented by each :meth:`release` call. The counter can " @@ -306,61 +309,61 @@ msgid "" "waiting until some task calls :meth:`release`." msgstr "" -#: ../Doc/library/asyncio-sync.rst:279 +#: library/asyncio-sync.rst:283 msgid "" "The optional *value* argument gives the initial value for the internal " "counter (``1`` by default). If the given value is less than ``0`` a :exc:" "`ValueError` is raised." msgstr "" -#: ../Doc/library/asyncio-sync.rst:287 +#: library/asyncio-sync.rst:291 msgid "" "The preferred way to use a Semaphore is an :keyword:`async with` statement::" msgstr "" -#: ../Doc/library/asyncio-sync.rst:309 +#: library/asyncio-sync.rst:313 msgid "Acquire a semaphore." msgstr "" -#: ../Doc/library/asyncio-sync.rst:311 +#: library/asyncio-sync.rst:315 msgid "" "If the internal counter is greater than zero, decrement it by one and return " "``True`` immediately. If it is zero, wait until a :meth:`release` is called " "and return ``True``." msgstr "" -#: ../Doc/library/asyncio-sync.rst:317 +#: library/asyncio-sync.rst:321 msgid "Returns ``True`` if semaphore can not be acquired immediately." msgstr "" -#: ../Doc/library/asyncio-sync.rst:321 +#: library/asyncio-sync.rst:325 msgid "" "Release a semaphore, incrementing the internal counter by one. Can wake up a " "task waiting to acquire the semaphore." msgstr "" -#: ../Doc/library/asyncio-sync.rst:324 +#: library/asyncio-sync.rst:328 msgid "" "Unlike :class:`BoundedSemaphore`, :class:`Semaphore` allows making more " "``release()`` calls than ``acquire()`` calls." msgstr "" -#: ../Doc/library/asyncio-sync.rst:329 +#: library/asyncio-sync.rst:333 msgid "BoundedSemaphore" msgstr "BoundedSemaphore" -#: ../Doc/library/asyncio-sync.rst:333 +#: library/asyncio-sync.rst:337 msgid "A bounded semaphore object. Not thread-safe." msgstr "" -#: ../Doc/library/asyncio-sync.rst:335 +#: library/asyncio-sync.rst:339 msgid "" "Bounded Semaphore is a version of :class:`Semaphore` that raises a :exc:" "`ValueError` in :meth:`~Semaphore.release` if it increases the internal " "counter above the initial *value*." msgstr "" -#: ../Doc/library/asyncio-sync.rst:348 +#: library/asyncio-sync.rst:352 msgid "" "Acquiring a lock using ``await lock`` or ``yield from lock`` and/or :keyword:" "`with` statement (``with await lock``, ``with (yield from lock)``) is " diff --git a/library/asyncio-task.po b/library/asyncio-task.po index 5d5dd36111..79fa81bc0c 100644 --- a/library/asyncio-task.po +++ b/library/asyncio-task.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-05-23 20:05+0200\n" -"Last-Translator: Jules Lasne \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-09-22 17:11+0200\n" +"Last-Translator: Philippe GALVAN \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.4.1\n" -#: ../Doc/library/asyncio-task.rst:6 +#: library/asyncio-task.rst:6 msgid "Coroutines and Tasks" msgstr "Coroutines et tâches" -#: ../Doc/library/asyncio-task.rst:8 +#: library/asyncio-task.rst:8 msgid "" "This section outlines high-level asyncio APIs to work with coroutines and " "Tasks." @@ -27,55 +27,56 @@ msgstr "" "Cette section donne un aperçu des API de haut-niveau du module *asyncio* " "pour utiliser les coroutines et les tâches." -#: ../Doc/library/asyncio-task.rst:19 ../Doc/library/asyncio-task.rst:121 +#: library/asyncio-task.rst:121 msgid "Coroutines" msgstr "Coroutines" -#: ../Doc/library/asyncio-task.rst:21 +#: library/asyncio-task.rst:21 msgid "" -"Coroutines declared with async/await syntax is the preferred way of writing " -"asyncio applications. For example, the following snippet of code (requires " -"Python 3.7+) prints \"hello\", waits 1 second, and then prints \"world\"::" +":term:`Coroutines ` declared with the async/await syntax is the " +"preferred way of writing asyncio applications. For example, the following " +"snippet of code (requires Python 3.7+) prints \"hello\", waits 1 second, and " +"then prints \"world\"::" msgstr "" -"Il est recommandé d'utiliser la syntaxe *async* / *await* pour développer " -"des programmes *asyncio*. Par exemple, le morceau de code suivant " -"(nécessitant Python 3.7 ou supérieur) affiche *hello*, attend une seconde et " -"affiche ensuite *world* ::" +"Les :term:`coroutines ` déclarées avec la syntaxe *async/await* " +"sont la manière privilégiée d’écrire des applications *asyncio*. Par " +"exemple, l’extrait de code suivant (requiert Python 3.7+) affiche « hello », " +"attend 1 seconde et affiche ensuite « world » ::" -#: ../Doc/library/asyncio-task.rst:37 +#: library/asyncio-task.rst:37 msgid "" "Note that simply calling a coroutine will not schedule it to be executed::" msgstr "Appeler une coroutine ne la planifie pas pour exécution ::" -#: ../Doc/library/asyncio-task.rst:43 +#: library/asyncio-task.rst:43 msgid "To actually run a coroutine, asyncio provides three main mechanisms:" msgstr "" "Pour réellement exécuter une coroutine, *asyncio* fournit trois mécanismes " "principaux :" -#: ../Doc/library/asyncio-task.rst:45 +#: library/asyncio-task.rst:45 msgid "" "The :func:`asyncio.run` function to run the top-level entry point \"main()\" " "function (see the above example.)" msgstr "" -"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le " +"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le " "point d'entrée de haut-niveau (voir l'exemple ci-dessus)." -#: ../Doc/library/asyncio-task.rst:48 +#: library/asyncio-task.rst:48 msgid "" "Awaiting on a coroutine. The following snippet of code will print \"hello\" " "after waiting for 1 second, and then print \"world\" after waiting for " "*another* 2 seconds::" msgstr "" "Attendre une coroutine. Le morceau de code suivant attend une seconde, " -"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin " -"*world* ::" +"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin " +"« world » ::" -#: ../Doc/library/asyncio-task.rst:69 +#: library/asyncio-task.rst:69 msgid "Expected output::" msgstr "Sortie attendue ::" -#: ../Doc/library/asyncio-task.rst:76 +#: library/asyncio-task.rst:76 msgid "" "The :func:`asyncio.create_task` function to run coroutines concurrently as " "asyncio :class:`Tasks `." @@ -83,7 +84,7 @@ msgstr "" "La fonction :func:`asyncio.create_task` pour exécuter de manière concurrente " "des coroutines en tant que :class:`tâches ` *asyncio*." -#: ../Doc/library/asyncio-task.rst:79 +#: library/asyncio-task.rst:79 msgid "" "Let's modify the above example and run two ``say_after`` coroutines " "*concurrently*::" @@ -91,7 +92,7 @@ msgstr "" "Modifions l'exemple ci-dessus et lançons deux coroutines ``say_after`` *de " "manière concurrente* ::" -#: ../Doc/library/asyncio-task.rst:98 +#: library/asyncio-task.rst:98 msgid "" "Note that expected output now shows that the snippet runs 1 second faster " "than before::" @@ -99,29 +100,29 @@ msgstr "" "La sortie attendue montre à présent que ce code s'exécute une seconde plus " "rapidement que le précédent ::" -#: ../Doc/library/asyncio-task.rst:110 +#: library/asyncio-task.rst:110 msgid "Awaitables" -msgstr "Awaitables" +msgstr "*Attendables*" -#: ../Doc/library/asyncio-task.rst:112 +#: library/asyncio-task.rst:112 msgid "" "We say that an object is an **awaitable** object if it can be used in an :" "keyword:`await` expression. Many asyncio APIs are designed to accept " "awaitables." msgstr "" -"Un objet est dit *awaitable* (qui peut être attendu) s'il peut être utilisé " -"dans une expression :keyword:`await`. Beaucoup d'API d'*asyncio* sont " -"conçues pour accepter des *awaitables*." +"Un objet est dit *attendable* (*awaitable* en anglais, c.-à-d. qui peut être " +"attendu) s'il peut être utilisé dans une expression :keyword:`await`. " +"Beaucoup d'API d'*asyncio* sont conçues pour accepter des *attendables*." -#: ../Doc/library/asyncio-task.rst:116 +#: library/asyncio-task.rst:116 msgid "" "There are three main types of *awaitable* objects: **coroutines**, " "**Tasks**, and **Futures**." msgstr "" -"Il existe trois types principaux d'*awaitables* : les **coroutines**, les " +"Il existe trois types principaux d'*attendables* : les **coroutines**, les " "**tâches** et les **futurs**." -#: ../Doc/library/asyncio-task.rst:122 +#: library/asyncio-task.rst:122 msgid "" "Python coroutines are *awaitables* and therefore can be awaited from other " "coroutines::" @@ -129,24 +130,24 @@ msgstr "" "Les coroutines sont des *awaitables* et peuvent donc être attendues par " "d'autres coroutines ::" -#: ../Doc/library/asyncio-task.rst:143 +#: library/asyncio-task.rst:143 msgid "" "In this documentation the term \"coroutine\" can be used for two closely " "related concepts:" msgstr "" -"Dans cette documentation, le terme « coroutine » est utilisé pour désigner " +"Dans cette documentation, le terme « coroutine » est utilisé pour désigner " "deux concepts voisins :" -#: ../Doc/library/asyncio-task.rst:146 +#: library/asyncio-task.rst:146 msgid "a *coroutine function*: an :keyword:`async def` function;" -msgstr "une *fonction coroutine* : une fonction :keyword:`async def`;" +msgstr "une *fonction coroutine* : une fonction :keyword:`async def` ;" -#: ../Doc/library/asyncio-task.rst:148 +#: library/asyncio-task.rst:148 msgid "" "a *coroutine object*: an object returned by calling a *coroutine function*." msgstr "un *objet coroutine* : un objet renvoyé par une *fonction coroutine*." -#: ../Doc/library/asyncio-task.rst:151 +#: library/asyncio-task.rst:151 msgid "" "asyncio also supports legacy :ref:`generator-based " "` coroutines." @@ -154,17 +155,17 @@ msgstr "" "*asyncio* implémente également les coroutines :ref:`basées sur des " "générateurs ` ; celles-ci sont obsolètes." -#: ../Doc/library/asyncio-task.rst:156 +#: library/asyncio-task.rst:156 msgid "Tasks" msgstr "Tâches" -#: ../Doc/library/asyncio-task.rst:157 +#: library/asyncio-task.rst:157 msgid "*Tasks* are used to schedule coroutines *concurrently*." msgstr "" "Les *tâches* servent à planifier des coroutines de façon à ce qu'elles " "s'exécutent de manière concurrente." -#: ../Doc/library/asyncio-task.rst:159 +#: library/asyncio-task.rst:159 msgid "" "When a coroutine is wrapped into a *Task* with functions like :func:`asyncio." "create_task` the coroutine is automatically scheduled to run soon::" @@ -173,11 +174,11 @@ msgstr "" "comme :func:`asyncio.create_task`, la coroutine est automatiquement " "planifiée pour s'exécuter prochainement ::" -#: ../Doc/library/asyncio-task.rst:181 +#: library/asyncio-task.rst:181 msgid "Futures" msgstr "Futurs" -#: ../Doc/library/asyncio-task.rst:182 +#: library/asyncio-task.rst:182 msgid "" "A :class:`Future` is a special **low-level** awaitable object that " "represents an **eventual result** of an asynchronous operation." @@ -185,7 +186,7 @@ msgstr "" "Un :class:`Future` est un objet *awaitable* spécial de **bas-niveau**, qui " "représente le **résultat final** d'une opération asynchrone." -#: ../Doc/library/asyncio-task.rst:185 +#: library/asyncio-task.rst:185 msgid "" "When a Future object is *awaited* it means that the coroutine will wait " "until the Future is resolved in some other place." @@ -193,7 +194,7 @@ msgstr "" "Quand un objet *Future* est *attendu*, cela signifie que la coroutine " "attendra que ce futur soit résolu à un autre endroit." -#: ../Doc/library/asyncio-task.rst:188 +#: library/asyncio-task.rst:188 msgid "" "Future objects in asyncio are needed to allow callback-based code to be used " "with async/await." @@ -201,7 +202,7 @@ msgstr "" "Les objets *Future* d'*asyncio* sont nécessaires pour permettre l'exécution " "de code basé sur les fonctions de rappel avec la syntaxe *async* / *await*." -#: ../Doc/library/asyncio-task.rst:191 +#: library/asyncio-task.rst:191 msgid "" "Normally **there is no need** to create Future objects at the application " "level code." @@ -209,7 +210,7 @@ msgstr "" "Il est normalement **inutile** de créer des objets *Future* dans la couche " "applicative du code." -#: ../Doc/library/asyncio-task.rst:194 +#: library/asyncio-task.rst:194 msgid "" "Future objects, sometimes exposed by libraries and some asyncio APIs, can be " "awaited::" @@ -217,7 +218,7 @@ msgstr "" "Les objets *Future*, parfois exposés par des bibliothèques et quelques API " "d'*asyncio*, peuvent être attendus ::" -#: ../Doc/library/asyncio-task.rst:206 +#: library/asyncio-task.rst:206 msgid "" "A good example of a low-level function that returns a Future object is :meth:" "`loop.run_in_executor`." @@ -225,15 +226,15 @@ msgstr "" ":meth:`loop.run_in_executor` est l'exemple typique d'une fonction bas-niveau " "renvoyant un objet *Future*." -#: ../Doc/library/asyncio-task.rst:211 +#: library/asyncio-task.rst:211 msgid "Running an asyncio Program" msgstr "Exécution d'un programme *asyncio*" -#: ../Doc/library/asyncio-task.rst:215 +#: library/asyncio-task.rst:215 msgid "Execute the :term:`coroutine` *coro* and return the result." -msgstr "" +msgstr "Exécute la :term:`coroutine` *coro* et renvoie le résultat." -#: ../Doc/library/asyncio-task.rst:217 +#: library/asyncio-task.rst:217 msgid "" "This function runs the passed coroutine, taking care of managing the asyncio " "event loop and *finalizing asynchronous generators*." @@ -241,21 +242,21 @@ msgstr "" "Cette fonction exécute la coroutine passée en argument. Elle gère la boucle " "d'événements *asyncio* et *finalise les générateurs asynchrones*." -#: ../Doc/library/asyncio-task.rst:221 +#: library/asyncio-task.rst:221 msgid "" "This function cannot be called when another asyncio event loop is running in " "the same thread." msgstr "" "Cette fonction ne peut pas être appelée si une autre boucle d'événement " -"s'exécute dans le même fil d'exécution." +"*asyncio* s'exécute dans le même fil d'exécution." -#: ../Doc/library/asyncio-task.rst:224 +#: library/asyncio-task.rst:224 msgid "If *debug* is ``True``, the event loop will be run in debug mode." msgstr "" "Si *debug* vaut ``True``, la boucle d'événement s'exécute en mode de " "débogage." -#: ../Doc/library/asyncio-task.rst:226 +#: library/asyncio-task.rst:226 msgid "" "This function always creates a new event loop and closes it at the end. It " "should be used as a main entry point for asyncio programs, and should " @@ -265,30 +266,39 @@ msgstr "" "fin. Elle doit être utilisée comme point d'entrée principal des programmes " "*asyncio* et ne doit être idéalement appelée qu'une seule fois." -#: ../Doc/library/asyncio-task.rst:230 ../Doc/library/asyncio-task.rst:350 -#: ../Doc/library/asyncio-task.rst:459 ../Doc/library/asyncio-task.rst:589 +#: library/asyncio-task.rst:354 library/asyncio-task.rst:601 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/asyncio-task.rst:242 +#: library/asyncio-task.rst:242 +msgid "" +"The source code for ``asyncio.run()`` can be found in :source:`Lib/asyncio/" +"runners.py`." +msgstr "" +"Le code source pour ``asyncio.run()`` est disponible dans :source:`Lib/" +"asyncio/runners.py`." + +#: library/asyncio-task.rst:246 msgid "Creating Tasks" msgstr "Création de tâches" -#: ../Doc/library/asyncio-task.rst:246 +#: library/asyncio-task.rst:250 msgid "" "Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " "schedule its execution. Return the Task object." msgstr "" "Encapsule la :ref:`coroutine ` *coro* dans une tâche et la " -"planifie pour exécution. Renvoie l'objet :class:`Task`." +"planifie pour exécution. Renvoie l'objet :class:`Task`." -#: ../Doc/library/asyncio-task.rst:249 +#: library/asyncio-task.rst:253 msgid "" "If *name* is not ``None``, it is set as the name of the task using :meth:" "`Task.set_name`." msgstr "" +"Si *name* n’est pas ``None``, il est défini comme le nom de la tâche en " +"utilisant :meth:`Task.set_name`." -#: ../Doc/library/asyncio-task.rst:252 +#: library/asyncio-task.rst:256 msgid "" "The task is executed in the loop returned by :func:`get_running_loop`, :exc:" "`RuntimeError` is raised if there is no running loop in current thread." @@ -297,7 +307,7 @@ msgstr "" "`get_running_loop` ; :exc:`RuntimeError` est levée s'il n'y a pas de boucle " "en cours d'exécution dans le fil actuel." -#: ../Doc/library/asyncio-task.rst:256 +#: library/asyncio-task.rst:260 msgid "" "This function has been **added in Python 3.7**. Prior to Python 3.7, the " "low-level :func:`asyncio.ensure_future` function can be used instead::" @@ -306,19 +316,19 @@ msgstr "" "antérieures à la 3.7, la fonction de bas-niveau :func:`asyncio." "ensure_future` peut-être utilisée ::" -#: ../Doc/library/asyncio-task.rst:273 ../Doc/library/asyncio-task.rst:712 +#: library/asyncio-task.rst:724 msgid "Added the ``name`` parameter." -msgstr "" +msgstr "ajout du paramètre ``name``." -#: ../Doc/library/asyncio-task.rst:278 +#: library/asyncio-task.rst:282 msgid "Sleeping" msgstr "Attente" -#: ../Doc/library/asyncio-task.rst:282 +#: library/asyncio-task.rst:286 msgid "Block for *delay* seconds." msgstr "Attend pendant *delay* secondes." -#: ../Doc/library/asyncio-task.rst:284 +#: library/asyncio-task.rst:288 msgid "" "If *result* is provided, it is returned to the caller when the coroutine " "completes." @@ -326,32 +336,30 @@ msgstr "" "Si *result* est spécifié, il est renvoyé à l'appelant quand la coroutine se " "termine." -#: ../Doc/library/asyncio-task.rst:287 +#: library/asyncio-task.rst:291 msgid "" "``sleep()`` always suspends the current task, allowing other tasks to run." msgstr "" "``sleep()`` suspend systématiquement la tâche courante, ce qui permet aux " "autres tâches de s'exécuter." -#: ../Doc/library/asyncio-task.rst:292 ../Doc/library/asyncio-task.rst:347 -#: ../Doc/library/asyncio-task.rst:426 ../Doc/library/asyncio-task.rst:456 -#: ../Doc/library/asyncio-task.rst:541 ../Doc/library/asyncio-task.rst:588 -#: ../Doc/library/asyncio-task.rst:717 +#: library/asyncio-task.rst:351 library/asyncio-task.rst:468 +#: library/asyncio-task.rst:600 library/asyncio-task.rst:729 msgid "The *loop* parameter." -msgstr "" +msgstr "Le paramètre *loop*." -#: ../Doc/library/asyncio-task.rst:295 +#: library/asyncio-task.rst:299 msgid "" "Example of coroutine displaying the current date every second for 5 seconds::" msgstr "" "Exemple d'une coroutine affichant la date toutes les secondes pendant 5 " "secondes ::" -#: ../Doc/library/asyncio-task.rst:314 +#: library/asyncio-task.rst:318 msgid "Running Tasks Concurrently" msgstr "Exécution de tâches de manière concurrente" -#: ../Doc/library/asyncio-task.rst:318 +#: library/asyncio-task.rst:322 msgid "" "Run :ref:`awaitable objects ` in the *aws* sequence " "*concurrently*." @@ -359,15 +367,15 @@ msgstr "" "Exécute les objets :ref:`awaitable ` de la séquence " "*aws*, *de manière concurrente*." -#: ../Doc/library/asyncio-task.rst:321 +#: library/asyncio-task.rst:325 msgid "" "If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " "Task." msgstr "" -"Si un *awaitable* de *aws* est une coroutine, celui-ci est automatiquement " -"planifié comme une tâche." +"Si un *attendable* de *aws* est une coroutine, celui-ci est automatiquement " +"planifié comme une tâche *Task*." -#: ../Doc/library/asyncio-task.rst:324 +#: library/asyncio-task.rst:328 msgid "" "If all awaitables are completed successfully, the result is an aggregate " "list of returned values. The order of result values corresponds to the " @@ -377,7 +385,7 @@ msgstr "" "des valeurs renvoyées. L'ordre de cette liste correspond à l'ordre des " "*awaitables* dans *aws*." -#: ../Doc/library/asyncio-task.rst:328 +#: library/asyncio-task.rst:332 msgid "" "If *return_exceptions* is ``False`` (default), the first raised exception is " "immediately propagated to the task that awaits on ``gather()``. Other " @@ -386,10 +394,10 @@ msgid "" msgstr "" "Si *return_exceptions* vaut ``False`` (valeur par défaut), la première " "exception levée est immédiatement propagée vers la tâche en attente dans le " -"``gather()``. Les autres *awaitables* dans la séquence *aws* **ne sont pas " +"``gather()``. Les autres *attendables* dans la séquence *aws* **ne sont pas " "annulés** et poursuivent leur exécution." -#: ../Doc/library/asyncio-task.rst:333 +#: library/asyncio-task.rst:337 msgid "" "If *return_exceptions* is ``True``, exceptions are treated the same as " "successful results, and aggregated in the result list." @@ -398,7 +406,7 @@ msgstr "" "même manière que les exécutions normales, et incluses dans la liste des " "résultats." -#: ../Doc/library/asyncio-task.rst:336 +#: library/asyncio-task.rst:340 msgid "" "If ``gather()`` is *cancelled*, all submitted awaitables (that have not " "completed yet) are also *cancelled*." @@ -406,7 +414,7 @@ msgstr "" "Si ``gather()`` est *annulé*, tous les *awaitables* en cours (ceux qui n'ont " "pas encore fini de s'exécuter) sont également *annulés*." -#: ../Doc/library/asyncio-task.rst:339 +#: library/asyncio-task.rst:343 msgid "" "If any Task or Future from the *aws* sequence is *cancelled*, it is treated " "as if it raised :exc:`CancelledError` -- the ``gather()`` call is **not** " @@ -415,11 +423,20 @@ msgid "" msgstr "" "Si n'importe quel *Task* ou *Future* de la séquence *aws* est *annulé*, il " "est traité comme s'il avait levé :exc:`CancelledError` — l'appel à " -"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que " +"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que " "l'annulation d'une tâche ou d'un futur entraîne l'annulation des autres " "tâches ou futurs." -#: ../Doc/library/asyncio-task.rst:384 +#: library/asyncio-task.rst:389 +msgid "" +"If *return_exceptions* is False, cancelling gather() after it has been " +"marked done won't cancel any submitted awaitables. For instance, gather can " +"be marked done after propagating an exception to the caller, therefore, " +"calling ``gather.cancel()`` after catching an exception (raised by one of " +"the awaitables) from gather won't cancel any other awaitables." +msgstr "" + +#: library/asyncio-task.rst:396 msgid "" "If the *gather* itself is cancelled, the cancellation is propagated " "regardless of *return_exceptions*." @@ -427,11 +444,11 @@ msgstr "" "Si *gather* est lui-même annulé, l'annulation est propagée indépendamment de " "*return_exceptions*." -#: ../Doc/library/asyncio-task.rst:390 +#: library/asyncio-task.rst:402 msgid "Shielding From Cancellation" msgstr "Protection contre l'annulation" -#: ../Doc/library/asyncio-task.rst:394 +#: library/asyncio-task.rst:406 msgid "" "Protect an :ref:`awaitable object ` from being :meth:" "`cancelled `." @@ -439,21 +456,21 @@ msgstr "" "Empêche qu'un objet :ref:`awaitable ` puisse être :meth:" "`annulé `." -#: ../Doc/library/asyncio-task.rst:397 ../Doc/library/asyncio-task.rst:437 +#: library/asyncio-task.rst:449 msgid "If *aw* is a coroutine it is automatically scheduled as a Task." msgstr "" "Si *aw* est une coroutine, elle est planifiée automatiquement comme une " "tâche." -#: ../Doc/library/asyncio-task.rst:399 +#: library/asyncio-task.rst:411 msgid "The statement::" msgstr "L'instruction ::" -#: ../Doc/library/asyncio-task.rst:403 +#: library/asyncio-task.rst:415 msgid "is equivalent to::" msgstr "est équivalente à ::" -#: ../Doc/library/asyncio-task.rst:407 +#: library/asyncio-task.rst:419 msgid "" "*except* that if the coroutine containing it is cancelled, the Task running " "in ``something()`` is not cancelled. From the point of view of " @@ -461,21 +478,20 @@ msgid "" "still cancelled, so the \"await\" expression still raises a :exc:" "`CancelledError`." msgstr "" -"*à la différence près* que si la coroutine qui la contient est annulée, la " -"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue " -"de ``something()``, il n'y a pas eu d'annulation. Cependant, son appelant " -"est bien annulé, donc l'expression *await* lève bien une :exc:" -"`CancelledError`." +"*à la différence près* que, si la coroutine qui la contient est annulée, la " +"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue de " +"``something()``, il n'y a pas eu d'annulation. Cependant, son appelant est " +"bien annulé, donc l'expression *await* lève bien une :exc:`CancelledError`." -#: ../Doc/library/asyncio-task.rst:413 +#: library/asyncio-task.rst:425 msgid "" "If ``something()`` is cancelled by other means (i.e. from within itself) " "that would also cancel ``shield()``." msgstr "" -"Si ``something()`` est annulée d'une autre façon (*i.e.* depuis elle-même) " +"Si ``something()`` est annulée d'une autre façon (c.-à-d. depuis elle-même) " "ceci annule également ``shield()``." -#: ../Doc/library/asyncio-task.rst:416 +#: library/asyncio-task.rst:428 msgid "" "If it is desired to completely ignore cancellation (not recommended) the " "``shield()`` function should be combined with a try/except clause, as " @@ -485,11 +501,11 @@ msgstr "" "``shield()`` peut être combinée à une clause *try* / *except*, comme dans le " "code ci-dessous ::" -#: ../Doc/library/asyncio-task.rst:430 +#: library/asyncio-task.rst:442 msgid "Timeouts" msgstr "Délais d'attente" -#: ../Doc/library/asyncio-task.rst:434 +#: library/asyncio-task.rst:446 msgid "" "Wait for the *aw* :ref:`awaitable ` to complete with a " "timeout." @@ -497,7 +513,7 @@ msgstr "" "Attend la fin de l':ref:`awaitable ` *aw* avec délai " "d'attente." -#: ../Doc/library/asyncio-task.rst:439 +#: library/asyncio-task.rst:451 msgid "" "*timeout* can either be ``None`` or a float or int number of seconds to wait " "for. If *timeout* is ``None``, block until the future completes." @@ -506,7 +522,7 @@ msgstr "" "décimal) d'attente. Si *timeout* vaut ``None``, la fonction s'interrompt " "jusqu'à ce que le futur s'achève." -#: ../Doc/library/asyncio-task.rst:443 +#: library/asyncio-task.rst:455 msgid "" "If a timeout occurs, it cancels the task and raises :exc:`asyncio." "TimeoutError`." @@ -514,7 +530,7 @@ msgstr "" "Si le délai d'attente maximal est dépassé, la tâche est annulée et " "l'exception :exc:`asyncio.TimeoutError` est levée." -#: ../Doc/library/asyncio-task.rst:446 +#: library/asyncio-task.rst:458 msgid "" "To avoid the task :meth:`cancellation `, wrap it in :func:" "`shield`." @@ -522,7 +538,7 @@ msgstr "" "Pour empêcher :meth:`l'annulation ` de la tâche, il est " "nécessaire de l'encapsuler dans une fonction :func:`shield`." -#: ../Doc/library/asyncio-task.rst:449 +#: library/asyncio-task.rst:461 msgid "" "The function will wait until the future is actually cancelled, so the total " "wait time may exceed the *timeout*." @@ -530,11 +546,11 @@ msgstr "" "Cette fonction attend que le futur soit réellement annulé, donc le temps " "d'attente total peut être supérieur à *timeout*." -#: ../Doc/library/asyncio-task.rst:452 +#: library/asyncio-task.rst:464 msgid "If the wait is cancelled, the future *aw* is also cancelled." msgstr "Si l'attente est annulée, le futur *aw* est également annulé." -#: ../Doc/library/asyncio-task.rst:479 +#: library/asyncio-task.rst:491 msgid "" "When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " "cancelled. Previously, it raised :exc:`asyncio.TimeoutError` immediately." @@ -543,28 +559,29 @@ msgstr "" "``wait_for`` attend que *aw* soit annulée. Auparavant, l'exception :exc:" "`asyncio.TimeoutError` était immédiatement levée." -#: ../Doc/library/asyncio-task.rst:486 +#: library/asyncio-task.rst:498 msgid "Waiting Primitives" msgstr "Primitives d'attente" -#: ../Doc/library/asyncio-task.rst:491 +#: library/asyncio-task.rst:503 +#, fuzzy msgid "" -"Run :ref:`awaitable objects ` in the *aws* set " +"Run :ref:`awaitable objects ` in the *aws* iterable " "concurrently and block until the condition specified by *return_when*." msgstr "" "Exécute les objets :ref:`awaitables ` de l'ensemble " "*aws* de manière concurrente, et s'interrompt jusqu'à ce que la condition " "décrite dans *return_when* soit vraie." -#: ../Doc/library/asyncio-task.rst:495 +#: library/asyncio-task.rst:507 msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." -msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." +msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." -#: ../Doc/library/asyncio-task.rst:497 +#: library/asyncio-task.rst:509 msgid "Usage::" msgstr "Utilisation ::" -#: ../Doc/library/asyncio-task.rst:501 +#: library/asyncio-task.rst:513 msgid "" "*timeout* (a float or int), if specified, can be used to control the maximum " "number of seconds to wait before returning." @@ -572,7 +589,7 @@ msgstr "" "*timeout* (entier ou décimal), si précisé, peut-être utilisé pour contrôler " "le nombre maximal de secondes d'attente avant de se terminer." -#: ../Doc/library/asyncio-task.rst:504 +#: library/asyncio-task.rst:516 msgid "" "Note that this function does not raise :exc:`asyncio.TimeoutError`. Futures " "or Tasks that aren't done when the timeout occurs are simply returned in the " @@ -582,36 +599,36 @@ msgstr "" "tâches qui ne sont pas finis quand le délai d'attente maximal est dépassé " "sont tout simplement renvoyés dans le second ensemble." -#: ../Doc/library/asyncio-task.rst:508 +#: library/asyncio-task.rst:520 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" msgstr "" "*return_when* indique quand la fonction doit se terminer. Il peut prendre " -"les valeurs suivantes :" +"les valeurs suivantes :" -#: ../Doc/library/asyncio-task.rst:514 +#: library/asyncio-task.rst:526 msgid "Constant" msgstr "Constante" -#: ../Doc/library/asyncio-task.rst:514 +#: library/asyncio-task.rst:526 msgid "Description" msgstr "Description" -#: ../Doc/library/asyncio-task.rst:516 +#: library/asyncio-task.rst:528 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/asyncio-task.rst:516 +#: library/asyncio-task.rst:528 msgid "The function will return when any future finishes or is cancelled." msgstr "" "La fonction se termine lorsque n'importe quel futur se termine ou est annulé." -#: ../Doc/library/asyncio-task.rst:519 +#: library/asyncio-task.rst:531 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/asyncio-task.rst:519 +#: library/asyncio-task.rst:531 msgid "" "The function will return when any future finishes by raising an exception. " "If no future raises an exception then it is equivalent to :const:" @@ -621,16 +638,16 @@ msgstr "" "exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" "`ALL_COMPLETED`." -#: ../Doc/library/asyncio-task.rst:525 +#: library/asyncio-task.rst:537 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/asyncio-task.rst:525 +#: library/asyncio-task.rst:537 msgid "The function will return when all futures finish or are cancelled." msgstr "" "La fonction se termine lorsque les *futurs* sont tous finis ou annulés." -#: ../Doc/library/asyncio-task.rst:529 +#: library/asyncio-task.rst:541 msgid "" "Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " "when a timeout occurs." @@ -638,7 +655,7 @@ msgstr "" "À la différence de :func:`~asyncio.wait_for`, ``wait()`` n'annule pas les " "futurs quand le délai d'attente est dépassé." -#: ../Doc/library/asyncio-task.rst:534 +#: library/asyncio-task.rst:546 msgid "" "If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " "Task. Passing coroutines objects to ``wait()`` directly is deprecated as it " @@ -649,7 +666,7 @@ msgstr "" "``wait()`` est obsolète, car ceci conduisait :ref:`à un comportement portant " "à confusion `." -#: ../Doc/library/asyncio-task.rst:546 +#: library/asyncio-task.rst:558 msgid "" "``wait()`` schedules coroutines as Tasks automatically and later returns " "those implicitly created Task objects in ``(done, pending)`` sets. " @@ -657,29 +674,30 @@ msgid "" msgstr "" "``wait()`` planifie automatiquement les coroutines comme des tâches et " "renvoie les objets *Task* ainsi créés dans les ensembles ``(done, " -"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::" +"pending)``. Le code suivant ne fonctionne donc pas comme voulu ::" -#: ../Doc/library/asyncio-task.rst:559 +#: library/asyncio-task.rst:571 msgid "Here is how the above snippet can be fixed::" msgstr "Voici comment corriger le morceau de code ci-dessus ::" -#: ../Doc/library/asyncio-task.rst:572 +#: library/asyncio-task.rst:584 msgid "Passing coroutine objects to ``wait()`` directly is deprecated." msgstr "Passer directement des objets coroutines à ``wait()`` est obsolète." -#: ../Doc/library/asyncio-task.rst:578 +#: library/asyncio-task.rst:590 +#, fuzzy msgid "" -"Run :ref:`awaitable objects ` in the *aws* set " -"concurrently. Return an iterator of :class:`Future` objects. Each Future " -"object returned represents the earliest result from the set of the remaining " -"awaitables." +"Run :ref:`awaitable objects ` in the *aws* iterable " +"concurrently. Return an iterator of coroutines. Each coroutine returned can " +"be awaited to get the earliest next result from the iterable of the " +"remaining awaitables." msgstr "" "Exécute les objets :ref:`awaitables ` de l'ensemble " "*aws* de manière concurrente. Renvoie un itérateur sur des objets :class:" "`Future`. Chaque objet *futur* renvoyé représente le résultat le plus récent " "de l'ensemble des *awaitables* restants." -#: ../Doc/library/asyncio-task.rst:583 +#: library/asyncio-task.rst:595 msgid "" "Raises :exc:`asyncio.TimeoutError` if the timeout occurs before all Futures " "are done." @@ -687,18 +705,18 @@ msgstr "" "Lève une exception :exc:`asyncio.TimeoutError` si le délai d'attente est " "dépassé avant que tous les futurs ne soient achevés." -#: ../Doc/library/asyncio-task.rst:597 +#: library/asyncio-task.rst:609 msgid "Scheduling From Other Threads" msgstr "Planification depuis d'autres fils d'exécution" -#: ../Doc/library/asyncio-task.rst:601 +#: library/asyncio-task.rst:613 msgid "Submit a coroutine to the given event loop. Thread-safe." msgstr "" "Enregistre une coroutine dans la boucle d'exécution actuelle. Cette " "opération est compatible avec les programmes à multiples fils d'exécution " "(*thread-safe*)." -#: ../Doc/library/asyncio-task.rst:603 +#: library/asyncio-task.rst:615 msgid "" "Return a :class:`concurrent.futures.Future` to wait for the result from " "another OS thread." @@ -706,7 +724,7 @@ msgstr "" "Renvoie un :class:`concurrent.futures.Future` pour attendre le résultat d'un " "autre fil d'exécution du système d'exploitation." -#: ../Doc/library/asyncio-task.rst:606 +#: library/asyncio-task.rst:618 msgid "" "This function is meant to be called from a different OS thread than the one " "where the event loop is running. Example::" @@ -714,7 +732,7 @@ msgstr "" "Cette fonction est faite pour être appelée par un fil d'exécution distinct " "de celui dans laquelle la boucle d'événement s'exécute. Exemple ::" -#: ../Doc/library/asyncio-task.rst:618 +#: library/asyncio-task.rst:630 msgid "" "If an exception is raised in the coroutine, the returned Future will be " "notified. It can also be used to cancel the task in the event loop::" @@ -723,7 +741,7 @@ msgstr "" "averti. Elle peut également être utilisée pour annuler la tâche de la boucle " "d'événement ::" -#: ../Doc/library/asyncio-task.rst:632 +#: library/asyncio-task.rst:644 msgid "" "See the :ref:`concurrency and multithreading ` " "section of the documentation." @@ -731,19 +749,19 @@ msgstr "" "Voir la section :ref:`exécution concurrente et multi-fils d'exécution " "` de la documentation." -#: ../Doc/library/asyncio-task.rst:635 +#: library/asyncio-task.rst:647 msgid "" "Unlike other asyncio functions this function requires the *loop* argument to " "be passed explicitly." msgstr "" -"À la différence des autres fonction d'*asyncio*, cette fonction requiert que " -"*loop* soit passé de manière explicite." +"À la différence des autres fonctions d'*asyncio*, cette fonction requiert " +"que *loop* soit passé de manière explicite." -#: ../Doc/library/asyncio-task.rst:642 +#: library/asyncio-task.rst:654 msgid "Introspection" msgstr "Introspection" -#: ../Doc/library/asyncio-task.rst:647 +#: library/asyncio-task.rst:659 msgid "" "Return the currently running :class:`Task` instance, or ``None`` if no task " "is running." @@ -751,7 +769,7 @@ msgstr "" "Renvoie l'instance de la :class:`Task` en cours d'exécution, ou ``None`` " "s'il n'y a pas de tâche en cours." -#: ../Doc/library/asyncio-task.rst:650 +#: library/asyncio-task.rst:662 msgid "" "If *loop* is ``None`` :func:`get_running_loop` is used to get the current " "loop." @@ -759,13 +777,13 @@ msgstr "" "Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " "la boucle en cours d'exécution." -#: ../Doc/library/asyncio-task.rst:658 +#: library/asyncio-task.rst:670 msgid "Return a set of not yet finished :class:`Task` objects run by the loop." msgstr "" "Renvoie l'ensemble des :class:`Task` non terminés en cours d'exécution dans " "la boucle." -#: ../Doc/library/asyncio-task.rst:661 +#: library/asyncio-task.rst:673 msgid "" "If *loop* is ``None``, :func:`get_running_loop` is used for getting current " "loop." @@ -773,20 +791,20 @@ msgstr "" "Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " "la boucle en cours d'exécution." -#: ../Doc/library/asyncio-task.rst:668 +#: library/asyncio-task.rst:680 msgid "Task Object" msgstr "Objets *Task*" -#: ../Doc/library/asyncio-task.rst:672 +#: library/asyncio-task.rst:684 msgid "" "A :class:`Future-like ` object that runs a Python :ref:`coroutine " "`. Not thread-safe." msgstr "" "Objet compatible avec :class:`Future ` qui exécute une :ref:" -"`coroutine ` Python. Cet objet n'est pas utilisable dans des " +"`coroutine ` Python. Cet objet n'est pas utilisable dans des " "programmes à fils d'exécution multiples." -#: ../Doc/library/asyncio-task.rst:675 +#: library/asyncio-task.rst:687 msgid "" "Tasks are used to run coroutines in event loops. If a coroutine awaits on a " "Future, the Task suspends the execution of the coroutine and waits for the " @@ -798,7 +816,7 @@ msgstr "" "attend la fin de ce *futur*. Quand celui-ci est terminé, l'exécution de la " "coroutine encapsulée reprend." -#: ../Doc/library/asyncio-task.rst:681 +#: library/asyncio-task.rst:693 msgid "" "Event loops use cooperative scheduling: an event loop runs one Task at a " "time. While a Task awaits for the completion of a Future, the event loop " @@ -809,7 +827,7 @@ msgstr "" "futur, la boucle d'événement exécute d'autres tâches, des fonctions de " "rappel, ou effectue des opérations d'entrées-sorties." -#: ../Doc/library/asyncio-task.rst:686 +#: library/asyncio-task.rst:698 msgid "" "Use the high-level :func:`asyncio.create_task` function to create Tasks, or " "the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " @@ -820,7 +838,7 @@ msgstr "" "créer des tâches. Il est déconseillé d'instancier manuellement des objets " "*Task*." -#: ../Doc/library/asyncio-task.rst:691 +#: library/asyncio-task.rst:703 msgid "" "To cancel a running Task use the :meth:`cancel` method. Calling it will " "cause the Task to throw a :exc:`CancelledError` exception into the wrapped " @@ -832,7 +850,7 @@ msgstr "" "`CancelledError` dans la coroutine encapsulée. Si la coroutine attendait un " "*futur* au moment de l'annulation, celui-ci est annulé." -#: ../Doc/library/asyncio-task.rst:696 +#: library/asyncio-task.rst:708 msgid "" ":meth:`cancelled` can be used to check if the Task was cancelled. The method " "returns ``True`` if the wrapped coroutine did not suppress the :exc:" @@ -842,7 +860,7 @@ msgstr "" "Elle renvoie ``True`` si la coroutine encapsulée n'a pas ignoré l'exception :" "exc:`CancelledError` et a bien été annulée." -#: ../Doc/library/asyncio-task.rst:701 +#: library/asyncio-task.rst:713 msgid "" ":class:`asyncio.Task` inherits from :class:`Future` all of its APIs except :" "meth:`Future.set_result` and :meth:`Future.set_exception`." @@ -850,7 +868,7 @@ msgstr "" ":class:`asyncio.Task` hérite de :class:`Future`, de toute son API, à " "l'exception de :meth:`Future.set_result` et de :meth:`Future.set_exception`." -#: ../Doc/library/asyncio-task.rst:705 +#: library/asyncio-task.rst:717 msgid "" "Tasks support the :mod:`contextvars` module. When a Task is created it " "copies the current context and later runs its coroutine in the copied " @@ -860,15 +878,15 @@ msgstr "" "tâche effectue une copie du contexte actuel et exécutera ses coroutines dans " "cette copie." -#: ../Doc/library/asyncio-task.rst:709 +#: library/asyncio-task.rst:721 msgid "Added support for the :mod:`contextvars` module." msgstr "Ajout du support du module :mod:`contextvars`." -#: ../Doc/library/asyncio-task.rst:720 +#: library/asyncio-task.rst:732 msgid "Request the Task to be cancelled." msgstr "Demande l'annulation d'une tâche." -#: ../Doc/library/asyncio-task.rst:722 +#: library/asyncio-task.rst:734 msgid "" "This arranges for a :exc:`CancelledError` exception to be thrown into the " "wrapped coroutine on the next cycle of the event loop." @@ -877,7 +895,7 @@ msgstr "" "encapsulée. L'exception sera levée au prochain cycle de la boucle " "d'exécution." -#: ../Doc/library/asyncio-task.rst:725 +#: library/asyncio-task.rst:737 msgid "" "The coroutine then has a chance to clean up or even deny the request by " "suppressing the exception with a :keyword:`try` ... ... ``except " @@ -886,14 +904,14 @@ msgid "" "be cancelled, although suppressing cancellation completely is not common and " "is actively discouraged." msgstr "" -"La coroutine peut alors se nettoyer ou même ignorer la requête en supprimant " -"l'exception à l'aide d'un bloc :keyword:`try` ... ... ``except " -"CancelledError`` ... :keyword:`finally`. Par conséquent, contrairement à :" -"meth:`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera " +"La coroutine peut alors faire le ménage ou même ignorer la requête en " +"supprimant l'exception à l'aide d'un bloc :keyword:`try` … … ``except " +"CancelledError`` … :keyword:`finally`. Par conséquent, contrairement à :meth:" +"`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche sera " "annulée, bien qu'ignorer totalement une annulation ne soit ni une pratique " "courante, ni encouragé." -#: ../Doc/library/asyncio-task.rst:735 +#: library/asyncio-task.rst:747 msgid "" "The following example illustrates how coroutines can intercept the " "cancellation request::" @@ -901,11 +919,11 @@ msgstr "" "L'exemple ci-dessous illustre comment une coroutine peut intercepter une " "requête d'annulation ::" -#: ../Doc/library/asyncio-task.rst:774 +#: library/asyncio-task.rst:786 msgid "Return ``True`` if the Task is *cancelled*." msgstr "Renvoie ``True`` si la tâche est *annulée*." -#: ../Doc/library/asyncio-task.rst:776 +#: library/asyncio-task.rst:788 msgid "" "The Task is *cancelled* when the cancellation was requested with :meth:" "`cancel` and the wrapped coroutine propagated the :exc:`CancelledError` " @@ -915,11 +933,11 @@ msgstr "" "et la coroutine encapsulée a propagé l'exception :exc:`CancelledError` qui a " "été levée en son sein." -#: ../Doc/library/asyncio-task.rst:782 +#: library/asyncio-task.rst:794 msgid "Return ``True`` if the Task is *done*." msgstr "Renvoie ``True`` si la tâche est *achevée*." -#: ../Doc/library/asyncio-task.rst:784 +#: library/asyncio-task.rst:796 msgid "" "A Task is *done* when the wrapped coroutine either returned a value, raised " "an exception, or the Task was cancelled." @@ -927,11 +945,11 @@ msgstr "" "Une tâche est dite *achevée* quand la coroutine encapsulée a soit renvoyé " "une valeur, soit levé une exception, ou que la tâche a été annulée." -#: ../Doc/library/asyncio-task.rst:789 +#: library/asyncio-task.rst:801 msgid "Return the result of the Task." msgstr "Renvoie le résultat de la tâche." -#: ../Doc/library/asyncio-task.rst:791 +#: library/asyncio-task.rst:803 msgid "" "If the Task is *done*, the result of the wrapped coroutine is returned (or " "if the coroutine raised an exception, that exception is re-raised.)" @@ -940,15 +958,15 @@ msgstr "" "renvoyé (sinon, dans le cas où la coroutine a levé une exception, cette " "exception est de nouveau levée)." -#: ../Doc/library/asyncio-task.rst:795 ../Doc/library/asyncio-task.rst:809 +#: library/asyncio-task.rst:821 msgid "" "If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " "exception." msgstr "" -"Si la tâche a été *annulée*, cette méthode lève une exception :exc:" +"Si la tâche a été *annulée*, cette méthode lève une exception :exc:" "`CancelledError`." -#: ../Doc/library/asyncio-task.rst:798 +#: library/asyncio-task.rst:810 msgid "" "If the Task's result isn't yet available, this method raises a :exc:" "`InvalidStateError` exception." @@ -956,11 +974,11 @@ msgstr "" "Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " "une exception :exc:`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:803 +#: library/asyncio-task.rst:815 msgid "Return the exception of the Task." msgstr "Renvoie l'exception de la tâche." -#: ../Doc/library/asyncio-task.rst:805 +#: library/asyncio-task.rst:817 msgid "" "If the wrapped coroutine raised an exception that exception is returned. If " "the wrapped coroutine returned normally this method returns ``None``." @@ -968,7 +986,7 @@ msgstr "" "Si la coroutine encapsulée lève une exception, cette exception est renvoyée. " "Si la coroutine s'est exécutée normalement, cette méthode renvoie ``None``." -#: ../Doc/library/asyncio-task.rst:812 +#: library/asyncio-task.rst:824 msgid "" "If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " "exception." @@ -976,30 +994,30 @@ msgstr "" "Si la tâche n'est pas encore *achevée*, cette méthode lève une exception :" "exc:`InvalidStateError`." -#: ../Doc/library/asyncio-task.rst:817 +#: library/asyncio-task.rst:829 msgid "Add a callback to be run when the Task is *done*." msgstr "" "Ajoute une fonction de rappel qui sera exécutée quand la tâche sera " "*achevée*." -#: ../Doc/library/asyncio-task.rst:819 ../Doc/library/asyncio-task.rst:828 +#: library/asyncio-task.rst:840 msgid "This method should only be used in low-level callback-based code." msgstr "" "Cette méthode ne doit être utilisée que dans du code basé sur les fonctions " "de rappel de bas-niveau." -#: ../Doc/library/asyncio-task.rst:821 +#: library/asyncio-task.rst:833 msgid "" "See the documentation of :meth:`Future.add_done_callback` for more details." msgstr "" "Se référer à la documentation de :meth:`Future.add_done_callback` pour plus " "de détails." -#: ../Doc/library/asyncio-task.rst:826 +#: library/asyncio-task.rst:838 msgid "Remove *callback* from the callbacks list." msgstr "Retire *callback* de la liste de fonctions de rappel." -#: ../Doc/library/asyncio-task.rst:830 +#: library/asyncio-task.rst:842 msgid "" "See the documentation of :meth:`Future.remove_done_callback` for more " "details." @@ -1007,11 +1025,11 @@ msgstr "" "Se référer à la documentation de :meth:`Future.remove_done_callback` pour " "plus de détails." -#: ../Doc/library/asyncio-task.rst:835 +#: library/asyncio-task.rst:847 msgid "Return the list of stack frames for this Task." msgstr "Renvoie une liste représentant la pile d'appels de la tâche." -#: ../Doc/library/asyncio-task.rst:837 +#: library/asyncio-task.rst:849 msgid "" "If the wrapped coroutine is not done, this returns the stack where it is " "suspended. If the coroutine has completed successfully or was cancelled, " @@ -1024,15 +1042,15 @@ msgstr "" "renvoie une liste vide. Si la coroutine a été terminée par une exception, " "ceci renvoie la pile d'erreurs." -#: ../Doc/library/asyncio-task.rst:843 +#: library/asyncio-task.rst:855 msgid "The frames are always ordered from oldest to newest." msgstr "La pile est toujours affichée de l'appelant à l'appelé." -#: ../Doc/library/asyncio-task.rst:845 +#: library/asyncio-task.rst:857 msgid "Only one stack frame is returned for a suspended coroutine." msgstr "Une seule ligne est renvoyée si la coroutine est suspendue." -#: ../Doc/library/asyncio-task.rst:847 +#: library/asyncio-task.rst:859 msgid "" "The optional *limit* argument sets the maximum number of frames to return; " "by default all available frames are returned. The ordering of the returned " @@ -1041,72 +1059,76 @@ msgid "" "are returned. (This matches the behavior of the traceback module.)" msgstr "" "L'argument facultatif *limit* définit le nombre maximal d'appels à " -"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon " -"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont " +"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon " +"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont " "renvoyés, si la pile est une pile d'erreurs, ce sont les appels les plus " "anciens qui le sont (dans un souci de cohérence avec le module *traceback*)." -#: ../Doc/library/asyncio-task.rst:856 +#: library/asyncio-task.rst:868 msgid "Print the stack or traceback for this Task." msgstr "Affiche la pile d'appels ou d'erreurs de la tâche." -#: ../Doc/library/asyncio-task.rst:858 +#: library/asyncio-task.rst:870 msgid "" "This produces output similar to that of the traceback module for the frames " "retrieved by :meth:`get_stack`." msgstr "" "Le format de sortie des appels produits par :meth:`get_stack` est similaire " -"à celui du module *traceback*. " +"à celui du module *traceback*." -#: ../Doc/library/asyncio-task.rst:861 +#: library/asyncio-task.rst:873 msgid "The *limit* argument is passed to :meth:`get_stack` directly." msgstr "Le paramètre *limit* est directement passé à :meth:`get_stack`." -#: ../Doc/library/asyncio-task.rst:863 +#: library/asyncio-task.rst:875 msgid "" "The *file* argument is an I/O stream to which the output is written; by " "default output is written to :data:`sys.stderr`." msgstr "" "Le paramètre *file* est un flux d'entrées-sorties sur lequel le résultat est " -"écrit ; par défaut, :data:`sys.stderr`." +"écrit ; par défaut, :data:`sys.stderr`." -#: ../Doc/library/asyncio-task.rst:868 -#, fuzzy +#: library/asyncio-task.rst:880 msgid "Return the coroutine object wrapped by the :class:`Task`." -msgstr "Renvoie l'exception de la tâche." +msgstr "Renvoie l’objet *coroutine* encapsulé par la :class:`Task`." -#: ../Doc/library/asyncio-task.rst:874 -#, fuzzy +#: library/asyncio-task.rst:886 msgid "Return the name of the Task." -msgstr "Renvoie le résultat de la tâche." +msgstr "Renvoie le nom de la tâche." -#: ../Doc/library/asyncio-task.rst:876 +#: library/asyncio-task.rst:888 msgid "" "If no name has been explicitly assigned to the Task, the default asyncio " "Task implementation generates a default name during instantiation." msgstr "" +"Si aucun nom n’a été explicitement assigné à la tâche, l’implémentation par " +"défaut d’une *Task* *asyncio* génère un nom par défaut durant " +"l’instanciation." -#: ../Doc/library/asyncio-task.rst:884 -#, fuzzy +#: library/asyncio-task.rst:896 msgid "Set the name of the Task." -msgstr "Renvoie le résultat de la tâche." +msgstr "Définit le nom de la tâche." -#: ../Doc/library/asyncio-task.rst:886 +#: library/asyncio-task.rst:898 msgid "" "The *value* argument can be any object, which is then converted to a string." msgstr "" +"L’argument *value* peut être n’importe quel objet qui sera ensuite converti " +"en chaine de caractères." -#: ../Doc/library/asyncio-task.rst:889 +#: library/asyncio-task.rst:901 msgid "" "In the default Task implementation, the name will be visible in the :func:" "`repr` output of a task object." msgstr "" +"Dans l’implémentation par défaut de *Task*, le nom sera visible dans le " +"résultat de :func:`repr` d’un objet *Task*." -#: ../Doc/library/asyncio-task.rst:896 +#: library/asyncio-task.rst:908 msgid "Return a set of all tasks for an event loop." msgstr "Renvoie l'ensemble des tâches d'une boucle d'évènements." -#: ../Doc/library/asyncio-task.rst:898 +#: library/asyncio-task.rst:910 msgid "" "By default all tasks for the current event loop are returned. If *loop* is " "``None``, the :func:`get_event_loop` function is used to get the current " @@ -1116,20 +1138,19 @@ msgstr "" "renvoyées. Si *loop* vaut ``None``, la fonction :func:`get_event_loop` est " "appelée pour récupérer la boucle d'exécution actuelle." -#: ../Doc/library/asyncio-task.rst:904 -#, fuzzy +#: library/asyncio-task.rst:916 msgid "" "Do not call this as a task method. Use the :func:`asyncio.all_tasks` " "function instead." msgstr "" -"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la " -"fonction :func:`asyncio.all_tasks` à la place." +"Ne pas l’appeler en tant que méthode *task*. Utiliser la fonction :func:" +"`asyncio.all_tasks` à la place." -#: ../Doc/library/asyncio-task.rst:909 +#: library/asyncio-task.rst:921 msgid "Return the currently running task or ``None``." msgstr "Renvoie la tâche en cours d'exécution ou ``None``." -#: ../Doc/library/asyncio-task.rst:911 +#: library/asyncio-task.rst:923 msgid "" "If *loop* is ``None``, the :func:`get_event_loop` function is used to get " "the current loop." @@ -1137,20 +1158,19 @@ msgstr "" "Si *loop* vaut ``None``, la fonction :func:`get_event_loop` est utilisée " "pour récupérer la boucle d'exécution actuelle." -#: ../Doc/library/asyncio-task.rst:916 -#, fuzzy +#: library/asyncio-task.rst:928 msgid "" "Do not call this as a task method. Use the :func:`asyncio.current_task` " "function instead." msgstr "" -"Cette méthode est **obsolète** et sera supprimée en Python 3.9. Utilisez la " -"fonction :func:`asyncio.current_task` à la place." +"Ne pas l’appeler en tant que méthode *task*. Utiliser la fonction :func:" +"`asyncio.current_task` à la place." -#: ../Doc/library/asyncio-task.rst:923 +#: library/asyncio-task.rst:935 msgid "Generator-based Coroutines" msgstr "Coroutines basées sur des générateurs" -#: ../Doc/library/asyncio-task.rst:927 +#: library/asyncio-task.rst:939 msgid "" "Support for generator-based coroutines is **deprecated** and is scheduled " "for removal in Python 3.10." @@ -1158,17 +1178,17 @@ msgstr "" "Les coroutines basées sur des générateurs sont **obsolètes** et il est prévu " "de les supprimer en Python 3.10." -#: ../Doc/library/asyncio-task.rst:930 +#: library/asyncio-task.rst:942 msgid "" "Generator-based coroutines predate async/await syntax. They are Python " "generators that use ``yield from`` expressions to await on Futures and other " "coroutines." msgstr "" "Les coroutines basées sur des générateurs sont antérieures à la syntaxe " -"*async* / *await*. Il existe des générateurs Python qui utilisent les " +"*async* / *await*. Il existe des générateurs *Python* qui utilisent les " "expressions ``yield from`` pour attendre des *futurs* et autres coroutines." -#: ../Doc/library/asyncio-task.rst:934 +#: library/asyncio-task.rst:946 msgid "" "Generator-based coroutines should be decorated with :func:`@asyncio." "coroutine `, although this is not enforced." @@ -1177,11 +1197,11 @@ msgstr "" "`@asyncio.coroutine `, même si ce n'est pas vérifié par " "l'interpréteur." -#: ../Doc/library/asyncio-task.rst:941 +#: library/asyncio-task.rst:953 msgid "Decorator to mark generator-based coroutines." msgstr "Décorateur pour coroutines basées sur des générateurs." -#: ../Doc/library/asyncio-task.rst:943 +#: library/asyncio-task.rst:955 msgid "" "This decorator enables legacy generator-based coroutines to be compatible " "with async/await code::" @@ -1189,21 +1209,23 @@ msgstr "" "Ce décorateur rend compatibles les coroutines basées sur des générateurs " "avec le code *async* / *await* ::" -#: ../Doc/library/asyncio-task.rst:953 +#: library/asyncio-task.rst:965 msgid "This decorator should not be used for :keyword:`async def` coroutines." msgstr "" "Ce décorateur ne doit pas être utilisé avec des coroutines :keyword:`async " "def`." -#: ../Doc/library/asyncio-task.rst:958 +# pas de majuscule car suit un deux-points +# pas de majuscule car suit un deux-points +#: library/asyncio-task.rst:970 msgid "Use :keyword:`async def` instead." -msgstr "" +msgstr "utilisez :keyword:`async def` à la place." -#: ../Doc/library/asyncio-task.rst:962 +#: library/asyncio-task.rst:974 msgid "Return ``True`` if *obj* is a :ref:`coroutine object `." msgstr "Renvoie ``True`` si *obj* est un :ref:`objet coroutine `." -#: ../Doc/library/asyncio-task.rst:964 +#: library/asyncio-task.rst:976 msgid "" "This method is different from :func:`inspect.iscoroutine` because it returns " "``True`` for generator-based coroutines." @@ -1211,12 +1233,12 @@ msgstr "" "Cette méthode est différente de :func:`inspect.iscoroutine` car elle renvoie " "``True`` pour des coroutines basées sur des générateurs." -#: ../Doc/library/asyncio-task.rst:969 +#: library/asyncio-task.rst:981 msgid "Return ``True`` if *func* is a :ref:`coroutine function `." msgstr "" "Renvoie ``True`` si *func* est une :ref:`fonction coroutine `." -#: ../Doc/library/asyncio-task.rst:972 +#: library/asyncio-task.rst:984 msgid "" "This method is different from :func:`inspect.iscoroutinefunction` because it " "returns ``True`` for generator-based coroutine functions decorated with :" diff --git a/library/asyncio.po b/library/asyncio.po index aa5c10ad63..a6f7da7ba7 100644 --- a/library/asyncio.po +++ b/library/asyncio.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-04-03 13:15+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-12-16 16:19+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" @@ -15,27 +15,27 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" -#: ../Doc/library/asyncio.rst:66 +#: library/asyncio.rst:66 msgid "High-level APIs" msgstr "Bibliothèques de haut-niveau" -#: ../Doc/library/asyncio.rst:77 +#: library/asyncio.rst:77 msgid "Low-level APIs" msgstr "Bibliothèques de bas-niveau" -#: ../Doc/library/asyncio.rst:87 +#: library/asyncio.rst:87 msgid "Guides and Tutorials" msgstr "Guides et tutoriels" -#: ../Doc/library/asyncio.rst:2 +#: library/asyncio.rst:2 msgid ":mod:`asyncio` --- Asynchronous I/O" msgstr ":mod:`asyncio` — Entrées/Sorties asynchrones" -#: ../Doc/library/asyncio.rst:None +#: library/asyncio.rst:None msgid "Hello World!" msgstr "Hello World !" -#: ../Doc/library/asyncio.rst:23 +#: library/asyncio.rst:23 msgid "" "asyncio is a library to write **concurrent** code using the **async/await** " "syntax." @@ -43,7 +43,7 @@ msgstr "" "`asyncio` est une bibliothèque permettant de faire de la programmation " "asynchrone en utilisant la syntaxe *async*/*await*." -#: ../Doc/library/asyncio.rst:26 +#: library/asyncio.rst:26 msgid "" "asyncio is used as a foundation for multiple Python asynchronous frameworks " "that provide high-performance network and web-servers, database connection " @@ -54,7 +54,7 @@ msgstr "" "performants, des bibliothèques de connexion à des bases de données, des " "files d'exécution distribuées, etc." -#: ../Doc/library/asyncio.rst:30 +#: library/asyncio.rst:30 msgid "" "asyncio is often a perfect fit for IO-bound and high-level **structured** " "network code." @@ -62,12 +62,12 @@ msgstr "" "`asyncio` est souvent le bon choix pour écrire du code réseau de haut-niveau " "et tributaire des entrées-sorties (*IO-bound*)." -#: ../Doc/library/asyncio.rst:33 +#: library/asyncio.rst:33 msgid "asyncio provides a set of **high-level** APIs to:" msgstr "" "`asyncio` fournit des interfaces de programmation **haut-niveau** pour :" -#: ../Doc/library/asyncio.rst:35 +#: library/asyncio.rst:35 msgid "" ":ref:`run Python coroutines ` concurrently and have full control " "over their execution;" @@ -75,27 +75,27 @@ msgstr "" ":ref:`exécuter des coroutines Python ` de manière concurrente et " "d'avoir le contrôle total sur leur exécution ;" -#: ../Doc/library/asyncio.rst:38 +#: library/asyncio.rst:38 msgid "perform :ref:`network IO and IPC `;" msgstr "" "effectuer :ref:`des entrées/sorties réseau et de la communication inter-" "processus ` ;" -#: ../Doc/library/asyncio.rst:40 +#: library/asyncio.rst:40 msgid "control :ref:`subprocesses `;" msgstr "contrôler des :ref:`sous-processus ` ;" -#: ../Doc/library/asyncio.rst:42 +#: library/asyncio.rst:42 msgid "distribute tasks via :ref:`queues `;" msgstr "distribuer des tâches avec des :ref:`queues ` ;" -#: ../Doc/library/asyncio.rst:44 +#: library/asyncio.rst:44 msgid ":ref:`synchronize ` concurrent code;" msgstr "" ":ref:`synchroniser ` du code s'exécutant de manière " "concurrente ;" -#: ../Doc/library/asyncio.rst:46 +#: library/asyncio.rst:46 msgid "" "Additionally, there are **low-level** APIs for *library and framework " "developers* to:" @@ -103,7 +103,7 @@ msgstr "" "En plus, il existe des bibliothèques de **bas-niveau** pour que les " "*développeurs de bibliothèques et de frameworks* puissent :" -#: ../Doc/library/asyncio.rst:49 +#: library/asyncio.rst:49 msgid "" "create and manage :ref:`event loops `, which provide " "asynchronous APIs for :meth:`networking `, running :meth:" @@ -115,7 +115,7 @@ msgstr "" "create_server>`, d'exécution de :meth:`subprocesses `, " "de gestion de :meth:`signaux système `, etc ;" -#: ../Doc/library/asyncio.rst:54 +#: library/asyncio.rst:54 msgid "" "implement efficient protocols using :ref:`transports `;" @@ -123,7 +123,7 @@ msgstr "" "implémenter des protocoles efficaces à l'aide de :ref:`transports ` ;" -#: ../Doc/library/asyncio.rst:57 +#: library/asyncio.rst:57 msgid "" ":ref:`bridge ` callback-based libraries and code with async/" "await syntax." @@ -131,12 +131,14 @@ msgstr "" ":ref:`lier ` des bibliothèques basées sur les fonctions de " "rappel et développer avec la syntaxe *async*/*await*." -#: ../Doc/library/asyncio.rst:65 +#: library/asyncio.rst:65 msgid "Reference" msgstr "Sommaire" -#~ msgid "**Source code:** :source:`Lib/asyncio/`" -#~ msgstr "**Code source :** :source:`Lib/asyncio/`" +#: library/asyncio.rst:96 +msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." +msgstr "" +"Le code source d'``asyncio`` est disponible dans :source:`Lib/asyncio/`." #~ msgid "" #~ "This module provides infrastructure for writing single-threaded " diff --git a/library/asyncore.po b/library/asyncore.po index f020d046ce..d1f610077d 100644 --- a/library/asyncore.po +++ b/library/asyncore.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-27 23:21+0200\n" diff --git a/library/atexit.po b/library/atexit.po index 911000b56a..6529a2104f 100644 --- a/library/atexit.po +++ b/library/atexit.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-10-12 18:59+0200\n" "PO-Revision-Date: 2018-10-13 09:30+0200\n" diff --git a/library/audioop.po b/library/audioop.po index c3aa58d7d2..fd79ee5b7d 100644 --- a/library/audioop.po +++ b/library/audioop.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/audioop.rst:2 +#: library/audioop.rst:2 msgid ":mod:`audioop` --- Manipulate raw audio data" msgstr ":mod:`audioloop` — Manipulation de données audio brutes" -#: ../Doc/library/audioop.rst:9 +#: library/audioop.rst:9 msgid "" "The :mod:`audioop` module contains some useful operations on sound " "fragments. It operates on sound fragments consisting of signed integer " @@ -26,84 +26,104 @@ msgid "" "`. All scalar items are integers, unless specified " "otherwise." msgstr "" +"Le module :mod:`audioop` permet d'effectuer des opérations utiles sur des " +"fragments sonores. Ceux-ci sont constitués d'échantillons audio, suite " +"d'entiers signés de taille 8, 16, 24 ou 32 bits. Ils sont sauvegardés dans " +"des :term:`objets octet-compatibles `. Tous les nombres " +"sont des entiers, sauf mention particulière." -#: ../Doc/library/audioop.rst:14 +#: library/audioop.rst:14 msgid "" "Support for 24-bit samples was added. All functions now accept any :term:" "`bytes-like object`. String input now results in an immediate error." msgstr "" +"Ajout de la prise en charge d'échantillons 24 bits. Toutes les fonctions " +"acceptent maintenant les :term:`objets octet-compatibles `. Une chaîne de caractères reçue en entrée lève immédiatement une " +"erreur." -#: ../Doc/library/audioop.rst:25 +#: library/audioop.rst:25 msgid "" "This module provides support for a-LAW, u-LAW and Intel/DVI ADPCM encodings." msgstr "" +"Ce module prend en charge les encodages de la loi A, de la loi u et les " +"encodages Intel/DVI ADPCM." -#: ../Doc/library/audioop.rst:29 +#: library/audioop.rst:29 msgid "" "A few of the more complicated operations only take 16-bit samples, otherwise " "the sample size (in bytes) is always a parameter of the operation." msgstr "" +"Mis à part quelques opérations plus complexes ne prenant que des " +"échantillons de 16 bits, la taille de l'échantillon (en octets) est toujours " +"un paramètre de l'opération." -#: ../Doc/library/audioop.rst:32 +#: library/audioop.rst:32 msgid "The module defines the following variables and functions:" -msgstr "" +msgstr "Le module définit les fonctions et variables suivantes :" -#: ../Doc/library/audioop.rst:37 +#: library/audioop.rst:37 msgid "" "This exception is raised on all errors, such as unknown number of bytes per " "sample, etc." msgstr "" +"Cette exception est levée pour toutes les erreurs, comme un nombre inconnu " +"d'octets par échantillon, etc." -#: ../Doc/library/audioop.rst:43 +#: library/audioop.rst:43 msgid "" "Return a fragment which is the addition of the two samples passed as " "parameters. *width* is the sample width in bytes, either ``1``, ``2``, ``3`` " "or ``4``. Both fragments should have the same length. Samples are " "truncated in case of overflow." msgstr "" +"Renvoie un fragment constitué de l'addition des deux échantillons fournis " +"comme paramètres. *width* est la largeur de l'échantillon en octets, soit " +"``1``, ``2``, ``3`` ou ``4``. Les deux fragments doivent avoir la même " +"longueur. Les échantillons sont tronqués en cas de débordement." -#: ../Doc/library/audioop.rst:50 +#: library/audioop.rst:50 msgid "" "Decode an Intel/DVI ADPCM coded fragment to a linear fragment. See the " "description of :func:`lin2adpcm` for details on ADPCM coding. Return a tuple " "``(sample, newstate)`` where the sample has the width specified in *width*." msgstr "" -#: ../Doc/library/audioop.rst:57 +#: library/audioop.rst:57 msgid "" "Convert sound fragments in a-LAW encoding to linearly encoded sound " "fragments. a-LAW encoding always uses 8 bits samples, so *width* refers only " "to the sample width of the output fragment here." msgstr "" -#: ../Doc/library/audioop.rst:64 +#: library/audioop.rst:64 msgid "Return the average over all samples in the fragment." -msgstr "" +msgstr "Renvoie la moyenne prise sur l'ensemble des échantillons du fragment." -#: ../Doc/library/audioop.rst:69 +#: library/audioop.rst:69 msgid "" "Return the average peak-peak value over all samples in the fragment. No " "filtering is done, so the usefulness of this routine is questionable." msgstr "" -#: ../Doc/library/audioop.rst:75 +#: library/audioop.rst:75 msgid "" "Return a fragment that is the original fragment with a bias added to each " "sample. Samples wrap around in case of overflow." msgstr "" -#: ../Doc/library/audioop.rst:81 +#: library/audioop.rst:81 msgid "" "\"Byteswap\" all samples in a fragment and returns the modified fragment. " "Converts big-endian samples to little-endian and vice versa." msgstr "" -#: ../Doc/library/audioop.rst:89 +#: library/audioop.rst:89 msgid "" "Return the number of zero crossings in the fragment passed as an argument." msgstr "" -#: ../Doc/library/audioop.rst:94 +#: library/audioop.rst:94 msgid "" "Return a factor *F* such that ``rms(add(fragment, mul(reference, -F)))`` is " "minimal, i.e., return the factor with which you should multiply *reference* " @@ -111,11 +131,11 @@ msgid "" "both contain 2-byte samples." msgstr "" -#: ../Doc/library/audioop.rst:99 +#: library/audioop.rst:99 msgid "The time taken by this routine is proportional to ``len(fragment)``." -msgstr "" +msgstr "Le temps pris par cette routine est proportionnel à ``len(fragment)``." -#: ../Doc/library/audioop.rst:104 +#: library/audioop.rst:104 msgid "" "Try to match *reference* as well as possible to a portion of *fragment* " "(which should be the longer fragment). This is (conceptually) done by " @@ -126,22 +146,24 @@ msgid "" "*factor* is the (floating-point) factor as per :func:`findfactor`." msgstr "" -#: ../Doc/library/audioop.rst:115 +#: library/audioop.rst:115 msgid "" "Search *fragment* for a slice of length *length* samples (not bytes!) with " -"maximum energy, i.e., return *i* for which ``rms(fragment[i*2:(i" -"+length)*2])`` is maximal. The fragments should both contain 2-byte samples." +"maximum energy, i.e., return *i* for which ``rms(fragment[i*2:" +"(i+length)*2])`` is maximal. The fragments should both contain 2-byte " +"samples." msgstr "" -#: ../Doc/library/audioop.rst:119 +#: library/audioop.rst:119 msgid "The routine takes time proportional to ``len(fragment)``." -msgstr "" +msgstr "La routine s'exécute en un temps proportionnel à ``len(fragment)``." -#: ../Doc/library/audioop.rst:124 +#: library/audioop.rst:124 msgid "Return the value of sample *index* from the fragment." msgstr "" +"Renvoie la valeur de l'échantillon à l'indice *index* dans le fragment." -#: ../Doc/library/audioop.rst:129 +#: library/audioop.rst:129 msgid "" "Convert samples to 4 bit Intel/DVI ADPCM encoding. ADPCM coding is an " "adaptive coding scheme, whereby each 4 bit number is the difference between " @@ -150,7 +172,7 @@ msgid "" "standard." msgstr "" -#: ../Doc/library/audioop.rst:134 +#: library/audioop.rst:134 msgid "" "*state* is a tuple containing the state of the coder. The coder returns a " "tuple ``(adpcmfrag, newstate)``, and the *newstate* should be passed to the " @@ -159,7 +181,7 @@ msgid "" "per byte." msgstr "" -#: ../Doc/library/audioop.rst:142 +#: library/audioop.rst:142 msgid "" "Convert samples in the audio fragment to a-LAW encoding and return this as a " "bytes object. a-LAW is an audio encoding format whereby you get a dynamic " @@ -167,24 +189,26 @@ msgid "" "audio hardware, among others." msgstr "" -#: ../Doc/library/audioop.rst:150 +#: library/audioop.rst:150 msgid "Convert samples between 1-, 2-, 3- and 4-byte formats." -msgstr "" +msgstr "Convertit des échantillons pour les formats à 1, 2, 3, et 4 octets." -#: ../Doc/library/audioop.rst:154 +#: library/audioop.rst:154 msgid "" "In some audio formats, such as .WAV files, 16, 24 and 32 bit samples are " "signed, but 8 bit samples are unsigned. So when converting to 8 bit wide " "samples for these formats, you need to also add 128 to the result::" msgstr "" -#: ../Doc/library/audioop.rst:161 +#: library/audioop.rst:161 msgid "" "The same, in reverse, has to be applied when converting from 8 to 16, 24 or " "32 bit width samples." msgstr "" +"Le même procédé, mais inversé, doit être suivi lorsqu'on exécute une " +"conversion d'échantillons de 8 bits à 16, 24 ou 32 bits." -#: ../Doc/library/audioop.rst:167 +#: library/audioop.rst:167 msgid "" "Convert samples in the audio fragment to u-LAW encoding and return this as a " "bytes object. u-LAW is an audio encoding format whereby you get a dynamic " @@ -192,33 +216,39 @@ msgid "" "audio hardware, among others." msgstr "" -#: ../Doc/library/audioop.rst:175 +#: library/audioop.rst:175 msgid "" "Return the maximum of the *absolute value* of all samples in a fragment." msgstr "" +"Renvoie la *valeur absolue* maximale de tous les échantillons du fragment." -#: ../Doc/library/audioop.rst:180 +#: library/audioop.rst:180 msgid "Return the maximum peak-peak value in the sound fragment." msgstr "" -#: ../Doc/library/audioop.rst:185 +#: library/audioop.rst:185 msgid "" "Return a tuple consisting of the minimum and maximum values of all samples " "in the sound fragment." msgstr "" +"Renvoie un *n*-uplet contenant les valeurs maximale et minimale de tous les " +"échantillons du fragment sonore." -#: ../Doc/library/audioop.rst:191 +#: library/audioop.rst:191 msgid "" "Return a fragment that has all samples in the original fragment multiplied " "by the floating-point value *factor*. Samples are truncated in case of " "overflow." msgstr "" +"Renvoie un fragment contenant tous les échantillons du fragment original " +"multipliés par la valeur à décimale *factor*. Les échantillons sont tronqués " +"en cas de débordement." -#: ../Doc/library/audioop.rst:197 +#: library/audioop.rst:197 msgid "Convert the frame rate of the input fragment." -msgstr "" +msgstr "Transforme la fréquence d'échantillonnage du fragment d'entrée." -#: ../Doc/library/audioop.rst:199 +#: library/audioop.rst:199 msgid "" "*state* is a tuple containing the state of the converter. The converter " "returns a tuple ``(newfragment, newstate)``, and *newstate* should be passed " @@ -226,47 +256,61 @@ msgid "" "as the state." msgstr "" -#: ../Doc/library/audioop.rst:203 +#: library/audioop.rst:203 msgid "" "The *weightA* and *weightB* arguments are parameters for a simple digital " "filter and default to ``1`` and ``0`` respectively." msgstr "" +"Les arguments *weightA* et *weightB* sont les paramètres d'un filtre " +"numérique simple et ont comme valeur par défaut ``1`` et ``0``, " +"respectivement." -#: ../Doc/library/audioop.rst:209 +#: library/audioop.rst:209 msgid "Reverse the samples in a fragment and returns the modified fragment." msgstr "" +"Inverse les échantillons dans un fragment et renvoie le fragment modifié." -#: ../Doc/library/audioop.rst:214 +#: library/audioop.rst:214 msgid "" "Return the root-mean-square of the fragment, i.e. ``sqrt(sum(S_i^2)/n)``." msgstr "" +"Renvoie la moyenne quadratique du fragment, c'est-à-dire ``sqrt(sum(S_i^2)/" +"n)``." -#: ../Doc/library/audioop.rst:216 +#: library/audioop.rst:216 msgid "This is a measure of the power in an audio signal." msgstr "C'est une mesure de la puissance dans un signal audio." -#: ../Doc/library/audioop.rst:221 +#: library/audioop.rst:221 msgid "" "Convert a stereo fragment to a mono fragment. The left channel is " "multiplied by *lfactor* and the right channel by *rfactor* before adding the " "two channels to give a mono signal." msgstr "" +"Transforme un fragment stéréo en fragment mono. Le canal de gauche est " +"multiplié par *lfactor* et le canal de droite par *rfactor* avant " +"d'additionner les deux canaux afin d'obtenir un signal mono." -#: ../Doc/library/audioop.rst:228 +#: library/audioop.rst:228 msgid "" "Generate a stereo fragment from a mono fragment. Each pair of samples in " "the stereo fragment are computed from the mono sample, whereby left channel " "samples are multiplied by *lfactor* and right channel samples by *rfactor*." msgstr "" +"Génère un fragment stéréo à partir d'un fragment mono. Chaque paire " +"d'échantillons dans le fragment stéréo est obtenue à partir de l'échantillon " +"mono de la façon suivante : les échantillons du canal de gauche sont " +"multipliés par *lfactor* et les échantillons du canal de droite, par " +"*rfactor*." -#: ../Doc/library/audioop.rst:235 +#: library/audioop.rst:235 msgid "" "Convert sound fragments in u-LAW encoding to linearly encoded sound " "fragments. u-LAW encoding always uses 8 bits samples, so *width* refers only " "to the sample width of the output fragment here." msgstr "" -#: ../Doc/library/audioop.rst:239 +#: library/audioop.rst:239 msgid "" "Note that operations such as :func:`.mul` or :func:`.max` make no " "distinction between mono and stereo fragments, i.e. all samples are treated " @@ -275,7 +319,7 @@ msgid "" "that::" msgstr "" -#: ../Doc/library/audioop.rst:253 +#: library/audioop.rst:253 msgid "" "If you use the ADPCM coder to build network packets and you want your " "protocol to be stateless (i.e. to be able to tolerate packet loss) you " @@ -287,14 +331,14 @@ msgid "" "index) in 8." msgstr "" -#: ../Doc/library/audioop.rst:261 +#: library/audioop.rst:261 msgid "" "The ADPCM coders have never been tried against other ADPCM coders, only " "against themselves. It could well be that I misinterpreted the standards in " "which case they will not be interoperable with the respective standards." msgstr "" -#: ../Doc/library/audioop.rst:265 +#: library/audioop.rst:265 msgid "" "The :func:`find\\*` routines might look a bit funny at first sight. They are " "primarily meant to do echo cancellation. A reasonably fast way to do this " diff --git a/library/audit_events.po b/library/audit_events.po index 9facaffa59..f2f948e94e 100644 --- a/library/audit_events.po +++ b/library/audit_events.po @@ -3,36 +3,130 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.8\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-09-04 11:42+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-03-03 21:32+0100\n" +"Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/library/audit_events.rst:6 +#: library/audit_events.rst:6 msgid "Audit events table" -msgstr "" +msgstr "Table des évènements d'audit" -#: ../Doc/library/audit_events.rst:8 +#: library/audit_events.rst:8 +#, fuzzy msgid "" "This table contains all events raised by :func:`sys.audit` or :c:func:" -"`PySys_Audit` calls throughout the CPython runtime and the standard library." +"`PySys_Audit` calls throughout the CPython runtime and the standard " +"library. These calls were added in 3.8.0 or later (see :pep:`578`)." msgstr "" +"Cette table contient tous les évènements levés par les appels de :func:`sys." +"audit` ou :c:func:`PySys_Audit` durant l'exécution de CPython et de la " +"bibliothèque standard. Ces appels ont été ajoutés dans les versions 3.8.0 et " +"ultérieures." -#: ../Doc/library/audit_events.rst:12 +#: library/audit_events.rst:12 msgid "" "See :func:`sys.addaudithook` and :c:func:`PySys_AddAuditHook` for " "information on handling these events." msgstr "" +"Voir :func:`sys.addaudithook` et :c:func:`PySys_AddAuditHook` pour plus " +"d'informations sur la gestion de ces évènements." -#: ../Doc/library/audit_events.rst:17 +#: library/audit_events.rst:17 msgid "" "This table is generated from the CPython documentation, and may not " "represent events raised by other implementations. See your runtime specific " "documentation for actual events raised." msgstr "" +"Cette table est générée à partir de la documentation de CPython et peut ne " +"pas représenter des évènements levés par d'autres implémentations. Consultez " +"la documentation propre à votre implémentation pour connaître les évènements " +"réellement levés." + +#: library/audit_events.rst:23 +msgid "" +"The following events are raised internally and do not correspond to any " +"public API of CPython:" +msgstr "" +"Les évènements suivants sont levés en interne et ne correspondent à aucune " +"API publique de CPython:" + +#: library/audit_events.rst:27 +#, fuzzy +msgid "Audit event" +msgstr "Table des évènements d'audit" + +#: library/audit_events.rst:27 +msgid "Arguments" +msgstr "Arguments" + +#: library/audit_events.rst:29 +msgid "_winapi.CreateFile" +msgstr "_winapi.CreateFile" + +#: library/audit_events.rst:29 +msgid "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" +msgstr "" +"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " +"``flags_and_attributes``" + +#: library/audit_events.rst:33 +msgid "_winapi.CreateJunction" +msgstr "_winapi.CreateJunction" + +#: library/audit_events.rst:33 +msgid "``src_path``, ``dst_path``" +msgstr "``src_path``, ``dst_path``" + +#: library/audit_events.rst:35 +msgid "_winapi.CreateNamedPipe" +msgstr "_winapi.CreateNamedPipe" + +#: library/audit_events.rst:35 +msgid "``name``, ``open_mode``, ``pipe_mode``" +msgstr "``name``, ``open_mode``, ``pipe_mode``" + +#: library/audit_events.rst:37 +msgid "_winapi.CreatePipe" +msgstr "_winapi.CreatePipe" + +#: library/audit_events.rst:39 +msgid "_winapi.CreateProcess" +msgstr "_winapi.CreateProcess" + +#: library/audit_events.rst:39 +msgid "``application_name``, ``command_line``, ``current_directory``" +msgstr "``application_name``, ``command_line``, ``current_directory``" + +#: library/audit_events.rst:42 +msgid "_winapi.OpenProcess" +msgstr "_winapi.OpenProcess" + +#: library/audit_events.rst:42 +msgid "``process_id``, ``desired_access``" +msgstr "``process_id``, ``desired_access``" + +#: library/audit_events.rst:44 +msgid "_winapi.TerminateProcess" +msgstr "_winapi.TerminateProcess" + +#: library/audit_events.rst:44 +msgid "``handle``, ``exit_code``" +msgstr "``handle``, ``exit_code``" + +#: library/audit_events.rst:46 +msgid "ctypes.PyObj_FromPtr" +msgstr "ctypes.PyObj_FromPtr" + +#: library/audit_events.rst:46 +msgid "``obj``" +msgstr "``obj``" diff --git a/library/base64.po b/library/base64.po index 93ff72b67d..e30245af50 100644 --- a/library/base64.po +++ b/library/base64.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-03-23 09:03+0100\n" "PO-Revision-Date: 2019-08-20 15:51+0200\n" diff --git a/library/bdb.po b/library/bdb.po index ed9a1043ee..03cd5c993a 100644 --- a/library/bdb.po +++ b/library/bdb.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/library/binary.po b/library/binary.po index 5ce73d0e9e..f9ffc0e55e 100644 --- a/library/binary.po +++ b/library/binary.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-11-07 23:13+0100\n" diff --git a/library/binascii.po b/library/binascii.po index 73639845cc..7b62da8ec4 100644 --- a/library/binascii.po +++ b/library/binascii.po @@ -3,17 +3,17 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-02-25 22:48+0100\n" -"Last-Translator: Florent Bartoli \n" +"PO-Revision-Date: 2020-05-10 13:40+0200\n" +"Last-Translator: ZepmanBC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/library/binascii.rst:2 msgid ":mod:`binascii` --- Convert between binary and ASCII" @@ -248,10 +248,15 @@ msgid "" "Separator placement is counted from the right end of the output by default, " "if you wish to count from the left, supply a negative *bytes_per_sep* value." msgstr "" +"Si *sep* est spécifié, il doit s'agir d'une chaîne de caractères ou d'un " +"objet *byte*. Il sera inséré dans la sortie tous les *bytes_per_sep* octets. " +"Par défaut, l'emplacement du séparateur est compté à partir de l'extrémité " +"droite de la sortie. Si vous souhaitez compter à partir de la gauche, " +"indiquez une valeur *bytes_per_sep* négative." #: ../Doc/library/binascii.rst:173 msgid "The *sep* and *bytes_per_sep* parameters were added." -msgstr "" +msgstr "ajout des paramètres *sep* et *bytes_per_sep*." #: ../Doc/library/binascii.rst:179 msgid "" diff --git a/library/binhex.po b/library/binhex.po index c15798401a..d5d4f7599e 100644 --- a/library/binhex.po +++ b/library/binhex.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-05-27 19:40+0200\n" "PO-Revision-Date: 2018-07-29 23:42+0200\n" diff --git a/library/bisect.po b/library/bisect.po index 09b6573160..0e2083f865 100644 --- a/library/bisect.po +++ b/library/bisect.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-07-29 01:03+0200\n" @@ -136,7 +136,7 @@ msgstr "" "Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " "éléments, mais peuvent être étranges et peu naturelles à utiliser pour " "rechercher des éléments. Les cinq fonctions suivantes montrent comment les " -"transformer en recherche plus classique pour les listes triées : ::" +"transformer en recherche plus classique pour les listes triées ::" #: ../Doc/library/bisect.rst:114 msgid "Other Examples" @@ -153,7 +153,7 @@ msgstr "" "tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " "note (sous forme de lettre) correspondant à un note sous forme de points, en " "se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 vaut " -"'B', etc… : ::" +"'B', etc… ::" #: ../Doc/library/bisect.rst:130 msgid "" @@ -174,4 +174,4 @@ msgid "" "of the record in question::" msgstr "" "Il est préférable d'utiliser une liste de clefs pré-calculée pour chercher " -"l'index de l'enregistrement en question : ::" +"l'index de l'enregistrement en question ::" diff --git a/library/builtins.po b/library/builtins.po index 5a85790849..595e20fd9a 100644 --- a/library/builtins.po +++ b/library/builtins.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-07-29 00:46+0200\n" diff --git a/library/bz2.po b/library/bz2.po index 0b685eac3f..5970ab0d61 100644 --- a/library/bz2.po +++ b/library/bz2.po @@ -3,277 +3,364 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-07-29 01:07+0200\n" -"Last-Translator: Julien Palard \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-11-16 14:17+0200\n" +"Last-Translator: Stéphane HUC \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/bz2.rst:2 +#: library/bz2.rst:2 msgid ":mod:`bz2` --- Support for :program:`bzip2` compression" -msgstr "" +msgstr ":mod:`bz2` — Prise en charge de la compression :program:`bzip2`" -#: ../Doc/library/bz2.rst:12 +#: library/bz2.rst:12 msgid "**Source code:** :source:`Lib/bz2.py`" -msgstr "" +msgstr "**Code Source :** :source:`Lib/bz2.py`" -#: ../Doc/library/bz2.rst:16 +#: library/bz2.rst:16 msgid "" "This module provides a comprehensive interface for compressing and " "decompressing data using the bzip2 compression algorithm." msgstr "" +"Ce module fournit une interface complète pour compresser et décompresser les " +"données en utilisant l'algorithme de compression *bzip2*." -#: ../Doc/library/bz2.rst:19 +#: library/bz2.rst:19 msgid "The :mod:`bz2` module contains:" -msgstr "Le module :mod:`bz2` contiens :" +msgstr "Le module :mod:`bz2` contient :" -#: ../Doc/library/bz2.rst:21 +#: library/bz2.rst:21 msgid "" "The :func:`.open` function and :class:`BZ2File` class for reading and " "writing compressed files." msgstr "" +"La fonction :func:`.open` et la classe :class:`BZ2File` pour lire et écrire " +"des fichiers compressés." -#: ../Doc/library/bz2.rst:23 +#: library/bz2.rst:23 msgid "" "The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " "incremental (de)compression." msgstr "" +"Les classes :class:`BZ2Compressor` et :class:`BZ2Decompressor` pour la " +"(dé)compression incrémentielle." -#: ../Doc/library/bz2.rst:25 +#: library/bz2.rst:25 msgid "" "The :func:`compress` and :func:`decompress` functions for one-shot " "(de)compression." msgstr "" +"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " +"en une seule fois." -#: ../Doc/library/bz2.rst:28 +#: library/bz2.rst:28 msgid "" "All of the classes in this module may safely be accessed from multiple " "threads." msgstr "" +"Toutes les classes de ce module peuvent en toute sécurité être accédées " +"depuis de multiples fils d'exécution." -#: ../Doc/library/bz2.rst:32 +#: library/bz2.rst:32 msgid "(De)compression of files" msgstr "(Dé)compression de fichiers" -#: ../Doc/library/bz2.rst:36 +#: library/bz2.rst:36 msgid "" "Open a bzip2-compressed file in binary or text mode, returning a :term:`file " "object`." msgstr "" +"Ouvre un fichier compressé par *bzip2* en mode binaire ou texte, le " +"renvoyant en :term:`file object`." -#: ../Doc/library/bz2.rst:39 +#: library/bz2.rst:39 msgid "" "As with the constructor for :class:`BZ2File`, the *filename* argument can be " "an actual filename (a :class:`str` or :class:`bytes` object), or an existing " "file object to read from or write to." msgstr "" +"Tout comme avec le constructeur pour la classe :class:`BZ2File`, l'argument " +"*filename* peut être un nom de fichier réel (un objet :class:`str` ou :class:" +"`bytes`), ou un objet fichier existant à lire ou à écrire." -#: ../Doc/library/bz2.rst:43 +#: library/bz2.rst:43 msgid "" "The *mode* argument can be any of ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, " "``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " "``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." msgstr "" +"L'argument *mode* peut valoir ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, ``'x'``, " +"``'xb'``, ``'a'`` ou ``'ab'`` pour le mode binaire, ou ``'rt'``, ``'wt'``, " +"``'xt'`` ou ``'at'`` pour le mode texte. Il vaut par défaut ``'rb'``." -#: ../Doc/library/bz2.rst:47 +#: library/bz2.rst:47 msgid "" "The *compresslevel* argument is an integer from 1 to 9, as for the :class:" "`BZ2File` constructor." msgstr "" +"L'argument *compresslevel* est un entier de 1 à 9, comme pour le " +"constructeur :class:`BZ2File`." -#: ../Doc/library/bz2.rst:50 +#: library/bz2.rst:50 msgid "" "For binary mode, this function is equivalent to the :class:`BZ2File` " "constructor: ``BZ2File(filename, mode, compresslevel=compresslevel)``. In " "this case, the *encoding*, *errors* and *newline* arguments must not be " "provided." msgstr "" +"Pour le mode binaire, cette fonction est équivalente au constructeur :class:" +"`BZ2File` : ``BZ2File(filename, mode, compresslevel=compresslevel)``. Dans " +"ce cas, les arguments *encoding*, *errors* et *newline* arguments ne doivent " +"pas être fournis." -#: ../Doc/library/bz2.rst:55 +#: library/bz2.rst:55 msgid "" "For text mode, a :class:`BZ2File` object is created, and wrapped in an :" "class:`io.TextIOWrapper` instance with the specified encoding, error " "handling behavior, and line ending(s)." msgstr "" +"Pour le mode texte, un objet :class:`BZ2File` est créé et encapsulé dans une " +"instance :class:`io.TextIOWrapper` avec l'encodage spécifié, le comportement " +"de gestion des erreurs et les fins de ligne." -#: ../Doc/library/bz2.rst:61 ../Doc/library/bz2.rst:131 +#: library/bz2.rst:131 msgid "The ``'x'`` (exclusive creation) mode was added." -msgstr "Le mode ``'x'`` (création exclusive) est créé." +msgstr "Le mode ``'x'`` (création exclusive) est ajouté." -#: ../Doc/library/bz2.rst:64 ../Doc/library/bz2.rst:138 +#: library/bz2.rst:138 msgid "Accepts a :term:`path-like object`." msgstr "Accepte un :term:`path-like object`." -#: ../Doc/library/bz2.rst:70 +#: library/bz2.rst:70 msgid "Open a bzip2-compressed file in binary mode." msgstr "Ouvre un fichier *bzip2* en mode binaire." -#: ../Doc/library/bz2.rst:72 +#: library/bz2.rst:72 msgid "" "If *filename* is a :class:`str` or :class:`bytes` object, open the named " "file directly. Otherwise, *filename* should be a :term:`file object`, which " "will be used to read or write the compressed data." msgstr "" +"Si *filename* est un objet :class:`str` ou :class:`bytes`, ouvre le nom de " +"fichier directement. Autrement, *filename* doit être un :term:`file object`, " +"qui est utilisé pour lire ou écrire les données compressées." -#: ../Doc/library/bz2.rst:76 +#: library/bz2.rst:76 msgid "" "The *mode* argument can be either ``'r'`` for reading (default), ``'w'`` for " "overwriting, ``'x'`` for exclusive creation, or ``'a'`` for appending. These " "can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " "respectively." msgstr "" +"L'argument *mode* peut être soit ``'r'`` pour lire (par défaut), ``'w'`` " +"pour écraser, ``'x'`` pour créer exclusivement, ou ``'a'`` pour ajouter. Ils " +"peuvent également être écrits respectivement comme ``'rb'``, ``'wb'``, " +"``'xb'`` et ``'ab'``." -#: ../Doc/library/bz2.rst:81 +#: library/bz2.rst:81 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 *filename* est un objet fichier (plutôt que le nom de fichier réel), le " +"mode ``'w'`` ne tronque pas le fichier, mais équivaut à ``'a'``." -#: ../Doc/library/bz2.rst:84 +#: library/bz2.rst:84 msgid "" "The *buffering* argument is ignored. Its use is deprecated since Python 3.0." msgstr "" +"L'argument *buffering* est ignoré. Son usage est déprécié depuis Python 3.0." -#: ../Doc/library/bz2.rst:86 +#: library/bz2.rst:86 msgid "" "If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be an integer between " "``1`` and ``9`` specifying the level of compression: ``1`` produces the " "least compression, and ``9`` (default) produces the most compression." msgstr "" +"Si *mode* est ``'w'`` ou ``'a'``, *compresslevel* peut être un entier entre " +"``1`` et ``9`` spécifiant le niveau de compression : ``1`` utilise la " +"compression la moins forte, et ``9`` (par défaut) la compression la plus " +"forte." -#: ../Doc/library/bz2.rst:90 +#: library/bz2.rst:90 msgid "" "If *mode* is ``'r'``, the input file may be the concatenation of multiple " "compressed streams." msgstr "" +"Si *mode* est ``'r'``, le fichier d'entrée peut être la concaténation de " +"plusieurs flux compressés." -#: ../Doc/library/bz2.rst:93 +#: library/bz2.rst:93 msgid "" ":class:`BZ2File` provides all of the members specified by the :class:`io." "BufferedIOBase`, except for :meth:`detach` and :meth:`truncate`. Iteration " "and the :keyword:`with` statement are supported." msgstr "" +":class:`BZ2File` fournit tous les membres spécifiés par la classe :class:`io." +"BufferedIOBase`, excepté les méthodes :meth:`detach` et :meth:`truncate`. " +"L'itération et l'instruction :keyword:`with` sont prises en charge." -#: ../Doc/library/bz2.rst:97 +#: library/bz2.rst:97 msgid ":class:`BZ2File` also provides the following method:" -msgstr "" +msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" -#: ../Doc/library/bz2.rst:101 +#: library/bz2.rst:101 msgid "" "Return buffered data without advancing the file position. At least one byte " "of data will be returned (unless at EOF). The exact number of bytes returned " "is unspecified." msgstr "" +"Renvoie des données en mémoire tampon sans avancer la position du fichier. " +"Au moins un octet de donnée (sauf l'EOF) est renvoyé. Le nombre exact " +"d'octets renvoyés n'est pas spécifié." -#: ../Doc/library/bz2.rst:105 +#: library/bz2.rst:105 msgid "" "While calling :meth:`peek` does not change the file position of the :class:" "`BZ2File`, it may change the position of the underlying file object (e.g. if " "the :class:`BZ2File` was constructed by passing a file object for " "*filename*)." msgstr "" +"Bien que l'appel à la méthode :meth:`peek` ne change pas la position du " +"fichier de la classe :class:`BZ2File`, il peut changer la position de " +"l'objet fichier sous-jacent (e.g. si la classe :class:`BZ2File` a été " +"construite en passant un objet fichier à *filename*)." -#: ../Doc/library/bz2.rst:113 +#: library/bz2.rst:113 msgid "The keyword argument *buffering* was deprecated and is now ignored." msgstr "" -#: ../Doc/library/bz2.rst:116 +#: library/bz2.rst:116 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." -#: ../Doc/library/bz2.rst:119 +#: library/bz2.rst:119 msgid "" "The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :" "meth:`read1` and :meth:`readinto` methods were added." msgstr "" +"Les méthodes :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:" +"`writable`, :meth:`read1` et :meth:`readinto` ont été ajoutées." -#: ../Doc/library/bz2.rst:123 +#: library/bz2.rst:123 msgid "" "Support was added for *filename* being a :term:`file object` instead of an " "actual filename." msgstr "" +"La gestion de *filename* comme :term:`file object` au lieu d'un nom de " +"fichier réel a été ajoutée." -#: ../Doc/library/bz2.rst:127 +#: library/bz2.rst:127 msgid "" "The ``'a'`` (append) mode was added, along with support for reading multi-" "stream files." msgstr "" +"Le mode ``'a'`` (ajout) a été ajouté, avec la prise en charge de la lecture " +"des fichiers *multiflux*." -#: ../Doc/library/bz2.rst:134 +#: library/bz2.rst:134 msgid "" "The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " "``None``." msgstr "" +"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " +"``None``." -#: ../Doc/library/bz2.rst:143 +#: library/bz2.rst:143 msgid "Incremental (de)compression" -msgstr "(Dé)compression incrémentale" +msgstr "(Dé)compression incrémentielle" -#: ../Doc/library/bz2.rst:147 +#: library/bz2.rst:147 msgid "" "Create a new compressor object. This object may be used to compress data " "incrementally. For one-shot compression, use the :func:`compress` function " "instead." msgstr "" +"Crée un nouvel objet compresseur. Cet objet peut être utilisé pour " +"compresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`compress`." -#: ../Doc/library/bz2.rst:151 ../Doc/library/bz2.rst:239 +#: library/bz2.rst:239 msgid "" "*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " "default is ``9``." msgstr "" +"*compresslevel*, s'il est fourni, doit être un entier entre ``1`` et ``9``. " +"Sa valeur par défaut est ``9``." -#: ../Doc/library/bz2.rst:156 +#: library/bz2.rst:156 msgid "" "Provide data to the compressor object. Returns a chunk of compressed data if " "possible, or an empty byte string otherwise." msgstr "" +"Fournit la donnée à l'objet compresseur. Renvoie un bloc de données " +"compressées si possible, ou autrement une chaîne d'octet vide." -#: ../Doc/library/bz2.rst:159 +#: library/bz2.rst:159 msgid "" "When you have finished providing data to the compressor, call the :meth:" "`flush` method to finish the compression process." msgstr "" +"Quand vous avez fini de fournir des données au compresseur, appelez la " +"méthode :meth:`flush` pour finir le processus de compression." -#: ../Doc/library/bz2.rst:165 +#: library/bz2.rst:165 msgid "" "Finish the compression process. Returns the compressed data left in internal " "buffers." msgstr "" +"Finit le processus de compression. Renvoie la donnée compressée restante " +"dans les tampons internes." -#: ../Doc/library/bz2.rst:168 +#: library/bz2.rst:168 msgid "" "The compressor object may not be used after this method has been called." msgstr "" +"L'objet compresseur ne peut pas être utilisé après que cette méthode a été " +"appelée." -#: ../Doc/library/bz2.rst:173 +#: library/bz2.rst:173 msgid "" "Create a new decompressor object. This object may be used to decompress data " "incrementally. For one-shot compression, use the :func:`decompress` function " "instead." msgstr "" +"Crée un nouvel objet décompresseur. Cet objet peut être utilisé pour " +"décompresser les données de manière incrémentielle. Pour une compression en " +"une seule fois, utilisez à la place la fonction :func:`decompress`." -#: ../Doc/library/bz2.rst:178 +#: library/bz2.rst:178 msgid "" "This class does not transparently handle inputs containing multiple " "compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " "need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " "must use 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, à la différence de :func:`decompress` et :class:" +"`BZ2File`. Si vous avez besoin de décompresser une entrée *multiflux* avec " +"la classe :class:`BZ2Decompressor`, vous devez utiliser un nouveau " +"décompresseur pour chaque flux." -#: ../Doc/library/bz2.rst:185 +#: library/bz2.rst:185 msgid "" "Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " "as bytes. Some of *data* may be buffered internally, for use in later calls " "to :meth:`decompress`. The returned data should be concatenated with the " "output of any previous calls to :meth:`decompress`." msgstr "" +"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " +"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " +"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " +"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " +"sortie des appels précédents à la méthode :meth:`decompress`." -#: ../Doc/library/bz2.rst:191 +#: library/bz2.rst:191 msgid "" "If *max_length* is nonnegative, returns at most *max_length* bytes of " "decompressed data. If this limit is reached and further output can be " @@ -281,104 +368,135 @@ msgid "" "this case, the next call to :meth:`~.decompress` may provide *data* as " "``b''`` to obtain more of the output." msgstr "" +"Si *max_length* est positif, renvoie au plus *max_length* octets de données " +"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " +"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " +"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " +"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." -#: ../Doc/library/bz2.rst:198 +#: library/bz2.rst:198 msgid "" "If all of the input data was decompressed and returned (either because this " "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 entrées ont été décompressées et renvoyées (soit parce " +"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " +"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." -#: ../Doc/library/bz2.rst:203 +#: library/bz2.rst:203 msgid "" "Attempting to decompress data after the end of stream is reached raises an " "`EOFError`. Any data found after the end of the stream is ignored and saved " "in the :attr:`~.unused_data` attribute." msgstr "" +"Essayer de décompresser des données après que la fin du flux soit atteinte " +"lève une erreur `EOFError`. Toute donnée trouvée après la fin du flux est " +"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." -#: ../Doc/library/bz2.rst:207 +#: library/bz2.rst:207 msgid "Added the *max_length* parameter." msgstr "Ajout du paramètre *max_length*." -#: ../Doc/library/bz2.rst:212 +#: library/bz2.rst:212 msgid "``True`` if the end-of-stream marker has been reached." -msgstr "" +msgstr "``True`` si le marqueur de fin de flux a été atteint." -#: ../Doc/library/bz2.rst:219 +#: library/bz2.rst:219 msgid "Data found after the end of the compressed stream." msgstr "Donnée trouvée après la fin du flux compressé." -#: ../Doc/library/bz2.rst:221 +#: library/bz2.rst:221 msgid "" "If this attribute is accessed before the end of the stream has been reached, " "its value will be ``b''``." msgstr "" +"Si l'attribut est accédé avant que la fin du flux ait été atteint, sa valeur " +"sera ``b''``." -#: ../Doc/library/bz2.rst:226 +#: library/bz2.rst:226 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` peut fournir plus de données " +"décompressées avant l'acquisition d'une nouvelle entrée non compressée." -#: ../Doc/library/bz2.rst:233 +#: library/bz2.rst:233 msgid "One-shot (de)compression" msgstr "(Dé)compression en une fois" -#: ../Doc/library/bz2.rst:237 +#: library/bz2.rst:237 msgid "Compress *data*, a :term:`bytes-like object `." -msgstr "" +msgstr "Compresse *data*, un :term:`bytes-like object `." -#: ../Doc/library/bz2.rst:242 +#: library/bz2.rst:242 msgid "For incremental compression, use a :class:`BZ2Compressor` instead." msgstr "" +"Pour la compression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Compressor`." -#: ../Doc/library/bz2.rst:247 +#: library/bz2.rst:247 msgid "Decompress *data*, a :term:`bytes-like object `." -msgstr "" +msgstr "Décompresse *data*, un :term:`bytes-like object `." -#: ../Doc/library/bz2.rst:249 +#: library/bz2.rst:249 msgid "" "If *data* is the concatenation of multiple compressed streams, decompress " "all of the streams." msgstr "" +"Si *data* est la concaténation de multiples flux compressés, décompresse " +"tous les flux." -#: ../Doc/library/bz2.rst:252 +#: library/bz2.rst:252 msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." msgstr "" +"Pour une décompression incrémentielle, utilisez à la place la classe :class:" +"`BZ2Decompressor`." -#: ../Doc/library/bz2.rst:254 +#: library/bz2.rst:254 msgid "Support for multi-stream inputs was added." -msgstr "" +msgstr "Prise en charge des entrées *multiflux*." -#: ../Doc/library/bz2.rst:260 +#: library/bz2.rst:260 msgid "Examples of usage" msgstr "Exemples d'utilisation" -#: ../Doc/library/bz2.rst:262 +#: library/bz2.rst:262 msgid "Below are some examples of typical usage of the :mod:`bz2` module." msgstr "" +"Ci-dessous, nous présentons quelques exemples typiques de l'utilisation du " +"module :mod:`bz2`." -#: ../Doc/library/bz2.rst:264 +#: library/bz2.rst:264 msgid "" "Using :func:`compress` and :func:`decompress` to demonstrate round-trip " "compression:" msgstr "" +"Utilise les fonctions :func:`compress` et :func:`decompress` pour démontrer " +"une compression aller-retour :" -#: ../Doc/library/bz2.rst:285 +#: library/bz2.rst:282 msgid "Using :class:`BZ2Compressor` for incremental compression:" msgstr "" +"Utilise la classe :class:`BZ2Compressor` pour une compression " +"incrémentielle :" -#: ../Doc/library/bz2.rst:304 +#: library/bz2.rst:300 msgid "" -"The example above uses a very \"nonrandom\" stream of data (a stream of `b\"z" -"\"` chunks). Random data tends to compress poorly, while ordered, " +"The example above uses a very \"nonrandom\" stream of data (a stream of " +"`b\"z\"` chunks). Random data tends to compress poorly, while ordered, " "repetitive data usually yields a high compression ratio." msgstr "" +"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un " +"flux de blocs de `b\"z\"`). Les données aléatoires ont tendance à mal se " +"compresser, alors que les données répétitives ou ordonnées donnent " +"généralement un taux de compression élevé." -#: ../Doc/library/bz2.rst:308 -#, fuzzy +#: library/bz2.rst:304 msgid "Writing and reading a bzip2-compressed file in binary mode:" -msgstr "Ouvre un fichier *bzip2* en mode binaire." +msgstr "" +"Écriture et lecture en mode binaire d'un fichier compressé avec *bzip2* :" #~ msgid "Compress *data*." #~ msgstr "Compresse *data*." diff --git a/library/calendar.po b/library/calendar.po index 6bfccf1c6f..a41d7ac507 100644 --- a/library/calendar.po +++ b/library/calendar.po @@ -3,27 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" -"PO-Revision-Date: 2019-03-20 08:32+0100\n" -"Last-Translator: Alicia BERRAHMA \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-03 15:34+0200\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/library/calendar.rst:2 +#: library/calendar.rst:2 msgid ":mod:`calendar` --- General calendar-related functions" -msgstr "" +msgstr ":mod:`calendar` — Fonctions calendaires générales" -#: ../Doc/library/calendar.rst:10 +#: library/calendar.rst:10 msgid "**Source code:** :source:`Lib/calendar.py`" msgstr "**Code source :** :source:`Lib/calendar.py`" -#: ../Doc/library/calendar.rst:14 +#: library/calendar.rst:14 msgid "" "This module allows you to output calendars like the Unix :program:`cal` " "program, and provides additional useful functions related to the calendar. " @@ -41,7 +41,7 @@ msgstr "" "la semaine. Les paramètres pour spécifier les dates sont donnés sous forme " "de nombres entiers. Voir aussi les modules :mod:`datetime` et :mod:`time`." -#: ../Doc/library/calendar.rst:22 +#: library/calendar.rst:22 msgid "" "The functions and classes defined in this module use an idealized calendar, " "the current Gregorian calendar extended indefinitely in both directions. " @@ -60,7 +60,7 @@ msgstr "" "comme prescrit par la norme ISO 8601. L'année 0 est 1 avant JC, l'année `-1` " "est 2 avant JC et ainsi de suite." -#: ../Doc/library/calendar.rst:33 +#: library/calendar.rst:33 msgid "" "Creates a :class:`Calendar` object. *firstweekday* is an integer specifying " "the first day of the week. ``0`` is Monday (the default), ``6`` is Sunday." @@ -69,7 +69,7 @@ msgstr "" "premier jour de la semaine, valant par défaut ``0`` (lundi), pouvant aller " "jusqu'à ``6`` (dimanche)." -#: ../Doc/library/calendar.rst:36 +#: library/calendar.rst:36 msgid "" "A :class:`Calendar` object provides several methods that can be used for " "preparing the calendar data for formatting. This class doesn't do any " @@ -79,11 +79,11 @@ msgstr "" "pour préparer les données du calendrier pour le formatage. Cette classe ne " "fait pas de formatage elle-même. Il s'agit du travail des sous-classes." -#: ../Doc/library/calendar.rst:41 +#: library/calendar.rst:41 msgid ":class:`Calendar` instances have the following methods:" msgstr "Les instances de :class:`Calendar` ont les méthodes suivantes :" -#: ../Doc/library/calendar.rst:45 +#: library/calendar.rst:45 msgid "" "Return an iterator for the week day numbers that will be used for one week. " "The first value from the iterator will be the same as the value of the :attr:" @@ -92,7 +92,7 @@ msgstr "" "Renvoie un itérateur sur les numéros des jours d'une semaine. La première " "valeur est donc la même que la valeur de la propriété :attr:`firstweekday`." -#: ../Doc/library/calendar.rst:52 +#: library/calendar.rst:52 msgid "" "Return an iterator for the month *month* (1--12) in the year *year*. This " "iterator will return all days (as :class:`datetime.date` objects) for the " @@ -104,7 +104,7 @@ msgstr "" "de :class:`datetime.date`) ainsi que tous les jours avant le début du mois " "et après la fin du mois nécessaires pour obtenir des semaines complètes." -#: ../Doc/library/calendar.rst:60 +#: library/calendar.rst:60 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -116,7 +116,7 @@ msgstr "" "date`. Les jours renvoyés sont simplement les numéros des jours du mois. " "Pour les jours en dehors du mois spécifié, le numéro du jour est ``0``." -#: ../Doc/library/calendar.rst:68 +#: library/calendar.rst:68 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -128,7 +128,7 @@ msgstr "" "Les jours renvoyés sont des paires composées du numéro du jour dans le mois " "et du numéro du jour dans la semaine." -#: ../Doc/library/calendar.rst:76 +#: library/calendar.rst:76 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -140,7 +140,7 @@ msgstr "" "date`. Les jours sont renvoyés sous forme de triplets composés du numéro de " "l'année, du mois et du jour dans le mois." -#: ../Doc/library/calendar.rst:86 +#: library/calendar.rst:86 msgid "" "Return an iterator for the month *month* in the year *year* similar to :meth:" "`itermonthdates`, but not restricted by the :class:`datetime.date` range. " @@ -152,7 +152,7 @@ msgstr "" "date`. Le jours sont renvoyés sous forme de quadruplets contenant le numéro " "de l'année, du mois, du jour du mois et du jour de la semaine." -#: ../Doc/library/calendar.rst:96 +#: library/calendar.rst:96 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven :class:`datetime.date` objects." @@ -160,7 +160,7 @@ msgstr "" "Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " "Les semaines sont des listes de sept objets :class:`datetime.date`." -#: ../Doc/library/calendar.rst:102 +#: library/calendar.rst:102 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven tuples of day numbers and weekday numbers." @@ -169,7 +169,7 @@ msgstr "" "Les semaines sont des listes de sept paires contenant le numéro du jour dans " "le mois et du numéro du jour dans la semaine." -#: ../Doc/library/calendar.rst:109 +#: library/calendar.rst:109 msgid "" "Return a list of the weeks in the month *month* of the *year* as full " "weeks. Weeks are lists of seven day numbers." @@ -177,7 +177,7 @@ msgstr "" "Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " "Les semaines sont une liste de sept numéros de jours." -#: ../Doc/library/calendar.rst:115 +#: library/calendar.rst:115 msgid "" "Return the data for the specified year ready for formatting. The return " "value is a list of month rows. Each month row contains up to *width* months " @@ -190,7 +190,7 @@ msgstr "" "de 4 à 6 semaines et chaque semaine 1 à 7 jours. Les jours sont des objets :" "class:`datetime.date`." -#: ../Doc/library/calendar.rst:123 +#: library/calendar.rst:123 msgid "" "Return the data for the specified year ready for formatting (similar to :" "meth:`yeardatescalendar`). Entries in the week lists are tuples of day " @@ -201,7 +201,7 @@ msgstr "" "contenant le numéro du jour du mois et le numéro du jour de la semaine. Les " "numéro des jours en dehors de ce mois sont à zéro." -#: ../Doc/library/calendar.rst:130 +#: library/calendar.rst:130 msgid "" "Return the data for the specified year ready for formatting (similar to :" "meth:`yeardatescalendar`). Entries in the week lists are day numbers. Day " @@ -211,16 +211,16 @@ msgstr "" "meth:`yeardatescalendar`). Les listes de semaines contiennent des numéros de " "jours. Les numéros de jours en dehors de ce mois sont de zéro." -#: ../Doc/library/calendar.rst:137 +#: library/calendar.rst:137 msgid "This class can be used to generate plain text calendars." msgstr "" "Cette classe peut être utilisée pour générer des calendriers en texte brut." -#: ../Doc/library/calendar.rst:139 +#: library/calendar.rst:139 msgid ":class:`TextCalendar` instances have the following methods:" msgstr "Les instances :class:`TextCalendar` exposent les méthodes suivantes :" -#: ../Doc/library/calendar.rst:143 +#: library/calendar.rst:143 msgid "" "Return a month's calendar in a multi-line string. If *w* is provided, it " "specifies the width of the date columns, which are centered. If *l* is " @@ -234,12 +234,12 @@ msgstr "" "Le résultat varie en fonction du premier jour de la semaine spécifié dans le " "constructeur ou défini par la méthode :meth:`setfirstweekday`." -#: ../Doc/library/calendar.rst:152 +#: library/calendar.rst:152 msgid "Print a month's calendar as returned by :meth:`formatmonth`." msgstr "" "Affiche le calendrier d'un mois tel que renvoyé par :meth:`formatmonth`." -#: ../Doc/library/calendar.rst:157 +#: library/calendar.rst:157 msgid "" "Return a *m*-column calendar for an entire year as a multi-line string. " "Optional parameters *w*, *l*, and *c* are for date column width, lines per " @@ -256,35 +256,40 @@ msgstr "" "méthode :meth:`setfirstweekday`. La première année pour laquelle un " "calendrier peut être généré, dépend de la plateforme." -#: ../Doc/library/calendar.rst:167 +#: library/calendar.rst:167 msgid "" "Print the calendar for an entire year as returned by :meth:`formatyear`." msgstr "" "Affiche le calendrier pour une année entière comme renvoyé par :meth:" "`formatyear`." -#: ../Doc/library/calendar.rst:172 +#: library/calendar.rst:172 msgid "This class can be used to generate HTML calendars." msgstr "Cette classe peut être utilisée pour générer des calendriers HTML." -#: ../Doc/library/calendar.rst:175 +#: library/calendar.rst:175 msgid ":class:`!HTMLCalendar` instances have the following methods:" msgstr "" "Les instances de :class:`!HTMLCalendar` utilisent les méthodes suivantes :" -#: ../Doc/library/calendar.rst:179 +#: library/calendar.rst:179 msgid "" "Return a month's calendar as an HTML table. If *withyear* is true the year " "will be included in the header, otherwise just the month name will be used." msgstr "" +"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " +"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " +"mois sera utilisé." -#: ../Doc/library/calendar.rst:186 +#: library/calendar.rst:186 msgid "" "Return a year's calendar as an HTML table. *width* (defaulting to 3) " "specifies the number of months per row." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une table HTML. *width* " +"(par défaut à 3) spécifie le nombre de mois par ligne." -#: ../Doc/library/calendar.rst:192 +#: library/calendar.rst:192 msgid "" "Return a year's calendar as a complete HTML page. *width* (defaulting to 3) " "specifies the number of months per row. *css* is the name for the cascading " @@ -292,173 +297,247 @@ msgid "" "be used. *encoding* specifies the encoding to be used for the output " "(defaulting to the system default encoding)." msgstr "" +"Renvoie le calendrier d'une année sous la forme d'une page HTML complète. " +"*width* (par défaut à 3) spécifie le nombre de mois par ligne. *css* est le " +"nom de la feuille de style en cascade à utiliser. :const:`None` peut être " +"passé si aucune feuille de style ne doit être utilisée. *encoding* spécifie " +"l'encodage à utiliser pour les données de sortie (par défaut l'encodage par " +"défaut du système)." -#: ../Doc/library/calendar.rst:199 +#: library/calendar.rst:199 msgid "" ":class:`!HTMLCalendar` has the following attributes you can override to " "customize the CSS classes used by the calendar:" msgstr "" +":class:`!HTMLCalendar` possède les attributs suivants que vous pouvez " +"surcharger pour personnaliser les classes CSS utilisées par le calendrier :" -#: ../Doc/library/calendar.rst:204 +#: library/calendar.rst:204 msgid "" "A list of CSS classes used for each weekday. The default class list is::" msgstr "" +"Une liste de classes CSS utilisées pour chaque jour de la semaine. La liste " +"par défaut de la classe est ::" -#: ../Doc/library/calendar.rst:208 +#: library/calendar.rst:208 msgid "more styles can be added for each day::" -msgstr "" +msgstr "davantage de styles peuvent être ajoutés pour chaque jour ::" -#: ../Doc/library/calendar.rst:212 +#: library/calendar.rst:212 msgid "Note that the length of this list must be seven items." -msgstr "" +msgstr "Notez que la longueur de cette liste doit être de sept éléments." -#: ../Doc/library/calendar.rst:217 +#: library/calendar.rst:217 msgid "The CSS class for a weekday occurring in the previous or coming month." msgstr "" +"La classe CSS pour le jour de la semaine apparaissant dans le mois précédent " +"ou à venir." -#: ../Doc/library/calendar.rst:224 +#: library/calendar.rst:224 msgid "" "A list of CSS classes used for weekday names in the header row. The default " "is the same as :attr:`cssclasses`." msgstr "" +"Une liste de classes CSS utilisées pour les noms des jours de la semaine " +"dans la ligne d'en-tête. Par défaut les mêmes que :attr:`cssclasses`." -#: ../Doc/library/calendar.rst:232 +#: library/calendar.rst:232 msgid "" "The month's head CSS class (used by :meth:`formatmonthname`). The default " "value is ``\"month\"``." msgstr "" +"La classe CSS du mois en en-tête (utilisé par :meth:`formatmonthname`). La " +"valeur par défaut est ``\"month\"``." -#: ../Doc/library/calendar.rst:240 +#: library/calendar.rst:240 msgid "" "The CSS class for the whole month's table (used by :meth:`formatmonth`). The " "default value is ``\"month\"``." msgstr "" +"La classe CSS pour la table du mois entière (utilisé par :meth:" +"`formatmonth`). La valeur par défaut est ``\"month\"``." -#: ../Doc/library/calendar.rst:248 +#: library/calendar.rst:248 msgid "" "The CSS class for the whole year's table of tables (used by :meth:" "`formatyear`). The default value is ``\"year\"``." msgstr "" +"La classe CSS pour la table entière des tables de l'année (utilisé par :meth:" +"`formatyear`). La valeur par défaut est ``\"year\"``." -#: ../Doc/library/calendar.rst:256 +#: library/calendar.rst:256 msgid "" "The CSS class for the table head for the whole year (used by :meth:" "`formatyear`). The default value is ``\"year\"``." msgstr "" +"La classe CSS pour l'en-tête de la table pour l'année entière (utilisé par :" +"meth:`formatyear`). La valeur par défaut est ``\"year\"``." -#: ../Doc/library/calendar.rst:262 +#: library/calendar.rst:262 msgid "" "Note that although the naming for the above described class attributes is " "singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the " "single CSS class with a space separated list of CSS classes, for example::" msgstr "" +"Notez que même si le nommage ci-dessus des attributs de classe est au " +"singulier (p. ex. ``cssclass_month`` ``cssclass_noday``), on peut remplacer " +"la seule classe CSS par une liste de classes CSS séparées par une espace, " +"par exemple ::" -#: ../Doc/library/calendar.rst:268 +#: library/calendar.rst:268 msgid "Here is an example how :class:`!HTMLCalendar` can be customized::" msgstr "" +"Voici un exemple de comment peut être personnalisée :class:`!HTMLCalendar` ::" -#: ../Doc/library/calendar.rst:280 +#: library/calendar.rst:280 msgid "" "This subclass of :class:`TextCalendar` can be passed a locale name in the " "constructor and will return month and weekday names in the specified locale. " "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Le constructeur de cette sous-classe de :class:`TextCalendar` accepte un " +"paramètre régional *locale* : une langue au format ``\"fr_FR.UTF-8\"``, et " +"renvoie les noms de mois et de jours de la semaine traduits dans cette " +"langue. Si ce lieu possède un encodage, toutes les chaînes contenant des " +"noms de mois ou de jours de la semaine seront renvoyées en Unicode." -#: ../Doc/library/calendar.rst:288 +#: library/calendar.rst:288 msgid "" "This subclass of :class:`HTMLCalendar` can be passed a locale name in the " "constructor and will return month and weekday names in the specified locale. " "If this locale includes an encoding all strings containing month and weekday " "names will be returned as unicode." msgstr "" +"Cette sous-classe de :class:`HTMLCalendar` peut recevoir un nom de lieu dans " +"le constructeur et renvoie les noms de mois et de jours de la semaine selon " +"le lieu spécifié. Si ce lieu possède un encodage, toutes les chaînes " +"contenant des noms de mois ou de jours de la semaine seront renvoyées en " +"Unicode." -#: ../Doc/library/calendar.rst:295 +#: library/calendar.rst:295 msgid "" "The :meth:`formatweekday` and :meth:`formatmonthname` methods of these two " "classes temporarily change the current locale to the given *locale*. " "Because the current locale is a process-wide setting, they are not thread-" "safe." msgstr "" +"Les méthodes :meth:`formatweekday` et :meth:`formatmonthname` de ces deux " +"classes changent temporairement le paramètre régional courant pour le " +"paramètre donné via *locale* . Comme le paramètre régional est un réglage de " +"l'ensemble du processus, elles ne sont pas utilisables de manière sûre avec " +"les programmes à fils d'exécution multiples." -#: ../Doc/library/calendar.rst:300 +#: library/calendar.rst:300 msgid "For simple text calendars this module provides the following functions." msgstr "" +"Pour les calendriers texte simples ce module fournit les fonctions suivantes." -#: ../Doc/library/calendar.rst:304 +#: library/calendar.rst:304 msgid "" "Sets the weekday (``0`` is Monday, ``6`` is Sunday) to start each week. The " "values :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:" "`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, and :const:`SUNDAY` are " "provided for convenience. For example, to set the first weekday to Sunday::" msgstr "" +"Fixe le jour de la semaine (``0`` pour lundi, ``6`` pour dimanche) qui " +"débute chaque semaine. Les valeurs :const:`MONDAY`, :const:`TUESDAY`, :const:" +"`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, et :" +"const:`SUNDAY` sont fournies par commodité. Par exemple, pour fixer le " +"premier jour de la semaine à dimanche ::" -#: ../Doc/library/calendar.rst:315 +#: library/calendar.rst:315 msgid "Returns the current setting for the weekday to start each week." msgstr "" +"Renvoie le réglage courant pour le jour de la semaine débutant chaque " +"semaine." -#: ../Doc/library/calendar.rst:320 +#: library/calendar.rst:320 msgid "" "Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." msgstr "" +"Renvoie :const:`True` si *year* est une année bissextile, sinon :const:" +"`False`." -#: ../Doc/library/calendar.rst:325 +#: library/calendar.rst:325 msgid "" "Returns the number of leap years in the range from *y1* to *y2* (exclusive), " "where *y1* and *y2* are years." msgstr "" +"Renvoie le nombre d'années bissextiles dans la période de *y1* à *y2* (non " +"inclus), où *y1* et *y2* sont des années." -#: ../Doc/library/calendar.rst:328 +#: library/calendar.rst:328 msgid "This function works for ranges spanning a century change." msgstr "" +"Cette fonction marche pour les périodes couvrant un changement de siècle." -#: ../Doc/library/calendar.rst:333 +#: library/calendar.rst:333 msgid "" "Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " "*month* (``1``--``12``), *day* (``1``--``31``)." msgstr "" +"Renvoie le jour de la semaine (``0`` pour lundi) pour *year* (``1970``-- …), " +"*month* (``1``--``12``), *day* (``1``--``31``)." -#: ../Doc/library/calendar.rst:339 +#: library/calendar.rst:339 msgid "" "Return a header containing abbreviated weekday names. *n* specifies the " "width in characters for one weekday." msgstr "" +"Renvoie un en-tête contenant les jours de la semaine en abrégé. *n* spécifie " +"la largeur en caractères pour un jour de la semaine." -#: ../Doc/library/calendar.rst:345 +#: library/calendar.rst:345 msgid "" "Returns weekday of first day of the month and number of days in month, for " "the specified *year* and *month*." msgstr "" +"Renvoie le jour de la semaine correspondant au premier jour du mois et le " +"nombre de jours dans le mois, pour l'année *year* et le mois *month* " +"spécifiés." -#: ../Doc/library/calendar.rst:351 +#: library/calendar.rst:351 +#, fuzzy msgid "" "Returns a matrix representing a month's calendar. Each row represents a " -"week; days outside of the month a represented by zeros. Each week begins " +"week; days outside of the month are represented by zeros. Each week begins " "with Monday unless set by :func:`setfirstweekday`." msgstr "" +"Renvoie une matrice représentant le calendrier d'un mois. Chaque ligne " +"représente une semaine ; les jours en dehors du mois sont représentés par " +"des zéros. Chaque semaine débute avec le lundi à moins de l'avoir modifié " +"avec :func:`setfirstweekday`." -#: ../Doc/library/calendar.rst:358 +#: library/calendar.rst:358 msgid "Prints a month's calendar as returned by :func:`month`." -msgstr "" +msgstr "Affiche le calendrier d'un mois tel que renvoyé par :func:`month`." -#: ../Doc/library/calendar.rst:363 +#: library/calendar.rst:363 msgid "" "Returns a month's calendar in a multi-line string using the :meth:" "`formatmonth` of the :class:`TextCalendar` class." msgstr "" +"Renvoie le calendrier d'un mois dans une chaîne multi-lignes en utilisant la " +"méthode :meth:`formatmonth` de la classe :class:`TextCalendar`." -#: ../Doc/library/calendar.rst:369 +#: library/calendar.rst:369 msgid "" "Prints the calendar for an entire year as returned by :func:`calendar`." msgstr "" +"Affiche le calendrier pour une année entière tel que renvoyé par :func:" +"`calendar`." -#: ../Doc/library/calendar.rst:374 +#: library/calendar.rst:374 msgid "" "Returns a 3-column calendar for an entire year as a multi-line string using " "the :meth:`formatyear` of the :class:`TextCalendar` class." msgstr "" +"Renvoie un calendrier sur 3 colonnes pour une année entière dans une chaîne " +"multi-lignes en utilisant la méthode :meth:`formatyear` de la classe :class:" +"`TextCalendar`." -#: ../Doc/library/calendar.rst:380 +#: library/calendar.rst:380 msgid "" "An unrelated but handy function that takes a time tuple such as returned by " "the :func:`~time.gmtime` function in the :mod:`time` module, and returns the " @@ -466,49 +545,68 @@ msgid "" "encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each others' " "inverse." msgstr "" +"Une fonction sans rapport mais pratique, qui prend un n-uplet temporel tel " +"que celui renvoyé par la fonction :func:`~time.gmtime` dans le module :mod:" +"`time`, et renvoie la valeur d'horodatage Unix (*timestamp* en anglais) " +"correspondante, en supposant une époque de 1970, et l'encodage POSIX. En " +"fait, :func:`time.gmtime` et :func:`timegm` sont l'inverse l'un de l'autre." -#: ../Doc/library/calendar.rst:387 +#: library/calendar.rst:387 msgid "The :mod:`calendar` module exports the following data attributes:" -msgstr "" +msgstr "Le module :mod:`calendar` exporte les attributs suivants :" -#: ../Doc/library/calendar.rst:391 +#: library/calendar.rst:391 msgid "An array that represents the days of the week in the current locale." msgstr "" +"Un tableau qui représente les jours de la semaine pour les paramètres " +"régionaux actifs." -#: ../Doc/library/calendar.rst:396 +#: library/calendar.rst:396 msgid "" "An array that represents the abbreviated days of the week in the current " "locale." msgstr "" +"Un tableau qui représente les jours de la semaine en abrégé pour les " +"paramètres régionaux actifs." -#: ../Doc/library/calendar.rst:401 +#: library/calendar.rst:401 msgid "" "An array that represents the months of the year in the current locale. This " "follows normal convention of January being month number 1, so it has a " "length of 13 and ``month_name[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année pour les paramètres régionaux " +"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " +"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " +"vide." -#: ../Doc/library/calendar.rst:408 +#: library/calendar.rst:408 msgid "" "An array that represents the abbreviated months of the year in the current " "locale. This follows normal convention of January being month number 1, so " "it has a length of 13 and ``month_abbr[0]`` is the empty string." msgstr "" +"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " +"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " +"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " +"chaîne vide." -#: ../Doc/library/calendar.rst:417 +#: library/calendar.rst:417 msgid "Module :mod:`datetime`" msgstr "Module :mod:`datetime`" -#: ../Doc/library/calendar.rst:416 +#: library/calendar.rst:416 msgid "" "Object-oriented interface to dates and times with similar functionality to " "the :mod:`time` module." msgstr "" +"Interface orientée objet pour les dates et les heures avec des " +"fonctionnalités similaires au module :mod:`time`." -#: ../Doc/library/calendar.rst:419 +#: library/calendar.rst:419 msgid "Module :mod:`time`" msgstr "Module :mod:`time`" -#: ../Doc/library/calendar.rst:420 +#: library/calendar.rst:420 msgid "Low-level time related functions." -msgstr "" +msgstr "Fonctions bas niveau relatives au temps." diff --git a/library/cgi.po b/library/cgi.po index 27a90feadf..3d74902398 100644 --- a/library/cgi.po +++ b/library/cgi.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,35 +14,35 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/cgi.rst:2 +#: library/cgi.rst:2 msgid ":mod:`cgi` --- Common Gateway Interface support" msgstr "" -#: ../Doc/library/cgi.rst:7 +#: library/cgi.rst:7 msgid "**Source code:** :source:`Lib/cgi.py`" msgstr "**Code source :** :source:`Lib/cgi.py`" -#: ../Doc/library/cgi.rst:19 +#: library/cgi.rst:19 msgid "Support module for Common Gateway Interface (CGI) scripts." msgstr "" -#: ../Doc/library/cgi.rst:21 +#: library/cgi.rst:21 msgid "" "This module defines a number of utilities for use by CGI scripts written in " "Python." msgstr "" -#: ../Doc/library/cgi.rst:26 +#: library/cgi.rst:26 msgid "Introduction" msgstr "Introduction" -#: ../Doc/library/cgi.rst:30 +#: library/cgi.rst:30 msgid "" "A CGI script is invoked by an HTTP server, usually to process user input " "submitted through an HTML ``
`` or ```` element." msgstr "" -#: ../Doc/library/cgi.rst:33 +#: library/cgi.rst:33 msgid "" "Most often, CGI scripts live in the server's special :file:`cgi-bin` " "directory. The HTTP server places all sorts of information about the request " @@ -51,7 +51,7 @@ msgid "" "script, and sends the script's output back to the client." msgstr "" -#: ../Doc/library/cgi.rst:39 +#: library/cgi.rst:39 msgid "" "The script's input is connected to the client too, and sometimes the form " "data is read this way; at other times the form data is passed via the " @@ -62,7 +62,7 @@ msgid "" "supports it)." msgstr "" -#: ../Doc/library/cgi.rst:46 +#: library/cgi.rst:46 msgid "" "The output of a CGI script should consist of two sections, separated by a " "blank line. The first section contains a number of headers, telling the " @@ -70,26 +70,26 @@ msgid "" "header section looks like this::" msgstr "" -#: ../Doc/library/cgi.rst:54 +#: library/cgi.rst:54 msgid "" "The second section is usually HTML, which allows the client software to " "display nicely formatted text with header, in-line images, etc. Here's " "Python code that prints a simple piece of HTML::" msgstr "" -#: ../Doc/library/cgi.rst:66 +#: library/cgi.rst:66 msgid "Using the cgi module" msgstr "" -#: ../Doc/library/cgi.rst:68 +#: library/cgi.rst:68 msgid "Begin by writing ``import cgi``." msgstr "" -#: ../Doc/library/cgi.rst:70 +#: library/cgi.rst:70 msgid "When you write a new script, consider adding these lines::" msgstr "" -#: ../Doc/library/cgi.rst:75 +#: library/cgi.rst:75 msgid "" "This activates a special exception handler that will display detailed " "reports in the Web browser if any errors occur. If you'd rather not show " @@ -97,7 +97,7 @@ msgid "" "saved to files instead, with code like this::" msgstr "" -#: ../Doc/library/cgi.rst:83 +#: library/cgi.rst:83 msgid "" "It's very helpful to use this feature during script development. The reports " "produced by :mod:`cgitb` provide information that can save you a lot of time " @@ -105,7 +105,7 @@ msgid "" "you have tested your script and are confident that it works correctly." msgstr "" -#: ../Doc/library/cgi.rst:88 +#: library/cgi.rst:88 msgid "" "To get at submitted form data, use the :class:`FieldStorage` class. If the " "form contains non-ASCII characters, use the *encoding* keyword parameter set " @@ -117,7 +117,7 @@ msgid "" "consume standard input, it should be instantiated only once." msgstr "" -#: ../Doc/library/cgi.rst:97 +#: library/cgi.rst:97 msgid "" "The :class:`FieldStorage` instance can be indexed like a Python dictionary. " "It allows membership testing with the :keyword:`in` operator, and also " @@ -128,14 +128,14 @@ msgid "" "class:`FieldStorage` instance." msgstr "" -#: ../Doc/library/cgi.rst:105 +#: library/cgi.rst:105 msgid "" "For instance, the following code (which assumes that the :mailheader:" "`Content-Type` header and blank line have already been printed) checks that " "the fields ``name`` and ``addr`` are both set to a non-empty string::" msgstr "" -#: ../Doc/library/cgi.rst:119 +#: library/cgi.rst:119 msgid "" "Here the fields, accessed through ``form[key]``, are themselves instances " "of :class:`FieldStorage` (or :class:`MiniFieldStorage`, depending on the " @@ -145,7 +145,7 @@ msgid "" "second argument as a default to return if the requested key is not present." msgstr "" -#: ../Doc/library/cgi.rst:126 +#: library/cgi.rst:126 msgid "" "If the submitted form data contains more than one field with the same name, " "the object retrieved by ``form[key]`` is not a :class:`FieldStorage` or :" @@ -158,7 +158,7 @@ msgid "" "username fields, separated by commas::" msgstr "" -#: ../Doc/library/cgi.rst:139 +#: library/cgi.rst:139 msgid "" "If a field represents an uploaded file, accessing the value via the :attr:" "`~FieldStorage.value` attribute or the :meth:`~FieldStorage.getvalue` method " @@ -171,13 +171,13 @@ msgid "" "IOBase.readline` methods will return bytes)::" msgstr "" -#: ../Doc/library/cgi.rst:159 +#: library/cgi.rst:159 msgid "" ":class:`FieldStorage` objects also support being used in a :keyword:`with` " "statement, which will automatically close them when done." msgstr "" -#: ../Doc/library/cgi.rst:162 +#: library/cgi.rst:162 msgid "" "If an error is encountered when obtaining the contents of an uploaded file " "(for example, when the user interrupts the form submission by clicking on a " @@ -185,7 +185,7 @@ msgid "" "object for the field will be set to the value -1." msgstr "" -#: ../Doc/library/cgi.rst:167 +#: library/cgi.rst:167 msgid "" "The file upload draft standard entertains the possibility of uploading " "multiple files from one field (using a recursive :mimetype:`multipart/\\*` " @@ -196,7 +196,7 @@ msgid "" "be iterated over recursively just like the top-level form object." msgstr "" -#: ../Doc/library/cgi.rst:175 +#: library/cgi.rst:175 msgid "" "When a form is submitted in the \"old\" format (as the query string or as a " "single data part of type :mimetype:`application/x-www-form-urlencoded`), the " @@ -205,29 +205,29 @@ msgid "" "are always ``None``." msgstr "" -#: ../Doc/library/cgi.rst:180 +#: library/cgi.rst:180 msgid "" "A form submitted via POST that also has a query string will contain both :" "class:`FieldStorage` and :class:`MiniFieldStorage` items." msgstr "" -#: ../Doc/library/cgi.rst:183 +#: library/cgi.rst:183 msgid "" "The :attr:`~FieldStorage.file` attribute is automatically closed upon the " "garbage collection of the creating :class:`FieldStorage` instance." msgstr "" -#: ../Doc/library/cgi.rst:187 +#: library/cgi.rst:187 msgid "" "Added support for the context management protocol to the :class:" "`FieldStorage` class." msgstr "" -#: ../Doc/library/cgi.rst:193 +#: library/cgi.rst:193 msgid "Higher Level Interface" msgstr "" -#: ../Doc/library/cgi.rst:195 +#: library/cgi.rst:195 msgid "" "The previous section explains how to read CGI form data using the :class:" "`FieldStorage` class. This section describes a higher level interface which " @@ -237,33 +237,33 @@ msgid "" "efficiently, for example." msgstr "" -#: ../Doc/library/cgi.rst:204 +#: library/cgi.rst:204 msgid "" "The interface consists of two simple methods. Using the methods you can " "process form data in a generic way, without the need to worry whether only " "one or more values were posted under one name." msgstr "" -#: ../Doc/library/cgi.rst:208 +#: library/cgi.rst:208 msgid "" "In the previous section, you learned to write following code anytime you " "expected a user to post more than one value under one name::" msgstr "" -#: ../Doc/library/cgi.rst:217 +#: library/cgi.rst:217 msgid "" "This situation is common for example when a form contains a group of " "multiple checkboxes with the same name::" msgstr "" -#: ../Doc/library/cgi.rst:223 +#: library/cgi.rst:223 msgid "" "In most situations, however, there's only one form control with a particular " "name in a form and then you expect and need only one value associated with " "this name. So you write a script containing for example this code::" msgstr "" -#: ../Doc/library/cgi.rst:229 +#: library/cgi.rst:229 msgid "" "The problem with the code is that you should never expect that a client will " "provide valid input to your scripts. For example, if a curious user appends " @@ -274,21 +274,21 @@ msgid "" "an :exc:`AttributeError` exception." msgstr "" -#: ../Doc/library/cgi.rst:237 +#: library/cgi.rst:237 msgid "" "Therefore, the appropriate way to read form data values was to always use " "the code which checks whether the obtained value is a single value or a list " "of values. That's annoying and leads to less readable scripts." msgstr "" -#: ../Doc/library/cgi.rst:241 +#: library/cgi.rst:241 msgid "" "A more convenient approach is to use the methods :meth:`~FieldStorage." "getfirst` and :meth:`~FieldStorage.getlist` provided by this higher level " "interface." msgstr "" -#: ../Doc/library/cgi.rst:247 +#: library/cgi.rst:247 msgid "" "This method always returns only one value associated with form field *name*. " "The method returns only the first value in case that more values were posted " @@ -299,7 +299,7 @@ msgid "" "defaults to ``None`` if not specified." msgstr "" -#: ../Doc/library/cgi.rst:258 +#: library/cgi.rst:258 msgid "" "This method always returns a list of values associated with form field " "*name*. The method returns an empty list if no such form field or value " @@ -307,28 +307,32 @@ msgid "" "such value exists." msgstr "" -#: ../Doc/library/cgi.rst:262 +#: library/cgi.rst:262 msgid "Using these methods you can write nice compact code::" msgstr "" -#: ../Doc/library/cgi.rst:274 +#: library/cgi.rst:274 msgid "Functions" msgstr "Fonctions" -#: ../Doc/library/cgi.rst:276 +#: library/cgi.rst:276 msgid "" "These are useful if you want more control, or if you want to employ some of " "the algorithms implemented in this module in other circumstances." msgstr "" -#: ../Doc/library/cgi.rst:282 +#: library/cgi.rst:282 msgid "" "Parse a query in the environment or from a file (the file defaults to ``sys." -"stdin``). The *keep_blank_values* and *strict_parsing* parameters are " -"passed to :func:`urllib.parse.parse_qs` unchanged." +"stdin``). The *keep_blank_values*, *strict_parsing* and *separator* " +"parameters are passed to :func:`urllib.parse.parse_qs` unchanged." msgstr "" -#: ../Doc/library/cgi.rst:289 +#: library/cgi.rst:308 +msgid "Added the *separator* parameter." +msgstr "" + +#: library/cgi.rst:291 msgid "" "Parse input of type :mimetype:`multipart/form-data` (for file uploads). " "Arguments are *fp* for the input file, *pdict* for a dictionary containing " @@ -336,59 +340,59 @@ msgid "" "the request encoding." msgstr "" -#: ../Doc/library/cgi.rst:294 +#: library/cgi.rst:296 msgid "" "Returns a dictionary just like :func:`urllib.parse.parse_qs`: keys are the " "field names, each value is a list of values for that field. For non-file " "fields, the value is a list of strings." msgstr "" -#: ../Doc/library/cgi.rst:298 +#: library/cgi.rst:300 msgid "" "This is easy to use but not much good if you are expecting megabytes to be " "uploaded --- in that case, use the :class:`FieldStorage` class instead which " "is much more flexible." msgstr "" -#: ../Doc/library/cgi.rst:302 +#: library/cgi.rst:304 msgid "" "Added the *encoding* and *errors* parameters. For non-file fields, the " "value is now a list of strings, not bytes." msgstr "" -#: ../Doc/library/cgi.rst:309 +#: library/cgi.rst:314 msgid "" "Parse a MIME header (such as :mailheader:`Content-Type`) into a main value " "and a dictionary of parameters." msgstr "" -#: ../Doc/library/cgi.rst:315 +#: library/cgi.rst:320 msgid "" "Robust test CGI script, usable as main program. Writes minimal HTTP headers " "and formats all information provided to the script in HTML form." msgstr "" -#: ../Doc/library/cgi.rst:321 +#: library/cgi.rst:326 msgid "Format the shell environment in HTML." msgstr "" -#: ../Doc/library/cgi.rst:326 +#: library/cgi.rst:331 msgid "Format a form in HTML." msgstr "" -#: ../Doc/library/cgi.rst:331 +#: library/cgi.rst:336 msgid "Format the current directory in HTML." msgstr "" -#: ../Doc/library/cgi.rst:336 +#: library/cgi.rst:341 msgid "Print a list of useful (used by CGI) environment variables in HTML." msgstr "" -#: ../Doc/library/cgi.rst:342 +#: library/cgi.rst:347 msgid "Caring about security" msgstr "" -#: ../Doc/library/cgi.rst:346 +#: library/cgi.rst:351 msgid "" "There's one important rule: if you invoke an external program (via the :func:" "`os.system` or :func:`os.popen` functions. or others with similar " @@ -399,25 +403,25 @@ msgid "" "cannot be trusted, since the request doesn't have to come from your form!" msgstr "" -#: ../Doc/library/cgi.rst:354 +#: library/cgi.rst:359 msgid "" "To be on the safe side, if you must pass a string gotten from a form to a " "shell command, you should make sure the string contains only alphanumeric " "characters, dashes, underscores, and periods." msgstr "" -#: ../Doc/library/cgi.rst:360 +#: library/cgi.rst:365 msgid "Installing your CGI script on a Unix system" msgstr "" -#: ../Doc/library/cgi.rst:362 +#: library/cgi.rst:367 msgid "" "Read the documentation for your HTTP server and check with your local system " "administrator to find the directory where CGI scripts should be installed; " "usually this is in a directory :file:`cgi-bin` in the server tree." msgstr "" -#: ../Doc/library/cgi.rst:366 +#: library/cgi.rst:371 msgid "" "Make sure that your script is readable and executable by \"others\"; the " "Unix file mode should be ``0o755`` octal (use ``chmod 0755 filename``). " @@ -425,12 +429,12 @@ msgid "" "column 1 followed by the pathname of the Python interpreter, for instance::" msgstr "" -#: ../Doc/library/cgi.rst:373 +#: library/cgi.rst:378 msgid "" "Make sure the Python interpreter exists and is executable by \"others\"." msgstr "" -#: ../Doc/library/cgi.rst:375 +#: library/cgi.rst:380 msgid "" "Make sure that any files your script needs to read or write are readable or " "writable, respectively, by \"others\" --- their mode should be ``0o644`` for " @@ -445,28 +449,28 @@ msgid "" "anything interesting." msgstr "" -#: ../Doc/library/cgi.rst:386 +#: library/cgi.rst:391 msgid "" "If you need to load modules from a directory which is not on Python's " "default module search path, you can change the path in your script, before " "importing other modules. For example::" msgstr "" -#: ../Doc/library/cgi.rst:394 +#: library/cgi.rst:399 msgid "(This way, the directory inserted last will be searched first!)" msgstr "" -#: ../Doc/library/cgi.rst:396 +#: library/cgi.rst:401 msgid "" "Instructions for non-Unix systems will vary; check your HTTP server's " "documentation (it will usually have a section on CGI scripts)." msgstr "" -#: ../Doc/library/cgi.rst:401 +#: library/cgi.rst:406 msgid "Testing your CGI script" msgstr "" -#: ../Doc/library/cgi.rst:403 +#: library/cgi.rst:408 msgid "" "Unfortunately, a CGI script will generally not run when you try it from the " "command line, and a script that works perfectly from the command line may " @@ -476,17 +480,17 @@ msgid "" "will most likely send a cryptic error to the client." msgstr "" -#: ../Doc/library/cgi.rst:410 +#: library/cgi.rst:415 msgid "" "Assuming your script has no syntax errors, yet it does not work, you have no " "choice but to read the next section." msgstr "" -#: ../Doc/library/cgi.rst:415 +#: library/cgi.rst:420 msgid "Debugging CGI scripts" msgstr "" -#: ../Doc/library/cgi.rst:419 +#: library/cgi.rst:424 msgid "" "First of all, check for trivial installation errors --- reading the section " "above on installing your CGI script carefully can save you a lot of time. " @@ -499,7 +503,7 @@ msgid "" "your browser of the form:" msgstr "" -#: ../Doc/library/cgi.rst:432 +#: library/cgi.rst:437 msgid "" "If this gives an error of type 404, the server cannot find the script -- " "perhaps you need to install it in a different directory. If it gives " @@ -511,19 +515,19 @@ msgid "" "same procedure for your own script, you should now be able to debug it." msgstr "" -#: ../Doc/library/cgi.rst:441 +#: library/cgi.rst:446 msgid "" "The next step could be to call the :mod:`cgi` module's :func:`test` function " "from your script: replace its main code with the single statement ::" msgstr "" -#: ../Doc/library/cgi.rst:446 +#: library/cgi.rst:451 msgid "" "This should produce the same results as those gotten from installing the :" "file:`cgi.py` file itself." msgstr "" -#: ../Doc/library/cgi.rst:449 +#: library/cgi.rst:454 msgid "" "When an ordinary Python script raises an unhandled exception (for whatever " "reason: of a typo in a module name, a file that can't be opened, etc.), the " @@ -533,28 +537,28 @@ msgid "" "or be discarded altogether." msgstr "" -#: ../Doc/library/cgi.rst:456 +#: library/cgi.rst:461 msgid "" "Fortunately, once you have managed to get your script to execute *some* " "code, you can easily send tracebacks to the Web browser using the :mod:" "`cgitb` module. If you haven't done so already, just add the lines::" msgstr "" -#: ../Doc/library/cgi.rst:463 +#: library/cgi.rst:468 msgid "" "to the top of your script. Then try running it again; when a problem " "occurs, you should see a detailed report that will likely make apparent the " "cause of the crash." msgstr "" -#: ../Doc/library/cgi.rst:467 +#: library/cgi.rst:472 msgid "" "If you suspect that there may be a problem in importing the :mod:`cgitb` " "module, you can use an even more robust approach (which only uses built-in " "modules)::" msgstr "" -#: ../Doc/library/cgi.rst:476 +#: library/cgi.rst:481 msgid "" "This relies on the Python interpreter to print the traceback. The content " "type of the output is set to plain text, which disables all HTML " @@ -564,47 +568,47 @@ msgid "" "interpretation is going on, the traceback will be readable." msgstr "" -#: ../Doc/library/cgi.rst:485 +#: library/cgi.rst:490 msgid "Common problems and solutions" msgstr "" -#: ../Doc/library/cgi.rst:487 +#: library/cgi.rst:492 msgid "" "Most HTTP servers buffer the output from CGI scripts until the script is " "completed. This means that it is not possible to display a progress report " "on the client's display while the script is running." msgstr "" -#: ../Doc/library/cgi.rst:491 +#: library/cgi.rst:496 msgid "Check the installation instructions above." msgstr "" -#: ../Doc/library/cgi.rst:493 +#: library/cgi.rst:498 msgid "" "Check the HTTP server's log files. (``tail -f logfile`` in a separate " "window may be useful!)" msgstr "" -#: ../Doc/library/cgi.rst:496 +#: library/cgi.rst:501 msgid "" "Always check a script for syntax errors first, by doing something like " "``python script.py``." msgstr "" -#: ../Doc/library/cgi.rst:499 +#: library/cgi.rst:504 msgid "" "If your script does not have any syntax errors, try adding ``import cgitb; " "cgitb.enable()`` to the top of the script." msgstr "" -#: ../Doc/library/cgi.rst:502 +#: library/cgi.rst:507 msgid "" "When invoking external programs, make sure they can be found. Usually, this " "means using absolute path names --- :envvar:`PATH` is usually not set to a " "very useful value in a CGI script." msgstr "" -#: ../Doc/library/cgi.rst:506 +#: library/cgi.rst:511 msgid "" "When reading or writing external files, make sure they can be read or " "written by the userid under which your CGI script will be running: this is " @@ -612,17 +616,17 @@ msgid "" "explicitly specified userid for a web server's ``suexec`` feature." msgstr "" -#: ../Doc/library/cgi.rst:511 +#: library/cgi.rst:516 msgid "" "Don't try to give a CGI script a set-uid mode. This doesn't work on most " "systems, and is a security liability as well." msgstr "" -#: ../Doc/library/cgi.rst:515 +#: library/cgi.rst:520 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/cgi.rst:516 +#: library/cgi.rst:521 msgid "" "Note that some recent versions of the HTML specification do state what order " "the field values should be supplied in, but knowing whether a request was " diff --git a/library/cgitb.po b/library/cgitb.po index 7c549d02cf..a8c7b8509c 100644 --- a/library/cgitb.po +++ b/library/cgitb.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" "PO-Revision-Date: 2018-07-29 18:36+0200\n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.9\n" -#: ../Doc/library/cgitb.rst:2 +#: library/cgitb.rst:2 msgid ":mod:`cgitb` --- Traceback manager for CGI scripts" msgstr ":mod:`cgitb` — Gestionnaire d'exceptions pour les scripts CGI" -#: ../Doc/library/cgitb.rst:10 +#: library/cgitb.rst:10 msgid "**Source code:** :source:`Lib/cgitb.py`" msgstr "**Code source :** :source:`Lib/cgitb.py`" -#: ../Doc/library/cgitb.rst:20 +#: library/cgitb.rst:20 msgid "" "The :mod:`cgitb` module provides a special exception handler for Python " "scripts. (Its name is a bit misleading. It was originally designed to " @@ -47,13 +47,13 @@ msgstr "" "problème. Il est aussi possible de sauvegarder cette information dans un " "fichier plutôt que de l'envoyer dans le navigateur." -#: ../Doc/library/cgitb.rst:30 +#: library/cgitb.rst:30 msgid "To enable this feature, simply add this to the top of your CGI script::" msgstr "" "Pour activer cette fonctionnalité, ajoutez simplement ceci au début de votre " -"script CGI : ::" +"script CGI ::" -#: ../Doc/library/cgitb.rst:35 +#: library/cgitb.rst:35 msgid "" "The options to the :func:`enable` function control whether the report is " "displayed in the browser and whether the report is logged to a file for " @@ -63,7 +63,7 @@ msgstr "" "choisir si le rapport est envoyé au navigateur ou si le rapport est écrit " "dans un fichier pour analyse ultérieure." -#: ../Doc/library/cgitb.rst:44 +#: library/cgitb.rst:44 msgid "" "This function causes the :mod:`cgitb` module to take over the interpreter's " "default handling for exceptions by setting the value of :attr:`sys." @@ -73,7 +73,7 @@ msgstr "" "l'interpréteur par celui du module :mod:`cgitb`, en configurant :attr:`sys." "excepthook`." -#: ../Doc/library/cgitb.rst:47 +#: library/cgitb.rst:47 msgid "" "The optional argument *display* defaults to ``1`` and can be set to ``0`` to " "suppress sending the traceback to the browser. If the argument *logdir* is " @@ -82,8 +82,8 @@ msgid "" "argument *context* is the number of lines of context to display around the " "current line of source code in the traceback; this defaults to ``5``. If the " "optional argument *format* is ``\"html\"``, the output is formatted as " -"HTML. Any other value forces plain text output. The default value is ``" -"\"html\"``." +"HTML. Any other value forces plain text output. The default value is " +"``\"html\"``." msgstr "" "Le paramètre optionnel *display* vaut ``1`` par défaut, et peut être mis à " "``0`` pour désactiver l'envoi des piles d'appels au navigateur. Si " @@ -95,7 +95,7 @@ msgstr "" "HTML. Le rapport sera écrit en texte brut pour toute autre valeur. La " "valeur par défaut est ``\"html\"``." -#: ../Doc/library/cgitb.rst:59 +#: library/cgitb.rst:59 msgid "" "This function handles the exception described by *info* (a 3-tuple " "containing the result of :func:`sys.exc_info`), formatting its traceback as " @@ -110,7 +110,7 @@ msgstr "" "de la ligne courante du code source dans la pile d’appels ; la valeur par " "défaut est ``5``." -#: ../Doc/library/cgitb.rst:68 +#: library/cgitb.rst:68 msgid "" "This function handles the exception described by *info* (a 3-tuple " "containing the result of :func:`sys.exc_info`), formatting its traceback as " @@ -125,7 +125,7 @@ msgstr "" "de la ligne courante du code source dans la pile d’appels ; la valeur par " "défaut est ``5``." -#: ../Doc/library/cgitb.rst:77 +#: library/cgitb.rst:77 msgid "" "This function handles an exception using the default settings (that is, show " "a report in the browser, but don't log to a file). This can be used when " @@ -137,9 +137,9 @@ msgid "" msgstr "" "Cette fonction gère les exceptions en utilisant la configuration par défaut " "(c'est à dire envoyer un rapport HTML au navigateur sans l'enregistrer dans " -"un fichier). Il peut être utilisé lorsque vous avez attrapé une exception et " -"que vous en voulez un rapport généré par :mod:`cgitb`. L'argument optionnel " -"*info* doit être un *tuple* de trois éléments contenant le type de " +"un fichier). Il peut être utilisé lorsque vous avez intercepté une exception " +"et que vous en voulez un rapport généré par :mod:`cgitb`. L'argument " +"optionnel *info* doit être un *tuple* de trois éléments contenant le type de " "l'exception, l'exception, et la pile d'appels, tel que le *tuple* renvoyé " "par :func:`sys.exc_info`. Si l'argument *info* n'est pas donné, l'exception " "courante est obtenue via :func:`sys.exc_info`." diff --git a/library/chunk.po b/library/chunk.po index 05c9d6f68d..928df084c6 100644 --- a/library/chunk.po +++ b/library/chunk.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" @@ -19,8 +19,9 @@ msgid ":mod:`chunk` --- Read IFF chunked data" msgstr "" #: ../Doc/library/chunk.rst:10 +#, fuzzy msgid "**Source code:** :source:`Lib/chunk.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/uu.py`" #: ../Doc/library/chunk.rst:21 msgid "" diff --git a/library/cmath.po b/library/cmath.po index 0a7d78cdfa..51b76ac6b4 100644 --- a/library/cmath.po +++ b/library/cmath.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2019-05-28 20:19+0200\n" diff --git a/library/cmd.po b/library/cmd.po index eda3caa3f7..d5358d1499 100644 --- a/library/cmd.po +++ b/library/cmd.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-07-29 23:43+0200\n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.3\n" -#: ../Doc/library/cmd.rst:2 +#: library/cmd.rst:2 msgid ":mod:`cmd` --- Support for line-oriented command interpreters" msgstr ":mod:`cmd` — Interpréteurs en ligne de commande." -#: ../Doc/library/cmd.rst:9 +#: library/cmd.rst:9 msgid "**Source code:** :source:`Lib/cmd.py`" msgstr "**Code source:** :source:`Lib/cmd.py`" -#: ../Doc/library/cmd.rst:13 +#: library/cmd.rst:13 msgid "" "The :class:`Cmd` class provides a simple framework for writing line-oriented " "command interpreters. These are often useful for test harnesses, " @@ -35,7 +35,7 @@ msgstr "" "des tests, pour des outils administratifs, et pour des prototypes destinés à " "être intégrés à une interface plus sophistiquée." -#: ../Doc/library/cmd.rst:20 +#: library/cmd.rst:20 msgid "" "A :class:`Cmd` instance or subclass instance is a line-oriented interpreter " "framework. There is no good reason to instantiate :class:`Cmd` itself; " @@ -49,7 +49,7 @@ msgstr "" "classe-interprète que vous définirez afin d'hériter des méthodes de :class:" "`Cmd` et d'encapsuler les opérations." -#: ../Doc/library/cmd.rst:25 +#: library/cmd.rst:25 msgid "" "The optional argument *completekey* is the :mod:`readline` name of a " "completion key; it defaults to :kbd:`Tab`. If *completekey* is not :const:" @@ -61,7 +61,7 @@ msgstr "" "`readline` est disponible, la complétion de commandes est faite " "automatiquement." -#: ../Doc/library/cmd.rst:29 +#: library/cmd.rst:29 msgid "" "The optional arguments *stdin* and *stdout* specify the input and output " "file objects that the Cmd instance or subclass instance will use for input " @@ -74,7 +74,7 @@ msgstr "" "ils prendront comme valeur par défaut :data:`sys.stdin` et :data:`sys." "stdout`." -#: ../Doc/library/cmd.rst:34 +#: library/cmd.rst:34 msgid "" "If you want a given *stdin* to be used, make sure to set the instance's :" "attr:`use_rawinput` attribute to ``False``, otherwise *stdin* will be " @@ -84,15 +84,15 @@ msgstr "" "l'attribut :attr:`use_rawinput` de l'instance vaille ``False``, faute de " "quoi *stdin* sera ignoré." -#: ../Doc/library/cmd.rst:42 +#: library/cmd.rst:42 msgid "Cmd Objects" msgstr "Objets Cmd" -#: ../Doc/library/cmd.rst:44 +#: library/cmd.rst:44 msgid "A :class:`Cmd` instance has the following methods:" msgstr "Une instance de :class:`Cmd` possède les méthodes suivantes :" -#: ../Doc/library/cmd.rst:49 +#: library/cmd.rst:49 msgid "" "Repeatedly issue a prompt, accept input, parse an initial prefix off the " "received input, and dispatch to action methods, passing them the remainder " @@ -102,7 +102,7 @@ msgstr "" "soustrait un préfixe initial de l'entrée reçue et envoie aux méthodes " "d'opération la partie restante de l'entrée reçue." -#: ../Doc/library/cmd.rst:53 +#: library/cmd.rst:53 msgid "" "The optional argument is a banner or intro string to be issued before the " "first prompt (this overrides the :attr:`intro` class attribute)." @@ -111,7 +111,7 @@ msgstr "" "d'introduction à afficher avant la première invite de commande (il redéfinit " "l'attribut de classe :attr:`intro`)." -#: ../Doc/library/cmd.rst:56 +#: library/cmd.rst:56 msgid "" "If the :mod:`readline` module is loaded, input will automatically inherit :" "program:`bash`\\ -like history-list editing (e.g. :kbd:`Control-P` scrolls " @@ -125,13 +125,13 @@ msgstr "" "suivante, :kbd:`Control-F` déplace le curseur vers la droite, :kbd:`Control-" "B` déplace le curseur vers la gauche, etc...)." -#: ../Doc/library/cmd.rst:62 +#: library/cmd.rst:62 msgid "An end-of-file on input is passed back as the string ``'EOF'``." msgstr "" "Une caractère de fin de fichier est transmis via la chaîne de caractères " "``'EOF'``." -#: ../Doc/library/cmd.rst:68 +#: library/cmd.rst:68 msgid "" "An interpreter instance will recognize a command name ``foo`` if and only if " "it has a method :meth:`do_foo`. As a special case, a line beginning with " @@ -146,7 +146,7 @@ msgstr "" "caractère ``'!'`` sont également un cas particulier: elles sont envoyées à " "la méthode :meth:`do_shell` (si une telle méthode est définie)." -#: ../Doc/library/cmd.rst:74 +#: library/cmd.rst:74 msgid "" "This method will return when the :meth:`postcmd` method returns a true " "value. The *stop* argument to :meth:`postcmd` is the return value from the " @@ -156,7 +156,7 @@ msgstr "" "vraie. L'argument *stop* de :meth:`postcmd` est la valeur de retour de la " "méthode :meth:`do_\\*` correspondant à la commande." -#: ../Doc/library/cmd.rst:78 +#: library/cmd.rst:78 msgid "" "If completion is enabled, completing commands will be done automatically, " "and completing of commands args is done by calling :meth:`complete_foo` with " @@ -177,14 +177,14 @@ msgstr "" "pour fournir différentes complétions en fonction de la position de " "l'argument." -#: ../Doc/library/cmd.rst:86 +#: library/cmd.rst:86 msgid "" "All subclasses of :class:`Cmd` inherit a predefined :meth:`do_help`. This " "method, called with an argument ``'bar'``, invokes the corresponding method :" "meth:`help_bar`, and if that is not present, prints the docstring of :meth:" "`do_bar`, if available. With no argument, :meth:`do_help` lists all " -"available help topics (that is, all commands with corresponding :meth:`help_" -"\\*` methods or commands that have docstrings), and also lists any " +"available help topics (that is, all commands with corresponding :meth:" +"`help_\\*` methods or commands that have docstrings), and also lists any " "undocumented commands." msgstr "" "Toutes les classes filles de :class:`Cmd` héritent d'une méthode :meth:" @@ -196,7 +196,7 @@ msgstr "" "correspondante ou commande ayant une *docstring*, elle lisera aussi les " "commandes non documentées." -#: ../Doc/library/cmd.rst:97 +#: library/cmd.rst:97 msgid "" "Interpret the argument as though it had been typed in response to the " "prompt. This may be overridden, but should not normally need to be; see the :" @@ -215,7 +215,7 @@ msgstr "" "*str*, la valeur de retour de cette méthode est renvoyée. Dans le cas " "contraire, la valeur de retour de la méthode :meth:`default` est renvoyée." -#: ../Doc/library/cmd.rst:108 +#: library/cmd.rst:108 msgid "" "Method called when an empty line is entered in response to the prompt. If " "this method is not overridden, it repeats the last nonempty command entered." @@ -224,7 +224,7 @@ msgstr "" "commande. Si cette méthode n'est pas surchargée, elle répète la dernière " "commande non-vide entrée." -#: ../Doc/library/cmd.rst:114 +#: library/cmd.rst:114 msgid "" "Method called on an input line when the command prefix is not recognized. If " "this method is not overridden, it prints an error message and returns." @@ -233,7 +233,7 @@ msgstr "" "reconnu. Si cette méthode n'est pas surchargée, elle affiche un message " "d'erreur et s'arrête." -#: ../Doc/library/cmd.rst:120 +#: library/cmd.rst:120 msgid "" "Method called to complete an input line when no command-specific :meth:" "`complete_\\*` method is available. By default, it returns an empty list." @@ -242,7 +242,7 @@ msgstr "" "`complete_\\*` spécifique à la commande n'est disponible. Par défaut, elle " "renvoie une liste vide." -#: ../Doc/library/cmd.rst:126 +#: library/cmd.rst:126 msgid "" "Hook method executed just before the command line *line* is interpreted, but " "after the input prompt is generated and issued. This method is a stub in :" @@ -258,7 +258,7 @@ msgstr "" "exécutée par la méthode :meth:`onecmd`. L'implémentation de :meth:`precmd` " "peut réécrire la commande ou simplement renvoyer *line* sans modification." -#: ../Doc/library/cmd.rst:136 +#: library/cmd.rst:136 msgid "" "Hook method executed just after a command dispatch is finished. This method " "is a stub in :class:`Cmd`; it exists to be overridden by subclasses. *line* " @@ -277,7 +277,7 @@ msgstr "" "interne correspondant à *stop*. Renvoyer *False* permettra à " "l'interprétation de continuer." -#: ../Doc/library/cmd.rst:147 +#: library/cmd.rst:147 msgid "" "Hook method executed once when :meth:`cmdloop` is called. This method is a " "stub in :class:`Cmd`; it exists to be overridden by subclasses." @@ -286,7 +286,7 @@ msgstr "" "Cette méthode existe afin d'être surchargée par des classes filles de :class:" "`Cmd`." -#: ../Doc/library/cmd.rst:153 +#: library/cmd.rst:153 msgid "" "Hook method executed once when :meth:`cmdloop` is about to return. This " "method is a stub in :class:`Cmd`; it exists to be overridden by subclasses." @@ -295,26 +295,26 @@ msgstr "" "Cette méthode existe afin d'être surchargée par des classes filles de :class:" "`Cmd`." -#: ../Doc/library/cmd.rst:157 +#: library/cmd.rst:157 msgid "" "Instances of :class:`Cmd` subclasses have some public instance variables:" msgstr "" "Les instances de classes filles de :class:`Cmd` possèdent des variables " "d'instance publiques:" -#: ../Doc/library/cmd.rst:161 +#: library/cmd.rst:161 msgid "The prompt issued to solicit input." msgstr "L'invite de commande affiché pour solliciter une entrée." -#: ../Doc/library/cmd.rst:166 +#: library/cmd.rst:166 msgid "The string of characters accepted for the command prefix." msgstr "La chaîne de caractères acceptée en tant que préfixe de commande." -#: ../Doc/library/cmd.rst:171 +#: library/cmd.rst:171 msgid "The last nonempty command prefix seen." msgstr "Le dernier préfixe de commande non-vide vu." -#: ../Doc/library/cmd.rst:176 +#: library/cmd.rst:176 msgid "" "A list of queued input lines. The cmdqueue list is checked in :meth:" "`cmdloop` when new input is needed; if it is nonempty, its elements will be " @@ -325,7 +325,7 @@ msgstr "" "vide, ses éléments seront traités dans l'ordre, comme si ils avaient entrés " "dans l'invite de commande." -#: ../Doc/library/cmd.rst:183 +#: library/cmd.rst:183 msgid "" "A string to issue as an intro or banner. May be overridden by giving the :" "meth:`cmdloop` method an argument." @@ -333,14 +333,14 @@ msgstr "" "Une chaîne de caractères à afficher en introduction ou bannière. Peut être " "surchargée en passant un argument à la méthode :meth:`cmdloop`." -#: ../Doc/library/cmd.rst:189 +#: library/cmd.rst:189 msgid "" "The header to issue if the help output has a section for documented commands." msgstr "" "L'en-tête à afficher si la sortie de l'aide possède une section pour les " "commandes documentées." -#: ../Doc/library/cmd.rst:194 +#: library/cmd.rst:194 msgid "" "The header to issue if the help output has a section for miscellaneous help " "topics (that is, there are :meth:`help_\\*` methods without corresponding :" @@ -350,17 +350,17 @@ msgstr "" "sujets (c'est-à-dire qu'il existe des méthodes :meth:`help_\\*` sans " "méthodes :meth:`do_\\*` correspondantes)." -#: ../Doc/library/cmd.rst:201 +#: library/cmd.rst:201 msgid "" "The header to issue if the help output has a section for undocumented " "commands (that is, there are :meth:`do_\\*` methods without corresponding :" "meth:`help_\\*` methods)." msgstr "" "L'en-tête à afficher si la sortie de l'aide possède une section pour les " -"commandes non documentées (c'est-à-dire qu'il existe des méthodes :meth:`dop_" -"\\*` sans méthodes :meth:`help_\\*` correspondantes)." +"commandes non documentées (c'est-à-dire qu'il existe des méthodes :meth:" +"`dop_\\*` sans méthodes :meth:`help_\\*` correspondantes)." -#: ../Doc/library/cmd.rst:208 +#: library/cmd.rst:208 msgid "" "The character used to draw separator lines under the help-message headers. " "If empty, no ruler line is drawn. It defaults to ``'='``." @@ -369,7 +369,7 @@ msgstr "" "têtes de messages d'aide. Si il est vide, aucune ligne de séparation n'est " "affichée. Par défaut, ce caractère vaut ``'='``." -#: ../Doc/library/cmd.rst:214 +#: library/cmd.rst:214 msgid "" "A flag, defaulting to true. If true, :meth:`cmdloop` uses :func:`input` to " "display a prompt and read the next command; if false, :meth:`sys.stdout." @@ -386,11 +386,11 @@ msgstr "" "automatiquement supporter une édition de ligne similaire à :program:`Emacs` " "ainsi que des touches d'historique de commande)." -#: ../Doc/library/cmd.rst:224 +#: library/cmd.rst:224 msgid "Cmd Example" msgstr "Exemple" -#: ../Doc/library/cmd.rst:228 +#: library/cmd.rst:228 msgid "" "The :mod:`cmd` module is mainly useful for building custom shells that let a " "user work with a program interactively." @@ -399,7 +399,7 @@ msgstr "" "permettant à l'utilisateur de travailler avec un programme de manière " "interactive." -#: ../Doc/library/cmd.rst:231 +#: library/cmd.rst:231 msgid "" "This section presents a simple example of how to build a shell around a few " "of the commands in the :mod:`turtle` module." @@ -407,7 +407,7 @@ msgstr "" "Cette section présente un exemple simple de comment produire une invite de " "commande autour de quelques commandes du module :mod:`turtle`." -#: ../Doc/library/cmd.rst:234 +#: library/cmd.rst:234 msgid "" "Basic turtle commands such as :meth:`~turtle.forward` are added to a :class:" "`Cmd` subclass with method named :meth:`do_forward`. The argument is " @@ -420,7 +420,7 @@ msgstr "" "*turtle*. La *docstring* est utilisée dans l'utilitaire d'aide fourni par " "l'invite de commande." -#: ../Doc/library/cmd.rst:239 +#: library/cmd.rst:239 msgid "" "The example also includes a basic record and playback facility implemented " "with the :meth:`~Cmd.precmd` method which is responsible for converting the " @@ -434,7 +434,7 @@ msgstr "" "fichier. La méthode :meth:`do_playback` lit le fichier et ajoute les " "commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement ::" -#: ../Doc/library/cmd.rst:320 +#: library/cmd.rst:320 msgid "" "Here is a sample session with the turtle shell showing the help functions, " "using blank lines to repeat commands, and the simple record and playback " diff --git a/library/code.po b/library/code.po index bd5c28dd1d..2fa3e12d12 100644 --- a/library/code.po +++ b/library/code.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -76,8 +76,8 @@ msgstr "" msgid "" "*source* is the source string; *filename* is the optional filename from " "which source was read, defaulting to ``''``; and *symbol* is the " -"optional grammar start symbol, which should be either ``'single'`` (the " -"default) or ``'eval'``." +"optional grammar start symbol, which should be ``'single'`` (the default), " +"``'eval'`` or ``'exec'``." msgstr "" #: ../Doc/library/code.rst:62 @@ -97,7 +97,7 @@ msgstr "" msgid "" "Compile and run some source in the interpreter. Arguments are the same as " "for :func:`compile_command`; the default for *filename* is ``''``, " -"and for *symbol* is ``'single'``. One several things can happen:" +"and for *symbol* is ``'single'``. One of several things can happen:" msgstr "" #: ../Doc/library/code.rst:81 diff --git a/library/codecs.po b/library/codecs.po index 96999e4166..110c5480af 100644 --- a/library/codecs.po +++ b/library/codecs.po @@ -3,26 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-09-06 13:48+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-02-23 23:00+0100\n" +"Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/codecs.rst:2 +#: library/codecs.rst:2 msgid ":mod:`codecs` --- Codec registry and base classes" -msgstr "" +msgstr ":mod:`codecs` — Registre des codecs et classes de base associées" -#: ../Doc/library/codecs.rst:11 +#: library/codecs.rst:11 msgid "**Source code:** :source:`Lib/codecs.py`" -msgstr "**Code source :** :source:`Lib/codecs.py`" +msgstr "**Code source :** :source:`Lib/codecs.py`" -#: ../Doc/library/codecs.rst:23 +#: library/codecs.rst:23 msgid "" "This module defines base classes for standard Python codecs (encoders and " "decoders) and provides access to the internal Python codec registry, which " @@ -33,18 +34,31 @@ msgid "" "features are restricted to use specifically with :term:`text encodings `, or with codecs that encode to :class:`bytes`." msgstr "" +"Ce module définit les classes de base pour les codecs (encodeurs et " +"décodeurs) standards Python et fournit l'interface avec le registre des " +"codecs internes à Python, qui gère le processus de recherche de codecs et de " +"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de " +"texte `, qui encode du texte vers des séquences d'octets " +"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du " +"texte vers du texte et des *bytes* vers des *bytes*. Les codecs " +"personnalisés peuvent encoder et décoder des types arbitraires, mais " +"l'utilisation de certaines fonctionnalités du module est restreinte aux :" +"term:`encodeurs de texte ` ou aux codecs qui encodent vers :" +"class:`bytes`." -#: ../Doc/library/codecs.rst:33 +#: library/codecs.rst:33 msgid "" "The module defines the following functions for encoding and decoding with " "any codec:" msgstr "" +"Le module définit les fonctions suivantes pour encoder et décoder à l'aide " +"de n'importe quel codec :" -#: ../Doc/library/codecs.rst:38 +#: library/codecs.rst:38 msgid "Encodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*." -#: ../Doc/library/codecs.rst:40 +#: library/codecs.rst:40 msgid "" "*Errors* may be given to set the desired error handling scheme. The default " "error handler is ``'strict'`` meaning that encoding errors raise :exc:" @@ -52,12 +66,18 @@ msgid "" "`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." -#: ../Doc/library/codecs.rst:48 +#: library/codecs.rst:48 msgid "Decodes *obj* using the codec registered for *encoding*." -msgstr "" +msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*." -#: ../Doc/library/codecs.rst:50 +#: library/codecs.rst:50 msgid "" "*Errors* may be given to set the desired error handling scheme. The default " "error handler is ``'strict'`` meaning that decoding errors raise :exc:" @@ -65,36 +85,52 @@ msgid "" "`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " "information on codec error handling." msgstr "" +"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " +"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " +"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe " +"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous aux :" +"ref:`classes de base des codecs ` pour plus " +"d'informations sur la gestion des erreurs par les codecs." -#: ../Doc/library/codecs.rst:56 +#: library/codecs.rst:56 msgid "The full details for each codec can also be looked up directly:" msgstr "" +"Les détails complets de chaque codec peuvent être examinés directement :" -#: ../Doc/library/codecs.rst:60 +#: library/codecs.rst:60 msgid "" "Looks up the codec info in the Python codec registry and returns a :class:" "`CodecInfo` object as defined below." msgstr "" +"Recherche les informations relatives au codec dans le registre des codecs de " +"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous." -#: ../Doc/library/codecs.rst:63 +#: library/codecs.rst:63 msgid "" "Encodings are first looked up in the registry's cache. If not found, the " "list of registered search functions is scanned. If no :class:`CodecInfo` " "object is found, a :exc:`LookupError` is raised. Otherwise, the :class:" "`CodecInfo` object is stored in the cache and returned to the caller." msgstr "" +"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils " +"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en " +"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, une :exc:" +"`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis en cache " +"et renvoyé vers l'appelant." -#: ../Doc/library/codecs.rst:70 +#: library/codecs.rst:70 msgid "" "Codec details when looking up the codec registry. The constructor arguments " "are stored in attributes of the same name:" msgstr "" +"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du " +"constructeur sont stockés dans les attributs éponymes :" -#: ../Doc/library/codecs.rst:76 +#: library/codecs.rst:76 msgid "The name of the encoding." -msgstr "" +msgstr "Le nom de l'encodeur." -#: ../Doc/library/codecs.rst:82 +#: library/codecs.rst:82 msgid "" "The stateless encoding and decoding functions. These must be functions or " "methods which have the same interface as the :meth:`~Codec.encode` and :meth:" @@ -102,206 +138,304 @@ msgid "" "objects>`). The functions or methods are expected to work in a stateless " "mode." msgstr "" +"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent " +"avoir la même interface que les méthodes :meth:`~Codec.encode` et :meth:" +"`~Codec.decode` des instances de Codec (voir :ref:`Interface des codecs " +"`). Les fonctions et méthodes sont censées fonctionner sans " +"état interne." -#: ../Doc/library/codecs.rst:92 +#: library/codecs.rst:92 msgid "" "Incremental encoder and decoder classes or factory functions. These have to " "provide the interface defined by the base classes :class:" "`IncrementalEncoder` and :class:`IncrementalDecoder`, respectively. " "Incremental codecs can maintain state." msgstr "" +"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles " +"doivent avoir respectivement les mêmes interfaces que celles définies par " +"les classes de base :class:`IncrementalEncoder` et :class:" +"`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver des états " +"internes." -#: ../Doc/library/codecs.rst:101 +#: library/codecs.rst:101 msgid "" "Stream writer and reader classes or factory functions. These have to provide " "the interface defined by the base classes :class:`StreamWriter` and :class:" "`StreamReader`, respectively. Stream codecs can maintain state." msgstr "" +"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent " +"avoir les mêmes interfaces que celles définies par les classes de base :" +"class:`StreamWriter` et :class:`StreamReader`, respectivement. Les codecs de " +"flux peuvent conserver un état interne." -#: ../Doc/library/codecs.rst:106 +#: library/codecs.rst:106 msgid "" "To simplify access to the various codec components, the module provides " "these additional functions which use :func:`lookup` for the codec lookup:" msgstr "" +"Pour simplifier l'accès aux différents composants du codec, le module " +"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` " +"pour la recherche du codec :" -#: ../Doc/library/codecs.rst:111 +#: library/codecs.rst:111 msgid "" "Look up the codec for the given encoding and return its encoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction " +"d'encodage." -#: ../Doc/library/codecs.rst:113 ../Doc/library/codecs.rst:120 -#: ../Doc/library/codecs.rst:146 ../Doc/library/codecs.rst:154 +#: library/codecs.rst:120 library/codecs.rst:154 msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." -msgstr "" +msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé." -#: ../Doc/library/codecs.rst:118 +#: library/codecs.rst:118 msgid "" "Look up the codec for the given encoding and return its decoder function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de " +"décodage." -#: ../Doc/library/codecs.rst:125 +#: library/codecs.rst:125 msgid "" "Look up the codec for the given encoding and return its incremental encoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe " +"d'encodage incrémental ou la fonction usine." -#: ../Doc/library/codecs.rst:128 +#: library/codecs.rst:128 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental encoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas l'encodage incrémental." -#: ../Doc/library/codecs.rst:134 +#: library/codecs.rst:134 msgid "" "Look up the codec for the given encoding and return its incremental decoder " "class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de " +"décodage incrémental ou la fonction usine." -#: ../Doc/library/codecs.rst:137 +#: library/codecs.rst:137 msgid "" "Raises a :exc:`LookupError` in case the encoding cannot be found or the " "codec doesn't support an incremental decoder." msgstr "" +"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " +"le codec ne gère pas le décodage incrémental." -#: ../Doc/library/codecs.rst:143 +#: library/codecs.rst:143 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamReader` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamReader` ou la fonction usine." -#: ../Doc/library/codecs.rst:151 +#: library/codecs.rst:151 msgid "" "Look up the codec for the given encoding and return its :class:" "`StreamWriter` class or factory function." msgstr "" +"Recherche le codec pour l'encodage *encoding* et renvoie sa classe :class:" +"`StreamWriter` ou la fonction usine." -#: ../Doc/library/codecs.rst:156 +#: library/codecs.rst:156 msgid "" "Custom codecs are made available by registering a suitable codec search " "function:" msgstr "" +"Les codecs personnalisés sont mis à disposition en enregistrant une fonction " +"de recherche de codecs adaptée :" -#: ../Doc/library/codecs.rst:161 +#: library/codecs.rst:161 msgid "" "Register a codec search function. Search functions are expected to take one " "argument, being the encoding name in all lower case letters, and return a :" "class:`CodecInfo` object. In case a search function cannot find a given " "encoding, it should return ``None``." msgstr "" +"Enregistre une fonction de recherche de codec. Il convient qu'une fonction " +"de recherche prenne un argument, le nom de l'encodage écrit en lettres " +"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de " +"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` " +"None``." -#: ../Doc/library/codecs.rst:168 +# Pas de majuscule en début car suit un deux-points. +#: library/codecs.rst:168 msgid "" "Search function registration is not currently reversible, which may cause " "problems in some cases, such as unit testing or module reloading." msgstr "" +"l'enregistrement d'une fonction de recherche n'est actuellement pas " +"réversible, ce qui peut entraîner des problèmes dans certains cas, par " +"exemple pour les tests unitaires ou le rechargement de module." -#: ../Doc/library/codecs.rst:172 +#: library/codecs.rst:172 msgid "" "While the builtin :func:`open` and the associated :mod:`io` module are the " "recommended approach for working with encoded text files, this module " "provides additional utility functions and classes that allow the use of a " "wider range of codecs when working with binary files:" msgstr "" +"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le " +"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le " +"présent module fournit des fonctions et classes utilitaires supplémentaires " +"qui permettent l'utilisation d'une plus large gamme de codecs si vous " +"travaillez avec des fichiers binaires :" -#: ../Doc/library/codecs.rst:179 +#: library/codecs.rst:179 msgid "" "Open an encoded file using the given *mode* and return an instance of :class:" "`StreamReaderWriter`, providing transparent encoding/decoding. The default " "file mode is ``'r'``, meaning to open the file in read mode." msgstr "" +"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance " +"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. " +"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier " +"est ouvert en lecture." -#: ../Doc/library/codecs.rst:185 +# Pas de majuscule en début car suit un deux-points. +#: library/codecs.rst:185 msgid "" "Underlying encoded files are always opened in binary mode. No automatic " "conversion of ``'\\n'`` is done on reading and writing. The *mode* argument " "may be any binary mode acceptable to the built-in :func:`open` function; the " "``'b'`` is automatically added." msgstr "" +"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. " +"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à " +"l'écriture. L'argument *mode* peut être n'importe quel mode binaire " +"acceptable pour la fonction native :func:`open` ; le ``'b'`` est " +"automatiquement ajouté." -#: ../Doc/library/codecs.rst:190 +#: library/codecs.rst:190 msgid "" "*encoding* specifies the encoding which is to be used for the file. Any " "encoding that encodes to and decodes from bytes is allowed, and the data " "types supported by the file methods depend on the codec used." msgstr "" +"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui " +"encode et décode des octets (type *bytes*) est autorisé et les types de " +"données pris en charge par les méthodes relatives aux fichiers dépendent du " +"codec utilisé." -#: ../Doc/library/codecs.rst:194 +#: library/codecs.rst:194 msgid "" "*errors* may be given to define the error handling. It defaults to " "``'strict'`` which causes a :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." -#: ../Doc/library/codecs.rst:197 +#: library/codecs.rst:197 msgid "" "*buffering* has the same meaning as for the built-in :func:`open` function. " "It defaults to -1 which means that the default buffer size will be used." msgstr "" +"*buffering* a la même signification que pour la fonction native :func:" +"`open`. Il vaut `-1` par défaut, ce qui signifie que la taille par défaut du " +"tampon est utilisée." -#: ../Doc/library/codecs.rst:203 +#: library/codecs.rst:203 msgid "" "Return a :class:`StreamRecoder` instance, a wrapped version of *file* which " "provides transparent transcoding. The original file is closed when the " "wrapped version is closed." msgstr "" +"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* " +"qui fournit un transcodage transparent. Le fichier original est fermé quand " +"la version encapsulée est fermée." -#: ../Doc/library/codecs.rst:207 +#: library/codecs.rst:207 msgid "" "Data written to the wrapped file is decoded according to the given " "*data_encoding* and then written to the original file as bytes using " "*file_encoding*. Bytes read from the original file are decoded according to " "*file_encoding*, and the result is encoded using *data_encoding*." msgstr "" +"Les données écrites dans un fichier encapsulant sont décodées en fonction du " +"*data_encoding* spécifié puis écrites vers le fichier original en tant que " +"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier " +"original sont décodés conformément à *file_encoding* et le résultat est " +"encodé en utilisant *data_encoding*." -#: ../Doc/library/codecs.rst:213 +#: library/codecs.rst:213 msgid "If *file_encoding* is not given, it defaults to *data_encoding*." msgstr "" +"Si *file_encoding* n'est pas spécifié, la valeur par défaut est " +"*data_encoding*." -#: ../Doc/library/codecs.rst:215 +#: library/codecs.rst:215 msgid "" "*errors* may be given to define the error handling. It defaults to " "``'strict'``, which causes :exc:`ValueError` to be raised in case an " "encoding error occurs." msgstr "" +"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " +"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " +"d'erreur lors du codage." -#: ../Doc/library/codecs.rst:222 +#: library/codecs.rst:222 msgid "" "Uses an incremental encoder to iteratively encode the input provided by " "*iterator*. This function is a :term:`generator`. The *errors* argument (as " "well as any other keyword argument) is passed through to the incremental " "encoder." msgstr "" +"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur " +"`. L'argument *errors* (ainsi que tout autre argument passé par " +"mot-clé) est transmis à l'encodeur incrémental." -#: ../Doc/library/codecs.rst:227 +#: library/codecs.rst:227 msgid "" "This function requires that the codec accept text :class:`str` objects to " "encode. Therefore it does not support bytes-to-bytes encoders such as " "``base64_codec``." msgstr "" +"Cette fonction nécessite que le codec accepte les objets texte (classe :" +"class:`str`) en entrée. Par conséquent, il ne prend pas en charge les " +"encodeurs *bytes* vers *bytes* tels que ``base64_codec``." -#: ../Doc/library/codecs.rst:234 +#: library/codecs.rst:234 msgid "" "Uses an incremental decoder to iteratively decode the input provided by " "*iterator*. This function is a :term:`generator`. The *errors* argument (as " "well as any other keyword argument) is passed through to the incremental " "decoder." msgstr "" +"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée " +"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument " +"*errors* (ainsi que tout autre argument passé par mot-clé) est transmis au " +"décodeur incrémental." -#: ../Doc/library/codecs.rst:239 +#: library/codecs.rst:239 msgid "" "This function requires that the codec accept :class:`bytes` objects to " "decode. Therefore it does not support text-to-text encoders such as " "``rot_13``, although ``rot_13`` may be used equivalently with :func:" "`iterencode`." msgstr "" +"Cette fonction requiert que le codec accepte les objets :class:`bytes` en " +"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte " +"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de " +"manière équivalente avec :func:`iterencode`." -#: ../Doc/library/codecs.rst:245 +#: library/codecs.rst:245 msgid "" "The module also provides the following constants which are useful for " "reading and writing to platform dependent files:" msgstr "" +"Le module fournit également les constantes suivantes qui sont utiles pour " +"lire et écrire les fichiers dépendants de la plateforme :" -#: ../Doc/library/codecs.rst:260 +#: library/codecs.rst:260 msgid "" "These constants define various byte sequences, being Unicode byte order " "marks (BOMs) for several encodings. They are used in UTF-16 and UTF-32 data " @@ -312,19 +446,32 @@ msgid "" "`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The others " "represent the BOM in UTF-8 and UTF-32 encodings." msgstr "" - -#: ../Doc/library/codecs.rst:274 +"Ces constantes définissent diverses séquences d'octets, les marques d'ordre " +"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs " +"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 " +"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature " +"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, soit :const:" +"`BOM_UTF16_LE` selon le boutisme natif de la plateforme, :const:`BOM` est un " +"alias pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` " +"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques " +"BOM dans les encodages UTF-8 et UTF-32." + +#: library/codecs.rst:274 msgid "Codec Base Classes" -msgstr "" +msgstr "Classes de base de codecs" -#: ../Doc/library/codecs.rst:276 +#: library/codecs.rst:276 msgid "" "The :mod:`codecs` module defines a set of base classes which define the " "interfaces for working with codec objects, and can also be used as the basis " "for custom codec implementations." msgstr "" +"Le module :mod:`codecs` définit un ensemble de classes de base qui " +"spécifient les interfaces pour travailler avec des objets codecs et qui " +"peuvent également être utilisées comme base pour des implémentations de " +"codecs personnalisés." -#: ../Doc/library/codecs.rst:280 +#: library/codecs.rst:280 msgid "" "Each codec has to define four interfaces to make it usable as codec in " "Python: stateless encoder, stateless decoder, stream reader and stream " @@ -332,166 +479,208 @@ msgid "" "decoder to implement the file protocols. Codec authors also need to define " "how the codec will handle encoding and decoding errors." msgstr "" +"Chaque codec doit définir quatre interfaces pour être utilisable comme codec " +"en Python : codeur sans état, décodeur sans état, lecteur de flux et " +"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement " +"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. " +"Les auteurs de codecs doivent également définir comment le codec gère les " +"erreurs d'encodage et de décodage." -#: ../Doc/library/codecs.rst:291 +#: library/codecs.rst:291 msgid "Error Handlers" -msgstr "" +msgstr "Gestionnaires d'erreurs" -#: ../Doc/library/codecs.rst:293 +#: library/codecs.rst:293 msgid "" "To simplify and standardize error handling, codecs may implement different " "error handling schemes by accepting the *errors* string argument. The " "following string values are defined and implemented by all standard Python " "codecs:" msgstr "" +"Pour simplifier et standardiser la gestion des erreurs, les codecs peuvent " +"implémenter différents schémas de gestion des erreurs en acceptant " +"l'argument *errors* de type chaîne. Les chaînes suivantes sont définies et " +"les gestionnaires correspondants implémentés par tous les codecs Python " +"standards :" -#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 -#: ../Doc/library/codecs.rst:357 +#: library/codecs.rst:324 library/codecs.rst:357 msgid "Value" msgstr "Valeur" -#: ../Doc/library/codecs.rst:301 ../Doc/library/codecs.rst:324 -#: ../Doc/library/codecs.rst:357 ../Doc/library/codecs.rst:1268 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: library/codecs.rst:324 library/codecs.rst:1268 library/codecs.rst:1390 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/codecs.rst:303 +#: library/codecs.rst:303 msgid "``'strict'``" msgstr "``'strict'``" -#: ../Doc/library/codecs.rst:303 +#: library/codecs.rst:303 msgid "" "Raise :exc:`UnicodeError` (or a subclass); this is the default. Implemented " "in :func:`strict_errors`." msgstr "" +"Lève :exc:`UnicodeError` (ou une sous-classe) ; c'est la valeur par défaut. " +"Implémenté dans :func:`strict_errors`." -#: ../Doc/library/codecs.rst:307 +#: library/codecs.rst:307 msgid "``'ignore'``" msgstr "``'ignore'``" -#: ../Doc/library/codecs.rst:307 +#: library/codecs.rst:307 msgid "" "Ignore the malformed data and continue without further notice. Implemented " "in :func:`ignore_errors`." msgstr "" +"Ignore les données incorrectement formatées et continue sans rien signaler. " +"Implémenté dans :func:`ignore_errors`." -#: ../Doc/library/codecs.rst:312 +#: library/codecs.rst:312 msgid "" "The following error handlers are only applicable to :term:`text encodings " "`:" msgstr "" +"Les gestionnaires d'erreurs suivants ne s'appliquent que pour les :term:" +"`encodeurs de texte ` :" -#: ../Doc/library/codecs.rst:326 +#: library/codecs.rst:326 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/codecs.rst:326 +#: library/codecs.rst:326 msgid "" -"Replace with a suitable replacement marker; Python will use the official ``U" -"+FFFD`` REPLACEMENT CHARACTER for the built-in codecs on decoding, and '?' " -"on encoding. Implemented in :func:`replace_errors`." +"Replace with a suitable replacement marker; Python will use the official " +"``U+FFFD`` REPLACEMENT CHARACTER for the built-in codecs on decoding, and " +"'?' on encoding. Implemented in :func:`replace_errors`." msgstr "" +"Remplace avec une marque de substitution adaptée ; Python utilise le " +"caractère de substitution officiel ``U+FFFD`` pour les codecs natifs lors du " +"décodage et `'?'` lors de l'encodage. Implémenté dans :func:`replace_errors`." -#: ../Doc/library/codecs.rst:333 +#: library/codecs.rst:333 msgid "``'xmlcharrefreplace'``" msgstr "``'xmlcharrefreplace'``" -#: ../Doc/library/codecs.rst:333 +#: library/codecs.rst:333 msgid "" "Replace with the appropriate XML character reference (only for encoding). " "Implemented in :func:`xmlcharrefreplace_errors`." msgstr "" +"Remplace avec la référence de caractère XML adaptée (uniquement pour " +"l'encodage). Implémenté dans :func:`xmlcharrefreplace_errors`." -#: ../Doc/library/codecs.rst:337 +#: library/codecs.rst:337 msgid "``'backslashreplace'``" msgstr "``'backslashreplace'``" -#: ../Doc/library/codecs.rst:337 +#: library/codecs.rst:337 msgid "" "Replace with backslashed escape sequences. Implemented in :func:" "`backslashreplace_errors`." msgstr "" +"Remplace avec une séquence échappée par des antislashs. Implémenté dans :" +"func:`backslashreplace_errors`." -#: ../Doc/library/codecs.rst:341 +#: library/codecs.rst:341 msgid "``'namereplace'``" msgstr "``'namereplace'``" -#: ../Doc/library/codecs.rst:341 +#: library/codecs.rst:341 msgid "" "Replace with ``\\N{...}`` escape sequences (only for encoding). Implemented " "in :func:`namereplace_errors`." msgstr "" +"Remplace avec des séquences échappées par ``\\N{...}`` (uniquement pour " +"l'encodage). Implémenté dans :func:`namereplace_errors`." -#: ../Doc/library/codecs.rst:345 +#: library/codecs.rst:345 msgid "``'surrogateescape'``" msgstr "``'surrogateescape'``" -#: ../Doc/library/codecs.rst:345 +#: library/codecs.rst:345 msgid "" -"On decoding, replace byte with individual surrogate code ranging from ``U" -"+DC80`` to ``U+DCFF``. This code will then be turned back into the same byte " -"when the ``'surrogateescape'`` error handler is used when encoding the data. " -"(See :pep:`383` for more.)" +"On decoding, replace byte with individual surrogate code ranging from " +"``U+DC80`` to ``U+DCFF``. This code will then be turned back into the same " +"byte when the ``'surrogateescape'`` error handler is used when encoding the " +"data. (See :pep:`383` for more.)" msgstr "" +"Lors du décodage, remplace un octet par un code de substitution individuel " +"allant de ``U+DC80`` à ``U+DCFF``. Ce code est reconverti vers l'octet de " +"départ quand le gestionnaire d'erreurs ``'surrogateescape'`` est utilisé " +"pour l'encodage des données (voir la :pep:`383` pour plus de détails)." -#: ../Doc/library/codecs.rst:354 +#: library/codecs.rst:354 msgid "" "In addition, the following error handler is specific to the given codecs:" msgstr "" +"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs " +"suivants :" -#: ../Doc/library/codecs.rst:357 +#: library/codecs.rst:357 msgid "Codecs" -msgstr "" +msgstr "Codecs" -#: ../Doc/library/codecs.rst:359 +#: library/codecs.rst:359 msgid "``'surrogatepass'``" msgstr "``'surrogatepass'``" -#: ../Doc/library/codecs.rst:359 +#: library/codecs.rst:359 msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -msgstr "" +msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -#: ../Doc/library/codecs.rst:359 +#: library/codecs.rst:359 msgid "" "Allow encoding and decoding of surrogate codes. These codecs normally treat " "the presence of surrogates as an error." msgstr "" +"Autorise l'encodage et le décodage de codes de substitution. Ces codecs " +"traitent normalement la présence d'un code de substitution comme une erreur." -#: ../Doc/library/codecs.rst:364 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:364 msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." msgstr "" +"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." -#: ../Doc/library/codecs.rst:367 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:367 msgid "" "The ``'surrogatepass'`` error handlers now works with utf-16\\* and " "utf-32\\* codecs." msgstr "" +"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les " +"codecs utf-16\\* et utf-32\\*." -#: ../Doc/library/codecs.rst:370 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:370 msgid "The ``'namereplace'`` error handler." -msgstr "" +msgstr "le gestionnaire d'erreurs ``'namereplace'``." -#: ../Doc/library/codecs.rst:373 +# pas de majuscule en début de phrase car suit un deux-points. +#: library/codecs.rst:373 msgid "" "The ``'backslashreplace'`` error handlers now works with decoding and " "translating." msgstr "" +"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour " +"le décodage et la traduction." -#: ../Doc/library/codecs.rst:377 +#: library/codecs.rst:377 msgid "" "The set of allowed values can be extended by registering a new named error " "handler:" msgstr "" +"L'ensemble des valeurs autorisées peut être étendu en enregistrant un " +"nouveau gestionnaire d'erreurs nommé :" -#: ../Doc/library/codecs.rst:382 +#: library/codecs.rst:382 msgid "" "Register the error handling function *error_handler* under the name *name*. " "The *error_handler* argument will be called during encoding and decoding in " "case of an error, when *name* is specified as the errors parameter." msgstr "" -#: ../Doc/library/codecs.rst:386 +#: library/codecs.rst:386 msgid "" "For encoding, *error_handler* will be called with a :exc:" "`UnicodeEncodeError` instance, which contains information about the location " @@ -506,40 +695,40 @@ msgid "" "position is out of bound an :exc:`IndexError` will be raised." msgstr "" -#: ../Doc/library/codecs.rst:398 +#: library/codecs.rst:398 msgid "" "Decoding and translating works similarly, except :exc:`UnicodeDecodeError` " "or :exc:`UnicodeTranslateError` will be passed to the handler and that the " "replacement from the error handler will be put into the output directly." msgstr "" -#: ../Doc/library/codecs.rst:403 +#: library/codecs.rst:403 msgid "" "Previously registered error handlers (including the standard error handlers) " "can be looked up by name:" msgstr "" -#: ../Doc/library/codecs.rst:408 +#: library/codecs.rst:408 msgid "Return the error handler previously registered under the name *name*." msgstr "" -#: ../Doc/library/codecs.rst:410 +#: library/codecs.rst:410 msgid "Raises a :exc:`LookupError` in case the handler cannot be found." msgstr "" -#: ../Doc/library/codecs.rst:412 +#: library/codecs.rst:412 msgid "" "The following standard error handlers are also made available as module " "level functions:" msgstr "" -#: ../Doc/library/codecs.rst:417 +#: library/codecs.rst:417 msgid "" "Implements the ``'strict'`` error handling: each encoding or decoding error " "raises a :exc:`UnicodeError`." msgstr "" -#: ../Doc/library/codecs.rst:423 +#: library/codecs.rst:423 msgid "" "Implements the ``'replace'`` error handling (for :term:`text encodings ` only): substitutes ``'?'`` for encoding errors (to be encoded by " @@ -547,44 +736,44 @@ msgid "" "decoding errors." msgstr "" -#: ../Doc/library/codecs.rst:431 +#: library/codecs.rst:431 msgid "" "Implements the ``'ignore'`` error handling: malformed data is ignored and " "encoding or decoding is continued without further notice." msgstr "" -#: ../Doc/library/codecs.rst:437 +#: library/codecs.rst:437 msgid "" "Implements the ``'xmlcharrefreplace'`` error handling (for encoding with :" "term:`text encodings ` only): the unencodable character is " "replaced by an appropriate XML character reference." msgstr "" -#: ../Doc/library/codecs.rst:444 +#: library/codecs.rst:444 msgid "" "Implements the ``'backslashreplace'`` error handling (for :term:`text " "encodings ` only): malformed data is replaced by a " "backslashed escape sequence." msgstr "" -#: ../Doc/library/codecs.rst:450 +#: library/codecs.rst:450 msgid "" "Implements the ``'namereplace'`` error handling (for encoding with :term:" "`text encodings ` only): the unencodable character is " "replaced by a ``\\N{...}`` escape sequence." msgstr "" -#: ../Doc/library/codecs.rst:460 +#: library/codecs.rst:460 msgid "Stateless Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:462 +#: library/codecs.rst:462 msgid "" "The base :class:`Codec` class defines these methods which also define the " "function interfaces of the stateless encoder and decoder:" msgstr "" -#: ../Doc/library/codecs.rst:468 +#: library/codecs.rst:468 msgid "" "Encodes the object *input* and returns a tuple (output object, length " "consumed). For instance, :term:`text encoding` converts a string object to a " @@ -592,26 +781,26 @@ msgid "" "``iso-8859-1``)." msgstr "" -#: ../Doc/library/codecs.rst:473 ../Doc/library/codecs.rst:495 +#: library/codecs.rst:495 msgid "" "The *errors* argument defines the error handling to apply. It defaults to " "``'strict'`` handling." msgstr "" -#: ../Doc/library/codecs.rst:476 +#: library/codecs.rst:476 msgid "" "The method may not store state in the :class:`Codec` instance. Use :class:" "`StreamWriter` for codecs which have to keep state in order to make encoding " "efficient." msgstr "" -#: ../Doc/library/codecs.rst:480 +#: library/codecs.rst:480 msgid "" "The encoder must be able to handle zero length input and return an empty " "object of the output object type in this situation." msgstr "" -#: ../Doc/library/codecs.rst:486 +#: library/codecs.rst:486 msgid "" "Decodes the object *input* and returns a tuple (output object, length " "consumed). For instance, for a :term:`text encoding`, decoding converts a " @@ -619,31 +808,31 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:491 +#: library/codecs.rst:491 msgid "" "For text encodings and bytes-to-bytes codecs, *input* must be a bytes object " "or one which provides the read-only buffer interface -- for example, buffer " "objects and memory mapped files." msgstr "" -#: ../Doc/library/codecs.rst:498 +#: library/codecs.rst:498 msgid "" "The method may not store state in the :class:`Codec` instance. Use :class:" "`StreamReader` for codecs which have to keep state in order to make decoding " "efficient." msgstr "" -#: ../Doc/library/codecs.rst:502 +#: library/codecs.rst:502 msgid "" "The decoder must be able to handle zero length input and return an empty " "object of the output object type in this situation." msgstr "" -#: ../Doc/library/codecs.rst:507 +#: library/codecs.rst:507 msgid "Incremental Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:509 +#: library/codecs.rst:509 msgid "" "The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " "provide the basic interface for incremental encoding and decoding. Encoding/" @@ -654,7 +843,7 @@ msgid "" "during method calls." msgstr "" -#: ../Doc/library/codecs.rst:517 +#: library/codecs.rst:517 msgid "" "The joined output of calls to the :meth:`~IncrementalEncoder.encode`/:meth:" "`~IncrementalDecoder.decode` method is the same as if all the single inputs " @@ -662,36 +851,36 @@ msgid "" "encoder/decoder." msgstr "" -#: ../Doc/library/codecs.rst:526 +#: library/codecs.rst:526 msgid "IncrementalEncoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:528 +#: library/codecs.rst:528 msgid "" "The :class:`IncrementalEncoder` class is used for encoding an input in " "multiple steps. It defines the following methods which every incremental " "encoder must define in order to be compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:535 +#: library/codecs.rst:535 msgid "Constructor for an :class:`IncrementalEncoder` instance." msgstr "" -#: ../Doc/library/codecs.rst:537 +#: library/codecs.rst:537 msgid "" "All incremental encoders must provide this constructor interface. They are " "free to add additional keyword arguments, but only the ones defined here are " "used by the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:541 +#: library/codecs.rst:541 msgid "" "The :class:`IncrementalEncoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" "handlers` for possible values." msgstr "" -#: ../Doc/library/codecs.rst:545 +#: library/codecs.rst:545 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -699,21 +888,21 @@ msgid "" "`IncrementalEncoder` object." msgstr "" -#: ../Doc/library/codecs.rst:553 +#: library/codecs.rst:553 msgid "" "Encodes *object* (taking the current state of the encoder into account) and " "returns the resulting encoded object. If this is the last call to :meth:" "`encode` *final* must be true (the default is false)." msgstr "" -#: ../Doc/library/codecs.rst:560 +#: library/codecs.rst:560 msgid "" "Reset the encoder to the initial state. The output is discarded: call ``." "encode(object, final=True)``, passing an empty byte or text string if " "necessary, to reset the encoder and to get the output." msgstr "" -#: ../Doc/library/codecs.rst:567 +#: library/codecs.rst:567 msgid "" "Return the current state of the encoder which must be an integer. The " "implementation should make sure that ``0`` is the most common state. (States " @@ -722,42 +911,42 @@ msgid "" "into an integer.)" msgstr "" -#: ../Doc/library/codecs.rst:576 +#: library/codecs.rst:576 msgid "" "Set the state of the encoder to *state*. *state* must be an encoder state " "returned by :meth:`getstate`." msgstr "" -#: ../Doc/library/codecs.rst:583 +#: library/codecs.rst:583 msgid "IncrementalDecoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:585 +#: library/codecs.rst:585 msgid "" "The :class:`IncrementalDecoder` class is used for decoding an input in " "multiple steps. It defines the following methods which every incremental " "decoder must define in order to be compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:592 +#: library/codecs.rst:592 msgid "Constructor for an :class:`IncrementalDecoder` instance." msgstr "" -#: ../Doc/library/codecs.rst:594 +#: library/codecs.rst:594 msgid "" "All incremental decoders must provide this constructor interface. They are " "free to add additional keyword arguments, but only the ones defined here are " "used by the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:598 +#: library/codecs.rst:598 msgid "" "The :class:`IncrementalDecoder` may implement different error handling " "schemes by providing the *errors* keyword argument. See :ref:`error-" "handlers` for possible values." msgstr "" -#: ../Doc/library/codecs.rst:602 +#: library/codecs.rst:602 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -765,7 +954,7 @@ msgid "" "`IncrementalDecoder` object." msgstr "" -#: ../Doc/library/codecs.rst:610 +#: library/codecs.rst:610 msgid "" "Decodes *object* (taking the current state of the decoder into account) and " "returns the resulting decoded object. If this is the last call to :meth:" @@ -776,11 +965,11 @@ msgid "" "(which might raise an exception)." msgstr "" -#: ../Doc/library/codecs.rst:621 +#: library/codecs.rst:621 msgid "Reset the decoder to the initial state." msgstr "" -#: ../Doc/library/codecs.rst:626 +#: library/codecs.rst:626 msgid "" "Return the current state of the decoder. This must be a tuple with two " "items, the first must be the buffer containing the still undecoded input. " @@ -795,59 +984,59 @@ msgid "" "bytes of the resulting string into an integer.)" msgstr "" -#: ../Doc/library/codecs.rst:641 +#: library/codecs.rst:641 msgid "" "Set the state of the decoder to *state*. *state* must be a decoder state " "returned by :meth:`getstate`." msgstr "" -#: ../Doc/library/codecs.rst:646 +#: library/codecs.rst:646 msgid "Stream Encoding and Decoding" msgstr "" -#: ../Doc/library/codecs.rst:649 +#: library/codecs.rst:649 msgid "" "The :class:`StreamWriter` and :class:`StreamReader` classes provide generic " "working interfaces which can be used to implement new encoding submodules " "very easily. See :mod:`encodings.utf_8` for an example of how this is done." msgstr "" -#: ../Doc/library/codecs.rst:657 +#: library/codecs.rst:657 msgid "StreamWriter Objects" msgstr "" -#: ../Doc/library/codecs.rst:659 +#: library/codecs.rst:659 msgid "" "The :class:`StreamWriter` class is a subclass of :class:`Codec` and defines " "the following methods which every stream writer must define in order to be " "compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:666 +#: library/codecs.rst:666 msgid "Constructor for a :class:`StreamWriter` instance." msgstr "" -#: ../Doc/library/codecs.rst:668 +#: library/codecs.rst:668 msgid "" "All stream writers must provide this constructor interface. They are free to " "add additional keyword arguments, but only the ones defined here are used by " "the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:672 +#: library/codecs.rst:672 msgid "" "The *stream* argument must be a file-like object open for writing text or " "binary data, as appropriate for the specific codec." msgstr "" -#: ../Doc/library/codecs.rst:675 +#: library/codecs.rst:675 msgid "" "The :class:`StreamWriter` may implement different error handling schemes by " "providing the *errors* keyword argument. See :ref:`error-handlers` for the " "standard error handlers the underlying stream codec may support." msgstr "" -#: ../Doc/library/codecs.rst:679 +#: library/codecs.rst:679 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -855,70 +1044,70 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:685 +#: library/codecs.rst:685 msgid "Writes the object's contents encoded to the stream." msgstr "" -#: ../Doc/library/codecs.rst:690 +#: library/codecs.rst:690 msgid "" "Writes the concatenated list of strings to the stream (possibly by reusing " "the :meth:`write` method). The standard bytes-to-bytes codecs do not support " "this method." msgstr "" -#: ../Doc/library/codecs.rst:697 +#: library/codecs.rst:697 msgid "Flushes and resets the codec buffers used for keeping state." msgstr "" -#: ../Doc/library/codecs.rst:699 +#: library/codecs.rst:699 msgid "" "Calling this method should ensure that the data on the output is put into a " "clean state that allows appending of new fresh data without having to rescan " "the whole stream to recover state." msgstr "" -#: ../Doc/library/codecs.rst:704 +#: library/codecs.rst:704 msgid "" "In addition to the above methods, the :class:`StreamWriter` must also " "inherit all other methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:711 +#: library/codecs.rst:711 msgid "StreamReader Objects" msgstr "" -#: ../Doc/library/codecs.rst:713 +#: library/codecs.rst:713 msgid "" "The :class:`StreamReader` class is a subclass of :class:`Codec` and defines " "the following methods which every stream reader must define in order to be " "compatible with the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:720 +#: library/codecs.rst:720 msgid "Constructor for a :class:`StreamReader` instance." msgstr "" -#: ../Doc/library/codecs.rst:722 +#: library/codecs.rst:722 msgid "" "All stream readers must provide this constructor interface. They are free to " "add additional keyword arguments, but only the ones defined here are used by " "the Python codec registry." msgstr "" -#: ../Doc/library/codecs.rst:726 +#: library/codecs.rst:726 msgid "" "The *stream* argument must be a file-like object open for reading text or " "binary data, as appropriate for the specific codec." msgstr "" -#: ../Doc/library/codecs.rst:729 +#: library/codecs.rst:729 msgid "" "The :class:`StreamReader` may implement different error handling schemes by " "providing the *errors* keyword argument. See :ref:`error-handlers` for the " "standard error handlers the underlying stream codec may support." msgstr "" -#: ../Doc/library/codecs.rst:733 +#: library/codecs.rst:733 msgid "" "The *errors* argument will be assigned to an attribute of the same name. " "Assigning to this attribute makes it possible to switch between different " @@ -926,24 +1115,24 @@ msgid "" "object." msgstr "" -#: ../Doc/library/codecs.rst:737 +#: library/codecs.rst:737 msgid "" "The set of allowed values for the *errors* argument can be extended with :" "func:`register_error`." msgstr "" -#: ../Doc/library/codecs.rst:743 +#: library/codecs.rst:743 msgid "Decodes data from the stream and returns the resulting object." msgstr "" -#: ../Doc/library/codecs.rst:745 +#: library/codecs.rst:745 msgid "" "The *chars* argument indicates the number of decoded code points or bytes to " "return. The :func:`read` method will never return more data than requested, " "but it might return less, if there is not enough available." msgstr "" -#: ../Doc/library/codecs.rst:750 +#: library/codecs.rst:750 msgid "" "The *size* argument indicates the approximate maximum number of encoded " "bytes or code points to read for decoding. The decoder can modify this " @@ -952,13 +1141,13 @@ msgid "" "huge files in one step." msgstr "" -#: ../Doc/library/codecs.rst:757 +#: library/codecs.rst:757 msgid "" "The *firstline* flag indicates that it would be sufficient to only return " "the first line, if there are decoding errors on later lines." msgstr "" -#: ../Doc/library/codecs.rst:761 +#: library/codecs.rst:761 msgid "" "The method should use a greedy read strategy meaning that it should read as " "much data as is allowed within the definition of the encoding and the given " @@ -966,72 +1155,72 @@ msgid "" "the stream, these should be read too." msgstr "" -#: ../Doc/library/codecs.rst:769 +#: library/codecs.rst:769 msgid "Read one line from the input stream and return the decoded data." msgstr "" -#: ../Doc/library/codecs.rst:771 +#: library/codecs.rst:771 msgid "" "*size*, if given, is passed as size argument to the stream's :meth:`read` " "method." msgstr "" -#: ../Doc/library/codecs.rst:774 +#: library/codecs.rst:774 msgid "" "If *keepends* is false line-endings will be stripped from the lines returned." msgstr "" -#: ../Doc/library/codecs.rst:780 +#: library/codecs.rst:780 msgid "" "Read all lines available on the input stream and return them as a list of " "lines." msgstr "" -#: ../Doc/library/codecs.rst:783 +#: library/codecs.rst:783 msgid "" "Line-endings are implemented using the codec's :meth:`decode` method and are " "included in the list entries if *keepends* is true." msgstr "" -#: ../Doc/library/codecs.rst:786 +#: library/codecs.rst:786 msgid "" "*sizehint*, if given, is passed as the *size* argument to the stream's :meth:" "`read` method." msgstr "" -#: ../Doc/library/codecs.rst:792 +#: library/codecs.rst:792 msgid "Resets the codec buffers used for keeping state." msgstr "" -#: ../Doc/library/codecs.rst:794 +#: library/codecs.rst:794 msgid "" "Note that no stream repositioning should take place. This method is " "primarily intended to be able to recover from decoding errors." msgstr "" -#: ../Doc/library/codecs.rst:798 +#: library/codecs.rst:798 msgid "" "In addition to the above methods, the :class:`StreamReader` must also " "inherit all other methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:804 +#: library/codecs.rst:804 msgid "StreamReaderWriter Objects" msgstr "" -#: ../Doc/library/codecs.rst:806 +#: library/codecs.rst:806 msgid "" "The :class:`StreamReaderWriter` is a convenience class that allows wrapping " "streams which work in both read and write modes." msgstr "" -#: ../Doc/library/codecs.rst:809 ../Doc/library/codecs.rst:833 +#: library/codecs.rst:833 msgid "" "The design is such that one can use the factory functions returned by the :" "func:`lookup` function to construct the instance." msgstr "" -#: ../Doc/library/codecs.rst:815 +#: library/codecs.rst:815 msgid "" "Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " "object. *Reader* and *Writer* must be factory functions or classes providing " @@ -1040,24 +1229,24 @@ msgid "" "writers." msgstr "" -#: ../Doc/library/codecs.rst:820 +#: library/codecs.rst:820 msgid "" ":class:`StreamReaderWriter` instances define the combined interfaces of :" "class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " "other methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:828 +#: library/codecs.rst:828 msgid "StreamRecoder Objects" msgstr "" -#: ../Doc/library/codecs.rst:830 +#: library/codecs.rst:830 msgid "" "The :class:`StreamRecoder` translates data from one encoding to another, " "which is sometimes useful when dealing with different encoding environments." msgstr "" -#: ../Doc/library/codecs.rst:839 +#: library/codecs.rst:839 msgid "" "Creates a :class:`StreamRecoder` instance which implements a two-way " "conversion: *encode* and *decode* work on the frontend — the data visible to " @@ -1065,17 +1254,17 @@ msgid "" "work on the backend — the data in *stream*." msgstr "" -#: ../Doc/library/codecs.rst:844 +#: library/codecs.rst:844 msgid "" "You can use these objects to do transparent transcodings, e.g., from Latin-1 " "to UTF-8 and back." msgstr "" -#: ../Doc/library/codecs.rst:847 +#: library/codecs.rst:847 msgid "The *stream* argument must be a file-like object." msgstr "" -#: ../Doc/library/codecs.rst:849 +#: library/codecs.rst:849 msgid "" "The *encode* and *decode* arguments must adhere to the :class:`Codec` " "interface. *Reader* and *Writer* must be factory functions or classes " @@ -1083,24 +1272,24 @@ msgid "" "interface respectively." msgstr "" -#: ../Doc/library/codecs.rst:854 +#: library/codecs.rst:854 msgid "" "Error handling is done in the same way as defined for the stream readers and " "writers." msgstr "" -#: ../Doc/library/codecs.rst:858 +#: library/codecs.rst:858 msgid "" ":class:`StreamRecoder` instances define the combined interfaces of :class:" "`StreamReader` and :class:`StreamWriter` classes. They inherit all other " "methods and attributes from the underlying stream." msgstr "" -#: ../Doc/library/codecs.rst:866 +#: library/codecs.rst:866 msgid "Encodings and Unicode" msgstr "" -#: ../Doc/library/codecs.rst:868 +#: library/codecs.rst:868 msgid "" "Strings are stored internally as sequences of code points in range ``0x0``--" "``0x10FFFF``. (See :pep:`393` for more details about the implementation.) " @@ -1112,7 +1301,7 @@ msgid "" "collectivity referred to as :term:`text encodings `." msgstr "" -#: ../Doc/library/codecs.rst:878 +#: library/codecs.rst:878 msgid "" "The simplest text encoding (called ``'latin-1'`` or ``'iso-8859-1'``) maps " "the code points 0--255 to the bytes ``0x0``--``0xff``, which means that a " @@ -1123,7 +1312,7 @@ msgid "" "position 3: ordinal not in range(256)``." msgstr "" -#: ../Doc/library/codecs.rst:886 +#: library/codecs.rst:886 msgid "" "There's another group of encodings (the so called charmap encodings) that " "choose a different subset of all Unicode code points and how these code " @@ -1133,7 +1322,7 @@ msgid "" "that shows you which character is mapped to which byte value." msgstr "" -#: ../Doc/library/codecs.rst:893 +#: library/codecs.rst:893 msgid "" "All of these encodings can only encode 256 of the 1114112 code points " "defined in Unicode. A simple and straightforward way that can store each " @@ -1163,7 +1352,7 @@ msgid "" "normal character that will be decoded like any other." msgstr "" -#: ../Doc/library/codecs.rst:919 +#: library/codecs.rst:919 msgid "" "There's another encoding that is able to encoding the full range of Unicode " "characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " @@ -1174,86 +1363,87 @@ msgid "" "which when concatenated give the Unicode character):" msgstr "" -#: ../Doc/library/codecs.rst:928 +#: library/codecs.rst:928 msgid "Range" msgstr "*Range*" -#: ../Doc/library/codecs.rst:928 +#: library/codecs.rst:928 +#, fuzzy msgid "Encoding" -msgstr "" +msgstr "Encodages" -#: ../Doc/library/codecs.rst:930 +#: library/codecs.rst:930 msgid "``U-00000000`` ... ``U-0000007F``" msgstr "``U-00000000`` ... ``U-0000007F``" -#: ../Doc/library/codecs.rst:930 +#: library/codecs.rst:930 msgid "0xxxxxxx" msgstr "0xxxxxxx" -#: ../Doc/library/codecs.rst:932 +#: library/codecs.rst:932 msgid "``U-00000080`` ... ``U-000007FF``" msgstr "``U-00000080`` ... ``U-000007FF``" -#: ../Doc/library/codecs.rst:932 +#: library/codecs.rst:932 msgid "110xxxxx 10xxxxxx" msgstr "110xxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:934 +#: library/codecs.rst:934 msgid "``U-00000800`` ... ``U-0000FFFF``" msgstr "``U-00000800`` ... ``U-0000FFFF``" -#: ../Doc/library/codecs.rst:934 +#: library/codecs.rst:934 msgid "1110xxxx 10xxxxxx 10xxxxxx" msgstr "1110xxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:936 +#: library/codecs.rst:936 msgid "``U-00010000`` ... ``U-0010FFFF``" msgstr "``U-00010000`` ... ``U-0010FFFF``" -#: ../Doc/library/codecs.rst:936 +#: library/codecs.rst:936 msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" msgstr "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" -#: ../Doc/library/codecs.rst:939 +#: library/codecs.rst:939 msgid "" "The least significant bit of the Unicode character is the rightmost x bit." msgstr "" -#: ../Doc/library/codecs.rst:941 +#: library/codecs.rst:941 msgid "" "As UTF-8 is an 8-bit encoding no BOM is required and any ``U+FEFF`` " "character in the decoded string (even if it's the first character) is " "treated as a ``ZERO WIDTH NO-BREAK SPACE``." msgstr "" -#: ../Doc/library/codecs.rst:945 +#: library/codecs.rst:945 msgid "" "Without external information it's impossible to reliably determine which " "encoding was used for encoding a string. Each charmap encoding can decode " "any random byte sequence. However that's not possible with UTF-8, as UTF-8 " "byte sequences have a structure that doesn't allow arbitrary byte sequences. " "To increase the reliability with which a UTF-8 encoding can be detected, " -"Microsoft invented a variant of UTF-8 (that Python 2.5 calls ``\"utf-8-sig" -"\"``) for its Notepad program: Before any of the Unicode characters is " +"Microsoft invented a variant of UTF-8 (that Python 2.5 calls ``\"utf-8-" +"sig\"``) for its Notepad program: Before any of the Unicode characters is " "written to the file, a UTF-8 encoded BOM (which looks like this as a byte " "sequence: ``0xef``, ``0xbb``, ``0xbf``) is written. As it's rather " "improbable that any charmap encoded file starts with these byte values " "(which would e.g. map to" msgstr "" -#: ../Doc/library/codecs.rst:0 +#: library/codecs.rst:0 msgid "LATIN SMALL LETTER I WITH DIAERESIS" msgstr "LATIN SMALL LETTER I WITH DIAERESIS" -#: ../Doc/library/codecs.rst:0 +#: library/codecs.rst:0 msgid "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" msgstr "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" -#: ../Doc/library/codecs.rst:0 +#: library/codecs.rst:0 msgid "INVERTED QUESTION MARK" msgstr "INVERTED QUESTION MARK" -#: ../Doc/library/codecs.rst:961 +#: library/codecs.rst:961 msgid "" "in iso-8859-1), this increases the probability that a ``utf-8-sig`` encoding " "can be correctly guessed from the byte sequence. So here the BOM is not used " @@ -1265,11 +1455,11 @@ msgid "" "the use of the BOM is discouraged and should generally be avoided." msgstr "" -#: ../Doc/library/codecs.rst:974 +#: library/codecs.rst:974 msgid "Standard Encodings" msgstr "" -#: ../Doc/library/codecs.rst:976 +#: library/codecs.rst:976 msgid "" "Python comes with a number of codecs built-in, either implemented as C " "functions or with dictionaries as mapping tables. The following table lists " @@ -1281,7 +1471,7 @@ msgid "" "alias for the ``'utf_8'`` codec." msgstr "" -#: ../Doc/library/codecs.rst:986 +#: library/codecs.rst:986 msgid "" "Some common encodings can bypass the codecs lookup machinery to improve " "performance. These optimization opportunities are only recognized by CPython " @@ -1291,11 +1481,11 @@ msgid "" "Using alternative aliases for these encodings may result in slower execution." msgstr "" -#: ../Doc/library/codecs.rst:994 +#: library/codecs.rst:994 msgid "Optimization opportunity recognized for us-ascii." msgstr "" -#: ../Doc/library/codecs.rst:997 +#: library/codecs.rst:997 msgid "" "Many of the character sets support the same languages. They vary in " "individual characters (e.g. whether the EURO SIGN is supported or not), and " @@ -1303,506 +1493,485 @@ msgid "" "languages in particular, the following variants typically exist:" msgstr "" -#: ../Doc/library/codecs.rst:1002 +#: library/codecs.rst:1002 msgid "an ISO 8859 codeset" msgstr "" -#: ../Doc/library/codecs.rst:1004 +#: library/codecs.rst:1004 msgid "" "a Microsoft Windows code page, which is typically derived from an 8859 " "codeset, but replaces control characters with additional graphic characters" msgstr "" -#: ../Doc/library/codecs.rst:1007 +#: library/codecs.rst:1007 msgid "an IBM EBCDIC code page" msgstr "" -#: ../Doc/library/codecs.rst:1009 +#: library/codecs.rst:1009 msgid "an IBM PC code page, which is ASCII compatible" msgstr "" -#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1268 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: library/codecs.rst:1268 library/codecs.rst:1390 msgid "Codec" msgstr "" -#: ../Doc/library/codecs.rst:1014 ../Doc/library/codecs.rst:1268 -#: ../Doc/library/codecs.rst:1335 ../Doc/library/codecs.rst:1390 +#: library/codecs.rst:1268 library/codecs.rst:1390 msgid "Aliases" msgstr "" -#: ../Doc/library/codecs.rst:1014 +#: library/codecs.rst:1014 msgid "Languages" msgstr "" -#: ../Doc/library/codecs.rst:1016 +#: library/codecs.rst:1016 msgid "ascii" msgstr "*ascii*" -#: ../Doc/library/codecs.rst:1016 +#: library/codecs.rst:1016 msgid "646, us-ascii" msgstr "*646*, *us-ascii*" -#: ../Doc/library/codecs.rst:1016 ../Doc/library/codecs.rst:1022 -#: ../Doc/library/codecs.rst:1030 +#: library/codecs.rst:1022 library/codecs.rst:1030 msgid "English" msgstr "Anglais" -#: ../Doc/library/codecs.rst:1018 +#: library/codecs.rst:1018 msgid "big5" msgstr "*big5*" -#: ../Doc/library/codecs.rst:1018 +#: library/codecs.rst:1018 msgid "big5-tw, csbig5" msgstr "*big5-tw*, *csbig5*" -#: ../Doc/library/codecs.rst:1018 ../Doc/library/codecs.rst:1020 -#: ../Doc/library/codecs.rst:1078 +#: library/codecs.rst:1020 library/codecs.rst:1078 msgid "Traditional Chinese" msgstr "Chinois Traditionnel" -#: ../Doc/library/codecs.rst:1020 +#: library/codecs.rst:1020 msgid "big5hkscs" msgstr "*big5hkscs*" -#: ../Doc/library/codecs.rst:1020 +#: library/codecs.rst:1020 msgid "big5-hkscs, hkscs" msgstr "*big5-hkscs*, *hkscs*" -#: ../Doc/library/codecs.rst:1022 +#: library/codecs.rst:1022 msgid "cp037" msgstr "*cp037*" -#: ../Doc/library/codecs.rst:1022 +#: library/codecs.rst:1022 msgid "IBM037, IBM039" msgstr "*IBM037*, *IBM039*" -#: ../Doc/library/codecs.rst:1024 +#: library/codecs.rst:1024 msgid "cp273" msgstr "*cp273*" -#: ../Doc/library/codecs.rst:1024 +#: library/codecs.rst:1024 msgid "273, IBM273, csIBM273" msgstr "*273*, *IBM273*, *csIBM273*" -#: ../Doc/library/codecs.rst:1024 +#: library/codecs.rst:1024 msgid "German" msgstr "Allemand" -#: ../Doc/library/codecs.rst:1028 +#: library/codecs.rst:1028 msgid "cp424" msgstr "*cp424*" -#: ../Doc/library/codecs.rst:1028 +#: library/codecs.rst:1028 msgid "EBCDIC-CP-HE, IBM424" msgstr "*EBCDIC-CP-HE*, *IBM424*" -#: ../Doc/library/codecs.rst:1028 ../Doc/library/codecs.rst:1048 -#: ../Doc/library/codecs.rst:1058 ../Doc/library/codecs.rst:1101 -#: ../Doc/library/codecs.rst:1164 +#: library/codecs.rst:1048 library/codecs.rst:1101 library/codecs.rst:1164 msgid "Hebrew" msgstr "Hébreux" -#: ../Doc/library/codecs.rst:1030 +#: library/codecs.rst:1030 msgid "cp437" msgstr "*cp437*" -#: ../Doc/library/codecs.rst:1030 +#: library/codecs.rst:1030 msgid "437, IBM437" msgstr "*437*, *IBM437*" -#: ../Doc/library/codecs.rst:1032 +#: library/codecs.rst:1032 msgid "cp500" msgstr "*cp500*" -#: ../Doc/library/codecs.rst:1032 +#: library/codecs.rst:1032 msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" msgstr "*EBCDIC-CP-BE*, *EBCDIC-CP-CH*, *IBM500*" -#: ../Doc/library/codecs.rst:1032 ../Doc/library/codecs.rst:1041 -#: ../Doc/library/codecs.rst:1052 ../Doc/library/codecs.rst:1088 -#: ../Doc/library/codecs.rst:1095 ../Doc/library/codecs.rst:1148 -#: ../Doc/library/codecs.rst:1176 ../Doc/library/codecs.rst:1203 +#: library/codecs.rst:1041 library/codecs.rst:1088 library/codecs.rst:1148 +#: library/codecs.rst:1203 msgid "Western Europe" msgstr "Europe de l'ouest" -#: ../Doc/library/codecs.rst:1035 +#: library/codecs.rst:1035 msgid "cp720" msgstr "*cp720*" -#: ../Doc/library/codecs.rst:1035 ../Doc/library/codecs.rst:1062 -#: ../Doc/library/codecs.rst:1103 ../Doc/library/codecs.rst:1160 +#: library/codecs.rst:1062 library/codecs.rst:1160 msgid "Arabic" msgstr "Arabe" -#: ../Doc/library/codecs.rst:1037 +#: library/codecs.rst:1037 msgid "cp737" msgstr "*cp737*" -#: ../Doc/library/codecs.rst:1037 ../Doc/library/codecs.rst:1068 -#: ../Doc/library/codecs.rst:1072 ../Doc/library/codecs.rst:1097 -#: ../Doc/library/codecs.rst:1162 ../Doc/library/codecs.rst:1197 +#: library/codecs.rst:1068 library/codecs.rst:1097 library/codecs.rst:1197 msgid "Greek" msgstr "Grec" -#: ../Doc/library/codecs.rst:1039 +#: library/codecs.rst:1039 msgid "cp775" msgstr "*cp775*" -#: ../Doc/library/codecs.rst:1039 +#: library/codecs.rst:1039 msgid "IBM775" msgstr "*IBM775*" -#: ../Doc/library/codecs.rst:1039 ../Doc/library/codecs.rst:1105 -#: ../Doc/library/codecs.rst:1155 ../Doc/library/codecs.rst:1172 +#: library/codecs.rst:1105 library/codecs.rst:1172 msgid "Baltic languages" msgstr "Langues Baltiques" -#: ../Doc/library/codecs.rst:1041 +#: library/codecs.rst:1041 msgid "cp850" msgstr "*cp850*" -#: ../Doc/library/codecs.rst:1041 +#: library/codecs.rst:1041 msgid "850, IBM850" msgstr "*850*, *IBM850*" -#: ../Doc/library/codecs.rst:1043 +#: library/codecs.rst:1043 msgid "cp852" msgstr "*cp852*" -#: ../Doc/library/codecs.rst:1043 +#: library/codecs.rst:1043 msgid "852, IBM852" msgstr "*852*, *IBM852*" -#: ../Doc/library/codecs.rst:1043 ../Doc/library/codecs.rst:1090 -#: ../Doc/library/codecs.rst:1151 ../Doc/library/codecs.rst:1201 +#: library/codecs.rst:1090 library/codecs.rst:1201 msgid "Central and Eastern Europe" msgstr "Europe centrale et Europe de l'Est" -#: ../Doc/library/codecs.rst:1045 +#: library/codecs.rst:1045 msgid "cp855" msgstr "*cp855*" -#: ../Doc/library/codecs.rst:1045 +#: library/codecs.rst:1045 msgid "855, IBM855" msgstr "*855*, *IBM855*" -#: ../Doc/library/codecs.rst:1045 ../Doc/library/codecs.rst:1092 -#: ../Doc/library/codecs.rst:1157 ../Doc/library/codecs.rst:1194 +#: library/codecs.rst:1092 library/codecs.rst:1194 msgid "Bulgarian, Byelorussian, Macedonian, Russian, Serbian" msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe" -#: ../Doc/library/codecs.rst:1048 +#: library/codecs.rst:1048 msgid "cp856" msgstr "*cp856*" -#: ../Doc/library/codecs.rst:1050 +#: library/codecs.rst:1050 msgid "cp857" msgstr "*cp857*" -#: ../Doc/library/codecs.rst:1050 +#: library/codecs.rst:1050 msgid "857, IBM857" msgstr "*857*, *IBM857*" -#: ../Doc/library/codecs.rst:1050 ../Doc/library/codecs.rst:1082 -#: ../Doc/library/codecs.rst:1099 ../Doc/library/codecs.rst:1166 -#: ../Doc/library/codecs.rst:1205 +#: library/codecs.rst:1082 library/codecs.rst:1166 library/codecs.rst:1205 msgid "Turkish" msgstr "Turc" -#: ../Doc/library/codecs.rst:1052 +#: library/codecs.rst:1052 msgid "cp858" msgstr "*cp858*" -#: ../Doc/library/codecs.rst:1052 +#: library/codecs.rst:1052 msgid "858, IBM858" msgstr "*858*, *IBM858*" -#: ../Doc/library/codecs.rst:1054 +#: library/codecs.rst:1054 msgid "cp860" msgstr "*cp860*" -#: ../Doc/library/codecs.rst:1054 +#: library/codecs.rst:1054 msgid "860, IBM860" msgstr "*860*, *IBM860*" -#: ../Doc/library/codecs.rst:1054 +#: library/codecs.rst:1054 msgid "Portuguese" msgstr "Portugais" -#: ../Doc/library/codecs.rst:1056 +#: library/codecs.rst:1056 msgid "cp861" msgstr "*cp861*" -#: ../Doc/library/codecs.rst:1056 +#: library/codecs.rst:1056 msgid "861, CP-IS, IBM861" msgstr "*861*, *CP-IS*, *IBM861*" -#: ../Doc/library/codecs.rst:1056 ../Doc/library/codecs.rst:1199 +#: library/codecs.rst:1199 msgid "Icelandic" msgstr "Islandais" -#: ../Doc/library/codecs.rst:1058 +#: library/codecs.rst:1058 msgid "cp862" msgstr "*cp862*" -#: ../Doc/library/codecs.rst:1058 +#: library/codecs.rst:1058 msgid "862, IBM862" msgstr "*862*, *IBM862*" -#: ../Doc/library/codecs.rst:1060 +#: library/codecs.rst:1060 msgid "cp863" msgstr "*cp863*" -#: ../Doc/library/codecs.rst:1060 +#: library/codecs.rst:1060 msgid "863, IBM863" msgstr "*863*, *IBM863*" -#: ../Doc/library/codecs.rst:1060 +#: library/codecs.rst:1060 msgid "Canadian" msgstr "Canadien" -#: ../Doc/library/codecs.rst:1062 +#: library/codecs.rst:1062 msgid "cp864" msgstr "*cp864*" -#: ../Doc/library/codecs.rst:1062 +#: library/codecs.rst:1062 msgid "IBM864" msgstr "*IBM864*" -#: ../Doc/library/codecs.rst:1064 +#: library/codecs.rst:1064 msgid "cp865" msgstr "*cp865*" -#: ../Doc/library/codecs.rst:1064 +#: library/codecs.rst:1064 msgid "865, IBM865" msgstr "*865*, *IBM865*" -#: ../Doc/library/codecs.rst:1064 +#: library/codecs.rst:1064 msgid "Danish, Norwegian" msgstr "" -#: ../Doc/library/codecs.rst:1066 +#: library/codecs.rst:1066 msgid "cp866" msgstr "*cp866*" -#: ../Doc/library/codecs.rst:1066 +#: library/codecs.rst:1066 msgid "866, IBM866" msgstr "*866*, *IBM866*" -#: ../Doc/library/codecs.rst:1066 ../Doc/library/codecs.rst:1182 +#: library/codecs.rst:1182 msgid "Russian" msgstr "Russe" -#: ../Doc/library/codecs.rst:1068 +#: library/codecs.rst:1068 msgid "cp869" msgstr "*cp869*" -#: ../Doc/library/codecs.rst:1068 +#: library/codecs.rst:1068 msgid "869, CP-GR, IBM869" msgstr "*869*, *CP-GR*, *IBM869*" -#: ../Doc/library/codecs.rst:1070 +#: library/codecs.rst:1070 msgid "cp874" msgstr "*cp874*" -#: ../Doc/library/codecs.rst:1070 +#: library/codecs.rst:1070 msgid "Thai" msgstr "" -#: ../Doc/library/codecs.rst:1072 +#: library/codecs.rst:1072 msgid "cp875" msgstr "*cp875*" -#: ../Doc/library/codecs.rst:1074 +#: library/codecs.rst:1074 msgid "cp932" msgstr "*cp932*" -#: ../Doc/library/codecs.rst:1074 +#: library/codecs.rst:1074 msgid "932, ms932, mskanji, ms-kanji" msgstr "*932*, *ms932*, *mskanji*, *ms-kanji*" -#: ../Doc/library/codecs.rst:1074 ../Doc/library/codecs.rst:1109 -#: ../Doc/library/codecs.rst:1111 ../Doc/library/codecs.rst:1113 -#: ../Doc/library/codecs.rst:1130 ../Doc/library/codecs.rst:1133 -#: ../Doc/library/codecs.rst:1138 ../Doc/library/codecs.rst:1141 -#: ../Doc/library/codecs.rst:1143 ../Doc/library/codecs.rst:1210 -#: ../Doc/library/codecs.rst:1213 ../Doc/library/codecs.rst:1216 +#: library/codecs.rst:1109 library/codecs.rst:1113 library/codecs.rst:1133 +#: library/codecs.rst:1141 library/codecs.rst:1210 library/codecs.rst:1216 msgid "Japanese" msgstr "" -#: ../Doc/library/codecs.rst:1076 +#: library/codecs.rst:1076 msgid "cp949" msgstr "*cp949*" -#: ../Doc/library/codecs.rst:1076 +#: library/codecs.rst:1076 msgid "949, ms949, uhc" msgstr "*949*, *ms949*, *uhc*" -#: ../Doc/library/codecs.rst:1076 ../Doc/library/codecs.rst:1115 -#: ../Doc/library/codecs.rst:1145 ../Doc/library/codecs.rst:1180 +#: library/codecs.rst:1115 library/codecs.rst:1180 msgid "Korean" msgstr "" -#: ../Doc/library/codecs.rst:1078 +#: library/codecs.rst:1078 msgid "cp950" msgstr "*cp950*" -#: ../Doc/library/codecs.rst:1078 +#: library/codecs.rst:1078 msgid "950, ms950" msgstr "*950*, *ms950*" -#: ../Doc/library/codecs.rst:1080 +#: library/codecs.rst:1080 msgid "cp1006" msgstr "*cp1006*" -#: ../Doc/library/codecs.rst:1080 +#: library/codecs.rst:1080 msgid "Urdu" msgstr "" -#: ../Doc/library/codecs.rst:1082 +#: library/codecs.rst:1082 msgid "cp1026" msgstr "*cp1026*" -#: ../Doc/library/codecs.rst:1082 +#: library/codecs.rst:1082 msgid "ibm1026" msgstr "*ibm1026*" -#: ../Doc/library/codecs.rst:1084 +#: library/codecs.rst:1084 msgid "cp1125" msgstr "*cp1125*" -#: ../Doc/library/codecs.rst:1084 +#: library/codecs.rst:1084 msgid "1125, ibm1125, cp866u, ruscii" msgstr "*1125*, *ibm1125*, *cp866u*, *ruscii*" -#: ../Doc/library/codecs.rst:1084 ../Doc/library/codecs.rst:1188 +#: library/codecs.rst:1188 msgid "Ukrainian" msgstr "" -#: ../Doc/library/codecs.rst:1088 +#: library/codecs.rst:1088 msgid "cp1140" msgstr "*cp1140*" -#: ../Doc/library/codecs.rst:1088 +#: library/codecs.rst:1088 msgid "ibm1140" msgstr "*ibm1140*" -#: ../Doc/library/codecs.rst:1090 +#: library/codecs.rst:1090 msgid "cp1250" msgstr "*cp1250*" -#: ../Doc/library/codecs.rst:1090 +#: library/codecs.rst:1090 msgid "windows-1250" msgstr "*windows-1250*" -#: ../Doc/library/codecs.rst:1092 +#: library/codecs.rst:1092 msgid "cp1251" msgstr "*cp1251*" -#: ../Doc/library/codecs.rst:1092 +#: library/codecs.rst:1092 msgid "windows-1251" msgstr "*windows-1251*" -#: ../Doc/library/codecs.rst:1095 +#: library/codecs.rst:1095 msgid "cp1252" msgstr "*cp1252*" -#: ../Doc/library/codecs.rst:1095 +#: library/codecs.rst:1095 msgid "windows-1252" msgstr "*windows-1252*" -#: ../Doc/library/codecs.rst:1097 +#: library/codecs.rst:1097 msgid "cp1253" msgstr "*cp1253*" -#: ../Doc/library/codecs.rst:1097 +#: library/codecs.rst:1097 msgid "windows-1253" msgstr "*windows-1253*" -#: ../Doc/library/codecs.rst:1099 +#: library/codecs.rst:1099 msgid "cp1254" msgstr "*cp1254*" -#: ../Doc/library/codecs.rst:1099 +#: library/codecs.rst:1099 msgid "windows-1254" msgstr "*windows-1254*" -#: ../Doc/library/codecs.rst:1101 +#: library/codecs.rst:1101 msgid "cp1255" msgstr "*cp1255*" -#: ../Doc/library/codecs.rst:1101 +#: library/codecs.rst:1101 msgid "windows-1255" msgstr "*windows-1255*" -#: ../Doc/library/codecs.rst:1103 +#: library/codecs.rst:1103 msgid "cp1256" msgstr "*cp1256*" -#: ../Doc/library/codecs.rst:1103 +#: library/codecs.rst:1103 msgid "windows-1256" msgstr "*windows-1256*" -#: ../Doc/library/codecs.rst:1105 +#: library/codecs.rst:1105 msgid "cp1257" msgstr "*cp1257*" -#: ../Doc/library/codecs.rst:1105 +#: library/codecs.rst:1105 msgid "windows-1257" msgstr "*windows-1257*" -#: ../Doc/library/codecs.rst:1107 +#: library/codecs.rst:1107 msgid "cp1258" msgstr "*cp1258*" -#: ../Doc/library/codecs.rst:1107 +#: library/codecs.rst:1107 msgid "windows-1258" msgstr "*windows-1258*" -#: ../Doc/library/codecs.rst:1107 +#: library/codecs.rst:1107 msgid "Vietnamese" msgstr "" -#: ../Doc/library/codecs.rst:1109 +#: library/codecs.rst:1109 msgid "euc_jp" msgstr "*euc_jp*" -#: ../Doc/library/codecs.rst:1109 +#: library/codecs.rst:1109 msgid "eucjp, ujis, u-jis" msgstr "*eucjp*, *ujis*, *u-jis*" -#: ../Doc/library/codecs.rst:1111 +#: library/codecs.rst:1111 msgid "euc_jis_2004" msgstr "*euc_jis_2004*" -#: ../Doc/library/codecs.rst:1111 +#: library/codecs.rst:1111 msgid "jisx0213, eucjis2004" msgstr "*jisx0213*, *eucjis2004*" -#: ../Doc/library/codecs.rst:1113 +#: library/codecs.rst:1113 msgid "euc_jisx0213" msgstr "*euc_jisx0213*" -#: ../Doc/library/codecs.rst:1113 +#: library/codecs.rst:1113 msgid "eucjisx0213" msgstr "*eucjisx0213*" -#: ../Doc/library/codecs.rst:1115 +#: library/codecs.rst:1115 msgid "euc_kr" msgstr "*euc_kr*" -#: ../Doc/library/codecs.rst:1115 +#: library/codecs.rst:1115 msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" msgstr "" "*euckr*, *korean*, *ksc5601*, *ks_c-5601*, *ks_c-5601-1987*, *ksx1001*, " "*ks_x-1001*" -#: ../Doc/library/codecs.rst:1119 +#: library/codecs.rst:1119 msgid "gb2312" msgstr "*gb2312*" -#: ../Doc/library/codecs.rst:1119 +#: library/codecs.rst:1119 msgid "" "chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " "gb2312-80, iso-ir-58" @@ -1810,447 +1979,444 @@ msgstr "" "*chinese*, *csiso58gb231280*, *euc-cn*, *euccn*, *eucgb2312-cn*, " "*gb2312-1980*, *gb2312-80*, *iso-ir-58*" -#: ../Doc/library/codecs.rst:1119 ../Doc/library/codecs.rst:1128 +#: library/codecs.rst:1128 msgid "Simplified Chinese" msgstr "" -#: ../Doc/library/codecs.rst:1124 +#: library/codecs.rst:1124 msgid "gbk" msgstr "*gbk*" -#: ../Doc/library/codecs.rst:1124 +#: library/codecs.rst:1124 msgid "936, cp936, ms936" msgstr "*936*, *cp936*, *ms936*" -#: ../Doc/library/codecs.rst:1124 ../Doc/library/codecs.rst:1126 +#: library/codecs.rst:1126 msgid "Unified Chinese" msgstr "" -#: ../Doc/library/codecs.rst:1126 +#: library/codecs.rst:1126 msgid "gb18030" msgstr "*gb18030*" -#: ../Doc/library/codecs.rst:1126 +#: library/codecs.rst:1126 msgid "gb18030-2000" msgstr "*gb18030-2000*" -#: ../Doc/library/codecs.rst:1128 +#: library/codecs.rst:1128 msgid "hz" msgstr "*hz*" -#: ../Doc/library/codecs.rst:1128 +#: library/codecs.rst:1128 msgid "hzgb, hz-gb, hz-gb-2312" msgstr "*hzgb*, *hz-gb*, *hz-gb-2312*" -#: ../Doc/library/codecs.rst:1130 +#: library/codecs.rst:1130 msgid "iso2022_jp" msgstr "*iso2022_jp*" -#: ../Doc/library/codecs.rst:1130 +#: library/codecs.rst:1130 msgid "csiso2022jp, iso2022jp, iso-2022-jp" msgstr "*csiso2022jp*, *iso2022jp*, *iso-2022-jp*" -#: ../Doc/library/codecs.rst:1133 +#: library/codecs.rst:1133 msgid "iso2022_jp_1" msgstr "*iso2022_jp_1*" -#: ../Doc/library/codecs.rst:1133 +#: library/codecs.rst:1133 msgid "iso2022jp-1, iso-2022-jp-1" msgstr "*iso2022jp-1*, *iso-2022-jp-1*" -#: ../Doc/library/codecs.rst:1135 +#: library/codecs.rst:1135 msgid "iso2022_jp_2" msgstr "*iso2022_jp_2*" -#: ../Doc/library/codecs.rst:1135 +#: library/codecs.rst:1135 msgid "iso2022jp-2, iso-2022-jp-2" msgstr "*iso2022jp-2*, *iso-2022-jp-2*" -#: ../Doc/library/codecs.rst:1135 +#: library/codecs.rst:1135 msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" msgstr "" -#: ../Doc/library/codecs.rst:1138 +#: library/codecs.rst:1138 msgid "iso2022_jp_2004" msgstr "*iso2022_jp_2004*" -#: ../Doc/library/codecs.rst:1138 +#: library/codecs.rst:1138 msgid "iso2022jp-2004, iso-2022-jp-2004" msgstr "*iso2022jp-2004*, *iso-2022-jp-2004*" -#: ../Doc/library/codecs.rst:1141 +#: library/codecs.rst:1141 msgid "iso2022_jp_3" msgstr "*iso2022_jp_3*" -#: ../Doc/library/codecs.rst:1141 +#: library/codecs.rst:1141 msgid "iso2022jp-3, iso-2022-jp-3" msgstr "*iso2022jp-3*, *iso-2022-jp-3*" -#: ../Doc/library/codecs.rst:1143 +#: library/codecs.rst:1143 msgid "iso2022_jp_ext" msgstr "*iso2022_jp_ext*" -#: ../Doc/library/codecs.rst:1143 +#: library/codecs.rst:1143 msgid "iso2022jp-ext, iso-2022-jp-ext" msgstr "*iso2022jp-ext*, *iso-2022-jp-ext*" -#: ../Doc/library/codecs.rst:1145 +#: library/codecs.rst:1145 msgid "iso2022_kr" msgstr "*iso2022_kr*" -#: ../Doc/library/codecs.rst:1145 +#: library/codecs.rst:1145 msgid "csiso2022kr, iso2022kr, iso-2022-kr" msgstr "*csiso2022kr*, *iso2022kr*, *iso-2022-kr*" -#: ../Doc/library/codecs.rst:1148 +#: library/codecs.rst:1148 msgid "latin_1" msgstr "*latin_1*" -#: ../Doc/library/codecs.rst:1148 +#: library/codecs.rst:1148 msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" msgstr "*iso-8859-1*, *iso8859-1*, *8859*, *cp819*, *latin*, *latin1*, *L1*" -#: ../Doc/library/codecs.rst:1151 +#: library/codecs.rst:1151 msgid "iso8859_2" msgstr "*iso8859_2*" -#: ../Doc/library/codecs.rst:1151 +#: library/codecs.rst:1151 msgid "iso-8859-2, latin2, L2" msgstr "*iso-8859-2*, *latin2*, *L2*" -#: ../Doc/library/codecs.rst:1153 +#: library/codecs.rst:1153 msgid "iso8859_3" msgstr "*iso8859_3*" -#: ../Doc/library/codecs.rst:1153 +#: library/codecs.rst:1153 msgid "iso-8859-3, latin3, L3" msgstr "*iso-8859-3*, *latin3*, *L3*" -#: ../Doc/library/codecs.rst:1153 +#: library/codecs.rst:1153 msgid "Esperanto, Maltese" msgstr "" -#: ../Doc/library/codecs.rst:1155 +#: library/codecs.rst:1155 msgid "iso8859_4" msgstr "*iso8859_4*" -#: ../Doc/library/codecs.rst:1155 +#: library/codecs.rst:1155 msgid "iso-8859-4, latin4, L4" msgstr "*iso-8859-4*, *latin4*, *L4*" -#: ../Doc/library/codecs.rst:1157 +#: library/codecs.rst:1157 msgid "iso8859_5" msgstr "*iso8859_5*" -#: ../Doc/library/codecs.rst:1157 +#: library/codecs.rst:1157 msgid "iso-8859-5, cyrillic" msgstr "*iso-8859-5*, *cyrillic*" -#: ../Doc/library/codecs.rst:1160 +#: library/codecs.rst:1160 msgid "iso8859_6" msgstr "*iso8859_6*" -#: ../Doc/library/codecs.rst:1160 +#: library/codecs.rst:1160 msgid "iso-8859-6, arabic" msgstr "*iso-8859-6*, *arabic*" -#: ../Doc/library/codecs.rst:1162 +#: library/codecs.rst:1162 msgid "iso8859_7" msgstr "*iso8859_7*" -#: ../Doc/library/codecs.rst:1162 +#: library/codecs.rst:1162 msgid "iso-8859-7, greek, greek8" msgstr "*iso-8859-7*, *greek*, *greek8*" -#: ../Doc/library/codecs.rst:1164 +#: library/codecs.rst:1164 msgid "iso8859_8" msgstr "*iso8859_8*" -#: ../Doc/library/codecs.rst:1164 +#: library/codecs.rst:1164 msgid "iso-8859-8, hebrew" msgstr "*iso-8859-8*, *hebrew*" -#: ../Doc/library/codecs.rst:1166 +#: library/codecs.rst:1166 msgid "iso8859_9" msgstr "*iso8859_9*" -#: ../Doc/library/codecs.rst:1166 +#: library/codecs.rst:1166 msgid "iso-8859-9, latin5, L5" msgstr "*iso-8859-9*, *latin5*, *L5*" -#: ../Doc/library/codecs.rst:1168 +#: library/codecs.rst:1168 msgid "iso8859_10" msgstr "*iso8859_10*" -#: ../Doc/library/codecs.rst:1168 +#: library/codecs.rst:1168 msgid "iso-8859-10, latin6, L6" msgstr "*iso-8859-10*, *latin6*, *L6*" -#: ../Doc/library/codecs.rst:1168 +#: library/codecs.rst:1168 msgid "Nordic languages" msgstr "" -#: ../Doc/library/codecs.rst:1170 +#: library/codecs.rst:1170 msgid "iso8859_11" msgstr "*iso8859_11*" -#: ../Doc/library/codecs.rst:1170 +#: library/codecs.rst:1170 msgid "iso-8859-11, thai" msgstr "*iso-8859-11*, *thai*" -#: ../Doc/library/codecs.rst:1170 +#: library/codecs.rst:1170 msgid "Thai languages" msgstr "" -#: ../Doc/library/codecs.rst:1172 +#: library/codecs.rst:1172 msgid "iso8859_13" msgstr "*iso8859_13*" -#: ../Doc/library/codecs.rst:1172 +#: library/codecs.rst:1172 msgid "iso-8859-13, latin7, L7" msgstr "*iso-8859-13*, *latin7*, *L7*" -#: ../Doc/library/codecs.rst:1174 +#: library/codecs.rst:1174 msgid "iso8859_14" msgstr "*iso8859_14*" -#: ../Doc/library/codecs.rst:1174 +#: library/codecs.rst:1174 msgid "iso-8859-14, latin8, L8" msgstr "*iso-8859-14*, *latin8*, *L8*" -#: ../Doc/library/codecs.rst:1174 +#: library/codecs.rst:1174 msgid "Celtic languages" msgstr "" -#: ../Doc/library/codecs.rst:1176 +#: library/codecs.rst:1176 msgid "iso8859_15" msgstr "*iso8859_15*" -#: ../Doc/library/codecs.rst:1176 +#: library/codecs.rst:1176 msgid "iso-8859-15, latin9, L9" msgstr "*iso-8859-15*, *latin9*, *L9*" -#: ../Doc/library/codecs.rst:1178 +#: library/codecs.rst:1178 msgid "iso8859_16" msgstr "*iso8859_16*" -#: ../Doc/library/codecs.rst:1178 +#: library/codecs.rst:1178 msgid "iso-8859-16, latin10, L10" msgstr "*iso-8859-16*, *latin10*, *L10*" -#: ../Doc/library/codecs.rst:1178 +#: library/codecs.rst:1178 msgid "South-Eastern Europe" msgstr "" -#: ../Doc/library/codecs.rst:1180 +#: library/codecs.rst:1180 msgid "johab" msgstr "*johab*" -#: ../Doc/library/codecs.rst:1180 +#: library/codecs.rst:1180 msgid "cp1361, ms1361" msgstr "*cp1361*, *ms1361*" -#: ../Doc/library/codecs.rst:1182 +#: library/codecs.rst:1182 msgid "koi8_r" msgstr "*koi8_r*" -#: ../Doc/library/codecs.rst:1184 +#: library/codecs.rst:1184 msgid "koi8_t" msgstr "*koi8_t*" -#: ../Doc/library/codecs.rst:1184 +#: library/codecs.rst:1184 msgid "Tajik" msgstr "*Tajik*" -#: ../Doc/library/codecs.rst:1188 +#: library/codecs.rst:1188 msgid "koi8_u" msgstr "*koi8_u*" -#: ../Doc/library/codecs.rst:1190 +#: library/codecs.rst:1190 msgid "kz1048" msgstr "*kz1048*" -#: ../Doc/library/codecs.rst:1190 +#: library/codecs.rst:1190 msgid "kz_1048, strk1048_2002, rk1048" msgstr "*kz_1048*, *strk1048_2002*, *rk1048*" -#: ../Doc/library/codecs.rst:1190 ../Doc/library/codecs.rst:1207 +#: library/codecs.rst:1207 msgid "Kazakh" msgstr "" -#: ../Doc/library/codecs.rst:1194 +#: library/codecs.rst:1194 msgid "mac_cyrillic" msgstr "*mac_cyrillic*" -#: ../Doc/library/codecs.rst:1194 +#: library/codecs.rst:1194 msgid "maccyrillic" msgstr "*maccyrillic*" -#: ../Doc/library/codecs.rst:1197 +#: library/codecs.rst:1197 msgid "mac_greek" msgstr "*mac_greek*" -#: ../Doc/library/codecs.rst:1197 +#: library/codecs.rst:1197 msgid "macgreek" msgstr "*macgreek*" -#: ../Doc/library/codecs.rst:1199 +#: library/codecs.rst:1199 msgid "mac_iceland" msgstr "*mac_iceland*" -#: ../Doc/library/codecs.rst:1199 +#: library/codecs.rst:1199 msgid "maciceland" msgstr "*maciceland*" -#: ../Doc/library/codecs.rst:1201 +#: library/codecs.rst:1201 msgid "mac_latin2" msgstr "*mac_latin2*" -#: ../Doc/library/codecs.rst:1201 +#: library/codecs.rst:1201 msgid "maclatin2, maccentraleurope" msgstr "*maclatin2*, *maccentraleurope*" -#: ../Doc/library/codecs.rst:1203 +#: library/codecs.rst:1203 msgid "mac_roman" msgstr "*mac_roman*" -#: ../Doc/library/codecs.rst:1203 +#: library/codecs.rst:1203 msgid "macroman, macintosh" msgstr "*macroman*, *macintosh*" -#: ../Doc/library/codecs.rst:1205 +#: library/codecs.rst:1205 msgid "mac_turkish" msgstr "*mac_turkish*" -#: ../Doc/library/codecs.rst:1205 +#: library/codecs.rst:1205 msgid "macturkish" msgstr "*macturkish*" -#: ../Doc/library/codecs.rst:1207 +#: library/codecs.rst:1207 msgid "ptcp154" msgstr "*ptcp154*" -#: ../Doc/library/codecs.rst:1207 +#: library/codecs.rst:1207 msgid "csptcp154, pt154, cp154, cyrillic-asian" msgstr "*csptcp154*, *pt154*, *cp154*, *cyrillic-asian*" -#: ../Doc/library/codecs.rst:1210 +#: library/codecs.rst:1210 msgid "shift_jis" msgstr "*shift_jis*" -#: ../Doc/library/codecs.rst:1210 +#: library/codecs.rst:1210 msgid "csshiftjis, shiftjis, sjis, s_jis" msgstr "*csshiftjis*, *shiftjis*, *sjis*, *s_jis*" -#: ../Doc/library/codecs.rst:1213 +#: library/codecs.rst:1213 msgid "shift_jis_2004" msgstr "*shift_jis_2004*" -#: ../Doc/library/codecs.rst:1213 +#: library/codecs.rst:1213 msgid "shiftjis2004, sjis_2004, sjis2004" msgstr "*shiftjis2004*, *sjis_2004*, *sjis2004*" -#: ../Doc/library/codecs.rst:1216 +#: library/codecs.rst:1216 msgid "shift_jisx0213" msgstr "*shift_jisx0213*" -#: ../Doc/library/codecs.rst:1216 +#: library/codecs.rst:1216 msgid "shiftjisx0213, sjisx0213, s_jisx0213" msgstr "*shiftjisx0213*, *sjisx0213*, *s_jisx0213*" -#: ../Doc/library/codecs.rst:1219 +#: library/codecs.rst:1219 msgid "utf_32" msgstr "*utf_32*" -#: ../Doc/library/codecs.rst:1219 +#: library/codecs.rst:1219 msgid "U32, utf32" msgstr "*U32*, *utf32*" -#: ../Doc/library/codecs.rst:1219 ../Doc/library/codecs.rst:1221 -#: ../Doc/library/codecs.rst:1223 ../Doc/library/codecs.rst:1225 -#: ../Doc/library/codecs.rst:1227 ../Doc/library/codecs.rst:1229 -#: ../Doc/library/codecs.rst:1231 ../Doc/library/codecs.rst:1233 -#: ../Doc/library/codecs.rst:1235 +#: library/codecs.rst:1221 library/codecs.rst:1225 library/codecs.rst:1229 +#: library/codecs.rst:1233 library/codecs.rst:1235 msgid "all languages" msgstr "" -#: ../Doc/library/codecs.rst:1221 +#: library/codecs.rst:1221 msgid "utf_32_be" msgstr "*utf_32_be*" -#: ../Doc/library/codecs.rst:1221 +#: library/codecs.rst:1221 msgid "UTF-32BE" msgstr "*UTF-32BE*" -#: ../Doc/library/codecs.rst:1223 +#: library/codecs.rst:1223 msgid "utf_32_le" msgstr "*utf_32_le*" -#: ../Doc/library/codecs.rst:1223 +#: library/codecs.rst:1223 msgid "UTF-32LE" msgstr "*UTF-32LE*" -#: ../Doc/library/codecs.rst:1225 +#: library/codecs.rst:1225 msgid "utf_16" msgstr "*utf_16*" -#: ../Doc/library/codecs.rst:1225 +#: library/codecs.rst:1225 msgid "U16, utf16" msgstr "*U16*, *utf16*" -#: ../Doc/library/codecs.rst:1227 +#: library/codecs.rst:1227 msgid "utf_16_be" msgstr "*utf_16_be*" -#: ../Doc/library/codecs.rst:1227 +#: library/codecs.rst:1227 msgid "UTF-16BE" msgstr "*UTF-16BE*" -#: ../Doc/library/codecs.rst:1229 +#: library/codecs.rst:1229 msgid "utf_16_le" msgstr "*utf_16_le*" -#: ../Doc/library/codecs.rst:1229 +#: library/codecs.rst:1229 msgid "UTF-16LE" msgstr "*UTF-16LE*" -#: ../Doc/library/codecs.rst:1231 +#: library/codecs.rst:1231 msgid "utf_7" msgstr "*utf_7*" -#: ../Doc/library/codecs.rst:1231 +#: library/codecs.rst:1231 msgid "U7, unicode-1-1-utf-7" msgstr "*U7*, *unicode-1-1-utf-7*" -#: ../Doc/library/codecs.rst:1233 +#: library/codecs.rst:1233 msgid "utf_8" msgstr "*utf_8*" -#: ../Doc/library/codecs.rst:1233 +#: library/codecs.rst:1233 #, fuzzy msgid "U8, UTF, utf8, cp65001" msgstr "*U8*, *UTF*, *utf8*" -#: ../Doc/library/codecs.rst:1235 +#: library/codecs.rst:1235 msgid "utf_8_sig" msgstr "*utf_8_sig*" -#: ../Doc/library/codecs.rst:1238 +#: library/codecs.rst:1238 msgid "" "The utf-16\\* and utf-32\\* encoders no longer allow surrogate code points " "(``U+D800``--``U+DFFF``) to be encoded. The utf-32\\* decoders no longer " "decode byte sequences that correspond to surrogate code points." msgstr "" -#: ../Doc/library/codecs.rst:1244 +#: library/codecs.rst:1244 msgid "``cp65001`` is now an alias to ``utf_8``." msgstr "" -#: ../Doc/library/codecs.rst:1249 +#: library/codecs.rst:1249 msgid "Python Specific Encodings" msgstr "" -#: ../Doc/library/codecs.rst:1251 +#: library/codecs.rst:1251 msgid "" "A number of predefined codecs are specific to Python, so their codec names " "have no meaning outside Python. These are listed in the tables below based " @@ -2260,272 +2426,272 @@ msgid "" "asymmetric codecs, the stated meaning describes the encoding direction." msgstr "" -#: ../Doc/library/codecs.rst:1259 +#: library/codecs.rst:1259 msgid "Text Encodings" msgstr "" -#: ../Doc/library/codecs.rst:1261 +#: library/codecs.rst:1261 msgid "" "The following codecs provide :class:`str` to :class:`bytes` encoding and :" "term:`bytes-like object` to :class:`str` decoding, similar to the Unicode " "text encodings." msgstr "" -#: ../Doc/library/codecs.rst:1270 +#: library/codecs.rst:1270 msgid "idna" msgstr "idna" -#: ../Doc/library/codecs.rst:1270 +#: library/codecs.rst:1270 msgid "" "Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " "``errors='strict'`` is supported." msgstr "" -#: ../Doc/library/codecs.rst:1276 +#: library/codecs.rst:1276 msgid "mbcs" msgstr "mbcs" -#: ../Doc/library/codecs.rst:1276 +#: library/codecs.rst:1276 msgid "ansi, dbcs" msgstr "" -#: ../Doc/library/codecs.rst:1276 +#: library/codecs.rst:1276 msgid "" "Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." msgstr "" -#: ../Doc/library/codecs.rst:1280 +#: library/codecs.rst:1280 msgid "oem" msgstr "" -#: ../Doc/library/codecs.rst:1280 +#: library/codecs.rst:1280 msgid "" "Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." msgstr "" -#: ../Doc/library/codecs.rst:1286 +#: library/codecs.rst:1286 msgid "palmos" msgstr "palmos" -#: ../Doc/library/codecs.rst:1286 +#: library/codecs.rst:1286 msgid "Encoding of PalmOS 3.5." msgstr "" -#: ../Doc/library/codecs.rst:1288 +#: library/codecs.rst:1288 msgid "punycode" msgstr "punycode" -#: ../Doc/library/codecs.rst:1288 +#: library/codecs.rst:1288 msgid "Implement :rfc:`3492`. Stateful codecs are not supported." msgstr "" -#: ../Doc/library/codecs.rst:1292 +#: library/codecs.rst:1292 msgid "raw_unicode_escape" msgstr "raw_unicode_escape" -#: ../Doc/library/codecs.rst:1292 +#: library/codecs.rst:1292 msgid "" "Latin-1 encoding with ``\\uXXXX`` and ``\\UXXXXXXXX`` for other code points. " "Existing backslashes are not escaped in any way. It is used in the Python " "pickle protocol." msgstr "" -#: ../Doc/library/codecs.rst:1301 +#: library/codecs.rst:1301 msgid "undefined" msgstr "undefined" -#: ../Doc/library/codecs.rst:1301 +#: library/codecs.rst:1301 msgid "" "Raise an exception for all conversions, even empty strings. The error " "handler is ignored." msgstr "" -#: ../Doc/library/codecs.rst:1306 +#: library/codecs.rst:1306 msgid "unicode_escape" msgstr "unicode_escape" -#: ../Doc/library/codecs.rst:1306 +#: library/codecs.rst:1306 msgid "" "Encoding suitable as the contents of a Unicode literal in ASCII-encoded " "Python source code, except that quotes are not escaped. Decode from Latin-1 " "source code. Beware that Python source code actually uses UTF-8 by default." msgstr "" -#: ../Doc/library/codecs.rst:1318 +#: library/codecs.rst:1318 msgid "\"unicode_internal\" codec is removed." msgstr "" -#: ../Doc/library/codecs.rst:1325 +#: library/codecs.rst:1325 msgid "Binary Transforms" msgstr "" -#: ../Doc/library/codecs.rst:1327 +#: library/codecs.rst:1327 msgid "" "The following codecs provide binary transforms: :term:`bytes-like object` " "to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` " "(which only produces :class:`str` output)." msgstr "" -#: ../Doc/library/codecs.rst:1335 +#: library/codecs.rst:1335 msgid "Encoder / decoder" msgstr "" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid "base64_codec [#b64]_" msgstr "base64_codec [#b64]_" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid "base64, base_64" msgstr "base64, base_64" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid "" "Convert the operand to multiline MIME base64 (the result always includes a " "trailing ``'\\n'``)." msgstr "" -#: ../Doc/library/codecs.rst:1342 +#: library/codecs.rst:1342 msgid "" "accepts any :term:`bytes-like object` as input for encoding and decoding" msgstr "" -#: ../Doc/library/codecs.rst:1337 +#: library/codecs.rst:1337 msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" msgstr "" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid "bz2_codec" msgstr "bz2_codec" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid "bz2" msgstr "bz2" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid "Compress the operand using bz2." msgstr "" -#: ../Doc/library/codecs.rst:1348 +#: library/codecs.rst:1348 msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" msgstr "" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid "hex_codec" msgstr "hex_codec" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid "hex" msgstr "hex" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid "" "Convert the operand to hexadecimal representation, with two digits per byte." msgstr "" -#: ../Doc/library/codecs.rst:1351 +#: library/codecs.rst:1351 msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid "quopri_codec" msgstr "quopri_codec" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid "quopri, quotedprintable, quoted_printable" msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid "Convert the operand to MIME quoted printable." msgstr "" -#: ../Doc/library/codecs.rst:1356 +#: library/codecs.rst:1356 msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" msgstr "" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid "uu_codec" msgstr "uu_codec" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid "uu" msgstr "uu" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid "Convert the operand using uuencode." msgstr "" -#: ../Doc/library/codecs.rst:1360 +#: library/codecs.rst:1360 msgid ":meth:`uu.encode` / :meth:`uu.decode`" msgstr "" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid "zlib_codec" msgstr "zlib_codec" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid "zip, zlib" msgstr "zip, zlib" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid "Compress the operand using gzip." msgstr "" -#: ../Doc/library/codecs.rst:1363 +#: library/codecs.rst:1363 msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" msgstr ":meth:`zlib.compress` / :meth:`zlib.decompress`" -#: ../Doc/library/codecs.rst:1367 +#: library/codecs.rst:1367 msgid "" "In addition to :term:`bytes-like objects `, " "``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " "decoding" msgstr "" -#: ../Doc/library/codecs.rst:1371 +#: library/codecs.rst:1371 msgid "Restoration of the binary transforms." msgstr "" -#: ../Doc/library/codecs.rst:1374 +#: library/codecs.rst:1374 msgid "Restoration of the aliases for the binary transforms." msgstr "" -#: ../Doc/library/codecs.rst:1381 +#: library/codecs.rst:1381 msgid "Text Transforms" msgstr "" -#: ../Doc/library/codecs.rst:1383 +#: library/codecs.rst:1383 msgid "" "The following codec provides a text transform: a :class:`str` to :class:" "`str` mapping. It is not supported by :meth:`str.encode` (which only " "produces :class:`bytes` output)." msgstr "" -#: ../Doc/library/codecs.rst:1392 +#: library/codecs.rst:1392 msgid "rot_13" msgstr "rot_13" -#: ../Doc/library/codecs.rst:1392 +#: library/codecs.rst:1392 msgid "rot13" msgstr "rot13" -#: ../Doc/library/codecs.rst:1392 +#: library/codecs.rst:1392 msgid "Return the Caesar-cypher encryption of the operand." msgstr "" -#: ../Doc/library/codecs.rst:1397 +#: library/codecs.rst:1397 msgid "Restoration of the ``rot_13`` text transform." msgstr "" -#: ../Doc/library/codecs.rst:1400 +#: library/codecs.rst:1400 msgid "Restoration of the ``rot13`` alias." msgstr "" -#: ../Doc/library/codecs.rst:1405 +#: library/codecs.rst:1405 msgid "" ":mod:`encodings.idna` --- Internationalized Domain Names in Applications" msgstr "" -#: ../Doc/library/codecs.rst:1411 +#: library/codecs.rst:1411 msgid "" "This module implements :rfc:`3490` (Internationalized Domain Names in " "Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " @@ -2533,7 +2699,13 @@ msgid "" "encoding and :mod:`stringprep`." msgstr "" -#: ../Doc/library/codecs.rst:1416 +#: library/codecs.rst:1416 +msgid "" +"If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the " +"third-party `idna module _`." +msgstr "" + +#: library/codecs.rst:1419 msgid "" "These RFCs together define a protocol to support non-ASCII characters in " "domain names. A domain name containing non-ASCII characters (such as ``www." @@ -2547,7 +2719,7 @@ msgid "" "presenting them to the user." msgstr "" -#: ../Doc/library/codecs.rst:1427 +#: library/codecs.rst:1430 msgid "" "Python supports this conversion in several ways: the ``idna`` codec " "performs conversion between Unicode and ACE, separating an input string into " @@ -2564,14 +2736,14 @@ msgid "" "sends that field at all)." msgstr "" -#: ../Doc/library/codecs.rst:1440 +#: library/codecs.rst:1443 msgid "" "When receiving host names from the wire (such as in reverse name lookup), no " "automatic conversion to Unicode is performed: applications wishing to " "present such host names to the user should decode them to Unicode." msgstr "" -#: ../Doc/library/codecs.rst:1444 +#: library/codecs.rst:1447 msgid "" "The module :mod:`encodings.idna` also implements the nameprep procedure, " "which performs certain normalizations on host names, to achieve case-" @@ -2579,49 +2751,49 @@ msgid "" "characters. The nameprep functions can be used directly if desired." msgstr "" -#: ../Doc/library/codecs.rst:1452 +#: library/codecs.rst:1455 msgid "" "Return the nameprepped version of *label*. The implementation currently " "assumes query strings, so ``AllowUnassigned`` is true." msgstr "" -#: ../Doc/library/codecs.rst:1458 +#: library/codecs.rst:1461 msgid "" "Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " "is assumed to be false." msgstr "" -#: ../Doc/library/codecs.rst:1464 +#: library/codecs.rst:1467 msgid "Convert a label to Unicode, as specified in :rfc:`3490`." msgstr "" -#: ../Doc/library/codecs.rst:1468 +#: library/codecs.rst:1471 msgid ":mod:`encodings.mbcs` --- Windows ANSI codepage" msgstr "" -#: ../Doc/library/codecs.rst:1473 +#: library/codecs.rst:1476 msgid "This module implements the ANSI codepage (CP_ACP)." msgstr "" -#: ../Doc/library/codecs.rst:1476 +#: library/codecs.rst:1479 msgid ":ref:`Availability `: Windows only." msgstr ":ref:`Disponibilité ` : Windows uniquement." -#: ../Doc/library/codecs.rst:1477 +#: library/codecs.rst:1480 msgid "Support any error handler." msgstr "" -#: ../Doc/library/codecs.rst:1480 +#: library/codecs.rst:1483 msgid "" "Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " "to encode, and ``'ignore'`` to decode." msgstr "" -#: ../Doc/library/codecs.rst:1486 +#: library/codecs.rst:1489 msgid ":mod:`encodings.utf_8_sig` --- UTF-8 codec with BOM signature" msgstr "" -#: ../Doc/library/codecs.rst:1492 +#: library/codecs.rst:1495 msgid "" "This module implements a variant of the UTF-8 codec. On encoding, a UTF-8 " "encoded BOM will be prepended to the UTF-8 encoded bytes. For the stateful " diff --git a/library/codeop.po b/library/codeop.po index d2f4cca135..c7b8616f45 100644 --- a/library/codeop.po +++ b/library/codeop.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2017-04-02 22:11+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -96,14 +96,16 @@ msgstr "" #: ../Doc/library/codeop.rst:45 msgid "" "The *symbol* argument determines whether *source* is compiled as a statement " -"(``'single'``, the default) or as an :term:`expression` (``'eval'``). Any " -"other value will cause :exc:`ValueError` to be raised." +"(``'single'``, the default), as a sequence of statements (``'exec'``) or as " +"an :term:`expression` (``'eval'``). Any other value will cause :exc:" +"`ValueError` to be raised." msgstr "" "L'argument *symbol* détermine si *source* est compilée comme une instruction " -"(``'single'``, par défaut) ou comme une :term:`expression` (``'eval'``). " -"Toute autre valeur lèvera :exc:`ValueError`." +"(``'single'``, par défaut), comme une suite d'instructions (``'exec'``), ou " +"comme une :term:`expression` (``'eval'``). Toute autre valeur lèvera :exc:" +"`ValueError`." -#: ../Doc/library/codeop.rst:51 +#: ../Doc/library/codeop.rst:52 msgid "" "It is possible (but not likely) that the parser stops parsing with a " "successful outcome before reaching the end of the source; in this case, " @@ -118,7 +120,7 @@ msgstr "" "mémoire non-initialisée. Ceci sera corrigé quand l'interface de l'analyseur " "aura été améliorée." -#: ../Doc/library/codeop.rst:60 +#: ../Doc/library/codeop.rst:61 msgid "" "Instances of this class have :meth:`__call__` methods identical in signature " "to the built-in function :func:`compile`, but with the difference that if " @@ -132,7 +134,7 @@ msgstr "" "`__future__`, l'instance s'en « souviendra » et compilera tous les codes " "sources suivants avec cette instruction activée." -#: ../Doc/library/codeop.rst:69 +#: ../Doc/library/codeop.rst:70 msgid "" "Instances of this class have :meth:`__call__` methods identical in signature " "to :func:`compile_command`; the difference is that if the instance compiles " diff --git a/library/collections.abc.po b/library/collections.abc.po index af995c2845..862eb507ed 100644 --- a/library/collections.abc.po +++ b/library/collections.abc.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-28 15:29+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-09-27 15:04+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,20 +15,20 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.9\n" -#: ../Doc/library/collections.abc.rst:2 +#: library/collections.abc.rst:2 msgid ":mod:`collections.abc` --- Abstract Base Classes for Containers" msgstr "" ":mod:`collections.abc` --- Classes de base abstraites pour les conteneurs" -#: ../Doc/library/collections.abc.rst:10 +#: library/collections.abc.rst:10 msgid "Formerly, this module was part of the :mod:`collections` module." msgstr "Auparavant, ce module faisait partie du module :mod:`collections`." -#: ../Doc/library/collections.abc.rst:13 +#: library/collections.abc.rst:13 msgid "**Source code:** :source:`Lib/_collections_abc.py`" msgstr "**Code source :** :source:`Lib/_collections_abc.py`" -#: ../Doc/library/collections.abc.rst:23 +#: library/collections.abc.rst:23 msgid "" "This module provides :term:`abstract base classes ` " "that can be used to test whether a class provides a particular interface; " @@ -39,11 +39,11 @@ msgstr "" "interface particulière (par exemple, savoir s'il s'agit d'un hachable ou " "d'une table de correspondance)." -#: ../Doc/library/collections.abc.rst:31 +#: library/collections.abc.rst:31 msgid "Collections Abstract Base Classes" msgstr "Classes de base abstraites de collections" -#: ../Doc/library/collections.abc.rst:33 +#: library/collections.abc.rst:33 msgid "" "The collections module offers the following :term:`ABCs `:" @@ -51,134 +51,131 @@ msgstr "" "Le module collections apporte les :term:`ABC ` " "suivantes :" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "ABC" msgstr "ABC" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "Inherits from" msgstr "Hérite de" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "Abstract Methods" msgstr "Méthodes abstraites" -#: ../Doc/library/collections.abc.rst:38 +#: library/collections.abc.rst:38 msgid "Mixin Methods" msgstr "Méthodes *mixin*" -#: ../Doc/library/collections.abc.rst:40 +#: library/collections.abc.rst:40 msgid ":class:`Container`" msgstr ":class:`Container`" -#: ../Doc/library/collections.abc.rst:40 +#: library/collections.abc.rst:40 msgid "``__contains__``" msgstr "``__contains__``" -#: ../Doc/library/collections.abc.rst:41 +#: library/collections.abc.rst:41 msgid ":class:`Hashable`" msgstr ":class:`Hashable`" -#: ../Doc/library/collections.abc.rst:41 +#: library/collections.abc.rst:41 msgid "``__hash__``" msgstr "``__hash__``" -#: ../Doc/library/collections.abc.rst:42 ../Doc/library/collections.abc.rst:43 -#: ../Doc/library/collections.abc.rst:44 +#: library/collections.abc.rst:43 library/collections.abc.rst:44 msgid ":class:`Iterable`" msgstr ":class:`Iterable`" -#: ../Doc/library/collections.abc.rst:42 ../Doc/library/collections.abc.rst:43 +#: library/collections.abc.rst:43 msgid "``__iter__``" msgstr "``__iter__``" -#: ../Doc/library/collections.abc.rst:43 ../Doc/library/collections.abc.rst:45 +#: library/collections.abc.rst:45 msgid ":class:`Iterator`" msgstr ":class:`Iterator`" -#: ../Doc/library/collections.abc.rst:43 +#: library/collections.abc.rst:43 msgid "``__next__``" msgstr "``__next__``" -#: ../Doc/library/collections.abc.rst:44 +#: library/collections.abc.rst:44 msgid ":class:`Reversible`" msgstr ":class:`Reversible`" -#: ../Doc/library/collections.abc.rst:44 +#: library/collections.abc.rst:44 msgid "``__reversed__``" msgstr "``__reversed__``" -#: ../Doc/library/collections.abc.rst:45 +#: library/collections.abc.rst:45 msgid ":class:`Generator`" msgstr ":class:`Generator`" -#: ../Doc/library/collections.abc.rst:45 ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid "``send``, ``throw``" msgstr "``send``, ``throw``" -#: ../Doc/library/collections.abc.rst:45 +#: library/collections.abc.rst:45 msgid "``close``, ``__iter__``, ``__next__``" msgstr "``close``, ``__iter__``, ``__next__``" -#: ../Doc/library/collections.abc.rst:46 ../Doc/library/collections.abc.rst:85 +#: library/collections.abc.rst:85 msgid ":class:`Sized`" msgstr ":class:`Sized`" -#: ../Doc/library/collections.abc.rst:46 ../Doc/library/collections.abc.rst:85 +#: library/collections.abc.rst:85 msgid "``__len__``" msgstr "``__len__``" -#: ../Doc/library/collections.abc.rst:47 +#: library/collections.abc.rst:47 msgid ":class:`Callable`" msgstr ":class:`Callable`" -#: ../Doc/library/collections.abc.rst:47 +#: library/collections.abc.rst:47 msgid "``__call__``" msgstr "``__call__``" -#: ../Doc/library/collections.abc.rst:48 ../Doc/library/collections.abc.rst:64 -#: ../Doc/library/collections.abc.rst:74 +#: library/collections.abc.rst:64 library/collections.abc.rst:74 msgid ":class:`Collection`" msgstr ":class:`Collection`" -#: ../Doc/library/collections.abc.rst:48 +#: library/collections.abc.rst:48 msgid ":class:`Sized`, :class:`Iterable`, :class:`Container`" msgstr ":class:`Sized`, :class:`Iterable`, :class:`Container`" -#: ../Doc/library/collections.abc.rst:48 ../Doc/library/collections.abc.rst:64 +#: library/collections.abc.rst:64 msgid "``__contains__``, ``__iter__``, ``__len__``" msgstr "``__contains__``, ``__iter__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:52 ../Doc/library/collections.abc.rst:55 -#: ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:55 library/collections.abc.rst:61 msgid ":class:`Sequence`" msgstr ":class:`Sequence`" -#: ../Doc/library/collections.abc.rst:52 +#: library/collections.abc.rst:52 msgid ":class:`Reversible`, :class:`Collection`" msgstr ":class:`Reversible`, :class:`Collection`" -#: ../Doc/library/collections.abc.rst:52 ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:61 msgid "``__getitem__``, ``__len__``" msgstr "``__getitem__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:52 +#: library/collections.abc.rst:52 msgid "" "``__contains__``, ``__iter__``, ``__reversed__``, ``index``, and ``count``" msgstr "" "``__contains__``, ``__iter__``, ``__reversed__``, ``index`` et ``count``" -#: ../Doc/library/collections.abc.rst:55 +#: library/collections.abc.rst:55 msgid ":class:`MutableSequence`" msgstr ":class:`MutableSequence`" -#: ../Doc/library/collections.abc.rst:55 +#: library/collections.abc.rst:55 msgid "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" msgstr "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" -#: ../Doc/library/collections.abc.rst:55 +#: library/collections.abc.rst:55 msgid "" "Inherited :class:`Sequence` methods and ``append``, ``reverse``, ``extend``, " "``pop``, ``remove``, and ``__iadd__``" @@ -186,19 +183,19 @@ msgstr "" "Méthodes héritées de :class:`Sequence`, et ``append``, ``reverse``, " "``extend``, ``pop``, ``remove`` et ``__iadd__``" -#: ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:61 msgid ":class:`ByteString`" msgstr ":class:`ByteString`" -#: ../Doc/library/collections.abc.rst:61 +#: library/collections.abc.rst:61 msgid "Inherited :class:`Sequence` methods" msgstr "Méthodes héritées de :class:`Sequence`" -#: ../Doc/library/collections.abc.rst:64 ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid ":class:`Set`" msgstr ":class:`Set`" -#: ../Doc/library/collections.abc.rst:64 +#: library/collections.abc.rst:64 msgid "" "``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " "``__and__``, ``__or__``, ``__sub__``, ``__xor__``, and ``isdisjoint``" @@ -206,15 +203,15 @@ msgstr "" "``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " "``__and__``, ``__or__``, ``__sub__``, ``__xor__`` et ``isdisjoint``" -#: ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid ":class:`MutableSet`" msgstr ":class:`MutableSet`" -#: ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" msgstr "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" -#: ../Doc/library/collections.abc.rst:68 +#: library/collections.abc.rst:68 msgid "" "Inherited :class:`Set` methods and ``clear``, ``pop``, ``remove``, " "``__ior__``, ``__iand__``, ``__ixor__``, and ``__isub__``" @@ -222,15 +219,15 @@ msgstr "" "Méthodes héritées de :class:`Set`, et ``clear``, ``pop``, ``remove``, " "``__ior__``, ``__iand__``, ``__ixor__`` et ``__isub__``" -#: ../Doc/library/collections.abc.rst:74 ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid ":class:`Mapping`" msgstr ":class:`Mapping`" -#: ../Doc/library/collections.abc.rst:74 +#: library/collections.abc.rst:74 msgid "``__getitem__``, ``__iter__``, ``__len__``" msgstr "``__getitem__``, ``__iter__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:74 +#: library/collections.abc.rst:74 msgid "" "``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, and " "``__ne__``" @@ -238,17 +235,17 @@ msgstr "" "``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__`` et " "``__ne__``" -#: ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid ":class:`MutableMapping`" msgstr ":class:`MutableMapping`" -#: ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" msgstr "" "``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" -#: ../Doc/library/collections.abc.rst:78 +#: library/collections.abc.rst:78 msgid "" "Inherited :class:`Mapping` methods and ``pop``, ``popitem``, ``clear``, " "``update``, and ``setdefault``" @@ -256,92 +253,99 @@ msgstr "" "Méthodes héritées de :class:`Mapping`, et ``pop``, ``popitem``, ``clear``, " "``update`` et ``setdefault``" -#: ../Doc/library/collections.abc.rst:85 +#: library/collections.abc.rst:85 msgid ":class:`MappingView`" msgstr ":class:`MappingView`" -#: ../Doc/library/collections.abc.rst:86 +#: library/collections.abc.rst:86 msgid ":class:`ItemsView`" msgstr ":class:`ItemsView`" -#: ../Doc/library/collections.abc.rst:86 ../Doc/library/collections.abc.rst:88 +#: library/collections.abc.rst:88 msgid ":class:`MappingView`, :class:`Set`" msgstr ":class:`MappingView`, :class:`Set`" -#: ../Doc/library/collections.abc.rst:86 ../Doc/library/collections.abc.rst:88 -#: ../Doc/library/collections.abc.rst:90 +#: library/collections.abc.rst:88 library/collections.abc.rst:90 msgid "``__contains__``, ``__iter__``" msgstr "``__contains__``, ``__iter__``" -#: ../Doc/library/collections.abc.rst:88 +#: library/collections.abc.rst:88 msgid ":class:`KeysView`" msgstr ":class:`KeysView`" -#: ../Doc/library/collections.abc.rst:90 +#: library/collections.abc.rst:90 msgid ":class:`ValuesView`" msgstr ":class:`ValuesView`" -#: ../Doc/library/collections.abc.rst:90 +#: library/collections.abc.rst:90 msgid ":class:`MappingView`, :class:`Collection`" msgstr ":class:`MappingView`, :class:`Collection`" -#: ../Doc/library/collections.abc.rst:92 ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid ":class:`Awaitable`" msgstr ":class:`Awaitable`" -#: ../Doc/library/collections.abc.rst:92 +#: library/collections.abc.rst:92 msgid "``__await__``" msgstr "``__await__``" -#: ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid ":class:`Coroutine`" msgstr ":class:`Coroutine`" -#: ../Doc/library/collections.abc.rst:93 +#: library/collections.abc.rst:93 msgid "``close``" msgstr "``close``" -#: ../Doc/library/collections.abc.rst:94 ../Doc/library/collections.abc.rst:95 +#: library/collections.abc.rst:95 msgid ":class:`AsyncIterable`" msgstr ":class:`AsyncIterable`" -#: ../Doc/library/collections.abc.rst:94 ../Doc/library/collections.abc.rst:95 +#: library/collections.abc.rst:95 msgid "``__aiter__``" msgstr "``__aiter__``" -#: ../Doc/library/collections.abc.rst:95 ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid ":class:`AsyncIterator`" msgstr ":class:`AsyncIterator`" -#: ../Doc/library/collections.abc.rst:95 +#: library/collections.abc.rst:95 msgid "``__anext__``" msgstr "``__anext__``" -#: ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid ":class:`AsyncGenerator`" msgstr ":class:`AsyncGenerator`" -#: ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid "``asend``, ``athrow``" msgstr "``asend``, ``athrow``" -#: ../Doc/library/collections.abc.rst:96 +#: library/collections.abc.rst:96 msgid "``aclose``, ``__aiter__``, ``__anext__``" msgstr "``aclose``, ``__aiter__``, ``__anext__``" -#: ../Doc/library/collections.abc.rst:105 -msgid "" -"ABCs for classes that provide respectively the methods :meth:" -"`__contains__`, :meth:`__hash__`, :meth:`__len__`, and :meth:`__call__`." -msgstr "" -"ABC pour les classes qui définissent respectivement les méthodes :meth:" -"`__contains__`, :meth:`__hash__`, :meth:`__len__` et :meth:`__call__`." +#: library/collections.abc.rst:102 +msgid "ABC for classes that provide the :meth:`__contains__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__contains__`." + +#: library/collections.abc.rst:106 +msgid "ABC for classes that provide the :meth:`__hash__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__hash__`." -#: ../Doc/library/collections.abc.rst:110 +#: library/collections.abc.rst:110 +msgid "ABC for classes that provide the :meth:`__len__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__len__`." + +#: library/collections.abc.rst:114 +msgid "ABC for classes that provide the :meth:`__call__` method." +msgstr "ABC pour les classes qui définissent la méthode :meth:`__call__`." + +#: library/collections.abc.rst:118 msgid "ABC for classes that provide the :meth:`__iter__` method." msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." -#: ../Doc/library/collections.abc.rst:112 +#: library/collections.abc.rst:120 msgid "" "Checking ``isinstance(obj, Iterable)`` detects classes that are registered " "as :class:`Iterable` or that have an :meth:`__iter__` method, but it does " @@ -355,11 +359,11 @@ msgstr "" "meth:`__getitem__`. Le seul moyen fiable de déterminer si un objet est :term:" "`itérable ` est d'appeler ``iter(obj)``." -#: ../Doc/library/collections.abc.rst:120 +#: library/collections.abc.rst:128 msgid "ABC for sized iterable container classes." msgstr "ABC pour les classes de conteneurs itérables et *sized*." -#: ../Doc/library/collections.abc.rst:126 +#: library/collections.abc.rst:134 msgid "" "ABC for classes that provide the :meth:`~iterator.__iter__` and :meth:" "`~iterator.__next__` methods. See also the definition of :term:`iterator`." @@ -368,14 +372,14 @@ msgstr "" "et :meth:`~iterator.__next__`. Voir aussi la définition d':term:`itérateur " "`." -#: ../Doc/library/collections.abc.rst:132 +#: library/collections.abc.rst:140 msgid "" "ABC for iterable classes that also provide the :meth:`__reversed__` method." msgstr "" "ABC pour les classes d'itérables qui implémentent également la méthode :meth:" "`__reversed__`." -#: ../Doc/library/collections.abc.rst:139 +#: library/collections.abc.rst:147 msgid "" "ABC for generator classes that implement the protocol defined in :pep:`342` " "that extends iterators with the :meth:`~generator.send`, :meth:`~generator." @@ -387,11 +391,11 @@ msgstr "" "`~generator.send`, :meth:`~generator.throw` et :meth:`~generator.close`. " "Voir aussi la définition de :term:`générateur `." -#: ../Doc/library/collections.abc.rst:150 +#: library/collections.abc.rst:158 msgid "ABCs for read-only and mutable :term:`sequences `." msgstr "ABC pour les :term:`séquences ` immuables et muables." -#: ../Doc/library/collections.abc.rst:152 +#: library/collections.abc.rst:160 msgid "" "Implementation note: Some of the mixin methods, such as :meth:`__iter__`, :" "meth:`__reversed__` and :meth:`index`, make repeated calls to the " @@ -409,29 +413,29 @@ msgstr "" "*mixin* auront une performance quadratique, il serait alors judicieux de les " "surcharger." -#: ../Doc/library/collections.abc.rst:161 +#: library/collections.abc.rst:169 msgid "The index() method added support for *stop* and *start* arguments." msgstr "" "La méthode index() a ajouté le support des arguments *start* et *stop*." -#: ../Doc/library/collections.abc.rst:168 +#: library/collections.abc.rst:176 msgid "ABCs for read-only and mutable sets." msgstr "ABC pour les ensembles immuables et muables." -#: ../Doc/library/collections.abc.rst:173 +#: library/collections.abc.rst:181 msgid "ABCs for read-only and mutable :term:`mappings `." msgstr "" "ABC pour les :term:`tables de correspondances ` immuables et " "muables." -#: ../Doc/library/collections.abc.rst:180 +#: library/collections.abc.rst:188 msgid "" "ABCs for mapping, items, keys, and values :term:`views `." msgstr "" "ABC pour les :term:`vues` de *mappings* (tableaux de " "correspondances), d'éléments, de clés et de valeurs." -#: ../Doc/library/collections.abc.rst:184 +#: library/collections.abc.rst:192 msgid "" "ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " "expressions. Custom implementations must provide the :meth:`__await__` " @@ -441,15 +445,16 @@ msgstr "" "utilisés dans les expressions :keyword:`await`. Les implémentations " "personnalisées doivent définir la méthode :meth:`__await__`." -#: ../Doc/library/collections.abc.rst:188 +#: library/collections.abc.rst:196 +#, fuzzy msgid "" -":term:`Coroutine` objects and instances of the :class:`~collections.abc." -"Coroutine` ABC are all instances of this ABC." +":term:`Coroutine ` objects and instances of the :class:" +"`~collections.abc.Coroutine` ABC are all instances of this ABC." msgstr "" "Les objets :term:`coroutines ` et les instances de l'ABC :class:" "`~collections.abc.Coroutine` sont tous des instances de cette ABC." -#: ../Doc/library/collections.abc.rst:192 +#: library/collections.abc.rst:200 msgid "" "In CPython, generator-based coroutines (generators decorated with :func:" "`types.coroutine` or :func:`asyncio.coroutine`) are *awaitables*, even " @@ -464,7 +469,7 @@ msgstr "" "décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " "détecter." -#: ../Doc/library/collections.abc.rst:202 +#: library/collections.abc.rst:210 msgid "" "ABC for coroutine compatible classes. These implement the following " "methods, defined in :ref:`coroutine-objects`: :meth:`~coroutine.send`, :meth:" @@ -480,7 +485,7 @@ msgstr "" "Toutes les instances de :class:`Coroutine` sont également des instances de :" "class:`Awaitable`. Voir aussi la définition de :term:`coroutine`." -#: ../Doc/library/collections.abc.rst:210 +#: library/collections.abc.rst:218 msgid "" "In CPython, generator-based coroutines (generators decorated with :func:" "`types.coroutine` or :func:`asyncio.coroutine`) are *awaitables*, even " @@ -495,7 +500,7 @@ msgstr "" "décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " "détecter." -#: ../Doc/library/collections.abc.rst:220 +#: library/collections.abc.rst:228 msgid "" "ABC for classes that provide ``__aiter__`` method. See also the definition " "of :term:`asynchronous iterable`." @@ -503,7 +508,7 @@ msgstr "" "ABC pour les classes qui définissent la méthode ``__aiter__``. Voir aussi la " "définition d':term:`itérable asynchrone `." -#: ../Doc/library/collections.abc.rst:227 +#: library/collections.abc.rst:235 msgid "" "ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " "also the definition of :term:`asynchronous iterator`." @@ -512,7 +517,7 @@ msgstr "" "``__anext__``. Voir aussi la définition d':term:`itérateur asynchrone " "`." -#: ../Doc/library/collections.abc.rst:234 +#: library/collections.abc.rst:242 msgid "" "ABC for asynchronous generator classes that implement the protocol defined " "in :pep:`525` and :pep:`492`." @@ -520,15 +525,15 @@ msgstr "" "ABC pour les classes de générateurs asynchrones qui implémentent le " "protocole défini dans la :pep:`525` et dans la :pep:`492`." -#: ../Doc/library/collections.abc.rst:240 +#: library/collections.abc.rst:248 msgid "" "These ABCs allow us to ask classes or instances if they provide particular " "functionality, for example::" msgstr "" "Ces ABC permettent de demander à des classes ou à des instances si elles " -"fournissent des fonctionnalités particulières, par exemple ::" +"fournissent des fonctionnalités particulières, par exemple ::" -#: ../Doc/library/collections.abc.rst:247 +#: library/collections.abc.rst:255 msgid "" "Several of the ABCs are also useful as mixins that make it easier to develop " "classes supporting container APIs. For example, to write a class supporting " @@ -543,15 +548,15 @@ msgstr "" "il est uniquement nécessaire de fournir les trois méthodes sous-jacentes " "abstraites :meth:`__contains__`, :meth:`__iter__` et :meth:`__len__`. L'ABC " "apporte les méthodes restantes, comme :meth:`__and__` et :meth:" -"`isdisjoint` ::" +"`isdisjoint` ::" -#: ../Doc/library/collections.abc.rst:276 +#: library/collections.abc.rst:284 msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" msgstr "" "Notes à propos de l'utilisation de :class:`Set` et :class:`MutableSet` comme " "*mixin* :" -#: ../Doc/library/collections.abc.rst:279 +#: library/collections.abc.rst:287 msgid "" "Since some set operations create new sets, the default mixin methods need a " "way to create new instances from an iterable. The class constructor is " @@ -573,7 +578,7 @@ msgstr "" "`_from_iterable` avec une méthode de classe qui peut construire de nouvelles " "instances à partir d'un argument itérable." -#: ../Doc/library/collections.abc.rst:290 +#: library/collections.abc.rst:298 msgid "" "To override the comparisons (presumably for speed, as the semantics are " "fixed), redefine :meth:`__le__` and :meth:`__ge__`, then the other " @@ -583,7 +588,7 @@ msgstr "" "sémantique est fixe), il faut redéfinir :meth:`__le__` et :meth:`__ge__`, " "puis les autres opérations seront automatiquement adaptées." -#: ../Doc/library/collections.abc.rst:295 +#: library/collections.abc.rst:303 msgid "" "The :class:`Set` mixin provides a :meth:`_hash` method to compute a hash " "value for the set; however, :meth:`__hash__` is not defined because not all " @@ -597,7 +602,7 @@ msgstr "" "Pour rendre un ensemble hachable en utilisant les *mixins*, héritez de :meth:" "`Set` et de :meth:`Hashable`, puis définissez ``__hash__ = Set._hash``." -#: ../Doc/library/collections.abc.rst:303 +#: library/collections.abc.rst:311 msgid "" "`OrderedSet recipe `_ for an " "example built on :class:`MutableSet`." @@ -605,8 +610,15 @@ msgstr "" "`OrderedSet recipe `_ pour un " "exemple construit sur :class:`MutableSet`." -#: ../Doc/library/collections.abc.rst:306 +#: library/collections.abc.rst:314 msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." msgstr "" "Pour plus d'informations à propos des ABC, voir le module :mod:`abc` et la :" "pep:`3119`." + +#~ msgid "" +#~ "ABCs for classes that provide respectively the methods :meth:" +#~ "`__contains__`, :meth:`__hash__`, :meth:`__len__`, and :meth:`__call__`." +#~ msgstr "" +#~ "ABC pour les classes qui définissent respectivement les méthodes :meth:" +#~ "`__contains__`, :meth:`__hash__`, :meth:`__len__` et :meth:`__call__`." diff --git a/library/collections.po b/library/collections.po index 8c2671ad0a..bcacba89ef 100644 --- a/library/collections.po +++ b/library/collections.po @@ -3,27 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-04-11 19:52+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-03-03 19:26+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 1.8.7.1\n" -#: ../Doc/library/collections.rst:2 +#: library/collections.rst:2 msgid ":mod:`collections` --- Container datatypes" msgstr ":mod:`collections` — Types de données de conteneurs" -#: ../Doc/library/collections.rst:10 +#: library/collections.rst:10 msgid "**Source code:** :source:`Lib/collections/__init__.py`" msgstr "**Code source :** :source:`Lib/collections/__init__.py`" -#: ../Doc/library/collections.rst:20 +#: library/collections.rst:20 msgid "" "This module implements specialized container datatypes providing " "alternatives to Python's general purpose built-in containers, :class:" @@ -33,110 +33,108 @@ msgstr "" "apportent des alternatives aux conteneurs natifs de Python plus généraux :" "class:`dict`, :class:`list`, :class:`set` et :class:`tuple`." -#: ../Doc/library/collections.rst:25 +#: library/collections.rst:25 msgid ":func:`namedtuple`" msgstr ":func:`namedtuple`" -#: ../Doc/library/collections.rst:25 +#: library/collections.rst:25 msgid "factory function for creating tuple subclasses with named fields" msgstr "" "fonction permettant de créer des sous-classes de ``tuple`` avec des champs " "nommés" -#: ../Doc/library/collections.rst:26 +#: library/collections.rst:26 msgid ":class:`deque`" msgstr ":class:`deque`" -#: ../Doc/library/collections.rst:26 +#: library/collections.rst:26 msgid "list-like container with fast appends and pops on either end" msgstr "" "conteneur se comportant comme une liste avec des ajouts et retraits rapides " "à chaque extrémité" -#: ../Doc/library/collections.rst:27 +#: library/collections.rst:27 msgid ":class:`ChainMap`" msgstr ":class:`ChainMap`" -#: ../Doc/library/collections.rst:27 +#: library/collections.rst:27 msgid "dict-like class for creating a single view of multiple mappings" msgstr "" "classe semblable aux dictionnaires qui crée une unique vue à partir de " "plusieurs dictionnaires" -#: ../Doc/library/collections.rst:28 +#: library/collections.rst:28 msgid ":class:`Counter`" msgstr ":class:`Counter`" -#: ../Doc/library/collections.rst:28 +#: library/collections.rst:28 msgid "dict subclass for counting hashable objects" msgstr "sous-classe de ``dict`` pour compter des objets hachables" -#: ../Doc/library/collections.rst:29 +#: library/collections.rst:29 msgid ":class:`OrderedDict`" msgstr ":class:`OrderedDict`" -#: ../Doc/library/collections.rst:29 +#: library/collections.rst:29 msgid "dict subclass that remembers the order entries were added" msgstr "" "sous-classe de ``dict`` qui garde en mémoire l'ordre dans lequel les entrées " "ont été ajoutées" -#: ../Doc/library/collections.rst:30 +#: library/collections.rst:30 msgid ":class:`defaultdict`" msgstr ":class:`defaultdict`" -#: ../Doc/library/collections.rst:30 +#: library/collections.rst:30 msgid "dict subclass that calls a factory function to supply missing values" msgstr "" "sous-classe de ``dict`` qui appelle une fonction de fabrication en cas de " "valeur manquante" -#: ../Doc/library/collections.rst:31 +#: library/collections.rst:31 msgid ":class:`UserDict`" msgstr ":class:`UserDict`" -#: ../Doc/library/collections.rst:31 +#: library/collections.rst:31 msgid "wrapper around dictionary objects for easier dict subclassing" msgstr "" "surcouche autour des objets dictionnaires pour faciliter l'héritage de " "``dict``" -#: ../Doc/library/collections.rst:32 +#: library/collections.rst:32 msgid ":class:`UserList`" msgstr ":class:`UserList`" -#: ../Doc/library/collections.rst:32 +#: library/collections.rst:32 msgid "wrapper around list objects for easier list subclassing" msgstr "" "surcouche autour des objets listes pour faciliter l'héritage de ``list``" -#: ../Doc/library/collections.rst:33 +#: library/collections.rst:33 msgid ":class:`UserString`" msgstr ":class:`UserString`" -#: ../Doc/library/collections.rst:33 +#: library/collections.rst:33 msgid "wrapper around string objects for easier string subclassing" msgstr "" "surcouche autour des objets chaînes de caractères pour faciliter l'héritage " "de ``str``" -#: ../Doc/library/collections.rst:41 -#, fuzzy +#: library/collections.rst:41 msgid "" "Moved :ref:`collections-abstract-base-classes` to the :mod:`collections.abc` " "module. For backwards compatibility, they continue to be visible in this " -"module through Python 3.8." +"module through Python 3.9." msgstr "" "Les :ref:`collections-abstract-base-classes` ont été déplacées vers le " "module :mod:`collections.abc`. Pour assurer la rétrocompatibilité, elles " -"sont toujours disponibles dans ce module en Python 3.7 mais seront ensuite " -"totalement supprimées." +"sont toujours disponibles dans ce module dans Python 3.9." -#: ../Doc/library/collections.rst:43 +#: library/collections.rst:43 msgid ":class:`ChainMap` objects" msgstr "Objets :class:`ChainMap`" -#: ../Doc/library/collections.rst:47 +#: library/collections.rst:47 msgid "" "A :class:`ChainMap` class is provided for quickly linking a number of " "mappings so they can be treated as a single unit. It is often much faster " @@ -148,14 +146,14 @@ msgstr "" "que de créer un nouveau dictionnaire et d'effectuer plusieurs appels de :" "meth:`~dict.update`." -#: ../Doc/library/collections.rst:51 +#: library/collections.rst:51 msgid "" "The class can be used to simulate nested scopes and is useful in templating." msgstr "" "Cette classe peut être utilisée pour simuler des portées imbriquées, elle " "est aussi utile pour le *templating*." -#: ../Doc/library/collections.rst:55 +#: library/collections.rst:55 msgid "" "A :class:`ChainMap` groups multiple dicts or other mappings together to " "create a single, updateable view. If no *maps* are specified, a single " @@ -167,7 +165,7 @@ msgstr "" "paramètre *maps* est vide, un dictionnaire vide est fourni de telle manière " "qu'une nouvelle chaîne possède toujours au moins un dictionnaire." -#: ../Doc/library/collections.rst:59 +#: library/collections.rst:59 msgid "" "The underlying mappings are stored in a list. That list is public and can " "be accessed or updated using the *maps* attribute. There is no other state." @@ -176,7 +174,7 @@ msgstr "" "publique et peut être consultée ou mise à jour via l'attribut *maps*. Il n'y " "a pas d'autre état." -#: ../Doc/library/collections.rst:62 +#: library/collections.rst:62 msgid "" "Lookups search the underlying mappings successively until a key is found. " "In contrast, writes, updates, and deletions only operate on the first " @@ -186,7 +184,7 @@ msgstr "" "la première clé correspondante. En revanche, les écritures, mises à jour et " "suppressions n'affectent que le premier dictionnaire." -#: ../Doc/library/collections.rst:65 +#: library/collections.rst:65 msgid "" "A :class:`ChainMap` incorporates the underlying mappings by reference. So, " "if one of the underlying mappings gets updated, those changes will be " @@ -196,7 +194,7 @@ msgstr "" "référence. Ainsi, si l'un d'eux est modifié, les changements affectent " "également la :class:`ChainMap`." -#: ../Doc/library/collections.rst:69 +#: library/collections.rst:69 msgid "" "All of the usual dictionary methods are supported. In addition, there is a " "*maps* attribute, a method for creating new subcontexts, and a property for " @@ -207,7 +205,7 @@ msgstr "" "contextes et une propriété pour accéder à tous les dictionnaires sous-" "jacents excepté le premier :" -#: ../Doc/library/collections.rst:75 +#: library/collections.rst:75 msgid "" "A user updateable list of mappings. The list is ordered from first-searched " "to last-searched. It is the only stored state and can be modified to change " @@ -219,7 +217,7 @@ msgstr "" "pour changer l'ordre de recherche. La liste doit toujours contenir au moins " "un dictionnaire." -#: ../Doc/library/collections.rst:82 +#: library/collections.rst:82 msgid "" "Returns a new :class:`ChainMap` containing a new map followed by all of the " "maps in the current instance. If ``m`` is specified, it becomes the new map " @@ -236,11 +234,11 @@ msgstr "" "créer des sous-contextes qui peuvent être mis à jour sans altérer les " "valeurs dans les dictionnaires parents." -#: ../Doc/library/collections.rst:90 +#: library/collections.rst:90 msgid "The optional ``m`` parameter was added." msgstr "Ajout du paramètre optionnel ``m``." -#: ../Doc/library/collections.rst:95 +#: library/collections.rst:95 msgid "" "Property returning a new :class:`ChainMap` containing all of the maps in the " "current instance except the first one. This is useful for skipping the " @@ -257,7 +255,7 @@ msgstr "" "`super`. Une référence à ``d.parents`` est équivalente à : ``ChainMap(*d." "maps[1:])``." -#: ../Doc/library/collections.rst:103 +#: library/collections.rst:103 msgid "" "Note, the iteration order of a :class:`ChainMap()` is determined by scanning " "the mappings last to first::" @@ -265,7 +263,7 @@ msgstr "" "Notez que l'itération de :class:`ChainMap()` se fait en parcourant les " "tableaux de correspondances du dernier jusqu'au premier ::" -#: ../Doc/library/collections.rst:111 +#: library/collections.rst:111 msgid "" "This gives the same ordering as a series of :meth:`dict.update` calls " "starting with the last mapping::" @@ -273,7 +271,7 @@ msgstr "" "Cela produit le même ordre qu'une suite d'appels à :meth:`dict.update` en " "commençant par le dernier tableau de correspondances ::" -#: ../Doc/library/collections.rst:121 +#: library/collections.rst:121 msgid "" "The `MultiContext class `_ in the Enthought `CodeTools package " @@ -285,22 +283,22 @@ msgstr "" "github.com/enthought/codetools>`_ d'Enthought possède des options pour gérer " "l'écriture dans n'importe quel dictionnaire de la chaîne." -#: ../Doc/library/collections.rst:127 +#: library/collections.rst:127 msgid "" -"Django's `Context class `_ for templating is a read-only chain of mappings. It " "also features pushing and popping of contexts similar to the :meth:" "`~collections.ChainMap.new_child` method and the :attr:`~collections." "ChainMap.parents` property." msgstr "" -"La `classe de contexte de Django `_ pour la création de modèles est une " -"chaîne de dictionnaires en lecture seule. Elle comporte également des " -"fonctionnalités d'ajouts et de retraits de contextes similaires à la " -"méthode :meth:`~collections.ChainMap.new_child` et à la propriété :attr:" -"`~collections.ChainMap.parents`." +"La `classe de contexte de Django `_ pour la création de modèles est une chaîne de " +"dictionnaires en lecture seule. Elle comporte également des fonctionnalités " +"d'ajouts et de retraits de contextes similaires à la méthode :meth:" +"`~collections.ChainMap.new_child` et à la propriété :attr:`~collections." +"ChainMap.parents`." -#: ../Doc/library/collections.rst:134 +#: library/collections.rst:134 msgid "" "The `Nested Contexts recipe `_ " "has options to control whether writes and other mutations apply only to the " @@ -311,7 +309,7 @@ msgstr "" "mutations ne s'appliquent qu'au premier ou à un autre dictionnaire de la " "chaîne." -#: ../Doc/library/collections.rst:139 +#: library/collections.rst:139 msgid "" "A `greatly simplified read-only version of Chainmap `_." @@ -319,21 +317,21 @@ msgstr "" "Une `version grandement simplifiée de Chainmap en lecture seule `_." -#: ../Doc/library/collections.rst:144 +#: library/collections.rst:144 msgid ":class:`ChainMap` Examples and Recipes" msgstr "Exemples et cas pratiques utilisant :class:`ChainMap`" -#: ../Doc/library/collections.rst:146 +#: library/collections.rst:146 msgid "This section shows various approaches to working with chained maps." msgstr "" "Cette partie montre diverses approches afin de travailler avec les " "dictionnaires chaînés." -#: ../Doc/library/collections.rst:149 +#: library/collections.rst:149 msgid "Example of simulating Python's internal lookup chain::" msgstr "Exemple 1 : simulation de la chaîne de recherche interne de Python ::" -#: ../Doc/library/collections.rst:154 +#: library/collections.rst:154 msgid "" "Example of letting user specified command-line arguments take precedence " "over environment variables which in turn take precedence over default " @@ -342,15 +340,15 @@ msgstr "" "Exemple 2 : spécification d'une hiérarchie pour les options : ligne de " "commande, variable d'environnement, valeurs par défaut ::" -#: ../Doc/library/collections.rst:171 +#: library/collections.rst:171 msgid "" "Example patterns for using the :class:`ChainMap` class to simulate nested " "contexts::" msgstr "" "Exemple 3 : modèles pour simuler des contexte imbriqués avec la classe :" -"class:`ChainMap` ::" +"class:`ChainMap` ::" -#: ../Doc/library/collections.rst:190 +#: library/collections.rst:190 msgid "" "The :class:`ChainMap` class only makes updates (writes and deletions) to the " "first mapping in the chain while lookups will search the full chain. " @@ -363,11 +361,11 @@ msgstr "" "profondeur, on peut facilement faire une sous-classe qui met à jour les clés " "trouvées de la chaîne en profondeur ::" -#: ../Doc/library/collections.rst:221 +#: library/collections.rst:221 msgid ":class:`Counter` objects" msgstr "Objets :class:`Counter`" -#: ../Doc/library/collections.rst:223 +#: library/collections.rst:223 msgid "" "A counter tool is provided to support convenient and rapid tallies. For " "example::" @@ -375,7 +373,7 @@ msgstr "" "Ce module fournit un outil pour effectuer rapidement et facilement des " "dénombrements. Par exemple ::" -#: ../Doc/library/collections.rst:242 +#: library/collections.rst:242 msgid "" "A :class:`Counter` is a :class:`dict` subclass for counting hashable " "objects. It is a collection where elements are stored as dictionary keys and " @@ -390,7 +388,7 @@ msgstr "" "entiers relatifs (positifs, négatifs ou nuls). La classe :class:`Counter` " "est similaire aux sacs ou aux multiensembles dans d'autres langages." -#: ../Doc/library/collections.rst:248 +#: library/collections.rst:248 msgid "" "Elements are counted from an *iterable* or initialized from another " "*mapping* (or counter):" @@ -398,7 +396,7 @@ msgstr "" "Les éléments sont comptés à partir d'un itérable ou initialisés à partir " "d'un autre dictionnaire (ou compteur) :" -#: ../Doc/library/collections.rst:256 +#: library/collections.rst:256 msgid "" "Counter objects have a dictionary interface except that they return a zero " "count for missing items instead of raising a :exc:`KeyError`:" @@ -407,7 +405,7 @@ msgstr "" "qu'ils renvoient zéro au lieu de lever une exception :exc:`KeyError` pour " "des éléments manquants :" -#: ../Doc/library/collections.rst:263 +#: library/collections.rst:263 msgid "" "Setting a count to zero does not remove an element from a counter. Use " "``del`` to remove it entirely:" @@ -415,7 +413,7 @@ msgstr "" "Mettre un comptage à zéro pour un élément ne le retire pas de l'objet " "Counter. Il faut utiliser ``del`` pour le supprimer complètement :" -#: ../Doc/library/collections.rst:271 +#: library/collections.rst:271 msgid "" "As a :class:`dict` subclass, :class:`Counter` Inherited the capability to " "remember insertion order. Math operations on *Counter* objects also " @@ -423,8 +421,13 @@ msgid "" "encountered in the left operand and then by the order encountered in the " "right operand." msgstr "" +"Puisqu'elle est une sous-classe de :class:`dict`, :class:`Counter` conserve " +"aussi l'ordre d'insertion. Les opérations mathématiques sur les objets " +"*Counter* préservent aussi l'ordre des insertions. Les résultats sont " +"ordonnés d'abord en fonction de la recherche d'apparition pour l'opérande de " +"gauche, puis dans l'ordre d'apparition de l'opérande de droite." -#: ../Doc/library/collections.rst:277 +#: library/collections.rst:277 msgid "" "Counter objects support three methods beyond those available for all " "dictionaries:" @@ -432,20 +435,18 @@ msgstr "" "En plus des méthodes disponibles pour tous les dictionnaires, les objets " "compteurs gèrent trois méthodes supplémentaires :" -#: ../Doc/library/collections.rst:282 -#, fuzzy +#: library/collections.rst:282 msgid "" "Return an iterator over elements repeating each as many times as its count. " "Elements are returned in the order first encountered. If an element's count " "is less than one, :meth:`elements` will ignore it." msgstr "" "Renvoie un itérateur sur chaque élément en le répétant autant de fois que la " -"valeur du compteur associé. Les éléments sont renvoyés dans un ordre " -"arbitraire. Si le comptage d'un élément est strictement inférieur à 1, " -"alors :meth:`elements` l'ignore." +"valeur du compteur associé. Les éléments sont renvoyés dans l'ordre selon " +"lequel ils sont rencontrés pour la première fois. Si le comptage d'un " +"élément est strictement inférieur à 1, alors :meth:`elements` l'ignore." -#: ../Doc/library/collections.rst:292 -#, fuzzy +#: library/collections.rst:292 msgid "" "Return a list of the *n* most common elements and their counts from the most " "common to the least. If *n* is omitted or ``None``, :meth:`most_common` " @@ -455,10 +456,10 @@ msgstr "" "Renvoie une liste des *n* éléments les plus nombreux et leur valeur " "respective dans l'ordre décroissant. Si *n* n'est pas fourni ou vaut " "``None``, :meth:`most_common` renvoie *tous* les éléments du compteur. Les " -"éléments qui ont le même nombre d'occurrences sont ordonnés de manière " -"arbitraire :" +"éléments qui ont le même nombre d'occurrences sont ordonnés par l'ordre " +"selon lequel ils ont été rencontrés pour la première fois :" -#: ../Doc/library/collections.rst:302 +#: library/collections.rst:302 msgid "" "Elements are subtracted from an *iterable* or from another *mapping* (or " "counter). Like :meth:`dict.update` but subtracts counts instead of " @@ -469,7 +470,7 @@ msgstr "" "update` mais soustrait les nombres d'occurrences au lieu de les remplacer. " "Les entrées et sorties peuvent être négatives ou nulles." -#: ../Doc/library/collections.rst:314 +#: library/collections.rst:314 msgid "" "The usual dictionary methods are available for :class:`Counter` objects " "except for two which work differently for counters." @@ -478,13 +479,13 @@ msgstr "" "class:`Counter` à l'exception de deux méthodes qui fonctionnent différemment " "pour les compteurs." -#: ../Doc/library/collections.rst:319 +#: library/collections.rst:319 msgid "This class method is not implemented for :class:`Counter` objects." msgstr "" "Cette méthode de classe n'est pas implémentée pour les objets :class:" "`Counter`." -#: ../Doc/library/collections.rst:323 +#: library/collections.rst:323 msgid "" "Elements are counted from an *iterable* or added-in from another *mapping* " "(or counter). Like :meth:`dict.update` but adds counts instead of replacing " @@ -497,11 +498,11 @@ msgstr "" "De plus, l'itérable doit être une séquence d'éléments et non une séquence de " "paires ``(clé, valeur)``." -#: ../Doc/library/collections.rst:328 +#: library/collections.rst:328 msgid "Common patterns for working with :class:`Counter` objects::" msgstr "Opérations usuelles sur les objets :class:`Counter` ::" -#: ../Doc/library/collections.rst:340 +#: library/collections.rst:340 msgid "" "Several mathematical operations are provided for combining :class:`Counter` " "objects to produce multisets (counters that have counts greater than zero). " @@ -521,7 +522,7 @@ msgstr "" "comptages relatifs, mais la sortie exclut les résultats avec des comptages " "négatifs ou nuls." -#: ../Doc/library/collections.rst:358 +#: library/collections.rst:358 msgid "" "Unary addition and subtraction are shortcuts for adding an empty counter or " "subtracting from an empty counter." @@ -530,14 +531,14 @@ msgstr "" "raccourcis pour respectivement additionner un compteur avec un compteur vide " "ou et pour retrancher un compteur d'un compteur vide." -#: ../Doc/library/collections.rst:367 +#: library/collections.rst:367 msgid "" "Added support for unary plus, unary minus, and in-place multiset operations." msgstr "" "Ajout de la gestion des additions et soustractions unaires, et des " "remplacements dans les multiensembles." -#: ../Doc/library/collections.rst:372 +#: library/collections.rst:372 msgid "" "Counters were primarily designed to work with positive integers to represent " "running counts; however, care was taken to not unnecessarily preclude use " @@ -550,7 +551,7 @@ msgstr "" "n'ont pas été écartés. Pour vous aider dans ces cas particuliers, cette " "section documente la plage minimale et les restrictions de type." -#: ../Doc/library/collections.rst:377 +#: library/collections.rst:377 msgid "" "The :class:`Counter` class itself is a dictionary subclass with no " "restrictions on its keys and values. The values are intended to be numbers " @@ -561,7 +562,7 @@ msgstr "" "vocation à être des nombres représentants des comptages, mais il est " "*possible* de stocker n'importe quel type de valeur." -#: ../Doc/library/collections.rst:381 +#: library/collections.rst:381 msgid "" "The :meth:`~Counter.most_common` method requires only that the values be " "orderable." @@ -569,7 +570,7 @@ msgstr "" "La méthode :meth:`~Counter.most_common` exige uniquement que les valeurs " "soient ordonnables." -#: ../Doc/library/collections.rst:383 +#: library/collections.rst:383 msgid "" "For in-place operations such as ``c[key] += 1``, the value type need only " "support addition and subtraction. So fractions, floats, and decimals would " @@ -583,7 +584,7 @@ msgstr "" "même pour :meth:`~Counter.update` et :meth:`~Cointer.substract` qui " "acceptent des valeurs négatives ou nulles dans les entrées et sorties." -#: ../Doc/library/collections.rst:389 +#: library/collections.rst:389 msgid "" "The multiset methods are designed only for use cases with positive values. " "The inputs may be negative or zero, but only outputs with positive values " @@ -596,7 +597,7 @@ msgstr "" "positives sont créées. Il n'y a pas de restriction de type, mais les types " "des valeurs doivent gérer l'addition, la soustraction et la comparaison." -#: ../Doc/library/collections.rst:394 +#: library/collections.rst:394 msgid "" "The :meth:`~Counter.elements` method requires integer counts. It ignores " "zero and negative counts." @@ -604,7 +605,7 @@ msgstr "" "La méthode :meth:`~Counter.elements` exige des valeurs entières et ignore " "les valeurs négatives ou nulles." -#: ../Doc/library/collections.rst:399 +#: library/collections.rst:399 msgid "" "`Bag class `_ in Smalltalk." @@ -612,7 +613,7 @@ msgstr "" "`Bag class `_ dans Smalltalk." -#: ../Doc/library/collections.rst:402 +#: library/collections.rst:402 msgid "" "Wikipedia entry for `Multisets `_." msgstr "" @@ -620,7 +621,7 @@ msgstr "" "Multiensemble>`_ sur Wikipédia (ou `l'article en anglais `_)." -#: ../Doc/library/collections.rst:404 +#: library/collections.rst:404 msgid "" "`C++ multisets `_ tutorial with examples." @@ -628,7 +629,7 @@ msgstr "" "Des guides et exemples à propos des `multiensembles en C++ `_." -#: ../Doc/library/collections.rst:407 +#: library/collections.rst:407 msgid "" "For mathematical operations on multisets and their use cases, see *Knuth, " "Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " @@ -638,7 +639,7 @@ msgstr "" "applications, voir *Knuth, Donald. The Art of Computer Programming Volume " "II, Section 4.6.3, Exercise 19*." -#: ../Doc/library/collections.rst:411 +#: library/collections.rst:411 msgid "" "To enumerate all distinct multisets of a given size over a given set of " "elements, see :func:`itertools.combinations_with_replacement`::" @@ -647,11 +648,11 @@ msgstr "" "ensemble donné d'éléments, voir :func:`itertools." "combinations_with_replacement` ::" -#: ../Doc/library/collections.rst:418 +#: library/collections.rst:418 msgid ":class:`deque` objects" msgstr "Objets :class:`deque`" -#: ../Doc/library/collections.rst:422 +#: library/collections.rst:422 msgid "" "Returns a new deque object initialized left-to-right (using :meth:`append`) " "with data from *iterable*. If *iterable* is not specified, the new deque is " @@ -661,7 +662,7 @@ msgstr "" "meth:`append`) avec les données d'*iterable*. Si *iterable* n'est pas " "spécifié, alors la nouvelle *deque* est vide." -#: ../Doc/library/collections.rst:425 +#: library/collections.rst:425 msgid "" "Deques are a generalization of stacks and queues (the name is pronounced " "\"deck\" and is short for \"double-ended queue\"). Deques support thread-" @@ -676,7 +677,7 @@ msgstr "" "vue de la mémoire des deux côtés de la *deque*, avec approximativement la " "même performance en *O(1)* dans les deux sens." -#: ../Doc/library/collections.rst:430 +#: library/collections.rst:430 msgid "" "Though :class:`list` objects support similar operations, they are optimized " "for fast fixed-length operations and incur O(n) memory movement costs for " @@ -689,7 +690,7 @@ msgstr "" "et la position de la représentation des données sous-jacentes entraînent des " "coûts de déplacement de mémoire en *O(n)*." -#: ../Doc/library/collections.rst:436 +#: library/collections.rst:436 msgid "" "If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary " "length. Otherwise, the deque is bounded to the specified maximum length. " @@ -708,32 +709,32 @@ msgstr "" "Elles sont aussi utiles pour le suivi de transactions et autres lots de " "données où seule l'activité récente est intéressante." -#: ../Doc/library/collections.rst:445 +#: library/collections.rst:445 msgid "Deque objects support the following methods:" msgstr "Les objets *deques* gèrent les méthodes suivantes :" -#: ../Doc/library/collections.rst:449 +#: library/collections.rst:449 msgid "Add *x* to the right side of the deque." msgstr "Ajoute *x* à l'extrémité droite de la *deque*." -#: ../Doc/library/collections.rst:454 +#: library/collections.rst:454 msgid "Add *x* to the left side of the deque." msgstr "Ajoute *x* à l'extrémité gauche de la *deque*." -#: ../Doc/library/collections.rst:459 +#: library/collections.rst:459 msgid "Remove all elements from the deque leaving it with length 0." msgstr "" "Supprime tous les éléments de la *deque* et la laisse avec une longueur de 0." -#: ../Doc/library/collections.rst:464 +#: library/collections.rst:464 msgid "Create a shallow copy of the deque." msgstr "Crée une copie superficielle de la *deque*." -#: ../Doc/library/collections.rst:471 +#: library/collections.rst:471 msgid "Count the number of deque elements equal to *x*." msgstr "Compte le nombre d'éléments de la *deque* égaux à *x*." -#: ../Doc/library/collections.rst:478 +#: library/collections.rst:478 msgid "" "Extend the right side of the deque by appending elements from the iterable " "argument." @@ -741,7 +742,7 @@ msgstr "" "Étend la *deque* en ajoutant les éléments de l'itérable en argument à son " "extrémité droite." -#: ../Doc/library/collections.rst:484 +#: library/collections.rst:484 msgid "" "Extend the left side of the deque by appending elements from *iterable*. " "Note, the series of left appends results in reversing the order of elements " @@ -751,7 +752,7 @@ msgstr "" "gauche. Dans ce cas, notez que la série d'ajouts inverse l'ordre des " "éléments de l'argument itérable." -#: ../Doc/library/collections.rst:491 +#: library/collections.rst:491 msgid "" "Return the position of *x* in the deque (at or after index *start* and " "before index *stop*). Returns the first match or raises :exc:`ValueError` " @@ -761,11 +762,11 @@ msgstr "" "jusqu'à *stop* exclus). Renvoie la première correspondance ou lève :exc:" "`ValueError` si aucune n'est trouvée." -#: ../Doc/library/collections.rst:500 +#: library/collections.rst:500 msgid "Insert *x* into the deque at position *i*." msgstr "Insère *x* dans la *deque* à la position *i*." -#: ../Doc/library/collections.rst:502 +#: library/collections.rst:502 msgid "" "If the insertion would cause a bounded deque to grow beyond *maxlen*, an :" "exc:`IndexError` is raised." @@ -773,7 +774,7 @@ msgstr "" "Si une insertion provoque un dépassement de la taille limitée d'une *deque*, " "alors elle lève une exception :exc:`IndexError`." -#: ../Doc/library/collections.rst:510 +#: library/collections.rst:510 msgid "" "Remove and return an element from the right side of the deque. If no " "elements are present, raises an :exc:`IndexError`." @@ -781,7 +782,7 @@ msgstr "" "Retire et renvoie un élément de l'extrémité droite de la *deque*. S'il n'y a " "aucun élément, lève une exception :exc:`IndexError`." -#: ../Doc/library/collections.rst:516 +#: library/collections.rst:516 msgid "" "Remove and return an element from the left side of the deque. If no elements " "are present, raises an :exc:`IndexError`." @@ -789,7 +790,7 @@ msgstr "" "Retire et renvoie un élément de l'extrémité gauche de la *deque*. S'il n'y a " "aucun élément, lève une exception :exc:`IndexError`." -#: ../Doc/library/collections.rst:522 +#: library/collections.rst:522 msgid "" "Remove the first occurrence of *value*. If not found, raises a :exc:" "`ValueError`." @@ -797,13 +798,13 @@ msgstr "" "Supprime la première occurrence de *value*. Si aucune occurrence n'est " "trouvée, lève une exception :exc:`ValueError`." -#: ../Doc/library/collections.rst:528 +#: library/collections.rst:528 msgid "Reverse the elements of the deque in-place and then return ``None``." msgstr "" "Inverse le sens des éléments de la *deque* sans créer de copie et renvoie " "``None``." -#: ../Doc/library/collections.rst:535 +#: library/collections.rst:535 msgid "" "Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " "left." @@ -811,7 +812,7 @@ msgstr "" "Décale les éléments de la *deque* de *n* places vers la droite (le dernier " "élément revient au début). Si *n* est négatif, décale vers la gauche." -#: ../Doc/library/collections.rst:538 +#: library/collections.rst:538 msgid "" "When the deque is not empty, rotating one step to the right is equivalent to " "``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " @@ -821,17 +822,16 @@ msgstr "" "équivaut à ``d.appendleft(d.pop())`` et un décalage d'une place vers la " "gauche est équivalent à ``d.append(d.popleft())``." -#: ../Doc/library/collections.rst:543 +#: library/collections.rst:543 msgid "Deque objects also provide one read-only attribute:" msgstr "" "Les objets *deques* fournissent également un attribut en lecture seule :" -#: ../Doc/library/collections.rst:547 +#: library/collections.rst:547 msgid "Maximum size of a deque or ``None`` if unbounded." msgstr "La taille maximale d'une *deque*, ou ``None`` si illimitée." -#: ../Doc/library/collections.rst:552 -#, fuzzy +#: library/collections.rst:552 msgid "" "In addition to the above, deques support iteration, pickling, ``len(d)``, " "``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " @@ -842,11 +842,11 @@ msgstr "" "En plus des méthodes précédentes, les *deques* gèrent l'itération, la " "sérialisation, ``len(d)``, ``reversed(d)``, ``copy.copy(d)``, ``copy." "deepcopy(d)``, le test d'appartenance avec l'opérateur :keyword:`in`, et les " -"références en indice comme ``d[-1]``. L'accès par indice est en *O(1)* aux " -"extrémités mais en *O(n)* au milieu. Pour des accès aléatoires rapides, il " -"est préférable d'utiliser des listes." +"références en indice telles que ``d[0]`` pour accéder au premier élément. " +"L'accès par indice est en *O(1)* aux extrémités mais en *O(n)* au milieu. " +"Pour des accès aléatoires rapides, il est préférable d'utiliser des listes." -#: ../Doc/library/collections.rst:558 +#: library/collections.rst:558 msgid "" "Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " "``__imul__()``." @@ -854,20 +854,20 @@ msgstr "" "Depuis la version 3.5, les *deques* gèrent ``__add__()``, ``__mul__()`` et " "``__imul__()``." -#: ../Doc/library/collections.rst:561 +#: library/collections.rst:561 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/collections.rst:618 +#: library/collections.rst:618 msgid ":class:`deque` Recipes" msgstr "Cas pratiques utilisant :class:`deque`" -#: ../Doc/library/collections.rst:620 +#: library/collections.rst:620 msgid "This section shows various approaches to working with deques." msgstr "" "Cette partie montre diverses approches afin de travailler avec les *deques*." -#: ../Doc/library/collections.rst:622 +#: library/collections.rst:622 msgid "" "Bounded length deques provide functionality similar to the ``tail`` filter " "in Unix::" @@ -875,7 +875,7 @@ msgstr "" "Les *deques* à taille limitée apportent une fonctionnalité similaire au " "filtre ``tail`` d'Unix ::" -#: ../Doc/library/collections.rst:630 +#: library/collections.rst:630 msgid "" "Another approach to using deques is to maintain a sequence of recently added " "elements by appending to the right and popping to the left::" @@ -884,7 +884,7 @@ msgstr "" "d'éléments récemment ajoutés en les ajoutant à droite et en retirant les " "anciens par la gauche ::" -#: ../Doc/library/collections.rst:645 +#: library/collections.rst:645 msgid "" "A `round-robin scheduler `_ can be implemented with input iterators stored in a :" @@ -900,7 +900,7 @@ msgstr "" "avec la méthode :meth:`~deque.popleft` ; ou bien il peut être remis à la fin " "avec la méthode :meth:`~ deque.rotate` ::" -#: ../Doc/library/collections.rst:664 +#: library/collections.rst:664 msgid "" "The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " "slicing and deletion. For example, a pure Python implementation of ``del " @@ -912,7 +912,7 @@ msgstr "" "utilise la méthode ``rotate()`` pour mettre en position les éléments à " "éjecter ::" -#: ../Doc/library/collections.rst:673 +#: library/collections.rst:673 msgid "" "To implement :class:`deque` slicing, use a similar approach applying :meth:" "`~deque.rotate` to bring a target element to the left side of the deque. " @@ -929,11 +929,11 @@ msgstr "" "aisé d'implémenter les manipulations des piles inspirées du Forth telles que " "``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot`` et ``roll``." -#: ../Doc/library/collections.rst:683 +#: library/collections.rst:683 msgid ":class:`defaultdict` objects" msgstr "Objets :class:`defaultdict`" -#: ../Doc/library/collections.rst:687 +#: library/collections.rst:687 msgid "" "Returns a new dictionary-like object. :class:`defaultdict` is a subclass of " "the built-in :class:`dict` class. It overrides one method and adds one " @@ -946,7 +946,7 @@ msgstr "" "autres fonctionnalités sont les mêmes que celles des objets :class:`dict` et " "ne sont pas documentées ici." -#: ../Doc/library/collections.rst:692 +#: library/collections.rst:692 msgid "" "The first argument provides the initial value for the :attr:" "`default_factory` attribute; it defaults to ``None``. All remaining " @@ -959,7 +959,7 @@ msgstr "" "si on les passait au constructeur de :class:`dict`, y compris les arguments " "nommés." -#: ../Doc/library/collections.rst:698 +#: library/collections.rst:698 msgid "" ":class:`defaultdict` objects support the following method in addition to the " "standard :class:`dict` operations:" @@ -967,7 +967,7 @@ msgstr "" "En plus des opérations usuelles de :class:`dict`, les objets :class:" "`defaultdict` gèrent les méthodes supplémentaires suivantes :" -#: ../Doc/library/collections.rst:703 +#: library/collections.rst:703 msgid "" "If the :attr:`default_factory` attribute is ``None``, this raises a :exc:" "`KeyError` exception with the *key* as argument." @@ -975,7 +975,7 @@ msgstr "" "Si l'attribut :attr:`default_factory` est ``None``, lève une exception :exc:" "`KeyError` avec *key* comme argument." -#: ../Doc/library/collections.rst:706 +#: library/collections.rst:706 msgid "" "If :attr:`default_factory` is not ``None``, it is called without arguments " "to provide a default value for the given *key*, this value is inserted in " @@ -986,7 +986,7 @@ msgstr "" "Cette valeur est insérée dans le dictionnaire avec pour clé *key* et est " "renvoyée." -#: ../Doc/library/collections.rst:710 +#: library/collections.rst:710 msgid "" "If calling :attr:`default_factory` raises an exception this exception is " "propagated unchanged." @@ -994,7 +994,7 @@ msgstr "" "Si appeler :attr:`default_factory` lève une exception, celle-ci est " "transmise inchangée." -#: ../Doc/library/collections.rst:713 +#: library/collections.rst:713 msgid "" "This method is called by the :meth:`__getitem__` method of the :class:`dict` " "class when the requested key is not found; whatever it returns or raises is " @@ -1004,7 +1004,7 @@ msgstr "" "class:`dict` lorsque la clé demandée n'est pas trouvée. Ce qu'elle renvoie " "ou lève est alors renvoyé ou levé par :meth:`__getitem__`." -#: ../Doc/library/collections.rst:717 +#: library/collections.rst:717 msgid "" "Note that :meth:`__missing__` is *not* called for any operations besides :" "meth:`__getitem__`. This means that :meth:`get` will, like normal " @@ -1016,11 +1016,11 @@ msgstr "" "``None`` comme les dictionnaires natifs dans les cas triviaux et n'utilise " "pas :attr:`default_factory`." -#: ../Doc/library/collections.rst:723 +#: library/collections.rst:723 msgid ":class:`defaultdict` objects support the following instance variable:" msgstr "Les objets :class:`defaultdict` gèrent la variable d'instance :" -#: ../Doc/library/collections.rst:728 +#: library/collections.rst:728 msgid "" "This attribute is used by the :meth:`__missing__` method; it is initialized " "from the first argument to the constructor, if present, or to ``None``, if " @@ -1030,11 +1030,11 @@ msgstr "" "initialisé par le premier argument passé au constructeur, s'il est spécifié, " "sinon par ``None``." -#: ../Doc/library/collections.rst:734 +#: library/collections.rst:734 msgid ":class:`defaultdict` Examples" msgstr "Exemples utilisant :class:`defaultdict`" -#: ../Doc/library/collections.rst:736 +#: library/collections.rst:736 msgid "" "Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " "to group a sequence of key-value pairs into a dictionary of lists:" @@ -1043,7 +1043,7 @@ msgstr "" "le regroupement d'une séquence de paires clé-valeur en un dictionnaire de " "listes :" -#: ../Doc/library/collections.rst:747 +#: library/collections.rst:747 msgid "" "When each key is encountered for the first time, it is not already in the " "mapping; so an entry is automatically created using the :attr:`~defaultdict." @@ -1064,7 +1064,7 @@ msgstr "" "technique est plus simple et plus rapide qu'une technique équivalente " "utilisant :meth:`dict.setdefault` :" -#: ../Doc/library/collections.rst:762 +#: library/collections.rst:762 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes the :" "class:`defaultdict` useful for counting (like a bag or multiset in other " @@ -1074,7 +1074,7 @@ msgstr "" "classe :class:`defaultdict` pratique pour le comptage (comme un sac ou multi-" "ensemble dans d'autres langages) :" -#: ../Doc/library/collections.rst:774 +#: library/collections.rst:774 msgid "" "When a letter is first encountered, it is missing from the mapping, so the :" "attr:`~defaultdict.default_factory` function calls :func:`int` to supply a " @@ -1086,7 +1086,7 @@ msgstr "" "appelle :func:`int` pour mettre un nouveau compteur à zéro. L'incrémentation " "augmente ensuite le comptage pour chaque lettre." -#: ../Doc/library/collections.rst:778 +#: library/collections.rst:778 msgid "" "The function :func:`int` which always returns zero is just a special case of " "constant functions. A faster and more flexible way to create constant " @@ -1098,7 +1098,7 @@ msgstr "" "une fonction constante est d'utiliser une fonction lambda qui peut fournir " "n'importe quelle valeur constante (pas seulement zéro) :" -#: ../Doc/library/collections.rst:790 +#: library/collections.rst:790 msgid "" "Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes the :" "class:`defaultdict` useful for building a dictionary of sets:" @@ -1106,13 +1106,13 @@ msgstr "" "Utiliser :class:`set` comme :attr:`~defaultdict.default_factory` rend la " "classe :class:`defaultdict` pratique pour créer un dictionnaire d'ensembles :" -#: ../Doc/library/collections.rst:803 +#: library/collections.rst:803 msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" msgstr "" ":func:`namedtuple`: fonction de construction pour *n-uplets* (*tuples*) avec " "des champs nommés" -#: ../Doc/library/collections.rst:805 +#: library/collections.rst:805 msgid "" "Named tuples assign meaning to each position in a tuple and allow for more " "readable, self-documenting code. They can be used wherever regular tuples " @@ -1124,7 +1124,7 @@ msgstr "" "partout où les tuples natifs sont utilisés, et ils ajoutent la possibilité " "d'accéder à leurs champs grâce à leur nom au lieu de leur index de position." -#: ../Doc/library/collections.rst:811 +#: library/collections.rst:811 msgid "" "Returns a new tuple subclass named *typename*. The new subclass is used to " "create tuple-like objects that have fields accessible by attribute lookup as " @@ -1140,7 +1140,7 @@ msgstr "" "méthode :meth:`__repr__` pratique qui liste le contenu du tuple au format " "``nom=valeur``." -#: ../Doc/library/collections.rst:817 +#: library/collections.rst:817 msgid "" "The *field_names* are a sequence of strings such as ``['x', 'y']``. " "Alternatively, *field_names* can be a single string with each fieldname " @@ -1151,7 +1151,7 @@ msgstr "" "sont séparés par un espace et/ou une virgule, par exemple ``'x y'`` ou ``'x, " "y'``." -#: ../Doc/library/collections.rst:821 +#: library/collections.rst:821 msgid "" "Any valid Python identifier may be used for a fieldname except for names " "starting with an underscore. Valid identifiers consist of letters, digits, " @@ -1165,7 +1165,7 @@ msgstr "" "`keyword` tel que ``class``, ``for``, ``return``, ``global``, ``pass`` ou " "``raise``." -#: ../Doc/library/collections.rst:827 +#: library/collections.rst:827 msgid "" "If *rename* is true, invalid fieldnames are automatically replaced with " "positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " @@ -1177,7 +1177,7 @@ msgstr "" "'ghi', 'abc']`` est converti en ``['abc, '_1', 'ghi', '_3']`` afin " "d'éliminer le mot-clé ``def`` et le doublon de ``abc``." -#: ../Doc/library/collections.rst:832 +#: library/collections.rst:832 msgid "" "*defaults* can be ``None`` or an :term:`iterable` of default values. Since " "fields with a default value must come after any fields without a default, " @@ -1193,7 +1193,7 @@ msgstr "" "'z']`` et les valeurs par défaut ``(1, 2)``, alors ``x`` est un argument " "obligatoire tandis que ``y`` et ``y`` valent par défaut ``1`` et ``2``." -#: ../Doc/library/collections.rst:839 +#: library/collections.rst:839 msgid "" "If *module* is defined, the ``__module__`` attribute of the named tuple is " "set to that value." @@ -1201,7 +1201,7 @@ msgstr "" "Si *module* est spécifié, alors il est assigné à l'attribut ``__module__`` " "du tuple nommé." -#: ../Doc/library/collections.rst:842 +#: library/collections.rst:842 msgid "" "Named tuple instances do not have per-instance dictionaries, so they are " "lightweight and require no more memory than regular tuples." @@ -1209,11 +1209,11 @@ msgstr "" "Les instances de tuples nommés n'ont pas de dictionnaires propres, elles " "sont donc légères et ne requièrent pas plus de mémoire que les tuples natifs." -#: ../Doc/library/collections.rst:845 +#: library/collections.rst:845 msgid "Added support for *rename*." msgstr "Gestion de *rename*." -#: ../Doc/library/collections.rst:848 +#: library/collections.rst:848 msgid "" "The *verbose* and *rename* parameters became :ref:`keyword-only arguments " "`." @@ -1221,22 +1221,22 @@ msgstr "" "Les paramètres *verbose* et *rename* deviennent des :ref:`arguments " "obligatoirement nommés `." -#: ../Doc/library/collections.rst:852 +#: library/collections.rst:852 msgid "Added the *module* parameter." msgstr "Ajout du paramètre *module*." -#: ../Doc/library/collections.rst:855 +#: library/collections.rst:855 #, fuzzy msgid "Removed the *verbose* parameter and the :attr:`_source` attribute." msgstr "Suppression du paramètre *verbose* et de l'attribut :attr:`_source`." -#: ../Doc/library/collections.rst:858 +#: library/collections.rst:858 msgid "" "Added the *defaults* parameter and the :attr:`_field_defaults` attribute." msgstr "" "Ajout du paramètre *defaults* et de l'attribut :attr:`_field_defaults`." -#: ../Doc/library/collections.rst:878 +#: library/collections.rst:878 msgid "" "Named tuples are especially useful for assigning field names to result " "tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" @@ -1244,7 +1244,7 @@ msgstr "" "Les tuples nommés sont particulièrement utiles pour associer des noms de " "champs à des tuples renvoyés par les modules :mod:`csv` ou :mod:`sqlite3` ::" -#: ../Doc/library/collections.rst:894 +#: library/collections.rst:894 msgid "" "In addition to the methods inherited from tuples, named tuples support three " "additional methods and two attributes. To prevent conflicts with field " @@ -1254,14 +1254,14 @@ msgstr "" "trois méthodes et deux attributs supplémentaires. Pour éviter les conflits " "avec noms de champs, leurs noms commencent par un tiret bas." -#: ../Doc/library/collections.rst:900 +#: library/collections.rst:900 msgid "" "Class method that makes a new instance from an existing sequence or iterable." msgstr "" "Méthode de classe qui construit une nouvelle instance à partir d'une " "séquence ou d'un itérable existant." -#: ../Doc/library/collections.rst:910 +#: library/collections.rst:910 msgid "" "Return a new :class:`dict` which maps field names to their corresponding " "values:" @@ -1269,19 +1269,24 @@ msgstr "" "Renvoie un nouveau :class:`dict` qui associe chaque nom de champ à sa valeur " "correspondante :" -#: ../Doc/library/collections.rst:919 +#: library/collections.rst:919 msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." msgstr "Renvoie un :class:`OrderedDict` au lieu d'un :class:`dict` natif." -#: ../Doc/library/collections.rst:922 +#: library/collections.rst:922 msgid "" "Returns a regular :class:`dict` instead of an :class:`OrderedDict`. As of " "Python 3.7, regular dicts are guaranteed to be ordered. If the extra " "features of :class:`OrderedDict` are required, the suggested remediation is " "to cast the result to the desired type: ``OrderedDict(nt._asdict())``." msgstr "" +"renvoie un :class:`dict` natif plutôt qu'un :class:`OrderedDict`. À partir " +"de Python 3.7, les dictionnaires natifs garantissent la préservation de " +"l'ordre. Si les autres fonctionnalités d':class:`OrderedDict` sont " +"nécessaires, la solution préconisée est de convertir le résultat vers le " +"type souhaité : ``OrderedDict(nt._asdict())``." -#: ../Doc/library/collections.rst:931 +#: library/collections.rst:931 msgid "" "Return a new instance of the named tuple replacing specified fields with new " "values::" @@ -1289,7 +1294,7 @@ msgstr "" "Renvoie une nouvelle instance du tuple nommé en remplaçant les champs " "spécifiés par leurs nouvelles valeurs ::" -#: ../Doc/library/collections.rst:943 +#: library/collections.rst:943 msgid "" "Tuple of strings listing the field names. Useful for introspection and for " "creating new named tuple types from existing named tuples." @@ -1298,11 +1303,11 @@ msgstr "" "l'introspection et pour créer de nouveaux types de tuples nommés à partir " "d'existants." -#: ../Doc/library/collections.rst:958 +#: library/collections.rst:958 msgid "Dictionary mapping field names to default values." msgstr "Dictionnaire qui assigne les valeurs par défaut aux noms des champs." -#: ../Doc/library/collections.rst:968 +#: library/collections.rst:968 msgid "" "To retrieve a field whose name is stored in a string, use the :func:" "`getattr` function:" @@ -1310,16 +1315,15 @@ msgstr "" "Pour récupérer un champ dont le nom est une chaîne de caractères, utilisez " "la fonction :func:`getattr` :" -#: ../Doc/library/collections.rst:974 -#, fuzzy +#: library/collections.rst:974 msgid "" "To convert a dictionary to a named tuple, use the double-star-operator (as " "described in :ref:`tut-unpacking-arguments`):" msgstr "" -"Pour convertir un dictionnaire en tuple nommé, utilisez l'opérateur double-" -"étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" +"Pour convertir un dictionnaire en *n*-uplet nommé, utilisez l'opérateur " +"double-étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" -#: ../Doc/library/collections.rst:981 +#: library/collections.rst:981 msgid "" "Since a named tuple is a regular Python class, it is easy to add or change " "functionality with a subclass. Here is how to add a calculated field and a " @@ -1329,7 +1333,7 @@ msgstr "" "grâce à l'héritage puisqu'il s'agit de simples classes. Voici comment " "ajouter un champ calculé avec une longueur fixe d'affichage :" -#: ../Doc/library/collections.rst:1000 +#: library/collections.rst:1000 msgid "" "The subclass shown above sets ``__slots__`` to an empty tuple. This helps " "keep memory requirements low by preventing the creation of instance " @@ -1339,7 +1343,7 @@ msgstr "" "permet de garder une emprunte mémoire faible en empêchant la création de " "dictionnaire d'instance." -#: ../Doc/library/collections.rst:1003 +#: library/collections.rst:1003 msgid "" "Subclassing is not useful for adding new, stored fields. Instead, simply " "create a new named tuple type from the :attr:`~somenamedtuple._fields` " @@ -1349,7 +1353,7 @@ msgstr "" "préférable de simplement créer un nouveau type de tuple nommé avec " "l'attribut :attr:`~somenamedtuple._fields` :" -#: ../Doc/library/collections.rst:1008 +#: library/collections.rst:1008 msgid "" "Docstrings can be customized by making direct assignments to the ``__doc__`` " "fields:" @@ -1357,11 +1361,11 @@ msgstr "" "Les *docstrings* peuvent être personnalisées en modifiant directement " "l'attribut ``__doc__`` :" -#: ../Doc/library/collections.rst:1017 +#: library/collections.rst:1017 msgid "Property docstrings became writeable." msgstr "La propriété devient éditable." -#: ../Doc/library/collections.rst:1022 +#: library/collections.rst:1022 msgid "" "See :class:`typing.NamedTuple` for a way to add type hints for named " "tuples. It also provides an elegant notation using the :keyword:`class` " @@ -1369,9 +1373,9 @@ msgid "" msgstr "" "Voir :meth:`typing.NamedTuple` pour un moyen d'ajouter des indications de " "type pour les tuples nommés. Cela propose aussi une notation élégante " -"utilisant le mot-clé :keyword:`class` :" +"utilisant le mot-clé :keyword:`class` ::" -#: ../Doc/library/collections.rst:1031 +#: library/collections.rst:1031 msgid "" "See :meth:`types.SimpleNamespace` for a mutable namespace based on an " "underlying dictionary instead of a tuple." @@ -1379,7 +1383,7 @@ msgstr "" "Voir :meth:`types.SimpleNamespace` pour un espace de nommage muable basé sur " "un dictionnaire sous-jacent à la place d'un tuple." -#: ../Doc/library/collections.rst:1034 +#: library/collections.rst:1034 msgid "" "The :mod:`dataclasses` module provides a decorator and functions for " "automatically adding generated special methods to user-defined classes." @@ -1388,11 +1392,11 @@ msgstr "" "ajouter automatiquement des méthodes spéciales générées aux classes définies " "par l’utilisateur." -#: ../Doc/library/collections.rst:1039 +#: library/collections.rst:1039 msgid ":class:`OrderedDict` objects" msgstr "Objets :class:`OrderedDict`" -#: ../Doc/library/collections.rst:1041 +#: library/collections.rst:1041 msgid "" "Ordered dictionaries are just like regular dictionaries but have some extra " "capabilities relating to ordering operations. They have become less " @@ -1404,11 +1408,11 @@ msgstr "" "moins importants puisque la classe native :class:`dict` sait se souvenir de " "l'ordre d'insertion (cette fonctionnalité a été garantie par Python 3.7)." -#: ../Doc/library/collections.rst:1047 +#: library/collections.rst:1047 msgid "Some differences from :class:`dict` still remain:" msgstr "Quelques différences persistent vis-à-vis de :class:`dict` :" -#: ../Doc/library/collections.rst:1049 +#: library/collections.rst:1049 msgid "" "The regular :class:`dict` was designed to be very good at mapping " "operations. Tracking insertion order was secondary." @@ -1417,7 +1421,7 @@ msgstr "" "opérations de correspondance. Garder une trace de l'ordre d'insertion était " "secondaire." -#: ../Doc/library/collections.rst:1052 +#: library/collections.rst:1052 msgid "" "The :class:`OrderedDict` was designed to be good at reordering operations. " "Space efficiency, iteration speed, and the performance of update operations " @@ -1427,7 +1431,7 @@ msgstr "" "opérations de ré-arrangement. L'occupation mémoire, la vitesse de parcours " "et les performances de mise à jour étaient secondaires." -#: ../Doc/library/collections.rst:1056 +#: library/collections.rst:1056 msgid "" "Algorithmically, :class:`OrderedDict` can handle frequent reordering " "operations better than :class:`dict`. This makes it suitable for tracking " @@ -1440,13 +1444,13 @@ msgstr "" "com/@krishankantsinghal/my-first-blog-on-medium-583159139237>`_ pour *Least " "Recently Used* en anglais)." -#: ../Doc/library/collections.rst:1061 +#: library/collections.rst:1061 msgid "" "The equality operation for :class:`OrderedDict` checks for matching order." msgstr "" "Le test d'égalité de :class:`OrderedDict` vérifie si l'ordre correspond." -#: ../Doc/library/collections.rst:1063 +#: library/collections.rst:1063 msgid "" "The :meth:`popitem` method of :class:`OrderedDict` has a different " "signature. It accepts an optional argument to specify which item is popped." @@ -1455,7 +1459,7 @@ msgstr "" "différente. Elle accepte un argument optionnel pour spécifier quel élément " "doit être enlevé." -#: ../Doc/library/collections.rst:1066 +#: library/collections.rst:1066 msgid "" ":class:`OrderedDict` has a :meth:`move_to_end` method to efficiently " "reposition an element to an endpoint." @@ -1463,12 +1467,12 @@ msgstr "" ":class:`OrderedDict` possède une méthode :meth:`move_to_end` pour déplacer " "efficacement un élément à la fin." -#: ../Doc/library/collections.rst:1069 +#: library/collections.rst:1069 msgid "Until Python 3.8, :class:`dict` lacked a :meth:`__reversed__` method." msgstr "" "Avant Python 3.8, :class:`dict` n'a pas de méthode :meth:`__reversed__`." -#: ../Doc/library/collections.rst:1074 +#: library/collections.rst:1074 msgid "" "Return an instance of a :class:`dict` subclass that has methods specialized " "for rearranging dictionary order." @@ -1476,7 +1480,7 @@ msgstr "" "Renvoie une instance d'une sous-classe de :class:`dict` qui possède des " "méthodes spécialisées pour redéfinir l'ordre du dictionnaire." -#: ../Doc/library/collections.rst:1081 +#: library/collections.rst:1081 msgid "" "The :meth:`popitem` method for ordered dictionaries returns and removes a " "(key, value) pair. The pairs are returned in :abbr:`LIFO (last-in, first-" @@ -1490,7 +1494,7 @@ msgstr "" "paires sont renvoyées comme pour une file, c'est-à-dire premier entré, " "premier sorti (en anglais :abbr:`FIFO (first-in, first-out)`)." -#: ../Doc/library/collections.rst:1088 +#: library/collections.rst:1088 msgid "" "Move an existing *key* to either end of an ordered dictionary. The item is " "moved to the right end if *last* is true (the default) or to the beginning " @@ -1501,7 +1505,7 @@ msgstr "" "à gauche sinon. Lève une exception :exc:`KeyError` si la clé *key* n'est pas " "trouvée ::" -#: ../Doc/library/collections.rst:1103 +#: library/collections.rst:1103 msgid "" "In addition to the usual mapping methods, ordered dictionaries also support " "reverse iteration using :func:`reversed`." @@ -1509,7 +1513,7 @@ msgstr "" "En plus des méthodes usuelles des dictionnaires, les dictionnaires ordonnés " "gèrent l'itération en sens inverse grâce à :func:`reversed`." -#: ../Doc/library/collections.rst:1106 +#: library/collections.rst:1106 msgid "" "Equality tests between :class:`OrderedDict` objects are order-sensitive and " "are implemented as ``list(od1.items())==list(od2.items())``. Equality tests " @@ -1525,7 +1529,7 @@ msgstr "" "(comme les dictionnaires natifs). Cela permet substituer des objets :class:" "`OrderedDict` partout où les dictionnaires natifs sont utilisés." -#: ../Doc/library/collections.rst:1113 +#: library/collections.rst:1113 msgid "" "The items, keys, and values :term:`views ` of :class:" "`OrderedDict` now support reverse iteration using :func:`reversed`." @@ -1534,7 +1538,7 @@ msgstr "" "class:`OrderedDict` gèrent maintenant l'itération en sens inverse en " "utilisant :func:`reversed`." -#: ../Doc/library/collections.rst:1117 +#: library/collections.rst:1117 msgid "" "With the acceptance of :pep:`468`, order is retained for keyword arguments " "passed to the :class:`OrderedDict` constructor and its :meth:`update` method." @@ -1543,11 +1547,11 @@ msgstr "" "au constructeur et à la méthode :meth:`update` de :class:`OrderedDict` est " "conservé." -#: ../Doc/library/collections.rst:1123 +#: library/collections.rst:1123 msgid ":class:`OrderedDict` Examples and Recipes" msgstr "Exemples et cas pratiques utilisant :class:`OrderDict`" -#: ../Doc/library/collections.rst:1125 +#: library/collections.rst:1125 msgid "" "It is straightforward to create an ordered dictionary variant that remembers " "the order the keys were *last* inserted. If a new entry overwrites an " @@ -1559,7 +1563,7 @@ msgstr "" "entrée écrase une existante, la position d'insertion d'origine est modifiée " "et déplacée à la fin ::" -#: ../Doc/library/collections.rst:1137 +#: library/collections.rst:1137 msgid "" "An :class:`OrderedDict` would also be useful for implementing variants of :" "func:`functools.lru_cache`::" @@ -1567,11 +1571,11 @@ msgstr "" "Un :class:`OrderedDict` peut aussi être utile pour implémenter des variantes " "de :func:`functools.lru_cache` ::" -#: ../Doc/library/collections.rst:1160 +#: library/collections.rst:1162 msgid ":class:`UserDict` objects" msgstr "Objets :class:`UserDict`" -#: ../Doc/library/collections.rst:1162 +#: library/collections.rst:1164 msgid "" "The class, :class:`UserDict` acts as a wrapper around dictionary objects. " "The need for this class has been partially supplanted by the ability to " @@ -1584,7 +1588,7 @@ msgstr "" "travailler avec celle-ci car le dictionnaire sous-jacent est accessible " "comme attribut." -#: ../Doc/library/collections.rst:1170 +#: library/collections.rst:1172 msgid "" "Class that simulates a dictionary. The instance's contents are kept in a " "regular dictionary, which is accessible via the :attr:`data` attribute of :" @@ -1598,7 +1602,7 @@ msgstr "" "initialisé avec son contenu. Remarquez qu'une référence vers *initialdata* " "n'est pas conservée, ce qui permet de l'utiliser pour d'autres tâches." -#: ../Doc/library/collections.rst:1176 +#: library/collections.rst:1178 msgid "" "In addition to supporting the methods and operations of mappings, :class:" "`UserDict` instances provide the following attribute:" @@ -1606,18 +1610,18 @@ msgstr "" "En plus de gérer les méthodes et opérations des dictionnaires, les instance " "de :class:`UserDict` fournissent l'attribut suivant :" -#: ../Doc/library/collections.rst:1181 +#: library/collections.rst:1183 msgid "" "A real dictionary used to store the contents of the :class:`UserDict` class." msgstr "" "Un dictionnaire natif où est stocké le contenu de la classe :class:" "`UserDict`." -#: ../Doc/library/collections.rst:1187 +#: library/collections.rst:1189 msgid ":class:`UserList` objects" msgstr "Objets :class:`UserList`" -#: ../Doc/library/collections.rst:1189 +#: library/collections.rst:1191 msgid "" "This class acts as a wrapper around list objects. It is a useful base class " "for your own list-like classes which can inherit from them and override " @@ -1629,7 +1633,7 @@ msgstr "" "et surcharger les méthodes existantes ou en ajouter de nouvelles. Ainsi, on " "peut ajouter de nouveaux comportements aux listes." -#: ../Doc/library/collections.rst:1194 +#: library/collections.rst:1196 msgid "" "The need for this class has been partially supplanted by the ability to " "subclass directly from :class:`list`; however, this class can be easier to " @@ -1640,7 +1644,7 @@ msgstr "" "de travailler avec cette classe car la liste sous-jacente est accessible via " "un attribut." -#: ../Doc/library/collections.rst:1200 +#: library/collections.rst:1202 msgid "" "Class that simulates a list. The instance's contents are kept in a regular " "list, which is accessible via the :attr:`data` attribute of :class:" @@ -1654,7 +1658,7 @@ msgstr "" "*list* peut être un itérable, par exemple une liste native ou un objet :" "class:`UserList`." -#: ../Doc/library/collections.rst:1206 +#: library/collections.rst:1208 msgid "" "In addition to supporting the methods and operations of mutable sequences, :" "class:`UserList` instances provide the following attribute:" @@ -1662,7 +1666,7 @@ msgstr "" "En plus de gérer les méthodes et opérations des séquences muables, les " "instances de :class:`UserList` possèdent l'attribut suivant :" -#: ../Doc/library/collections.rst:1211 +#: library/collections.rst:1213 msgid "" "A real :class:`list` object used to store the contents of the :class:" "`UserList` class." @@ -1670,7 +1674,7 @@ msgstr "" "Un objet :class:`list` natif utilisé pour stocker le contenu de la classe :" "class:`UserList`." -#: ../Doc/library/collections.rst:1214 +#: library/collections.rst:1216 msgid "" "**Subclassing requirements:** Subclasses of :class:`UserList` are expected " "to offer a constructor which can be called with either no arguments or one " @@ -1686,7 +1690,7 @@ msgstr "" "constructeur doit pouvoir être appelé avec un unique paramètre, un objet " "séquence utilisé comme source de données." -#: ../Doc/library/collections.rst:1221 +#: library/collections.rst:1223 msgid "" "If a derived class does not wish to comply with this requirement, all of the " "special methods supported by this class will need to be overridden; please " @@ -1698,11 +1702,11 @@ msgstr "" "de consulter les sources pour obtenir des informations sur les méthodes qui " "doivent être fournies dans ce cas." -#: ../Doc/library/collections.rst:1227 +#: library/collections.rst:1229 msgid ":class:`UserString` objects" msgstr "Objets :class:`UserString`" -#: ../Doc/library/collections.rst:1229 +#: library/collections.rst:1231 msgid "" "The class, :class:`UserString` acts as a wrapper around string objects. The " "need for this class has been partially supplanted by the ability to subclass " @@ -1715,7 +1719,7 @@ msgstr "" "plus facile de travailler avec cette classe car la chaîne de caractère sous-" "jacente est accessible via un attribut." -#: ../Doc/library/collections.rst:1237 +#: library/collections.rst:1239 msgid "" "Class that simulates a string object. The instance's content is kept in a " "regular string object, which is accessible via the :attr:`data` attribute " @@ -1729,7 +1733,7 @@ msgstr "" "initialement une copie de *seq*, qui peut être n'importe quel objet " "convertible en chaîne de caractère avec la fonction native :func:`str`." -#: ../Doc/library/collections.rst:1244 +#: library/collections.rst:1246 msgid "" "In addition to supporting the methods and operations of strings, :class:" "`UserString` instances provide the following attribute:" @@ -1737,7 +1741,7 @@ msgstr "" "En plus de gérer les méthodes et opérations sur les chaînes de caractères, " "les instances de :class:`UserString` possèdent l'attribut suivant :" -#: ../Doc/library/collections.rst:1249 +#: library/collections.rst:1251 msgid "" "A real :class:`str` object used to store the contents of the :class:" "`UserString` class." @@ -1745,7 +1749,7 @@ msgstr "" "Un objet :class:`str` natif utilisé pour stocker le contenu de la classe :" "class:`UserString`." -#: ../Doc/library/collections.rst:1252 +#: library/collections.rst:1254 msgid "" "New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " "``isprintable``, and ``maketrans``." diff --git a/library/colorsys.po b/library/colorsys.po index 21bd2a53c6..54eee62261 100644 --- a/library/colorsys.po +++ b/library/colorsys.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" "PO-Revision-Date: 2018-07-05 09:52+0200\n" diff --git a/library/compileall.po b/library/compileall.po index 846e0967b9..41540ab8af 100644 --- a/library/compileall.po +++ b/library/compileall.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -17,6 +17,7 @@ msgstr "" #: ../Doc/library/compileall.rst:2 msgid ":mod:`compileall` --- Byte-compile Python libraries" msgstr "" +":mod:`compileall` — Génération du code intermédiaire des bibliothèques Python" #: ../Doc/library/compileall.rst:7 msgid "**Source code:** :source:`Lib/compileall.py`" @@ -30,16 +31,25 @@ msgid "" "installation time, which makes them available for use even by users who " "don't have write permission to the library directories." msgstr "" +"Ce module contient des fonctions qui facilitent l'installation de " +"bibliothèques Python. Elles compilent, sous forme de code intermédiaire " +"(*bytecode*), les fichiers source situés dans un dossier de votre choix. Ce " +"module est particulièrement utile pour générer les fichiers de code " +"intermédiaire lors de l'installation d'une bibliothèque, les rendant " +"disponibles même pour les utilisateurs qui n'ont pas les privilèges " +"d'écriture dans l'emplacement d'installation." #: ../Doc/library/compileall.rst:19 msgid "Command-line use" -msgstr "" +msgstr "Utilisation en ligne de commande" #: ../Doc/library/compileall.rst:21 msgid "" "This module can work as a script (using :program:`python -m compileall`) to " "compile Python sources." msgstr "" +"On peut se servir de ce module comme d'un script (avec :program:`python -m " +"compileall`) pour compiler les fichiers source Python." #: ../Doc/library/compileall.rst:29 msgid "" @@ -47,22 +57,33 @@ msgid "" "files, traversed recursively. If no argument is given, behave as if the " "command line was ``-l ``." msgstr "" +"Les arguments positionnels sont les fichiers à compiler. Ils peuvent aussi " +"être des dossiers, qui sont alors parcourus récursivement pour compiler tous " +"les fichiers de code :file:`.py` qu'ils contiennent. Lorsque le script ne " +"reçoit aucun argument, il fait comme s'il avait été appelé avec `-l `." #: ../Doc/library/compileall.rst:35 msgid "" "Do not recurse into subdirectories, only compile source code files directly " "contained in the named or implied directories." msgstr "" +"Compiler uniquement les fichiers situés directement dans les dossiers passés " +"en argument ou implicites, sans descendre récursivement dans les sous-" +"dossiers." #: ../Doc/library/compileall.rst:40 msgid "Force rebuild even if timestamps are up-to-date." -msgstr "" +msgstr "Forcer la recompilation même si les horodatages sont à jour." #: ../Doc/library/compileall.rst:44 msgid "" "Do not print the list of files compiled. If passed once, error messages will " "still be printed. If passed twice (``-qq``), all output is suppressed." msgstr "" +"Supprimer l'affichage des noms des fichiers compilés.Si cette option est " +"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez " +"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)." #: ../Doc/library/compileall.rst:49 msgid "" @@ -72,12 +93,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Ce nom de dossier est ajouté en tête du chemin de chaque fichier compilé. Il " +"aura une influence sur les traces d'appels pour les erreurs levées lors de " +"la compilation, et sera reflété dans les fichiers de code intermédiaire, " +"pour utilisation dans les traces d'appels et autres messages si le fichier " +"source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:57 msgid "" "regex is used to search the full path to each file considered for " "compilation, and if the regex produces a match, the file is skipped." msgstr "" +"Exclut tous les fichiers dont les noms correspondent à l'expression " +"régulière *regex*." #: ../Doc/library/compileall.rst:62 msgid "" @@ -85,6 +113,8 @@ msgid "" "files and directories to compile. If ``list`` is ``-``, read lines from " "``stdin``." msgstr "" +"Ajoute chaque ligne du fichier *list* aux fichiers et dossiers à compiler. " +"*list* peut être ``-``, auquel cas le script lit l'entrée standard." #: ../Doc/library/compileall.rst:68 msgid "" @@ -93,6 +123,11 @@ msgid "" "is to write files to their :pep:`3147` locations and names, which allows " "byte-code files from multiple versions of Python to coexist." msgstr "" +"Utilise l'ancienne manière de nommer et placer les fichiers de code " +"intermédiaire, en écrasant éventuellement ceux générés par une autre version " +"de Python. Par défaut, les règles décrites dans la :pep:`3147` s'appliquent. " +"Elles permettent à différentes versions de l'interpréteur Python de " +"coexister en conservant chacune ses propres fichiers ``.pyc``." #: ../Doc/library/compileall.rst:75 msgid "" @@ -101,12 +136,19 @@ msgid "" "compileall -r 0` is equivalent to :program:`python -m compileall " " -l`." msgstr "" +"Règle le niveau de récursion maximal pour le parcours des sous-dossiers. " +"Lorsque cette option est fournie, ``-l`` est ignorée. :program:`python -m " +"compileall -r 0` revient au même que :program:`python -m " +"compileall -l`." #: ../Doc/library/compileall.rst:82 msgid "" "Use *N* workers to compile the files within the given directory. If ``0`` is " "used, then the result of :func:`os.cpu_count()` will be used." msgstr "" +"Effectue la compilation avec *N* processus parallèles. Si *N* vaut 0, autant " +"de processus sont créés que la machine dispose de processeurs (résultat de :" +"func:`os.cpu_count()`)." #: ../Doc/library/compileall.rst:88 msgid "" @@ -120,10 +162,20 @@ msgid "" "`SOURCE_DATE_EPOCH` environment variable is not set, and ``checked-hash`` if " "the ``SOURCE_DATE_EPOCH`` environment variable is set." msgstr "" +"Définit la manière dont les fichiers de code intermédiaire seront invalidés " +"au moment de l'exécution. Avec ``timestamp``, les fichiers ``.pyc`` générés " +"comportent l'horodatage de la source et sa taille. Avec ``checked-hash`` ou " +"``unchecked-hash``, ce seront des pyc utilisant le hachage, qui contiennent " +"une empreinte du code source plutôt qu'un horodatage. Voir :ref:`pyc-" +"invalidation` pour plus d'informations sur la manière dont Python valide les " +"fichiers de code intermédiaire conservés en cache lors de l'exécution. La " +"valeur par défaut est ``timestamp``. Cependant, si la variable " +"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient " +"``checked-hash``." #: ../Doc/library/compileall.rst:99 msgid "Added the ``-i``, ``-b`` and ``-h`` options." -msgstr "" +msgstr "ajout des options ``-i``, ``-b`` et ``-h``." #: ../Doc/library/compileall.rst:102 msgid "" @@ -131,10 +183,13 @@ msgid "" "to a multilevel value. ``-b`` will always produce a byte-code file ending " "in ``.pyc``, never ``.pyo``." msgstr "" +"ajout des options ``-j``, ``-r`` et ``-qq`` (l'option ``-q`` peut donc " +"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code " +"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``." #: ../Doc/library/compileall.rst:107 msgid "Added the ``--invalidation-mode`` option." -msgstr "" +msgstr "ajout de l'option ``--invalidation-mode``." #: ../Doc/library/compileall.rst:111 msgid "" @@ -142,6 +197,10 @@ msgid "" "the :func:`compile` function, because the Python interpreter itself already " "provides the option: :program:`python -O -m compileall`." msgstr "" +"Il n'y a pas d'option en ligne de commande pour contrôler le niveau " +"d'optimisation utilisé par la fonction :func:`compile`. Il suffit en effet " +"d'utiliser l'option ``-O`` de l'interpréteur Python lui-même : :program:" +"`python -O -m compileall`." #: ../Doc/library/compileall.rst:115 msgid "" @@ -150,10 +209,15 @@ msgid "" "if :func:`compile` is run with the same :attr:`sys.pycache_prefix` (if any) " "that will be used at runtime." msgstr "" +"De même, la fonction :func:`compile` utilise le réglage :attr:`sys." +"pycache_prefix`. Le code intermédiaire généré ne pourra servir que dans la " +"mesure où :func:`compile` est exécutée avec la même valeur de :attr:`sys." +"pycache_prefix` (si tant est qu'elle soit définie) que celle en vigueur au " +"moment d'exécuter le programme." #: ../Doc/library/compileall.rst:121 msgid "Public functions" -msgstr "" +msgstr "Fonctions publiques" #: ../Doc/library/compileall.rst:125 msgid "" @@ -161,6 +225,9 @@ msgid "" "py` files along the way. Return a true value if all the files compiled " "successfully, and a false value otherwise." msgstr "" +"Parcourt récursivement le dossier *dir*, en compilant tous les fichiers :" +"file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été compilés " +"sans erreur, et une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:129 msgid "" @@ -176,12 +243,19 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces d'appels pour les erreurs qui " +"seraient levées lors de la compilation. De plus, il se retrouve dans les " +"fichiers de code intermédiaire, pour utilisation dans les traces et autres " +"messages si le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:138 msgid "" "If *force* is true, modules are re-compiled even if the timestamps are up to " "date." msgstr "" +"Si *force* est vrai, les modules sont recompilés même si leurs horodatages " +"sont à jour." #: ../Doc/library/compileall.rst:141 msgid "" @@ -196,6 +270,10 @@ msgid "" "information are printed to standard out. Set to ``1``, only errors are " "printed. Set to ``2``, all output is suppressed." msgstr "" +"Si *quiet* est ``False`` ou bien ``0`` (la valeur par défaut), les noms de " +"fichiers et d'autres informations sont affichés sur la sortie standard. Avec " +"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est " +"émise." #: ../Doc/library/compileall.rst:149 ../Doc/library/compileall.rst:213 msgid "" @@ -205,6 +283,12 @@ msgid "" "names, which allows byte-code files from multiple versions of Python to " "coexist." msgstr "" +"Si *legacy* est vrai, les fichiers de code intermédiaire sont nommés et " +"placés selon l'ancienne méthode, en écrasant éventuellement ceux générés par " +"une autre version de Python. Par défaut, les règles décrites dans la :pep:" +"`3147` s'appliquent. Elles permettent à différentes versions de " +"l'interpréteur Python de coexister en conservant chacune ses propres " +"fichiers ``.pyc``." #: ../Doc/library/compileall.rst:155 ../Doc/library/compileall.rst:219 msgid "" @@ -221,6 +305,12 @@ msgid "" "cores in the system is used. If *workers* is lower than ``0``, a :exc:" "`ValueError` will be raised." msgstr "" +"*workers* est le nombre de tâches lancées en parallèle pour la compilation. " +"Par défaut, les fichiers sont compilés séquentiellement. Cette même " +"stratégie s'applique dans tous les cas lorsque le parallélisme n'est pas " +"possible sur la plateforme d'exécution. Si *workers* vaut 0, autant de " +"tâches sont lancées que le système comporte de cœurs. Si *workers* est " +"strictement négatif, une exception de type :exc:`ValueError` est levée." #: ../Doc/library/compileall.rst:165 ../Doc/library/compileall.rst:222 msgid "" @@ -228,19 +318,22 @@ msgid "" "PycInvalidationMode` enum and controls how the generated pycs are " "invalidated at runtime." msgstr "" +"*invalidation_mode* doit être un membre de l'énumération :class:`py_compile." +"PycInvalidationMode` et détermine la manière dont les fichiers :file:`.pyc` " +"sont invalidés lorsque l'interpréteur tente de les utiliser." #: ../Doc/library/compileall.rst:169 ../Doc/library/compileall.rst:251 msgid "Added the *legacy* and *optimize* parameter." -msgstr "" +msgstr "ajout des paramètres *legacy* et *optimize*." #: ../Doc/library/compileall.rst:172 msgid "Added the *workers* parameter." -msgstr "" +msgstr "ajout du paramètre *workers*." #: ../Doc/library/compileall.rst:175 ../Doc/library/compileall.rst:228 #: ../Doc/library/compileall.rst:254 msgid "*quiet* parameter was changed to a multilevel value." -msgstr "" +msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." #: ../Doc/library/compileall.rst:178 ../Doc/library/compileall.rst:231 #: ../Doc/library/compileall.rst:257 @@ -248,6 +341,8 @@ msgid "" "The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " "matter what the value of *optimize* is." msgstr "" +"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais ``." +"pyo``, sont générés, quel que soit le niveau d'optimisation." #: ../Doc/library/compileall.rst:182 msgid "Accepts a :term:`path-like object`." @@ -256,22 +351,27 @@ msgstr "Accepte un :term:`path-like object`." #: ../Doc/library/compileall.rst:185 ../Doc/library/compileall.rst:235 #: ../Doc/library/compileall.rst:261 msgid "The *invalidation_mode* parameter was added." -msgstr "" +msgstr "ajout du paramètre *invalidation_mode*." #: ../Doc/library/compileall.rst:188 ../Doc/library/compileall.rst:238 #: ../Doc/library/compileall.rst:264 msgid "The *invalidation_mode* parameter's default value is updated to None." msgstr "" +"La valeur par défaut du paramètre *invalidation_mode* est changée à ``None``." #: ../Doc/library/compileall.rst:191 msgid "Setting *workers* to 0 now chooses the optimal number of cores." msgstr "" +"Un nombre de processus adapté à la machine est choisi lorsque *workers* vaut " +"0." #: ../Doc/library/compileall.rst:196 msgid "" "Compile the file with path *fullname*. Return a true value if the file " "compiled successfully, and a false value otherwise." msgstr "" +"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une " +"valeur vraie si et seulement si le fichier est compilé sans erreur." #: ../Doc/library/compileall.rst:199 msgid "" @@ -281,6 +381,11 @@ msgid "" "where the source file does not exist at the time the byte-code file is " "executed." msgstr "" +"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " +"compilé, ce qui modifie l'affichage des traces pour les erreurs qui seraient " +"levées lors de la compilation. De plus, il se retrouve dans les fichiers de " +"code intermédiaire, pour utilisation dans les traces et autres messages si " +"le fichier source n'existe pas au moment de l'exécution." #: ../Doc/library/compileall.rst:205 msgid "" @@ -295,6 +400,9 @@ msgid "" "true value if all the files compiled successfully, and a false value " "otherwise." msgstr "" +"Compile tous les fichiers :file:`.py` contenus dans les dossiers de ``sys." +"path``. Renvoie une valeur vraie s'ils ont tous été compilés sans erreur, et " +"une valeur fausse dans le cas contraire." #: ../Doc/library/compileall.rst:246 msgid "" @@ -303,17 +411,23 @@ msgid "" "`compile_dir` function. Note that unlike the other compile functions, " "``maxlevels`` defaults to ``0``." msgstr "" +"Si *skip_curdir* est vrai (c'est le cas par défaut), le dossier courant est " +"exclu de la recherche. Les autres paramètres sont passés à :func:" +"`compile_dir`. Notez que contrairement aux autres fonctions de ce module, la " +"valeur par défaut de ``maxlevels`` est ``0``." #: ../Doc/library/compileall.rst:267 msgid "" "To force a recompile of all the :file:`.py` files in the :file:`Lib/` " "subdirectory and all its subdirectories::" msgstr "" +"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le " +"dossier :file:`Lib/` et tous ses sous-dossiers ::" #: ../Doc/library/compileall.rst:284 msgid "Module :mod:`py_compile`" -msgstr "" +msgstr "Module :mod:`py_compile`" #: ../Doc/library/compileall.rst:285 msgid "Byte-compile a single source file." -msgstr "" +msgstr "Compiler un fichier source unique." diff --git a/library/concurrency.po b/library/concurrency.po index 3e8cbe3b28..d7d62ed5bd 100644 --- a/library/concurrency.po +++ b/library/concurrency.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2019-03-11 14:38+0100\n" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po index ae53d5161d..da89744a36 100644 --- a/library/concurrent.futures.po +++ b/library/concurrent.futures.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,23 +14,24 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/concurrent.futures.rst:2 +#: library/concurrent.futures.rst:2 +#, fuzzy msgid ":mod:`concurrent.futures` --- Launching parallel tasks" -msgstr "" +msgstr ":mod:`concurrent.futures` -- Lancer des tâches en parallèle" -#: ../Doc/library/concurrent.futures.rst:9 +#: library/concurrent.futures.rst:9 msgid "" "**Source code:** :source:`Lib/concurrent/futures/thread.py` and :source:`Lib/" "concurrent/futures/process.py`" msgstr "" -#: ../Doc/library/concurrent.futures.rst:14 +#: library/concurrent.futures.rst:14 msgid "" "The :mod:`concurrent.futures` module provides a high-level interface for " "asynchronously executing callables." msgstr "" -#: ../Doc/library/concurrent.futures.rst:17 +#: library/concurrent.futures.rst:17 msgid "" "The asynchronous execution can be performed with threads, using :class:" "`ThreadPoolExecutor`, or separate processes, using :class:" @@ -38,38 +39,38 @@ msgid "" "by the abstract :class:`Executor` class." msgstr "" -#: ../Doc/library/concurrent.futures.rst:24 +#: library/concurrent.futures.rst:24 msgid "Executor Objects" msgstr "" -#: ../Doc/library/concurrent.futures.rst:28 +#: library/concurrent.futures.rst:28 msgid "" "An abstract class that provides methods to execute calls asynchronously. It " "should not be used directly, but through its concrete subclasses." msgstr "" -#: ../Doc/library/concurrent.futures.rst:33 +#: library/concurrent.futures.rst:33 msgid "" "Schedules the callable, *fn*, to be executed as ``fn(*args **kwargs)`` and " "returns a :class:`Future` object representing the execution of the " "callable. ::" msgstr "" -#: ../Doc/library/concurrent.futures.rst:43 +#: library/concurrent.futures.rst:43 msgid "Similar to :func:`map(func, *iterables) ` except:" msgstr "" -#: ../Doc/library/concurrent.futures.rst:45 +#: library/concurrent.futures.rst:45 msgid "the *iterables* are collected immediately rather than lazily;" msgstr "" -#: ../Doc/library/concurrent.futures.rst:47 +#: library/concurrent.futures.rst:47 msgid "" "*func* is executed asynchronously and several calls to *func* may be made " "concurrently." msgstr "" -#: ../Doc/library/concurrent.futures.rst:50 +#: library/concurrent.futures.rst:50 msgid "" "The returned iterator raises a :exc:`concurrent.futures.TimeoutError` if :" "meth:`~iterator.__next__` is called and the result isn't available after " @@ -78,13 +79,13 @@ msgid "" "is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:56 +#: library/concurrent.futures.rst:56 msgid "" "If a *func* call raises an exception, then that exception will be raised " "when its value is retrieved from the iterator." msgstr "" -#: ../Doc/library/concurrent.futures.rst:59 +#: library/concurrent.futures.rst:59 msgid "" "When using :class:`ProcessPoolExecutor`, this method chops *iterables* into " "a number of chunks which it submits to the pool as separate tasks. The " @@ -94,11 +95,11 @@ msgid "" "size of 1. With :class:`ThreadPoolExecutor`, *chunksize* has no effect." msgstr "" -#: ../Doc/library/concurrent.futures.rst:67 +#: library/concurrent.futures.rst:67 msgid "Added the *chunksize* argument." msgstr "" -#: ../Doc/library/concurrent.futures.rst:72 +#: library/concurrent.futures.rst:72 msgid "" "Signal the executor that it should free any resources that it is using when " "the currently pending futures are done executing. Calls to :meth:`Executor." @@ -106,7 +107,7 @@ msgid "" "`RuntimeError`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:77 +#: library/concurrent.futures.rst:77 msgid "" "If *wait* is ``True`` then this method will not return until all the pending " "futures are done executing and the resources associated with the executor " @@ -117,40 +118,40 @@ msgid "" "are done executing." msgstr "" -#: ../Doc/library/concurrent.futures.rst:85 +#: library/concurrent.futures.rst:85 msgid "" "You can avoid having to call this method explicitly if you use the :keyword:" "`with` statement, which will shutdown the :class:`Executor` (waiting as if :" "meth:`Executor.shutdown` were called with *wait* set to ``True``)::" msgstr "" -#: ../Doc/library/concurrent.futures.rst:99 +#: library/concurrent.futures.rst:99 msgid "ThreadPoolExecutor" msgstr "ThreadPoolExecutor" -#: ../Doc/library/concurrent.futures.rst:101 +#: library/concurrent.futures.rst:101 msgid "" ":class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a " "pool of threads to execute calls asynchronously." msgstr "" -#: ../Doc/library/concurrent.futures.rst:104 +#: library/concurrent.futures.rst:104 msgid "" "Deadlocks can occur when the callable associated with a :class:`Future` " "waits on the results of another :class:`Future`. For example::" msgstr "" -#: ../Doc/library/concurrent.futures.rst:123 +#: library/concurrent.futures.rst:123 msgid "And::" msgstr "Et ::" -#: ../Doc/library/concurrent.futures.rst:137 +#: library/concurrent.futures.rst:137 msgid "" "An :class:`Executor` subclass that uses a pool of at most *max_workers* " "threads to execute calls asynchronously." msgstr "" -#: ../Doc/library/concurrent.futures.rst:140 +#: library/concurrent.futures.rst:140 msgid "" "*initializer* is an optional callable that is called at the start of each " "worker thread; *initargs* is a tuple of arguments passed to the " @@ -159,7 +160,7 @@ msgid "" "well as any attempt to submit more jobs to the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:146 +#: library/concurrent.futures.rst:146 msgid "" "If *max_workers* is ``None`` or not given, it will default to the number of " "processors on the machine, multiplied by ``5``, assuming that :class:" @@ -168,19 +169,18 @@ msgid "" "`ProcessPoolExecutor`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:154 +#: library/concurrent.futures.rst:154 msgid "" "The *thread_name_prefix* argument was added to allow users to control the :" "class:`threading.Thread` names for worker threads created by the pool for " "easier debugging." msgstr "" -#: ../Doc/library/concurrent.futures.rst:159 -#: ../Doc/library/concurrent.futures.rst:252 +#: library/concurrent.futures.rst:159 library/concurrent.futures.rst:253 msgid "Added the *initializer* and *initargs* arguments." msgstr "" -#: ../Doc/library/concurrent.futures.rst:162 +#: library/concurrent.futures.rst:162 msgid "" "Default value of *max_workers* is changed to ``min(32, os.cpu_count() + " "4)``. This default value preserves at least 5 workers for I/O bound tasks. " @@ -188,66 +188,67 @@ msgid "" "And it avoids using very large resources implicitly on many-core machines." msgstr "" -#: ../Doc/library/concurrent.futures.rst:168 +#: library/concurrent.futures.rst:168 msgid "" "ThreadPoolExecutor now reuses idle worker threads before starting " "*max_workers* worker threads too." msgstr "" -#: ../Doc/library/concurrent.futures.rst:175 +#: library/concurrent.futures.rst:175 msgid "ThreadPoolExecutor Example" msgstr "" -#: ../Doc/library/concurrent.futures.rst:207 +#: library/concurrent.futures.rst:207 msgid "ProcessPoolExecutor" msgstr "ProcessPoolExecutor" -#: ../Doc/library/concurrent.futures.rst:209 +#: library/concurrent.futures.rst:209 msgid "" "The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " "uses a pool of processes to execute calls asynchronously. :class:" "`ProcessPoolExecutor` uses the :mod:`multiprocessing` module, which allows " -"it to side-step the :term:`Global Interpreter Lock` but also means that only " -"picklable objects can be executed and returned." +"it to side-step the :term:`Global Interpreter Lock ` but also means that only picklable objects can be executed and " +"returned." msgstr "" -#: ../Doc/library/concurrent.futures.rst:215 +#: library/concurrent.futures.rst:216 msgid "" "The ``__main__`` module must be importable by worker subprocesses. This " "means that :class:`ProcessPoolExecutor` will not work in the interactive " "interpreter." msgstr "" -#: ../Doc/library/concurrent.futures.rst:218 +#: library/concurrent.futures.rst:219 msgid "" "Calling :class:`Executor` or :class:`Future` methods from a callable " "submitted to a :class:`ProcessPoolExecutor` will result in deadlock." msgstr "" -#: ../Doc/library/concurrent.futures.rst:223 +#: library/concurrent.futures.rst:224 msgid "" "An :class:`Executor` subclass that executes calls asynchronously using a " "pool of at most *max_workers* processes. If *max_workers* is ``None`` or " "not given, it will default to the number of processors on the machine. If " -"*max_workers* is lower or equal to ``0``, then a :exc:`ValueError` will be " -"raised. On Windows, *max_workers* must be equal or lower than ``61``. If it " -"is not then :exc:`ValueError` will be raised. If *max_workers* is ``None``, " -"then the default chosen will be at most ``61``, even if more processors are " -"available. *mp_context* can be a multiprocessing context or None. It will be " -"used to launch the workers. If *mp_context* is ``None`` or not given, the " -"default multiprocessing context is used." +"*max_workers* is less than or equal to ``0``, then a :exc:`ValueError` will " +"be raised. On Windows, *max_workers* must be less than or equal to ``61``. " +"If it is not then :exc:`ValueError` will be raised. If *max_workers* is " +"``None``, then the default chosen will be at most ``61``, even if more " +"processors are available. *mp_context* can be a multiprocessing context or " +"None. It will be used to launch the workers. If *mp_context* is ``None`` or " +"not given, the default multiprocessing context is used." msgstr "" -#: ../Doc/library/concurrent.futures.rst:236 +#: library/concurrent.futures.rst:237 msgid "" "*initializer* is an optional callable that is called at the start of each " "worker process; *initargs* is a tuple of arguments passed to the " "initializer. Should *initializer* raise an exception, all currently pending " "jobs will raise a :exc:`~concurrent.futures.process.BrokenProcessPool`, as " -"well any attempt to submit more jobs to the pool." +"well as any attempt to submit more jobs to the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:242 +#: library/concurrent.futures.rst:243 msgid "" "When one of the worker processes terminates abruptly, a :exc:" "`BrokenProcessPool` error is now raised. Previously, behaviour was " @@ -255,34 +256,34 @@ msgid "" "or deadlock." msgstr "" -#: ../Doc/library/concurrent.futures.rst:248 +#: library/concurrent.futures.rst:249 msgid "" "The *mp_context* argument was added to allow users to control the " "start_method for worker processes created by the pool." msgstr "" -#: ../Doc/library/concurrent.futures.rst:258 +#: library/concurrent.futures.rst:259 msgid "ProcessPoolExecutor Example" msgstr "" -#: ../Doc/library/concurrent.futures.rst:296 +#: library/concurrent.futures.rst:297 msgid "Future Objects" msgstr "" -#: ../Doc/library/concurrent.futures.rst:298 +#: library/concurrent.futures.rst:299 msgid "" "The :class:`Future` class encapsulates the asynchronous execution of a " "callable. :class:`Future` instances are created by :meth:`Executor.submit`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:303 +#: library/concurrent.futures.rst:304 msgid "" "Encapsulates the asynchronous execution of a callable. :class:`Future` " "instances are created by :meth:`Executor.submit` and should not be created " "directly except for testing." msgstr "" -#: ../Doc/library/concurrent.futures.rst:309 +#: library/concurrent.futures.rst:310 msgid "" "Attempt to cancel the call. If the call is currently being executed or " "finished running and cannot be cancelled then the method will return " @@ -290,22 +291,22 @@ msgid "" "``True``." msgstr "" -#: ../Doc/library/concurrent.futures.rst:316 +#: library/concurrent.futures.rst:317 msgid "Return ``True`` if the call was successfully cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:320 +#: library/concurrent.futures.rst:321 msgid "" "Return ``True`` if the call is currently being executed and cannot be " "cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:325 +#: library/concurrent.futures.rst:326 msgid "" "Return ``True`` if the call was successfully cancelled or finished running." msgstr "" -#: ../Doc/library/concurrent.futures.rst:330 +#: library/concurrent.futures.rst:331 msgid "" "Return the value returned by the call. If the call hasn't yet completed then " "this method will wait up to *timeout* seconds. If the call hasn't completed " @@ -314,18 +315,17 @@ msgid "" "``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:337 -#: ../Doc/library/concurrent.futures.rst:351 +#: library/concurrent.futures.rst:338 library/concurrent.futures.rst:352 msgid "" "If the future is cancelled before completing then :exc:`.CancelledError` " "will be raised." msgstr "" -#: ../Doc/library/concurrent.futures.rst:340 +#: library/concurrent.futures.rst:341 msgid "If the call raised, this method will raise the same exception." msgstr "" -#: ../Doc/library/concurrent.futures.rst:344 +#: library/concurrent.futures.rst:345 msgid "" "Return the exception raised by the call. If the call hasn't yet completed " "then this method will wait up to *timeout* seconds. If the call hasn't " @@ -334,18 +334,18 @@ msgid "" "*timeout* is not specified or ``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:354 +#: library/concurrent.futures.rst:355 msgid "If the call completed without raising, ``None`` is returned." msgstr "" -#: ../Doc/library/concurrent.futures.rst:358 +#: library/concurrent.futures.rst:359 msgid "" "Attaches the callable *fn* to the future. *fn* will be called, with the " "future as its only argument, when the future is cancelled or finishes " "running." msgstr "" -#: ../Doc/library/concurrent.futures.rst:362 +#: library/concurrent.futures.rst:363 msgid "" "Added callables are called in the order that they were added and are always " "called in a thread belonging to the process that added them. If the " @@ -354,26 +354,26 @@ msgid "" "behavior is undefined." msgstr "" -#: ../Doc/library/concurrent.futures.rst:368 +#: library/concurrent.futures.rst:369 msgid "" "If the future has already completed or been cancelled, *fn* will be called " "immediately." msgstr "" -#: ../Doc/library/concurrent.futures.rst:371 +#: library/concurrent.futures.rst:372 msgid "" "The following :class:`Future` methods are meant for use in unit tests and :" "class:`Executor` implementations." msgstr "" -#: ../Doc/library/concurrent.futures.rst:376 +#: library/concurrent.futures.rst:377 msgid "" "This method should only be called by :class:`Executor` implementations " "before executing the work associated with the :class:`Future` and by unit " "tests." msgstr "" -#: ../Doc/library/concurrent.futures.rst:380 +#: library/concurrent.futures.rst:381 msgid "" "If the method returns ``False`` then the :class:`Future` was cancelled, i." "e. :meth:`Future.cancel` was called and returned `True`. Any threads " @@ -381,49 +381,47 @@ msgid "" "or :func:`wait`) will be woken up." msgstr "" -#: ../Doc/library/concurrent.futures.rst:385 +#: library/concurrent.futures.rst:386 msgid "" "If the method returns ``True`` then the :class:`Future` was not cancelled " "and has been put in the running state, i.e. calls to :meth:`Future.running` " "will return `True`." msgstr "" -#: ../Doc/library/concurrent.futures.rst:389 +#: library/concurrent.futures.rst:390 msgid "" "This method can only be called once and cannot be called after :meth:`Future." "set_result` or :meth:`Future.set_exception` have been called." msgstr "" -#: ../Doc/library/concurrent.futures.rst:395 +#: library/concurrent.futures.rst:396 msgid "" "Sets the result of the work associated with the :class:`Future` to *result*." msgstr "" -#: ../Doc/library/concurrent.futures.rst:398 -#: ../Doc/library/concurrent.futures.rst:411 +#: library/concurrent.futures.rst:399 library/concurrent.futures.rst:412 msgid "" "This method should only be used by :class:`Executor` implementations and " "unit tests." msgstr "" -#: ../Doc/library/concurrent.futures.rst:401 -#: ../Doc/library/concurrent.futures.rst:414 +#: library/concurrent.futures.rst:402 library/concurrent.futures.rst:415 msgid "" "This method raises :exc:`concurrent.futures.InvalidStateError` if the :class:" "`Future` is already done." msgstr "" -#: ../Doc/library/concurrent.futures.rst:408 +#: library/concurrent.futures.rst:409 msgid "" "Sets the result of the work associated with the :class:`Future` to the :" "class:`Exception` *exception*." msgstr "" -#: ../Doc/library/concurrent.futures.rst:420 +#: library/concurrent.futures.rst:421 msgid "Module Functions" msgstr "" -#: ../Doc/library/concurrent.futures.rst:424 +#: library/concurrent.futures.rst:425 msgid "" "Wait for the :class:`Future` instances (possibly created by different :class:" "`Executor` instances) given by *fs* to complete. Returns a named 2-tuple of " @@ -433,14 +431,14 @@ msgid "" "running futures)." msgstr "" -#: ../Doc/library/concurrent.futures.rst:431 +#: library/concurrent.futures.rst:432 msgid "" "*timeout* can be used to control the maximum number of seconds to wait " "before returning. *timeout* can be an int or float. If *timeout* is not " "specified or ``None``, there is no limit to the wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:435 +#: library/concurrent.futures.rst:436 msgid "" "*return_when* indicates when this function should return. It must be one of " "the following constants:" @@ -448,28 +446,28 @@ msgstr "" "*return_when* indique quand la fonction doit se terminer. Il peut prendre " "les valeurs suivantes :" -#: ../Doc/library/concurrent.futures.rst:441 +#: library/concurrent.futures.rst:442 msgid "Constant" msgstr "Constante" -#: ../Doc/library/concurrent.futures.rst:441 +#: library/concurrent.futures.rst:442 msgid "Description" msgstr "Description" -#: ../Doc/library/concurrent.futures.rst:443 +#: library/concurrent.futures.rst:444 msgid ":const:`FIRST_COMPLETED`" msgstr ":const:`FIRST_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:443 +#: library/concurrent.futures.rst:444 msgid "The function will return when any future finishes or is cancelled." msgstr "" "La fonction se termine lorsque n'importe quel futur se termine ou est annulé." -#: ../Doc/library/concurrent.futures.rst:446 +#: library/concurrent.futures.rst:447 msgid ":const:`FIRST_EXCEPTION`" msgstr ":const:`FIRST_EXCEPTION`" -#: ../Doc/library/concurrent.futures.rst:446 +#: library/concurrent.futures.rst:447 msgid "" "The function will return when any future finishes by raising an exception. " "If no future raises an exception then it is equivalent to :const:" @@ -479,16 +477,16 @@ msgstr "" "exception. Si aucun *futur* ne lève d'exception, équivaut à :const:" "`ALL_COMPLETED`." -#: ../Doc/library/concurrent.futures.rst:452 +#: library/concurrent.futures.rst:453 msgid ":const:`ALL_COMPLETED`" msgstr ":const:`ALL_COMPLETED`" -#: ../Doc/library/concurrent.futures.rst:452 +#: library/concurrent.futures.rst:453 msgid "The function will return when all futures finish or are cancelled." msgstr "" "La fonction se termine lorsque les *futurs* sont tous finis ou annulés." -#: ../Doc/library/concurrent.futures.rst:458 +#: library/concurrent.futures.rst:459 msgid "" "Returns an iterator over the :class:`Future` instances (possibly created by " "different :class:`Executor` instances) given by *fs* that yields futures as " @@ -502,49 +500,49 @@ msgid "" "wait time." msgstr "" -#: ../Doc/library/concurrent.futures.rst:472 +#: library/concurrent.futures.rst:473 msgid ":pep:`3148` -- futures - execute computations asynchronously" msgstr "" -#: ../Doc/library/concurrent.futures.rst:472 +#: library/concurrent.futures.rst:473 msgid "" "The proposal which described this feature for inclusion in the Python " "standard library." msgstr "" -#: ../Doc/library/concurrent.futures.rst:477 +#: library/concurrent.futures.rst:478 msgid "Exception classes" msgstr "" -#: ../Doc/library/concurrent.futures.rst:483 +#: library/concurrent.futures.rst:484 msgid "Raised when a future is cancelled." msgstr "" -#: ../Doc/library/concurrent.futures.rst:487 +#: library/concurrent.futures.rst:488 msgid "Raised when a future operation exceeds the given timeout." msgstr "" -#: ../Doc/library/concurrent.futures.rst:491 +#: library/concurrent.futures.rst:492 msgid "" "Derived from :exc:`RuntimeError`, this exception class is raised when an " "executor is broken for some reason, and cannot be used to submit or execute " "new tasks." msgstr "" -#: ../Doc/library/concurrent.futures.rst:499 +#: library/concurrent.futures.rst:500 msgid "" "Raised when an operation is performed on a future that is not allowed in the " "current state." msgstr "" -#: ../Doc/library/concurrent.futures.rst:508 +#: library/concurrent.futures.rst:509 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " "is raised when one of the workers of a :class:`ThreadPoolExecutor` has " "failed initializing." msgstr "" -#: ../Doc/library/concurrent.futures.rst:518 +#: library/concurrent.futures.rst:519 msgid "" "Derived from :exc:`~concurrent.futures.BrokenExecutor` (formerly :exc:" "`RuntimeError`), this exception class is raised when one of the workers of " diff --git a/library/concurrent.po b/library/concurrent.po index 0d9fef59bf..1e644c1df0 100644 --- a/library/concurrent.po +++ b/library/concurrent.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-10-18 09:28+0200\n" diff --git a/library/configparser.po b/library/configparser.po index 3bca0aa1b0..20c6b6e89a 100644 --- a/library/configparser.po +++ b/library/configparser.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,57 +14,72 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/configparser.rst:2 +#: library/configparser.rst:2 msgid ":mod:`configparser` --- Configuration file parser" -msgstr "" +msgstr ":mod:`configparser` — Lecture et écriture de fichiers de configuration" -#: ../Doc/library/configparser.rst:14 +#: library/configparser.rst:14 msgid "**Source code:** :source:`Lib/configparser.py`" msgstr "**Code source :** :source:`Lib/configparser.py`" -#: ../Doc/library/configparser.rst:24 +#: library/configparser.rst:24 msgid "" "This module provides the :class:`ConfigParser` class which implements a " "basic configuration language which provides a structure similar to what's " "found in Microsoft Windows INI files. You can use this to write Python " "programs which can be customized by end users easily." msgstr "" +"Ce module fournit la classe :class:`ConfigParser`. Cette classe implémente " +"un langage de configuration basique, proche de ce que l'on peut trouver dans " +"les fichiers *INI* de Microsoft Windows. Vous pouvez utiliser ce module pour " +"écrire des programmes Python qui sont facilement configurables par " +"l'utilisateur final." -#: ../Doc/library/configparser.rst:31 +#: library/configparser.rst:31 msgid "" "This library does *not* interpret or write the value-type prefixes used in " "the Windows Registry extended version of INI syntax." msgstr "" +"Ce module *n'implémente pas* la version étendue de la syntaxe *INI* qui " +"permet de lire ou d'écrire des valeurs dans la base de registre Windows en " +"utilisant divers préfixes." -#: ../Doc/library/configparser.rst:38 +#: library/configparser.rst:38 msgid "Module :mod:`shlex`" -msgstr "" +msgstr "Module :mod:`shlex`" -#: ../Doc/library/configparser.rst:37 +#: library/configparser.rst:37 msgid "" "Support for creating Unix shell-like mini-languages which can be used as an " "alternate format for application configuration files." msgstr "" +"Ce module fournit les outils permettant de créer des mini-langages de " +"programmation ressemblant au shell Unix, qui peuvent être utilisés comme " +"alternative pour les fichiers de configuration d'une application." -#: ../Doc/library/configparser.rst:41 +#: library/configparser.rst:41 msgid "Module :mod:`json`" -msgstr "" +msgstr "Module :mod:`json`" -#: ../Doc/library/configparser.rst:41 +#: library/configparser.rst:41 msgid "" "The json module implements a subset of JavaScript syntax which can also be " "used for this purpose." msgstr "" +"Le module *json* implémente un sous-ensemble de la syntaxe JavaScript, qui " +"peut aussi être utilisée à cet effet." -#: ../Doc/library/configparser.rst:51 +#: library/configparser.rst:51 msgid "Quick Start" -msgstr "" +msgstr "Premiers pas" -#: ../Doc/library/configparser.rst:53 +#: library/configparser.rst:53 msgid "Let's take a very basic configuration file that looks like this:" msgstr "" +"Prenons pour exemple un fichier de configuration très simple ressemblant à " +"ceci :" -#: ../Doc/library/configparser.rst:70 +#: library/configparser.rst:70 msgid "" "The structure of INI files is described `in the following section " "<#supported-ini-file-structure>`_. Essentially, the file consists of " @@ -72,40 +87,62 @@ msgid "" "classes can read and write such files. Let's start by creating the above " "configuration file programmatically." msgstr "" +"La structure des fichiers *INI* est décrite dans la `section suivante " +"<#supported-ini-file-structure>`_. En bref, chaque fichier est constitué de " +"sections, chacune des sections comprenant des clés associées à des valeurs. " +"Les classes du module :mod:`configparser` peuvent écrire et lire de tels " +"fichiers. Commençons par le code qui permet de générer le fichier ci-dessus." -#: ../Doc/library/configparser.rst:94 +#: library/configparser.rst:94 msgid "" "As you can see, we can treat a config parser much like a dictionary. There " "are differences, `outlined later <#mapping-protocol-access>`_, but the " "behavior is very close to what you would expect from a dictionary." msgstr "" +"Comme vous pouvez le voir, nous pouvons manipuler l'instance renvoyée par " +"l'analyse du fichier de configuration comme s'il s'agissait d'un " +"dictionnaire. Il y a des différences, comme `explicité ci-dessous <#mapping-" +"protocol-access>`_, mais le comportement de l'instance est très proche de ce " +"que vous pourriez attendre d'un dictionnaire." -#: ../Doc/library/configparser.rst:98 +#: library/configparser.rst:98 msgid "" "Now that we have created and saved a configuration file, let's read it back " "and explore the data it holds." msgstr "" +"Nous venons de créer et sauvegarder un fichier de configuration. Voyons " +"maintenant comment nous pouvons le lire et accéder aux données qu'il " +"contient." -#: ../Doc/library/configparser.rst:133 +#: library/configparser.rst:133 msgid "" "As we can see above, the API is pretty straightforward. The only bit of " "magic involves the ``DEFAULT`` section which provides default values for all " "other sections [1]_. Note also that keys in sections are case-insensitive " "and stored in lowercase [1]_." msgstr "" +"Comme vous le voyez, l'API est assez simple à utiliser. La seule partie un " +"peu magique concerne la section ``DEFAULT``, qui fournit les valeurs par " +"défaut pour toutes les autres sections [1]_. Notez également que les clés à " +"l’intérieur des sections ne sont pas sensibles à la casse et qu'elles sont " +"stockées en minuscules. [1]_." -#: ../Doc/library/configparser.rst:140 +#: library/configparser.rst:140 msgid "Supported Datatypes" -msgstr "" +msgstr "Types de données prises en charge" -#: ../Doc/library/configparser.rst:142 +#: library/configparser.rst:142 msgid "" "Config parsers do not guess datatypes of values in configuration files, " "always storing them internally as strings. This means that if you need " "other datatypes, you should convert on your own:" msgstr "" +"Les lecteurs de configuration n'essayent jamais de deviner le type des " +"valeurs présentes dans les fichiers de configuration, et elles sont toujours " +"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un " +"type différent, vous devez effectuer la conversion vous-même :" -#: ../Doc/library/configparser.rst:153 +#: library/configparser.rst:153 msgid "" "Since this task is so common, config parsers provide a range of handy getter " "methods to handle integers, floats and booleans. The last one is the most " @@ -115,26 +152,42 @@ msgid "" "and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " "``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" msgstr "" +"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de " +"configurations fournissent un ensemble d'accesseurs permettant de gérer les " +"entiers, les flottants et les booléens plus facilement. Le cas des booléens " +"est le plus pertinent. En effet, vous ne pouvez pas vous contenter " +"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` " +"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la " +"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à " +"la casse et interprète correctement les valeurs booléennes associées aux " +"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, " +"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :" -#: ../Doc/library/configparser.rst:170 +#: library/configparser.rst:170 msgid "" "Apart from :meth:`~ConfigParser.getboolean`, config parsers also provide " "equivalent :meth:`~ConfigParser.getint` and :meth:`~ConfigParser.getfloat` " "methods. You can register your own converters and customize the provided " "ones. [1]_" msgstr "" +"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations " +"fournissent également des méthodes similaires comme :meth:`~ConfigParser." +"getint` et :meth:`~ConfigParser.getfloat`. Vous pouvez enregistrer vos " +"propres convertisseurs et personnaliser ceux déjà fournis. [1]_" -#: ../Doc/library/configparser.rst:176 +#: library/configparser.rst:176 msgid "Fallback Values" -msgstr "" +msgstr "Valeurs de substitution" -#: ../Doc/library/configparser.rst:178 +#: library/configparser.rst:178 msgid "" "As with a dictionary, you can use a section's :meth:`get` method to provide " "fallback values:" msgstr "" +"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` " +"d'une section en spécifiant une valeur de substitution :" -#: ../Doc/library/configparser.rst:191 +#: library/configparser.rst:191 msgid "" "Please note that default values have precedence over fallback values. For " "instance, in our example the ``'CompressionLevel'`` key was specified only " @@ -142,27 +195,39 @@ msgid "" "``'topsecret.server.com'``, we will always get the default, even if we " "specify a fallback:" msgstr "" +"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs " +"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` " +"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de " +"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la " +"valeur par défaut, même en ayant spécifié une valeur de substitution :" -#: ../Doc/library/configparser.rst:202 +#: library/configparser.rst:202 msgid "" "One more thing to be aware of is that the parser-level :meth:`get` method " "provides a custom, more complex interface, maintained for backwards " "compatibility. When using this method, a fallback value can be provided via " "the ``fallback`` keyword-only argument:" msgstr "" +"Il est important de savoir que la méthode :meth:`get` appelée au niveau de " +"l'analyseur fournit une interface particulière et plus complexe, qui est " +"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une " +"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :" -#: ../Doc/library/configparser.rst:213 +#: library/configparser.rst:213 msgid "" "The same ``fallback`` argument can be used with the :meth:`~ConfigParser." "getint`, :meth:`~ConfigParser.getfloat` and :meth:`~ConfigParser.getboolean` " "methods, for example:" msgstr "" +"L'argument ``fallback`` peut être utilisé de la même façon avec les " +"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` et :" +"meth:`~ConfigParser.getboolean`. Par exemple :" -#: ../Doc/library/configparser.rst:229 +#: library/configparser.rst:229 msgid "Supported INI File Structure" -msgstr "" +msgstr "Structure des fichiers *INI* prise en change" -#: ../Doc/library/configparser.rst:231 +#: library/configparser.rst:231 msgid "" "A configuration file consists of sections, each led by a ``[section]`` " "header, followed by key/value entries separated by a specific string (``=`` " @@ -173,38 +238,61 @@ msgid "" "indented deeper than the first line of the value. Depending on the parser's " "mode, blank lines may be treated as parts of multiline values or ignored." msgstr "" +"Un fichier de configuration est constitué de sections. Chacune des sections " +"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-" +"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par " +"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse " +"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des " +"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, " +"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les " +"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les " +"lignes supplémentaires sont plus indentées que la première ligne. Les lignes " +"vides peuvent être considérées comme faisant partie des valeurs multi " +"lignes, en fonction de la configuration de l'analyseur." -#: ../Doc/library/configparser.rst:240 +#: library/configparser.rst:240 msgid "" "Configuration files may include comments, prefixed by specific characters " "(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " "otherwise empty line, possibly indented. [1]_" msgstr "" +"Les fichiers de configuration peuvent contenir des commentaires, préfixés " +"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les " +"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent " +"aussi être indentés. [1]_" -#: ../Doc/library/configparser.rst:244 ../Doc/library/configparser.rst:307 +#: library/configparser.rst:307 msgid "For example:" -msgstr "Par exemple ::" +msgstr "Par exemple :" -#: ../Doc/library/configparser.rst:292 +#: library/configparser.rst:292 msgid "Interpolation of values" -msgstr "" +msgstr "Interpolation des valeurs" -#: ../Doc/library/configparser.rst:294 +#: library/configparser.rst:294 msgid "" "On top of the core functionality, :class:`ConfigParser` supports " "interpolation. This means values can be preprocessed before returning them " "from ``get()`` calls." msgstr "" +"La classe :class:`ConfigParser` prend en charge l’interpolation, en plus des " +"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées " +"avant d'être renvoyées par les appels aux méthodes ``get()``." -#: ../Doc/library/configparser.rst:302 +#: library/configparser.rst:302 msgid "" "The default implementation used by :class:`ConfigParser`. It enables values " "to contain format strings which refer to other values in the same section, " "or values in the special default section [1]_. Additional default values " "can be provided on initialization." msgstr "" +"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. " +"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant " +"à d'autres valeurs dans la même section, ou bien à des valeurs dans la " +"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être " +"fournies au moment de l'initialisation de cette classe." -#: ../Doc/library/configparser.rst:319 +#: library/configparser.rst:319 msgid "" "In the example above, :class:`ConfigParser` with *interpolation* set to " "``BasicInterpolation()`` would resolve ``%(home_dir)s`` to the value of " @@ -213,15 +301,25 @@ msgid "" "keys used in the chain of references do not have to be specified in any " "specific order in the configuration file." msgstr "" +"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut " +"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de " +"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` " +"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/" +"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés " +"utilisées comme référence à l’intérieur des chaînes de formatage peuvent " +"être définies dans le fichier de configuration dans n'importe quel ordre." -#: ../Doc/library/configparser.rst:326 +#: library/configparser.rst:326 msgid "" -"With ``interpolation`` set to ``None``, the parser would simply return ``" -"%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" +"With ``interpolation`` set to ``None``, the parser would simply return " +"``%(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" "lumberjack`` as the value of ``my_dir``." msgstr "" +"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie " +"``%(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/" +"lumberjack`` comme valeur pour ``my_dir``." -#: ../Doc/library/configparser.rst:334 +#: library/configparser.rst:334 msgid "" "An alternative handler for interpolation which implements a more advanced " "syntax, used for instance in ``zc.buildout``. Extended interpolation is " @@ -230,30 +328,45 @@ msgid "" "`` part is omitted, interpolation defaults to the current section (and " "possibly the default values from the special section)." msgstr "" +"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, " +"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la " +"chaîne de formatage ``{section:option}}`` pour désigner une valeur " +"appartenant à une autre section. L'interpolation peut s'étendre sur " +"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, " +"l'interpolation utilise la section courante par défaut (et, le cas échéant, " +"les valeurs de la section par défaut spéciale)." -#: ../Doc/library/configparser.rst:341 +#: library/configparser.rst:341 msgid "" "For example, the configuration specified above with basic interpolation, " "would look like this with extended interpolation:" msgstr "" +"Voici comment transformer la configuration ci-dessus avec la syntaxe " +"d'interpolation étendue :" -#: ../Doc/library/configparser.rst:354 +#: library/configparser.rst:354 msgid "Values from other sections can be fetched as well:" msgstr "" +"Vous pouvez également récupérer des valeurs appartenant aux autres sections :" -#: ../Doc/library/configparser.rst:376 +#: library/configparser.rst:376 msgid "Mapping Protocol Access" -msgstr "" +msgstr "Protocole d'accès associatif" -#: ../Doc/library/configparser.rst:380 +#: library/configparser.rst:380 msgid "" "Mapping protocol access is a generic name for functionality that enables " "using custom objects as if they were dictionaries. In case of :mod:" "`configparser`, the mapping interface implementation is using the " "``parser['section']['option']`` notation." msgstr "" +"Le terme « protocole d'accès associatif » est utilisé pour décrire la " +"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il " +"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, " +"l’implémentation du protocole utilise la notation ``parser['section']" +"['option']``." -#: ../Doc/library/configparser.rst:385 +#: library/configparser.rst:385 msgid "" "``parser['section']`` in particular returns a proxy for the section's data " "in the parser. This means that the values are not copied but they are taken " @@ -261,16 +374,27 @@ msgid "" "values are changed on a section proxy, they are actually mutated in the " "original parser." msgstr "" +"En particulier, ``parser['section']`` renvoie un mandataire vers les données " +"de la section correspondantes dans l'analyseur. Cela signifie que les " +"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la " +"demande. Plus important encore, lorsque les valeurs sont changées dans un " +"mandataire pour une section, elles sont en réalité changées dans l'analyseur " +"initial." -#: ../Doc/library/configparser.rst:391 +#: library/configparser.rst:391 msgid "" ":mod:`configparser` objects behave as close to actual dictionaries as " "possible. The mapping interface is complete and adheres to the :class:" "`~collections.abc.MutableMapping` ABC. However, there are a few differences " "that should be taken into account:" msgstr "" +"Les objets du module :mod:`configparser` se comportent le plus possible " +"comme des vrais dictionnaires. L'interface est complète et suit les " +"définitions fournies par la classe abstraite :class:`~collections.abc." +"MutableMapping`. Cependant, il faut prendre en compte un certain nombre de " +"différences :" -#: ../Doc/library/configparser.rst:396 +#: library/configparser.rst:396 msgid "" "By default, all keys in sections are accessible in a case-insensitive manner " "[1]_. E.g. ``for option in parser[\"section\"]`` yields only " @@ -278,8 +402,13 @@ msgid "" "default. At the same time, for a section that holds the key ``'a'``, both " "expressions return ``True``::" msgstr "" +"Par défaut, toutes les clés des sections sont accessibles sans respect de la " +"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie " +"uniquement les clés telles que transformées par la méthode ``optionxform``, " +"c'est-à-dire des clés transformées en minuscules. De même, pour une section " +"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::" -#: ../Doc/library/configparser.rst:404 +#: library/configparser.rst:404 msgid "" "All sections include ``DEFAULTSECT`` values as well which means that ``." "clear()`` on a section may not leave the section visibly empty. This is " @@ -288,31 +417,43 @@ msgid "" "deleting causes the default value to be visible again. Trying to delete a " "default value causes a :exc:`KeyError`." msgstr "" +"Toutes les sections incluent en plus les valeurs de la section " +"``DEFAULTSECT``. Cela signifie qu'appeler ``clear()`` sur une section ne la " +"fera pas forcément apparaître vide. En effet, les valeurs par défaut ne " +"peuvent pas être supprimées de la section (car, techniquement, elles n'y " +"sont pas présentes). Si vous détruisez une valeur par défaut qui a été " +"écrasée dans une section, alors la valeur par défaut sera de nouveau " +"visible. Essayer de détruire une valeur par défaut lève l'exception :exc:" +"`KeyError`." -#: ../Doc/library/configparser.rst:411 +#: library/configparser.rst:411 msgid "``DEFAULTSECT`` cannot be removed from the parser:" -msgstr "" +msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée ::" -#: ../Doc/library/configparser.rst:413 +#: library/configparser.rst:413 msgid "trying to delete it raises :exc:`ValueError`," -msgstr "" +msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;" -#: ../Doc/library/configparser.rst:415 +#: library/configparser.rst:415 msgid "``parser.clear()`` leaves it intact," -msgstr "" +msgstr "appeler ``parser.clear()`` la laisse intacte ;" -#: ../Doc/library/configparser.rst:417 +#: library/configparser.rst:417 msgid "``parser.popitem()`` never returns it." -msgstr "" +msgstr "appeler ```parser.popitem()`` ne la renvoie jamais." -#: ../Doc/library/configparser.rst:419 +#: library/configparser.rst:419 msgid "" "``parser.get(section, option, **kwargs)`` - the second argument is **not** a " "fallback value. Note however that the section-level ``get()`` methods are " "compatible both with the mapping protocol and the classic configparser API." msgstr "" +"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est " +"**pas** une valeur de substitution. Notez cependant que les méthodes " +"``get()`` fournies par les sections sont compatibles à la fois avec le " +"protocole associatif et avec l'API classique de *configparser*." -#: ../Doc/library/configparser.rst:423 +#: library/configparser.rst:423 msgid "" "``parser.items()`` is compatible with the mapping protocol (returns a list " "of *section_name*, *section_proxy* pairs including the DEFAULTSECT). " @@ -321,19 +462,29 @@ msgid "" "*value* pairs for a specified ``section``, with all interpolations expanded " "(unless ``raw=True`` is provided)." msgstr "" +"La méthode ``parser.items()`` est compatible avec le protocole d'accès " +"associatif et renvoie une liste de paires *section_name*, *section_proxy*, " +"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi " +"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans " +"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la " +"section spécifiée, en interprétant les interpolations (à moins d'utiliser " +"``raw=True``)." -#: ../Doc/library/configparser.rst:430 +#: library/configparser.rst:430 msgid "" "The mapping protocol is implemented on top of the existing legacy API so " "that subclasses overriding the original interface still should have mappings " "working as expected." msgstr "" +"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les " +"sous-classes qui écrasent des méthodes de l'interface originale se " +"comportent correctement du point de vue du protocole d'accès." -#: ../Doc/library/configparser.rst:436 +#: library/configparser.rst:436 msgid "Customizing Parser Behaviour" -msgstr "" +msgstr "Personnalisation du comportement de l'analyseur" -#: ../Doc/library/configparser.rst:438 +#: library/configparser.rst:438 msgid "" "There are nearly as many INI format variants as there are applications using " "it. :mod:`configparser` goes a long way to provide support for the largest " @@ -341,94 +492,136 @@ msgid "" "dictated by historical background and it's very likely that you will want to " "customize some of the features." msgstr "" +"Il existe pratiquement autant de variations du format *INI* que " +"d'applications qui l'utilisent. Le module :mod:`configparser` fait son " +"possible pour gérer le plus grand nombre de variantes raisonnables du style " +"*INI*. Le comportement par défaut est principalement contraint par des " +"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire " +"de personnaliser certaines des fonctionnalités de ce module." -#: ../Doc/library/configparser.rst:444 +#: library/configparser.rst:444 msgid "" "The most common way to change the way a specific config parser works is to " "use the :meth:`__init__` options:" msgstr "" +"La méthode la plus fréquemment utilisée pour changer la façon dont se " +"comporte un analyseur est d’utiliser les options de la méthode :meth:" +"`__init__` :" -#: ../Doc/library/configparser.rst:447 +#: library/configparser.rst:447 msgid "*defaults*, default value: ``None``" -msgstr "" +msgstr "*defaults*, valeur par défaut : ``None``" -#: ../Doc/library/configparser.rst:449 +#: library/configparser.rst:449 msgid "" "This option accepts a dictionary of key-value pairs which will be initially " "put in the ``DEFAULT`` section. This makes for an elegant way to support " "concise configuration files that don't specify values which are the same as " "the documented default." msgstr "" +"Cette option accepte un dictionnaire de paires clé—valeurs qui seront " +"placées dans la section ``DEFAULT`` initialement. Ceci est une façon " +"élégante de prendre en charge des fichiers de configuration qui n'ont pas " +"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs " +"par défaut documentées." -#: ../Doc/library/configparser.rst:454 +#: library/configparser.rst:454 msgid "" "Hint: if you want to specify default values for a specific section, use :" "meth:`read_dict` before you read the actual file." msgstr "" +"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de " +"configuration si vous voulez spécifier des valeurs par défaut pour une " +"section spécifique." -#: ../Doc/library/configparser.rst:457 +#: library/configparser.rst:457 msgid "*dict_type*, default value: :class:`dict`" -msgstr "" +msgstr "*dict_type*, valeur par défaut : :class:`dict`" -#: ../Doc/library/configparser.rst:459 +#: library/configparser.rst:459 msgid "" "This option has a major impact on how the mapping protocol will behave and " "how the written configuration files look. With the standard dictionary, " "every section is stored in the order they were added to the parser. Same " "goes for options within sections." msgstr "" +"Cette option influe de manière importante sur la façon dont le protocole " +"d'accès associatif se comporte et ce à quoi ressemblent les fichiers de " +"configuration une fois écrits. Avec un dictionnaire standard, les sections " +"sont stockées dans l'ordre où elles ont été ajoutées à l'analyseur. Ceci est " +"également vrai pour les options à l'intérieur des sections." -#: ../Doc/library/configparser.rst:464 +#: library/configparser.rst:464 msgid "" "An alternative dictionary type can be used for example to sort sections and " "options on write-back." msgstr "" +"Si vous souhaitez classer les sections et les options lors de l'écriture par " +"exemple, vous pouvez utiliser un type de dictionnaire différent." -#: ../Doc/library/configparser.rst:467 +#: library/configparser.rst:467 msgid "" "Please note: there are ways to add a set of key-value pairs in a single " "operation. When you use a regular dictionary in those operations, the order " "of the keys will be ordered. For example:" msgstr "" +"À noter : il est possible d'ajouter un ensemble de paires clés—valeurs en " +"une seule opération. L'ordre des clés est préservé si vous utilisez un " +"dictionnaire standard pour cela. Par exemple :" -#: ../Doc/library/configparser.rst:489 +#: library/configparser.rst:489 msgid "*allow_no_value*, default value: ``False``" -msgstr "" +msgstr "*allow_no_value*, valeur par défaut : ``False``" -#: ../Doc/library/configparser.rst:491 +#: library/configparser.rst:491 msgid "" "Some configuration files are known to include settings without values, but " "which otherwise conform to the syntax supported by :mod:`configparser`. The " "*allow_no_value* parameter to the constructor can be used to indicate that " "such values should be accepted:" msgstr "" +"Certains fichiers de configurations sont connus pour contenir des options " +"sans valeur associée, tout en se conformant à la syntaxe prise en charge par " +"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles " +"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la " +"construction de l'instance :" -#: ../Doc/library/configparser.rst:526 +#: library/configparser.rst:526 msgid "*delimiters*, default value: ``('=', ':')``" -msgstr "" +msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" -#: ../Doc/library/configparser.rst:528 +#: library/configparser.rst:528 msgid "" "Delimiters are substrings that delimit keys from values within a section. " "The first occurrence of a delimiting substring on a line is considered a " "delimiter. This means values (but not keys) can contain the delimiters." msgstr "" +"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une " +"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne " +"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent " +"contenir certains des délimiteurs (mais pas les clés)." -#: ../Doc/library/configparser.rst:532 +#: library/configparser.rst:532 msgid "" "See also the *space_around_delimiters* argument to :meth:`ConfigParser." "write`." msgstr "" +"Voir aussi l'argument *space_around_delimiters* de la méthode :meth:" +"`ConfigParser.write`." -#: ../Doc/library/configparser.rst:535 +#: library/configparser.rst:535 msgid "*comment_prefixes*, default value: ``('#', ';')``" msgstr "" +"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " +"';')``" -#: ../Doc/library/configparser.rst:537 +#: library/configparser.rst:537 msgid "*inline_comment_prefixes*, default value: ``None``" msgstr "" +"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par " +"défaut : ``('#', ';')``" -#: ../Doc/library/configparser.rst:539 +#: library/configparser.rst:539 msgid "" "Comment prefixes are strings that indicate the start of a valid comment " "within a config file. *comment_prefixes* are used only on otherwise empty " @@ -437,14 +630,25 @@ msgid "" "well). By default inline comments are disabled and ``'#'`` and ``';'`` are " "used as prefixes for whole line comments." msgstr "" +"Les préfixes de commentaire indiquent le début d'un commentaire valide au " +"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à " +"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les " +"préfixes de commentaires en ligne peuvent être utilisés après n'importe " +"quelle valeur valide (comme les noms des sections, les options et les lignes " +"vides). Par défaut, les commentaires en ligne sont désactivés et les " +"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide " +"sont `'#'`` et ``';'``." -#: ../Doc/library/configparser.rst:546 +#: library/configparser.rst:546 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." msgstr "" +"Les précédentes versions du module :mod:`configparser` se comportent comme " +"en utilisant ``comment_prefixes=('#',';')`` et " +"``inline_comment_prefixes=(';',)``." -#: ../Doc/library/configparser.rst:550 +#: library/configparser.rst:550 msgid "" "Please note that config parsers don't support escaping of comment prefixes " "so using *inline_comment_prefixes* may prevent users from specifying option " @@ -453,30 +657,44 @@ msgid "" "storing comment prefix characters at the beginning of a line in multiline " "values is to interpolate the prefix, for example::" msgstr "" +"Notez que les analyseurs ne prennent pas en charge l'échappement des " +"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* " +"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des " +"caractères utilisés comme préfixe de commentaire. Dans le doute, il est " +"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, " +"la seule façon de stocker des préfixes de commentaires au début d'une valeur " +"multi lignes est d'interpoler ceux-ci, par exemple ::" -#: ../Doc/library/configparser.rst:596 +#: library/configparser.rst:596 msgid "*strict*, default value: ``True``" -msgstr "" +msgstr "*scrict*, valeur par défaut : ``True``" -#: ../Doc/library/configparser.rst:598 +#: library/configparser.rst:598 msgid "" "When set to ``True``, the parser will not allow for any section or option " "duplicates while reading from a single source (using :meth:`read_file`, :" "meth:`read_string` or :meth:`read_dict`). It is recommended to use strict " "parsers in new applications." msgstr "" +"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou " +"option dupliquée lors de la lecture d'une source unique (lorsque :meth:" +"`read_file`, :meth:`read_string` ou :meth:`read_dict` sont utilisées). Il " +"est recommandé d'utiliser un mode de fonctionnement strict pour les " +"analyseurs employés par de nouvelles applications." -#: ../Doc/library/configparser.rst:603 +#: library/configparser.rst:603 msgid "" "In previous versions of :mod:`configparser` behaviour matched " "``strict=False``." msgstr "" +"Les versions précédentes du module :mod:`configparser` se comportent comme " +"en utilisant ``strict=False``." -#: ../Doc/library/configparser.rst:607 +#: library/configparser.rst:607 msgid "*empty_lines_in_values*, default value: ``True``" -msgstr "" +msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" -#: ../Doc/library/configparser.rst:609 +#: library/configparser.rst:609 msgid "" "In config parsers, values can span multiple lines as long as they are " "indented more than the key that holds them. By default parsers also let " @@ -485,8 +703,15 @@ msgid "" "when configuration files get big and complex, it is easy for the user to " "lose track of the file structure. Take for instance:" msgstr "" +"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs " +"lignes à partir du moment où elles sont plus indentées que la clé qui les " +"contient. Par défaut les analyseurs autorisent les lignes vides à faire " +"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent " +"être indentées de façon à rendre le fichier plus lisible. En conséquence, il " +"est probable que l'utilisateur perde de vue la structure du fichier lorsque " +"celui-ci devient long et complexe. Prenez par exemple :" -#: ../Doc/library/configparser.rst:624 +#: library/configparser.rst:624 msgid "" "This can be especially problematic for the user to see if she's using a " "proportional font to edit the file. That is why when your application does " @@ -494,32 +719,40 @@ msgid "" "This will make empty lines split keys every time. In the example above, it " "would produce two keys, ``key`` and ``this``." msgstr "" +"Ceci est particulièrement problématique si l'utilisateur a configuré son " +"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est " +"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à " +"moins que votre application en ait besoin. Dans ce cas, les lignes vides " +"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-" +"dessus, cela produit deux clés : ``key`` et ``this``." -#: ../Doc/library/configparser.rst:630 +#: library/configparser.rst:630 msgid "" -"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: ``" -"\"DEFAULT\"``)" +"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: " +"``\"DEFAULT\"``)" msgstr "" +"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` " +"(autrement dit : ``\"DEFAULT\"``)" -#: ../Doc/library/configparser.rst:633 +#: library/configparser.rst:633 msgid "" "The convention of allowing a special section of default values for other " "sections or interpolation purposes is a powerful concept of this library, " "letting users create complex declarative configurations. This section is " "normally called ``\"DEFAULT\"`` but this can be customized to point to any " -"other valid section name. Some typical values include: ``\"general\"`` or ``" -"\"common\"``. The name provided is used for recognizing default sections " +"other valid section name. Some typical values include: ``\"general\"`` or " +"``\"common\"``. The name provided is used for recognizing default sections " "when reading from any source and is used when writing configuration back to " "a file. Its current value can be retrieved using the ``parser_instance." "default_section`` attribute and may be modified at runtime (i.e. to convert " "files from one format to another)." msgstr "" -#: ../Doc/library/configparser.rst:644 +#: library/configparser.rst:644 msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" msgstr "" -#: ../Doc/library/configparser.rst:646 +#: library/configparser.rst:646 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -529,11 +762,11 @@ msgid "" "`RawConfigParser` has a default value of ``None``." msgstr "" -#: ../Doc/library/configparser.rst:653 +#: library/configparser.rst:653 msgid "*converters*, default value: not set" msgstr "" -#: ../Doc/library/configparser.rst:655 +#: library/configparser.rst:655 msgid "" "Config parsers provide option value getters that perform type conversion. " "By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " @@ -547,7 +780,7 @@ msgid "" "``parser_instance['section'].getdecimal('key', 0)``." msgstr "" -#: ../Doc/library/configparser.rst:666 +#: library/configparser.rst:666 msgid "" "If the converter needs to access the state of the parser, it can be " "implemented as a method on a config parser subclass. If the name of this " @@ -555,14 +788,14 @@ msgid "" "the dict-compatible form (see the ``getdecimal()`` example above)." msgstr "" -#: ../Doc/library/configparser.rst:671 +#: library/configparser.rst:671 msgid "" "More advanced customization may be achieved by overriding default values of " "these parser attributes. The defaults are defined on the classes, so they " "may be overridden by subclasses or by attribute assignment." msgstr "" -#: ../Doc/library/configparser.rst:677 +#: library/configparser.rst:677 msgid "" "By default when using :meth:`~ConfigParser.getboolean`, config parsers " "consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " @@ -570,14 +803,20 @@ msgid "" "``'off'``. You can override this by specifying a custom dictionary of " "strings and their Boolean outcomes. For example:" msgstr "" +"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les " +"valeurs suivantes comme vraies : `'1'``, ``'yes'``, ``'true'``, ``'on'``, et " +"les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, " +"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre " +"dictionnaire associant des chaînes de caractères à des valeurs booléennes. " +"Par exemple :" -#: ../Doc/library/configparser.rst:695 +#: library/configparser.rst:695 msgid "" "Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" "``disabled``." msgstr "" -#: ../Doc/library/configparser.rst:700 +#: library/configparser.rst:701 msgid "" "This method transforms option names on every read, get, or set operation. " "The default converts the name to lowercase. This also means that when a " @@ -585,14 +824,14 @@ msgid "" "method if that's unsuitable. For example:" msgstr "" -#: ../Doc/library/configparser.rst:730 +#: library/configparser.rst:731 msgid "" "The optionxform function transforms option names to a canonical form. This " "should be an idempotent function: if the name is already in canonical form, " "it should be returned unchanged." msgstr "" -#: ../Doc/library/configparser.rst:737 +#: library/configparser.rst:738 msgid "" "A compiled regular expression used to parse section headers. The default " "matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " @@ -601,18 +840,18 @@ msgid "" "example:" msgstr "" -#: ../Doc/library/configparser.rst:765 +#: library/configparser.rst:766 msgid "" "While ConfigParser objects also use an ``OPTCRE`` attribute for recognizing " "option lines, it's not recommended to override it because that would " "interfere with constructor options *allow_no_value* and *delimiters*." msgstr "" -#: ../Doc/library/configparser.rst:771 +#: library/configparser.rst:772 msgid "Legacy API Examples" msgstr "" -#: ../Doc/library/configparser.rst:773 +#: library/configparser.rst:774 msgid "" "Mainly because of backwards compatibility concerns, :mod:`configparser` " "provides also a legacy API with explicit ``get``/``set`` methods. While " @@ -621,29 +860,29 @@ msgid "" "advanced, low-level and downright counterintuitive." msgstr "" -#: ../Doc/library/configparser.rst:779 +#: library/configparser.rst:780 msgid "An example of writing to a configuration file::" msgstr "" -#: ../Doc/library/configparser.rst:802 +#: library/configparser.rst:803 msgid "An example of reading the configuration file again::" msgstr "" -#: ../Doc/library/configparser.rst:820 +#: library/configparser.rst:821 msgid "To get interpolation, use :class:`ConfigParser`::" msgstr "" -#: ../Doc/library/configparser.rst:853 +#: library/configparser.rst:854 msgid "" "Default values are available in both types of ConfigParsers. They are used " "in interpolation if an option used is not defined elsewhere. ::" msgstr "" -#: ../Doc/library/configparser.rst:871 +#: library/configparser.rst:872 msgid "ConfigParser Objects" msgstr "" -#: ../Doc/library/configparser.rst:875 +#: library/configparser.rst:876 msgid "" "The main configuration parser. When *defaults* is given, it is initialized " "into the dictionary of intrinsic defaults. When *dict_type* is given, it " @@ -651,7 +890,7 @@ msgid "" "the options within a section, and for the default values." msgstr "" -#: ../Doc/library/configparser.rst:880 +#: library/configparser.rst:881 msgid "" "When *delimiters* is given, it is used as the set of substrings that divide " "keys from values. When *comment_prefixes* is given, it will be used as the " @@ -660,7 +899,7 @@ msgid "" "as the set of substrings that prefix comments in non-empty lines." msgstr "" -#: ../Doc/library/configparser.rst:886 +#: library/configparser.rst:887 msgid "" "When *strict* is ``True`` (the default), the parser won't allow for any " "section or option duplicates while reading from a single source (file, " @@ -673,7 +912,7 @@ msgid "" "without the trailing delimiter." msgstr "" -#: ../Doc/library/configparser.rst:896 +#: library/configparser.rst:897 msgid "" "When *default_section* is given, it specifies the name for the special " "section holding default values for other sections and interpolation purposes " @@ -681,7 +920,7 @@ msgid "" "on runtime using the ``default_section`` instance attribute." msgstr "" -#: ../Doc/library/configparser.rst:901 +#: library/configparser.rst:902 msgid "" "Interpolation behaviour may be customized by providing a custom handler " "through the *interpolation* argument. ``None`` can be used to turn off " @@ -690,7 +929,7 @@ msgid "" "`dedicated documentation section <#interpolation-of-values>`_." msgstr "" -#: ../Doc/library/configparser.rst:907 +#: library/configparser.rst:908 msgid "" "All option names used in interpolation will be passed through the :meth:" "`optionxform` method just like any other option name reference. For " @@ -699,7 +938,7 @@ msgid "" "%(BAR)s`` are equivalent." msgstr "" -#: ../Doc/library/configparser.rst:913 +#: library/configparser.rst:914 msgid "" "When *converters* is given, it should be a dictionary where each key " "represents the name of a type converter and each value is a callable " @@ -708,44 +947,44 @@ msgid "" "object and section proxies." msgstr "" -#: ../Doc/library/configparser.rst:919 +#: library/configparser.rst:920 msgid "The default *dict_type* is :class:`collections.OrderedDict`." msgstr "" -#: ../Doc/library/configparser.rst:922 +#: library/configparser.rst:923 msgid "" "*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " "*empty_lines_in_values*, *default_section* and *interpolation* were added." msgstr "" -#: ../Doc/library/configparser.rst:927 +#: library/configparser.rst:928 msgid "The *converters* argument was added." msgstr "" -#: ../Doc/library/configparser.rst:930 +#: library/configparser.rst:931 msgid "" "The *defaults* argument is read with :meth:`read_dict()`, providing " "consistent behavior across the parser: non-string keys and values are " "implicitly converted to strings." msgstr "" -#: ../Doc/library/configparser.rst:935 ../Doc/library/configparser.rst:1213 +#: library/configparser.rst:1214 msgid "" "The default *dict_type* is :class:`dict`, since it now preserves insertion " "order." msgstr "" -#: ../Doc/library/configparser.rst:941 +#: library/configparser.rst:942 msgid "Return a dictionary containing the instance-wide defaults." msgstr "" -#: ../Doc/library/configparser.rst:946 +#: library/configparser.rst:947 msgid "" "Return a list of the sections available; the *default section* is not " "included in the list." msgstr "" -#: ../Doc/library/configparser.rst:952 +#: library/configparser.rst:953 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " @@ -753,34 +992,34 @@ msgid "" "the section must be a string; if not, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:957 +#: library/configparser.rst:958 msgid "Non-string section names raise :exc:`TypeError`." msgstr "" -#: ../Doc/library/configparser.rst:963 +#: library/configparser.rst:964 msgid "" "Indicates whether the named *section* is present in the configuration. The " "*default section* is not acknowledged." msgstr "" -#: ../Doc/library/configparser.rst:969 +#: library/configparser.rst:970 msgid "Return a list of options available in the specified *section*." msgstr "" -#: ../Doc/library/configparser.rst:974 +#: library/configparser.rst:975 msgid "" "If the given *section* exists, and contains the given *option*, return :" "const:`True`; otherwise return :const:`False`. If the specified *section* " "is :const:`None` or an empty string, DEFAULT is assumed." msgstr "" -#: ../Doc/library/configparser.rst:981 +#: library/configparser.rst:982 msgid "" "Attempt to read and parse an iterable of filenames, returning a list of " "filenames which were successfully parsed." msgstr "" -#: ../Doc/library/configparser.rst:984 +#: library/configparser.rst:985 msgid "" "If *filenames* is a string, a :class:`bytes` object or a :term:`path-like " "object`, it is treated as a single filename. If a file named in *filenames* " @@ -791,7 +1030,7 @@ msgid "" "be read." msgstr "" -#: ../Doc/library/configparser.rst:993 +#: library/configparser.rst:994 msgid "" "If none of the named files exist, the :class:`ConfigParser` instance will " "contain an empty dataset. An application which requires initial values to " @@ -799,49 +1038,52 @@ msgid "" "`read_file` before calling :meth:`read` for any optional files::" msgstr "" -#: ../Doc/library/configparser.rst:1006 +#: library/configparser.rst:1007 msgid "" "The *encoding* parameter. Previously, all files were read using the default " "encoding for :func:`open`." msgstr "" -#: ../Doc/library/configparser.rst:1010 +#: library/configparser.rst:1011 +#, fuzzy msgid "The *filenames* parameter accepts a :term:`path-like object`." msgstr "" +"Le paramètre *filename* accepte un objet chemin-compatible :term:`path-like " +"object`." -#: ../Doc/library/configparser.rst:1013 +#: library/configparser.rst:1014 msgid "The *filenames* parameter accepts a :class:`bytes` object." msgstr "" -#: ../Doc/library/configparser.rst:1019 +#: library/configparser.rst:1020 msgid "" "Read and parse configuration data from *f* which must be an iterable " "yielding Unicode strings (for example files opened in text mode)." msgstr "" -#: ../Doc/library/configparser.rst:1022 +#: library/configparser.rst:1023 msgid "" "Optional argument *source* specifies the name of the file being read. If " "not given and *f* has a :attr:`name` attribute, that is used for *source*; " "the default is ``''``." msgstr "" -#: ../Doc/library/configparser.rst:1026 +#: library/configparser.rst:1027 msgid "Replaces :meth:`readfp`." msgstr "" -#: ../Doc/library/configparser.rst:1031 +#: library/configparser.rst:1032 msgid "Parse configuration data from a string." msgstr "" -#: ../Doc/library/configparser.rst:1033 +#: library/configparser.rst:1034 msgid "" "Optional argument *source* specifies a context-specific name of the string " "passed. If not given, ``''`` is used. This should commonly be a " "filesystem path or a URL." msgstr "" -#: ../Doc/library/configparser.rst:1042 +#: library/configparser.rst:1043 msgid "" "Load configuration from any object that provides a dict-like ``items()`` " "method. Keys are section names, values are dictionaries with keys and " @@ -850,17 +1092,17 @@ msgid "" "automatically converted to strings." msgstr "" -#: ../Doc/library/configparser.rst:1048 +#: library/configparser.rst:1049 msgid "" "Optional argument *source* specifies a context-specific name of the " "dictionary passed. If not given, ```` is used." msgstr "" -#: ../Doc/library/configparser.rst:1051 +#: library/configparser.rst:1052 msgid "This method can be used to copy state between parsers." msgstr "" -#: ../Doc/library/configparser.rst:1058 +#: library/configparser.rst:1059 msgid "" "Get an *option* value for the named *section*. If *vars* is provided, it " "must be a dictionary. The *option* is looked up in *vars* (if provided), " @@ -869,35 +1111,35 @@ msgid "" "provided as a *fallback* value." msgstr "" -#: ../Doc/library/configparser.rst:1064 +#: library/configparser.rst:1065 msgid "" "All the ``'%'`` interpolations are expanded in the return values, unless the " "*raw* argument is true. Values for interpolation keys are looked up in the " "same manner as the option." msgstr "" -#: ../Doc/library/configparser.rst:1068 +#: library/configparser.rst:1069 msgid "" "Arguments *raw*, *vars* and *fallback* are keyword only to protect users " "from trying to use the third argument as the *fallback* fallback (especially " "when using the mapping protocol)." msgstr "" -#: ../Doc/library/configparser.rst:1076 +#: library/configparser.rst:1077 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to an integer. See :meth:`get` for explanation of *raw*, *vars* and " "*fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1083 +#: library/configparser.rst:1084 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to a floating point number. See :meth:`get` for explanation of *raw*, " "*vars* and *fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1090 +#: library/configparser.rst:1091 msgid "" "A convenience method which coerces the *option* in the specified *section* " "to a Boolean value. Note that the accepted values for the option are " @@ -909,34 +1151,34 @@ msgid "" "*fallback*." msgstr "" -#: ../Doc/library/configparser.rst:1103 +#: library/configparser.rst:1104 msgid "" "When *section* is not given, return a list of *section_name*, " "*section_proxy* pairs, including DEFAULTSECT." msgstr "" -#: ../Doc/library/configparser.rst:1106 +#: library/configparser.rst:1107 msgid "" "Otherwise, return a list of *name*, *value* pairs for the options in the " "given *section*. Optional arguments have the same meaning as for the :meth:" "`get` method." msgstr "" -#: ../Doc/library/configparser.rst:1110 +#: library/configparser.rst:1111 msgid "" "Items present in *vars* no longer appear in the result. The previous " "behaviour mixed actual parser options with variables provided for " "interpolation." msgstr "" -#: ../Doc/library/configparser.rst:1118 +#: library/configparser.rst:1119 msgid "" "If the given section exists, set the given option to the specified value; " "otherwise raise :exc:`NoSectionError`. *option* and *value* must be " "strings; if not, :exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:1125 +#: library/configparser.rst:1126 msgid "" "Write a representation of the configuration to the specified :term:`file " "object`, which must be opened in text mode (accepting strings). This " @@ -945,20 +1187,20 @@ msgid "" "surrounded by spaces." msgstr "" -#: ../Doc/library/configparser.rst:1134 +#: library/configparser.rst:1135 msgid "" "Remove the specified *option* from the specified *section*. If the section " "does not exist, raise :exc:`NoSectionError`. If the option existed to be " "removed, return :const:`True`; otherwise return :const:`False`." msgstr "" -#: ../Doc/library/configparser.rst:1142 +#: library/configparser.rst:1143 msgid "" "Remove the specified *section* from the configuration. If the section in " "fact existed, return ``True``. Otherwise return ``False``." msgstr "" -#: ../Doc/library/configparser.rst:1148 +#: library/configparser.rst:1149 msgid "" "Transforms the option name *option* as found in an input file or as passed " "in by client code to the form that should be used in the internal " @@ -967,7 +1209,7 @@ msgid "" "of this name on instances to affect this behavior." msgstr "" -#: ../Doc/library/configparser.rst:1154 +#: library/configparser.rst:1155 msgid "" "You don't need to subclass the parser to use this method, you can also set " "it on an instance, to a function that takes a string argument and returns a " @@ -975,46 +1217,46 @@ msgid "" "sensitive::" msgstr "" -#: ../Doc/library/configparser.rst:1162 +#: library/configparser.rst:1163 msgid "" "Note that when reading configuration files, whitespace around the option " "names is stripped before :meth:`optionxform` is called." msgstr "" -#: ../Doc/library/configparser.rst:1168 +#: library/configparser.rst:1169 msgid "Use :meth:`read_file` instead." msgstr "" -#: ../Doc/library/configparser.rst:1171 +#: library/configparser.rst:1172 msgid "" ":meth:`readfp` now iterates on *fp* instead of calling ``fp.readline()``." msgstr "" -#: ../Doc/library/configparser.rst:1174 +#: library/configparser.rst:1175 msgid "" "For existing code calling :meth:`readfp` with arguments which don't support " "iteration, the following generator may be used as a wrapper around the file-" "like object::" msgstr "" -#: ../Doc/library/configparser.rst:1184 +#: library/configparser.rst:1185 msgid "" "Instead of ``parser.readfp(fp)`` use ``parser." "read_file(readline_generator(fp))``." msgstr "" -#: ../Doc/library/configparser.rst:1190 +#: library/configparser.rst:1191 msgid "" "The maximum depth for recursive interpolation for :meth:`get` when the *raw* " "parameter is false. This is relevant only when the default *interpolation* " "is used." msgstr "" -#: ../Doc/library/configparser.rst:1198 +#: library/configparser.rst:1199 msgid "RawConfigParser Objects" msgstr "" -#: ../Doc/library/configparser.rst:1208 +#: library/configparser.rst:1209 msgid "" "Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " "by default and allows for non-string section names, option names, and values " @@ -1022,27 +1264,27 @@ msgid "" "``defaults=`` keyword argument handling." msgstr "" -#: ../Doc/library/configparser.rst:1218 +#: library/configparser.rst:1219 msgid "" "Consider using :class:`ConfigParser` instead which checks types of the " "values to be stored internally. If you don't want interpolation, you can " "use ``ConfigParser(interpolation=None)``." msgstr "" -#: ../Doc/library/configparser.rst:1225 +#: library/configparser.rst:1226 msgid "" "Add a section named *section* to the instance. If a section by the given " "name already exists, :exc:`DuplicateSectionError` is raised. If the " "*default section* name is passed, :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/configparser.rst:1229 +#: library/configparser.rst:1230 msgid "" "Type of *section* is not checked which lets users create non-string named " "sections. This behaviour is unsupported and may cause internal errors." msgstr "" -#: ../Doc/library/configparser.rst:1235 +#: library/configparser.rst:1236 msgid "" "If the given section exists, set the given option to the specified value; " "otherwise raise :exc:`NoSectionError`. While it is possible to use :class:" @@ -1052,7 +1294,7 @@ msgid "" "string values." msgstr "" -#: ../Doc/library/configparser.rst:1242 +#: library/configparser.rst:1243 msgid "" "This method lets users assign non-string values to keys internally. This " "behaviour is unsupported and will cause errors when attempting to write to a " @@ -1060,32 +1302,32 @@ msgid "" "not allow such assignments to take place." msgstr "" -#: ../Doc/library/configparser.rst:1249 +#: library/configparser.rst:1250 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/configparser.rst:1253 +#: library/configparser.rst:1254 msgid "Base class for all other :mod:`configparser` exceptions." msgstr "" -#: ../Doc/library/configparser.rst:1258 +#: library/configparser.rst:1259 msgid "Exception raised when a specified section is not found." msgstr "" -#: ../Doc/library/configparser.rst:1263 +#: library/configparser.rst:1264 msgid "" "Exception raised if :meth:`add_section` is called with the name of a section " "that is already present or in strict parsers when a section if found more " "than once in a single input file, string or dictionary." msgstr "" -#: ../Doc/library/configparser.rst:1267 +#: library/configparser.rst:1268 msgid "" "Optional ``source`` and ``lineno`` attributes and arguments to :meth:" "`__init__` were added." msgstr "" -#: ../Doc/library/configparser.rst:1274 +#: library/configparser.rst:1275 msgid "" "Exception raised by strict parsers if a single option appears twice during " "reading from a single file, string or dictionary. This catches misspellings " @@ -1093,58 +1335,58 @@ msgid "" "representing the same case-insensitive configuration key." msgstr "" -#: ../Doc/library/configparser.rst:1282 +#: library/configparser.rst:1283 msgid "" "Exception raised when a specified option is not found in the specified " "section." msgstr "" -#: ../Doc/library/configparser.rst:1288 +#: library/configparser.rst:1289 msgid "" "Base class for exceptions raised when problems occur performing string " "interpolation." msgstr "" -#: ../Doc/library/configparser.rst:1294 +#: library/configparser.rst:1295 msgid "" "Exception raised when string interpolation cannot be completed because the " "number of iterations exceeds :const:`MAX_INTERPOLATION_DEPTH`. Subclass of :" "exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1301 +#: library/configparser.rst:1302 msgid "" "Exception raised when an option referenced from a value does not exist. " "Subclass of :exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1307 +#: library/configparser.rst:1308 msgid "" "Exception raised when the source text into which substitutions are made does " "not conform to the required syntax. Subclass of :exc:`InterpolationError`." msgstr "" -#: ../Doc/library/configparser.rst:1313 +#: library/configparser.rst:1314 msgid "" "Exception raised when attempting to parse a file which has no section " "headers." msgstr "" -#: ../Doc/library/configparser.rst:1319 +#: library/configparser.rst:1320 msgid "Exception raised when errors occur attempting to parse a file." msgstr "" -#: ../Doc/library/configparser.rst:1321 +#: library/configparser.rst:1322 msgid "" "The ``filename`` attribute and :meth:`__init__` argument were renamed to " "``source`` for consistency." msgstr "" -#: ../Doc/library/configparser.rst:1327 +#: library/configparser.rst:1328 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/configparser.rst:1328 +#: library/configparser.rst:1329 msgid "" "Config parsers allow for heavy customization. If you are interested in " "changing the behaviour outlined by the footnote reference, consult the " diff --git a/library/constants.po b/library/constants.po index 70de9f0ff6..d977fccf4c 100644 --- a/library/constants.po +++ b/library/constants.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2019-02-21 17:13+0100\n" diff --git a/library/contextlib.po b/library/contextlib.po index 13d2a9d0b9..a85c46d967 100644 --- a/library/contextlib.po +++ b/library/contextlib.po @@ -3,42 +3,48 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-21 09:48+0100\n" -"PO-Revision-Date: 2018-07-04 11:33+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-12-05 23:16+0100\n" +"PO-Revision-Date: 2019-12-01 23:39+0100\n" +"Last-Translator: \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/contextlib.rst:2 +#: library/contextlib.rst:2 msgid "" ":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts" msgstr "" +":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur " +"l'instruction :keyword:`!with`" -#: ../Doc/library/contextlib.rst:7 +#: library/contextlib.rst:7 msgid "**Source code:** :source:`Lib/contextlib.py`" msgstr "**Code source :** :source:`Lib/contextlib.py`" -#: ../Doc/library/contextlib.rst:11 +#: library/contextlib.rst:11 msgid "" "This module provides utilities for common tasks involving the :keyword:" "`with` statement. For more information see also :ref:`typecontextmanager` " "and :ref:`context-managers`." msgstr "" +"Ce module fournit des utilitaires pour les tâches impliquant le mot-clé :" +"keyword:`with`. Pour plus d'informations voir aussi :ref:" +"`typecontextmanager` et :ref:`context-managers`." -#: ../Doc/library/contextlib.rst:17 +#: library/contextlib.rst:17 msgid "Utilities" msgstr "Utilitaires" -#: ../Doc/library/contextlib.rst:19 +#: library/contextlib.rst:19 msgid "Functions and classes provided:" -msgstr "" +msgstr "Fonctions et classes fournies :" -#: ../Doc/library/contextlib.rst:23 +#: library/contextlib.rst:23 msgid "" "An :term:`abstract base class` for classes that implement :meth:`object." "__enter__` and :meth:`object.__exit__`. A default implementation for :meth:" @@ -46,8 +52,14 @@ msgid "" "__exit__` is an abstract method which by default returns ``None``. See also " "the definition of :ref:`typecontextmanager`." msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__enter__` et :meth:`object." +"__exit__`. Une implémentation par défaut de :meth:`object.__enter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__exit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`typecontextmanager`." -#: ../Doc/library/contextlib.rst:34 +#: library/contextlib.rst:34 msgid "" "An :term:`abstract base class` for classes that implement :meth:`object." "__aenter__` and :meth:`object.__aexit__`. A default implementation for :meth:" @@ -55,36 +67,56 @@ msgid "" "__aexit__` is an abstract method which by default returns ``None``. See also " "the definition of :ref:`async-context-managers`." msgstr "" +":term:`Classe mère abstraite ` pour les classes qui " +"implémentent les méthodes :meth:`object.__aenter__` et :meth:`object." +"__aexit__`. Une implémentation par défaut de :meth:`object.__aenter__` est " +"fournie, qui renvoie ``self``, et :meth:`object.__aexit__` est une méthode " +"abstraite qui renvoie ``None`` par défaut. Voir aussi la définition de :ref:" +"`async-context-managers`." -#: ../Doc/library/contextlib.rst:46 +#: library/contextlib.rst:46 msgid "" "This function is a :term:`decorator` that can be used to define a factory " "function for :keyword:`with` statement context managers, without needing to " "create a class or separate :meth:`__enter__` and :meth:`__exit__` methods." msgstr "" +"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " +"une fonction fabriquant des gestionnaires de contexte à utiliser avec :" +"keyword:`with`, sans nécessiter de créer une classe ou des méthodes :meth:" +"`__enter__` et :meth:`__exit__` séparées." -#: ../Doc/library/contextlib.rst:50 +#: library/contextlib.rst:50 msgid "" "While many objects natively support use in with statements, sometimes a " "resource needs to be managed that isn't a context manager in its own right, " "and doesn't implement a ``close()`` method for use with ``contextlib." "closing``" msgstr "" +"Alors que de nombreux objets s'utilisent nativement dans des blocs *with*, " +"on trouve parfois des ressources qui nécessitent d'être gérées mais ne sont " +"pas des gestionnaires de contextes, et qui n'implémentent pas de méthode " +"``close()`` pour pouvoir être utilisées avec ``contextlib.closing``" -#: ../Doc/library/contextlib.rst:54 +#: library/contextlib.rst:54 msgid "" "An abstract example would be the following to ensure correct resource " "management::" msgstr "" +"L'exemple abstrait suivant présente comment assurer une gestion correcte des " +"ressources ::" -#: ../Doc/library/contextlib.rst:73 +#: library/contextlib.rst:73 msgid "" "The function being decorated must return a :term:`generator`-iterator when " "called. This iterator must yield exactly one value, which will be bound to " "the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." msgstr "" +"La fonction à décorer doit renvoyer un :term:`générateur `-" +"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une " +"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la " +"clause :keyword:`!as` si précisée." -#: ../Doc/library/contextlib.rst:77 +#: library/contextlib.rst:77 msgid "" "At the point where the generator yields, the block nested in the :keyword:" "`with` statement is executed. The generator is then resumed after the block " @@ -99,8 +131,20 @@ msgid "" "handled, and execution will resume with the statement immediately following " "the :keyword:`!with` statement." msgstr "" - -#: ../Doc/library/contextlib.rst:89 +"Au moment où le générateur produit une valeur, le bloc imbriqué sous " +"l'instruction :keyword:`with` est exécuté. Le générateur est ensuite repris " +"après la sortie du bloc. Si une exception non gérée survient dans le bloc, " +"elle est relayée dans le générateur au niveau de l'instruction *yield*. " +"Ainsi, vous pouvez utiliser les instructions :keyword:`try`…\\ :keyword:" +"`except`…\\ :keyword:`finally` pour attraper l'erreur (s'il y a), ou vous " +"assurer qu'un nettoyage a bien lieu. Si une exception est attrapée dans " +"l'unique but d'être journalisée ou d'effectuer une action particulière " +"(autre que supprimer entièrement l'exception), le générateur se doit de la " +"relayer. Autrement le générateur gestionnaire de contexte doit indiquer à " +"l'instruction :keyword:`!with` que l'exception a été gérée, et l'exécution " +"reprend sur l'instruction qui suit directement le bloc :keyword:`!with`." + +#: library/contextlib.rst:89 msgid "" ":func:`contextmanager` uses :class:`ContextDecorator` so the context " "managers it creates can be used as decorators as well as in :keyword:`with` " @@ -110,18 +154,28 @@ msgid "" "that context managers support multiple invocations in order to be used as " "decorators)." msgstr "" +"Le décorateur :func:`contextmanager` utilise la classe :class:" +"`ContextDecorator` afin que les gestionnaires de contexte qu'il crée " +"puissent être utilisés aussi bien en tant que décorateurs qu'avec des " +"instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, une " +"nouvelle instance du générateur est créée à chaque appel de la fonction " +"(cela permet aux gestionnaires de contexte à usage unique créés par :func:" +"`contextmanager` de remplir la condition de pouvoir être invoqués plusieurs " +"fois afin d'être utilisés comme décorateurs)." -#: ../Doc/library/contextlib.rst:96 +#: library/contextlib.rst:96 msgid "Use of :class:`ContextDecorator`." -msgstr "" +msgstr "Utilisation de la classe :class:`ContextDecorator`." -#: ../Doc/library/contextlib.rst:102 +#: library/contextlib.rst:102 msgid "" "Similar to :func:`~contextlib.contextmanager`, but creates an :ref:" "`asynchronous context manager `." msgstr "" +"Similaire à :func:`~contextlib.contextmanager`, mais crée un :ref:" +"`gestionnaire de contexte asynchrone `." -#: ../Doc/library/contextlib.rst:105 +#: library/contextlib.rst:105 msgid "" "This function is a :term:`decorator` that can be used to define a factory " "function for :keyword:`async with` statement asynchronous context managers, " @@ -129,189 +183,259 @@ msgid "" "`__aexit__` methods. It must be applied to an :term:`asynchronous generator` " "function." msgstr "" +"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " +"une fonction fabriquant des gestionnaires de contexte asynchrones à utiliser " +"avec :keyword:`async with`, sans nécessiter de créer une classe ou des " +"méthodes :meth:`__aenter__` et :meth:`__aexit__` séparées. Le décorateur " +"doit être appliqué à une fonction renvoyant un :term:`asynchronous " +"generator`." -#: ../Doc/library/contextlib.rst:111 +#: library/contextlib.rst:111 msgid "A simple example::" msgstr "Un exemple simple ::" -#: ../Doc/library/contextlib.rst:132 +#: library/contextlib.rst:132 msgid "" "Return a context manager that closes *thing* upon completion of the block. " "This is basically equivalent to::" msgstr "" +"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. " +"C'est essentiellement équivalent à ::" -#: ../Doc/library/contextlib.rst:144 +#: library/contextlib.rst:144 msgid "And lets you write code like this::" -msgstr "" +msgstr "Et cela vous permet d'écrire du code tel que ::" -#: ../Doc/library/contextlib.rst:153 +#: library/contextlib.rst:153 msgid "" "without needing to explicitly close ``page``. Even if an error occurs, " "``page.close()`` will be called when the :keyword:`with` block is exited." msgstr "" +"sans besoin de fermer explicitement ``page``. Même si une erreur survient, " +"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`." -#: ../Doc/library/contextlib.rst:161 +#: library/contextlib.rst:161 msgid "" "Return a context manager that returns *enter_result* from ``__enter__``, but " "otherwise does nothing. It is intended to be used as a stand-in for an " "optional context manager, for example::" msgstr "" +"Renvoie un gestionnaire de contexte dont la méthode ``__enter__`` renvoie " +"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme " +"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::" -#: ../Doc/library/contextlib.rst:175 +#: library/contextlib.rst:175 msgid "An example using *enter_result*::" -msgstr "" +msgstr "Un exemple utilisant *enter_result* ::" -#: ../Doc/library/contextlib.rst:193 +#: library/contextlib.rst:193 msgid "" "Return a context manager that suppresses any of the specified exceptions if " "they occur in the body of a with statement and then resumes execution with " "the first statement following the end of the with statement." msgstr "" +"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions " +"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend " +"l'exécution sur la première instruction qui suit la fin du bloc *with*." -#: ../Doc/library/contextlib.rst:197 +#: library/contextlib.rst:197 msgid "" "As with any other mechanism that completely suppresses exceptions, this " "context manager should be used only to cover very specific errors where " "silently continuing with program execution is known to be the right thing to " "do." msgstr "" +"Comme pour tous les mécanismes qui suppriment complètement les exceptions, " +"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas " +"très spécifiques d'erreurs où il est certain que continuer silencieusement " +"l'exécution du programme est la bonne chose à faire." -#: ../Doc/library/contextlib.rst:202 +#: library/contextlib.rst:202 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/contextlib.rst:212 +#: library/contextlib.rst:212 msgid "This code is equivalent to::" msgstr "Ce code est équivalent à ::" -#: ../Doc/library/contextlib.rst:224 ../Doc/library/contextlib.rst:263 -#: ../Doc/library/contextlib.rst:273 +#: library/contextlib.rst:263 library/contextlib.rst:273 msgid "This context manager is :ref:`reentrant `." -msgstr "" +msgstr "Ce gestionnaire de contexte est :ref:`réentrant `." -#: ../Doc/library/contextlib.rst:231 +#: library/contextlib.rst:231 msgid "" "Context manager for temporarily redirecting :data:`sys.stdout` to another " "file or file-like object." msgstr "" +"Gestionnaire de contexte servant à rediriger temporairement :data:`sys." +"stdout` vers un autre fichier ou objet fichier-compatible." -#: ../Doc/library/contextlib.rst:234 +#: library/contextlib.rst:234 msgid "" "This tool adds flexibility to existing functions or classes whose output is " "hardwired to stdout." msgstr "" +"Cet outil ajoute une certaine flexibilité aux fonctions ou classes " +"existantes dont la sortie est envoyée vers la sortie standard." -#: ../Doc/library/contextlib.rst:237 +#: library/contextlib.rst:237 msgid "" "For example, the output of :func:`help` normally is sent to *sys.stdout*. " "You can capture that output in a string by redirecting the output to an :" "class:`io.StringIO` object::" msgstr "" +"Par exemple, la sortie de :func:`help` est normalement envoyée vers *sys." +"stdout*. Vous pouvez capturer cette sortie dans une chaîne de caractères en " +"la redirigeant vers un objet :class:`io.StringIO` ::" -#: ../Doc/library/contextlib.rst:246 +#: library/contextlib.rst:246 msgid "" "To send the output of :func:`help` to a file on disk, redirect the output to " "a regular file::" msgstr "" +"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, " +"redirigez-la sur un fichier normal ::" -#: ../Doc/library/contextlib.rst:253 +#: library/contextlib.rst:253 msgid "To send the output of :func:`help` to *sys.stderr*::" -msgstr "" +msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::" -#: ../Doc/library/contextlib.rst:258 +#: library/contextlib.rst:258 msgid "" "Note that the global side effect on :data:`sys.stdout` means that this " "context manager is not suitable for use in library code and most threaded " "applications. It also has no effect on the output of subprocesses. However, " "it is still a useful approach for many utility scripts." msgstr "" +"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce " +"gestionnaire de contexte n'est pas adapté à une utilisation dans le code " +"d'une bibliothèque ni dans la plupart des applications à plusieurs fils " +"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. " +"Cependant, cela reste une approche utile pour beaucoup de scripts " +"utilitaires." -#: ../Doc/library/contextlib.rst:270 +#: library/contextlib.rst:270 msgid "" "Similar to :func:`~contextlib.redirect_stdout` but redirecting :data:`sys." "stderr` to another file or file-like object." msgstr "" +"Similaire à :func:`~contextlib.redirect_stdout` mais redirige :data:`sys." +"stderr` vers un autre fichier ou objet fichier-compatible." -#: ../Doc/library/contextlib.rst:280 +#: library/contextlib.rst:280 msgid "" "A base class that enables a context manager to also be used as a decorator." msgstr "" +"Une classe mère qui permet à un gestionnaire de contexte d'être aussi " +"utilisé comme décorateur." -#: ../Doc/library/contextlib.rst:282 +#: library/contextlib.rst:282 msgid "" "Context managers inheriting from ``ContextDecorator`` have to implement " "``__enter__`` and ``__exit__`` as normal. ``__exit__`` retains its optional " "exception handling even when used as a decorator." msgstr "" +"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent " +"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` " +"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en " +"décorateur." -#: ../Doc/library/contextlib.rst:286 +#: library/contextlib.rst:286 msgid "" "``ContextDecorator`` is used by :func:`contextmanager`, so you get this " "functionality automatically." msgstr "" +"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous " +"bénéficiez automatiquement de cette fonctionnalité." -#: ../Doc/library/contextlib.rst:289 +#: library/contextlib.rst:289 msgid "Example of ``ContextDecorator``::" -msgstr "" +msgstr "Exemple de ``ContextDecorator`` ::" -#: ../Doc/library/contextlib.rst:318 +#: library/contextlib.rst:318 msgid "" "This change is just syntactic sugar for any construct of the following form::" msgstr "" +"Ce changement est simplement un sucre syntaxique pour les constructions de " +"la forme suivante ::" -#: ../Doc/library/contextlib.rst:324 +#: library/contextlib.rst:324 msgid "``ContextDecorator`` lets you instead write::" -msgstr "" +msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" -#: ../Doc/library/contextlib.rst:330 +#: library/contextlib.rst:330 msgid "" "It makes it clear that the ``cm`` applies to the whole function, rather than " "just a piece of it (and saving an indentation level is nice, too)." msgstr "" +"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas " +"seulement à un morceau en particulier (et gagner un niveau d'indentation est " +"toujours appréciable)." -#: ../Doc/library/contextlib.rst:333 +#: library/contextlib.rst:333 msgid "" "Existing context managers that already have a base class can be extended by " "using ``ContextDecorator`` as a mixin class::" msgstr "" +"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent " +"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::" -#: ../Doc/library/contextlib.rst:346 +#: library/contextlib.rst:346 msgid "" "As the decorated function must be able to be called multiple times, the " "underlying context manager must support use in multiple :keyword:`with` " "statements. If this is not the case, then the original construct with the " "explicit :keyword:`!with` statement inside the function should be used." msgstr "" +"Comme la fonction décorée doit être capable d'être appelée plusieurs fois, " +"le gestionnaire de contexte sous-jacent doit permettre d'être utilisé dans " +"de multiples instructions :keyword:`with`. Si ce n'est pas le cas, alors la " +"construction d'origine avec de multiples instructions :keyword:`!with` au " +"sein de la fonction doit être utilisée." -#: ../Doc/library/contextlib.rst:356 +#: library/contextlib.rst:356 msgid "" "A context manager that is designed to make it easy to programmatically " "combine other context managers and cleanup functions, especially those that " "are optional or otherwise driven by input data." msgstr "" +"Gestionnaire de contexte conçu pour simplifier le fait de combiner " +"programmatiquement d'autres gestionnaires de contexte et fonctions de " +"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des " +"données d'entrée." -#: ../Doc/library/contextlib.rst:360 +#: library/contextlib.rst:360 msgid "" "For example, a set of files may easily be handled in a single with statement " "as follows::" msgstr "" +"Par exemple, un ensemble de fichiers peut facilement être géré dans une " +"unique instruction *with* comme suit ::" -#: ../Doc/library/contextlib.rst:369 +#: library/contextlib.rst:369 msgid "" "Each instance maintains a stack of registered callbacks that are called in " "reverse order when the instance is closed (either explicitly or implicitly " "at the end of a :keyword:`with` statement). Note that callbacks are *not* " "invoked implicitly when the context stack instance is garbage collected." msgstr "" +"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) " +"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée " +"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez " +"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de " +"la pile de contextes est collectée par le ramasse-miettes." -#: ../Doc/library/contextlib.rst:374 +#: library/contextlib.rst:374 msgid "" "This stack model is used so that context managers that acquire their " "resources in their ``__init__`` method (such as file objects) can be handled " "correctly." msgstr "" +"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui " +"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les " +"objets-fichiers) puissent être gérés correctement." -#: ../Doc/library/contextlib.rst:378 +#: library/contextlib.rst:378 msgid "" "Since registered callbacks are invoked in the reverse order of registration, " "this ends up behaving as if multiple nested :keyword:`with` statements had " @@ -320,148 +444,208 @@ msgid "" "exception, then outer callbacks will be passed arguments based on that " "updated state." msgstr "" +"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre " +"inverse d'enregistrement, cela revient au même que si de multiples blocs :" +"keyword:`with` imbriqués avaient été utilisés avec l'ensemble de fonctions " +"enregistrées. Cela s'étend aussi à la gestion d'exceptions — si une fonction " +"de rappel intérieure supprime ou remplace une exception, alors les fonctions " +"extérieures reçoivent des arguments basés sur ce nouvel état." -#: ../Doc/library/contextlib.rst:385 +#: library/contextlib.rst:385 msgid "" "This is a relatively low level API that takes care of the details of " "correctly unwinding the stack of exit callbacks. It provides a suitable " "foundation for higher level context managers that manipulate the exit stack " "in application specific ways." msgstr "" +"C'est une *API* relativement bas-niveau qui s'occupe de dérouler " +"correctement la pile des appels de sortie. Elle fournit une base adaptée " +"pour des gestionnaires de contexte de plus haut niveau qui manipulent la " +"pile de sortie de manière spécifique à l'application." -#: ../Doc/library/contextlib.rst:394 +#: library/contextlib.rst:394 msgid "" "Enters a new context manager and adds its :meth:`__exit__` method to the " "callback stack. The return value is the result of the context manager's own :" "meth:`__enter__` method." msgstr "" +"Entre dans un nouveau gestionnaire de contexte et ajoute sa méthode :meth:" +"`__exit__` à la pile d'appels. La valeur de retour est le résultat de la " +"méthode :meth:`__enter__` du gestionnaire de contexte donné." -#: ../Doc/library/contextlib.rst:398 +#: library/contextlib.rst:398 msgid "" "These context managers may suppress exceptions just as they normally would " "if used directly as part of a :keyword:`with` statement." msgstr "" +"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le " +"feraient normalement s'ils étaient utilisés directement derrière une " +"instruction :keyword:`with`." -#: ../Doc/library/contextlib.rst:403 +#: library/contextlib.rst:403 msgid "Adds a context manager's :meth:`__exit__` method to the callback stack." msgstr "" +"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile " +"d'appels." -#: ../Doc/library/contextlib.rst:405 +#: library/contextlib.rst:405 msgid "" "As ``__enter__`` is *not* invoked, this method can be used to cover part of " "an :meth:`__enter__` implementation with a context manager's own :meth:" "`__exit__` method." msgstr "" +"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée " +"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la " +"propre méthode :meth:`__exit__` d'un gestionnaire de contexte." -#: ../Doc/library/contextlib.rst:409 +#: library/contextlib.rst:409 msgid "" "If passed an object that is not a context manager, this method assumes it is " "a callback with the same signature as a context manager's :meth:`__exit__` " "method and adds it directly to the callback stack." msgstr "" +"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume " +"qu'il s'agit d'une fonction de rappel avec la même signature que la méthode :" +"meth:`__exit__` des gestionnaires de contexte pour l'ajouter directement à " +"la pile d'appels." -#: ../Doc/library/contextlib.rst:413 +#: library/contextlib.rst:413 msgid "" "By returning true values, these callbacks can suppress exceptions the same " "way context manager :meth:`__exit__` methods can." msgstr "" +"En retournant des valeurs vraies, ces fonctions peuvent supprimer des " +"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` " +"des gestionnaires de contexte." -#: ../Doc/library/contextlib.rst:416 +#: library/contextlib.rst:416 msgid "" "The passed in object is returned from the function, allowing this method to " "be used as a function decorator." msgstr "" +"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la " +"méthode d'être utilisée comme décorateur de fonction." -#: ../Doc/library/contextlib.rst:421 +#: library/contextlib.rst:421 msgid "" "Accepts an arbitrary callback function and arguments and adds it to the " "callback stack." msgstr "" +"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des " +"fonctions de rappel." -#: ../Doc/library/contextlib.rst:424 +#: library/contextlib.rst:424 msgid "" "Unlike the other methods, callbacks added this way cannot suppress " "exceptions (as they are never passed the exception details)." msgstr "" +"À la différence des autres méthodes, les fonctions de rappel ajoutées de " +"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne " +"reçoivent jamais les détails de l'exception)." -#: ../Doc/library/contextlib.rst:427 +#: library/contextlib.rst:427 msgid "" "The passed in callback is returned from the function, allowing this method " "to be used as a function decorator." msgstr "" +"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à " +"la méthode d'être utilisée comme décorateur de fonction." -#: ../Doc/library/contextlib.rst:432 +#: library/contextlib.rst:432 msgid "" "Transfers the callback stack to a fresh :class:`ExitStack` instance and " "returns it. No callbacks are invoked by this operation - instead, they will " "now be invoked when the new stack is closed (either explicitly or implicitly " "at the end of a :keyword:`with` statement)." msgstr "" +"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et " +"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à " +"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close " +"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)." -#: ../Doc/library/contextlib.rst:437 +#: library/contextlib.rst:437 msgid "" "For example, a group of files can be opened as an \"all or nothing\" " "operation as follows::" msgstr "" +"Par exemple, un groupe de fichiers peut être ouvert comme une opération " +"« tout ou rien » comme suit ::" -#: ../Doc/library/contextlib.rst:451 +#: library/contextlib.rst:451 msgid "" "Immediately unwinds the callback stack, invoking callbacks in the reverse " "order of registration. For any context managers and exit callbacks " "registered, the arguments passed in will indicate that no exception occurred." msgstr "" +"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel " +"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte " +"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune " +"exception n'est survenue." -#: ../Doc/library/contextlib.rst:458 +#: library/contextlib.rst:458 msgid "" "An :ref:`asynchronous context manager `, similar to :" "class:`ExitStack`, that supports combining both synchronous and asynchronous " "context managers, as well as having coroutines for cleanup logic." msgstr "" +"Un :ref:`gestionnaire de contexte asynchrone `, " +"similaire à :class:`ExitStack`, apte à combiner à la fois des gestionnaires " +"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines " +"pour la logique de nettoyage." -#: ../Doc/library/contextlib.rst:463 +#: library/contextlib.rst:463 msgid "" "The :meth:`close` method is not implemented, :meth:`aclose` must be used " "instead." msgstr "" +"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt " +"être utilisée." -#: ../Doc/library/contextlib.rst:468 +#: library/contextlib.rst:468 msgid "" "Similar to :meth:`enter_context` but expects an asynchronous context manager." msgstr "" +"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte " +"asynchrone." -#: ../Doc/library/contextlib.rst:473 +#: library/contextlib.rst:473 msgid "" "Similar to :meth:`push` but expects either an asynchronous context manager " "or a coroutine function." msgstr "" +"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte " +"asynchrone soit une fonction coroutine." -#: ../Doc/library/contextlib.rst:478 +#: library/contextlib.rst:478 msgid "Similar to :meth:`callback` but expects a coroutine function." -msgstr "" +msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine." -#: ../Doc/library/contextlib.rst:482 +#: library/contextlib.rst:482 msgid "Similar to :meth:`close` but properly handles awaitables." msgstr "" +"Similaire à :meth:`close` mais gère correctement les tâches asynchrones." -#: ../Doc/library/contextlib.rst:484 +#: library/contextlib.rst:484 msgid "Continuing the example for :func:`asynccontextmanager`::" -msgstr "" +msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::" -#: ../Doc/library/contextlib.rst:496 +#: library/contextlib.rst:496 msgid "Examples and Recipes" -msgstr "" +msgstr "Exemples et Recettes" -#: ../Doc/library/contextlib.rst:498 +#: library/contextlib.rst:498 msgid "" "This section describes some examples and recipes for making effective use of " "the tools provided by :mod:`contextlib`." msgstr "" +"Cette section décrit quelques exemples et recettes pour décrire une " +"utilisation réelle des outils fournis par :mod:`contextlib`." -#: ../Doc/library/contextlib.rst:503 +#: library/contextlib.rst:503 msgid "Supporting a variable number of context managers" -msgstr "" +msgstr "Gérer un nombre variable de gestionnaires de contexte" -#: ../Doc/library/contextlib.rst:505 +#: library/contextlib.rst:505 msgid "" "The primary use case for :class:`ExitStack` is the one given in the class " "documentation: supporting a variable number of context managers and other " @@ -470,19 +654,29 @@ msgid "" "input (such as opening a user specified collection of files), or from some " "of the context managers being optional::" msgstr "" +"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la " +"documentation de la classe : gérer un nombre variable de gestionnaires de " +"contexte et d'autres opérations de nettoyage en une unique instruction :" +"keyword:`with`. La variabilité peut venir du nombre de gestionnaires de " +"contexte voulus découlant d'une entrée de l'utilisateur (comme ouvrir une " +"collection spécifique de fichiers de l'utilisateur), ou de certains " +"gestionnaires de contexte qui peuvent être optionnels ::" -#: ../Doc/library/contextlib.rst:520 +#: library/contextlib.rst:520 msgid "" "As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` " "statements to manage arbitrary resources that don't natively support the " "context management protocol." msgstr "" +"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les " +"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne " +"gèrent pas nativement le protocole des gestionnaires de contexte." -#: ../Doc/library/contextlib.rst:526 +#: library/contextlib.rst:526 msgid "Catching exceptions from ``__enter__`` methods" -msgstr "" +msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" -#: ../Doc/library/contextlib.rst:528 +#: library/contextlib.rst:528 msgid "" "It is occasionally desirable to catch exceptions from an ``__enter__`` " "method implementation, *without* inadvertently catching exceptions from the :" @@ -490,8 +684,14 @@ msgid "" "By using :class:`ExitStack` the steps in the context management protocol can " "be separated slightly in order to allow this::" msgstr "" +"Il est occasionnellement souhaitable d'attraper les exceptions depuis " +"l'implémentation d'une méthode ``__enter__``, *sans* attraper par " +"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de " +"la méthode ``__exit__`` des gestionnaires de contexte. En utilisant :class:" +"`ExitStack`, les étapes du protocole des gestionnaires de contexte peuvent " +"être légèrement séparées pour permettre le code suivant ::" -#: ../Doc/library/contextlib.rst:543 +#: library/contextlib.rst:543 msgid "" "Actually needing to do this is likely to indicate that the underlying API " "should be providing a direct resource management interface for use with :" @@ -501,88 +701,129 @@ msgid "" "to handle various situations that can't be handled directly in a :keyword:" "`with` statement." msgstr "" +"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-" +"jacente devrait fournir une interface directe de gestion des ressources à " +"utiliser avec les instructions :keyword:`try`/:keyword:`except`/:keyword:" +"`finally`, mais que toutes les *API* ne sont pas bien conçues dans cet " +"objectif. Quand un gestionnaire de contexte est la seule *API* de gestion " +"des ressources fournie, alors :class:`ExitStack` peut rendre plus facile la " +"gestion de plusieurs situations qui ne peuvent pas être traitées directement " +"dans une instruction :keyword:`with`." -#: ../Doc/library/contextlib.rst:553 +#: library/contextlib.rst:553 msgid "Cleaning up in an ``__enter__`` implementation" -msgstr "" +msgstr "Nettoyer dans une méthode ``__enter__``" -#: ../Doc/library/contextlib.rst:555 +#: library/contextlib.rst:555 msgid "" "As noted in the documentation of :meth:`ExitStack.push`, this method can be " "useful in cleaning up an already allocated resource if later steps in the :" "meth:`__enter__` implementation fail." msgstr "" +"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode " +"peut être utile pour nettoyer une ressource déjà allouée si les dernières " +"étapes de l'implémentation de :meth:`__enter__` échouent." -#: ../Doc/library/contextlib.rst:559 +#: library/contextlib.rst:559 msgid "" "Here's an example of doing this for a context manager that accepts resource " "acquisition and release functions, along with an optional validation " "function, and maps them to the context management protocol::" msgstr "" +"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions " +"d'acquisition de ressources et de libération, avec une méthode de validation " +"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::" -#: ../Doc/library/contextlib.rst:599 +#: library/contextlib.rst:599 msgid "Replacing any use of ``try-finally`` and flag variables" -msgstr "" +msgstr "Remplacer un ``try-finally`` avec une option variable" -#: ../Doc/library/contextlib.rst:601 +#: library/contextlib.rst:601 msgid "" "A pattern you will sometimes see is a ``try-finally`` statement with a flag " "variable to indicate whether or not the body of the ``finally`` clause " "should be executed. In its simplest form (that can't already be handled just " "by using an ``except`` clause instead), it looks something like this::" msgstr "" +"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une " +"option pour indiquer si le corps de la clause ``finally`` doit être exécuté " +"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec " +"juste une clause ``except``), cela ressemble à ::" -#: ../Doc/library/contextlib.rst:615 +#: library/contextlib.rst:615 msgid "" "As with any ``try`` statement based code, this can cause problems for " "development and review, because the setup code and the cleanup code can end " "up being separated by arbitrarily long sections of code." msgstr "" +"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut " +"poser problème pour le développement et la revue, parce que beaucoup de " +"codes d'installation et de nettoyage peuvent finir par être séparés par des " +"sections de code arbitrairement longues." -#: ../Doc/library/contextlib.rst:619 +#: library/contextlib.rst:619 msgid "" ":class:`ExitStack` makes it possible to instead register a callback for " "execution at the end of a ``with`` statement, and then later decide to skip " "executing that callback::" msgstr "" +":class:`ExitStack` rend possible de plutôt enregistrer une fonction de " +"rappel pour être exécutée à la fin d'une instruction ``with``, et décider " +"ensuite de passer l'exécution de cet appel ::" -#: ../Doc/library/contextlib.rst:631 +#: library/contextlib.rst:631 msgid "" "This allows the intended cleanup up behaviour to be made explicit up front, " "rather than requiring a separate flag variable." msgstr "" +"Cela permet de rendre explicite dès le départ le comportement de nettoyage " +"attendu, plutôt que de nécessiter une option séparée." -#: ../Doc/library/contextlib.rst:634 +#: library/contextlib.rst:634 msgid "" "If a particular application uses this pattern a lot, it can be simplified " "even further by means of a small helper class::" msgstr "" +"Si une application particulière utilise beaucoup ce modèle, cela peut-être " +"simplifié encore plus au moyen d'une petite classe d'aide ::" -#: ../Doc/library/contextlib.rst:652 +#: library/contextlib.rst:652 msgid "" "If the resource cleanup isn't already neatly bundled into a standalone " "function, then it is still possible to use the decorator form of :meth:" "`ExitStack.callback` to declare the resource cleanup in advance::" msgstr "" +"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans " +"une fonction autonome, il est possible d'utiliser le décorateur :meth:" +"`ExitStack.callback` pour déclarer la fonction de nettoyage de ressource en " +"avance ::" -#: ../Doc/library/contextlib.rst:667 +#: library/contextlib.rst:667 msgid "" "Due to the way the decorator protocol works, a callback function declared " "this way cannot take any parameters. Instead, any resources to be released " "must be accessed as closure variables." msgstr "" +"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée " +"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer " +"doivent être récupérées depuis l'extérieur comme des variables de fermeture " +"(*closure*)." -#: ../Doc/library/contextlib.rst:673 +#: library/contextlib.rst:673 msgid "Using a context manager as a function decorator" msgstr "" +"Utiliser un gestionnaire de contexte en tant que décorateur de fonction" -#: ../Doc/library/contextlib.rst:675 +#: library/contextlib.rst:675 msgid "" ":class:`ContextDecorator` makes it possible to use a context manager in both " "an ordinary ``with`` statement and also as a function decorator." msgstr "" +":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de " +"contexte à la fois ordinairement avec une instruction ``with`` ou comme un " +"décorateur de fonction." -#: ../Doc/library/contextlib.rst:678 +#: library/contextlib.rst:678 msgid "" "For example, it is sometimes useful to wrap functions or groups of " "statements with a logger that can track the time of entry and time of exit. " @@ -590,28 +831,40 @@ msgid "" "task, inheriting from :class:`ContextDecorator` provides both capabilities " "in a single definition::" msgstr "" +"Par exemple, il est parfois utile d'emballer les fonctions ou blocs " +"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution " +"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un " +"gestionnaire de contexte pour la même tâche, hériter de :class:" +"`ContextDecorator` fournit les deux fonctionnalités en une seule " +"définition ::" -#: ../Doc/library/contextlib.rst:699 +#: library/contextlib.rst:699 msgid "Instances of this class can be used as both a context manager::" msgstr "" +"Les instances de cette classe peuvent être utilisées comme gestionnaires de " +"contexte ::" -#: ../Doc/library/contextlib.rst:705 +#: library/contextlib.rst:705 msgid "And also as a function decorator::" -msgstr "" +msgstr "Et comme décorateurs de fonctions ::" -#: ../Doc/library/contextlib.rst:712 +#: library/contextlib.rst:712 msgid "" "Note that there is one additional limitation when using context managers as " "function decorators: there's no way to access the return value of :meth:" "`__enter__`. If that value is needed, then it is still necessary to use an " "explicit ``with`` statement." msgstr "" +"Notez qu'il y a une autre limitation en utilisant les gestionnaires de " +"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur " +"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut " +"utiliser explicitement une instruction ``with``." -#: ../Doc/library/contextlib.rst:720 +#: library/contextlib.rst:720 msgid ":pep:`343` - The \"with\" statement" msgstr ":pep:`343` - The \"with\" statement" -#: ../Doc/library/contextlib.rst:720 +#: library/contextlib.rst:720 msgid "" "The specification, background, and examples for the Python :keyword:`with` " "statement." @@ -619,111 +872,163 @@ msgstr "" "La spécification, les motivations et des exemples de l'instruction :keyword:" "`with` en Python." -#: ../Doc/library/contextlib.rst:726 +#: library/contextlib.rst:726 msgid "Single use, reusable and reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants" -#: ../Doc/library/contextlib.rst:728 +#: library/contextlib.rst:728 msgid "" "Most context managers are written in a way that means they can only be used " "effectively in a :keyword:`with` statement once. These single use context " "managers must be created afresh each time they're used - attempting to use " "them a second time will trigger an exception or otherwise not work correctly." msgstr "" +"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne " +"leur permet que d'être utilisés une fois avec une instruction :keyword:" +"`with`. Ces gestionnaires de contexte à usage unique doivent être recréés " +"chaque fois qu'ils sont utilisés — tenter de les utiliser une seconde fois " +"lève une exception ou ne fonctionne pas correctement." -#: ../Doc/library/contextlib.rst:734 +#: library/contextlib.rst:734 msgid "" "This common limitation means that it is generally advisable to create " "context managers directly in the header of the :keyword:`with` statement " "where they are used (as shown in all of the usage examples above)." msgstr "" +"Cette limitation commune signifie qu'il est généralement conseillé de créer " +"les gestionnaires de contexte directement dans l'en-tête du bloc :keyword:" +"`with` où ils sont utilisés (comme montré dans tous les exemples " +"d'utilisation au-dessus)." -#: ../Doc/library/contextlib.rst:738 +#: library/contextlib.rst:738 msgid "" "Files are an example of effectively single use context managers, since the " "first :keyword:`with` statement will close the file, preventing any further " "IO operations using that file object." msgstr "" +"Les fichiers sont un exemple de gestionnaires de contexte étant " +"effectivement à usage unique, puisque la première instruction :keyword:" +"`with` ferme le fichier, empêchant d'autres opérations d'entrée/sortie " +"d'être exécutées sur ce fichier." -#: ../Doc/library/contextlib.rst:742 +#: library/contextlib.rst:742 msgid "" "Context managers created using :func:`contextmanager` are also single use " "context managers, and will complain about the underlying generator failing " "to yield if an attempt is made to use them a second time::" msgstr "" +"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à " +"usage unique, et se plaindront du fait que le générateur sous-jacent ne " +"produise plus de valeur si vous essayez de les utiliser une seconde fois ::" -#: ../Doc/library/contextlib.rst:770 +#: library/contextlib.rst:770 msgid "Reentrant context managers" -msgstr "" +msgstr "Gestionnaires de contexte réentrants" -#: ../Doc/library/contextlib.rst:772 +#: library/contextlib.rst:772 msgid "" "More sophisticated context managers may be \"reentrant\". These context " "managers can not only be used in multiple :keyword:`with` statements, but " "may also be used *inside* a :keyword:`!with` statement that is already using " "the same context manager." msgstr "" +"Certains gestionnaires de contexte plus sophistiqués peuvent être " +"« réentrants ». Ces gestionnaires de contexte ne peuvent pas seulement être " +"utilisés avec plusieurs instructions :keyword:`with`, mais aussi *à " +"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même " +"gestionnaire de contexte." -#: ../Doc/library/contextlib.rst:777 +#: library/contextlib.rst:777 msgid "" ":class:`threading.RLock` is an example of a reentrant context manager, as " "are :func:`suppress` and :func:`redirect_stdout`. Here's a very simple " "example of reentrant use::" msgstr "" +":class:`threading.RLock` est un exemple de gestionnaire de contexte " +"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. " +"Voici un très simple exemple d'utilisation réentrante ::" -#: ../Doc/library/contextlib.rst:796 +#: library/contextlib.rst:796 msgid "" "Real world examples of reentrancy are more likely to involve multiple " "functions calling each other and hence be far more complicated than this " "example." msgstr "" +"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs " +"fonctions s'entre-appelant, et donc être bien plus compliqués que cet " +"exemple." -#: ../Doc/library/contextlib.rst:800 +#: library/contextlib.rst:800 msgid "" "Note also that being reentrant is *not* the same thing as being thread " "safe. :func:`redirect_stdout`, for example, is definitely not thread safe, " "as it makes a global modification to the system state by binding :data:`sys." "stdout` to a different stream." msgstr "" +"Notez aussi qu'être réentrant ne signifie *pas* être *thread safe*. :func:" +"`redirect_stdout`, par exemple, n'est définitivement pas *thread safe*, " +"puisqu'il effectue des changements globaux sur l'état du système en " +"branchant :data:`sys.stdout` sur différents flux." -#: ../Doc/library/contextlib.rst:809 +#: library/contextlib.rst:809 msgid "Reusable context managers" -msgstr "" +msgstr "Gestionnaires de contexte réutilisables" -#: ../Doc/library/contextlib.rst:811 +#: library/contextlib.rst:811 msgid "" -"Distinct from both single use and reentrant context managers are \"reusable" -"\" context managers (or, to be completely explicit, \"reusable, but not " -"reentrant\" context managers, since reentrant context managers are also " -"reusable). These context managers support being used multiple times, but " -"will fail (or otherwise not work correctly) if the specific context manager " -"instance has already been used in a containing with statement." +"Distinct from both single use and reentrant context managers are " +"\"reusable\" context managers (or, to be completely explicit, \"reusable, " +"but not reentrant\" context managers, since reentrant context managers are " +"also reusable). These context managers support being used multiple times, " +"but will fail (or otherwise not work correctly) if the specific context " +"manager instance has already been used in a containing with statement." msgstr "" +"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants " +"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus " +"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires " +"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de " +"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront " +"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de " +"contexte référencée a déjà été utilisée dans une instruction *with* " +"englobante." -#: ../Doc/library/contextlib.rst:818 +#: library/contextlib.rst:818 msgid "" ":class:`threading.Lock` is an example of a reusable, but not reentrant, " "context manager (for a reentrant lock, it is necessary to use :class:" "`threading.RLock` instead)." msgstr "" +":class:`threading.Lock` est un exemple de gestionnaire de contexte " +"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la " +"place utiliser :class:`threading.RLock`)." -#: ../Doc/library/contextlib.rst:822 +#: library/contextlib.rst:822 msgid "" "Another example of a reusable, but not reentrant, context manager is :class:" "`ExitStack`, as it invokes *all* currently registered callbacks when leaving " "any with statement, regardless of where those callbacks were added::" msgstr "" +"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant " +"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel " +"actuellement enregistrées en quittant l'instruction *with*, sans regarder où " +"ces fonctions ont été ajoutées ::" -#: ../Doc/library/contextlib.rst:853 +#: library/contextlib.rst:853 msgid "" "As the output from the example shows, reusing a single stack object across " "multiple with statements works correctly, but attempting to nest them will " "cause the stack to be cleared at the end of the innermost with statement, " "which is unlikely to be desirable behaviour." msgstr "" +"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre " +"plusieurs instructions *with* fonctionne correctement, mais essayer de les " +"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce " +"qui n'est probablement pas le comportement voulu." -#: ../Doc/library/contextlib.rst:858 +#: library/contextlib.rst:858 msgid "" "Using separate :class:`ExitStack` instances instead of reusing a single " "instance avoids that problem::" msgstr "" +"Pour éviter ce problème, utilisez des instances différentes de :class:" +"`ExitStack` plutôt qu'une seule instance ::" diff --git a/library/contextvars.po b/library/contextvars.po index af286c73b3..9ec9665949 100644 --- a/library/contextvars.po +++ b/library/contextvars.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-08-03 17:52+0200\n" "PO-Revision-Date: 2018-08-03 23:47+0200\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/contextvars.rst:2 msgid ":mod:`contextvars` --- Context Variables" -msgstr "" +msgstr ":mod:`contextvars` — Variables de contexte" #: ../Doc/library/contextvars.rst:11 msgid "" @@ -26,6 +26,12 @@ msgid "" "the :class:`~contextvars.Context` class should be used to manage the current " "context in asynchronous frameworks." msgstr "" +"Ce module fournit des API pour gérer, stocker et accéder à l'état local de " +"contexte. La classe :class:`~contextvars.ContextVar` est utilisée pour " +"déclarer et travailler avec les *Variables de contexte*. La fonction :func:" +"`~contextvars.copy_context` et la classe :class:`~contextvars.Context` " +"doivent être utilisées pour la gestion du contexte actuel dans les " +"cadriciels asynchrones." #: ../Doc/library/contextvars.rst:17 msgid "" @@ -33,23 +39,31 @@ msgid "" "func:`threading.local()` to prevent their state from bleeding to other code " "unexpectedly, when used in concurrent code." msgstr "" +"Les gestionnaires de contexte, quand ils ont un état et quand ils sont " +"utilisés dans du code s'exécutant de manière concurrente, doivent utiliser " +"les variables de contexte au lieu de :func:`threading.local()` pour empêcher " +"que leur état ne perturbe un autre fil de manière inattendue." #: ../Doc/library/contextvars.rst:21 msgid "See also :pep:`567` for additional details." -msgstr "" +msgstr "Voir aussi :pep:`567` pour plus de détails." #: ../Doc/library/contextvars.rst:27 msgid "Context Variables" -msgstr "" +msgstr "Variables de contexte" #: ../Doc/library/contextvars.rst:31 msgid "This class is used to declare a new Context Variable, e.g.::" msgstr "" +"Cette classe est utilisée pour déclarer une nouvelle variable de contexte, " +"p. ex. ::" #: ../Doc/library/contextvars.rst:35 msgid "" "The required *name* parameter is used for introspection and debug purposes." msgstr "" +"Le paramètre requis *name* est utilisé à des fins d'introspection et de " +"débogage." #: ../Doc/library/contextvars.rst:38 msgid "" @@ -57,6 +71,8 @@ msgid "" "`ContextVar.get` when no value for the variable is found in the current " "context." msgstr "" +"Le paramètre nommé *default* est renvoyé par :meth:`ContextVar.get` quand " +"aucune valeur n'est trouvée dans le contexte actuel pour la variable." #: ../Doc/library/contextvars.rst:42 msgid "" @@ -65,57 +81,77 @@ msgid "" "context variables which prevents context variables from being properly " "garbage collected." msgstr "" +"**Important :** les variables de contexte doivent être créées au plus haut " +"niveau du module et jamais dans des fermetures (*closures*). Les objets :" +"class:`Context` maintiennent des références fortes aux variables de contexte " +"ce qui empêche que les variables de contexte soient correctement nettoyées " +"par le ramasse-miette." #: ../Doc/library/contextvars.rst:49 msgid "The name of the variable. This is a read-only property." -msgstr "" +msgstr "Nom de la variable. Cette propriété est en lecture seule." #: ../Doc/library/contextvars.rst:55 msgid "Return a value for the context variable for the current context." -msgstr "" +msgstr "Renvoie la valeur de la variable de contexte pour le contexte actuel." #: ../Doc/library/contextvars.rst:57 msgid "" "If there is no value for the variable in the current context, the method " "will:" msgstr "" +"S'il n'y a pas de valeur pour la variable dans le contexte actuel, la " +"méthode :" #: ../Doc/library/contextvars.rst:60 msgid "" "return the value of the *default* argument of the method, if provided; or" msgstr "" +"renvoie la valeur de l'argument *default* passé à la méthode, s'il a été " +"fourni ;" #: ../Doc/library/contextvars.rst:63 msgid "" "return the default value for the context variable, if it was created with " "one; or" msgstr "" +"ou renvoie la valeur par défaut de la variable de contexte, si elle a été " +"créée avec une valeur par défaut ;" #: ../Doc/library/contextvars.rst:66 msgid "raise a :exc:`LookupError`." -msgstr "" +msgstr "ou lève une erreur :exc:`LookupError`." #: ../Doc/library/contextvars.rst:70 msgid "" "Call to set a new value for the context variable in the current context." msgstr "" +"Assigne une nouvelle valeur à la variable de contexte dans le contexte " +"actuel." #: ../Doc/library/contextvars.rst:73 msgid "" "The required *value* argument is the new value for the context variable." msgstr "" +"L'argument requis *value* est la nouvelle valeur pour la variable de " +"contexte." #: ../Doc/library/contextvars.rst:76 msgid "" "Returns a :class:`~contextvars.Token` object that can be used to restore the " "variable to its previous value via the :meth:`ContextVar.reset` method." msgstr "" +"Renvoie un objet :class:`~contextvars.Token` qui peut être utilisé pour " +"rétablir la variable à sa valeur précédente par la méthode :meth:`ContextVar." +"reset`." #: ../Doc/library/contextvars.rst:82 msgid "" "Reset the context variable to the value it had before the :meth:`ContextVar." "set` that created the *token* was used." msgstr "" +"Réinitialise la variable de contexte à la valeur qu'elle avait avant l'appel " +"de :meth:`ContextVar.set` qui a créé le *token*." #: ../Doc/library/contextvars.rst:85 msgid "For example::" @@ -127,12 +163,17 @@ msgid "" "be passed to the :meth:`ContextVar.reset` method to revert the value of the " "variable to what it was before the corresponding *set*." msgstr "" +"Les objets *Token* sont renvoyés par la méthode :meth:`ContextVar.set`. Ils " +"peuvent être passés à la méthode :meth:`ContextVar.reset` pour réaffecter la " +"valeur de la variable à ce qu'elle était avant le *set* correspondant." #: ../Doc/library/contextvars.rst:106 msgid "" "A read-only property. Points to the :class:`ContextVar` object that created " "the token." msgstr "" +"Propriété en lecture seule. Pointe vers l'objet :class:`ContextVar` qui a " +"créé le token." #: ../Doc/library/contextvars.rst:111 msgid "" @@ -140,44 +181,56 @@ msgid "" "`ContextVar.set` method call that created the token. It points to :attr:" "`Token.MISSING` is the variable was not set before the call." msgstr "" +"Propriété en lecture seule. Sa valeur est celle que la variable avait avant " +"l'appel à la méthode :meth:`ContextVar.set` qui a créé le jeton. Elle pointe " +"à :attr:`Token.MISSING` si la variable n'est pas définie avant l'appel." #: ../Doc/library/contextvars.rst:118 msgid "A marker object used by :attr:`Token.old_value`." -msgstr "" +msgstr "Objet marqueur utilisé par :attr:`Token.old_value`." #: ../Doc/library/contextvars.rst:122 msgid "Manual Context Management" -msgstr "" +msgstr "Gestion de contexte manuelle" #: ../Doc/library/contextvars.rst:126 msgid "Returns a copy of the current :class:`~contextvars.Context` object." -msgstr "" +msgstr "Renvoie une copie de l'objet :class:`~contextvars.Context` actuel." #: ../Doc/library/contextvars.rst:128 msgid "" "The following snippet gets a copy of the current context and prints all " "variables and their values that are set in it::" msgstr "" +"Le fragment de code qui suit obtient une copie du contexte actuel et affiche " +"toutes les variables avec leurs valeurs définies dans ce contexte." #: ../Doc/library/contextvars.rst:134 msgid "" "The function has an O(1) complexity, i.e. works equally fast for contexts " "with a few context variables and for contexts that have a lot of them." msgstr "" +"La fonction a une complexité O(1), c.-à-d. qu'elle fonctionne aussi " +"rapidement pour des contextes avec peu de variables de contexte que pour des " +"contextes qui en ont beaucoup." #: ../Doc/library/contextvars.rst:141 msgid "A mapping of :class:`ContextVars ` to their values." msgstr "" +"Tableau associatif entre :class:`ContextVars ` et leurs valeurs." #: ../Doc/library/contextvars.rst:143 msgid "" "``Context()`` creates an empty context with no values in it. To get a copy " "of the current context use the :func:`~contextvars.copy_context` function." msgstr "" +"``Context()`` crée un contexte vide ne contenant aucune valeur. Pour obtenir " +"une copie du contexte actuel, utilisez la fonction :func:`~contextvars." +"copy_context`." #: ../Doc/library/contextvars.rst:147 msgid "Context implements the :class:`collections.abc.Mapping` interface." -msgstr "" +msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`." #: ../Doc/library/contextvars.rst:151 msgid "" @@ -185,66 +238,85 @@ msgid "" "method is called on. Return the result of the execution or propagate an " "exception if one occurred." msgstr "" +"Exécute le code ``callable(*args, **kwargs)`` dans le contexte défini par " +"l'objet. Renvoie le résultat de l'exécution ou propage une exception s'il y " +"en a une qui s'est produite." #: ../Doc/library/contextvars.rst:155 msgid "" "Any changes to any context variables that *callable* makes will be contained " "in the context object::" msgstr "" +"Tout changement apporté aux variables de contexte effectué par *callable* " +"sera contenu dans l'objet de contexte ::" #: ../Doc/library/contextvars.rst:184 msgid "" "The method raises a :exc:`RuntimeError` when called on the same context " "object from more than one OS thread, or when called recursively." msgstr "" +"La méthode lève une :exc:`RuntimeError` quand elle est appelée sur le même " +"objet de contexte depuis plus qu'un fil d'exécution ou quand elle est " +"appelée récursivement." #: ../Doc/library/contextvars.rst:190 msgid "Return a shallow copy of the context object." -msgstr "" +msgstr "Renvoie une copie de surface de l'objet de contexte." #: ../Doc/library/contextvars.rst:194 msgid "" "Return ``True`` if the *context* has a value for *var* set; return ``False`` " "otherwise." msgstr "" +"Renvoie ``True`` si le *context* a une valeur pour *var* ; sinon renvoie " +"``False``." #: ../Doc/library/contextvars.rst:199 msgid "" "Return the value of the *var* :class:`ContextVar` variable. If the variable " "is not set in the context object, a :exc:`KeyError` is raised." msgstr "" +"Renvoie la valeur de la variable :class:`ContextVar` *var*. Si la variable " +"n'est pas définie dans l'objet de contexte, une :exc:`KeyError` est levée." #: ../Doc/library/contextvars.rst:205 msgid "" "Return the value for *var* if *var* has the value in the context object. " "Return *default* otherwise. If *default* is not given, return ``None``." msgstr "" +"Renvoie la valeur de *var* si *var* possède une valeur dans l'objet de " +"contexte. Renvoie *default* sinon (ou ``None`` si *default* n'est pas donné)." #: ../Doc/library/contextvars.rst:211 msgid "Return an iterator over the variables stored in the context object." msgstr "" +"Renvoie un itérateur sur les variables stockées dans l'objet de contexte." #: ../Doc/library/contextvars.rst:216 msgid "Return the number of variables set in the context object." -msgstr "" +msgstr "Renvoie le nombre de variables définies dans l'objet de contexte." #: ../Doc/library/contextvars.rst:220 msgid "Return a list of all variables in the context object." -msgstr "" +msgstr "Renvoie une liste de toutes les variables dans l'objet de contexte." #: ../Doc/library/contextvars.rst:224 msgid "Return a list of all variables' values in the context object." msgstr "" +"Renvoie une liste de toutes les valeurs des variables dans l'objet de " +"contexte." #: ../Doc/library/contextvars.rst:229 msgid "" "Return a list of 2-tuples containing all variables and their values in the " "context object." msgstr "" +"Renvoie une liste de paires contenant toutes les variables et leurs valeurs " +"dans l'objet de contexte." #: ../Doc/library/contextvars.rst:234 msgid "asyncio support" -msgstr "" +msgstr "Gestion avec *asyncio*" #: ../Doc/library/contextvars.rst:236 msgid "" @@ -253,3 +325,8 @@ msgid "" "server, that uses a context variable to make the address of a remote client " "available in the Task that handles that client::" msgstr "" +":mod:`asyncio` gère nativement les variables de contexte et elles sont " +"prêtes à être utilisées sans configuration supplémentaire. Par exemple, " +"voici un serveur *echo* simple qui utilise une variable de contexte pour que " +"l’adresse d'un client distant soit disponible dans le *Task* qui gère ce " +"client ::" diff --git a/library/copy.po b/library/copy.po index 518454af0e..a6af88524c 100644 --- a/library/copy.po +++ b/library/copy.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2019-02-21 17:18+0100\n" diff --git a/library/copyreg.po b/library/copyreg.po index 74644fd677..09941477c6 100644 --- a/library/copyreg.po +++ b/library/copyreg.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: 2018-11-23 15:14+0100\n" diff --git a/library/crypt.po b/library/crypt.po index b9feeb3f5e..961db05fef 100644 --- a/library/crypt.po +++ b/library/crypt.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -14,15 +14,16 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/crypt.rst:2 +#: library/crypt.rst:2 msgid ":mod:`crypt` --- Function to check Unix passwords" msgstr "" -#: ../Doc/library/crypt.rst:12 +#: library/crypt.rst:12 +#, fuzzy msgid "**Source code:** :source:`Lib/crypt.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/pty.py`" -#: ../Doc/library/crypt.rst:20 +#: library/crypt.rst:20 msgid "" "This module implements an interface to the :manpage:`crypt(3)` routine, " "which is a one-way hash function based upon a modified DES algorithm; see " @@ -31,7 +32,7 @@ msgid "" "attempting to crack Unix passwords with a dictionary." msgstr "" -#: ../Doc/library/crypt.rst:28 +#: library/crypt.rst:28 msgid "" "Notice that the behavior of this module depends on the actual " "implementation of the :manpage:`crypt(3)` routine in the running system. " @@ -39,69 +40,70 @@ msgid "" "be available on this module." msgstr "" -#: ../Doc/library/crypt.rst:34 +#: library/crypt.rst:34 msgid ":ref:`Availability `: Unix. Not available on VxWorks." msgstr "" -#: ../Doc/library/crypt.rst:36 +#: library/crypt.rst:36 msgid "Hashing Methods" msgstr "" -#: ../Doc/library/crypt.rst:40 +#: library/crypt.rst:40 msgid "" "The :mod:`crypt` module defines the list of hashing methods (not all methods " "are available on all platforms):" msgstr "" -#: ../Doc/library/crypt.rst:45 +#: library/crypt.rst:45 msgid "" "A Modular Crypt Format method with 16 character salt and 86 character hash " "based on the SHA-512 hash function. This is the strongest method." msgstr "" -#: ../Doc/library/crypt.rst:50 +#: library/crypt.rst:50 msgid "" "Another Modular Crypt Format method with 16 character salt and 43 character " "hash based on the SHA-256 hash function." msgstr "" -#: ../Doc/library/crypt.rst:55 +#: library/crypt.rst:55 msgid "" "Another Modular Crypt Format method with 22 character salt and 31 character " "hash based on the Blowfish cipher." msgstr "" -#: ../Doc/library/crypt.rst:62 +#: library/crypt.rst:62 msgid "" "Another Modular Crypt Format method with 8 character salt and 22 character " "hash based on the MD5 hash function." msgstr "" -#: ../Doc/library/crypt.rst:67 +#: library/crypt.rst:67 msgid "" "The traditional method with a 2 character salt and 13 characters of hash. " "This is the weakest method." msgstr "" -#: ../Doc/library/crypt.rst:72 +#: library/crypt.rst:72 msgid "Module Attributes" msgstr "" -#: ../Doc/library/crypt.rst:78 +#: library/crypt.rst:78 msgid "" "A list of available password hashing algorithms, as ``crypt.METHOD_*`` " "objects. This list is sorted from strongest to weakest." msgstr "" -#: ../Doc/library/crypt.rst:84 +#: library/crypt.rst:84 msgid "Module Functions" msgstr "" -#: ../Doc/library/crypt.rst:86 +#: library/crypt.rst:86 +#, fuzzy msgid "The :mod:`crypt` module defines the following functions:" -msgstr "" +msgstr "Le module :mod:`pty` expose les fonctions suivantes :" -#: ../Doc/library/crypt.rst:90 +#: library/crypt.rst:90 msgid "" "*word* will usually be a user's password as typed at a prompt or in a " "graphical interface. The optional *salt* is either a string as returned " @@ -111,52 +113,52 @@ msgid "" "strongest method will be used (as returned by :func:`methods`)." msgstr "" -#: ../Doc/library/crypt.rst:98 +#: library/crypt.rst:98 msgid "" "Checking a password is usually done by passing the plain-text password as " "*word* and the full results of a previous :func:`crypt` call, which should " "be the same as the results of this call." msgstr "" -#: ../Doc/library/crypt.rst:102 +#: library/crypt.rst:102 msgid "" -"*salt* (either a random 2 or 16 character string, possibly prefixed with ``" -"$digit$`` to indicate the method) which will be used to perturb the " +"*salt* (either a random 2 or 16 character string, possibly prefixed with " +"``$digit$`` to indicate the method) which will be used to perturb the " "encryption algorithm. The characters in *salt* must be in the set ``[./a-zA-" -"Z0-9]``, with the exception of Modular Crypt Format which prefixes a ``$digit" -"$``." +"Z0-9]``, with the exception of Modular Crypt Format which prefixes a " +"``$digit$``." msgstr "" -#: ../Doc/library/crypt.rst:108 +#: library/crypt.rst:108 msgid "" "Returns the hashed password as a string, which will be composed of " "characters from the same alphabet as the salt." msgstr "" -#: ../Doc/library/crypt.rst:113 +#: library/crypt.rst:113 msgid "" "Since a few :manpage:`crypt(3)` extensions allow different values, with " "different sizes in the *salt*, it is recommended to use the full crypted " "password as salt when checking for a password." msgstr "" -#: ../Doc/library/crypt.rst:117 +#: library/crypt.rst:117 msgid "Accept ``crypt.METHOD_*`` values in addition to strings for *salt*." msgstr "" -#: ../Doc/library/crypt.rst:123 +#: library/crypt.rst:123 msgid "" "Return a randomly generated salt of the specified method. If no *method* is " "given, the strongest method available as returned by :func:`methods` is used." msgstr "" -#: ../Doc/library/crypt.rst:127 +#: library/crypt.rst:127 msgid "" "The return value is a string suitable for passing as the *salt* argument to :" "func:`crypt`." msgstr "" -#: ../Doc/library/crypt.rst:130 +#: library/crypt.rst:130 msgid "" "*rounds* specifies the number of rounds for ``METHOD_SHA256``, " "``METHOD_SHA512`` and ``METHOD_BLOWFISH``. For ``METHOD_SHA256`` and " @@ -166,22 +168,22 @@ msgid "" "sup:`31`), the default is ``4096`` (2\\ :sup:`12`)." msgstr "" -#: ../Doc/library/crypt.rst:140 +#: library/crypt.rst:140 msgid "Added the *rounds* parameter." msgstr "" -#: ../Doc/library/crypt.rst:145 +#: library/crypt.rst:145 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/crypt.rst:147 +#: library/crypt.rst:147 msgid "" "A simple example illustrating typical use (a constant-time comparison " "operation is needed to limit exposure to timing attacks. :func:`hmac." "compare_digest` is suitable for this purpose)::" msgstr "" -#: ../Doc/library/crypt.rst:167 +#: library/crypt.rst:167 msgid "" "To generate a hash of a password using the strongest available method and " "check it against the original::" diff --git a/library/crypto.po b/library/crypto.po index c568fa0e93..26922e9a08 100644 --- a/library/crypto.po +++ b/library/crypto.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-02-15 00:42+0100\n" diff --git a/library/csv.po b/library/csv.po index e49a1764ba..1cc69cfee1 100644 --- a/library/csv.po +++ b/library/csv.po @@ -3,27 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-10-13 16:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 23:16+0200\n" "Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.4\n" +"X-Generator: Poedit 2.3\n" -#: ../Doc/library/csv.rst:2 +#: library/csv.rst:2 msgid ":mod:`csv` --- CSV File Reading and Writing" msgstr ":mod:`csv` — Lecture et écriture de fichiers CSV" -#: ../Doc/library/csv.rst:9 +#: library/csv.rst:9 msgid "**Source code:** :source:`Lib/csv.py`" msgstr "**Code source :** :source:`Lib/csv.py`" -#: ../Doc/library/csv.rst:17 +#: library/csv.rst:17 msgid "" "The so-called CSV (Comma Separated Values) format is the most common import " "and export format for spreadsheets and databases. CSV format was used for " @@ -48,7 +48,7 @@ msgstr "" "module unique puisse manipuler efficacement ces données, masquant au " "programmeur les détails de lecture/écriture des données." -#: ../Doc/library/csv.rst:28 +#: library/csv.rst:28 msgid "" "The :mod:`csv` module implements classes to read and write tabular data in " "CSV format. It allows programmers to say, \"write this data in the format " @@ -64,7 +64,7 @@ msgstr "" "Vous pouvez aussi décrire les formats CSV utilisés par d'autres application " "ou définir vos propres spécialisations." -#: ../Doc/library/csv.rst:35 +#: library/csv.rst:35 msgid "" "The :mod:`csv` module's :class:`reader` and :class:`writer` objects read and " "write sequences. Programmers can also read and write data in dictionary " @@ -75,25 +75,25 @@ msgstr "" "dictionnaire en utilisant les classes :class:`DictReader` et :class:" "`DictWriter`." -#: ../Doc/library/csv.rst:41 +#: library/csv.rst:41 msgid ":pep:`305` - CSV File API" -msgstr ":pep:`305` - Interface des fichiers CSV" +msgstr ":pep:`305` ­— Interface des fichiers CSV" -#: ../Doc/library/csv.rst:42 +#: library/csv.rst:42 msgid "The Python Enhancement Proposal which proposed this addition to Python." msgstr "" "La proposition d'amélioration de Python (PEP) qui a proposé cet ajout au " "langage." -#: ../Doc/library/csv.rst:48 +#: library/csv.rst:48 msgid "Module Contents" msgstr "Contenu du module" -#: ../Doc/library/csv.rst:50 +#: library/csv.rst:50 msgid "The :mod:`csv` module defines the following functions:" msgstr "Le module :mod:`csv` définit les fonctions suivantes :" -#: ../Doc/library/csv.rst:58 +#: library/csv.rst:58 msgid "" "Return a reader object which will iterate over lines in the given *csvfile*. " "*csvfile* can be any object which supports the :term:`iterator` protocol and " @@ -123,7 +123,7 @@ msgstr "" "sur les dialectes et paramètres de formatage, voir la section :ref:`csv-fmt-" "params`." -#: ../Doc/library/csv.rst:71 +#: library/csv.rst:71 msgid "" "Each row read from the csv file is returned as a list of strings. No " "automatic data type conversion is performed unless the ``QUOTE_NONNUMERIC`` " @@ -136,12 +136,11 @@ msgstr "" "spécifiée (dans ce cas, les champs sans guillemets sont transformés en " "nombres flottants)." -#: ../Doc/library/csv.rst:75 ../Doc/library/csv.rst:105 -#: ../Doc/library/csv.rst:172 ../Doc/library/csv.rst:208 +#: library/csv.rst:105 library/csv.rst:212 msgid "A short usage example::" -msgstr "Un court exemple d'utilisation : ::" +msgstr "Un court exemple d'utilisation ::" -#: ../Doc/library/csv.rst:88 +#: library/csv.rst:88 msgid "" "Return a writer object responsible for converting the user's data into " "delimited strings on the given file-like object. *csvfile* can be any " @@ -180,7 +179,7 @@ msgstr "" "caractères sont transformées en chaînes par un appel à :func:`str` avant " "d'être écrites." -#: ../Doc/library/csv.rst:117 +#: library/csv.rst:117 msgid "" "Associate *dialect* with *name*. *name* must be a string. The dialect can " "be specified either by passing a sub-class of :class:`Dialect`, or by " @@ -195,7 +194,7 @@ msgstr "" "complets sur les dialectes et paramètres de formatage, voir la section :ref:" "`csv-fmt-params`." -#: ../Doc/library/csv.rst:126 +#: library/csv.rst:126 msgid "" "Delete the dialect associated with *name* from the dialect registry. An :" "exc:`Error` is raised if *name* is not a registered dialect name." @@ -203,7 +202,7 @@ msgstr "" "Supprime le dialecte associé à *name* depuis le registre des dialectes. " "Une :exc:`Error` est levée si *name* n'est pas un nom de dialecte enregistré." -#: ../Doc/library/csv.rst:132 +#: library/csv.rst:132 msgid "" "Return the dialect associated with *name*. An :exc:`Error` is raised if " "*name* is not a registered dialect name. This function returns an " @@ -213,11 +212,11 @@ msgstr "" "n'est pas un nom de dialecte enregistré. Cette fonction renvoie un objet :" "class:`Dialect` immuable." -#: ../Doc/library/csv.rst:138 +#: library/csv.rst:138 msgid "Return the names of all registered dialects." msgstr "Renvoie les noms de tous les dialectes enregistrés." -#: ../Doc/library/csv.rst:143 +#: library/csv.rst:143 msgid "" "Returns the current maximum field size allowed by the parser. If *new_limit* " "is given, this becomes the new limit." @@ -225,11 +224,11 @@ msgstr "" "Renvoie la taille de champ maximale courante autorisée par l'analyseur. Si " "*new_limit* est donnée, elle devient la nouvelle limite." -#: ../Doc/library/csv.rst:147 +#: library/csv.rst:147 msgid "The :mod:`csv` module defines the following classes:" msgstr "Le module :mod:`csv` définit les classes suivantes :" -#: ../Doc/library/csv.rst:152 +#: library/csv.rst:152 msgid "" "Create an object that operates like a regular reader but maps the " "information in each row to a :class:`dict` whose keys are given by the " @@ -239,7 +238,7 @@ msgstr "" "informations de chaque ligne dans un :class:`dict` dont les clés sont " "données par le paramètre optionnel *fieldnames*." -#: ../Doc/library/csv.rst:156 +#: library/csv.rst:156 msgid "" "The *fieldnames* parameter is a :term:`sequence`. If *fieldnames* is " "omitted, the values in the first row of file *f* will be used as the " @@ -251,19 +250,21 @@ msgstr "" "utilisées comme noms de champs. Sans se soucier de comment sont déterminés " "les noms de champs, le dictionnaire préserve leur ordre original." -#: ../Doc/library/csv.rst:161 +#: library/csv.rst:161 msgid "" "If a row has more fields than fieldnames, the remaining data is put in a " "list and stored with the fieldname specified by *restkey* (which defaults to " "``None``). If a non-blank row has fewer fields than fieldnames, the missing " -"values are filled-in with ``None``." +"values are filled-in with the value of *restval* (which defaults to " +"``None``)." msgstr "" "Si une ligne a plus de champs que *fieldnames*, les données excédentaires " "sont mises dans une liste stockée dans le champ spécifié par *restkey* " "(``None`` par défaut). Si une ligne non-vide a moins de champs que " -"*fieldnames*, les valeurs manquantes sont mises à ``None``." +"*fieldnames*, les valeurs manquantes sont remplacées par la valeur de " +"*restval* (``None`` par défaut)." -#: ../Doc/library/csv.rst:166 +#: library/csv.rst:167 msgid "" "All other optional or keyword arguments are passed to the underlying :class:" "`reader` instance." @@ -271,11 +272,15 @@ msgstr "" "Tous les autres arguments optionnels ou nommés sont passés à l'instance :" "class:`reader` sous-jacente." -#: ../Doc/library/csv.rst:169 +#: library/csv.rst:170 +msgid "Returned rows are now of type :class:`OrderedDict`." +msgstr "Les lignes renvoyées sont maintenant de type :class:`OrderedDict`." + +#: library/csv.rst:173 msgid "Returned rows are now of type :class:`dict`." msgstr "Les lignes renvoyées sont maintenant de type :class:`dict`." -#: ../Doc/library/csv.rst:190 +#: library/csv.rst:194 msgid "" "Create an object which operates like a regular writer but maps dictionaries " "onto output rows. The *fieldnames* parameter is a :mod:`sequence " @@ -303,7 +308,7 @@ msgstr "" "excédentaires du dictionnaire sont ignorées. Les autres arguments optionnels " "ou nommés sont passés à l'instance :class:`writer` sous-jacente." -#: ../Doc/library/csv.rst:205 +#: library/csv.rst:209 msgid "" "Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " "of the :class:`DictWriter` class is not optional." @@ -311,7 +316,7 @@ msgstr "" "Notez que contrairement à la classe :class:`DictReader`, le paramètre " "*fieldnames* de :class:`DictWriter` n'est pas optionnel." -#: ../Doc/library/csv.rst:224 +#: library/csv.rst:228 msgid "" "The :class:`Dialect` class is a container class relied on primarily for its " "attributes, which are used to define the parameters for a specific :class:" @@ -321,7 +326,7 @@ msgstr "" "principalement pour ses attributs, qui servent à définir des paramètres pour " "des instances spécifiques de :class:`reader` ou :class:`writer`." -#: ../Doc/library/csv.rst:231 +#: library/csv.rst:235 msgid "" "The :class:`excel` class defines the usual properties of an Excel-generated " "CSV file. It is registered with the dialect name ``'excel'``." @@ -329,7 +334,7 @@ msgstr "" "La classe :class:`excel` définit les propriétés usuelles d'un fichier CSV " "généré par Excel. Elle est enregistrée avec le nom de dialecte ``'excel'``." -#: ../Doc/library/csv.rst:237 +#: library/csv.rst:241 msgid "" "The :class:`excel_tab` class defines the usual properties of an Excel-" "generated TAB-delimited file. It is registered with the dialect name " @@ -339,7 +344,7 @@ msgstr "" "CSV généré par Excel avec des tabulations comme séparateurs. Elle est " "enregistrée avec le nom de dialecte ``'excel-tab'``." -#: ../Doc/library/csv.rst:243 +#: library/csv.rst:247 msgid "" "The :class:`unix_dialect` class defines the usual properties of a CSV file " "generated on UNIX systems, i.e. using ``'\\n'`` as line terminator and " @@ -350,17 +355,17 @@ msgstr "" "marqueur de fin de ligne et délimitant tous les champs par des guillemets. " "Elle est enregistrée avec le nom de dialecte ``'unix'``." -#: ../Doc/library/csv.rst:252 +#: library/csv.rst:256 msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." msgstr "" "La classe :class:`Sniffer` est utilisée pour déduire le format d'un fichier " "CSV." -#: ../Doc/library/csv.rst:254 +#: library/csv.rst:258 msgid "The :class:`Sniffer` class provides two methods:" msgstr "La classe :class:`Sniffer` fournit deux méthodes :" -#: ../Doc/library/csv.rst:258 +#: library/csv.rst:262 msgid "" "Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " "the parameters found. If the optional *delimiters* parameter is given, it " @@ -371,7 +376,7 @@ msgstr "" "*delimiters* est donné, il est interprété comme une chaîne contenant tous " "les caractères valides de séparation possibles." -#: ../Doc/library/csv.rst:266 +#: library/csv.rst:270 msgid "" "Analyze the sample text (presumed to be in CSV format) and return :const:" "`True` if the first row appears to be a series of column headers." @@ -379,21 +384,21 @@ msgstr "" "Analyse l'extrait de texte (présumé être au format CSV) et renvoie :const:" "`True` si la première ligne semble être une série d'en-têtes de colonnes." -#: ../Doc/library/csv.rst:269 +#: library/csv.rst:273 msgid "An example for :class:`Sniffer` use::" -msgstr "Un exemple d'utilisation de :class:`Sniffer` : ::" +msgstr "Un exemple d'utilisation de :class:`Sniffer` ::" -#: ../Doc/library/csv.rst:278 +#: library/csv.rst:282 msgid "The :mod:`csv` module defines the following constants:" msgstr "Le module :mod:`csv` définit les constantes suivantes :" -#: ../Doc/library/csv.rst:282 +#: library/csv.rst:286 msgid "Instructs :class:`writer` objects to quote all fields." msgstr "" "Indique aux objets :class:`writer` de délimiter tous les champs par des " "guillemets." -#: ../Doc/library/csv.rst:287 +#: library/csv.rst:291 msgid "" "Instructs :class:`writer` objects to only quote those fields which contain " "special characters such as *delimiter*, *quotechar* or any of the characters " @@ -403,19 +408,19 @@ msgstr "" "contenant un caractère spécial comme *delimiter*, *quotechar* ou n'importe " "quel caractère de *lineterminator*." -#: ../Doc/library/csv.rst:294 +#: library/csv.rst:298 msgid "Instructs :class:`writer` objects to quote all non-numeric fields." msgstr "" "Indique aux objets :class:`writer` de délimiter ainsi tous les champs non-" "numériques." -#: ../Doc/library/csv.rst:296 +#: library/csv.rst:300 msgid "Instructs the reader to convert all non-quoted fields to type *float*." msgstr "" "Indique au lecteur de convertir tous les champs non délimités par des " "guillemets vers des *float*." -#: ../Doc/library/csv.rst:301 +#: library/csv.rst:305 msgid "" "Instructs :class:`writer` objects to never quote fields. When the current " "*delimiter* occurs in output data it is preceded by the current *escapechar* " @@ -428,7 +433,7 @@ msgstr "" "pas précisé, le transcripteur lèvera une :exc:`Error` si un caractère " "nécessitant un échappement est rencontré." -#: ../Doc/library/csv.rst:306 +#: library/csv.rst:310 msgid "" "Instructs :class:`reader` to perform no special processing of quote " "characters." @@ -436,19 +441,19 @@ msgstr "" "Indique au :class:`reader` de ne pas opérer de traitement spécial sur les " "guillemets." -#: ../Doc/library/csv.rst:308 +#: library/csv.rst:312 msgid "The :mod:`csv` module defines the following exception:" msgstr "Le module :mod:`csv` définit les exceptions suivantes :" -#: ../Doc/library/csv.rst:313 +#: library/csv.rst:317 msgid "Raised by any of the functions when an error is detected." msgstr "Levée par les fonctions du module quand une erreur détectée." -#: ../Doc/library/csv.rst:318 +#: library/csv.rst:322 msgid "Dialects and Formatting Parameters" msgstr "Dialectes et paramètres de formatage" -#: ../Doc/library/csv.rst:320 +#: library/csv.rst:324 msgid "" "To make it easier to specify the format of input and output records, " "specific formatting parameters are grouped together into dialects. A " @@ -470,18 +475,18 @@ msgstr "" "paramètres de formatage individuels, qui ont les mêmes noms que les " "attributs de :class:`Dialect` définis ci-dessous." -#: ../Doc/library/csv.rst:330 +#: library/csv.rst:334 msgid "Dialects support the following attributes:" msgstr "Les dialectes supportent les attributs suivants :" -#: ../Doc/library/csv.rst:335 +#: library/csv.rst:339 msgid "" "A one-character string used to separate fields. It defaults to ``','``." msgstr "" "Une chaîne d'un seul caractère utilisée pour séparer les champs. Elle vaut " "``','`` par défaut." -#: ../Doc/library/csv.rst:340 +#: library/csv.rst:344 msgid "" "Controls how instances of *quotechar* appearing inside a field should " "themselves be quoted. When :const:`True`, the character is doubled. When :" @@ -493,7 +498,7 @@ msgstr "" "doublé. Quand il vaut :const:`False`, le caractère *escapechar* est utilisé " "comme préfixe à *quotechar*. Il vaut :const:`True` par défaut." -#: ../Doc/library/csv.rst:345 +#: library/csv.rst:349 msgid "" "On output, if *doublequote* is :const:`False` and no *escapechar* is set, :" "exc:`Error` is raised if a *quotechar* is found in a field." @@ -502,7 +507,7 @@ msgstr "" "n'est précisé, une :exc:`Error` est levée si un *quotechar* est trouvé dans " "le champ." -#: ../Doc/library/csv.rst:351 +#: library/csv.rst:355 msgid "" "A one-character string used by the writer to escape the *delimiter* if " "*quoting* is set to :const:`QUOTE_NONE` and the *quotechar* if *doublequote* " @@ -516,7 +521,7 @@ msgstr "" "retire toute signification spéciale au caractère qui le suit. Elle vaut par " "défaut :const:`None`, ce qui désactive l'échappement." -#: ../Doc/library/csv.rst:359 +#: library/csv.rst:363 msgid "" "The string used to terminate lines produced by the :class:`writer`. It " "defaults to ``'\\r\\n'``." @@ -524,7 +529,7 @@ msgstr "" "La chaîne utilisée pour terminer les lignes produites par un :class:" "`writer`. Elle vaut par défaut ``'\\r\\n'``." -#: ../Doc/library/csv.rst:364 +#: library/csv.rst:368 msgid "" "The :class:`reader` is hard-coded to recognise either ``'\\r'`` or ``'\\n'`` " "as end-of-line, and ignores *lineterminator*. This behavior may change in " @@ -534,7 +539,7 @@ msgstr "" "``'\\n'`` comme marqueurs de fin de ligne, et ignorer *lineterminator*. Ce " "comportement pourrait changer dans le futur." -#: ../Doc/library/csv.rst:371 +#: library/csv.rst:375 msgid "" "A one-character string used to quote fields containing special characters, " "such as the *delimiter* or *quotechar*, or which contain new-line " @@ -544,7 +549,7 @@ msgstr "" "des caractères spéciaux, comme *delimiter* ou *quotechar*, ou contenant un " "caractère de fin de ligne. Elle vaut ``'\"'`` par défaut." -#: ../Doc/library/csv.rst:378 +#: library/csv.rst:382 msgid "" "Controls when quotes should be generated by the writer and recognised by the " "reader. It can take on any of the :const:`QUOTE_\\*` constants (see " @@ -555,7 +560,7 @@ msgstr "" "const:`QUOTE_\\*` (voir la section :ref:`csv-contents`) et vaut par défaut :" "const:`QUOTE_MINIMAL`." -#: ../Doc/library/csv.rst:385 +#: library/csv.rst:389 msgid "" "When :const:`True`, whitespace immediately following the *delimiter* is " "ignored. The default is :const:`False`." @@ -563,7 +568,7 @@ msgstr "" "Quand il vaut :const:`True`, les espaces suivant directement *delimiter* " "sont ignorés. Il vaut :const:`False` par défaut." -#: ../Doc/library/csv.rst:391 +#: library/csv.rst:395 msgid "" "When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " "``False``." @@ -571,11 +576,11 @@ msgstr "" "Quand il vaut ``True``, une exception :exc:`Error` est levée lors de " "mauvaises entrées CSV. Il vaut ``False`` par défaut." -#: ../Doc/library/csv.rst:395 +#: library/csv.rst:399 msgid "Reader Objects" msgstr "Objets lecteurs" -#: ../Doc/library/csv.rst:397 +#: library/csv.rst:401 msgid "" "Reader objects (:class:`DictReader` instances and objects returned by the :" "func:`reader` function) have the following public methods:" @@ -583,7 +588,7 @@ msgstr "" "Les objets lecteurs (instances de :class:`DictReader` ou objets renvoyés par " "la fonction :func:`reader`) ont les méthodes publiques suivantes :" -#: ../Doc/library/csv.rst:402 +#: library/csv.rst:406 msgid "" "Return the next row of the reader's iterable object as a list (if the object " "was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` " @@ -595,15 +600,15 @@ msgstr "" "est un :class:`DictReader`), analysé suivant le dialecte courant. " "Généralement, vous devez appeler la méthode à l'aide de ``next(reader)``." -#: ../Doc/library/csv.rst:408 +#: library/csv.rst:412 msgid "Reader objects have the following public attributes:" msgstr "Les objets lecteurs ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:412 +#: library/csv.rst:416 msgid "A read-only description of the dialect in use by the parser." msgstr "Une description en lecture seule du dialecte utilisé par l'analyseur." -#: ../Doc/library/csv.rst:417 +#: library/csv.rst:421 msgid "" "The number of lines read from the source iterator. This is not the same as " "the number of records returned, as records can span multiple lines." @@ -612,11 +617,11 @@ msgstr "" "au nombre d'enregistrements renvoyés, puisque certains enregistrements " "peuvent s'étendre sur plusieurs lignes." -#: ../Doc/library/csv.rst:421 +#: library/csv.rst:425 msgid "DictReader objects have the following public attribute:" msgstr "Les objets *DictReader* ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:425 +#: library/csv.rst:429 msgid "" "If not passed as a parameter when creating the object, this attribute is " "initialized upon first access or when the first record is read from the file." @@ -625,11 +630,11 @@ msgstr "" "est initialisé lors du premier accès ou quand le premier enregistrement est " "lu depuis le fichier." -#: ../Doc/library/csv.rst:432 +#: library/csv.rst:436 msgid "Writer Objects" msgstr "Objets transcripteurs" -#: ../Doc/library/csv.rst:434 +#: library/csv.rst:438 msgid "" ":class:`Writer` objects (:class:`DictWriter` instances and objects returned " "by the :func:`writer` function) have the following public methods. A *row* " @@ -650,7 +655,7 @@ msgstr "" "quelques problèmes pour d'autres programmes qui liraient ces fichiers CSV " "(en supposant qu'ils supportent les nombres complexes)." -#: ../Doc/library/csv.rst:445 +#: library/csv.rst:449 msgid "" "Write the *row* parameter to the writer's file object, formatted according " "to the current dialect. Return the return value of the call to the *write* " @@ -660,11 +665,11 @@ msgstr "" "selon le dialecte courant. Renvoie la valeur de retour de l'appel à la " "méthode *write* de l'objet fichier sous-jacent." -#: ../Doc/library/csv.rst:449 +#: library/csv.rst:453 msgid "Added support of arbitrary iterables." msgstr "Ajout du support d'itérables arbitraires." -#: ../Doc/library/csv.rst:454 +#: library/csv.rst:458 msgid "" "Write all elements in *rows* (an iterable of *row* objects as described " "above) to the writer's file object, formatted according to the current " @@ -674,49 +679,55 @@ msgstr "" "précédemment) vers le fichier associé au transcripteur, formatés selon le " "dialecte courant." -#: ../Doc/library/csv.rst:458 +#: library/csv.rst:462 msgid "Writer objects have the following public attribute:" msgstr "Les objets transcripteurs ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:463 +#: library/csv.rst:467 msgid "A read-only description of the dialect in use by the writer." msgstr "" "Une description en lecture seule du dialecte utilisé par le transcripteur." -#: ../Doc/library/csv.rst:466 +#: library/csv.rst:470 msgid "DictWriter objects have the following public method:" msgstr "Les objets *DictWriter* ont les attributs publics suivants :" -#: ../Doc/library/csv.rst:471 +#: library/csv.rst:475 msgid "" "Write a row with the field names (as specified in the constructor) to the " "writer's file object, formatted according to the current dialect. Return the " "return value of the :meth:`csvwriter.writerow` call used internally." msgstr "" +"Écrit une ligne avec le nom des en-têtes (comme définies dans le " +"constructeur) dans l'objet fichier associé au transcripteur, formatée selon " +"le dialecte courant. Renvoie la valeur de retour de l'appel :meth:`csvwriter." +"writerow` utilisé en interne." -#: ../Doc/library/csv.rst:476 +#: library/csv.rst:480 msgid "" ":meth:`writeheader` now also returns the value returned by the :meth:" "`csvwriter.writerow` method it uses internally." msgstr "" +":meth:`writeheader` renvoie maintenant aussi la valeur renvoyée par la " +"méthode :meth:`csvwriter.writerow` qu'il utilise en interne." -#: ../Doc/library/csv.rst:484 +#: library/csv.rst:488 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/csv.rst:486 +#: library/csv.rst:490 msgid "The simplest example of reading a CSV file::" -msgstr "Le plus simple exemple de lecture d'un fichier CSV : ::" +msgstr "Le plus simple exemple de lecture d'un fichier CSV ::" -#: ../Doc/library/csv.rst:494 +#: library/csv.rst:498 msgid "Reading a file with an alternate format::" -msgstr "Lire un fichier avec un format alternatif : ::" +msgstr "Lire un fichier avec un format alternatif ::" -#: ../Doc/library/csv.rst:502 +#: library/csv.rst:506 msgid "The corresponding simplest possible writing example is::" -msgstr "Le plus simple exemple d'écriture correspondant est : ::" +msgstr "Le plus simple exemple d'écriture correspondant est ::" -#: ../Doc/library/csv.rst:509 +#: library/csv.rst:513 msgid "" "Since :func:`open` is used to open a CSV file for reading, the file will by " "default be decoded into unicode using the system default encoding (see :func:" @@ -727,9 +738,9 @@ msgstr "" "fichier sera par défaut décodé vers Unicode en utilisant l'encodage par " "défaut (voir :func:`locale.getpreferredencoding`). Pour décoder un fichier " "utilisant un encodage différent, utilisez l'argument ``encoding`` de " -"*open* : ::" +"*open* ::" -#: ../Doc/library/csv.rst:520 +#: library/csv.rst:524 msgid "" "The same applies to writing in something other than the system default " "encoding: specify the encoding argument when opening the output file." @@ -738,31 +749,31 @@ msgstr "" "par défaut du système : spécifiez l'encodage en argument lors de l'ouverture " "du fichier de sortie." -#: ../Doc/library/csv.rst:523 +#: library/csv.rst:527 msgid "Registering a new dialect::" -msgstr "Enregistrer un nouveau dialecte : ::" +msgstr "Enregistrer un nouveau dialecte ::" -#: ../Doc/library/csv.rst:530 +#: library/csv.rst:534 msgid "" "A slightly more advanced use of the reader --- catching and reporting " "errors::" msgstr "" "Un exemple d'utilisation un peu plus avancé du lecteur --- attrapant et " -"notifiant les erreurs : ::" +"notifiant les erreurs ::" -#: ../Doc/library/csv.rst:542 +#: library/csv.rst:546 msgid "" "And while the module doesn't directly support parsing strings, it can easily " "be done::" msgstr "" "Et bien que le module ne permette pas d'analyser directement des chaînes, " -"cela peut être fait facilement : ::" +"cela peut être fait facilement ::" -#: ../Doc/library/csv.rst:551 +#: library/csv.rst:555 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/csv.rst:552 +#: library/csv.rst:556 msgid "" "If ``newline=''`` is not specified, newlines embedded inside quoted fields " "will not be interpreted correctly, and on platforms that use ``\\r\\n`` " diff --git a/library/ctypes.po b/library/ctypes.po index bf0c59a64a..cd60ae3907 100644 --- a/library/ctypes.po +++ b/library/ctypes.po @@ -3,58 +3,75 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-07-29 19:07+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-04-27 22:21+0200\n" +"Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/library/ctypes.rst:2 +#: library/ctypes.rst:2 msgid ":mod:`ctypes` --- A foreign function library for Python" -msgstr "" +msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" -#: ../Doc/library/ctypes.rst:11 +#: library/ctypes.rst:11 msgid "" ":mod:`ctypes` is a foreign function library for Python. It provides C " "compatible data types, and allows calling functions in DLLs or shared " "libraries. It can be used to wrap these libraries in pure Python." msgstr "" +":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " +"python. Elle fournit des types de données compatibles avec le langage C et " +"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " +"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " +"pur code Python." -#: ../Doc/library/ctypes.rst:19 +#: library/ctypes.rst:19 msgid "ctypes tutorial" -msgstr "" +msgstr "Didacticiel de *ctypes*" -#: ../Doc/library/ctypes.rst:21 +#: library/ctypes.rst:21 msgid "" "Note: The code samples in this tutorial use :mod:`doctest` to make sure that " "they actually work. Since some code samples behave differently under Linux, " "Windows, or Mac OS X, they contain doctest directives in comments." msgstr "" +"Remarque : Les exemples de code de ce didacticiel utilisent :mod:`doctest` " +"pour s'assurer de leur propre bon fonctionnement. Vu que certains de ces " +"exemples ont un comportement différent en Linux, Windows ou Mac OS X, ils " +"contiennent des directives *doctest* dans les commentaires." -#: ../Doc/library/ctypes.rst:25 +#: library/ctypes.rst:25 msgid "" "Note: Some code samples reference the ctypes :class:`c_int` type. On " "platforms where ``sizeof(long) == sizeof(int)`` it is an alias to :class:" "`c_long`. So, you should not be confused if :class:`c_long` is printed if " "you would expect :class:`c_int` --- they are actually the same type." msgstr "" +"Remarque : Le type :class:`c_int` du module apparaît dans certains de ces " +"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " +"est un alias de :class:`c_long`. Ne soyez donc pas surpris si :class:" +"`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il s'agit " +"bien du même type." -#: ../Doc/library/ctypes.rst:33 +#: library/ctypes.rst:33 msgid "Loading dynamic link libraries" -msgstr "" +msgstr "Chargement des DLL" -#: ../Doc/library/ctypes.rst:35 +#: library/ctypes.rst:35 msgid "" ":mod:`ctypes` exports the *cdll*, and on Windows *windll* and *oledll* " "objects, for loading dynamic link libraries." msgstr "" +":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " +"dynamiques (et les objets *windll* et *oledll* en Windows)." -#: ../Doc/library/ctypes.rst:38 +#: library/ctypes.rst:38 msgid "" "You load libraries by accessing them as attributes of these objects. *cdll* " "loads libraries which export functions using the standard ``cdecl`` calling " @@ -64,33 +81,51 @@ msgid "" "error code is used to automatically raise an :class:`OSError` exception when " "the function call fails." msgstr "" +"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " +"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " +"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " +"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " +"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " +"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " +"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " +"la fonction échoue." -#: ../Doc/library/ctypes.rst:46 +#: library/ctypes.rst:46 msgid "" "Windows errors used to raise :exc:`WindowsError`, which is now an alias of :" "exc:`OSError`." msgstr "" +"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " +"maintenant un alias de :exc:`OSError`." -#: ../Doc/library/ctypes.rst:51 +#: library/ctypes.rst:51 msgid "" "Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " "C library containing most standard C functions, and uses the cdecl calling " "convention::" msgstr "" +"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " +"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " +"convention d'appel *cdecl* ::" -#: ../Doc/library/ctypes.rst:63 +#: library/ctypes.rst:63 msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "" +msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." -#: ../Doc/library/ctypes.rst:66 +#: library/ctypes.rst:66 msgid "" "Accessing the standard C library through ``cdll.msvcrt`` will use an " "outdated version of the library that may be incompatible with the one being " "used by Python. Where possible, use native Python functionality, or else " "import and use the ``msvcrt`` module." msgstr "" +"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " +"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " +"avec celle que Python utilise. Si possible, mieux vaut utiliser la " +"fonctionnalité native de Python, ou bien importer et utiliser le module " +"``msvcrt``." -#: ../Doc/library/ctypes.rst:71 +#: library/ctypes.rst:71 msgid "" "On Linux, it is required to specify the filename *including* the extension " "to load a library, so attribute access can not be used to load libraries. " @@ -98,16 +133,21 @@ msgid "" "you should load the library by creating an instance of CDLL by calling the " "constructor::" msgstr "" +"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " +"*avec* son extension. Il est donc impossible de charger une bibliothèque en " +"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " +"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " +"*CDLL* en appelant son constructeur ::" -#: ../Doc/library/ctypes.rst:89 +#: library/ctypes.rst:89 msgid "Accessing functions from loaded dlls" -msgstr "" +msgstr "Accès aux fonctions des DLL chargées" -#: ../Doc/library/ctypes.rst:91 +#: library/ctypes.rst:91 msgid "Functions are accessed as attributes of dll objects::" -msgstr "" +msgstr "Les fonctions sont alors des attributs des objets DLL ::" -#: ../Doc/library/ctypes.rst:106 +#: library/ctypes.rst:106 msgid "" "Note that win32 system dlls like ``kernel32`` and ``user32`` often export " "ANSI as well as UNICODE versions of a function. The UNICODE version is " @@ -117,82 +157,111 @@ msgid "" "following C prototype, and a macro is used to expose one of them as " "``GetModuleHandle`` depending on whether UNICODE is defined or not::" msgstr "" +"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " +"souvent une version ANSI et une version UNICODE d'une fonction. La version " +"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " +"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " +"de module* à partir de son nom, a le prototype C suivant (c'est une macro " +"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " +"qu'UNICODE est définie ou non) ::" -#: ../Doc/library/ctypes.rst:119 +#: library/ctypes.rst:119 msgid "" "*windll* does not try to select one of them by magic, you must access the " "version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " "explicitly, and then call it with bytes or string objects respectively." msgstr "" +"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " +"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " +"les appelant ensuite avec des objets octets ou avec des chaînes de " +"caractères, respectivement." -#: ../Doc/library/ctypes.rst:123 +#: library/ctypes.rst:123 msgid "" "Sometimes, dlls export functions with names which aren't valid Python " "identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to use :func:" "`getattr` to retrieve the function::" msgstr "" +"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " +"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " +"faut utiliser :func:`getattr` pour accéder à la fonction ::" -#: ../Doc/library/ctypes.rst:131 +#: library/ctypes.rst:131 msgid "" "On Windows, some dlls export functions not by name but by ordinal. These " "functions can be accessed by indexing the dll object with the ordinal " "number::" msgstr "" +"Sous Windows, certaines DLL exportent des fonctions à travers un indice " +"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " +"avec son index ::" -#: ../Doc/library/ctypes.rst:148 +#: library/ctypes.rst:148 msgid "Calling functions" -msgstr "" +msgstr "Appel de fonctions" -#: ../Doc/library/ctypes.rst:150 +#: library/ctypes.rst:150 msgid "" "You can call these functions like any other Python callable. This example " "uses the ``time()`` function, which returns system time in seconds since the " "Unix epoch, and the ``GetModuleHandleA()`` function, which returns a win32 " "module handle." msgstr "" +"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " +"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " +"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " +"gestionnaire de module *win32*." -#: ../Doc/library/ctypes.rst:155 +#: library/ctypes.rst:155 msgid "" -"This example calls both functions with a NULL pointer (``None`` should be " -"used as the NULL pointer)::" +"This example calls both functions with a ``NULL`` pointer (``None`` should " +"be used as the ``NULL`` pointer)::" msgstr "" +"Cet exemple appelle les deux fonctions avec un pointeur ``NULL`` (on utilise " +"``None`` pour passer un pointeur ``NULL``) ::" -#: ../Doc/library/ctypes.rst:166 -msgid "" -":mod:`ctypes` may raise a :exc:`ValueError` after calling the function, if " -"it detects that an invalid number of arguments were passed. This behavior " -"should not be relied upon. It is deprecated in 3.6.2, and will be removed " -"in 3.7." -msgstr "" - -#: ../Doc/library/ctypes.rst:171 +#: library/ctypes.rst:164 msgid "" ":exc:`ValueError` is raised when you call an ``stdcall`` function with the " "``cdecl`` calling convention, or vice versa::" msgstr "" +"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " +"avec la convention d'appel ``cdecl`` et vice-versa ::" -#: ../Doc/library/ctypes.rst:186 +#: library/ctypes.rst:179 msgid "" "To find out the correct calling convention you have to look into the C " "header file or the documentation for the function you want to call." msgstr "" +"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " +"documentation de la fonction à appeler." -#: ../Doc/library/ctypes.rst:189 +#: library/ctypes.rst:182 msgid "" "On Windows, :mod:`ctypes` uses win32 structured exception handling to " "prevent crashes from general protection faults when functions are called " "with invalid argument values::" msgstr "" +"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " +"exceptions (*structured exception handling*) *win32* pour empêcher les " +"plantages dus à des interruptions, afin de préserver la protection globale " +"(*general protection faults*) du système, lorsque des fonctions sont " +"appelées avec un nombre incorrect d'arguments ::" -#: ../Doc/library/ctypes.rst:199 +#: library/ctypes.rst:192 msgid "" "There are, however, enough ways to crash Python with :mod:`ctypes`, so you " "should be careful anyway. The :mod:`faulthandler` module can be helpful in " "debugging crashes (e.g. from segmentation faults produced by erroneous C " "library calls)." msgstr "" +"Cependant, il y a suffisamment de façons de faire planter Python avec :mod:" +"`ctypes`, donc il faut être prudent dans tous les cas. Le module :mod:" +"`faulthandler` est pratique pour déboguer les plantages (p. ex. dus à des " +"erreurs de segmentation produites par des appels erronés à la bibliothèque " +"C)." -#: ../Doc/library/ctypes.rst:204 +#: library/ctypes.rst:197 msgid "" "``None``, integers, bytes objects and (unicode) strings are the only native " "Python objects that can directly be used as parameters in these function " @@ -202,259 +271,275 @@ msgid "" "platforms default C :c:type:`int` type, their value is masked to fit into " "the C type." msgstr "" +"``None``, les entiers, les objets octets et les chaînes de caractères " +"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " +"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " +"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " +"passés comme un pointeur sur le bloc mémoire qui contient la donnée (:c:type:" +"`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés comme le " +"type C :c:type:`int` par défaut de la plate-forme, un masque étant appliqué " +"pour qu'ils tiennent dans le type C." -#: ../Doc/library/ctypes.rst:211 +#: library/ctypes.rst:204 msgid "" "Before we move on calling functions with other parameter types, we have to " "learn more about :mod:`ctypes` data types." msgstr "" +"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " +"paramètres, apprenons-en un peu plus sur les types de données de :mod:" +"`ctypes`." -#: ../Doc/library/ctypes.rst:218 ../Doc/library/ctypes.rst:2099 +#: library/ctypes.rst:2143 msgid "Fundamental data types" -msgstr "" +msgstr "Types de données fondamentaux" -#: ../Doc/library/ctypes.rst:220 +#: library/ctypes.rst:213 msgid ":mod:`ctypes` defines a number of primitive C compatible data types:" msgstr "" +":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " +"C :" -#: ../Doc/library/ctypes.rst:223 +#: library/ctypes.rst:216 msgid "ctypes type" -msgstr "Type *ctype*" +msgstr "Types de *ctypes*" -#: ../Doc/library/ctypes.rst:223 +#: library/ctypes.rst:216 msgid "C type" msgstr "Type C" -#: ../Doc/library/ctypes.rst:223 +#: library/ctypes.rst:216 msgid "Python type" msgstr "Type Python" -#: ../Doc/library/ctypes.rst:225 +#: library/ctypes.rst:218 msgid ":class:`c_bool`" msgstr ":class:`c_bool`" -#: ../Doc/library/ctypes.rst:225 +#: library/ctypes.rst:218 msgid ":c:type:`_Bool`" msgstr ":c:type:`_Bool`" -#: ../Doc/library/ctypes.rst:225 +#: library/ctypes.rst:218 msgid "bool (1)" -msgstr "bool (1)" +msgstr "*bool* (1)" -#: ../Doc/library/ctypes.rst:227 +#: library/ctypes.rst:220 msgid ":class:`c_char`" msgstr ":class:`c_char`" -#: ../Doc/library/ctypes.rst:227 ../Doc/library/ctypes.rst:231 +#: library/ctypes.rst:224 msgid ":c:type:`char`" msgstr ":c:type:`char`" -#: ../Doc/library/ctypes.rst:227 +#: library/ctypes.rst:220 msgid "1-character bytes object" -msgstr "" +msgstr "objet octet (*bytes*) de 1 caractère" -#: ../Doc/library/ctypes.rst:229 +#: library/ctypes.rst:222 msgid ":class:`c_wchar`" msgstr ":class:`c_wchar`" -#: ../Doc/library/ctypes.rst:229 +#: library/ctypes.rst:222 msgid ":c:type:`wchar_t`" msgstr ":c:type:`wchar_t`" -#: ../Doc/library/ctypes.rst:229 +#: library/ctypes.rst:222 msgid "1-character string" -msgstr "" +msgstr "chaîne de caractères (*string*) de longueur 1" -#: ../Doc/library/ctypes.rst:231 +#: library/ctypes.rst:224 msgid ":class:`c_byte`" msgstr ":class:`c_byte`" -#: ../Doc/library/ctypes.rst:231 ../Doc/library/ctypes.rst:233 -#: ../Doc/library/ctypes.rst:235 ../Doc/library/ctypes.rst:237 -#: ../Doc/library/ctypes.rst:239 ../Doc/library/ctypes.rst:241 -#: ../Doc/library/ctypes.rst:243 ../Doc/library/ctypes.rst:245 -#: ../Doc/library/ctypes.rst:247 ../Doc/library/ctypes.rst:249 -#: ../Doc/library/ctypes.rst:252 ../Doc/library/ctypes.rst:254 +#: library/ctypes.rst:226 library/ctypes.rst:230 library/ctypes.rst:234 +#: library/ctypes.rst:238 library/ctypes.rst:242 library/ctypes.rst:247 msgid "int" msgstr "*int*" -#: ../Doc/library/ctypes.rst:233 +#: library/ctypes.rst:226 msgid ":class:`c_ubyte`" msgstr ":class:`c_ubyte`" -#: ../Doc/library/ctypes.rst:233 +#: library/ctypes.rst:226 msgid ":c:type:`unsigned char`" msgstr ":c:type:`unsigned char`" -#: ../Doc/library/ctypes.rst:235 +#: library/ctypes.rst:228 msgid ":class:`c_short`" msgstr ":class:`c_short`" -#: ../Doc/library/ctypes.rst:235 +#: library/ctypes.rst:228 msgid ":c:type:`short`" msgstr ":c:type:`short`" -#: ../Doc/library/ctypes.rst:237 +#: library/ctypes.rst:230 msgid ":class:`c_ushort`" msgstr ":class:`c_ushort`" -#: ../Doc/library/ctypes.rst:237 +#: library/ctypes.rst:230 msgid ":c:type:`unsigned short`" msgstr ":c:type:`unsigned short`" -#: ../Doc/library/ctypes.rst:239 +#: library/ctypes.rst:232 msgid ":class:`c_int`" msgstr ":class:`c_int`" -#: ../Doc/library/ctypes.rst:239 +#: library/ctypes.rst:232 msgid ":c:type:`int`" msgstr ":c:type:`int`" -#: ../Doc/library/ctypes.rst:241 +#: library/ctypes.rst:234 msgid ":class:`c_uint`" msgstr ":class:`c_uint`" -#: ../Doc/library/ctypes.rst:241 +#: library/ctypes.rst:234 msgid ":c:type:`unsigned int`" msgstr ":c:type:`unsigned int`" -#: ../Doc/library/ctypes.rst:243 +#: library/ctypes.rst:236 msgid ":class:`c_long`" msgstr ":class:`c_long`" -#: ../Doc/library/ctypes.rst:243 +#: library/ctypes.rst:236 msgid ":c:type:`long`" msgstr ":c:type:`long`" -#: ../Doc/library/ctypes.rst:245 +#: library/ctypes.rst:238 msgid ":class:`c_ulong`" msgstr ":class:`c_ulong`" -#: ../Doc/library/ctypes.rst:245 +#: library/ctypes.rst:238 msgid ":c:type:`unsigned long`" msgstr ":c:type:`unsigned long`" -#: ../Doc/library/ctypes.rst:247 +#: library/ctypes.rst:240 msgid ":class:`c_longlong`" msgstr ":class:`c_longlong`" -#: ../Doc/library/ctypes.rst:247 +#: library/ctypes.rst:240 msgid ":c:type:`__int64` or :c:type:`long long`" msgstr ":c:type:`__int64` ou :c:type:`long long`" -#: ../Doc/library/ctypes.rst:249 +#: library/ctypes.rst:242 msgid ":class:`c_ulonglong`" msgstr ":class:`c_ulonglong`" -#: ../Doc/library/ctypes.rst:249 +#: library/ctypes.rst:242 msgid ":c:type:`unsigned __int64` or :c:type:`unsigned long long`" -msgstr "" +msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" -#: ../Doc/library/ctypes.rst:252 +#: library/ctypes.rst:245 msgid ":class:`c_size_t`" msgstr ":class:`c_size_t`" -#: ../Doc/library/ctypes.rst:252 +#: library/ctypes.rst:245 msgid ":c:type:`size_t`" msgstr ":c:type:`size_t`" -#: ../Doc/library/ctypes.rst:254 +#: library/ctypes.rst:247 msgid ":class:`c_ssize_t`" msgstr ":class:`c_ssize_t`" -#: ../Doc/library/ctypes.rst:254 +#: library/ctypes.rst:247 msgid ":c:type:`ssize_t` or :c:type:`Py_ssize_t`" msgstr ":c:type:`ssize_t` ou :c:type:`Py_ssize_t`" -#: ../Doc/library/ctypes.rst:257 +#: library/ctypes.rst:250 msgid ":class:`c_float`" msgstr ":class:`c_float`" -#: ../Doc/library/ctypes.rst:257 +#: library/ctypes.rst:250 msgid ":c:type:`float`" msgstr ":c:type:`float`" -#: ../Doc/library/ctypes.rst:257 ../Doc/library/ctypes.rst:259 -#: ../Doc/library/ctypes.rst:261 +#: library/ctypes.rst:252 library/ctypes.rst:254 msgid "float" msgstr "*float*" -#: ../Doc/library/ctypes.rst:259 +#: library/ctypes.rst:252 msgid ":class:`c_double`" msgstr ":class:`c_double`" -#: ../Doc/library/ctypes.rst:259 +#: library/ctypes.rst:252 msgid ":c:type:`double`" msgstr ":c:type:`double`" -#: ../Doc/library/ctypes.rst:261 +#: library/ctypes.rst:254 msgid ":class:`c_longdouble`" msgstr ":class:`c_longdouble`" -#: ../Doc/library/ctypes.rst:261 +#: library/ctypes.rst:254 msgid ":c:type:`long double`" msgstr ":c:type:`long double`" -#: ../Doc/library/ctypes.rst:263 +#: library/ctypes.rst:256 msgid ":class:`c_char_p`" msgstr ":class:`c_char_p`" -#: ../Doc/library/ctypes.rst:263 +#: library/ctypes.rst:256 msgid ":c:type:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (NUL terminated)" +msgstr ":c:type:`char *` (terminé par NUL)" -#: ../Doc/library/ctypes.rst:263 +#: library/ctypes.rst:256 msgid "bytes object or ``None``" -msgstr "objet *bytes* ou ``None``" +msgstr "objet octet (*bytes*) ou ``None``" -#: ../Doc/library/ctypes.rst:265 +#: library/ctypes.rst:258 msgid ":class:`c_wchar_p`" msgstr ":class:`c_wchar_p`" -#: ../Doc/library/ctypes.rst:265 +#: library/ctypes.rst:258 msgid ":c:type:`wchar_t *` (NUL terminated)" -msgstr ":c:type:`wchar_t *` (Terminé par NUL)" +msgstr ":c:type:`wchar_t *` (terminé par NUL)" -#: ../Doc/library/ctypes.rst:265 +#: library/ctypes.rst:258 msgid "string or ``None``" -msgstr "string ou ``None``" +msgstr "chaîne de caractères (*string*) ou ``None``" -#: ../Doc/library/ctypes.rst:267 +#: library/ctypes.rst:260 msgid ":class:`c_void_p`" msgstr ":class:`c_void_p`" -#: ../Doc/library/ctypes.rst:267 +#: library/ctypes.rst:260 msgid ":c:type:`void *`" msgstr ":c:type:`void *`" -#: ../Doc/library/ctypes.rst:267 +#: library/ctypes.rst:260 msgid "int or ``None``" -msgstr "``int`` ou ``None``" +msgstr "*int* ou ``None``" -#: ../Doc/library/ctypes.rst:271 +#: library/ctypes.rst:264 msgid "The constructor accepts any object with a truth value." -msgstr "" +msgstr "Le constructeur accepte n'importe quel objet convertible en booléen." -#: ../Doc/library/ctypes.rst:273 +#: library/ctypes.rst:266 msgid "" "All these types can be created by calling them with an optional initializer " "of the correct type and value::" msgstr "" +"Il est possible de créer chacun de ces types en les appelant avec une valeur " +"d'initialisation du bon type et avec une valeur cohérente ::" -#: ../Doc/library/ctypes.rst:284 +#: library/ctypes.rst:277 msgid "" "Since these types are mutable, their value can also be changed afterwards::" msgstr "" +"Ces types étant des muables, leur valeur peut aussi être modifiée après " +"coup ::" -#: ../Doc/library/ctypes.rst:296 +#: library/ctypes.rst:289 msgid "" "Assigning a new value to instances of the pointer types :class:`c_char_p`, :" "class:`c_wchar_p`, and :class:`c_void_p` changes the *memory location* they " "point to, *not the contents* of the memory block (of course not, because " "Python bytes objects are immutable)::" msgstr "" +"Affecter une nouvelle valeur à une instance de type pointeur — :class:" +"`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la zone " +"mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc mémoire " +"(c'est logique parce que les objets octets sont immuables en Python) ::" -#: ../Doc/library/ctypes.rst:316 +#: library/ctypes.rst:309 msgid "" "You should be careful, however, not to pass them to functions expecting " "pointers to mutable memory. If you need mutable memory blocks, ctypes has a :" @@ -463,8 +548,14 @@ msgid "" "``raw`` property; if you want to access it as NUL terminated string, use the " "``value`` property::" msgstr "" +"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " +"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " +"mémoire modifiable, *ctypes* fournit la fonction :func:" +"`create_string_buffer` qui en crée de plusieurs façons. L'attribut ``raw`` " +"permet d'accéder à (ou de modifier) un bloc mémoire ; l'attribut ``value`` " +"permet d'y accéder comme à une chaîne de caractères terminée par NUL ::" -#: ../Doc/library/ctypes.rst:340 +#: library/ctypes.rst:333 msgid "" "The :func:`create_string_buffer` function replaces the :func:`c_buffer` " "function (which is still available as an alias), as well as the :func:" @@ -472,70 +563,100 @@ msgid "" "memory block containing unicode characters of the C type :c:type:`wchar_t` " "use the :func:`create_unicode_buffer` function." msgstr "" +"La fonction :func:`create_string_buffer` remplace les fonctions :func:" +"`c_buffer` (qui en reste un alias) et :func:`c_string` des versions " +"antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` crée un " +"bloc mémoire modifiable contenant des caractères Unicode du type C :c:type:" +"`wchar_t`." -#: ../Doc/library/ctypes.rst:350 +#: library/ctypes.rst:343 msgid "Calling functions, continued" -msgstr "" +msgstr "Appel de fonctions, suite" -#: ../Doc/library/ctypes.rst:352 +#: library/ctypes.rst:345 msgid "" "Note that printf prints to the real standard output channel, *not* to :data:" "`sys.stdout`, so these examples will only work at the console prompt, not " "from within *IDLE* or *PythonWin*::" msgstr "" +"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " +"exemples suivants ne fonctionnent donc que dans une invite de commande et " +"non depuis *IDLE* or *PythonWin* ::" -#: ../Doc/library/ctypes.rst:372 +#: library/ctypes.rst:365 msgid "" "As has been mentioned before, all Python types except integers, strings, and " "bytes objects have to be wrapped in their corresponding :mod:`ctypes` type, " "so that they can be converted to the required C data type::" msgstr "" +"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " +"de caractères et les objets octet exceptés) doivent être encapsulés dans " +"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " +"type C requis ::" -#: ../Doc/library/ctypes.rst:385 +#: library/ctypes.rst:378 msgid "Calling functions with your own custom data types" -msgstr "" +msgstr "Appel de fonctions avec des types de données personnalisés" -#: ../Doc/library/ctypes.rst:387 +#: library/ctypes.rst:380 msgid "" "You can also customize :mod:`ctypes` argument conversion to allow instances " "of your own classes be used as function arguments. :mod:`ctypes` looks for " "an :attr:`_as_parameter_` attribute and uses this as the function argument. " "Of course, it must be one of integer, string, or bytes::" msgstr "" +"Il est possible de personnaliser la conversion des arguments effectuée par :" +"mod:`ctypes` pour permettre de passer en argument des instances de vos " +"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " +"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " +"être un entier, une chaîne de caractères ou des octets ::" -#: ../Doc/library/ctypes.rst:402 +#: library/ctypes.rst:395 msgid "" "If you don't want to store the instance's data in the :attr:`_as_parameter_` " "instance variable, you could define a :class:`property` which makes the " "attribute available on request." msgstr "" +"Si vous ne souhaitez pas stocker les données de l'instance dans la variable :" +"attr:`_as_parameter_` de l'instance, vous pouvez toujours définir une :class:" +"`propriété ` qui rend cet attribut disponible sur demande." -#: ../Doc/library/ctypes.rst:410 +#: library/ctypes.rst:403 msgid "Specifying the required argument types (function prototypes)" -msgstr "" +msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" -#: ../Doc/library/ctypes.rst:412 +#: library/ctypes.rst:405 msgid "" "It is possible to specify the required argument types of functions exported " "from DLLs by setting the :attr:`argtypes` attribute." msgstr "" +"Il est possible de définir le type des arguments demandés par une fonction " +"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:415 +#: library/ctypes.rst:408 msgid "" ":attr:`argtypes` must be a sequence of C data types (the ``printf`` function " "is probably not a good example here, because it takes a variable number and " "different types of parameters depending on the format string, on the other " "hand this is quite handy to experiment with this feature)::" msgstr "" +":attr:`argtypes` doit être une séquence de types de données C (la fonction " +"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " +"elle accepte un nombre variable d'arguments de types eux aussi variables, " +"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " +"cette fonctionnalité) ::" -#: ../Doc/library/ctypes.rst:426 +#: library/ctypes.rst:419 msgid "" "Specifying a format protects against incompatible argument types (just as a " "prototype for a C function), and tries to convert the arguments to valid " "types::" msgstr "" +"Définir un format empêche de passer des arguments de type incompatible " +"(comme le fait le prototype d'une fonction C) et tente de convertir les " +"arguments en des types valides ::" -#: ../Doc/library/ctypes.rst:438 +#: library/ctypes.rst:431 msgid "" "If you have defined your own classes which you pass to function calls, you " "have to implement a :meth:`from_param` class method for them to be able to " @@ -547,32 +668,50 @@ msgid "" "the result should be an integer, string, bytes, a :mod:`ctypes` instance, or " "an object with an :attr:`_as_parameter_` attribute." msgstr "" - -#: ../Doc/library/ctypes.rst:452 +"Pour appeler une fonction avec votre propre classe définie dans la séquence :" +"attr:`argtypes`, il est nécessaire d'implémenter une méthode de classe :meth:" +"`from_param`. La méthode de classe :meth:`from_param` récupère l'objet " +"Python passé à la fonction et doit faire une vérification de type ou tout ce " +"qui est nécessaire pour s'assurer que l'objet est valide, puis renvoie " +"l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce que vous " +"voulez passer comme argument fonction C dans ce cas. Encore une fois, il " +"convient que le résultat soit un entier, une chaîne, des octets, une " +"instance :mod:`ctypes` ou un objet avec un attribut :attr:`_as_parameter_`." + +#: library/ctypes.rst:445 msgid "Return types" -msgstr "" +msgstr "Types de sortie" -#: ../Doc/library/ctypes.rst:454 +#: library/ctypes.rst:447 msgid "" "By default functions are assumed to return the C :c:type:`int` type. Other " "return types can be specified by setting the :attr:`restype` attribute of " "the function object." msgstr "" +"Le module suppose que toutes les fonctions renvoient par défaut un :c:type:" +"`int` C. Pour préciser un autre type de sortie, il faut définir l'attribut :" +"attr:`restype` de l'objet encapsulant la fonction." -#: ../Doc/library/ctypes.rst:458 +#: library/ctypes.rst:451 msgid "" "Here is a more advanced example, it uses the ``strchr`` function, which " "expects a string pointer and a char, and returns a pointer to a string::" msgstr "" +"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " +"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " +"renvoie un pointeur sur une chaîne de caractères ::" -#: ../Doc/library/ctypes.rst:471 +#: library/ctypes.rst:464 msgid "" "If you want to avoid the ``ord(\"x\")`` calls above, you can set the :attr:" "`argtypes` attribute, and the second argument will be converted from a " "single character Python bytes object into a C char::" msgstr "" +"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " +"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " +"caractère, sera automatiquement converti en un caractère C ::" -#: ../Doc/library/ctypes.rst:489 +#: library/ctypes.rst:482 msgid "" "You can also use a callable Python object (a function or a class for " "example) as the :attr:`restype` attribute, if the foreign function returns " @@ -581,34 +720,52 @@ msgid "" "function call. This is useful to check for error return values and " "automatically raise an exception::" msgstr "" +"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " +"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " +"ce cas, l'appelable sera appelé avec l'entier renvoyé par la fonction et le " +"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " +"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " +"automatiquement des exceptions ::" -#: ../Doc/library/ctypes.rst:512 +#: library/ctypes.rst:505 msgid "" "``WinError`` is a function which will call Windows ``FormatMessage()`` api " "to get the string representation of an error code, and *returns* an " "exception. ``WinError`` takes an optional error code parameter, if no one is " "used, it calls :func:`GetLastError` to retrieve it." msgstr "" +"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " +"représentation de la chaîne de caractères qui correspond au code d'erreur, " +"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " +"code d'erreur. Si celui-ci n'est pas passé, elle appelle :func:" +"`GetLastError` pour le récupérer." -#: ../Doc/library/ctypes.rst:517 +#: library/ctypes.rst:510 msgid "" "Please note that a much more powerful error checking mechanism is available " "through the :attr:`errcheck` attribute; see the reference manual for details." msgstr "" +"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " +"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " +"précisions." -#: ../Doc/library/ctypes.rst:524 +#: library/ctypes.rst:517 msgid "Passing pointers (or: passing parameters by reference)" -msgstr "" +msgstr "Passage de pointeurs (passage de paramètres par référence)" -#: ../Doc/library/ctypes.rst:526 +#: library/ctypes.rst:519 msgid "" "Sometimes a C api function expects a *pointer* to a data type as parameter, " "probably to write into the corresponding location, or if the data is too " "large to be passed by value. This is also known as *passing parameters by " "reference*." msgstr "" +"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " +"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " +"correspondant ou si la donnée est trop grande pour pouvoir être passée par " +"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." -#: ../Doc/library/ctypes.rst:530 +#: library/ctypes.rst:523 msgid "" ":mod:`ctypes` exports the :func:`byref` function which is used to pass " "parameters by reference. The same effect can be achieved with the :func:" @@ -616,78 +773,114 @@ msgid "" "constructs a real pointer object, so it is faster to use :func:`byref` if " "you don't need the pointer object in Python itself::" msgstr "" +":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " +"paramètres par référence. La fonction :func:`pointer` a la même utilité, " +"mais fait plus de travail car :func:`pointer` construit un véritable objet " +"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " +"Python, utiliser :func:`byref` est plus performant ::" -#: ../Doc/library/ctypes.rst:552 +#: library/ctypes.rst:545 msgid "Structures and unions" -msgstr "" +msgstr "Structures et unions" -#: ../Doc/library/ctypes.rst:554 +#: library/ctypes.rst:547 msgid "" "Structures and unions must derive from the :class:`Structure` and :class:" "`Union` base classes which are defined in the :mod:`ctypes` module. Each " "subclass must define a :attr:`_fields_` attribute. :attr:`_fields_` must be " "a list of *2-tuples*, containing a *field name* and a *field type*." msgstr "" +"Les structures et les unions doivent hériter des classes de base :class:" +"`Structure` et :class:`Union` définies dans le module :mod:`ctypes`. Chaque " +"sous-classe doit définir un attribut :attr:`_fields_`. :attr:`_fields_` doit " +"être une liste de *paires*, contenant un *nom de champ* et un *type de " +"champ*." -#: ../Doc/library/ctypes.rst:559 +#: library/ctypes.rst:552 msgid "" "The field type must be a :mod:`ctypes` type like :class:`c_int`, or any " "other derived :mod:`ctypes` type: structure, union, array, pointer." msgstr "" +"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " +"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." -#: ../Doc/library/ctypes.rst:562 +#: library/ctypes.rst:555 msgid "" "Here is a simple example of a POINT structure, which contains two integers " "named *x* and *y*, and also shows how to initialize a structure in the " "constructor::" msgstr "" +"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " +"et *y* et qui montre également comment instancier une structure avec le " +"constructeur ::" -#: ../Doc/library/ctypes.rst:582 +#: library/ctypes.rst:575 msgid "" "You can, however, build much more complicated structures. A structure can " "itself contain other structures by using a structure as a field type." msgstr "" +"Il est bien entendu possible de créer des structures plus complexes. Une " +"structure peut elle-même contenir d'autres structures en prenant une " +"structure comme type de champ." -#: ../Doc/library/ctypes.rst:585 +#: library/ctypes.rst:578 msgid "" "Here is a RECT structure which contains two POINTs named *upperleft* and " "*lowerright*::" msgstr "" +"Voici une structure RECT qui contient deux POINTs *upperleft* et " +"*lowerright* ::" -#: ../Doc/library/ctypes.rst:599 +#: library/ctypes.rst:592 msgid "" "Nested structures can also be initialized in the constructor in several " "ways::" msgstr "" +"Une structure encapsulée peut être instanciée par un constructeur de " +"plusieurs façons ::" -#: ../Doc/library/ctypes.rst:604 +#: library/ctypes.rst:597 msgid "" "Field :term:`descriptor`\\s can be retrieved from the *class*, they are " "useful for debugging because they can provide useful information::" msgstr "" +"Il est possible de récupérer les :term:`descripteurs ` des " +"champs depuis la *classe*. Ils sont importants pour déboguer car ils " +"contiennent des informations utiles ::" -#: ../Doc/library/ctypes.rst:618 +#: library/ctypes.rst:611 msgid "" ":mod:`ctypes` does not support passing unions or structures with bit-fields " "to functions by value. While this may work on 32-bit x86, it's not " "guaranteed by the library to work in the general case. Unions and " "structures with bit-fields should always be passed to functions by pointer." msgstr "" +":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " +"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " +"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " +"par la bibliothèque en général. Les unions et les structures avec des champs " +"de bits doivent toujours être passées par pointeur." -#: ../Doc/library/ctypes.rst:624 +#: library/ctypes.rst:617 msgid "Structure/union alignment and byte order" -msgstr "" +msgstr "Alignement et boutisme des structures et des unions" -#: ../Doc/library/ctypes.rst:626 +#: library/ctypes.rst:619 +#, fuzzy msgid "" "By default, Structure and Union fields are aligned in the same way the C " -"compiler does it. It is possible to override this behavior be specifying a :" +"compiler does it. It is possible to override this behavior by specifying a :" "attr:`_pack_` class attribute in the subclass definition. This must be set " "to a positive integer and specifies the maximum alignment for the fields. " "This is what ``#pragma pack(n)`` also does in MSVC." msgstr "" +"Par défaut les champs d'une *Structure* ou d'une *Union* sont alignés de la " +"même manière que le ferait un compilateur C. Ce comportement peut être " +"redéfini en définissant l'attribut :attr:`_pack_` dans la définition de la " +"sous-classe. Ce champ doit être un entier positif et vaut l'alignement " +"maximal des champs. C'est ce que fait ``#pragma pack(n)`` pour MSVC." -#: ../Doc/library/ctypes.rst:632 +#: library/ctypes.rst:625 msgid "" ":mod:`ctypes` uses the native byte order for Structures and Unions. To " "build structures with non-native byte order, you can use one of the :class:" @@ -695,92 +888,117 @@ msgid "" "`BigEndianUnion`, and :class:`LittleEndianUnion` base classes. These " "classes cannot contain pointer fields." msgstr "" +":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " +"Pour construire des structures avec un boutisme différent, utilisez les " +"classes de base :class:`BigEndianStructure`, :class:" +"`LittleEndianStructure`, :class:`BigEndianUnion` ou :class:" +"`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ pointeur." -#: ../Doc/library/ctypes.rst:642 +#: library/ctypes.rst:635 msgid "Bit fields in structures and unions" -msgstr "" +msgstr "Champs de bits dans les structures et les unions" -#: ../Doc/library/ctypes.rst:644 +#: library/ctypes.rst:637 msgid "" "It is possible to create structures and unions containing bit fields. Bit " "fields are only possible for integer fields, the bit width is specified as " "the third item in the :attr:`_fields_` tuples::" msgstr "" +"Il est possible de créer des structures et des unions contenant des champs " +"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " +"bits est défini dans le troisième champ du n-uplet :attr:`_fields_` ::" -#: ../Doc/library/ctypes.rst:662 +#: library/ctypes.rst:655 msgid "Arrays" -msgstr "" +msgstr "Tableaux" -#: ../Doc/library/ctypes.rst:664 +#: library/ctypes.rst:657 msgid "" "Arrays are sequences, containing a fixed number of instances of the same " "type." msgstr "" +"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " +"du même type." -#: ../Doc/library/ctypes.rst:666 +#: library/ctypes.rst:659 msgid "" "The recommended way to create array types is by multiplying a data type with " "a positive integer::" msgstr "" +"La meilleure façon de créer des tableaux consiste à multiplier le type de " +"donnée par un entier positif ::" -#: ../Doc/library/ctypes.rst:671 +#: library/ctypes.rst:664 msgid "" "Here is an example of a somewhat artificial data type, a structure " "containing 4 POINTs among other stuff::" msgstr "" +"Voici un exemple — un peu artificiel — d'une structure contenant, entre " +"autres, 4 POINTs ::" -#: ../Doc/library/ctypes.rst:687 +#: library/ctypes.rst:680 msgid "Instances are created in the usual way, by calling the class::" -msgstr "" +msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" -#: ../Doc/library/ctypes.rst:693 +#: library/ctypes.rst:686 msgid "" "The above code print a series of ``0 0`` lines, because the array contents " "is initialized to zeros." msgstr "" +"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " +"initialisé avec des zéros." -#: ../Doc/library/ctypes.rst:696 +#: library/ctypes.rst:689 msgid "Initializers of the correct type can also be specified::" -msgstr "" +msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" -#: ../Doc/library/ctypes.rst:712 +#: library/ctypes.rst:705 msgid "Pointers" -msgstr "" +msgstr "Pointeurs" -#: ../Doc/library/ctypes.rst:714 +#: library/ctypes.rst:707 msgid "" "Pointer instances are created by calling the :func:`pointer` function on a :" "mod:`ctypes` type::" msgstr "" +"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " +"un type :mod:`ctypes` ::" -#: ../Doc/library/ctypes.rst:722 +#: library/ctypes.rst:715 msgid "" "Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " "the object to which the pointer points, the ``i`` object above::" msgstr "" +"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " +"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" -#: ../Doc/library/ctypes.rst:729 +#: library/ctypes.rst:722 msgid "" "Note that :mod:`ctypes` does not have OOR (original object return), it " "constructs a new, equivalent object each time you retrieve an attribute::" msgstr "" +"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " +"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" -#: ../Doc/library/ctypes.rst:738 +#: library/ctypes.rst:731 msgid "" "Assigning another :class:`c_int` instance to the pointer's contents " "attribute would cause the pointer to point to the memory location where this " "is stored::" msgstr "" +"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " +"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " +"instance ::" -#: ../Doc/library/ctypes.rst:750 +#: library/ctypes.rst:743 msgid "Pointer instances can also be indexed with integers::" -msgstr "" +msgstr "Il est possible d'indexer les pointeurs par des entiers ::" -#: ../Doc/library/ctypes.rst:756 +#: library/ctypes.rst:749 msgid "Assigning to an integer index changes the pointed to value::" -msgstr "" +msgstr "Affecter à travers un indice change la valeur pointée ::" -#: ../Doc/library/ctypes.rst:765 +#: library/ctypes.rst:758 msgid "" "It is also possible to use indexes different from 0, but you must know what " "you're doing, just as in C: You can access or change arbitrary memory " @@ -788,32 +1006,46 @@ msgid "" "a C function, and you *know* that the pointer actually points to an array " "instead of a single item." msgstr "" +"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " +"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " +"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " +"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " +"tableau et non sur un seul élément." -#: ../Doc/library/ctypes.rst:771 +#: library/ctypes.rst:764 msgid "" "Behind the scenes, the :func:`pointer` function does more than simply create " "pointer instances, it has to create pointer *types* first. This is done with " "the :func:`POINTER` function, which accepts any :mod:`ctypes` type, and " "returns a new type::" msgstr "" +"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " +"une instance de pointeur ; elle doit d'abord créer un type « pointeur " +"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " +"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" -#: ../Doc/library/ctypes.rst:787 +#: library/ctypes.rst:780 msgid "" "Calling the pointer type without an argument creates a ``NULL`` pointer. " "``NULL`` pointers have a ``False`` boolean value::" msgstr "" +"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " +"pointeurs ``NULL`` s'évaluent à ``False`` ::" -#: ../Doc/library/ctypes.rst:795 +#: library/ctypes.rst:788 msgid "" ":mod:`ctypes` checks for ``NULL`` when dereferencing pointers (but " "dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" msgstr "" +":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " +"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " +"planter Python) ::" -#: ../Doc/library/ctypes.rst:814 +#: library/ctypes.rst:807 msgid "Type conversions" -msgstr "" +msgstr "Conversions de type" -#: ../Doc/library/ctypes.rst:816 +#: library/ctypes.rst:809 msgid "" "Usually, ctypes does strict type checking. This means, if you have " "``POINTER(c_int)`` in the :attr:`argtypes` list of a function or as the type " @@ -823,20 +1055,35 @@ msgid "" "instances instead of pointer types. So, for ``POINTER(c_int)``, ctypes " "accepts an array of c_int::" msgstr "" +"En général, *ctypes* respecte un typage fort. Cela signifie que si un " +"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " +"fonction ou est le type d'un attribut membre dans une définition de " +"structure, seules des instances de ce type seront valides. Cette règle " +"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " +"objets. Par exemple il est possible de passer des instances de tableau à " +"place de pointeurs, s'ils sont compatibles. Dans le cas de " +"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" -#: ../Doc/library/ctypes.rst:837 +#: library/ctypes.rst:830 msgid "" "In addition, if a function argument is explicitly declared to be a pointer " "type (such as ``POINTER(c_int)``) in :attr:`argtypes`, an object of the " "pointed type (``c_int`` in this case) can be passed to the function. ctypes " "will apply the required :func:`byref` conversion in this case automatically." msgstr "" +"De plus, si un paramètre de fonction est déclaré explicitement de type " +"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " +"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " +"*ctypes* appelle alors automatiquement la fonction de conversion :func:" +"`byref`." -#: ../Doc/library/ctypes.rst:842 +#: library/ctypes.rst:835 msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" msgstr "" +"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " +"``None`` ::" -#: ../Doc/library/ctypes.rst:849 +#: library/ctypes.rst:842 msgid "" "Sometimes you have instances of incompatible types. In C, you can cast one " "type into another type. :mod:`ctypes` provides a :func:`cast` function " @@ -844,12 +1091,18 @@ msgid "" "accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " "``values`` field, but not instances of other types::" msgstr "" +"Parfois il faut gérer des incompatibilités entre les types. En C, il est " +"possible de convertir un type en un autre. :mod:`ctypes` fournit la " +"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" +"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux de :class:" +"`c_int` comme valeur pour le champ ``values``, mais pas des instances " +"d'autres types ::" -#: ../Doc/library/ctypes.rst:861 +#: library/ctypes.rst:854 msgid "For these cases, the :func:`cast` function is handy." -msgstr "" +msgstr "C'est là que la fonction :func:`cast` intervient." -#: ../Doc/library/ctypes.rst:863 +#: library/ctypes.rst:856 msgid "" "The :func:`cast` function can be used to cast a ctypes instance into a " "pointer to a different ctypes data type. :func:`cast` takes two parameters, " @@ -857,83 +1110,118 @@ msgid "" "ctypes pointer type. It returns an instance of the second argument, which " "references the same memory block as the first argument::" msgstr "" +"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " +"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " +"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " +"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " +"du second argument, qui pointe sur le même bloc mémoire que le premier " +"argument ::" -#: ../Doc/library/ctypes.rst:874 +#: library/ctypes.rst:867 msgid "" "So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " "the structure::" msgstr "" +"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " +"structure ``Bar`` ::" -#: ../Doc/library/ctypes.rst:887 +#: library/ctypes.rst:880 msgid "Incomplete Types" -msgstr "" +msgstr "Types incomplets" -#: ../Doc/library/ctypes.rst:889 +#: library/ctypes.rst:882 msgid "" "*Incomplete Types* are structures, unions or arrays whose members are not " "yet specified. In C, they are specified by forward declarations, which are " "defined later::" msgstr "" +"Un *type incomplet* est une structure, une union ou un tableau dont les " +"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " +"avancée en C, où la définition est fournie plus tard ::" -#: ../Doc/library/ctypes.rst:900 +#: library/ctypes.rst:893 msgid "" "The straightforward translation into ctypes code would be this, but it does " "not work::" msgstr "" +"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" -#: ../Doc/library/ctypes.rst:913 +#: library/ctypes.rst:906 msgid "" "because the new ``class cell`` is not available in the class statement " "itself. In :mod:`ctypes`, we can define the ``cell`` class and set the :attr:" "`_fields_` attribute later, after the class statement::" msgstr "" +"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " +"accessible dans la définition de la classe elle-même. Dans le module :mod:" +"`ctypes`, on définit la classe ``cell`` et on définira les :attr:`_fields_` " +"plus tard, après avoir défini la classe ::" -#: ../Doc/library/ctypes.rst:925 +#: library/ctypes.rst:918 +#, fuzzy msgid "" -"Lets try it. We create two instances of ``cell``, and let them point to each " -"other, and finally follow the pointer chain a few times::" +"Let's try it. We create two instances of ``cell``, and let them point to " +"each other, and finally follow the pointer chain a few times::" msgstr "" +"Essayons. Nous créons deux instances de ``cell``, les faisons pointer l'une " +"sur l'autre et enfin nous suivons quelques maillons de la chaîne de " +"pointeurs ::" -#: ../Doc/library/ctypes.rst:946 +#: library/ctypes.rst:939 msgid "Callback functions" -msgstr "" +msgstr "Fonctions de rappel" -#: ../Doc/library/ctypes.rst:948 +#: library/ctypes.rst:941 msgid "" ":mod:`ctypes` allows creating C callable function pointers from Python " "callables. These are sometimes called *callback functions*." msgstr "" +":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " +"appelables Python. On les appelle parfois *fonctions de rappel*." -#: ../Doc/library/ctypes.rst:951 +#: library/ctypes.rst:944 msgid "" "First, you must create a class for the callback function. The class knows " "the calling convention, the return type, and the number and types of " "arguments this function will receive." msgstr "" +"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " +"connaît la convention d'appel, le type de retour ainsi que le nombre et le " +"type de paramètres que la fonction accepte." -#: ../Doc/library/ctypes.rst:955 +#: library/ctypes.rst:948 msgid "" "The :func:`CFUNCTYPE` factory function creates types for callback functions " "using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " "factory function creates types for callback functions using the ``stdcall`` " "calling convention." msgstr "" +"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " +"suivent la convention d'appel ``cdecl``. En Windows, c'est la fabrique :func:" +"`WINFUNCTYPE` qui crée un type pour les fonctions de rappel qui suivent la " +"convention d'appel ``stdcall``." -#: ../Doc/library/ctypes.rst:960 +#: library/ctypes.rst:953 msgid "" "Both of these factory functions are called with the result type as first " "argument, and the callback functions expected argument types as the " "remaining arguments." msgstr "" +"Le premier paramètre de ces deux fonctions est le type de retour, et les " +"suivants sont les types des arguments qu'attend la fonction de rappel." -#: ../Doc/library/ctypes.rst:964 +#: library/ctypes.rst:957 msgid "" "I will present an example here which uses the standard C library's :c:func:" "`qsort` function, that is used to sort items with the help of a callback " "function. :c:func:`qsort` will be used to sort an array of integers::" msgstr "" +"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " +"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " +"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " +"ordonner un tableau d'entiers ::" -#: ../Doc/library/ctypes.rst:974 +#: library/ctypes.rst:967 msgid "" ":func:`qsort` must be called with a pointer to the data to sort, the number " "of items in the data array, the size of one item, and a pointer to the " @@ -942,45 +1230,64 @@ msgid "" "is smaller than the second, a zero if they are equal, and a positive integer " "otherwise." msgstr "" +":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " +"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " +"vers le comparateur, c.-à-d. la fonction de rappel. Cette fonction sera " +"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " +"négatif si le premier élément est plus petit que le second, zéro s'ils sont " +"égaux et un entier positif sinon." -#: ../Doc/library/ctypes.rst:980 +#: library/ctypes.rst:973 msgid "" "So our callback function receives pointers to integers, and must return an " "integer. First we create the ``type`` for the callback function::" msgstr "" +"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " +"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" -#: ../Doc/library/ctypes.rst:986 +#: library/ctypes.rst:979 msgid "" "To get started, here is a simple callback that shows the values it gets " "passed::" msgstr "" +"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " +"qu'on lui passe ::" -#: ../Doc/library/ctypes.rst:996 +#: library/ctypes.rst:989 msgid "The result::" -msgstr "" +msgstr "Résultat ::" -#: ../Doc/library/ctypes.rst:1006 +#: library/ctypes.rst:999 msgid "Now we can actually compare the two items and return a useful result::" msgstr "" +"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " +"utile ::" -#: ../Doc/library/ctypes.rst:1021 +#: library/ctypes.rst:1014 msgid "As we can easily check, our array is sorted now::" msgstr "" +"Et comme il est facile de le voir, notre tableau est désormais classé ::" -#: ../Doc/library/ctypes.rst:1028 +#: library/ctypes.rst:1021 msgid "" "The function factories can be used as decorator factories, so we may as well " "write::" msgstr "" +"Ces fonctions peuvent aussi être utilisées comme des décorateurs ; il est " +"donc possible d'écrire ::" -#: ../Doc/library/ctypes.rst:1046 +#: library/ctypes.rst:1039 msgid "" "Make sure you keep references to :func:`CFUNCTYPE` objects as long as they " "are used from C code. :mod:`ctypes` doesn't, and if you don't, they may be " "garbage collected, crashing your program when a callback is made." msgstr "" +"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " +"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " +"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " +"libérer, ce qui fera planter votre programme quand un appel sera fait." -#: ../Doc/library/ctypes.rst:1050 +#: library/ctypes.rst:1043 msgid "" "Also, note that if the callback function is called in a thread created " "outside of Python's control (e.g. by the foreign code that calls the " @@ -989,101 +1296,142 @@ msgid "" "with :class:`threading.local` will *not* survive across different callbacks, " "even when those calls are made from the same C thread." msgstr "" +"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " +"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " +"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " +"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " +"implique que les valeurs stockées avec :class:`threading.local` ne seront " +"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " +"même fil d'exécution C." -#: ../Doc/library/ctypes.rst:1060 +#: library/ctypes.rst:1053 msgid "Accessing values exported from dlls" -msgstr "" +msgstr "Accès aux variables exportées depuis une DLL" -#: ../Doc/library/ctypes.rst:1062 +#: library/ctypes.rst:1055 msgid "" "Some shared libraries not only export functions, they also export variables. " "An example in the Python library itself is the :c:data:`Py_OptimizeFlag`, an " "integer set to 0, 1, or 2, depending on the :option:`-O` or :option:`-OO` " "flag given on startup." msgstr "" +"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " +"exportent aussi des variables. Par exemple, la bibliothèque Python exporte :" +"c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que l'option :" +"option:`-O` ou :option:`-OO` soit donnée au démarrage." -#: ../Doc/library/ctypes.rst:1067 +#: library/ctypes.rst:1060 msgid "" ":mod:`ctypes` can access values like this with the :meth:`in_dll` class " "methods of the type. *pythonapi* is a predefined symbol giving access to " "the Python C api::" msgstr "" +":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de classe :" +"meth:`in_dll` du type considéré. *pythonapi* est un symbole prédéfini qui " +"donne accès à l'API C Python ::" -#: ../Doc/library/ctypes.rst:1076 +#: library/ctypes.rst:1069 msgid "" "If the interpreter would have been started with :option:`-O`, the sample " "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " "have been specified." msgstr "" +"Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " +"``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." -#: ../Doc/library/ctypes.rst:1080 +#: library/ctypes.rst:1073 msgid "" "An extended example which also demonstrates the use of pointers accesses " "the :c:data:`PyImport_FrozenModules` pointer exported by Python." msgstr "" +"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " +"exemple complet de l'utilisation de pointeurs." -#: ../Doc/library/ctypes.rst:1083 +#: library/ctypes.rst:1076 msgid "Quoting the docs for that value:" -msgstr "" +msgstr "Citons la documentation :" -#: ../Doc/library/ctypes.rst:1085 +#: library/ctypes.rst:1078 msgid "" "This pointer is initialized to point to an array of :c:type:`struct _frozen` " -"records, terminated by one whose members are all *NULL* or zero. When a " +"records, terminated by one whose members are all ``NULL`` or zero. When a " "frozen module is imported, it is searched in this table. Third-party code " "could play tricks with this to provide a dynamically created collection of " "frozen modules." msgstr "" +"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées de :" +"c:type:`struct _frozen`, dont tous les membres de la dernière valent " +"``NULL`` ou zéro. Quand un module gelé est importé, il est cherché dans ce " +"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " +"collection de module gelés." -#: ../Doc/library/ctypes.rst:1090 +#: library/ctypes.rst:1083 msgid "" "So manipulating this pointer could even prove useful. To restrict the " "example size, we show only how this table can be read with :mod:`ctypes`::" msgstr "" +"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " +"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " +"avec :mod:`ctypes` ::" -#: ../Doc/library/ctypes.rst:1102 +#: library/ctypes.rst:1095 msgid "" "We have defined the :c:type:`struct _frozen` data type, so we can get the " "pointer to the table::" msgstr "" +"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " +"récupérer le pointeur vers le tableau ::" -#: ../Doc/library/ctypes.rst:1109 +#: library/ctypes.rst:1102 msgid "" "Since ``table`` is a ``pointer`` to the array of ``struct_frozen`` records, " "we can iterate over it, but we just have to make sure that our loop " "terminates, because pointers have no size. Sooner or later it would probably " "crash with an access violation or whatever, so it's better to break out of " -"the loop when we hit the NULL entry::" +"the loop when we hit the ``NULL`` entry::" msgstr "" +"Puisque ``table`` est un ``pointer`` vers un tableau d'entrées de " +"``struct_frozen``, il est possible d'itérer dessus, mais il faut être " +"certain que la boucle se termine, car les pointeurs n'ont pas de taille. Tôt " +"ou tard, il planterait probablement avec une erreur de segmentation ou " +"autre, donc mieux vaut sortir de la boucle quand on lit l'entrée ``NULL`` ::" -#: ../Doc/library/ctypes.rst:1127 +#: library/ctypes.rst:1120 msgid "" "The fact that standard Python has a frozen module and a frozen package " -"(indicated by the negative size member) is not well known, it is only used " -"for testing. Try it out with ``import __hello__`` for example." +"(indicated by the negative ``size`` member) is not well known, it is only " +"used for testing. Try it out with ``import __hello__`` for example." msgstr "" +"Le fait que le standard Python possède un module et un paquet figés " +"(indiqués par la valeur négative du membre *size*) est peu connu, cela ne " +"sert qu'aux tests. Essayez avec ``import __hello__`` par exemple." -#: ../Doc/library/ctypes.rst:1135 +#: library/ctypes.rst:1128 msgid "Surprises" -msgstr "Surprises" +msgstr "Pièges" -#: ../Doc/library/ctypes.rst:1137 +#: library/ctypes.rst:1130 msgid "" "There are some edges in :mod:`ctypes` where you might expect something other " "than what actually happens." msgstr "" +"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " +"résultat différent de la réalité." -#: ../Doc/library/ctypes.rst:1140 +#: library/ctypes.rst:1133 msgid "Consider the following example::" -msgstr "" +msgstr "Examinons l'exemple suivant ::" -#: ../Doc/library/ctypes.rst:1160 +#: library/ctypes.rst:1153 msgid "" "Hm. We certainly expected the last statement to print ``3 4 1 2``. What " "happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" msgstr "" +"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " +"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = rc." +"b, rc.a`` ci-dessus sont les suivantes ::" -#: ../Doc/library/ctypes.rst:1168 +#: library/ctypes.rst:1161 msgid "" "Note that ``temp0`` and ``temp1`` are objects still using the internal " "buffer of the ``rc`` object above. So executing ``rc.a = temp0`` copies the " @@ -1091,27 +1439,38 @@ msgid "" "the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " "have the expected effect." msgstr "" +"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " +"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " +"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " +"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " +"n'a pas l'effet escompté." -#: ../Doc/library/ctypes.rst:1174 +#: library/ctypes.rst:1167 msgid "" "Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays " "doesn't *copy* the sub-object, instead it retrieves a wrapper object " "accessing the root-object's underlying buffer." msgstr "" +"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " +"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " +"accède au tampon sous-jacent de l'objet initial." -#: ../Doc/library/ctypes.rst:1178 +#: library/ctypes.rst:1171 msgid "" "Another example that may behave differently from what one would expect is " "this::" msgstr "" +"Un autre exemple de comportement *a priori* inattendu est le suivant ::" -#: ../Doc/library/ctypes.rst:1190 +#: library/ctypes.rst:1183 msgid "" "Objects instantiated from :class:`c_char_p` can only have their value set to " "bytes or integers." msgstr "" +"La valeur d'une instance de :class:`c_char_p` ne peut être initialisée " +"qu'avec un octet ou un entier." -#: ../Doc/library/ctypes.rst:1193 +#: library/ctypes.rst:1186 msgid "" "Why is it printing ``False``? ctypes instances are objects containing a " "memory block plus some :term:`descriptor`\\s accessing the contents of the " @@ -1119,17 +1478,24 @@ msgid "" "object itself, instead the ``contents`` of the object is stored. Accessing " "the contents again constructs a new Python object each time!" msgstr "" +"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " +"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " +"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " +"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " +"``contents`` crée un nouvel objet Python à chaque fois !" -#: ../Doc/library/ctypes.rst:1203 +#: library/ctypes.rst:1196 msgid "Variable-sized data types" -msgstr "" +msgstr "Types de données à taille flottante" -#: ../Doc/library/ctypes.rst:1205 +#: library/ctypes.rst:1198 msgid "" ":mod:`ctypes` provides some support for variable-sized arrays and structures." msgstr "" +":mod:`ctypes` assure la prise en charge des tableaux et des structures à " +"taille flottante." -#: ../Doc/library/ctypes.rst:1207 +#: library/ctypes.rst:1200 msgid "" "The :func:`resize` function can be used to resize the memory buffer of an " "existing ctypes object. The function takes the object as first argument, " @@ -1137,36 +1503,52 @@ msgid "" "cannot be made smaller than the natural memory block specified by the " "objects type, a :exc:`ValueError` is raised if this is tried::" msgstr "" +"La fonction :func:`resize` permet de redimensionner la taille du tampon " +"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " +"premier argument et la taille en octets désirée comme second. La taille du " +"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " +"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " +"cas ::" -#: ../Doc/library/ctypes.rst:1227 +#: library/ctypes.rst:1220 msgid "" "This is nice and fine, but how would one access the additional elements " "contained in this array? Since the type still only knows about 4 elements, " "we get errors accessing other elements::" msgstr "" +"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " +"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " +"l'on accède aux suivants ::" -#: ../Doc/library/ctypes.rst:1239 +#: library/ctypes.rst:1232 msgid "" "Another way to use variable-sized data types with :mod:`ctypes` is to use " "the dynamic nature of Python, and (re-)define the data type after the " "required size is already known, on a case by case basis." msgstr "" +"Une autre approche pour utiliser des types de donnée à taille flottante " +"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " +"dynamique de Python et de (re)définir le type de donnée une fois que la " +"taille demandée est connue, au cas-par-cas." -#: ../Doc/library/ctypes.rst:1247 +#: library/ctypes.rst:1240 msgid "ctypes reference" -msgstr "" +msgstr "Référence du module" -#: ../Doc/library/ctypes.rst:1253 +#: library/ctypes.rst:1246 msgid "Finding shared libraries" -msgstr "" +msgstr "Recherche de bibliothèques partagées" -#: ../Doc/library/ctypes.rst:1255 +#: library/ctypes.rst:1248 msgid "" "When programming in a compiled language, shared libraries are accessed when " "compiling/linking a program, and when the program is run." msgstr "" +"Les langages compilés ont besoin d'accéder aux bibliothèques partagées au " +"moment de la compilation, de l'édition de liens et pendant l'exécution du " +"programme." -#: ../Doc/library/ctypes.rst:1258 +#: library/ctypes.rst:1251 msgid "" "The purpose of the :func:`find_library` function is to locate a library in a " "way similar to what the compiler or runtime loader does (on platforms with " @@ -1174,82 +1556,146 @@ msgid "" "while the ctypes library loaders act like when a program is run, and call " "the runtime loader directly." msgstr "" +"Le but de la fonction :func:`find_library` est de trouver une bibliothèque " +"de la même façon que le ferait le compilateur ou le chargeur (sur les plates-" +"formes avec plusieurs versions de la même bibliothèque, la plus récente est " +"chargée), alors que les chargeurs de bibliothèques de *ctypes* se comportent " +"de la même façon qu'un programme qui s'exécute, et appellent directement le " +"chargeur." -#: ../Doc/library/ctypes.rst:1264 +#: library/ctypes.rst:1257 msgid "" "The :mod:`ctypes.util` module provides a function which can help to " "determine the library to load." msgstr "" +"Le module :mod:`ctypes.util` fournit une fonction pour déterminer quelle " +"bibliothèque charger." -#: ../Doc/library/ctypes.rst:1272 +#: library/ctypes.rst:1265 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like *lib*, suffix like ``.so``, ``.dylib`` or version " "number (this is the form used for the posix linker option :option:`!-l`). " "If no library can be found, returns ``None``." msgstr "" +"Tente de trouver une bibliothèque et en renvoie le chemin. *name* est le nom " +"de la bibliothèque sans préfixe — comme *lib* — ni suffixe — comme ``.so``, " +"``.dylib`` ou un numéro de version (c.-à-d. la même forme que l'option POSIX " +"de l'éditeur de lien :option:`!-l`). Si la fonction ne parvient pas à " +"trouver de bibliothèque, elle renvoie ``None``." -#: ../Doc/library/ctypes.rst:1277 ../Doc/library/ctypes.rst:1887 +#: library/ctypes.rst:1918 msgid "The exact functionality is system dependent." -msgstr "" +msgstr "Le mode opératoire exact dépend du système." -#: ../Doc/library/ctypes.rst:1279 +#: library/ctypes.rst:1272 msgid "" "On Linux, :func:`find_library` tries to run external programs (``/sbin/" "ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. It " "returns the filename of the library file." msgstr "" +"Sous Linux, :func:`find_library` essaye de lancer des programmes externes " +"(``/sbin/ldconfig``, ``gcc``, ``objdump`` et ``ld``) pour trouver la " +"bibliothèque. Elle renvoie le nom de la bibliothèque sur le disque." -#: ../Doc/library/ctypes.rst:1283 +#: library/ctypes.rst:1276 msgid "" "On Linux, the value of the environment variable ``LD_LIBRARY_PATH`` is used " "when searching for libraries, if a library cannot be found by any other " "means." msgstr "" +"Sous Linux, si les autres moyens échouent, la fonction utilise la variable " +"d'environnement ``LD_LIBRARY_PATH`` pour trouver la bibliothèque." -#: ../Doc/library/ctypes.rst:1287 +#: library/ctypes.rst:1280 msgid "Here are some examples::" -msgstr "" +msgstr "Voici quelques exemples :" -#: ../Doc/library/ctypes.rst:1298 +#: library/ctypes.rst:1291 msgid "" "On OS X, :func:`find_library` tries several predefined naming schemes and " "paths to locate the library, and returns a full pathname if successful::" msgstr "" +"Sous OS X, :func:`find_library` regarde dans des chemins et conventions de " +"chemins prédéfinies pour trouver la bibliothèque et en renvoie le chemin " +"complet si elle la trouve :" -#: ../Doc/library/ctypes.rst:1312 +#: library/ctypes.rst:1305 msgid "" "On Windows, :func:`find_library` searches along the system search path, and " "returns the full pathname, but since there is no predefined naming scheme a " "call like ``find_library(\"c\")`` will fail and return ``None``." msgstr "" +"Sous Windows, :func:`find_library` examine le chemin de recherche du système " +"et renvoie le chemin complet de la bibliothèque, mais comme il n'existe pas " +"de convention de nommage, des appels comme ``find_library(\"c\")`` échouent " +"et renvoient ``None``." -#: ../Doc/library/ctypes.rst:1316 +#: library/ctypes.rst:1309 msgid "" "If wrapping a shared library with :mod:`ctypes`, it *may* be better to " "determine the shared library name at development time, and hardcode that " "into the wrapper module instead of using :func:`find_library` to locate the " "library at runtime." msgstr "" +"Si vous encapsulez une bibliothèque partagée avec :mod:`ctypes`, il est " +"*probablement* plus judicieux de déterminer le chemin de cette bibliothèque " +"lors du développement et de l'écrire en dur dans le module d'encapsulation, " +"plutôt que d'utiliser :func:`find_library` pour la trouver lors de " +"l'exécution." -#: ../Doc/library/ctypes.rst:1324 +#: library/ctypes.rst:1317 msgid "Loading shared libraries" -msgstr "" +msgstr "Chargement des bibliothèques partagées" -#: ../Doc/library/ctypes.rst:1326 +#: library/ctypes.rst:1319 msgid "" "There are several ways to load shared libraries into the Python process. " "One way is to instantiate one of the following classes:" msgstr "" +"Il y a plusieurs moyens de charger une bibliothèque partagée dans un " +"processus Python. L'un d'entre eux consiste à instancier une des classes " +"suivantes :" -#: ../Doc/library/ctypes.rst:1332 +#: library/ctypes.rst:1325 msgid "" "Instances of this class represent loaded shared libraries. Functions in " "these libraries use the standard C calling convention, and are assumed to " "return :c:type:`int`." msgstr "" +"Une instance de cette classe représente une bibliothèque partagée déjà " +"chargée. Les fonctions de cette bibliothèque utilisent la convention d'appel " +"C standard et doivent renvoyer un :c:type:`int`." + +#: library/ctypes.rst:1329 +msgid "" +"On Windows creating a :class:`CDLL` instance may fail even if the DLL name " +"exists. When a dependent DLL of the loaded DLL is not found, a :exc:" +"`OSError` error is raised with the message *\"[WinError 126] The specified " +"module could not be found\".* This error message does not contain the name " +"of the missing DLL because the Windows API does not return this information " +"making this error hard to diagnose. To resolve this error and determine " +"which DLL is not found, you need to find the list of dependent DLLs and " +"determine which one is not found using Windows debugging and tracing tools." +msgstr "" +"En Windows, créer une instance de :class:`CDLL` peut échouer, même si une " +"DLL du bon nom existe. Quand une des dépendances de la DLL à charger ne peut " +"pas être trouvée, une :exc:`OSError` est levée avec le message *\"[WinError " +"126] The specified module could not be found\".* Ce message d'erreur ne " +"contient pas le nom de la DLL manquante car l'API Windows ne fournit pas " +"cette information. Cela rend l'erreur délicate à analyser ; pour la " +"résoudre, il faut lister toutes les dépendances de la DLL et trouver celle " +"qui manque en utilisant des outils de débogage et de traçage Windows." + +#: library/ctypes.rst:1341 +msgid "" +"`Microsoft DUMPBIN tool `_ -- A tool to find DLL dependents." +msgstr "" +"`DUMPBIN `_ — un " +"utilitaire Microsoft pour lister les dépendances d'une DLL." -#: ../Doc/library/ctypes.rst:1339 +#: library/ctypes.rst:1347 msgid "" "Windows only: Instances of this class represent loaded shared libraries, " "functions in these libraries use the ``stdcall`` calling convention, and are " @@ -1258,44 +1704,66 @@ msgid "" "failed or succeeded, together with additional error code. If the return " "value signals a failure, an :class:`OSError` is automatically raised." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall*, et doivent renvoyer un code :" +"class:`HRESULT` (propre à Windows). Les valeurs de :class:`HRESULT` " +"contiennent des informations précisant si l'appel de la fonction a échoué ou " +"s'il a réussi, ainsi qu'un code d'erreur supplémentaire. Si la valeur de " +"retour signale un échec, une :class:`OSError` est levée automatiquement." -#: ../Doc/library/ctypes.rst:1346 +#: library/ctypes.rst:1354 msgid ":exc:`WindowsError` used to be raised." -msgstr "" +msgstr ":exc:`WindowsError` était levée auparavant." -#: ../Doc/library/ctypes.rst:1352 +#: library/ctypes.rst:1360 msgid "" "Windows only: Instances of this class represent loaded shared libraries, " "functions in these libraries use the ``stdcall`` calling convention, and are " "assumed to return :c:type:`int` by default." msgstr "" +"En Windows seulement : une instance de cette classe représente une " +"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " +"utilisent la convention d'appel *stdcall* et doivent renvoyer par défaut un :" +"c:type:`int`." -#: ../Doc/library/ctypes.rst:1356 +#: library/ctypes.rst:1364 msgid "" "On Windows CE only the standard calling convention is used, for convenience " "the :class:`WinDLL` and :class:`OleDLL` use the standard calling convention " "on this platform." msgstr "" +"Sous Windows CE, seule la convention d'appel standard est utilisée. Pour des " +"raisons pratiques, :class:`WinDLL` et :class:`OleDLL` utilisent la " +"convention d'appel standard sur cette plate-forme." -#: ../Doc/library/ctypes.rst:1360 +#: library/ctypes.rst:1368 msgid "" "The Python :term:`global interpreter lock` is released before calling any " "function exported by these libraries, and reacquired afterwards." msgstr "" +"Le :term:`verrou global de l'interpréteur ` Python " +"est relâché avant chaque appel d'une fonction exposée par ces bibliothèques " +"et ré-activé après." -#: ../Doc/library/ctypes.rst:1366 +#: library/ctypes.rst:1374 msgid "" "Instances of this class behave like :class:`CDLL` instances, except that the " "Python GIL is *not* released during the function call, and after the " "function execution the Python error flag is checked. If the error flag is " "set, a Python exception is raised." msgstr "" +"Cette classe est identique à :class:`CDLL`, à ceci près que le GIL n'est " +"*pas* relâché pendant l'appel de la fonction, et, qu'au terme de l'appel, le " +"drapeau d'erreur Python est vérifié. Si celui-ci est activé, une exception " +"Python est levée." -#: ../Doc/library/ctypes.rst:1371 +#: library/ctypes.rst:1379 msgid "Thus, this is only useful to call Python C api functions directly." msgstr "" +"Donc, cette classe ne sert qu'à appeler les fonctions de l'API C de Python." -#: ../Doc/library/ctypes.rst:1373 +#: library/ctypes.rst:1381 msgid "" "All these classes can be instantiated by calling them with at least one " "argument, the pathname of the shared library. If you have an existing " @@ -1304,16 +1772,26 @@ msgid "" "``LoadLibrary`` function is used to load the library into the process, and " "to get a handle to it." msgstr "" +"Toutes ces classes peuvent être instanciées en les appelant avec le chemin " +"de la bibliothèque partagée comme unique argument. Il est aussi possible de " +"passer un lien vers une bibliothèque déjà chargée en utilisant le paramètre " +"``handle``. Sinon, les fonctions ``dlopen`` ou ``LoadLibrary`` de la plate-" +"forme sous-jacente permettent de charger la bibliothèque dans le processus, " +"et d'en obtenir un lien." -#: ../Doc/library/ctypes.rst:1380 +#: library/ctypes.rst:1388 msgid "" "The *mode* parameter can be used to specify how the library is loaded. For " "details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is " "ignored. On posix systems, RTLD_NOW is always added, and is not " "configurable." msgstr "" +"Le mode de chargement de la bibliothèque est défini par le paramètre *mode*. " +"Pour plus de détails, référez-vous à l'entrée :manpage:`dlopen(3)` du " +"manuel. En Windows, *mode* est ignoré. Sur les systèmes POSIX, RTLD_NOW y " +"est toujours ajouté. Ceci n'est pas configurable." -#: ../Doc/library/ctypes.rst:1385 +#: library/ctypes.rst:1393 msgid "" "The *use_errno* parameter, when set to true, enables a ctypes mechanism that " "allows accessing the system :data:`errno` error number in a safe way. :mod:" @@ -1322,15 +1800,25 @@ msgid "" "the :data:`errno` value before the function call is swapped with the ctypes " "private copy, the same happens immediately after the function call." msgstr "" +"Le paramètre *use_errno*, lorsque défini à vrai, active un mécanisme de " +"*ctypes* qui permet d'accéder au numéro d'erreur :data:`errno` du système de " +"manière sécurisée. :mod:`ctypes` maintient une copie de :data:`errno` du " +"système dans chaque fil d'exécution. Si vous appelez des fonctions externes " +"créées avec ``use_errno=True``, la valeur de :data:`errno` avant l'appel de " +"la fonction est échangée avec la copie privée de *ctypes*. La même chose se " +"produit juste après l'appel de la fonction." -#: ../Doc/library/ctypes.rst:1392 +#: library/ctypes.rst:1400 msgid "" "The function :func:`ctypes.get_errno` returns the value of the ctypes " "private copy, and the function :func:`ctypes.set_errno` changes the ctypes " "private copy to a new value and returns the former value." msgstr "" +"La fonction :func:`ctypes.get_errno` renvoie la valeur de la copie privée de " +"*ctypes*. La fonction :func:`ctypes.set_errno` affecte une nouvelle valeur à " +"la copie privée et renvoie l'ancienne valeur." -#: ../Doc/library/ctypes.rst:1396 +#: library/ctypes.rst:1404 msgid "" "The *use_last_error* parameter, when set to true, enables the same mechanism " "for the Windows error code which is managed by the :func:`GetLastError` and :" @@ -1338,8 +1826,13 @@ msgid "" "and :func:`ctypes.set_last_error` are used to request and change the ctypes " "private copy of the windows error code." msgstr "" +"Définir le paramètre *use_last_error* à vrai active le même mécanisme pour " +"le code d'erreur de Windows qui est géré par les fonctions :func:" +"`GetLastError` et :func:`SetLastError` de l'API Windows ; :func:`ctypes." +"get_last_error` et :func:`ctypes.set_last_error` servent à obtenir et " +"modifier la copie privée *ctypes* de ce code d'erreur." -#: ../Doc/library/ctypes.rst:1402 +#: library/ctypes.rst:1410 msgid "" "The *winmode* parameter is used on Windows to specify how the library is " "loaded (since *mode* is ignored). It takes any value that is valid for the " @@ -1348,30 +1841,44 @@ msgid "" "such as DLL hijacking. Passing the full path to the DLL is the safest way to " "ensure the correct library and dependencies are loaded." msgstr "" +"Sous Windows, le paramètre *winmode* définit comment charger la bibliothèque " +"(puisque *mode* est ignoré). Il accepte toute valeur compatible avec le " +"drapeau ``LoadLibraryEx`` de l'API Win32. Lorsqu'il est omis, les drapeaux " +"par défaut sont ceux qui chargent la DLL de la manière la plus sécurisée " +"possible, afin d'éviter des problèmes comme le détournement de DLL. Passer " +"le chemin complet à la DLL reste le moyen le plus sûr de s'assurer que la " +"bonne bibliothèque et les bonnes dépendances sont chargées." -#: ../Doc/library/ctypes.rst:1409 +#: library/ctypes.rst:1417 msgid "Added *winmode* parameter." -msgstr "" +msgstr "Ajout du paramètre *winmode*." -#: ../Doc/library/ctypes.rst:1416 +#: library/ctypes.rst:1424 msgid "" "Flag to use as *mode* parameter. On platforms where this flag is not " "available, it is defined as the integer zero." msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut zéro sur les plates-formes où " +"ce drapeau n'est pas disponible." -#: ../Doc/library/ctypes.rst:1423 +#: library/ctypes.rst:1431 msgid "" "Flag to use as *mode* parameter. On platforms where this is not available, " "it is the same as *RTLD_GLOBAL*." msgstr "" +"Valeur possible pour le paramètre *mode*. Vaut *RTLD_GLOBAL* sur les plates-" +"formes où ce drapeau n'est pas disponible." -#: ../Doc/library/ctypes.rst:1430 +#: library/ctypes.rst:1438 msgid "" "The default mode which is used to load shared libraries. On OSX 10.3, this " "is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." msgstr "" +"Mode de chargement par défaut des bibliothèques partagées. Vaut " +"*RTLD_GLOBAL* sur OSX 10.3 et *RTLD_LOCAL* sur les autres systèmes " +"d'exploitation." -#: ../Doc/library/ctypes.rst:1433 +#: library/ctypes.rst:1441 msgid "" "Instances of these classes have no public methods. Functions exported by " "the shared library can be accessed as attributes or by index. Please note " @@ -1379,113 +1886,165 @@ msgid "" "therefore accessing it repeatedly returns the same object each time. On the " "other hand, accessing it through an index returns a new object each time::" msgstr "" +"Les instances de ces classes n'ont pas de méthodes publiques ; on accède aux " +"fonctions de la bibliothèque partagée par attribut ou par indiçage. Notez " +"que les résultats des accès par attribut sont mis en cache, et donc des " +"accès consécutifs renvoient à chaque fois le même objet. Accéder à une " +"fonction par indice renvoie cependant chaque fois un nouvel objet :" -#: ../Doc/library/ctypes.rst:1446 +#: library/ctypes.rst:1454 msgid "" "The following public attributes are available, their name starts with an " "underscore to not clash with exported function names:" msgstr "" +"Les attributs publics suivants sont disponibles, leur nom commence par un " +"tiret bas pour éviter les conflits avec les noms des fonctions exportées :" -#: ../Doc/library/ctypes.rst:1452 +#: library/ctypes.rst:1460 msgid "The system handle used to access the library." -msgstr "" +msgstr "Le lien système d'accès à la bibliothèque." -#: ../Doc/library/ctypes.rst:1457 +#: library/ctypes.rst:1465 msgid "The name of the library passed in the constructor." -msgstr "" +msgstr "Nom de la bibliothèque donné au constructeur." -#: ../Doc/library/ctypes.rst:1459 +#: library/ctypes.rst:1467 msgid "" "Shared libraries can also be loaded by using one of the prefabricated " "objects, which are instances of the :class:`LibraryLoader` class, either by " "calling the :meth:`LoadLibrary` method, or by retrieving the library as " "attribute of the loader instance." msgstr "" +"Il est possible de charger une bibliothèque partagée soit en utilisant une " +"instance de la classe :class:`LibraryLoader`, soit en appelant la méthode :" +"meth:`LoadLibrary`, soit en récupérant la bibliothèque comme attribut de " +"l'instance du chargeur." -#: ../Doc/library/ctypes.rst:1467 +#: library/ctypes.rst:1475 msgid "" "Class which loads shared libraries. *dlltype* should be one of the :class:" "`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." msgstr "" +"Classe pour charger une bibliothèque partagée. *dlltype* doit être de type :" +"class:`CDLL`, :class:`PyDLL`, :class:`WinDLL` ou :class:`OleDLL`." -#: ../Doc/library/ctypes.rst:1470 +#: library/ctypes.rst:1478 msgid "" ":meth:`__getattr__` has special behavior: It allows loading a shared library " "by accessing it as attribute of a library loader instance. The result is " "cached, so repeated attribute accesses return the same library each time." msgstr "" +":meth:`__getattr__` a un comportement particulier : elle charge une " +"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis " +"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque " +"fois." -#: ../Doc/library/ctypes.rst:1476 +#: library/ctypes.rst:1484 msgid "" "Load a shared library into the process and return it. This method always " "returns a new instance of the library." msgstr "" +"Charge une bibliothèque partagée dans le processus et la renvoie. Cette " +"méthode renvoie toujours une nouvelle instance de la bibliothèque." -#: ../Doc/library/ctypes.rst:1480 +#: library/ctypes.rst:1488 msgid "These prefabricated library loaders are available:" -msgstr "" +msgstr "Plusieurs chargeurs sont fournis :" -#: ../Doc/library/ctypes.rst:1485 +#: library/ctypes.rst:1493 msgid "Creates :class:`CDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`CDLL`." -#: ../Doc/library/ctypes.rst:1491 +#: library/ctypes.rst:1499 msgid "Windows only: Creates :class:`WinDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." -#: ../Doc/library/ctypes.rst:1497 +#: library/ctypes.rst:1505 msgid "Windows only: Creates :class:`OleDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." -#: ../Doc/library/ctypes.rst:1503 +#: library/ctypes.rst:1511 msgid "Creates :class:`PyDLL` instances." -msgstr "" +msgstr "Pour créer des instances de :class:`PyDLL`." -#: ../Doc/library/ctypes.rst:1506 +#: library/ctypes.rst:1514 msgid "" "For accessing the C Python api directly, a ready-to-use Python shared " "library object is available:" -msgstr "" +msgstr "Il existe un moyen rapide d'accéder directement à l'API C Python :" -#: ../Doc/library/ctypes.rst:1512 +#: library/ctypes.rst:1520 msgid "" "An instance of :class:`PyDLL` that exposes Python C API functions as " "attributes. Note that all these functions are assumed to return C :c:type:" "`int`, which is of course not always the truth, so you have to assign the " "correct :attr:`restype` attribute to use these functions." msgstr "" +"Une instance de :class:`PyDLL` dont les attributs sont les fonctions " +"exportées par l'API C Python. Toutes ces fonctions sont supposées renvoyer " +"un :c:type:`int` C, ce qui n'est bien entendu pas toujours le cas. Il faut " +"donc définir vous-même le bon attribut :attr:`restype` pour pouvoir les " +"utiliser." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlopen`` with argument " "``name``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``ctypes.dlopen`` avec " +"l'argument ``name``." -#: ../Doc/library/ctypes.rst:1519 +#: library/ctypes.rst:1527 msgid "" "Loading a library through any of these objects raises an :ref:`auditing " "event ` ``ctypes.dlopen`` with string argument ``name``, the name " "used to load the library." msgstr "" +"Charger une bibliothèque à l'aide d'un de ces objets avec en argument " +"``name``, le nom de la bibliothèque (une chaîne de caractères), lève un :ref:" +"`évènement d'audit ` ``ctypes.dlopen``." -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.dlsym`` with arguments " "``library``, ``name``." msgstr "" -#: ../Doc/library/ctypes.rst:1525 +# "Lève un :ref:`évènement d'audit ` ``ctypes.dlsym`` avec " +# "``library`` et ``name`` comme arguments." +#: library/ctypes.rst:1533 msgid "" "Accessing a function on a loaded library raises an auditing event ``ctypes." "dlsym`` with arguments ``library`` (the library object) and ``name`` (the " "symbol's name as a string or integer)." msgstr "" +"Accéder à une fonction d'une bibliothèque lève un évènement d'audit ``ctypes." +"dlsym`` avec ``library`` (l'objet bibliothèque) et ``name`` (le nom du " +"symbole — une chaîne de caractères ou un entier) comme arguments." -#: ../Doc/library/ctypes.rst:1532 -msgid "Foreign functions" +#: library/ctypes.rst:None +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.dlsym/handle`` with " +"arguments ``handle``, ``name``." +msgstr "" + +# "Lève un :ref:`évènement d'audit ` ``ctypes.dlsym/handle`` avec " +# "``handle`` et ``name`` comme arguments." +#: library/ctypes.rst:1539 +msgid "" +"In cases when only the library handle is available rather than the object, " +"accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " +"arguments ``handle`` (the raw library handle) and ``name``." msgstr "" +"Si seul le lien sur la bibliothèque, et non l'objet, est disponible, accéder " +"à une fonction lève l'évènement d'audit ``ctypes.dlsym/handle`` avec " +"``handle`` (le lien vers la bibliothèque) et ``name`` comme arguments." + +#: library/ctypes.rst:1546 +msgid "Foreign functions" +msgstr "Fonctions externes" -#: ../Doc/library/ctypes.rst:1534 +#: library/ctypes.rst:1548 msgid "" "As explained in the previous section, foreign functions can be accessed as " "attributes of loaded shared libraries. The function objects created in this " @@ -1493,30 +2052,43 @@ msgid "" "instances as arguments, and return the default result type specified by the " "library loader. They are instances of a private class:" msgstr "" +"Comme expliqué dans la section précédente, on peut accéder aux fonctions " +"externes au travers des attributs des bibliothèques partagées. Un objet " +"fonction créé de cette façon accepte par défaut un nombre quelconque " +"d'arguments qui peuvent être de n'importe quel type de données *ctypes*. Il " +"renvoie le type par défaut du chargeur de la bibliothèque. Ce sont des " +"instances de la classe privée :" -#: ../Doc/library/ctypes.rst:1543 +#: library/ctypes.rst:1557 msgid "Base class for C callable foreign functions." -msgstr "" +msgstr "Classe de base pour les fonctions externes C." -#: ../Doc/library/ctypes.rst:1545 +#: library/ctypes.rst:1559 msgid "" "Instances of foreign functions are also C compatible data types; they " "represent C function pointers." msgstr "" +"Une instance de fonction externe est également un type de donnée compatible " +"avec le C ; elle représente un pointeur vers une fonction." -#: ../Doc/library/ctypes.rst:1548 +#: library/ctypes.rst:1562 msgid "" "This behavior can be customized by assigning to special attributes of the " "foreign function object." msgstr "" +"Son comportement peut-être personnalisé en réaffectant les attributs " +"spécifiques de l'objet représentant la fonction externe." -#: ../Doc/library/ctypes.rst:1553 +#: library/ctypes.rst:1567 msgid "" "Assign a ctypes type to specify the result type of the foreign function. Use " "``None`` for :c:type:`void`, a function not returning anything." msgstr "" +"Fait correspondre le type de retour de la fonction externe à un type " +"*ctypes*. Dans le cas où la fonction ne renvoie rien (:c:type:`void`), " +"utilisez ``None``." -#: ../Doc/library/ctypes.rst:1556 +#: library/ctypes.rst:1570 msgid "" "It is possible to assign a callable Python object that is not a ctypes type, " "in this case the function is assumed to return a C :c:type:`int`, and the " @@ -1525,8 +2097,16 @@ msgid "" "or error checking use a ctypes data type as :attr:`restype` and assign a " "callable to the :attr:`errcheck` attribute." msgstr "" +"Il est aussi possible de passer n'importe quel un objet Python qui n'est pas " +"un type *ctypes* pourvu qu'il soit appelable. Dans ce cas, la fonction est " +"censée renvoyer un :c:type:`int` C et l'appelable sera appelé avec cet " +"entier, ce qui permet ainsi de faire des actions supplémentaires comme " +"vérifier un code d'erreur. Ce mécanisme est obsolète ; une façon plus souple " +"de faire des actions supplémentaires ou de la vérification consiste à " +"affecter un type *ctypes* à :attr:`restype` et à affecter un appelable à " +"l'attribut :attr:`errcheck`." -#: ../Doc/library/ctypes.rst:1565 +#: library/ctypes.rst:1579 msgid "" "Assign a tuple of ctypes types to specify the argument types that the " "function accepts. Functions using the ``stdcall`` calling convention can " @@ -1534,8 +2114,13 @@ msgid "" "tuple; functions using the C calling convention accept additional, " "unspecified arguments as well." msgstr "" +"Fait correspondre le type des arguments que la fonction accepte avec un *n*-" +"uplet de types *ctypes*. Les fonctions qui utilisent la convention d'appel " +"``stdcall`` ne peuvent être appelées qu'avec le même nombre d'arguments que " +"la taille du *n*-uplet mais les fonctions qui utilisent la convention " +"d'appel C acceptent aussi des arguments additionnels non-définis." -#: ../Doc/library/ctypes.rst:1571 +#: library/ctypes.rst:1585 msgid "" "When a foreign function is called, each actual argument is passed to the :" "meth:`from_param` class method of the items in the :attr:`argtypes` tuple, " @@ -1544,57 +2129,123 @@ msgid "" "attr:`argtypes` tuple will convert a string passed as argument into a bytes " "object using ctypes conversion rules." msgstr "" +"À l'appel d'une fonction externe, chaque argument est passé à la méthode de " +"classe :meth:`from_param` de l'élément correspondant dans le *n*-uplet des :" +"attr:`argtypes`. Cette méthode convertit l'argument initial en un objet que " +"la fonction externe peut comprendre. Par exemple, un :class:`c_char_p` dans " +"le *n*-uplet des :attr:`argtypes` va transformer la chaîne de caractères " +"passée en argument en un objet chaîne d'octets selon les règles de " +"conversion *ctypes*." -#: ../Doc/library/ctypes.rst:1578 +#: library/ctypes.rst:1592 msgid "" "New: It is now possible to put items in argtypes which are not ctypes types, " "but each item must have a :meth:`from_param` method which returns a value " "usable as argument (integer, string, ctypes instance). This allows defining " "adapters that can adapt custom objects as function parameters." msgstr "" +"Nouveau : il est maintenant possible de mettre des objets qui ne sont pas " +"des types de *ctypes* dans les *argtypes*, mais ceux-ci doivent avoir une " +"méthode :meth:`from_param` renvoyant une valeur qui peut être utilisée comme " +"un argument (entier, chaîne de caractères ou instance *ctypes*). Ceci permet " +"de créer des adaptateurs qui convertissent des objets arbitraires en des " +"paramètres de fonction." -#: ../Doc/library/ctypes.rst:1585 +#: library/ctypes.rst:1599 msgid "" "Assign a Python function or another callable to this attribute. The callable " "will be called with three or more arguments:" msgstr "" +"Définit une fonction Python ou tout autre appelable qui sera appelé avec " +"trois arguments ou plus :" -#: ../Doc/library/ctypes.rst:1592 +#: library/ctypes.rst:1606 msgid "" "*result* is what the foreign function returns, as specified by the :attr:" "`restype` attribute." msgstr "" +"*result* est la valeur de retour de la fonction externe, comme défini par " +"l'attribut :attr:`restype`." -#: ../Doc/library/ctypes.rst:1595 +#: library/ctypes.rst:1609 msgid "" "*func* is the foreign function object itself, this allows reusing the same " "callable object to check or post process the results of several functions." msgstr "" +"*func* est l'objet représentant la fonction externe elle-même. Cet accesseur " +"permet de réutiliser le même appelable pour vérifier le résultat de " +"plusieurs fonctions ou de faire des actions supplémentaires après leur " +"exécution." -#: ../Doc/library/ctypes.rst:1599 +#: library/ctypes.rst:1613 msgid "" "*arguments* is a tuple containing the parameters originally passed to the " "function call, this allows specializing the behavior on the arguments used." msgstr "" +"*arguments* est le *n*-uplet qui contient les paramètres initiaux passés à " +"la fonction, ceci permet de spécialiser le comportement des arguments " +"utilisés." -#: ../Doc/library/ctypes.rst:1603 +#: library/ctypes.rst:1617 msgid "" "The object that this function returns will be returned from the foreign " "function call, but it can also check the result value and raise an exception " "if the foreign function call failed." msgstr "" +"L'objet renvoyé par cette fonction est celui renvoyé par l'appel de la " +"fonction externe, mais il peut aussi vérifier la valeur du résultat et lever " +"une exception si l'appel a échoué." -#: ../Doc/library/ctypes.rst:1610 +#: library/ctypes.rst:1624 msgid "" "This exception is raised when a foreign function call cannot convert one of " "the passed arguments." msgstr "" +"Exception levée quand un appel à la fonction externe ne peut pas convertir " +"un des arguments qu'elle a reçus." -#: ../Doc/library/ctypes.rst:1617 -msgid "Function prototypes" +#: library/ctypes.rst:None +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.seh_exception`` with " +"argument ``code``." +msgstr "" + +#: library/ctypes.rst:1630 +msgid "" +"On Windows, when a foreign function call raises a system exception (for " +"example, due to an access violation), it will be captured and replaced with " +"a suitable Python exception. Further, an auditing event ``ctypes." +"seh_exception`` with argument ``code`` will be raised, allowing an audit " +"hook to replace the exception with its own." +msgstr "" +"En Windows, quand un appel à une fonction externe lève une exception système " +"(par exemple, une erreur de segmentation), celle-ci est interceptée pour " +"être remplacée par l'exception Python correspondante. De plus, un évènement " +"d'audit ``ctypes.seh_exception`` est levé avec ``code`` en argument, ce qui " +"permet à un point d'entrée (*hook* en anglais) d'audit de remplacer " +"l'exception par une des siennes." + +#: library/ctypes.rst:None +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.call_function`` with " +"arguments ``func_pointer``, ``arguments``." +msgstr "" + +#: library/ctypes.rst:1638 +msgid "" +"Some ways to invoke foreign function calls may raise an auditing event " +"``ctypes.call_function`` with arguments ``function pointer`` and " +"``arguments``." msgstr "" +"Certaines manières d'appeler des fonction externes peuvent lever des " +"évènements d'audit ``ctypes.call_function`` avec ``function pointer`` et " +"``arguments`` comme arguments." -#: ../Doc/library/ctypes.rst:1619 +#: library/ctypes.rst:1644 +msgid "Function prototypes" +msgstr "Prototypes de fonction" + +#: library/ctypes.rst:1646 msgid "" "Foreign functions can also be created by instantiating function prototypes. " "Function prototypes are similar to function prototypes in C; they describe a " @@ -1604,8 +2255,17 @@ msgid "" "decorator factories, and as such, be applied to functions through the " "``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." msgstr "" +"Il est aussi possible de créer des fonctions externes en instanciant des " +"prototypes de fonction. Les prototypes de fonction ressemblent beaucoup aux " +"prototypes de fonctions en C ; ils décrivent une fonction (type de retour, " +"type des arguments, convention d'appel) sans préciser son implémentation. " +"Les fabriques de fonctions prennent en entrée le type de retour et le type " +"des arguments de la fonction, et peuvent être utilisées comme des " +"décorateurs-fabrique et ainsi s'appliquer à des fonctions avec la syntaxe " +"``@décorateur``. Ceci est illustré dans la section :ref:`ctypes-callback-" +"functions`." -#: ../Doc/library/ctypes.rst:1630 +#: library/ctypes.rst:1657 msgid "" "The returned function prototype creates functions that use the standard C " "calling convention. The function will release the GIL during the call. If " @@ -1613,8 +2273,13 @@ msgid "" "`errno` variable is exchanged with the real :data:`errno` value before and " "after the call; *use_last_error* does the same for the Windows error code." msgstr "" +"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " +"convention d'appel standard C. Les fonctions libèreront le GIL lors de leur " +"exécution. Si *use_errno* est vrai, la copie privée *ctypes* de la variable " +"système :data:`errno` est échangée avec la vraie valeur de :data:`errno` " +"avant et après l'appel ; *use_last_error* a le même effet sous Windows." -#: ../Doc/library/ctypes.rst:1640 +#: library/ctypes.rst:1667 msgid "" "Windows only: The returned function prototype creates functions that use the " "``stdcall`` calling convention, except on Windows CE where :func:" @@ -1623,140 +2288,187 @@ msgid "" "meaning as above." msgstr "" -#: ../Doc/library/ctypes.rst:1649 +#: library/ctypes.rst:1676 msgid "" "The returned function prototype creates functions that use the Python " "calling convention. The function will *not* release the GIL during the call." msgstr "" +"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " +"convention d'appel Python. Les fonctions ne libèreront *pas* le GIL lors de " +"leur exécution." -#: ../Doc/library/ctypes.rst:1652 +#: library/ctypes.rst:1679 msgid "" "Function prototypes created by these factory functions can be instantiated " "in different ways, depending on the type and number of the parameters in the " "call:" msgstr "" +"Il y a plusieurs façons d'instancier les prototypes de fonction créés par " +"ces fabriques, selon le type et le nombre de paramètres de l'appel :" -#: ../Doc/library/ctypes.rst:1660 +#: library/ctypes.rst:1687 msgid "" "Returns a foreign function at the specified address which must be an integer." msgstr "" +"Renvoie une fonction externe sur l'adresse donnée sous la forme d'un entier." -#: ../Doc/library/ctypes.rst:1667 +#: library/ctypes.rst:1694 msgid "" "Create a C callable function (a callback function) from a Python *callable*." msgstr "" +"Crée une fonction appelable depuis du code C (une fonction de rappel) d'un " +"appelable Python donné en paramètre." -#: ../Doc/library/ctypes.rst:1674 +#: library/ctypes.rst:1701 msgid "" "Returns a foreign function exported by a shared library. *func_spec* must be " "a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " "exported function as string, or the ordinal of the exported function as " "small integer. The second item is the shared library instance." msgstr "" +"Renvoie une fonction externe exposée par une bibliothèque partagée. " +"*func_spec* est un couple ``(nom_ou_indice, bibliothèque)``. Le premier " +"élément est le nom de la fonction à passer comme une chaîne ou bien son " +"indice (dans la table des symboles) à passer comme un entier. Le second " +"élément est l'instance de la bibliothèque partagée." -#: ../Doc/library/ctypes.rst:1684 +#: library/ctypes.rst:1711 msgid "" "Returns a foreign function that will call a COM method. *vtbl_index* is the " "index into the virtual function table, a small non-negative integer. *name* " "is name of the COM method. *iid* is an optional pointer to the interface " "identifier which is used in extended error reporting." msgstr "" +"Renvoie une fonction qui appelle une méthode COM. *vtbl_index* est l'indice " +"de la fonction dans la table virtuelle, un petit entier positif. *name* est " +"le nom de la méthode COM. *iid* est un pointeur optionnel vers " +"l'identificateur de plateforme, qui est utilisé dans la remontée d'erreurs " +"étendue." -#: ../Doc/library/ctypes.rst:1689 +#: library/ctypes.rst:1716 msgid "" "COM methods use a special calling convention: They require a pointer to the " "COM interface as first argument, in addition to those parameters that are " "specified in the :attr:`argtypes` tuple." msgstr "" +"Les méthodes COM ont une convention d'appel particulière : elles requièrent " +"de passer un pointeur vers l'interface COM en premier argument, en sus des " +"arguments passés dans le *n*-uplet :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:1693 +#: library/ctypes.rst:1720 msgid "" "The optional *paramflags* parameter creates foreign function wrappers with " "much more functionality than the features described above." msgstr "" +"Le paramètre optionnel *paramflags* crée une fabrique de fonction externes " +"avec des fonctionnalités supplémentaires par rapport à celles décrites ci-" +"dessus." -#: ../Doc/library/ctypes.rst:1696 +#: library/ctypes.rst:1723 msgid "*paramflags* must be a tuple of the same length as :attr:`argtypes`." -msgstr "" +msgstr "*paramflags* est un *n*-uplet de la même taille que :attr:`argtypes`." -#: ../Doc/library/ctypes.rst:1698 +#: library/ctypes.rst:1725 msgid "" "Each item in this tuple contains further information about a parameter, it " "must be a tuple containing one, two, or three items." msgstr "" +"Chaque élément de ce *n*-uplet contient des informations supplémentaires sur " +"le paramètre correspondant. Ce doit être aussi un *n*-uplet, avec un, deux " +"ou trois éléments." -#: ../Doc/library/ctypes.rst:1701 +#: library/ctypes.rst:1728 msgid "" "The first item is an integer containing a combination of direction flags for " "the parameter:" msgstr "" +"Le premier élément est un entier qui contient une combinaison de drapeaux " +"qui précisent le sens des paramètres (entrée ou sortie) :" -#: ../Doc/library/ctypes.rst:1705 +#: library/ctypes.rst:1732 msgid "1" msgstr "1" -#: ../Doc/library/ctypes.rst:1705 +#: library/ctypes.rst:1732 msgid "Specifies an input parameter to the function." -msgstr "" +msgstr "Paramètre d'entrée." -#: ../Doc/library/ctypes.rst:1708 +#: library/ctypes.rst:1735 msgid "2" msgstr "2" -#: ../Doc/library/ctypes.rst:1708 +#: library/ctypes.rst:1735 msgid "Output parameter. The foreign function fills in a value." -msgstr "" +msgstr "Paramètre de sortie. La fonction externe va modifier cette valeur." -#: ../Doc/library/ctypes.rst:1711 +#: library/ctypes.rst:1738 msgid "4" msgstr "4" -#: ../Doc/library/ctypes.rst:1711 +#: library/ctypes.rst:1738 msgid "Input parameter which defaults to the integer zero." -msgstr "" +msgstr "Paramètre d'entrée, valant 0 par défaut." -#: ../Doc/library/ctypes.rst:1713 +#: library/ctypes.rst:1740 msgid "" "The optional second item is the parameter name as string. If this is " "specified, the foreign function can be called with named parameters." msgstr "" +"Le deuxième élément (optionnel) est une chaîne de caractères représentant le " +"nom du paramètre. Si cet élément est donné, la fonction externe pourra être " +"appelée avec des paramètres nommés." -#: ../Doc/library/ctypes.rst:1716 +#: library/ctypes.rst:1743 msgid "The optional third item is the default value for this parameter." msgstr "" +"Le troisième élément (optionnel) est la valeur par défaut du paramètre." -#: ../Doc/library/ctypes.rst:1718 +#: library/ctypes.rst:1745 msgid "" "This example demonstrates how to wrap the Windows ``MessageBoxW`` function " "so that it supports default parameters and named arguments. The C " "declaration from the windows header file is this::" msgstr "" +"L'exemple suivant montre comment encapsuler la fonction Windows " +"``MessageBoxW`` afin que celle-ci prenne en charge des paramètres par défaut " +"et des arguments nommés. Sa déclaration C dans le fichier d'en-tête des " +"fenêtres est ::" -#: ../Doc/library/ctypes.rst:1729 ../Doc/library/ctypes.rst:1752 +#: library/ctypes.rst:1779 msgid "Here is the wrapping with :mod:`ctypes`::" -msgstr "" +msgstr "L'encapsulation :mod:`ctypes` correspondante est alors ::" -#: ../Doc/library/ctypes.rst:1737 +#: library/ctypes.rst:1764 msgid "The ``MessageBox`` foreign function can now be called in these ways::" msgstr "" +"La fonction ``MessageBox`` peut désormais être appelée des manières " +"suivantes ::" -#: ../Doc/library/ctypes.rst:1743 +#: library/ctypes.rst:1770 msgid "" "A second example demonstrates output parameters. The win32 " "``GetWindowRect`` function retrieves the dimensions of a specified window by " "copying them into ``RECT`` structure that the caller has to supply. Here is " "the C declaration::" msgstr "" +"L'exemple qui suit traite des paramètres en sortie. La fonction win32 " +"``GetWindowRect`` donne les dimensions d'une fenêtre en les copiant dans une " +"structure ``RECT`` que l'appelant doit fournir. Sa déclaration en C est ::" -#: ../Doc/library/ctypes.rst:1761 +#: library/ctypes.rst:1788 msgid "" "Functions with output parameters will automatically return the output " "parameter value if there is a single one, or a tuple containing the output " "parameter values when there are more than one, so the GetWindowRect function " "now returns a RECT instance, when called." msgstr "" +"Les fonctions avec des paramètres en sortie renvoient automatiquement la " +"valeur du paramètre de sortie s'il n'y en a qu'un seul, ou un *n*-uplet avec " +"les valeurs de sortie de chaque paramètre s'il y en a plusieurs. Ici, la " +"fonction *GetWindowRect* renvoie donc une instance de *RECT* quand elle est " +"appelée." -#: ../Doc/library/ctypes.rst:1766 +#: library/ctypes.rst:1793 msgid "" "Output parameters can be combined with the :attr:`errcheck` protocol to do " "further output processing and error checking. The win32 ``GetWindowRect`` " @@ -1764,8 +2476,13 @@ msgid "" "function could do the error checking, and raises an exception when the api " "call failed::" msgstr "" +"Il est possible de combiner des paramètres en sortie avec le protocole :attr:" +"`errcheck` pour post-traiter les sorties et faire de la vérification " +"d'erreur. La fonction de l'API win32 ``GetWindowRect`` renvoie un ``BOOL`` " +"pour indiquer le succès ou l'échec de l'exécution, donc cette fonction peut " +"vérifier le résultat et lever une exception quand l'appel à l'API a échoué ::" -#: ../Doc/library/ctypes.rst:1779 +#: library/ctypes.rst:1806 msgid "" "If the :attr:`errcheck` function returns the argument tuple it receives " "unchanged, :mod:`ctypes` continues the normal processing it does on the " @@ -1773,41 +2490,53 @@ msgid "" "instead of a ``RECT`` instance, you can retrieve the fields in the function " "and return them instead, the normal processing will no longer take place::" msgstr "" +"Si la fonction :attr:`errcheck` renvoie le *n*-uplet passé en paramètre sans " +"rien y changer, :mod:`ctypes` continue l'exécution habituelle des paramètres " +"en sortie. Si on préfère renvoyer un *n*-uplet de coordonnées au lieu de " +"renvoyer une instance de ``RECT``, il faut récupérer les champs " +"correspondants et les renvoyer en retour. Dans ce cas, l'exécution " +"habituelle n'a plus lieu ::" -#: ../Doc/library/ctypes.rst:1798 +#: library/ctypes.rst:1825 msgid "Utility functions" -msgstr "" +msgstr "Fonctions utilitaires" -#: ../Doc/library/ctypes.rst:1802 +#: library/ctypes.rst:1829 msgid "" "Returns the address of the memory buffer as integer. *obj* must be an " "instance of a ctypes type." msgstr "" -#: ../Doc/library/ctypes.rst:1808 +#: library/ctypes.rst:1832 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.addressof`` with " +"argument ``obj``." +msgstr "" + +#: library/ctypes.rst:1837 msgid "" "Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " "ctypes type or instance." msgstr "" -#: ../Doc/library/ctypes.rst:1814 +#: library/ctypes.rst:1843 msgid "" "Returns a light-weight pointer to *obj*, which must be an instance of a " "ctypes type. *offset* defaults to zero, and must be an integer that will be " "added to the internal pointer value." msgstr "" -#: ../Doc/library/ctypes.rst:1818 +#: library/ctypes.rst:1847 msgid "``byref(obj, offset)`` corresponds to this C code::" msgstr "" -#: ../Doc/library/ctypes.rst:1822 +#: library/ctypes.rst:1851 msgid "" "The returned object can only be used as a foreign function call parameter. " "It behaves similar to ``pointer(obj)``, but the construction is a lot faster." msgstr "" -#: ../Doc/library/ctypes.rst:1828 +#: library/ctypes.rst:1857 msgid "" "This function is similar to the cast operator in C. It returns a new " "instance of *type* which points to the same memory block as *obj*. *type* " @@ -1815,19 +2544,19 @@ msgid "" "as a pointer." msgstr "" -#: ../Doc/library/ctypes.rst:1836 +#: library/ctypes.rst:1865 msgid "" "This function creates a mutable character buffer. The returned object is a " "ctypes array of :class:`c_char`." msgstr "" -#: ../Doc/library/ctypes.rst:1839 +#: library/ctypes.rst:1868 msgid "" "*init_or_size* must be an integer which specifies the size of the array, or " "a bytes object which will be used to initialize the array items." msgstr "" -#: ../Doc/library/ctypes.rst:1842 +#: library/ctypes.rst:1871 msgid "" "If a bytes object is specified as first argument, the buffer is made one " "item larger than its length so that the last element in the array is a NUL " @@ -1836,19 +2565,25 @@ msgid "" "not be used." msgstr "" -#: ../Doc/library/ctypes.rst:1851 +#: library/ctypes.rst:1876 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " +"with arguments ``init``, ``size``." +msgstr "" + +#: library/ctypes.rst:1881 msgid "" "This function creates a mutable unicode character buffer. The returned " "object is a ctypes array of :class:`c_wchar`." msgstr "" -#: ../Doc/library/ctypes.rst:1854 +#: library/ctypes.rst:1884 msgid "" "*init_or_size* must be an integer which specifies the size of the array, or " "a string which will be used to initialize the array items." msgstr "" -#: ../Doc/library/ctypes.rst:1857 +#: library/ctypes.rst:1887 msgid "" "If a string is specified as first argument, the buffer is made one item " "larger than the length of the string so that the last element in the array " @@ -1857,21 +2592,27 @@ msgid "" "should not be used." msgstr "" -#: ../Doc/library/ctypes.rst:1867 +#: library/ctypes.rst:1893 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " +"with arguments ``init``, ``size``." +msgstr "" + +#: library/ctypes.rst:1898 msgid "" "Windows only: This function is a hook which allows implementing in-process " "COM servers with ctypes. It is called from the DllCanUnloadNow function " "that the _ctypes extension dll exports." msgstr "" -#: ../Doc/library/ctypes.rst:1874 +#: library/ctypes.rst:1905 msgid "" "Windows only: This function is a hook which allows implementing in-process " "COM servers with ctypes. It is called from the DllGetClassObject function " "that the ``_ctypes`` extension dll exports." msgstr "" -#: ../Doc/library/ctypes.rst:1882 +#: library/ctypes.rst:1913 msgid "" "Try to find a library and return a pathname. *name* is the library name " "without any prefix like ``lib``, suffix like ``.so``, ``.dylib`` or version " @@ -1879,80 +2620,92 @@ msgid "" "If no library can be found, returns ``None``." msgstr "" -#: ../Doc/library/ctypes.rst:1893 +#: library/ctypes.rst:1924 msgid "" "Windows only: return the filename of the VC runtime library used by Python, " "and by the extension modules. If the name of the library cannot be " "determined, ``None`` is returned." msgstr "" -#: ../Doc/library/ctypes.rst:1897 +#: library/ctypes.rst:1928 msgid "" "If you need to free memory, for example, allocated by an extension module " "with a call to the ``free(void *)``, it is important that you use the " "function in the same library that allocated the memory." msgstr "" -#: ../Doc/library/ctypes.rst:1904 +#: library/ctypes.rst:1935 msgid "" "Windows only: Returns a textual description of the error code *code*. If no " "error code is specified, the last error code is used by calling the Windows " "api function GetLastError." msgstr "" -#: ../Doc/library/ctypes.rst:1911 +#: library/ctypes.rst:1942 msgid "" "Windows only: Returns the last error code set by Windows in the calling " "thread. This function calls the Windows `GetLastError()` function directly, " "it does not return the ctypes-private copy of the error code." msgstr "" -#: ../Doc/library/ctypes.rst:1917 +#: library/ctypes.rst:1948 msgid "" "Returns the current value of the ctypes-private copy of the system :data:" "`errno` variable in the calling thread." msgstr "" -#: ../Doc/library/ctypes.rst:1922 +#: library/ctypes.rst:1951 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " +"arguments." +msgstr "" + +#: library/ctypes.rst:1955 msgid "" "Windows only: returns the current value of the ctypes-private copy of the " "system :data:`LastError` variable in the calling thread." msgstr "" -#: ../Doc/library/ctypes.rst:1927 +#: library/ctypes.rst:1958 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " +"arguments." +msgstr "" + +#: library/ctypes.rst:1962 msgid "" "Same as the standard C memmove library function: copies *count* bytes from " "*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " "can be converted to pointers." msgstr "" -#: ../Doc/library/ctypes.rst:1934 +#: library/ctypes.rst:1969 msgid "" "Same as the standard C memset library function: fills the memory block at " "address *dst* with *count* bytes of value *c*. *dst* must be an integer " "specifying an address, or a ctypes instance." msgstr "" -#: ../Doc/library/ctypes.rst:1941 +#: library/ctypes.rst:1976 msgid "" "This factory function creates and returns a new ctypes pointer type. Pointer " "types are cached and reused internally, so calling this function repeatedly " "is cheap. *type* must be a ctypes type." msgstr "" -#: ../Doc/library/ctypes.rst:1948 +#: library/ctypes.rst:1983 msgid "" "This function creates a new pointer instance, pointing to *obj*. The " "returned object is of the type ``POINTER(type(obj))``." msgstr "" -#: ../Doc/library/ctypes.rst:1951 +#: library/ctypes.rst:1986 msgid "" "Note: If you just want to pass a pointer to an object to a foreign function " "call, you should use ``byref(obj)`` which is much faster." msgstr "" -#: ../Doc/library/ctypes.rst:1957 +#: library/ctypes.rst:1992 msgid "" "This function resizes the internal memory buffer of *obj*, which must be an " "instance of a ctypes type. It is not possible to make the buffer smaller " @@ -1960,33 +2713,51 @@ msgid "" "but it is possible to enlarge the buffer." msgstr "" -#: ../Doc/library/ctypes.rst:1965 +#: library/ctypes.rst:2000 msgid "" "Set the current value of the ctypes-private copy of the system :data:`errno` " "variable in the calling thread to *value* and return the previous value." msgstr "" -#: ../Doc/library/ctypes.rst:1972 +#: library/ctypes.rst:2003 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " +"argument ``errno``." +msgstr "" + +#: library/ctypes.rst:2008 msgid "" "Windows only: set the current value of the ctypes-private copy of the " "system :data:`LastError` variable in the calling thread to *value* and " "return the previous value." msgstr "" -#: ../Doc/library/ctypes.rst:1980 +#: library/ctypes.rst:2012 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " +"argument ``error``." +msgstr "" + +#: library/ctypes.rst:2017 msgid "" "Returns the size in bytes of a ctypes type or instance memory buffer. Does " "the same as the C ``sizeof`` operator." msgstr "" -#: ../Doc/library/ctypes.rst:1986 +#: library/ctypes.rst:2023 msgid "" "This function returns the C string starting at memory address *address* as a " "bytes object. If size is specified, it is used as size, otherwise the string " "is assumed to be zero-terminated." msgstr "" -#: ../Doc/library/ctypes.rst:1993 +#: library/ctypes.rst:2027 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.string_at`` with " +"arguments ``address``, ``size``." +msgstr "" + +#: library/ctypes.rst:2032 msgid "" "Windows only: this function is probably the worst-named thing in ctypes. It " "creates an instance of OSError. If *code* is not specified, " @@ -1995,11 +2766,11 @@ msgid "" "error." msgstr "" -#: ../Doc/library/ctypes.rst:1999 +#: library/ctypes.rst:2038 msgid "An instance of :exc:`WindowsError` used to be created." msgstr "" -#: ../Doc/library/ctypes.rst:2005 +#: library/ctypes.rst:2044 msgid "" "This function returns the wide character string starting at memory address " "*address* as a string. If *size* is specified, it is used as the number of " @@ -2007,11 +2778,17 @@ msgid "" "terminated." msgstr "" -#: ../Doc/library/ctypes.rst:2014 +#: library/ctypes.rst:2049 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " +"arguments ``address``, ``size``." +msgstr "" + +#: library/ctypes.rst:2055 msgid "Data types" msgstr "Types de données" -#: ../Doc/library/ctypes.rst:2019 +#: library/ctypes.rst:2060 msgid "" "This non-public class is the common base class of all ctypes data types. " "Among other things, all ctypes type instances contain a memory block that " @@ -2021,13 +2798,13 @@ msgid "" "alive in case the memory block contains pointers." msgstr "" -#: ../Doc/library/ctypes.rst:2026 +#: library/ctypes.rst:2067 msgid "" "Common methods of ctypes data types, these are all class methods (to be " "exact, they are methods of the :term:`metaclass`):" msgstr "" -#: ../Doc/library/ctypes.rst:2031 +#: library/ctypes.rst:2072 msgid "" "This method returns a ctypes instance that shares the buffer of the *source* " "object. The *source* object must support the writeable buffer interface. " @@ -2036,7 +2813,13 @@ msgid "" "exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/ctypes.rst:2040 +#: library/ctypes.rst:2088 +msgid "" +"Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " +"arguments ``pointer``, ``size``, ``offset``." +msgstr "" + +#: library/ctypes.rst:2082 msgid "" "This method creates a ctypes instance, copying the buffer from the *source* " "object buffer which must be readable. The optional *offset* parameter " @@ -2044,25 +2827,25 @@ msgid "" "If the source buffer is not large enough a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/ctypes.rst:2048 +#: library/ctypes.rst:2092 msgid "" "This method returns a ctypes type instance using the memory specified by " "*address* which must be an integer." msgstr "" -#: ../Doc/library/ctypes.rst:None +#: library/ctypes.rst:None msgid "" "Raises an :ref:`auditing event ` ``ctypes.cdata`` with argument " "``address``." msgstr "" -#: ../Doc/library/ctypes.rst:2053 +#: library/ctypes.rst:2097 msgid "" "This method, and others that indirectly call this method, raises an :ref:" "`auditing event ` ``ctypes.cdata`` with argument ``address``." msgstr "" -#: ../Doc/library/ctypes.rst:2059 +#: library/ctypes.rst:2103 msgid "" "This method adapts *obj* to a ctypes type. It is called with the actual " "object used in a foreign function call when the type is present in the " @@ -2070,25 +2853,25 @@ msgid "" "be used as a function call parameter." msgstr "" -#: ../Doc/library/ctypes.rst:2064 +#: library/ctypes.rst:2108 msgid "" "All ctypes data types have a default implementation of this classmethod that " "normally returns *obj* if that is an instance of the type. Some types " "accept other objects as well." msgstr "" -#: ../Doc/library/ctypes.rst:2070 +#: library/ctypes.rst:2114 msgid "" "This method returns a ctypes type instance exported by a shared library. " "*name* is the name of the symbol that exports the data, *library* is the " "loaded shared library." msgstr "" -#: ../Doc/library/ctypes.rst:2074 +#: library/ctypes.rst:2118 msgid "Common instance variables of ctypes data types:" msgstr "" -#: ../Doc/library/ctypes.rst:2078 +#: library/ctypes.rst:2122 msgid "" "Sometimes ctypes data instances do not own the memory block they contain, " "instead they share part of the memory block of a base object. The :attr:" @@ -2096,13 +2879,13 @@ msgid "" "block." msgstr "" -#: ../Doc/library/ctypes.rst:2085 +#: library/ctypes.rst:2129 msgid "" "This read-only variable is true when the ctypes data instance has allocated " "the memory block itself, false otherwise." msgstr "" -#: ../Doc/library/ctypes.rst:2090 +#: library/ctypes.rst:2134 msgid "" "This member is either ``None`` or a dictionary containing Python objects " "that need to be kept alive so that the memory block contents is kept valid. " @@ -2110,7 +2893,7 @@ msgid "" "dictionary." msgstr "" -#: ../Doc/library/ctypes.rst:2103 +#: library/ctypes.rst:2147 msgid "" "This non-public class is the base class of all fundamental ctypes data " "types. It is mentioned here because it contains the common attributes of the " @@ -2119,11 +2902,11 @@ msgid "" "types that are not and do not contain pointers can now be pickled." msgstr "" -#: ../Doc/library/ctypes.rst:2109 +#: library/ctypes.rst:2153 msgid "Instances have a single attribute:" msgstr "" -#: ../Doc/library/ctypes.rst:2113 +#: library/ctypes.rst:2157 msgid "" "This attribute contains the actual value of the instance. For integer and " "pointer types, it is an integer, for character types, it is a single " @@ -2131,7 +2914,7 @@ msgid "" "bytes object or string." msgstr "" -#: ../Doc/library/ctypes.rst:2118 +#: library/ctypes.rst:2162 msgid "" "When the ``value`` attribute is retrieved from a ctypes instance, usually a " "new object is returned each time. :mod:`ctypes` does *not* implement " @@ -2139,7 +2922,7 @@ msgid "" "true for all other ctypes object instances." msgstr "" -#: ../Doc/library/ctypes.rst:2124 +#: library/ctypes.rst:2168 msgid "" "Fundamental data types, when returned as foreign function call results, or, " "for example, by retrieving structure field members or array items, are " @@ -2148,7 +2931,7 @@ msgid "" "receive a Python bytes object, *not* a :class:`c_char_p` instance." msgstr "" -#: ../Doc/library/ctypes.rst:2132 +#: library/ctypes.rst:2176 msgid "" "Subclasses of fundamental data types do *not* inherit this behavior. So, if " "a foreign functions :attr:`restype` is a subclass of :class:`c_void_p`, you " @@ -2156,25 +2939,25 @@ msgid "" "you can get the value of the pointer by accessing the ``value`` attribute." msgstr "" -#: ../Doc/library/ctypes.rst:2137 +#: library/ctypes.rst:2181 msgid "These are the fundamental ctypes data types:" msgstr "" -#: ../Doc/library/ctypes.rst:2141 +#: library/ctypes.rst:2185 msgid "" "Represents the C :c:type:`signed char` datatype, and interprets the value as " "small integer. The constructor accepts an optional integer initializer; no " "overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2148 +#: library/ctypes.rst:2192 msgid "" "Represents the C :c:type:`char` datatype, and interprets the value as a " "single character. The constructor accepts an optional string initializer, " "the length of the string must be exactly one character." msgstr "" -#: ../Doc/library/ctypes.rst:2155 +#: library/ctypes.rst:2199 msgid "" "Represents the C :c:type:`char *` datatype when it points to a zero-" "terminated string. For a general character pointer that may also point to " @@ -2182,178 +2965,178 @@ msgid "" "integer address, or a bytes object." msgstr "" -#: ../Doc/library/ctypes.rst:2163 +#: library/ctypes.rst:2207 msgid "" "Represents the C :c:type:`double` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: ../Doc/library/ctypes.rst:2169 +#: library/ctypes.rst:2213 msgid "" "Represents the C :c:type:`long double` datatype. The constructor accepts an " "optional float initializer. On platforms where ``sizeof(long double) == " "sizeof(double)`` it is an alias to :class:`c_double`." msgstr "" -#: ../Doc/library/ctypes.rst:2175 +#: library/ctypes.rst:2219 msgid "" "Represents the C :c:type:`float` datatype. The constructor accepts an " "optional float initializer." msgstr "" -#: ../Doc/library/ctypes.rst:2181 +#: library/ctypes.rst:2225 msgid "" "Represents the C :c:type:`signed int` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done. On platforms " "where ``sizeof(int) == sizeof(long)`` it is an alias to :class:`c_long`." msgstr "" -#: ../Doc/library/ctypes.rst:2188 +#: library/ctypes.rst:2232 msgid "" "Represents the C 8-bit :c:type:`signed int` datatype. Usually an alias for :" "class:`c_byte`." msgstr "" -#: ../Doc/library/ctypes.rst:2194 +#: library/ctypes.rst:2238 msgid "" "Represents the C 16-bit :c:type:`signed int` datatype. Usually an alias " "for :class:`c_short`." msgstr "" -#: ../Doc/library/ctypes.rst:2200 +#: library/ctypes.rst:2244 msgid "" "Represents the C 32-bit :c:type:`signed int` datatype. Usually an alias " "for :class:`c_int`." msgstr "" -#: ../Doc/library/ctypes.rst:2206 +#: library/ctypes.rst:2250 msgid "" "Represents the C 64-bit :c:type:`signed int` datatype. Usually an alias " "for :class:`c_longlong`." msgstr "" -#: ../Doc/library/ctypes.rst:2212 +#: library/ctypes.rst:2256 msgid "" "Represents the C :c:type:`signed long` datatype. The constructor accepts an " "optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2218 +#: library/ctypes.rst:2262 msgid "" "Represents the C :c:type:`signed long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2224 +#: library/ctypes.rst:2268 msgid "" "Represents the C :c:type:`signed short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2230 +#: library/ctypes.rst:2274 msgid "Represents the C :c:type:`size_t` datatype." msgstr "" -#: ../Doc/library/ctypes.rst:2235 +#: library/ctypes.rst:2279 msgid "Represents the C :c:type:`ssize_t` datatype." msgstr "" -#: ../Doc/library/ctypes.rst:2242 +#: library/ctypes.rst:2286 msgid "" "Represents the C :c:type:`unsigned char` datatype, it interprets the value " "as small integer. The constructor accepts an optional integer initializer; " "no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2249 +#: library/ctypes.rst:2293 msgid "" "Represents the C :c:type:`unsigned int` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done. On platforms " "where ``sizeof(int) == sizeof(long)`` it is an alias for :class:`c_ulong`." msgstr "" -#: ../Doc/library/ctypes.rst:2256 +#: library/ctypes.rst:2300 msgid "" "Represents the C 8-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_ubyte`." msgstr "" -#: ../Doc/library/ctypes.rst:2262 +#: library/ctypes.rst:2306 msgid "" "Represents the C 16-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_ushort`." msgstr "" -#: ../Doc/library/ctypes.rst:2268 +#: library/ctypes.rst:2312 msgid "" "Represents the C 32-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_uint`." msgstr "" -#: ../Doc/library/ctypes.rst:2274 +#: library/ctypes.rst:2318 msgid "" "Represents the C 64-bit :c:type:`unsigned int` datatype. Usually an alias " "for :class:`c_ulonglong`." msgstr "" -#: ../Doc/library/ctypes.rst:2280 +#: library/ctypes.rst:2324 msgid "" "Represents the C :c:type:`unsigned long` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2286 +#: library/ctypes.rst:2330 msgid "" "Represents the C :c:type:`unsigned long long` datatype. The constructor " "accepts an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2292 +#: library/ctypes.rst:2336 msgid "" "Represents the C :c:type:`unsigned short` datatype. The constructor accepts " "an optional integer initializer; no overflow checking is done." msgstr "" -#: ../Doc/library/ctypes.rst:2298 +#: library/ctypes.rst:2342 msgid "" "Represents the C :c:type:`void *` type. The value is represented as " "integer. The constructor accepts an optional integer initializer." msgstr "" -#: ../Doc/library/ctypes.rst:2304 +#: library/ctypes.rst:2348 msgid "" "Represents the C :c:type:`wchar_t` datatype, and interprets the value as a " "single character unicode string. The constructor accepts an optional string " "initializer, the length of the string must be exactly one character." msgstr "" -#: ../Doc/library/ctypes.rst:2311 +#: library/ctypes.rst:2355 msgid "" "Represents the C :c:type:`wchar_t *` datatype, which must be a pointer to a " "zero-terminated wide character string. The constructor accepts an integer " "address, or a string." msgstr "" -#: ../Doc/library/ctypes.rst:2318 +#: library/ctypes.rst:2362 msgid "" "Represent the C :c:type:`bool` datatype (more accurately, :c:type:`_Bool` " "from C99). Its value can be ``True`` or ``False``, and the constructor " "accepts any object that has a truth value." msgstr "" -#: ../Doc/library/ctypes.rst:2325 +#: library/ctypes.rst:2369 msgid "" "Windows only: Represents a :c:type:`HRESULT` value, which contains success " "or error information for a function or method call." msgstr "" -#: ../Doc/library/ctypes.rst:2331 +#: library/ctypes.rst:2375 msgid "" "Represents the C :c:type:`PyObject *` datatype. Calling this without an " "argument creates a ``NULL`` :c:type:`PyObject *` pointer." msgstr "" -#: ../Doc/library/ctypes.rst:2334 +#: library/ctypes.rst:2378 msgid "" "The :mod:`ctypes.wintypes` module provides quite some other Windows specific " "data types, for example :c:type:`HWND`, :c:type:`WPARAM`, or :c:type:" @@ -2361,33 +3144,33 @@ msgid "" "also defined." msgstr "" -#: ../Doc/library/ctypes.rst:2342 +#: library/ctypes.rst:2386 msgid "Structured data types" -msgstr "" +msgstr "Types de données dérivés de Structure" -#: ../Doc/library/ctypes.rst:2347 +#: library/ctypes.rst:2391 msgid "Abstract base class for unions in native byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2352 +#: library/ctypes.rst:2396 msgid "Abstract base class for structures in *big endian* byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2357 +#: library/ctypes.rst:2401 msgid "Abstract base class for structures in *little endian* byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2359 +#: library/ctypes.rst:2403 msgid "" "Structures with non-native byte order cannot contain pointer type fields, or " "any other data types containing pointer type fields." msgstr "" -#: ../Doc/library/ctypes.rst:2365 +#: library/ctypes.rst:2409 msgid "Abstract base class for structures in *native* byte order." msgstr "" -#: ../Doc/library/ctypes.rst:2367 +#: library/ctypes.rst:2411 msgid "" "Concrete structure and union types must be created by subclassing one of " "these types, and at least define a :attr:`_fields_` class variable. :mod:" @@ -2395,34 +3178,34 @@ msgid "" "the fields by direct attribute accesses. These are the" msgstr "" -#: ../Doc/library/ctypes.rst:2375 +#: library/ctypes.rst:2419 msgid "" "A sequence defining the structure fields. The items must be 2-tuples or 3-" "tuples. The first item is the name of the field, the second item specifies " "the type of the field; it can be any ctypes data type." msgstr "" -#: ../Doc/library/ctypes.rst:2379 +#: library/ctypes.rst:2423 msgid "" "For integer type fields like :class:`c_int`, a third optional item can be " "given. It must be a small positive integer defining the bit width of the " "field." msgstr "" -#: ../Doc/library/ctypes.rst:2383 +#: library/ctypes.rst:2427 msgid "" "Field names must be unique within one structure or union. This is not " "checked, only one field can be accessed when names are repeated." msgstr "" -#: ../Doc/library/ctypes.rst:2386 +#: library/ctypes.rst:2430 msgid "" "It is possible to define the :attr:`_fields_` class variable *after* the " "class statement that defines the Structure subclass, this allows creating " "data types that directly or indirectly reference themselves::" msgstr "" -#: ../Doc/library/ctypes.rst:2396 +#: library/ctypes.rst:2440 msgid "" "The :attr:`_fields_` class variable must, however, be defined before the " "type is first used (an instance is created, :func:`sizeof` is called on it, " @@ -2430,28 +3213,28 @@ msgid "" "raise an AttributeError." msgstr "" -#: ../Doc/library/ctypes.rst:2401 +#: library/ctypes.rst:2445 msgid "" "It is possible to define sub-subclasses of structure types, they inherit the " "fields of the base class plus the :attr:`_fields_` defined in the sub-" "subclass, if any." msgstr "" -#: ../Doc/library/ctypes.rst:2408 +#: library/ctypes.rst:2452 msgid "" "An optional small integer that allows overriding the alignment of structure " "fields in the instance. :attr:`_pack_` must already be defined when :attr:" "`_fields_` is assigned, otherwise it will have no effect." msgstr "" -#: ../Doc/library/ctypes.rst:2415 +#: library/ctypes.rst:2459 msgid "" "An optional sequence that lists the names of unnamed (anonymous) fields. :" "attr:`_anonymous_` must be already defined when :attr:`_fields_` is " "assigned, otherwise it will have no effect." msgstr "" -#: ../Doc/library/ctypes.rst:2419 +#: library/ctypes.rst:2463 msgid "" "The fields listed in this variable must be structure or union type fields. :" "mod:`ctypes` will create descriptors in the structure type that allows " @@ -2459,11 +3242,11 @@ msgid "" "structure or union field." msgstr "" -#: ../Doc/library/ctypes.rst:2424 +#: library/ctypes.rst:2468 msgid "Here is an example type (Windows)::" msgstr "" -#: ../Doc/library/ctypes.rst:2437 +#: library/ctypes.rst:2481 msgid "" "The ``TYPEDESC`` structure describes a COM data type, the ``vt`` field " "specifies which one of the union fields is valid. Since the ``u`` field is " @@ -2473,7 +3256,7 @@ msgid "" "temporary union instance::" msgstr "" -#: ../Doc/library/ctypes.rst:2449 +#: library/ctypes.rst:2493 msgid "" "It is possible to define sub-subclasses of structures, they inherit the " "fields of the base class. If the subclass definition has a separate :attr:" @@ -2481,7 +3264,7 @@ msgid "" "of the base class." msgstr "" -#: ../Doc/library/ctypes.rst:2454 +#: library/ctypes.rst:2498 msgid "" "Structure and union constructors accept both positional and keyword " "arguments. Positional arguments are used to initialize member fields in the " @@ -2491,15 +3274,15 @@ msgid "" "names not present in :attr:`_fields_`." msgstr "" -#: ../Doc/library/ctypes.rst:2465 +#: library/ctypes.rst:2509 msgid "Arrays and pointers" -msgstr "" +msgstr "Tableaux et pointeurs" -#: ../Doc/library/ctypes.rst:2469 +#: library/ctypes.rst:2513 msgid "Abstract base class for arrays." msgstr "Classe de base abstraite pour les *arrays*." -#: ../Doc/library/ctypes.rst:2471 +#: library/ctypes.rst:2515 msgid "" "The recommended way to create concrete array types is by multiplying any :" "mod:`ctypes` data type with a positive integer. Alternatively, you can " @@ -2509,34 +3292,34 @@ msgid "" "an :class:`Array`." msgstr "" -#: ../Doc/library/ctypes.rst:2481 +#: library/ctypes.rst:2525 msgid "" "A positive integer specifying the number of elements in the array. Out-of-" "range subscripts result in an :exc:`IndexError`. Will be returned by :func:" "`len`." msgstr "" -#: ../Doc/library/ctypes.rst:2488 +#: library/ctypes.rst:2532 msgid "Specifies the type of each element in the array." msgstr "Spécifie le type de chaque élément de l'*array*." -#: ../Doc/library/ctypes.rst:2491 +#: library/ctypes.rst:2535 msgid "" "Array subclass constructors accept positional arguments, used to initialize " "the elements in order." msgstr "" -#: ../Doc/library/ctypes.rst:2497 +#: library/ctypes.rst:2541 msgid "Private, abstract base class for pointers." msgstr "" -#: ../Doc/library/ctypes.rst:2499 +#: library/ctypes.rst:2543 msgid "" "Concrete pointer types are created by calling :func:`POINTER` with the type " "that will be pointed to; this is done automatically by :func:`pointer`." msgstr "" -#: ../Doc/library/ctypes.rst:2503 +#: library/ctypes.rst:2547 msgid "" "If a pointer points to an array, its elements can be read and written using " "standard subscript and slice accesses. Pointer objects have no size, so :" @@ -2545,12 +3328,23 @@ msgid "" "probably crash with an access violation (if you're lucky)." msgstr "" -#: ../Doc/library/ctypes.rst:2513 +#: library/ctypes.rst:2557 msgid "Specifies the type pointed to." msgstr "" -#: ../Doc/library/ctypes.rst:2517 +#: library/ctypes.rst:2561 msgid "" "Returns the object to which to pointer points. Assigning to this attribute " "changes the pointer to point to the assigned object." msgstr "" + +#~ msgid "" +#~ ":mod:`ctypes` may raise a :exc:`ValueError` after calling the function, " +#~ "if it detects that an invalid number of arguments were passed. This " +#~ "behavior should not be relied upon. It is deprecated in 3.6.2, and will " +#~ "be removed in 3.7." +#~ msgstr "" +#~ "Si, après avoir appelé une fonction, :mod:`ctypes` détecte qu'un nombre " +#~ "incorrect d'arguments a été passé, il peut lever une :exc:`ValueError`. " +#~ "Il ne faut pas se baser sur ce comportement ; celui-ci est obsolète " +#~ "depuis la version 3.6.2 et sera supprimé en 3.7." diff --git a/library/curses.ascii.po b/library/curses.ascii.po index dfd62134dd..e192a656ba 100644 --- a/library/curses.ascii.po +++ b/library/curses.ascii.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -82,8 +82,9 @@ msgid ":const:`ACK`" msgstr ":const:`ACK`" #: ../Doc/library/curses.ascii.rst:31 +#, fuzzy msgid "Acknowledgement" -msgstr "" +msgstr "Remerciements" #: ../Doc/library/curses.ascii.rst:33 msgid ":const:`BEL`" diff --git a/library/curses.panel.po b/library/curses.panel.po index 3becdf1cbc..7bebfc0031 100644 --- a/library/curses.panel.po +++ b/library/curses.panel.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-12-01 07:43+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/library/curses.po b/library/curses.po index ace66f60b0..9e71671801 100644 --- a/library/curses.po +++ b/library/curses.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-07-04 11:32+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,17 +15,17 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/curses.rst:2 +#: library/curses.rst:2 msgid ":mod:`curses` --- Terminal handling for character-cell displays" msgstr "" -#: ../Doc/library/curses.rst:14 +#: library/curses.rst:14 msgid "" "The :mod:`curses` module provides an interface to the curses library, the de-" "facto standard for portable advanced terminal handling." msgstr "" -#: ../Doc/library/curses.rst:17 +#: library/curses.rst:17 msgid "" "While curses is most widely used in the Unix environment, versions are " "available for Windows, DOS, and possibly other systems as well. This " @@ -33,19 +33,19 @@ msgid "" "curses library hosted on Linux and the BSD variants of Unix." msgstr "" -#: ../Doc/library/curses.rst:24 +#: library/curses.rst:24 msgid "" "Whenever the documentation mentions a *character* it can be specified as an " "integer, a one-character Unicode string or a one-byte byte string." msgstr "" -#: ../Doc/library/curses.rst:27 +#: library/curses.rst:27 msgid "" "Whenever the documentation mentions a *character string* it can be specified " "as a Unicode string or a byte string." msgstr "" -#: ../Doc/library/curses.rst:32 +#: library/curses.rst:32 msgid "" "Since version 5.4, the ncurses library decides how to interpret non-ASCII " "data using the ``nl_langinfo`` function. That means that you have to call :" @@ -54,79 +54,79 @@ msgid "" "default encoding::" msgstr "" -#: ../Doc/library/curses.rst:42 +#: library/curses.rst:42 msgid "Then use *code* as the encoding for :meth:`str.encode` calls." msgstr "" -#: ../Doc/library/curses.rst:47 +#: library/curses.rst:47 msgid "Module :mod:`curses.ascii`" msgstr "Module :mod:`curses.ascii`" -#: ../Doc/library/curses.rst:47 +#: library/curses.rst:47 msgid "" "Utilities for working with ASCII characters, regardless of your locale " "settings." msgstr "" -#: ../Doc/library/curses.rst:50 +#: library/curses.rst:50 msgid "Module :mod:`curses.panel`" msgstr "Module :mod:`curses.panel`" -#: ../Doc/library/curses.rst:50 +#: library/curses.rst:50 msgid "A panel stack extension that adds depth to curses windows." msgstr "" -#: ../Doc/library/curses.rst:53 +#: library/curses.rst:53 msgid "Module :mod:`curses.textpad`" msgstr "Module :mod:`curses.textpad`" -#: ../Doc/library/curses.rst:53 +#: library/curses.rst:53 msgid "" "Editable text widget for curses supporting :program:`Emacs`\\ -like " "bindings." msgstr "" -#: ../Doc/library/curses.rst:57 +#: library/curses.rst:57 msgid ":ref:`curses-howto`" msgstr ":ref:`curses-howto`" -#: ../Doc/library/curses.rst:56 +#: library/curses.rst:56 msgid "" "Tutorial material on using curses with Python, by Andrew Kuchling and Eric " "Raymond." msgstr "" -#: ../Doc/library/curses.rst:59 +#: library/curses.rst:59 msgid "" "The :source:`Tools/demo/` directory in the Python source distribution " "contains some example programs using the curses bindings provided by this " "module." msgstr "" -#: ../Doc/library/curses.rst:66 +#: library/curses.rst:66 msgid "Functions" msgstr "Fonctions" -#: ../Doc/library/curses.rst:68 +#: library/curses.rst:68 msgid "The module :mod:`curses` defines the following exception:" msgstr "" -#: ../Doc/library/curses.rst:73 +#: library/curses.rst:73 msgid "Exception raised when a curses library function returns an error." msgstr "" -#: ../Doc/library/curses.rst:77 +#: library/curses.rst:77 msgid "" "Whenever *x* or *y* arguments to a function or a method are optional, they " "default to the current cursor location. Whenever *attr* is optional, it " "defaults to :const:`A_NORMAL`." msgstr "" -#: ../Doc/library/curses.rst:81 +#: library/curses.rst:81 msgid "The module :mod:`curses` defines the following functions:" msgstr "" -#: ../Doc/library/curses.rst:86 +#: library/curses.rst:86 msgid "" "Return the output speed of the terminal in bits per second. On software " "terminal emulators it will have a fixed high value. Included for historical " @@ -134,17 +134,17 @@ msgid "" "and occasionally to change interfaces depending on the line speed." msgstr "" -#: ../Doc/library/curses.rst:94 +#: library/curses.rst:94 msgid "Emit a short attention sound." msgstr "" -#: ../Doc/library/curses.rst:99 +#: library/curses.rst:99 msgid "" "Return ``True`` or ``False``, depending on whether the programmer can change " "the colors displayed by the terminal." msgstr "" -#: ../Doc/library/curses.rst:105 +#: library/curses.rst:105 msgid "" "Enter cbreak mode. In cbreak mode (sometimes called \"rare\" mode) normal " "tty line buffering is turned off and characters are available to be read one " @@ -154,24 +154,24 @@ msgid "" "terminal in cbreak mode." msgstr "" -#: ../Doc/library/curses.rst:114 +#: library/curses.rst:114 msgid "" "Return the intensity of the red, green, and blue (RGB) components in the " -"color *color_number*, which must be between ``0`` and :const:`COLORS`. " +"color *color_number*, which must be between ``0`` and ``COLORS - 1``. " "Return a 3-tuple, containing the R,G,B values for the given color, which " "will be between ``0`` (no component) and ``1000`` (maximum amount of " "component)." msgstr "" -#: ../Doc/library/curses.rst:122 +#: library/curses.rst:122 msgid "" -"Return the attribute value for displaying text in the specified color. This " -"attribute value can be combined with :const:`A_STANDOUT`, :const:" -"`A_REVERSE`, and the other :const:`A_\\*` attributes. :func:`pair_number` " -"is the counterpart to this function." +"Return the attribute value for displaying text in the specified color pair. " +"Only the first 256 color pairs are supported. This attribute value can be " +"combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, and the other :const:" +"`A_\\*` attributes. :func:`pair_number` is the counterpart to this function." msgstr "" -#: ../Doc/library/curses.rst:130 +#: library/curses.rst:131 msgid "" "Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, " "for invisible, normal, or very visible. If the terminal supports the " @@ -180,7 +180,7 @@ msgid "" "and the \"very visible\" mode is a block cursor." msgstr "" -#: ../Doc/library/curses.rst:139 +#: library/curses.rst:140 msgid "" "Save the current terminal mode as the \"program\" mode, the mode when the " "running program is using curses. (Its counterpart is the \"shell\" mode, " @@ -188,7 +188,7 @@ msgid "" "`reset_prog_mode` will restore this mode." msgstr "" -#: ../Doc/library/curses.rst:147 +#: library/curses.rst:148 msgid "" "Save the current terminal mode as the \"shell\" mode, the mode when the " "running program is not using curses. (Its counterpart is the \"program\" " @@ -196,11 +196,11 @@ msgid "" "func:`reset_shell_mode` will restore this mode." msgstr "" -#: ../Doc/library/curses.rst:155 +#: library/curses.rst:156 msgid "Insert an *ms* millisecond pause in output." msgstr "" -#: ../Doc/library/curses.rst:160 +#: library/curses.rst:161 msgid "" "Update the physical screen. The curses library keeps two data structures, " "one representing the current physical screen contents and a virtual screen " @@ -208,7 +208,7 @@ msgid "" "the physical screen to match the virtual screen." msgstr "" -#: ../Doc/library/curses.rst:165 +#: library/curses.rst:166 msgid "" "The virtual screen may be updated by a :meth:`~window.noutrefresh` call " "after write operations such as :meth:`~window.addstr` have been performed on " @@ -219,24 +219,24 @@ msgid "" "func:`!doupdate`." msgstr "" -#: ../Doc/library/curses.rst:175 +#: library/curses.rst:176 msgid "" "Enter echo mode. In echo mode, each character input is echoed to the screen " "as it is entered." msgstr "" -#: ../Doc/library/curses.rst:181 +#: library/curses.rst:182 msgid "De-initialize the library, and return terminal to normal status." msgstr "" -#: ../Doc/library/curses.rst:186 +#: library/curses.rst:187 msgid "" "Return the user's current erase character as a one-byte bytes object. Under " "Unix operating systems this is a property of the controlling tty of the " "curses program, and is not set by the curses library itself." msgstr "" -#: ../Doc/library/curses.rst:193 +#: library/curses.rst:194 msgid "" "The :func:`.filter` routine, if used, must be called before :func:`initscr` " "is called. The effect is that, during those calls, :envvar:`LINES` is set " @@ -247,23 +247,23 @@ msgid "" "time line editing without touching the rest of the screen." msgstr "" -#: ../Doc/library/curses.rst:203 +#: library/curses.rst:204 msgid "" "Flash the screen. That is, change it to reverse-video and then change it " "back in a short interval. Some people prefer such as 'visible bell' to the " "audible attention signal produced by :func:`beep`." msgstr "" -#: ../Doc/library/curses.rst:210 +#: library/curses.rst:211 msgid "" "Flush all input buffers. This throws away any typeahead that has been " "typed by the user and has not yet been processed by the program." msgstr "" -#: ../Doc/library/curses.rst:216 +#: library/curses.rst:217 msgid "" "After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " -"event, this method should be call to retrieve the queued mouse event, " +"event, this method should be called to retrieve the queued mouse event, " "represented as a 5-tuple ``(id, x, y, z, bstate)``. *id* is an ID value used " "to distinguish multiple devices, and *x*, *y*, *z* are the event's " "coordinates. (*z* is currently unused.) *bstate* is an integer value whose " @@ -275,34 +275,34 @@ msgid "" "const:`BUTTON_ALT`." msgstr "" -#: ../Doc/library/curses.rst:230 +#: library/curses.rst:231 msgid "" "Return the current coordinates of the virtual screen cursor as a tuple ``(y, " "x)``. If :meth:`leaveok ` is currently ``True``, then " "return ``(-1, -1)``." msgstr "" -#: ../Doc/library/curses.rst:236 +#: library/curses.rst:237 msgid "" "Read window related data stored in the file by an earlier :func:`putwin` " "call. The routine then creates and initializes a new window using that data, " "returning the new window object." msgstr "" -#: ../Doc/library/curses.rst:243 +#: library/curses.rst:244 msgid "" "Return ``True`` if the terminal can display colors; otherwise, return " "``False``." msgstr "" -#: ../Doc/library/curses.rst:248 +#: library/curses.rst:249 msgid "" "Return ``True`` if the terminal has insert- and delete-character " "capabilities. This function is included for historical reasons only, as all " "modern software terminal emulators have such capabilities." msgstr "" -#: ../Doc/library/curses.rst:255 +#: library/curses.rst:256 msgid "" "Return ``True`` if the terminal has insert- and delete-line capabilities, or " "can simulate them using scrolling regions. This function is included for " @@ -310,13 +310,13 @@ msgid "" "capabilities." msgstr "" -#: ../Doc/library/curses.rst:263 +#: library/curses.rst:264 msgid "" "Take a key value *ch*, and return ``True`` if the current terminal type " "recognizes a key with that value." msgstr "" -#: ../Doc/library/curses.rst:269 +#: library/curses.rst:270 msgid "" "Used for half-delay mode, which is similar to cbreak mode in that characters " "typed by the user are immediately available to the program. However, after " @@ -325,55 +325,56 @@ msgid "" "``255``. Use :func:`nocbreak` to leave half-delay mode." msgstr "" -#: ../Doc/library/curses.rst:278 +#: library/curses.rst:279 msgid "" "Change the definition of a color, taking the number of the color to be " "changed followed by three RGB values (for the amounts of red, green, and " -"blue components). The value of *color_number* must be between ``0`` and :" -"const:`COLORS`. Each of *r*, *g*, *b*, must be a value between ``0`` and " +"blue components). The value of *color_number* must be between ``0`` and " +"`COLORS - 1`. Each of *r*, *g*, *b*, must be a value between ``0`` and " "``1000``. When :func:`init_color` is used, all occurrences of that color on " "the screen immediately change to the new definition. This function is a no-" "op on most terminals; it is active only if :func:`can_change_color` returns " "``True``." msgstr "" -#: ../Doc/library/curses.rst:289 +#: library/curses.rst:290 msgid "" "Change the definition of a color-pair. It takes three arguments: the number " "of the color-pair to be changed, the foreground color number, and the " "background color number. The value of *pair_number* must be between ``1`` " "and ``COLOR_PAIRS - 1`` (the ``0`` color pair is wired to white on black and " "cannot be changed). The value of *fg* and *bg* arguments must be between " -"``0`` and :const:`COLORS`. If the color-pair was previously initialized, " -"the screen is refreshed and all occurrences of that color-pair are changed " -"to the new definition." +"``0`` and ``COLORS - 1``, or, after calling :func:`use_default_colors`, " +"``-1``. If the color-pair was previously initialized, the screen is " +"refreshed and all occurrences of that color-pair are changed to the new " +"definition." msgstr "" -#: ../Doc/library/curses.rst:301 +#: library/curses.rst:303 msgid "" "Initialize the library. Return a :ref:`window ` " "object which represents the whole screen." msgstr "" -#: ../Doc/library/curses.rst:306 +#: library/curses.rst:308 msgid "" "If there is an error opening the terminal, the underlying curses library may " "cause the interpreter to exit." msgstr "" -#: ../Doc/library/curses.rst:312 +#: library/curses.rst:314 msgid "" "Return ``True`` if :func:`resize_term` would modify the window structure, " "``False`` otherwise." msgstr "" -#: ../Doc/library/curses.rst:318 +#: library/curses.rst:320 msgid "" "Return ``True`` if :func:`endwin` has been called (that is, the curses " "library has been deinitialized)." msgstr "" -#: ../Doc/library/curses.rst:324 +#: library/curses.rst:326 msgid "" "Return the name of the key numbered *k* as a bytes object. The name of a " "key generating printable ASCII character is the key's character. The name " @@ -384,27 +385,27 @@ msgid "" "character." msgstr "" -#: ../Doc/library/curses.rst:334 +#: library/curses.rst:336 msgid "" "Return the user's current line kill character as a one-byte bytes object. " "Under Unix operating systems this is a property of the controlling tty of " "the curses program, and is not set by the curses library itself." msgstr "" -#: ../Doc/library/curses.rst:341 +#: library/curses.rst:343 msgid "" "Return a bytes object containing the terminfo long name field describing the " "current terminal. The maximum length of a verbose description is 128 " "characters. It is defined only after the call to :func:`initscr`." msgstr "" -#: ../Doc/library/curses.rst:348 +#: library/curses.rst:350 msgid "" "If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " "``False``, allow only 7-bit chars." msgstr "" -#: ../Doc/library/curses.rst:354 +#: library/curses.rst:356 msgid "" "Set the maximum time in milliseconds that can elapse between press and " "release events in order for them to be recognized as a click, and return the " @@ -412,7 +413,7 @@ msgid "" "second." msgstr "" -#: ../Doc/library/curses.rst:361 +#: library/curses.rst:363 msgid "" "Set the mouse events to be reported, and return a tuple ``(availmask, " "oldmask)``. *availmask* indicates which of the specified mouse events can " @@ -421,17 +422,17 @@ msgid "" "never called, no mouse events are ever reported." msgstr "" -#: ../Doc/library/curses.rst:370 +#: library/curses.rst:372 msgid "Sleep for *ms* milliseconds." msgstr "" -#: ../Doc/library/curses.rst:375 +#: library/curses.rst:377 msgid "" "Create and return a pointer to a new pad data structure with the given " "number of lines and columns. Return a pad as a window object." msgstr "" -#: ../Doc/library/curses.rst:378 +#: library/curses.rst:380 msgid "" "A pad is like a window, except that it is not restricted by the screen size, " "and is not necessarily associated with a particular part of the screen. " @@ -447,35 +448,35 @@ msgid "" "to be displayed." msgstr "" -#: ../Doc/library/curses.rst:394 +#: library/curses.rst:396 msgid "" "Return a new :ref:`window `, whose left-upper corner " "is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." msgstr "" -#: ../Doc/library/curses.rst:397 +#: library/curses.rst:399 msgid "" "By default, the window will extend from the specified position to the lower " "right corner of the screen." msgstr "" -#: ../Doc/library/curses.rst:403 +#: library/curses.rst:405 msgid "" "Enter newline mode. This mode translates the return key into newline on " "input, and translates newline into return and line-feed on output. Newline " "mode is initially on." msgstr "" -#: ../Doc/library/curses.rst:410 +#: library/curses.rst:412 msgid "" "Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." msgstr "" -#: ../Doc/library/curses.rst:415 +#: library/curses.rst:417 msgid "Leave echo mode. Echoing of input characters is turned off." msgstr "" -#: ../Doc/library/curses.rst:420 +#: library/curses.rst:422 msgid "" "Leave newline mode. Disable translation of return into newline on input, " "and disable low-level translation of newline into newline/return on output " @@ -485,7 +486,7 @@ msgid "" "also, it will be able to detect the return key on input." msgstr "" -#: ../Doc/library/curses.rst:430 +#: library/curses.rst:432 msgid "" "When the :func:`!noqiflush` routine is used, normal flush of input and " "output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " @@ -494,63 +495,63 @@ msgid "" "occurred, after the handler exits." msgstr "" -#: ../Doc/library/curses.rst:438 +#: library/curses.rst:440 msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." msgstr "" -#: ../Doc/library/curses.rst:443 +#: library/curses.rst:445 msgid "" "Return a tuple ``(fg, bg)`` containing the colors for the requested color " -"pair. The value of *pair_number* must be between ``1`` and ``COLOR_PAIRS - " +"pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " "1``." msgstr "" -#: ../Doc/library/curses.rst:449 +#: library/curses.rst:451 msgid "" "Return the number of the color-pair set by the attribute value *attr*. :func:" "`color_pair` is the counterpart to this function." msgstr "" -#: ../Doc/library/curses.rst:455 +#: library/curses.rst:457 msgid "" "Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified " "terminfo capability for the current terminal. Note that the output of :func:" "`putp` always goes to standard output." msgstr "" -#: ../Doc/library/curses.rst:462 +#: library/curses.rst:464 msgid "" "If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. " "If *flag* is ``True``, or no argument is provided, the queues will be " "flushed when these control characters are read." msgstr "" -#: ../Doc/library/curses.rst:469 +#: library/curses.rst:471 msgid "" "Enter raw mode. In raw mode, normal line buffering and processing of " "interrupt, quit, suspend, and flow control keys are turned off; characters " "are presented to curses input functions one by one." msgstr "" -#: ../Doc/library/curses.rst:476 +#: library/curses.rst:478 msgid "" "Restore the terminal to \"program\" mode, as previously saved by :func:" "`def_prog_mode`." msgstr "" -#: ../Doc/library/curses.rst:482 +#: library/curses.rst:484 msgid "" "Restore the terminal to \"shell\" mode, as previously saved by :func:" "`def_shell_mode`." msgstr "" -#: ../Doc/library/curses.rst:488 +#: library/curses.rst:490 msgid "" "Restore the state of the terminal modes to what it was at the last call to :" "func:`savetty`." msgstr "" -#: ../Doc/library/curses.rst:494 +#: library/curses.rst:496 msgid "" "Backend function used by :func:`resizeterm`, performing most of the work; " "when resizing the windows, :func:`resize_term` blank-fills the areas that " @@ -560,26 +561,26 @@ msgid "" "to resize these without additional interaction with the application." msgstr "" -#: ../Doc/library/curses.rst:504 +#: library/curses.rst:506 msgid "" "Resize the standard and current windows to the specified dimensions, and " "adjusts other bookkeeping data used by the curses library that record the " "window dimensions (in particular the SIGWINCH handler)." msgstr "" -#: ../Doc/library/curses.rst:511 +#: library/curses.rst:513 msgid "" "Save the current state of the terminal modes in a buffer, usable by :func:" "`resetty`." msgstr "" -#: ../Doc/library/curses.rst:517 +#: library/curses.rst:519 msgid "" "Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " "then :meth:`leaveok ` is set ``True``." msgstr "" -#: ../Doc/library/curses.rst:523 +#: library/curses.rst:525 msgid "" "Initialize the terminal. *term* is a string giving the terminal name, or " "``None``; if omitted or ``None``, the value of the :envvar:`TERM` " @@ -588,14 +589,14 @@ msgid "" "descriptor for ``sys.stdout`` will be used." msgstr "" -#: ../Doc/library/curses.rst:532 +#: library/curses.rst:534 msgid "" "Must be called if the programmer wants to use colors, and before any other " "color manipulation routine is called. It is good practice to call this " "routine right after :func:`initscr`." msgstr "" -#: ../Doc/library/curses.rst:536 +#: library/curses.rst:538 msgid "" ":func:`start_color` initializes eight basic colors (black, red, green, " "yellow, blue, magenta, cyan, and white), and two global variables in the :" @@ -605,20 +606,20 @@ msgid "" "terminal was just turned on." msgstr "" -#: ../Doc/library/curses.rst:545 +#: library/curses.rst:547 msgid "" "Return a logical OR of all video attributes supported by the terminal. This " "information is useful when a curses program needs complete control over the " "appearance of the screen." msgstr "" -#: ../Doc/library/curses.rst:552 +#: library/curses.rst:554 msgid "" "Return the value of the environment variable :envvar:`TERM`, as a bytes " "object, truncated to 14 characters." msgstr "" -#: ../Doc/library/curses.rst:558 +#: library/curses.rst:560 msgid "" "Return the value of the Boolean capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-1`` if " @@ -626,7 +627,7 @@ msgid "" "from the terminal description." msgstr "" -#: ../Doc/library/curses.rst:566 +#: library/curses.rst:568 msgid "" "Return the value of the numeric capability corresponding to the terminfo " "capability name *capname* as an integer. Return the value ``-2`` if " @@ -634,7 +635,7 @@ msgid "" "from the terminal description." msgstr "" -#: ../Doc/library/curses.rst:574 +#: library/curses.rst:576 msgid "" "Return the value of the string capability corresponding to the terminfo " "capability name *capname* as a bytes object. Return ``None`` if *capname* " @@ -642,7 +643,7 @@ msgid "" "terminal description." msgstr "" -#: ../Doc/library/curses.rst:582 +#: library/curses.rst:584 msgid "" "Instantiate the bytes object *str* with the supplied parameters, where *str* " "should be a parameterized string obtained from the terminfo database. E.g. " @@ -650,13 +651,13 @@ msgid "" "exact result depending on terminal type." msgstr "" -#: ../Doc/library/curses.rst:590 +#: library/curses.rst:592 msgid "" "Specify that the file descriptor *fd* be used for typeahead checking. If " "*fd* is ``-1``, then no typeahead checking is done." msgstr "" -#: ../Doc/library/curses.rst:593 +#: library/curses.rst:595 msgid "" "The curses library does \"line-breakout optimization\" by looking for " "typeahead periodically while updating the screen. If input is found, and it " @@ -666,7 +667,7 @@ msgid "" "typeahead checking." msgstr "" -#: ../Doc/library/curses.rst:602 +#: library/curses.rst:604 msgid "" "Return a bytes object which is a printable representation of the character " "*ch*. Control characters are represented as a caret followed by the " @@ -674,35 +675,35 @@ msgid "" "are." msgstr "" -#: ../Doc/library/curses.rst:609 +#: library/curses.rst:611 msgid "Push *ch* so the next :meth:`~window.getch` will return it." msgstr "" -#: ../Doc/library/curses.rst:613 +#: library/curses.rst:615 msgid "Only one *ch* can be pushed before :meth:`!getch` is called." msgstr "" -#: ../Doc/library/curses.rst:618 +#: library/curses.rst:620 msgid "" "Update :envvar:`LINES` and :envvar:`COLS`. Useful for detecting manual " "screen resize." msgstr "" -#: ../Doc/library/curses.rst:625 +#: library/curses.rst:627 msgid "Push *ch* so the next :meth:`~window.get_wch` will return it." msgstr "" -#: ../Doc/library/curses.rst:629 +#: library/curses.rst:631 msgid "Only one *ch* can be pushed before :meth:`!get_wch` is called." msgstr "" -#: ../Doc/library/curses.rst:636 +#: library/curses.rst:638 msgid "" "Push a :const:`KEY_MOUSE` event onto the input queue, associating the given " "state data with it." msgstr "" -#: ../Doc/library/curses.rst:642 +#: library/curses.rst:644 msgid "" "If used, this function should be called before :func:`initscr` or newterm " "are called. When *flag* is ``False``, the values of lines and columns " @@ -712,7 +713,7 @@ msgid "" "to use the window size if :envvar:`LINES` and :envvar:`COLUMNS` are not set)." msgstr "" -#: ../Doc/library/curses.rst:652 +#: library/curses.rst:654 msgid "" "Allow use of default values for colors on terminals supporting this feature. " "Use this to support transparency in your application. The default color is " @@ -721,7 +722,7 @@ msgid "" "*x* to a red foreground color on the default background." msgstr "" -#: ../Doc/library/curses.rst:661 +#: library/curses.rst:663 msgid "" "Initialize curses and call another callable object, *func*, which should be " "the rest of your curses-using application. If the application raises an " @@ -735,50 +736,50 @@ msgid "" "echo, and disables the terminal keypad." msgstr "" -#: ../Doc/library/curses.rst:675 +#: library/curses.rst:677 msgid "Window Objects" msgstr "" -#: ../Doc/library/curses.rst:677 +#: library/curses.rst:679 msgid "" "Window objects, as returned by :func:`initscr` and :func:`newwin` above, " "have the following methods and attributes:" msgstr "" -#: ../Doc/library/curses.rst:684 +#: library/curses.rst:686 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " -"character previously painter at that location. By default, the character " +"character previously painted at that location. By default, the character " "position and attributes are the current settings for the window object." msgstr "" -#: ../Doc/library/curses.rst:690 +#: library/curses.rst:692 msgid "" "Writing outside the window, subwindow, or pad raises a :exc:`curses.error`. " "Attempting to write to the lower right corner of a window, subwindow, or pad " "will cause an exception to be raised after the character is printed." msgstr "" -#: ../Doc/library/curses.rst:698 +#: library/curses.rst:700 msgid "" "Paint at most *n* characters of the character string *str* at ``(y, x)`` " "with attributes *attr*, overwriting anything previously on the display." msgstr "" -#: ../Doc/library/curses.rst:706 +#: library/curses.rst:708 msgid "" "Paint the character string *str* at ``(y, x)`` with attributes *attr*, " "overwriting anything previously on the display." msgstr "" -#: ../Doc/library/curses.rst:711 +#: library/curses.rst:713 msgid "" "Writing outside the window, subwindow, or pad raises :exc:`curses.error`. " "Attempting to write to the lower right corner of a window, subwindow, or pad " "will cause an exception to be raised after the string is printed." msgstr "" -#: ../Doc/library/curses.rst:715 +#: library/curses.rst:717 msgid "" "A `bug in ncurses `_, the backend for " "this Python module, can cause SegFaults when resizing windows. This is fixed " @@ -788,44 +789,44 @@ msgid "" "line." msgstr "" -#: ../Doc/library/curses.rst:725 +#: library/curses.rst:727 msgid "" "Remove attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -#: ../Doc/library/curses.rst:731 +#: library/curses.rst:733 msgid "" "Add attribute *attr* from the \"background\" set applied to all writes to " "the current window." msgstr "" -#: ../Doc/library/curses.rst:737 +#: library/curses.rst:739 msgid "" "Set the \"background\" set of attributes to *attr*. This set is initially " "``0`` (no attributes)." msgstr "" -#: ../Doc/library/curses.rst:743 +#: library/curses.rst:745 msgid "" "Set the background property of the window to the character *ch*, with " "attributes *attr*. The change is then applied to every character position " "in that window:" msgstr "" -#: ../Doc/library/curses.rst:747 +#: library/curses.rst:749 msgid "" "The attribute of every character in the window is changed to the new " "background attribute." msgstr "" -#: ../Doc/library/curses.rst:750 +#: library/curses.rst:752 msgid "" "Wherever the former background character appears, it is changed to the new " "background character." msgstr "" -#: ../Doc/library/curses.rst:756 +#: library/curses.rst:758 msgid "" "Set the window's background. A window's background consists of a character " "and any combination of attributes. The attribute part of the background is " @@ -836,128 +837,128 @@ msgid "" "delete line/character operations." msgstr "" -#: ../Doc/library/curses.rst:766 +#: library/curses.rst:768 msgid "" "Draw a border around the edges of the window. Each parameter specifies the " "character to use for a specific part of the border; see the table below for " "more details." msgstr "" -#: ../Doc/library/curses.rst:772 +#: library/curses.rst:774 msgid "" "A ``0`` value for any parameter will cause the default character to be used " "for that parameter. Keyword parameters can *not* be used. The defaults are " "listed in this table:" msgstr "" -#: ../Doc/library/curses.rst:777 +#: library/curses.rst:779 msgid "Parameter" msgstr "Paramètre" -#: ../Doc/library/curses.rst:777 +#: library/curses.rst:779 msgid "Description" msgstr "Description" -#: ../Doc/library/curses.rst:777 +#: library/curses.rst:779 msgid "Default value" msgstr "Valeur par défaut" -#: ../Doc/library/curses.rst:779 +#: library/curses.rst:781 msgid "*ls*" msgstr "*ls*" -#: ../Doc/library/curses.rst:779 +#: library/curses.rst:781 msgid "Left side" msgstr "" -#: ../Doc/library/curses.rst:779 ../Doc/library/curses.rst:781 +#: library/curses.rst:783 msgid ":const:`ACS_VLINE`" msgstr ":const:`ACS_VLINE`" -#: ../Doc/library/curses.rst:781 +#: library/curses.rst:783 msgid "*rs*" msgstr "*rs*" -#: ../Doc/library/curses.rst:781 +#: library/curses.rst:783 msgid "Right side" msgstr "" -#: ../Doc/library/curses.rst:783 +#: library/curses.rst:785 msgid "*ts*" msgstr "*ts*" -#: ../Doc/library/curses.rst:783 +#: library/curses.rst:785 msgid "Top" msgstr "" -#: ../Doc/library/curses.rst:783 ../Doc/library/curses.rst:785 +#: library/curses.rst:787 msgid ":const:`ACS_HLINE`" msgstr ":const:`ACS_HLINE`" -#: ../Doc/library/curses.rst:785 +#: library/curses.rst:787 msgid "*bs*" msgstr "*bs*" -#: ../Doc/library/curses.rst:785 +#: library/curses.rst:787 msgid "Bottom" msgstr "" -#: ../Doc/library/curses.rst:787 +#: library/curses.rst:789 msgid "*tl*" msgstr "*tl*" -#: ../Doc/library/curses.rst:787 +#: library/curses.rst:789 msgid "Upper-left corner" msgstr "" -#: ../Doc/library/curses.rst:787 +#: library/curses.rst:789 msgid ":const:`ACS_ULCORNER`" msgstr ":const:`ACS_ULCORNER`" -#: ../Doc/library/curses.rst:789 +#: library/curses.rst:791 msgid "*tr*" msgstr "" -#: ../Doc/library/curses.rst:789 +#: library/curses.rst:791 msgid "Upper-right corner" msgstr "" -#: ../Doc/library/curses.rst:789 +#: library/curses.rst:791 msgid ":const:`ACS_URCORNER`" msgstr ":const:`ACS_URCORNER`" -#: ../Doc/library/curses.rst:791 +#: library/curses.rst:793 msgid "*bl*" msgstr "" -#: ../Doc/library/curses.rst:791 +#: library/curses.rst:793 msgid "Bottom-left corner" msgstr "" -#: ../Doc/library/curses.rst:791 +#: library/curses.rst:793 msgid ":const:`ACS_LLCORNER`" msgstr ":const:`ACS_LLCORNER`" -#: ../Doc/library/curses.rst:793 +#: library/curses.rst:795 msgid "*br*" msgstr "" -#: ../Doc/library/curses.rst:793 +#: library/curses.rst:795 msgid "Bottom-right corner" msgstr "" -#: ../Doc/library/curses.rst:793 +#: library/curses.rst:795 msgid ":const:`ACS_LRCORNER`" msgstr ":const:`ACS_LRCORNER`" -#: ../Doc/library/curses.rst:799 +#: library/curses.rst:801 msgid "" "Similar to :meth:`border`, but both *ls* and *rs* are *vertch* and both *ts* " "and *bs* are *horch*. The default corner characters are always used by this " "function." msgstr "" -#: ../Doc/library/curses.rst:808 +#: library/curses.rst:810 msgid "" "Set the attributes of *num* characters at the current cursor position, or at " "position ``(y, x)`` if supplied. If *num* is not given or is ``-1``, the " @@ -967,45 +968,45 @@ msgid "" "be redisplayed by the next window refresh." msgstr "" -#: ../Doc/library/curses.rst:818 +#: library/curses.rst:820 msgid "" "Like :meth:`erase`, but also cause the whole window to be repainted upon " "next call to :meth:`refresh`." msgstr "" -#: ../Doc/library/curses.rst:824 +#: library/curses.rst:826 msgid "" "If *flag* is ``True``, the next call to :meth:`refresh` will clear the " "window completely." msgstr "" -#: ../Doc/library/curses.rst:830 +#: library/curses.rst:832 msgid "" "Erase from cursor to the end of the window: all lines below the cursor are " "deleted, and then the equivalent of :meth:`clrtoeol` is performed." msgstr "" -#: ../Doc/library/curses.rst:836 +#: library/curses.rst:838 msgid "Erase from cursor to the end of the line." msgstr "" -#: ../Doc/library/curses.rst:841 +#: library/curses.rst:843 msgid "" "Update the current cursor position of all the ancestors of the window to " "reflect the current cursor position of the window." msgstr "" -#: ../Doc/library/curses.rst:847 +#: library/curses.rst:849 msgid "Delete any character at ``(y, x)``." msgstr "" -#: ../Doc/library/curses.rst:852 +#: library/curses.rst:854 msgid "" "Delete the line under the cursor. All following lines are moved up by one " "line." msgstr "" -#: ../Doc/library/curses.rst:858 +#: library/curses.rst:860 msgid "" "An abbreviation for \"derive window\", :meth:`derwin` is the same as " "calling :meth:`subwin`, except that *begin_y* and *begin_x* are relative to " @@ -1013,13 +1014,13 @@ msgid "" "a window object for the derived window." msgstr "" -#: ../Doc/library/curses.rst:866 +#: library/curses.rst:868 msgid "" "Add character *ch* with attribute *attr*, and immediately call :meth:" "`refresh` on the window." msgstr "" -#: ../Doc/library/curses.rst:872 +#: library/curses.rst:874 msgid "" "Test whether the given pair of screen-relative character-cell coordinates " "are enclosed by the given window, returning ``True`` or ``False``. It is " @@ -1027,7 +1028,7 @@ msgid "" "location of a mouse event." msgstr "" -#: ../Doc/library/curses.rst:880 +#: library/curses.rst:882 msgid "" "Encoding used to encode method arguments (Unicode strings and characters). " "The encoding attribute is inherited from the parent window when a subwindow " @@ -1035,19 +1036,19 @@ msgid "" "encoding is used (see :func:`locale.getpreferredencoding`)." msgstr "" -#: ../Doc/library/curses.rst:890 +#: library/curses.rst:892 msgid "Clear the window." msgstr "" -#: ../Doc/library/curses.rst:895 +#: library/curses.rst:897 msgid "Return a tuple ``(y, x)`` of co-ordinates of upper-left corner." msgstr "" -#: ../Doc/library/curses.rst:900 +#: library/curses.rst:902 msgid "Return the given window's current background character/attribute pair." msgstr "" -#: ../Doc/library/curses.rst:905 +#: library/curses.rst:907 msgid "" "Get a character. Note that the integer returned does *not* have to be in " "ASCII range: function keys, keypad keys and so on are represented by numbers " @@ -1055,14 +1056,14 @@ msgid "" "otherwise wait until a key is pressed." msgstr "" -#: ../Doc/library/curses.rst:913 +#: library/curses.rst:915 msgid "" "Get a wide character. Return a character for most keys, or an integer for " "function keys, keypad keys, and other special keys. In no-delay mode, raise " "an exception if there is no input." msgstr "" -#: ../Doc/library/curses.rst:922 +#: library/curses.rst:924 msgid "" "Get a character, returning a string instead of an integer, as :meth:`getch` " "does. Function keys, keypad keys and other special keys return a multibyte " @@ -1070,35 +1071,35 @@ msgid "" "there is no input." msgstr "" -#: ../Doc/library/curses.rst:930 +#: library/curses.rst:932 msgid "Return a tuple ``(y, x)`` of the height and width of the window." msgstr "" -#: ../Doc/library/curses.rst:935 +#: library/curses.rst:937 msgid "" "Return the beginning coordinates of this window relative to its parent " "window as a tuple ``(y, x)``. Return ``(-1, -1)`` if this window has no " "parent." msgstr "" -#: ../Doc/library/curses.rst:945 +#: library/curses.rst:947 msgid "" "Read a bytes object from the user, with primitive line editing capacity." msgstr "" -#: ../Doc/library/curses.rst:950 +#: library/curses.rst:952 msgid "" "Return a tuple ``(y, x)`` of current cursor position relative to the " "window's upper-left corner." msgstr "" -#: ../Doc/library/curses.rst:957 +#: library/curses.rst:959 msgid "" "Display a horizontal line starting at ``(y, x)`` with length *n* consisting " "of the character *ch*." msgstr "" -#: ../Doc/library/curses.rst:963 +#: library/curses.rst:965 msgid "" "If *flag* is ``False``, curses no longer considers using the hardware insert/" "delete character feature of the terminal; if *flag* is ``True``, use of " @@ -1106,13 +1107,13 @@ msgid "" "initialized, use of character insert/delete is enabled by default." msgstr "" -#: ../Doc/library/curses.rst:971 +#: library/curses.rst:973 msgid "" "If *flag* is ``True``, :mod:`curses` will try and use hardware line editing " "facilities. Otherwise, line insertion/deletion are disabled." msgstr "" -#: ../Doc/library/curses.rst:977 +#: library/curses.rst:979 msgid "" "If *flag* is ``True``, any change in the window image automatically causes " "the window to be refreshed; you no longer have to call :meth:`refresh` " @@ -1120,19 +1121,19 @@ msgid "" "calls to wrefresh. This option is disabled by default." msgstr "" -#: ../Doc/library/curses.rst:985 +#: library/curses.rst:987 msgid "" "Return the character at the given position in the window. The bottom 8 bits " "are the character proper, and upper bits are the attributes." msgstr "" -#: ../Doc/library/curses.rst:992 +#: library/curses.rst:994 msgid "" "Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " "from position *x* right by one character." msgstr "" -#: ../Doc/library/curses.rst:998 +#: library/curses.rst:1000 msgid "" "Insert *nlines* lines into the specified window above the current line. The " "*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " @@ -1141,13 +1142,13 @@ msgid "" "remains the same." msgstr "" -#: ../Doc/library/curses.rst:1007 +#: library/curses.rst:1009 msgid "" "Insert a blank line under the cursor. All following lines are moved down by " "one line." msgstr "" -#: ../Doc/library/curses.rst:1014 +#: library/curses.rst:1016 msgid "" "Insert a character string (as many characters as will fit on the line) " "before the character under the cursor, up to *n* characters. If *n* is " @@ -1157,7 +1158,7 @@ msgid "" "if specified)." msgstr "" -#: ../Doc/library/curses.rst:1024 +#: library/curses.rst:1026 msgid "" "Insert a character string (as many characters as will fit on the line) " "before the character under the cursor. All characters to the right of the " @@ -1166,7 +1167,7 @@ msgid "" "specified)." msgstr "" -#: ../Doc/library/curses.rst:1033 +#: library/curses.rst:1035 msgid "" "Return a bytes object of characters, extracted from the window starting at " "the current cursor position, or at *y*, *x* if specified. Attributes are " @@ -1174,76 +1175,76 @@ msgid "" "string at most *n* characters long (exclusive of the trailing NUL)." msgstr "" -#: ../Doc/library/curses.rst:1041 +#: library/curses.rst:1043 msgid "" "Return ``True`` if the specified line was modified since the last call to :" "meth:`refresh`; otherwise return ``False``. Raise a :exc:`curses.error` " "exception if *line* is not valid for the given window." msgstr "" -#: ../Doc/library/curses.rst:1048 +#: library/curses.rst:1050 msgid "" "Return ``True`` if the specified window was modified since the last call to :" "meth:`refresh`; otherwise return ``False``." msgstr "" -#: ../Doc/library/curses.rst:1054 +#: library/curses.rst:1056 msgid "" "If *flag* is ``True``, escape sequences generated by some keys (keypad, " "function keys) will be interpreted by :mod:`curses`. If *flag* is ``False``, " "escape sequences will be left as is in the input stream." msgstr "" -#: ../Doc/library/curses.rst:1061 +#: library/curses.rst:1063 msgid "" "If *flag* is ``True``, cursor is left where it is on update, instead of " "being at \"cursor position.\" This reduces cursor movement where possible. " "If possible the cursor will be made invisible." msgstr "" -#: ../Doc/library/curses.rst:1065 +#: library/curses.rst:1067 msgid "" "If *flag* is ``False``, cursor will always be at \"cursor position\" after " "an update." msgstr "" -#: ../Doc/library/curses.rst:1070 +#: library/curses.rst:1072 msgid "Move cursor to ``(new_y, new_x)``." msgstr "" -#: ../Doc/library/curses.rst:1075 +#: library/curses.rst:1077 msgid "" "Move the window inside its parent window. The screen-relative parameters of " "the window are not changed. This routine is used to display different parts " "of the parent window at the same physical position on the screen." msgstr "" -#: ../Doc/library/curses.rst:1082 +#: library/curses.rst:1084 msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." msgstr "" -#: ../Doc/library/curses.rst:1087 +#: library/curses.rst:1089 msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." msgstr "" -#: ../Doc/library/curses.rst:1092 +#: library/curses.rst:1094 msgid "If *flag* is ``True``, escape sequences will not be timed out." msgstr "" -#: ../Doc/library/curses.rst:1094 +#: library/curses.rst:1096 msgid "" "If *flag* is ``False``, after a few milliseconds, an escape sequence will " "not be interpreted, and will be left in the input stream as is." msgstr "" -#: ../Doc/library/curses.rst:1100 +#: library/curses.rst:1102 msgid "" "Mark for refresh but wait. This function updates the data structure " "representing the desired state of the window, but does not force an update " "of the physical screen. To accomplish that, call :func:`doupdate`." msgstr "" -#: ../Doc/library/curses.rst:1107 +#: library/curses.rst:1109 msgid "" "Overlay the window on top of *destwin*. The windows need not be the same " "size, only the overlapping region is copied. This copy is non-destructive, " @@ -1251,7 +1252,7 @@ msgid "" "contents of *destwin*." msgstr "" -#: ../Doc/library/curses.rst:1112 +#: library/curses.rst:1114 msgid "" "To get fine-grained control over the copied region, the second form of :meth:" "`overlay` can be used. *sminrow* and *smincol* are the upper-left " @@ -1259,7 +1260,7 @@ msgid "" "in the destination window." msgstr "" -#: ../Doc/library/curses.rst:1120 +#: library/curses.rst:1122 msgid "" "Overwrite the window on top of *destwin*. The windows need not be the same " "size, in which case only the overlapping region is copied. This copy is " @@ -1267,7 +1268,7 @@ msgid "" "the old contents of *destwin*." msgstr "" -#: ../Doc/library/curses.rst:1125 +#: library/curses.rst:1127 msgid "" "To get fine-grained control over the copied region, the second form of :meth:" "`overwrite` can be used. *sminrow* and *smincol* are the upper-left " @@ -1275,31 +1276,31 @@ msgid "" "the destination window." msgstr "" -#: ../Doc/library/curses.rst:1133 +#: library/curses.rst:1135 msgid "" "Write all data associated with the window into the provided file object. " "This information can be later retrieved using the :func:`getwin` function." msgstr "" -#: ../Doc/library/curses.rst:1139 +#: library/curses.rst:1141 msgid "" "Indicate that the *num* screen lines, starting at line *beg*, are corrupted " "and should be completely redrawn on the next :meth:`refresh` call." msgstr "" -#: ../Doc/library/curses.rst:1145 +#: library/curses.rst:1147 msgid "" "Touch the entire window, causing it to be completely redrawn on the next :" "meth:`refresh` call." msgstr "" -#: ../Doc/library/curses.rst:1151 +#: library/curses.rst:1153 msgid "" "Update the display immediately (sync actual screen with previous drawing/" "deleting methods)." msgstr "" -#: ../Doc/library/curses.rst:1154 +#: library/curses.rst:1156 msgid "" "The 6 optional arguments can only be specified when the window is a pad " "created with :func:`newpad`. The additional parameters are needed to " @@ -1314,7 +1315,7 @@ msgid "" "*smincol* are treated as if they were zero." msgstr "" -#: ../Doc/library/curses.rst:1168 +#: library/curses.rst:1170 msgid "" "Reallocate storage for a curses window to adjust its dimensions to the " "specified values. If either dimension is larger than the current values, " @@ -1322,11 +1323,11 @@ msgid "" "rendition (as set by :meth:`bkgdset`) merged into them." msgstr "" -#: ../Doc/library/curses.rst:1176 +#: library/curses.rst:1178 msgid "Scroll the screen or scrolling region upward by *lines* lines." msgstr "" -#: ../Doc/library/curses.rst:1181 +#: library/curses.rst:1183 msgid "" "Control what happens when the cursor of a window is moved off the edge of " "the window or scrolling region, either as a result of a newline action on " @@ -1336,54 +1337,54 @@ msgid "" "scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." msgstr "" -#: ../Doc/library/curses.rst:1191 +#: library/curses.rst:1193 msgid "" "Set the scrolling region from line *top* to line *bottom*. All scrolling " "actions will take place in this region." msgstr "" -#: ../Doc/library/curses.rst:1197 +#: library/curses.rst:1199 msgid "" "Turn off the standout attribute. On some terminals this has the side effect " "of turning off all attributes." msgstr "" -#: ../Doc/library/curses.rst:1203 +#: library/curses.rst:1205 msgid "Turn on attribute *A_STANDOUT*." msgstr "" -#: ../Doc/library/curses.rst:1209 ../Doc/library/curses.rst:1216 +#: library/curses.rst:1218 msgid "" "Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, " "and whose width/height is *ncols*/*nlines*." msgstr "" -#: ../Doc/library/curses.rst:1219 +#: library/curses.rst:1221 msgid "" "By default, the sub-window will extend from the specified position to the " "lower right corner of the window." msgstr "" -#: ../Doc/library/curses.rst:1225 +#: library/curses.rst:1227 msgid "" "Touch each location in the window that has been touched in any of its " "ancestor windows. This routine is called by :meth:`refresh`, so it should " "almost never be necessary to call it manually." msgstr "" -#: ../Doc/library/curses.rst:1232 +#: library/curses.rst:1234 msgid "" "If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " "there is a change in the window." msgstr "" -#: ../Doc/library/curses.rst:1238 +#: library/curses.rst:1240 msgid "" "Touch all locations in ancestors of the window that have been changed in " "the window." msgstr "" -#: ../Doc/library/curses.rst:1244 +#: library/curses.rst:1246 msgid "" "Set blocking or non-blocking read behavior for the window. If *delay* is " "negative, blocking read is used (which will wait indefinitely for input). " @@ -1393,7 +1394,7 @@ msgid "" "still no input at the end of that time." msgstr "" -#: ../Doc/library/curses.rst:1254 +#: library/curses.rst:1256 msgid "" "Pretend *count* lines have been changed, starting with line *start*. If " "*changed* is supplied, it specifies whether the affected lines are marked as " @@ -1401,51 +1402,51 @@ msgid "" "``=False``)." msgstr "" -#: ../Doc/library/curses.rst:1261 +#: library/curses.rst:1263 msgid "" "Pretend the whole window has been changed, for purposes of drawing " "optimizations." msgstr "" -#: ../Doc/library/curses.rst:1267 +#: library/curses.rst:1269 msgid "" "Mark all lines in the window as unchanged since the last call to :meth:" "`refresh`." msgstr "" -#: ../Doc/library/curses.rst:1274 +#: library/curses.rst:1276 msgid "" "Display a vertical line starting at ``(y, x)`` with length *n* consisting of " "the character *ch*." msgstr "" -#: ../Doc/library/curses.rst:1279 +#: library/curses.rst:1281 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/curses.rst:1281 +#: library/curses.rst:1283 msgid "The :mod:`curses` module defines the following data members:" msgstr "" -#: ../Doc/library/curses.rst:1286 +#: library/curses.rst:1288 msgid "" "Some curses routines that return an integer, such as :meth:`~window." "getch`, return :const:`ERR` upon failure." msgstr "" -#: ../Doc/library/curses.rst:1292 +#: library/curses.rst:1294 msgid "" "Some curses routines that return an integer, such as :func:`napms`, " "return :const:`OK` upon success." msgstr "" -#: ../Doc/library/curses.rst:1298 +#: library/curses.rst:1300 msgid "" "A bytes object representing the current version of the module. Also " "available as :const:`__version__`." msgstr "" -#: ../Doc/library/curses.rst:1304 +#: library/curses.rst:1306 msgid "" "A named tuple containing the three components of the ncurses library " "version: *major*, *minor*, and *patch*. All values are integers. The " @@ -1453,966 +1454,965 @@ msgid "" "is equivalent to ``curses.ncurses_version.major`` and so on." msgstr "" -#: ../Doc/library/curses.rst:1309 +#: library/curses.rst:1311 msgid "Availability: if the ncurses library is used." msgstr "" -#: ../Doc/library/curses.rst:1314 +#: library/curses.rst:1316 msgid "" "Some constants are available to specify character cell attributes. The exact " "constants available are system dependent." msgstr "" -#: ../Doc/library/curses.rst:1318 +#: library/curses.rst:1320 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/curses.rst:1318 ../Doc/library/curses.rst:1366 -#: ../Doc/library/curses.rst:1610 +#: library/curses.rst:1368 library/curses.rst:1612 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/curses.rst:1320 +#: library/curses.rst:1322 msgid "``A_ALTCHARSET``" msgstr "``A_ALTCHARSET``" -#: ../Doc/library/curses.rst:1320 +#: library/curses.rst:1322 msgid "Alternate character set mode" msgstr "" -#: ../Doc/library/curses.rst:1322 +#: library/curses.rst:1324 msgid "``A_BLINK``" msgstr "``A_BLINK``" -#: ../Doc/library/curses.rst:1322 +#: library/curses.rst:1324 msgid "Blink mode" msgstr "" -#: ../Doc/library/curses.rst:1324 +#: library/curses.rst:1326 msgid "``A_BOLD``" msgstr "``A_BOLD``" -#: ../Doc/library/curses.rst:1324 +#: library/curses.rst:1326 msgid "Bold mode" msgstr "" -#: ../Doc/library/curses.rst:1326 +#: library/curses.rst:1328 msgid "``A_DIM``" msgstr "``A_DIM``" -#: ../Doc/library/curses.rst:1326 +#: library/curses.rst:1328 msgid "Dim mode" msgstr "" -#: ../Doc/library/curses.rst:1328 +#: library/curses.rst:1330 msgid "``A_INVIS``" msgstr "``A_INVIS``" -#: ../Doc/library/curses.rst:1328 +#: library/curses.rst:1330 msgid "Invisible or blank mode" msgstr "" -#: ../Doc/library/curses.rst:1330 +#: library/curses.rst:1332 msgid "``A_ITALIC``" msgstr "``A_ITALIC``" -#: ../Doc/library/curses.rst:1330 +#: library/curses.rst:1332 msgid "Italic mode" msgstr "" -#: ../Doc/library/curses.rst:1332 +#: library/curses.rst:1334 msgid "``A_NORMAL``" msgstr "``A_NORMAL``" -#: ../Doc/library/curses.rst:1332 +#: library/curses.rst:1334 msgid "Normal attribute" msgstr "Attribut normal" -#: ../Doc/library/curses.rst:1334 +#: library/curses.rst:1336 msgid "``A_PROTECT``" msgstr "``A_PROTECT``" -#: ../Doc/library/curses.rst:1334 +#: library/curses.rst:1336 msgid "Protected mode" msgstr "" -#: ../Doc/library/curses.rst:1336 +#: library/curses.rst:1338 msgid "``A_REVERSE``" msgstr "``A_REVERSE``" -#: ../Doc/library/curses.rst:1336 +#: library/curses.rst:1338 msgid "Reverse background and foreground colors" msgstr "" -#: ../Doc/library/curses.rst:1339 +#: library/curses.rst:1341 msgid "``A_STANDOUT``" msgstr "``A_STANDOUT``" -#: ../Doc/library/curses.rst:1339 +#: library/curses.rst:1341 msgid "Standout mode" msgstr "" -#: ../Doc/library/curses.rst:1341 +#: library/curses.rst:1343 msgid "``A_UNDERLINE``" msgstr "``A_UNDERLINE``" -#: ../Doc/library/curses.rst:1341 +#: library/curses.rst:1343 msgid "Underline mode" msgstr "" -#: ../Doc/library/curses.rst:1343 +#: library/curses.rst:1345 msgid "``A_HORIZONTAL``" msgstr "``A_HORIZONTAL``" -#: ../Doc/library/curses.rst:1343 +#: library/curses.rst:1345 msgid "Horizontal highlight" msgstr "" -#: ../Doc/library/curses.rst:1345 +#: library/curses.rst:1347 msgid "``A_LEFT``" msgstr "``A_LEFT``" -#: ../Doc/library/curses.rst:1345 +#: library/curses.rst:1347 msgid "Left highlight" msgstr "" -#: ../Doc/library/curses.rst:1347 +#: library/curses.rst:1349 msgid "``A_LOW``" msgstr "``A_LOW``" -#: ../Doc/library/curses.rst:1347 +#: library/curses.rst:1349 msgid "Low highlight" msgstr "" -#: ../Doc/library/curses.rst:1349 +#: library/curses.rst:1351 msgid "``A_RIGHT``" msgstr "``A_RIGHT``" -#: ../Doc/library/curses.rst:1349 +#: library/curses.rst:1351 msgid "Right highlight" msgstr "" -#: ../Doc/library/curses.rst:1351 +#: library/curses.rst:1353 msgid "``A_TOP``" msgstr "``A_TOP``" -#: ../Doc/library/curses.rst:1351 +#: library/curses.rst:1353 msgid "Top highlight" msgstr "" -#: ../Doc/library/curses.rst:1353 +#: library/curses.rst:1355 msgid "``A_VERTICAL``" msgstr "``A_VERTICAL``" -#: ../Doc/library/curses.rst:1353 +#: library/curses.rst:1355 msgid "Vertical highlight" msgstr "" -#: ../Doc/library/curses.rst:1355 ../Doc/library/curses.rst:1371 +#: library/curses.rst:1373 msgid "``A_CHARTEXT``" msgstr "``A_CHARTEXT``" -#: ../Doc/library/curses.rst:1355 ../Doc/library/curses.rst:1371 +#: library/curses.rst:1373 msgid "Bit-mask to extract a character" msgstr "" -#: ../Doc/library/curses.rst:1359 +#: library/curses.rst:1361 msgid "``A_ITALIC`` was added." msgstr "" -#: ../Doc/library/curses.rst:1362 +#: library/curses.rst:1364 msgid "" "Several constants are available to extract corresponding attributes returned " "by some methods." msgstr "" -#: ../Doc/library/curses.rst:1366 +#: library/curses.rst:1368 msgid "Bit-mask" msgstr "" -#: ../Doc/library/curses.rst:1368 +#: library/curses.rst:1370 msgid "``A_ATTRIBUTES``" msgstr "``A_ATTRIBUTES``" -#: ../Doc/library/curses.rst:1368 +#: library/curses.rst:1370 msgid "Bit-mask to extract attributes" msgstr "" -#: ../Doc/library/curses.rst:1374 +#: library/curses.rst:1376 msgid "``A_COLOR``" msgstr "``A_COLOR``" -#: ../Doc/library/curses.rst:1374 +#: library/curses.rst:1376 msgid "Bit-mask to extract color-pair field information" msgstr "" -#: ../Doc/library/curses.rst:1378 +#: library/curses.rst:1380 msgid "" "Keys are referred to by integer constants with names starting with " "``KEY_``. The exact keycaps available are system dependent." msgstr "" -#: ../Doc/library/curses.rst:1384 +#: library/curses.rst:1386 msgid "Key constant" msgstr "" -#: ../Doc/library/curses.rst:1384 +#: library/curses.rst:1386 msgid "Key" -msgstr "" +msgstr "Clé" -#: ../Doc/library/curses.rst:1386 +#: library/curses.rst:1388 msgid "``KEY_MIN``" msgstr "``KEY_MIN``" -#: ../Doc/library/curses.rst:1386 +#: library/curses.rst:1388 msgid "Minimum key value" msgstr "" -#: ../Doc/library/curses.rst:1388 +#: library/curses.rst:1390 msgid "``KEY_BREAK``" msgstr "``KEY_BREAK``" -#: ../Doc/library/curses.rst:1388 +#: library/curses.rst:1390 msgid "Break key (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1390 +#: library/curses.rst:1392 msgid "``KEY_DOWN``" msgstr "``KEY_DOWN``" -#: ../Doc/library/curses.rst:1390 +#: library/curses.rst:1392 msgid "Down-arrow" msgstr "" -#: ../Doc/library/curses.rst:1392 +#: library/curses.rst:1394 msgid "``KEY_UP``" msgstr "``KEY_UP``" -#: ../Doc/library/curses.rst:1392 +#: library/curses.rst:1394 msgid "Up-arrow" msgstr "" -#: ../Doc/library/curses.rst:1394 +#: library/curses.rst:1396 msgid "``KEY_LEFT``" msgstr "``KEY_LEFT``" -#: ../Doc/library/curses.rst:1394 +#: library/curses.rst:1396 msgid "Left-arrow" msgstr "" -#: ../Doc/library/curses.rst:1396 +#: library/curses.rst:1398 msgid "``KEY_RIGHT``" msgstr "``KEY_RIGHT``" -#: ../Doc/library/curses.rst:1396 +#: library/curses.rst:1398 msgid "Right-arrow" msgstr "" -#: ../Doc/library/curses.rst:1398 +#: library/curses.rst:1400 msgid "``KEY_HOME``" msgstr "``KEY_HOME``" -#: ../Doc/library/curses.rst:1398 +#: library/curses.rst:1400 msgid "Home key (upward+left arrow)" msgstr "" -#: ../Doc/library/curses.rst:1400 +#: library/curses.rst:1402 msgid "``KEY_BACKSPACE``" msgstr "``KEY_BACKSPACE``" -#: ../Doc/library/curses.rst:1400 +#: library/curses.rst:1402 msgid "Backspace (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1402 +#: library/curses.rst:1404 msgid "``KEY_F0``" msgstr "``KEY_F0``" -#: ../Doc/library/curses.rst:1402 +#: library/curses.rst:1404 msgid "Function keys. Up to 64 function keys are supported." msgstr "" -#: ../Doc/library/curses.rst:1405 +#: library/curses.rst:1407 msgid "``KEY_Fn``" msgstr "``KEY_Fn``" -#: ../Doc/library/curses.rst:1405 +#: library/curses.rst:1407 msgid "Value of function key *n*" msgstr "" -#: ../Doc/library/curses.rst:1407 +#: library/curses.rst:1409 msgid "``KEY_DL``" msgstr "``KEY_DL``" -#: ../Doc/library/curses.rst:1407 +#: library/curses.rst:1409 msgid "Delete line" msgstr "" -#: ../Doc/library/curses.rst:1409 +#: library/curses.rst:1411 msgid "``KEY_IL``" msgstr "``KEY_IL``" -#: ../Doc/library/curses.rst:1409 +#: library/curses.rst:1411 msgid "Insert line" msgstr "" -#: ../Doc/library/curses.rst:1411 +#: library/curses.rst:1413 msgid "``KEY_DC``" msgstr "``KEY_DC``" -#: ../Doc/library/curses.rst:1411 +#: library/curses.rst:1413 msgid "Delete character" msgstr "" -#: ../Doc/library/curses.rst:1413 +#: library/curses.rst:1415 msgid "``KEY_IC``" msgstr "``KEY_IC``" -#: ../Doc/library/curses.rst:1413 +#: library/curses.rst:1415 msgid "Insert char or enter insert mode" msgstr "" -#: ../Doc/library/curses.rst:1415 +#: library/curses.rst:1417 msgid "``KEY_EIC``" msgstr "``KEY_EIC``" -#: ../Doc/library/curses.rst:1415 +#: library/curses.rst:1417 msgid "Exit insert char mode" msgstr "" -#: ../Doc/library/curses.rst:1417 +#: library/curses.rst:1419 msgid "``KEY_CLEAR``" msgstr "``KEY_CLEAR``" -#: ../Doc/library/curses.rst:1417 +#: library/curses.rst:1419 msgid "Clear screen" msgstr "" -#: ../Doc/library/curses.rst:1419 +#: library/curses.rst:1421 msgid "``KEY_EOS``" msgstr "``KEY_EOS``" -#: ../Doc/library/curses.rst:1419 +#: library/curses.rst:1421 msgid "Clear to end of screen" msgstr "" -#: ../Doc/library/curses.rst:1421 +#: library/curses.rst:1423 msgid "``KEY_EOL``" msgstr "``KEY_EOL``" -#: ../Doc/library/curses.rst:1421 +#: library/curses.rst:1423 msgid "Clear to end of line" msgstr "" -#: ../Doc/library/curses.rst:1423 +#: library/curses.rst:1425 msgid "``KEY_SF``" msgstr "``KEY_SF``" -#: ../Doc/library/curses.rst:1423 +#: library/curses.rst:1425 msgid "Scroll 1 line forward" msgstr "" -#: ../Doc/library/curses.rst:1425 +#: library/curses.rst:1427 msgid "``KEY_SR``" msgstr "``KEY_SR``" -#: ../Doc/library/curses.rst:1425 +#: library/curses.rst:1427 msgid "Scroll 1 line backward (reverse)" msgstr "" -#: ../Doc/library/curses.rst:1427 +#: library/curses.rst:1429 msgid "``KEY_NPAGE``" msgstr "``KEY_NPAGE``" -#: ../Doc/library/curses.rst:1427 +#: library/curses.rst:1429 msgid "Next page" msgstr "" -#: ../Doc/library/curses.rst:1429 +#: library/curses.rst:1431 msgid "``KEY_PPAGE``" msgstr "``KEY_PPAGE``" -#: ../Doc/library/curses.rst:1429 +#: library/curses.rst:1431 msgid "Previous page" msgstr "" -#: ../Doc/library/curses.rst:1431 +#: library/curses.rst:1433 msgid "``KEY_STAB``" msgstr "``KEY_STAB``" -#: ../Doc/library/curses.rst:1431 +#: library/curses.rst:1433 msgid "Set tab" msgstr "" -#: ../Doc/library/curses.rst:1433 +#: library/curses.rst:1435 msgid "``KEY_CTAB``" msgstr "``KEY_CTAB``" -#: ../Doc/library/curses.rst:1433 +#: library/curses.rst:1435 msgid "Clear tab" msgstr "" -#: ../Doc/library/curses.rst:1435 +#: library/curses.rst:1437 msgid "``KEY_CATAB``" msgstr "``KEY_CATAB``" -#: ../Doc/library/curses.rst:1435 +#: library/curses.rst:1437 msgid "Clear all tabs" msgstr "" -#: ../Doc/library/curses.rst:1437 +#: library/curses.rst:1439 msgid "``KEY_ENTER``" msgstr "``KEY_ENTER``" -#: ../Doc/library/curses.rst:1437 +#: library/curses.rst:1439 msgid "Enter or send (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1439 +#: library/curses.rst:1441 msgid "``KEY_SRESET``" msgstr "``KEY_SRESET``" -#: ../Doc/library/curses.rst:1439 +#: library/curses.rst:1441 msgid "Soft (partial) reset (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1441 +#: library/curses.rst:1443 msgid "``KEY_RESET``" msgstr "``KEY_RESET``" -#: ../Doc/library/curses.rst:1441 +#: library/curses.rst:1443 msgid "Reset or hard reset (unreliable)" msgstr "" -#: ../Doc/library/curses.rst:1443 +#: library/curses.rst:1445 msgid "``KEY_PRINT``" msgstr "``KEY_PRINT``" -#: ../Doc/library/curses.rst:1443 +#: library/curses.rst:1445 msgid "Print" msgstr "" -#: ../Doc/library/curses.rst:1445 +#: library/curses.rst:1447 msgid "``KEY_LL``" msgstr "``KEY_LL``" -#: ../Doc/library/curses.rst:1445 +#: library/curses.rst:1447 msgid "Home down or bottom (lower left)" msgstr "" -#: ../Doc/library/curses.rst:1447 +#: library/curses.rst:1449 msgid "``KEY_A1``" msgstr "``KEY_A1``" -#: ../Doc/library/curses.rst:1447 +#: library/curses.rst:1449 msgid "Upper left of keypad" msgstr "" -#: ../Doc/library/curses.rst:1449 +#: library/curses.rst:1451 msgid "``KEY_A3``" msgstr "``KEY_A3``" -#: ../Doc/library/curses.rst:1449 +#: library/curses.rst:1451 msgid "Upper right of keypad" msgstr "" -#: ../Doc/library/curses.rst:1451 +#: library/curses.rst:1453 msgid "``KEY_B2``" msgstr "``KEY_B2``" -#: ../Doc/library/curses.rst:1451 +#: library/curses.rst:1453 msgid "Center of keypad" msgstr "" -#: ../Doc/library/curses.rst:1453 +#: library/curses.rst:1455 msgid "``KEY_C1``" msgstr "``KEY_C1``" -#: ../Doc/library/curses.rst:1453 +#: library/curses.rst:1455 msgid "Lower left of keypad" msgstr "" -#: ../Doc/library/curses.rst:1455 +#: library/curses.rst:1457 msgid "``KEY_C3``" msgstr "``KEY_C3``" -#: ../Doc/library/curses.rst:1455 +#: library/curses.rst:1457 msgid "Lower right of keypad" msgstr "" -#: ../Doc/library/curses.rst:1457 +#: library/curses.rst:1459 msgid "``KEY_BTAB``" msgstr "``KEY_BTAB``" -#: ../Doc/library/curses.rst:1457 +#: library/curses.rst:1459 msgid "Back tab" msgstr "" -#: ../Doc/library/curses.rst:1459 +#: library/curses.rst:1461 msgid "``KEY_BEG``" msgstr "``KEY_BEG``" -#: ../Doc/library/curses.rst:1459 +#: library/curses.rst:1461 msgid "Beg (beginning)" msgstr "" -#: ../Doc/library/curses.rst:1461 +#: library/curses.rst:1463 msgid "``KEY_CANCEL``" msgstr "``KEY_CANCEL``" -#: ../Doc/library/curses.rst:1461 +#: library/curses.rst:1463 msgid "Cancel" msgstr "" -#: ../Doc/library/curses.rst:1463 +#: library/curses.rst:1465 msgid "``KEY_CLOSE``" msgstr "``KEY_CLOSE``" -#: ../Doc/library/curses.rst:1463 +#: library/curses.rst:1465 msgid "Close" msgstr "*Close*" -#: ../Doc/library/curses.rst:1465 +#: library/curses.rst:1467 msgid "``KEY_COMMAND``" msgstr "``KEY_COMMAND``" -#: ../Doc/library/curses.rst:1465 +#: library/curses.rst:1467 msgid "Cmd (command)" msgstr "" -#: ../Doc/library/curses.rst:1467 +#: library/curses.rst:1469 msgid "``KEY_COPY``" msgstr "``KEY_COPY``" -#: ../Doc/library/curses.rst:1467 +#: library/curses.rst:1469 msgid "Copy" msgstr "*Copy*" -#: ../Doc/library/curses.rst:1469 +#: library/curses.rst:1471 msgid "``KEY_CREATE``" msgstr "``KEY_CREATE``" -#: ../Doc/library/curses.rst:1469 +#: library/curses.rst:1471 msgid "Create" msgstr "" -#: ../Doc/library/curses.rst:1471 +#: library/curses.rst:1473 msgid "``KEY_END``" msgstr "``KEY_END``" -#: ../Doc/library/curses.rst:1471 +#: library/curses.rst:1473 msgid "End" msgstr "" -#: ../Doc/library/curses.rst:1473 +#: library/curses.rst:1475 msgid "``KEY_EXIT``" msgstr "``KEY_EXIT``" -#: ../Doc/library/curses.rst:1473 +#: library/curses.rst:1475 msgid "Exit" msgstr "*Exit*" -#: ../Doc/library/curses.rst:1475 +#: library/curses.rst:1477 msgid "``KEY_FIND``" msgstr "``KEY_FIND``" -#: ../Doc/library/curses.rst:1475 +#: library/curses.rst:1477 msgid "Find" msgstr "" -#: ../Doc/library/curses.rst:1477 +#: library/curses.rst:1479 msgid "``KEY_HELP``" msgstr "``KEY_HELP``" -#: ../Doc/library/curses.rst:1477 +#: library/curses.rst:1479 msgid "Help" msgstr "" -#: ../Doc/library/curses.rst:1479 +#: library/curses.rst:1481 msgid "``KEY_MARK``" msgstr "``KEY_MARK``" -#: ../Doc/library/curses.rst:1479 +#: library/curses.rst:1481 msgid "Mark" msgstr "" -#: ../Doc/library/curses.rst:1481 +#: library/curses.rst:1483 msgid "``KEY_MESSAGE``" msgstr "``KEY_MESSAGE``" -#: ../Doc/library/curses.rst:1481 +#: library/curses.rst:1483 msgid "Message" msgstr "" -#: ../Doc/library/curses.rst:1483 +#: library/curses.rst:1485 msgid "``KEY_MOVE``" msgstr "``KEY_MOVE``" -#: ../Doc/library/curses.rst:1483 +#: library/curses.rst:1485 msgid "Move" msgstr "" -#: ../Doc/library/curses.rst:1485 +#: library/curses.rst:1487 msgid "``KEY_NEXT``" msgstr "``KEY_NEXT``" -#: ../Doc/library/curses.rst:1485 +#: library/curses.rst:1487 msgid "Next" msgstr "" -#: ../Doc/library/curses.rst:1487 +#: library/curses.rst:1489 msgid "``KEY_OPEN``" msgstr "``KEY_OPEN``" -#: ../Doc/library/curses.rst:1487 +#: library/curses.rst:1489 msgid "Open" msgstr "" -#: ../Doc/library/curses.rst:1489 +#: library/curses.rst:1491 msgid "``KEY_OPTIONS``" msgstr "``KEY_OPTIONS``" -#: ../Doc/library/curses.rst:1489 +#: library/curses.rst:1491 msgid "Options" msgstr "Options" -#: ../Doc/library/curses.rst:1491 +#: library/curses.rst:1493 msgid "``KEY_PREVIOUS``" msgstr "``KEY_PREVIOUS``" -#: ../Doc/library/curses.rst:1491 +#: library/curses.rst:1493 msgid "Prev (previous)" msgstr "" -#: ../Doc/library/curses.rst:1493 +#: library/curses.rst:1495 msgid "``KEY_REDO``" msgstr "``KEY_REDO``" -#: ../Doc/library/curses.rst:1493 +#: library/curses.rst:1495 msgid "Redo" msgstr "*Redo*" -#: ../Doc/library/curses.rst:1495 +#: library/curses.rst:1497 msgid "``KEY_REFERENCE``" msgstr "``KEY_REFERENCE``" -#: ../Doc/library/curses.rst:1495 +#: library/curses.rst:1497 msgid "Ref (reference)" msgstr "" -#: ../Doc/library/curses.rst:1497 +#: library/curses.rst:1499 msgid "``KEY_REFRESH``" msgstr "``KEY_REFRESH``" -#: ../Doc/library/curses.rst:1497 +#: library/curses.rst:1499 msgid "Refresh" msgstr "" -#: ../Doc/library/curses.rst:1499 +#: library/curses.rst:1501 msgid "``KEY_REPLACE``" msgstr "``KEY_REPLACE``" -#: ../Doc/library/curses.rst:1499 +#: library/curses.rst:1501 msgid "Replace" msgstr "" -#: ../Doc/library/curses.rst:1501 +#: library/curses.rst:1503 msgid "``KEY_RESTART``" msgstr "``KEY_RESTART``" -#: ../Doc/library/curses.rst:1501 +#: library/curses.rst:1503 msgid "Restart" msgstr "" -#: ../Doc/library/curses.rst:1503 +#: library/curses.rst:1505 msgid "``KEY_RESUME``" msgstr "``KEY_RESUME``" -#: ../Doc/library/curses.rst:1503 +#: library/curses.rst:1505 msgid "Resume" msgstr "" -#: ../Doc/library/curses.rst:1505 +#: library/curses.rst:1507 msgid "``KEY_SAVE``" msgstr "``KEY_SAVE``" -#: ../Doc/library/curses.rst:1505 +#: library/curses.rst:1507 msgid "Save" msgstr "*Save*" -#: ../Doc/library/curses.rst:1507 +#: library/curses.rst:1509 msgid "``KEY_SBEG``" msgstr "``KEY_SBEG``" -#: ../Doc/library/curses.rst:1507 +#: library/curses.rst:1509 msgid "Shifted Beg (beginning)" msgstr "" -#: ../Doc/library/curses.rst:1509 +#: library/curses.rst:1511 msgid "``KEY_SCANCEL``" msgstr "``KEY_SCANCEL``" -#: ../Doc/library/curses.rst:1509 +#: library/curses.rst:1511 msgid "Shifted Cancel" msgstr "" -#: ../Doc/library/curses.rst:1511 +#: library/curses.rst:1513 msgid "``KEY_SCOMMAND``" msgstr "``KEY_SCOMMAND``" -#: ../Doc/library/curses.rst:1511 +#: library/curses.rst:1513 msgid "Shifted Command" msgstr "" -#: ../Doc/library/curses.rst:1513 +#: library/curses.rst:1515 msgid "``KEY_SCOPY``" msgstr "``KEY_SCOPY``" -#: ../Doc/library/curses.rst:1513 +#: library/curses.rst:1515 msgid "Shifted Copy" msgstr "" -#: ../Doc/library/curses.rst:1515 +#: library/curses.rst:1517 msgid "``KEY_SCREATE``" msgstr "``KEY_SCREATE``" -#: ../Doc/library/curses.rst:1515 +#: library/curses.rst:1517 msgid "Shifted Create" msgstr "" -#: ../Doc/library/curses.rst:1517 +#: library/curses.rst:1519 msgid "``KEY_SDC``" msgstr "``KEY_SDC``" -#: ../Doc/library/curses.rst:1517 +#: library/curses.rst:1519 msgid "Shifted Delete char" msgstr "" -#: ../Doc/library/curses.rst:1519 +#: library/curses.rst:1521 msgid "``KEY_SDL``" msgstr "``KEY_SDL``" -#: ../Doc/library/curses.rst:1519 +#: library/curses.rst:1521 msgid "Shifted Delete line" msgstr "" -#: ../Doc/library/curses.rst:1521 +#: library/curses.rst:1523 msgid "``KEY_SELECT``" msgstr "``KEY_SELECT``" -#: ../Doc/library/curses.rst:1521 +#: library/curses.rst:1523 msgid "Select" msgstr "" -#: ../Doc/library/curses.rst:1523 +#: library/curses.rst:1525 msgid "``KEY_SEND``" msgstr "``KEY_SEND``" -#: ../Doc/library/curses.rst:1523 +#: library/curses.rst:1525 msgid "Shifted End" msgstr "" -#: ../Doc/library/curses.rst:1525 +#: library/curses.rst:1527 msgid "``KEY_SEOL``" msgstr "``KEY_SEOL``" -#: ../Doc/library/curses.rst:1525 +#: library/curses.rst:1527 msgid "Shifted Clear line" msgstr "" -#: ../Doc/library/curses.rst:1527 +#: library/curses.rst:1529 msgid "``KEY_SEXIT``" msgstr "``KEY_SEXIT``" -#: ../Doc/library/curses.rst:1527 +#: library/curses.rst:1529 msgid "Shifted Exit" msgstr "" -#: ../Doc/library/curses.rst:1529 +#: library/curses.rst:1531 msgid "``KEY_SFIND``" msgstr "``KEY_SFIND``" -#: ../Doc/library/curses.rst:1529 +#: library/curses.rst:1531 msgid "Shifted Find" msgstr "" -#: ../Doc/library/curses.rst:1531 +#: library/curses.rst:1533 msgid "``KEY_SHELP``" msgstr "``KEY_SHELP``" -#: ../Doc/library/curses.rst:1531 +#: library/curses.rst:1533 msgid "Shifted Help" msgstr "" -#: ../Doc/library/curses.rst:1533 +#: library/curses.rst:1535 msgid "``KEY_SHOME``" msgstr "``KEY_SHOME``" -#: ../Doc/library/curses.rst:1533 +#: library/curses.rst:1535 msgid "Shifted Home" msgstr "" -#: ../Doc/library/curses.rst:1535 +#: library/curses.rst:1537 msgid "``KEY_SIC``" msgstr "``KEY_SIC``" -#: ../Doc/library/curses.rst:1535 +#: library/curses.rst:1537 msgid "Shifted Input" msgstr "" -#: ../Doc/library/curses.rst:1537 +#: library/curses.rst:1539 msgid "``KEY_SLEFT``" msgstr "``KEY_SLEFT``" -#: ../Doc/library/curses.rst:1537 +#: library/curses.rst:1539 msgid "Shifted Left arrow" msgstr "" -#: ../Doc/library/curses.rst:1539 +#: library/curses.rst:1541 msgid "``KEY_SMESSAGE``" msgstr "``KEY_SMESSAGE``" -#: ../Doc/library/curses.rst:1539 +#: library/curses.rst:1541 msgid "Shifted Message" msgstr "" -#: ../Doc/library/curses.rst:1541 +#: library/curses.rst:1543 msgid "``KEY_SMOVE``" msgstr "``KEY_SMOVE``" -#: ../Doc/library/curses.rst:1541 +#: library/curses.rst:1543 msgid "Shifted Move" msgstr "" -#: ../Doc/library/curses.rst:1543 +#: library/curses.rst:1545 msgid "``KEY_SNEXT``" msgstr "``KEY_SNEXT``" -#: ../Doc/library/curses.rst:1543 +#: library/curses.rst:1545 msgid "Shifted Next" msgstr "" -#: ../Doc/library/curses.rst:1545 +#: library/curses.rst:1547 msgid "``KEY_SOPTIONS``" msgstr "``KEY_SOPTIONS``" -#: ../Doc/library/curses.rst:1545 +#: library/curses.rst:1547 msgid "Shifted Options" msgstr "" -#: ../Doc/library/curses.rst:1547 +#: library/curses.rst:1549 msgid "``KEY_SPREVIOUS``" msgstr "``KEY_SPREVIOUS``" -#: ../Doc/library/curses.rst:1547 +#: library/curses.rst:1549 msgid "Shifted Prev" msgstr "" -#: ../Doc/library/curses.rst:1549 +#: library/curses.rst:1551 msgid "``KEY_SPRINT``" msgstr "``KEY_SPRINT``" -#: ../Doc/library/curses.rst:1549 +#: library/curses.rst:1551 msgid "Shifted Print" msgstr "" -#: ../Doc/library/curses.rst:1551 +#: library/curses.rst:1553 msgid "``KEY_SREDO``" msgstr "``KEY_SREDO``" -#: ../Doc/library/curses.rst:1551 +#: library/curses.rst:1553 msgid "Shifted Redo" msgstr "" -#: ../Doc/library/curses.rst:1553 +#: library/curses.rst:1555 msgid "``KEY_SREPLACE``" msgstr "``KEY_SREPLACE``" -#: ../Doc/library/curses.rst:1553 +#: library/curses.rst:1555 msgid "Shifted Replace" msgstr "" -#: ../Doc/library/curses.rst:1555 +#: library/curses.rst:1557 msgid "``KEY_SRIGHT``" msgstr "``KEY_SRIGHT``" -#: ../Doc/library/curses.rst:1555 +#: library/curses.rst:1557 msgid "Shifted Right arrow" msgstr "" -#: ../Doc/library/curses.rst:1557 +#: library/curses.rst:1559 msgid "``KEY_SRSUME``" msgstr "``KEY_SRSUME``" -#: ../Doc/library/curses.rst:1557 +#: library/curses.rst:1559 msgid "Shifted Resume" msgstr "" -#: ../Doc/library/curses.rst:1559 +#: library/curses.rst:1561 msgid "``KEY_SSAVE``" msgstr "``KEY_SSAVE``" -#: ../Doc/library/curses.rst:1559 +#: library/curses.rst:1561 msgid "Shifted Save" msgstr "" -#: ../Doc/library/curses.rst:1561 +#: library/curses.rst:1563 msgid "``KEY_SSUSPEND``" msgstr "``KEY_SSUSPEND``" -#: ../Doc/library/curses.rst:1561 +#: library/curses.rst:1563 msgid "Shifted Suspend" msgstr "" -#: ../Doc/library/curses.rst:1563 +#: library/curses.rst:1565 msgid "``KEY_SUNDO``" msgstr "``KEY_SUNDO``" -#: ../Doc/library/curses.rst:1563 +#: library/curses.rst:1565 msgid "Shifted Undo" msgstr "" -#: ../Doc/library/curses.rst:1565 +#: library/curses.rst:1567 msgid "``KEY_SUSPEND``" msgstr "``KEY_SUSPEND``" -#: ../Doc/library/curses.rst:1565 +#: library/curses.rst:1567 msgid "Suspend" msgstr "" -#: ../Doc/library/curses.rst:1567 +#: library/curses.rst:1569 msgid "``KEY_UNDO``" msgstr "``KEY_UNDO``" -#: ../Doc/library/curses.rst:1567 +#: library/curses.rst:1569 msgid "Undo" msgstr "*Undo*" -#: ../Doc/library/curses.rst:1569 +#: library/curses.rst:1571 msgid "``KEY_MOUSE``" msgstr "``KEY_MOUSE``" -#: ../Doc/library/curses.rst:1569 +#: library/curses.rst:1571 msgid "Mouse event has occurred" msgstr "" -#: ../Doc/library/curses.rst:1571 +#: library/curses.rst:1573 msgid "``KEY_RESIZE``" msgstr "``KEY_RESIZE``" -#: ../Doc/library/curses.rst:1571 +#: library/curses.rst:1573 msgid "Terminal resize event" msgstr "" -#: ../Doc/library/curses.rst:1573 +#: library/curses.rst:1575 msgid "``KEY_MAX``" msgstr "``KEY_MAX``" -#: ../Doc/library/curses.rst:1573 +#: library/curses.rst:1575 msgid "Maximum key value" msgstr "" -#: ../Doc/library/curses.rst:1576 +#: library/curses.rst:1578 msgid "" "On VT100s and their software emulations, such as X terminal emulators, there " "are normally at least four function keys (:const:`KEY_F1`, :const:`KEY_F2`, :" @@ -2423,64 +2423,63 @@ msgid "" "function keys); also, the following keypad mappings are standard:" msgstr "" -#: ../Doc/library/curses.rst:1585 +#: library/curses.rst:1587 msgid "Keycap" msgstr "" -#: ../Doc/library/curses.rst:1585 ../Doc/library/curses.rst:1702 -#: ../Doc/library/curses.rst:1826 +#: library/curses.rst:1704 library/curses.rst:1828 msgid "Constant" msgstr "Constante" -#: ../Doc/library/curses.rst:1587 +#: library/curses.rst:1589 msgid ":kbd:`Insert`" msgstr ":kbd:`Insert`" -#: ../Doc/library/curses.rst:1587 +#: library/curses.rst:1589 msgid "KEY_IC" msgstr "" -#: ../Doc/library/curses.rst:1589 +#: library/curses.rst:1591 msgid ":kbd:`Delete`" msgstr ":kbd:`Delete`" -#: ../Doc/library/curses.rst:1589 +#: library/curses.rst:1591 msgid "KEY_DC" msgstr "" -#: ../Doc/library/curses.rst:1591 +#: library/curses.rst:1593 msgid ":kbd:`Home`" msgstr ":kbd:`Home`" -#: ../Doc/library/curses.rst:1591 +#: library/curses.rst:1593 msgid "KEY_HOME" msgstr "KEY_HOME" -#: ../Doc/library/curses.rst:1593 +#: library/curses.rst:1595 msgid ":kbd:`End`" msgstr ":kbd:`End`" -#: ../Doc/library/curses.rst:1593 +#: library/curses.rst:1595 msgid "KEY_END" msgstr "KEY_END" -#: ../Doc/library/curses.rst:1595 +#: library/curses.rst:1597 msgid ":kbd:`Page Up`" msgstr ":kbd:`Page Up`" -#: ../Doc/library/curses.rst:1595 +#: library/curses.rst:1597 msgid "KEY_PPAGE" msgstr "KEY_PPAGE" -#: ../Doc/library/curses.rst:1597 +#: library/curses.rst:1599 msgid ":kbd:`Page Down`" msgstr ":kbd:`Page Down`" -#: ../Doc/library/curses.rst:1597 +#: library/curses.rst:1599 msgid "KEY_NPAGE" msgstr "KEY_NPAGE" -#: ../Doc/library/curses.rst:1600 +#: library/curses.rst:1602 msgid "" "The following table lists characters from the alternate character set. These " "are inherited from the VT100 terminal, and will generally be available on " @@ -2488,435 +2487,435 @@ msgid "" "available, curses falls back on a crude printable ASCII approximation." msgstr "" -#: ../Doc/library/curses.rst:1607 +#: library/curses.rst:1609 msgid "These are available only after :func:`initscr` has been called." msgstr "" -#: ../Doc/library/curses.rst:1610 +#: library/curses.rst:1612 msgid "ACS code" msgstr "" -#: ../Doc/library/curses.rst:1612 +#: library/curses.rst:1614 msgid "``ACS_BBSS``" msgstr "``ACS_BBSS``" -#: ../Doc/library/curses.rst:1612 +#: library/curses.rst:1614 msgid "alternate name for upper right corner" msgstr "" -#: ../Doc/library/curses.rst:1614 +#: library/curses.rst:1616 msgid "``ACS_BLOCK``" msgstr "``ACS_BLOCK``" -#: ../Doc/library/curses.rst:1614 +#: library/curses.rst:1616 msgid "solid square block" msgstr "" -#: ../Doc/library/curses.rst:1616 +#: library/curses.rst:1618 msgid "``ACS_BOARD``" msgstr "``ACS_BOARD``" -#: ../Doc/library/curses.rst:1616 +#: library/curses.rst:1618 msgid "board of squares" msgstr "" -#: ../Doc/library/curses.rst:1618 +#: library/curses.rst:1620 msgid "``ACS_BSBS``" msgstr "``ACS_BSBS``" -#: ../Doc/library/curses.rst:1618 +#: library/curses.rst:1620 msgid "alternate name for horizontal line" msgstr "" -#: ../Doc/library/curses.rst:1620 +#: library/curses.rst:1622 msgid "``ACS_BSSB``" msgstr "``ACS_BSSB``" -#: ../Doc/library/curses.rst:1620 +#: library/curses.rst:1622 msgid "alternate name for upper left corner" msgstr "" -#: ../Doc/library/curses.rst:1622 +#: library/curses.rst:1624 msgid "``ACS_BSSS``" msgstr "``ACS_BSSS``" -#: ../Doc/library/curses.rst:1622 +#: library/curses.rst:1624 msgid "alternate name for top tee" msgstr "" -#: ../Doc/library/curses.rst:1624 +#: library/curses.rst:1626 msgid "``ACS_BTEE``" msgstr "``ACS_BTEE``" -#: ../Doc/library/curses.rst:1624 +#: library/curses.rst:1626 msgid "bottom tee" msgstr "" -#: ../Doc/library/curses.rst:1626 +#: library/curses.rst:1628 msgid "``ACS_BULLET``" msgstr "``ACS_BULLET``" -#: ../Doc/library/curses.rst:1626 +#: library/curses.rst:1628 msgid "bullet" msgstr "" -#: ../Doc/library/curses.rst:1628 +#: library/curses.rst:1630 msgid "``ACS_CKBOARD``" msgstr "``ACS_CKBOARD``" -#: ../Doc/library/curses.rst:1628 +#: library/curses.rst:1630 msgid "checker board (stipple)" msgstr "" -#: ../Doc/library/curses.rst:1630 +#: library/curses.rst:1632 msgid "``ACS_DARROW``" msgstr "``ACS_DARROW``" -#: ../Doc/library/curses.rst:1630 +#: library/curses.rst:1632 msgid "arrow pointing down" msgstr "" -#: ../Doc/library/curses.rst:1632 +#: library/curses.rst:1634 msgid "``ACS_DEGREE``" msgstr "``ACS_DEGREE``" -#: ../Doc/library/curses.rst:1632 +#: library/curses.rst:1634 msgid "degree symbol" msgstr "" -#: ../Doc/library/curses.rst:1634 +#: library/curses.rst:1636 msgid "``ACS_DIAMOND``" msgstr "``ACS_DIAMOND``" -#: ../Doc/library/curses.rst:1634 +#: library/curses.rst:1636 msgid "diamond" msgstr "" -#: ../Doc/library/curses.rst:1636 +#: library/curses.rst:1638 msgid "``ACS_GEQUAL``" msgstr "``ACS_GEQUAL``" -#: ../Doc/library/curses.rst:1636 +#: library/curses.rst:1638 msgid "greater-than-or-equal-to" msgstr "" -#: ../Doc/library/curses.rst:1638 +#: library/curses.rst:1640 msgid "``ACS_HLINE``" msgstr "``ACS_HLINE``" -#: ../Doc/library/curses.rst:1638 +#: library/curses.rst:1640 msgid "horizontal line" msgstr "" -#: ../Doc/library/curses.rst:1640 +#: library/curses.rst:1642 msgid "``ACS_LANTERN``" msgstr "``ACS_LANTERN``" -#: ../Doc/library/curses.rst:1640 +#: library/curses.rst:1642 msgid "lantern symbol" msgstr "" -#: ../Doc/library/curses.rst:1642 +#: library/curses.rst:1644 msgid "``ACS_LARROW``" msgstr "``ACS_LARROW``" -#: ../Doc/library/curses.rst:1642 +#: library/curses.rst:1644 msgid "left arrow" msgstr "" -#: ../Doc/library/curses.rst:1644 +#: library/curses.rst:1646 msgid "``ACS_LEQUAL``" msgstr "``ACS_LEQUAL``" -#: ../Doc/library/curses.rst:1644 +#: library/curses.rst:1646 msgid "less-than-or-equal-to" msgstr "" -#: ../Doc/library/curses.rst:1646 +#: library/curses.rst:1648 msgid "``ACS_LLCORNER``" msgstr "``ACS_LLCORNER``" -#: ../Doc/library/curses.rst:1646 +#: library/curses.rst:1648 msgid "lower left-hand corner" msgstr "" -#: ../Doc/library/curses.rst:1648 +#: library/curses.rst:1650 msgid "``ACS_LRCORNER``" msgstr "``ACS_LRCORNER``" -#: ../Doc/library/curses.rst:1648 +#: library/curses.rst:1650 msgid "lower right-hand corner" msgstr "" -#: ../Doc/library/curses.rst:1650 +#: library/curses.rst:1652 msgid "``ACS_LTEE``" msgstr "``ACS_LTEE``" -#: ../Doc/library/curses.rst:1650 +#: library/curses.rst:1652 msgid "left tee" msgstr "" -#: ../Doc/library/curses.rst:1652 +#: library/curses.rst:1654 msgid "``ACS_NEQUAL``" msgstr "``ACS_NEQUAL``" -#: ../Doc/library/curses.rst:1652 +#: library/curses.rst:1654 msgid "not-equal sign" msgstr "" -#: ../Doc/library/curses.rst:1654 +#: library/curses.rst:1656 msgid "``ACS_PI``" msgstr "``ACS_PI``" -#: ../Doc/library/curses.rst:1654 +#: library/curses.rst:1656 msgid "letter pi" msgstr "" -#: ../Doc/library/curses.rst:1656 +#: library/curses.rst:1658 msgid "``ACS_PLMINUS``" msgstr "``ACS_PLMINUS``" -#: ../Doc/library/curses.rst:1656 +#: library/curses.rst:1658 msgid "plus-or-minus sign" msgstr "" -#: ../Doc/library/curses.rst:1658 +#: library/curses.rst:1660 msgid "``ACS_PLUS``" msgstr "``ACS_PLUS``" -#: ../Doc/library/curses.rst:1658 +#: library/curses.rst:1660 msgid "big plus sign" msgstr "" -#: ../Doc/library/curses.rst:1660 +#: library/curses.rst:1662 msgid "``ACS_RARROW``" msgstr "``ACS_RARROW``" -#: ../Doc/library/curses.rst:1660 +#: library/curses.rst:1662 msgid "right arrow" msgstr "" -#: ../Doc/library/curses.rst:1662 +#: library/curses.rst:1664 msgid "``ACS_RTEE``" msgstr "``ACS_RTEE``" -#: ../Doc/library/curses.rst:1662 +#: library/curses.rst:1664 msgid "right tee" msgstr "" -#: ../Doc/library/curses.rst:1664 +#: library/curses.rst:1666 msgid "``ACS_S1``" msgstr "``ACS_S1``" -#: ../Doc/library/curses.rst:1664 +#: library/curses.rst:1666 msgid "scan line 1" msgstr "" -#: ../Doc/library/curses.rst:1666 +#: library/curses.rst:1668 msgid "``ACS_S3``" msgstr "``ACS_S3``" -#: ../Doc/library/curses.rst:1666 +#: library/curses.rst:1668 msgid "scan line 3" msgstr "" -#: ../Doc/library/curses.rst:1668 +#: library/curses.rst:1670 msgid "``ACS_S7``" msgstr "``ACS_S7``" -#: ../Doc/library/curses.rst:1668 +#: library/curses.rst:1670 msgid "scan line 7" msgstr "" -#: ../Doc/library/curses.rst:1670 +#: library/curses.rst:1672 msgid "``ACS_S9``" msgstr "``ACS_S9``" -#: ../Doc/library/curses.rst:1670 +#: library/curses.rst:1672 msgid "scan line 9" msgstr "" -#: ../Doc/library/curses.rst:1672 +#: library/curses.rst:1674 msgid "``ACS_SBBS``" msgstr "``ACS_SBBS``" -#: ../Doc/library/curses.rst:1672 +#: library/curses.rst:1674 msgid "alternate name for lower right corner" msgstr "" -#: ../Doc/library/curses.rst:1674 +#: library/curses.rst:1676 msgid "``ACS_SBSB``" msgstr "``ACS_SBSB``" -#: ../Doc/library/curses.rst:1674 +#: library/curses.rst:1676 msgid "alternate name for vertical line" msgstr "" -#: ../Doc/library/curses.rst:1676 +#: library/curses.rst:1678 msgid "``ACS_SBSS``" msgstr "``ACS_SBSS``" -#: ../Doc/library/curses.rst:1676 +#: library/curses.rst:1678 msgid "alternate name for right tee" msgstr "" -#: ../Doc/library/curses.rst:1678 +#: library/curses.rst:1680 msgid "``ACS_SSBB``" msgstr "``ACS_SSBB``" -#: ../Doc/library/curses.rst:1678 +#: library/curses.rst:1680 msgid "alternate name for lower left corner" msgstr "" -#: ../Doc/library/curses.rst:1680 +#: library/curses.rst:1682 msgid "``ACS_SSBS``" msgstr "``ACS_SSBS``" -#: ../Doc/library/curses.rst:1680 +#: library/curses.rst:1682 msgid "alternate name for bottom tee" msgstr "" -#: ../Doc/library/curses.rst:1682 +#: library/curses.rst:1684 msgid "``ACS_SSSB``" msgstr "``ACS_SSSB``" -#: ../Doc/library/curses.rst:1682 +#: library/curses.rst:1684 msgid "alternate name for left tee" msgstr "" -#: ../Doc/library/curses.rst:1684 +#: library/curses.rst:1686 msgid "``ACS_SSSS``" msgstr "``ACS_SSSS``" -#: ../Doc/library/curses.rst:1684 +#: library/curses.rst:1686 msgid "alternate name for crossover or big plus" msgstr "" -#: ../Doc/library/curses.rst:1686 +#: library/curses.rst:1688 msgid "``ACS_STERLING``" msgstr "``ACS_STERLING``" -#: ../Doc/library/curses.rst:1686 +#: library/curses.rst:1688 msgid "pound sterling" msgstr "" -#: ../Doc/library/curses.rst:1688 +#: library/curses.rst:1690 msgid "``ACS_TTEE``" msgstr "``ACS_TTEE``" -#: ../Doc/library/curses.rst:1688 +#: library/curses.rst:1690 msgid "top tee" msgstr "" -#: ../Doc/library/curses.rst:1690 +#: library/curses.rst:1692 msgid "``ACS_UARROW``" msgstr "``ACS_UARROW``" -#: ../Doc/library/curses.rst:1690 +#: library/curses.rst:1692 msgid "up arrow" msgstr "" -#: ../Doc/library/curses.rst:1692 +#: library/curses.rst:1694 msgid "``ACS_ULCORNER``" msgstr "``ACS_ULCORNER``" -#: ../Doc/library/curses.rst:1692 +#: library/curses.rst:1694 msgid "upper left corner" msgstr "" -#: ../Doc/library/curses.rst:1694 +#: library/curses.rst:1696 msgid "``ACS_URCORNER``" msgstr "``ACS_URCORNER``" -#: ../Doc/library/curses.rst:1694 +#: library/curses.rst:1696 msgid "upper right corner" msgstr "" -#: ../Doc/library/curses.rst:1696 +#: library/curses.rst:1698 msgid "``ACS_VLINE``" msgstr "``ACS_VLINE``" -#: ../Doc/library/curses.rst:1696 +#: library/curses.rst:1698 msgid "vertical line" msgstr "" -#: ../Doc/library/curses.rst:1699 +#: library/curses.rst:1701 msgid "The following table lists the predefined colors:" msgstr "" -#: ../Doc/library/curses.rst:1702 +#: library/curses.rst:1704 msgid "Color" msgstr "" -#: ../Doc/library/curses.rst:1704 +#: library/curses.rst:1706 msgid "``COLOR_BLACK``" msgstr "``COLOR_BLACK``" -#: ../Doc/library/curses.rst:1704 +#: library/curses.rst:1706 msgid "Black" msgstr "" -#: ../Doc/library/curses.rst:1706 +#: library/curses.rst:1708 msgid "``COLOR_BLUE``" msgstr "``COLOR_BLUE``" -#: ../Doc/library/curses.rst:1706 +#: library/curses.rst:1708 msgid "Blue" msgstr "" -#: ../Doc/library/curses.rst:1708 +#: library/curses.rst:1710 msgid "``COLOR_CYAN``" msgstr "``COLOR_CYAN``" -#: ../Doc/library/curses.rst:1708 +#: library/curses.rst:1710 msgid "Cyan (light greenish blue)" msgstr "" -#: ../Doc/library/curses.rst:1710 +#: library/curses.rst:1712 msgid "``COLOR_GREEN``" msgstr "``COLOR_GREEN``" -#: ../Doc/library/curses.rst:1710 +#: library/curses.rst:1712 msgid "Green" msgstr "" -#: ../Doc/library/curses.rst:1712 +#: library/curses.rst:1714 msgid "``COLOR_MAGENTA``" msgstr "``COLOR_MAGENTA``" -#: ../Doc/library/curses.rst:1712 +#: library/curses.rst:1714 msgid "Magenta (purplish red)" msgstr "" -#: ../Doc/library/curses.rst:1714 +#: library/curses.rst:1716 msgid "``COLOR_RED``" msgstr "``COLOR_RED``" -#: ../Doc/library/curses.rst:1714 +#: library/curses.rst:1716 msgid "Red" msgstr "" -#: ../Doc/library/curses.rst:1716 +#: library/curses.rst:1718 msgid "``COLOR_WHITE``" msgstr "``COLOR_WHITE``" -#: ../Doc/library/curses.rst:1716 +#: library/curses.rst:1718 msgid "White" msgstr "" -#: ../Doc/library/curses.rst:1718 +#: library/curses.rst:1720 msgid "``COLOR_YELLOW``" msgstr "``COLOR_YELLOW``" -#: ../Doc/library/curses.rst:1718 +#: library/curses.rst:1720 msgid "Yellow" msgstr "" -#: ../Doc/library/curses.rst:1723 +#: library/curses.rst:1725 msgid ":mod:`curses.textpad` --- Text input widget for curses programs" msgstr "" -#: ../Doc/library/curses.rst:1731 +#: library/curses.rst:1733 msgid "" "The :mod:`curses.textpad` module provides a :class:`Textbox` class that " "handles elementary text editing in a curses window, supporting a set of " @@ -2926,11 +2925,11 @@ msgid "" "purposes." msgstr "" -#: ../Doc/library/curses.rst:1737 +#: library/curses.rst:1739 msgid "The module :mod:`curses.textpad` defines the following function:" msgstr "" -#: ../Doc/library/curses.rst:1742 +#: library/curses.rst:1744 msgid "" "Draw a rectangle. The first argument must be a window object; the remaining " "arguments are coordinates relative to that window. The second and third " @@ -2942,15 +2941,15 @@ msgid "" "will be drawn with ASCII dashes, vertical bars, and plus signs." msgstr "" -#: ../Doc/library/curses.rst:1755 +#: library/curses.rst:1757 msgid "Textbox objects" msgstr "" -#: ../Doc/library/curses.rst:1757 +#: library/curses.rst:1759 msgid "You can instantiate a :class:`Textbox` object as follows:" msgstr "" -#: ../Doc/library/curses.rst:1762 +#: library/curses.rst:1764 msgid "" "Return a textbox widget object. The *win* argument should be a curses :ref:" "`window ` object in which the textbox is to be " @@ -2959,11 +2958,13 @@ msgid "" "instance's :attr:`stripspaces` flag is initially on." msgstr "" -#: ../Doc/library/curses.rst:1768 +#: library/curses.rst:1770 +#, fuzzy msgid ":class:`Textbox` objects have the following methods:" msgstr "" +"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" -#: ../Doc/library/curses.rst:1773 +#: library/curses.rst:1775 msgid "" "This is the entry point you will normally use. It accepts editing " "keystrokes until one of the termination keystrokes is entered. If " @@ -2974,167 +2975,167 @@ msgid "" "`stripspaces` attribute." msgstr "" -#: ../Doc/library/curses.rst:1784 +#: library/curses.rst:1786 msgid "" "Process a single command keystroke. Here are the supported special " "keystrokes:" msgstr "" -#: ../Doc/library/curses.rst:1788 ../Doc/library/curses.rst:1826 +#: library/curses.rst:1828 msgid "Keystroke" msgstr "" -#: ../Doc/library/curses.rst:1788 +#: library/curses.rst:1790 msgid "Action" -msgstr "" +msgstr "Action" -#: ../Doc/library/curses.rst:1790 +#: library/curses.rst:1792 msgid ":kbd:`Control-A`" msgstr ":kbd:`Control-A`" -#: ../Doc/library/curses.rst:1790 +#: library/curses.rst:1792 msgid "Go to left edge of window." msgstr "" -#: ../Doc/library/curses.rst:1792 ../Doc/library/curses.rst:1828 +#: library/curses.rst:1830 msgid ":kbd:`Control-B`" msgstr ":kbd:`Control-B`" -#: ../Doc/library/curses.rst:1792 +#: library/curses.rst:1794 msgid "Cursor left, wrapping to previous line if appropriate." msgstr "" -#: ../Doc/library/curses.rst:1795 +#: library/curses.rst:1797 msgid ":kbd:`Control-D`" msgstr ":kbd:`Control-D`" -#: ../Doc/library/curses.rst:1795 +#: library/curses.rst:1797 msgid "Delete character under cursor." msgstr "" -#: ../Doc/library/curses.rst:1797 +#: library/curses.rst:1799 msgid ":kbd:`Control-E`" msgstr ":kbd:`Control-E`" -#: ../Doc/library/curses.rst:1797 +#: library/curses.rst:1799 msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." msgstr "" -#: ../Doc/library/curses.rst:1800 ../Doc/library/curses.rst:1830 +#: library/curses.rst:1832 msgid ":kbd:`Control-F`" msgstr ":kbd:`Control-F`" -#: ../Doc/library/curses.rst:1800 +#: library/curses.rst:1802 msgid "Cursor right, wrapping to next line when appropriate." msgstr "" -#: ../Doc/library/curses.rst:1803 +#: library/curses.rst:1805 msgid ":kbd:`Control-G`" msgstr ":kbd:`Control-G`" -#: ../Doc/library/curses.rst:1803 +#: library/curses.rst:1805 msgid "Terminate, returning the window contents." msgstr "" -#: ../Doc/library/curses.rst:1805 +#: library/curses.rst:1807 msgid ":kbd:`Control-H`" msgstr ":kbd:`Control-H`" -#: ../Doc/library/curses.rst:1805 +#: library/curses.rst:1807 msgid "Delete character backward." msgstr "" -#: ../Doc/library/curses.rst:1807 +#: library/curses.rst:1809 msgid ":kbd:`Control-J`" msgstr ":kbd:`Control-J`" -#: ../Doc/library/curses.rst:1807 +#: library/curses.rst:1809 msgid "Terminate if the window is 1 line, otherwise insert newline." msgstr "" -#: ../Doc/library/curses.rst:1810 +#: library/curses.rst:1812 msgid ":kbd:`Control-K`" msgstr ":kbd:`Control-K`" -#: ../Doc/library/curses.rst:1810 +#: library/curses.rst:1812 msgid "If line is blank, delete it, otherwise clear to end of line." msgstr "" -#: ../Doc/library/curses.rst:1813 +#: library/curses.rst:1815 msgid ":kbd:`Control-L`" msgstr ":kbd:`Control-L`" -#: ../Doc/library/curses.rst:1813 +#: library/curses.rst:1815 msgid "Refresh screen." msgstr "" -#: ../Doc/library/curses.rst:1815 ../Doc/library/curses.rst:1834 +#: library/curses.rst:1836 msgid ":kbd:`Control-N`" msgstr ":kbd:`Control-N`" -#: ../Doc/library/curses.rst:1815 +#: library/curses.rst:1817 msgid "Cursor down; move down one line." msgstr "" -#: ../Doc/library/curses.rst:1817 +#: library/curses.rst:1819 msgid ":kbd:`Control-O`" msgstr ":kbd:`Control-O`" -#: ../Doc/library/curses.rst:1817 +#: library/curses.rst:1819 msgid "Insert a blank line at cursor location." msgstr "" -#: ../Doc/library/curses.rst:1819 ../Doc/library/curses.rst:1832 +#: library/curses.rst:1834 msgid ":kbd:`Control-P`" msgstr ":kbd:`Control-P`" -#: ../Doc/library/curses.rst:1819 +#: library/curses.rst:1821 msgid "Cursor up; move up one line." msgstr "" -#: ../Doc/library/curses.rst:1822 +#: library/curses.rst:1824 msgid "" "Move operations do nothing if the cursor is at an edge where the movement is " "not possible. The following synonyms are supported where possible:" msgstr "" -#: ../Doc/library/curses.rst:1828 +#: library/curses.rst:1830 msgid ":const:`KEY_LEFT`" msgstr ":const:`KEY_LEFT`" -#: ../Doc/library/curses.rst:1830 +#: library/curses.rst:1832 msgid ":const:`KEY_RIGHT`" msgstr ":const:`KEY_RIGHT`" -#: ../Doc/library/curses.rst:1832 +#: library/curses.rst:1834 msgid ":const:`KEY_UP`" msgstr ":const:`KEY_UP`" -#: ../Doc/library/curses.rst:1834 +#: library/curses.rst:1836 msgid ":const:`KEY_DOWN`" msgstr ":const:`KEY_DOWN`" -#: ../Doc/library/curses.rst:1836 +#: library/curses.rst:1838 msgid ":const:`KEY_BACKSPACE`" msgstr ":const:`KEY_BACKSPACE`" -#: ../Doc/library/curses.rst:1836 +#: library/curses.rst:1838 msgid ":kbd:`Control-h`" msgstr ":kbd:`Control-h`" -#: ../Doc/library/curses.rst:1839 +#: library/curses.rst:1841 msgid "" "All other keystrokes are treated as a command to insert the given character " "and move right (with line wrapping)." msgstr "" -#: ../Doc/library/curses.rst:1845 +#: library/curses.rst:1847 msgid "" "Return the window contents as a string; whether blanks in the window are " "included is affected by the :attr:`stripspaces` member." msgstr "" -#: ../Doc/library/curses.rst:1851 +#: library/curses.rst:1853 msgid "" "This attribute is a flag which controls the interpretation of blanks in the " "window. When it is on, trailing blanks on each line are ignored; any cursor " diff --git a/library/custominterp.po b/library/custominterp.po index 2d1c4795e4..a001aeb6e3 100644 --- a/library/custominterp.po +++ b/library/custominterp.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-07-29 19:08+0200\n" diff --git a/library/dataclasses.po b/library/dataclasses.po index ec14fd7d76..84d9d844ac 100644 --- a/library/dataclasses.po +++ b/library/dataclasses.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-12-24 14:53+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.1.1\n" -#: ../Doc/library/dataclasses.rst:2 +#: library/dataclasses.rst:2 msgid ":mod:`dataclasses` --- Data Classes" msgstr ":mod:`dataclasses` — Classes de Données" -#: ../Doc/library/dataclasses.rst:10 +#: library/dataclasses.rst:10 msgid "**Source code:** :source:`Lib/dataclasses.py`" msgstr "**Code source :** :source:`Lib/dataclasses.py`" -#: ../Doc/library/dataclasses.rst:14 +#: library/dataclasses.rst:14 msgid "" "This module provides a decorator and functions for automatically adding " "generated :term:`special method`\\s such as :meth:`__init__` and :meth:" @@ -35,20 +35,20 @@ msgstr "" "`__init__` et :meth:`__repr__` dans les *Classes de Données* définies par " "l’utilisateur. Ces classes ont été décrites dans la :pep:`557`." -#: ../Doc/library/dataclasses.rst:19 +#: library/dataclasses.rst:19 msgid "" "The member variables to use in these generated methods are defined using :" "pep:`526` type annotations. For example this code::" msgstr "" "Les variables membres à utiliser dans ces méthodes générées sont définies en " -"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" +"utilisant les annotations de type :pep:`526`. Par exemple, ce code ::" -#: ../Doc/library/dataclasses.rst:32 +#: library/dataclasses.rst:34 msgid "Will add, among other things, a :meth:`__init__` that looks like::" msgstr "" -"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" +"Ajoute, entre autres choses, une méthode :meth:`__init__` qui ressemble à ::" -#: ../Doc/library/dataclasses.rst:39 +#: library/dataclasses.rst:41 msgid "" "Note that this method is automatically added to the class: it is not " "directly specified in the ``InventoryItem`` definition shown above." @@ -57,11 +57,11 @@ msgstr "" "la classe : elle n’est pas à écrire dans la définition de ``InventoryItem`` " "ci-dessus." -#: ../Doc/library/dataclasses.rst:45 +#: library/dataclasses.rst:47 msgid "Module-level decorators, classes, and functions" msgstr "Décorateurs, classes et fonctions au niveau du module" -#: ../Doc/library/dataclasses.rst:49 +#: library/dataclasses.rst:51 msgid "" "This function is a :term:`decorator` that is used to add generated :term:" "`special method`\\s to classes, as described below." @@ -70,20 +70,20 @@ msgstr "" "term:`méthodes spéciales ` générées aux classes, comme " "décrit ci-dessous." -#: ../Doc/library/dataclasses.rst:52 +#: library/dataclasses.rst:54 msgid "" "The :func:`dataclass` decorator examines the class to find ``field``\\s. A " "``field`` is defined as class variable that has a :term:`type annotation " "`. With two exceptions described below, nothing in :" "func:`dataclass` examines the type specified in the variable annotation." msgstr "" -"Le décorateur :func:`dataclass` examine la classe pour trouver des ``champs``" -"\\s. Un ``champ`` est défini comme une variable de classe qui possède une :" -"term:`annotation de type `. À deux exceptions près " -"décrites plus bas, il n’y a rien dans :func:`dataclass` qui examine le type " -"spécifié dans l’annotation de variable." +"Le décorateur :func:`dataclass` examine la classe pour trouver des " +"``champs``\\s. Un ``champ`` est défini comme une variable de classe qui " +"possède une :term:`annotation de type `. À deux " +"exceptions près décrites plus bas, il n’y a rien dans :func:`dataclass` qui " +"examine le type spécifié dans l’annotation de variable." -#: ../Doc/library/dataclasses.rst:58 +#: library/dataclasses.rst:60 msgid "" "The order of the fields in all of the generated methods is the order in " "which they appear in the class definition." @@ -91,13 +91,13 @@ msgstr "" "L’ordre des paramètres des méthodes générées est celui d’apparition des " "champs dans la définition de la classe." -#: ../Doc/library/dataclasses.rst:61 +#: library/dataclasses.rst:63 #, fuzzy msgid "" "The :func:`dataclass` decorator will add various \"dunder\" methods to the " "class, described below. If any of the added methods already exist on the " -"class, a :exc:`TypeError` will be raised. The decorator returns the same " -"class that is called on: no new class is created." +"class, the behavior depends on the parameter, as documented below. The " +"decorator returns the same class that is called on; no new class is created." msgstr "" "Le décorateur :func:`dataclass` ajoute diverses méthodes « spéciales » à la " "classe, décrites ci-après. Si l’une des méthodes ajoutées existe déjà dans " @@ -105,7 +105,7 @@ msgstr "" "dessous. Le décorateur renvoie la classe sur laquelle il est appelé ; il n’y " "a pas de nouvelle classe créée." -#: ../Doc/library/dataclasses.rst:66 +#: library/dataclasses.rst:69 msgid "" "If :func:`dataclass` is used just as a simple decorator with no parameters, " "it acts as if it has the default values documented in this signature. That " @@ -114,26 +114,26 @@ msgstr "" "Si :func:`dataclass` est utilisé comme simple décorateur sans paramètres, il " "se comporte comme si on l’avait appelé avec les valeurs par défaut présentes " "en signature. Ainsi, les trois usages suivants de :func:`dataclass` sont " -"équivalents ::" +"équivalents ::" -#: ../Doc/library/dataclasses.rst:83 +#: library/dataclasses.rst:86 msgid "The parameters to :func:`dataclass` are:" msgstr "Les paramètres de :func:`dataclass` sont :" -#: ../Doc/library/dataclasses.rst:85 +#: library/dataclasses.rst:88 msgid "" "``init``: If true (the default), a :meth:`__init__` method will be generated." msgstr "" "``init``: Si vrai (par défaut), une méthode :meth:`__init__` est générée." -#: ../Doc/library/dataclasses.rst:88 +#: library/dataclasses.rst:91 msgid "" "If the class already defines :meth:`__init__`, this parameter is ignored." msgstr "" "Si la classe définit déjà une méthode :meth:`__init__`, ce paramètre est " "ignoré." -#: ../Doc/library/dataclasses.rst:91 +#: library/dataclasses.rst:94 msgid "" "``repr``: If true (the default), a :meth:`__repr__` method will be " "generated. The generated repr string will have the class name and the name " @@ -149,14 +149,14 @@ msgstr "" "représentation ne sont pas inclus. Par exemple : " "``InventoryItem(name='widget', unit_price=3.0, quantity_on_hand=10)``." -#: ../Doc/library/dataclasses.rst:98 +#: library/dataclasses.rst:101 msgid "" "If the class already defines :meth:`__repr__`, this parameter is ignored." msgstr "" "Si la classe définit déjà une méthode :meth:`__repr__`, ce paramètre est " "ignoré." -#: ../Doc/library/dataclasses.rst:101 +#: library/dataclasses.rst:104 msgid "" "``eq``: If true (the default), an :meth:`__eq__` method will be generated. " "This method compares the class as if it were a tuple of its fields, in " @@ -167,13 +167,13 @@ msgstr "" "d’un tuple de ses champs, dans l’ordre. Les deux instances dans la " "comparaison doivent être de même type." -#: ../Doc/library/dataclasses.rst:106 +#: library/dataclasses.rst:109 msgid "If the class already defines :meth:`__eq__`, this parameter is ignored." msgstr "" "Si la classe définit déjà une méthode :meth:`__eq__`, ce paramètre est " "ignoré." -#: ../Doc/library/dataclasses.rst:109 +#: library/dataclasses.rst:112 msgid "" "``order``: If true (the default is ``False``), :meth:`__lt__`, :meth:" "`__le__`, :meth:`__gt__`, and :meth:`__ge__` methods will be generated. " @@ -188,17 +188,17 @@ msgstr "" "comparaison doit être de même type. Si ``order`` est vrai mais que ``eq`` " "est faux, une :exc:`ValueError` est levée." -#: ../Doc/library/dataclasses.rst:116 +#: library/dataclasses.rst:119 #, fuzzy msgid "" "If the class already defines any of :meth:`__lt__`, :meth:`__le__`, :meth:" -"`__gt__`, or :meth:`__ge__`, then :exc:`ValueError` is raised." +"`__gt__`, or :meth:`__ge__`, then :exc:`TypeError` is raised." msgstr "" "Si la classe définit déjà l’une des méthodes :meth:`__lt__`, :meth:" "`__le__`, :meth:`__gt__`, ou :meth:`__ge__`, alors une :exc:`TypeError` est " "levée." -#: ../Doc/library/dataclasses.rst:120 +#: library/dataclasses.rst:123 msgid "" "``unsafe_hash``: If ``False`` (the default), a :meth:`__hash__` method is " "generated according to how ``eq`` and ``frozen`` are set." @@ -206,7 +206,7 @@ msgstr "" "``unsafe_hash``: Si ``False`` (par défaut), une méthode :meth:`__hash__` est " "générée et son comportement dépend des valeurs de ``eq`` et ``frozen``." -#: ../Doc/library/dataclasses.rst:123 +#: library/dataclasses.rst:126 msgid "" ":meth:`__hash__` is used by built-in :meth:`hash()`, and when objects are " "added to hashed collections such as dictionaries and sets. Having a :meth:" @@ -223,7 +223,7 @@ msgstr "" "et du comportement de la méthode :meth:`__eq__`, et des valeurs des options " "``eq`` et ``frozen`` dans l’appel au décorateur :func:`dataclass`." -#: ../Doc/library/dataclasses.rst:130 +#: library/dataclasses.rst:133 msgid "" "By default, :func:`dataclass` will not implicitly add a :meth:`__hash__` " "method unless it is safe to do so. Neither will it add or change an " @@ -238,9 +238,9 @@ msgstr "" "signification particulière en Python, comme précisé dans la documentation " "de :meth:`__hash__`." -#: ../Doc/library/dataclasses.rst:136 +#: library/dataclasses.rst:139 msgid "" -"If :meth:`__hash__` is not explicit defined, or if it is set to ``None``, " +"If :meth:`__hash__` is not explicitly defined, or if it is set to ``None``, " "then :func:`dataclass` *may* add an implicit :meth:`__hash__` method. " "Although not recommended, you can force :func:`dataclass` to create a :meth:" "`__hash__` method with ``unsafe_hash=True``. This might be the case if your " @@ -249,13 +249,14 @@ msgid "" msgstr "" "Si :meth:`__hash__` n’est pas défini explicitement, ou s’il a pour valeur " "``None``, alors :func:`dataclass` *peut* ajouter une méthode :meth:" -"`__hash__` implicite. Bien que ce ne soit pas recommandé,, vous pouvez " +"`__hash__` implicite. Bien que ce ne soit pas recommandé, vous pouvez " "forcer :func:`dataclass` à créer une méthode :meth:`__hash__` en utilisant " "``unsafe_hash=True``. Cela pourrait être nécessaire si votre classe est " -"logiquement immuable mais qu’une mutation est tout de même possible. C’est " -"un cas très particulier qui doit être considéré avec la plus grande prudence." +"logiquement immuable mais qu’une mutation est tout de même possible. Il " +"s'agit là d'un cas particulier qui doit être considéré avec la plus grande " +"prudence." -#: ../Doc/library/dataclasses.rst:143 +#: library/dataclasses.rst:146 msgid "" "Here are the rules governing implicit creation of a :meth:`__hash__` " "method. Note that you cannot both have an explicit :meth:`__hash__` method " @@ -267,7 +268,7 @@ msgstr "" "méthode :meth:`__hash__` explicite dans votre *dataclass* et définir " "``unsafe_hash=True``; cela lèvera une :exc:`TypeError`." -#: ../Doc/library/dataclasses.rst:148 +#: library/dataclasses.rst:151 msgid "" "If ``eq`` and ``frozen`` are both true, by default :func:`dataclass` will " "generate a :meth:`__hash__` method for you. If ``eq`` is true and " @@ -279,43 +280,43 @@ msgid "" msgstr "" "Si ``eq`` et ``frozen`` sont tous deux vrais, :func:`dataclass` génère par " "défaut une méthode :meth:`__hash__` pour vous. Si ``eq`` est vrai mais que " -"``frozen`` est faux, :meth:`__hash__` est prends la valeur ``None``, " -"marquant la classe comme non-hachable (et c’est le cas, puisqu’elle est " -"modifiable). Si ``eq`` est faux, la méthode :meth:`__hash__` est laissée " -"intacte, ce qui veut dire que la méthode :meth:`__hash__` de la classe " -"parente sera utilisée (si la classe parente est :class:`object`, le " -"comportement est un hachage basé sur les id)." +"``frozen`` est faux, :meth:`__hash__` prend la valeur ``None``, marquant la " +"classe comme non-hachable (et c’est le cas, puisqu’elle est modifiable). Si " +"``eq`` est faux, la méthode :meth:`__hash__` est laissée intacte, ce qui " +"veut dire que la méthode :meth:`__hash__` de la classe parente sera utilisée " +"(si la classe parente est :class:`object`, le comportement est un hachage " +"basé sur les id)." -#: ../Doc/library/dataclasses.rst:156 +#: library/dataclasses.rst:159 msgid "" -"``frozen``: If true (the default is False), assigning to fields will " +"``frozen``: If true (the default is ``False``), assigning to fields will " "generate an exception. This emulates read-only frozen instances. If :meth:" "`__setattr__` or :meth:`__delattr__` is defined in the class, then :exc:" "`TypeError` is raised. See the discussion below." msgstr "" -"``frozen``: Si vrai (faux par défaut), assigner une valeur à un champ lèvera " +"*frozen* : si vrai (faux par défaut), assigner une valeur à un champ lève " "une exception. Cela simule le comportement des instances figées en lecture " "seule. Si la méthode :meth:`__setattr__` ou :meth:`__delattr__` est définie " "sur la classe, alors une :exc:`TypeError` est levée. Voir la discussion ci-" "dessous." -#: ../Doc/library/dataclasses.rst:161 +#: library/dataclasses.rst:164 msgid "" "``field``\\s may optionally specify a default value, using normal Python " "syntax::" msgstr "" "Les ``field``\\s peuvent éventuellement spécifier une valeur par défaut, en " -"utilisant la syntaxe Python normale ::" +"utilisant la syntaxe Python normale ::" -#: ../Doc/library/dataclasses.rst:169 +#: library/dataclasses.rst:172 msgid "" "In this example, both ``a`` and ``b`` will be included in the added :meth:" "`__init__` method, which will be defined as::" msgstr "" "Dans cet exemple, ``a`` et ``b`` sont tous deux inclus dans la signature de " -"la méthode générée :meth:`__init__`, qui est définie comme suit ::" +"la méthode générée :meth:`__init__`, qui est définie comme suit ::" -#: ../Doc/library/dataclasses.rst:174 +#: library/dataclasses.rst:177 msgid "" ":exc:`TypeError` will be raised if a field without a default value follows a " "field with a default value. This is true either when this occurs in a " @@ -326,7 +327,7 @@ msgstr "" "une seule classe, mais également si c’est le résultat d’un héritage de " "classes." -#: ../Doc/library/dataclasses.rst:180 +#: library/dataclasses.rst:183 msgid "" "For common and simple use cases, no other functionality is required. There " "are, however, some dataclass features that require additional per-field " @@ -334,8 +335,13 @@ msgid "" "replace the default field value with a call to the provided :func:`field` " "function. For example::" msgstr "" +"Dans les cas les plus simples et courants, ce qui a été décrit jusqu'ici " +"suffit. Cependant, les classes de données possèdent des fonctionnalités " +"supplémentaires fondées sur des métadonnées propres à chaque champ. Pour " +"remplir ces métadonnées, il suffit de mettre un appel à la fonction :func:" +"`field` à la place de la valeur par défaut, comme dans cet exemple :" -#: ../Doc/library/dataclasses.rst:193 +#: library/dataclasses.rst:196 msgid "" "As shown above, the ``MISSING`` value is a sentinel object used to detect if " "the ``default`` and ``default_factory`` parameters are provided. This " @@ -343,18 +349,21 @@ msgid "" "should directly use the ``MISSING`` value." msgstr "" -#: ../Doc/library/dataclasses.rst:199 +#: library/dataclasses.rst:202 msgid "The parameters to :func:`field` are:" -msgstr "" +msgstr "Les paramètres de :func:`field` sont :" -#: ../Doc/library/dataclasses.rst:201 +#: library/dataclasses.rst:204 msgid "" "``default``: If provided, this will be the default value for this field. " "This is needed because the :meth:`field` call itself replaces the normal " "position of the default value." msgstr "" +"*default* : s'il est fourni, il devient la valeur par défaut du champ. " +"L'appel à :meth:`field` est mis à la place normale de la valeur par défaut, " +"d'où la nécessité de ce paramètre." -#: ../Doc/library/dataclasses.rst:205 +#: library/dataclasses.rst:208 msgid "" "``default_factory``: If provided, it must be a zero-argument callable that " "will be called when a default value is needed for this field. Among other " @@ -362,26 +371,38 @@ msgid "" "discussed below. It is an error to specify both ``default`` and " "``default_factory``." msgstr "" +"*default_factory* : s'il est fourni, ce doit être un objet appelable sans " +"argument. Il est alors appelé à chaque fois qu'il faut une valeur par défaut " +"pour le champ. Ceci permet, entre autres choses, de définir des champs dont " +"les valeurs par défaut sont muables. Une erreur se produit si *default* et " +"*default_factory* sont donnés tous les deux." -#: ../Doc/library/dataclasses.rst:211 +#: library/dataclasses.rst:214 msgid "" "``init``: If true (the default), this field is included as a parameter to " "the generated :meth:`__init__` method." msgstr "" +"*init* : si vrai (par défaut), la méthode :meth:`__init__` générée possède " +"un paramètre correspondant à ce champ." -#: ../Doc/library/dataclasses.rst:214 +#: library/dataclasses.rst:217 msgid "" "``repr``: If true (the default), this field is included in the string " "returned by the generated :meth:`__repr__` method." msgstr "" +"*repr* : si vrai (par défaut), le champ est inclus dans les chaînes " +"construites par la méthode :meth:`__repr__` générée." -#: ../Doc/library/dataclasses.rst:217 +#: library/dataclasses.rst:220 msgid "" "``compare``: If true (the default), this field is included in the generated " "equality and comparison methods (:meth:`__eq__`, :meth:`__gt__`, et al.)." msgstr "" +"*compare* : si vrai (par défaut), le champ est considéré dans les " +"comparaisons d'égalité et d'inégalité dans les méthodes générées :meth:" +"`__eq__`, :meth:`__gt__`, etc." -#: ../Doc/library/dataclasses.rst:221 +#: library/dataclasses.rst:224 msgid "" "``hash``: This can be a bool or ``None``. If true, this field is included " "in the generated :meth:`__hash__` method. If ``None`` (the default), use " @@ -389,8 +410,14 @@ msgid "" "field should be considered in the hash if it's used for comparisons. " "Setting this value to anything other than ``None`` is discouraged." msgstr "" +"*hash* : ce paramètre est un booléen ou ``None``. La valeur ``False`` force " +"la prise en compte du champ dans la méthode :meth:`__hash__` générée, alors " +"que ``False`` force son exclusion. ``None`` revient à mettre la même valeur " +"que *compare*, ce qui est en général correct : il faut inclure dans le " +"hachage les champs employés pour les comparaisons. Il est déconseillé de " +"mettre ce paramètre à autre chose que ``None``." -#: ../Doc/library/dataclasses.rst:228 +#: library/dataclasses.rst:231 msgid "" "One possible reason to set ``hash=False`` but ``compare=True`` would be if a " "field is expensive to compute a hash value for, that field is needed for " @@ -398,8 +425,14 @@ msgid "" "hash value. Even if a field is excluded from the hash, it will still be " "used for comparisons." msgstr "" +"Cependant, une raison légitime de mettre *hash* à ``False`` alors que " +"*compare* est à ``True`` est la concourance de trois facteurs : le champ est " +"coûteux à hacher ; il est nécessaire pour les comparaisons d'égalité ; et il " +"y a déjà d'autres champs qui participent au hachage des instances. À ce " +"moment, on peut alors se passer du champ dans le hachage tout en le faisant " +"participer aux comparaisons." -#: ../Doc/library/dataclasses.rst:234 +#: library/dataclasses.rst:237 msgid "" "``metadata``: This can be a mapping or None. None is treated as an empty " "dict. This value is wrapped in :func:`~types.MappingProxyType` to make it " @@ -408,8 +441,12 @@ msgid "" "Multiple third-parties can each have their own key, to use as a namespace in " "the metadata." msgstr "" +"*metadata* : ce paramètre est un tableau associatif (*mapping* en anglais). " +"La valeur par défaut de ``None`` est prise comme un dictionnaire vide. Le " +"tableau associatif devient accessible sur l'objet :class:`Field`, sous la " +"forme d'un :func:`~types.MappingProxyType` afin qu'il soit en lecture seule." -#: ../Doc/library/dataclasses.rst:242 +#: library/dataclasses.rst:245 msgid "" "If the default value of a field is specified by a call to :func:`field()`, " "then the class attribute for this field will be replaced by the specified " @@ -419,51 +456,73 @@ msgid "" "fields, just as if the default value itself were specified. For example, " "after::" msgstr "" +"Si la valeur par défaut d'un champ est donnée dans un appel à :func:`field` " +"(et pas directement), l'attribut correspondant de la classe est remplacé par " +"cette valeur. Si le paramètre *default* n'est pas passé, l'attribut est " +"simplement supprimé. De cette manière, après le passage du décorateur :func:" +"`dataclass`, les attributs de la classe contiennent les valeurs par défaut " +"des champs exactement comme si elles avaient été définies directement. Par " +"exemple :" -#: ../Doc/library/dataclasses.rst:258 +#: library/dataclasses.rst:261 msgid "" "The class attribute ``C.z`` will be ``10``, the class attribute ``C.t`` will " "be ``20``, and the class attributes ``C.x`` and ``C.y`` will not be set." msgstr "" +"Après l'exécution de ce code, l'attribut de classe ``C.z`` vaut ``10`` et " +"l'attribut ``C.t`` vaut ``20``, alors que les attributs ``C.x`` et ``C.y`` " +"n'existent pas." -#: ../Doc/library/dataclasses.rst:264 +#: library/dataclasses.rst:267 msgid "" ":class:`Field` objects describe each defined field. These objects are " "created internally, and are returned by the :func:`fields` module-level " "method (see below). Users should never instantiate a :class:`Field` object " "directly. Its documented attributes are:" msgstr "" +"Les objets :class:`Field` contiennent des informations sur les champs. Ils " +"sont créés en interne, et on y accède à l'aide de la méthode au niveau du " +"module :func:`fields` (voir plus bas). Les utilisateurs ne doivent jamais " +"instancier un objet :class:`Field` eux-mêmes. Les attributs documentés sont " +"les suivants :" -#: ../Doc/library/dataclasses.rst:269 +#: library/dataclasses.rst:272 msgid "``name``: The name of the field." -msgstr "" +msgstr "*name* : le nom du champ ;" -#: ../Doc/library/dataclasses.rst:271 +#: library/dataclasses.rst:274 msgid "``type``: The type of the field." -msgstr "" +msgstr "*type* : le type associé au champ par l'annotation ;" -#: ../Doc/library/dataclasses.rst:273 +#: library/dataclasses.rst:276 msgid "" "``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, " "and ``metadata`` have the identical meaning and values as they do in the :" "func:`field` declaration." msgstr "" -#: ../Doc/library/dataclasses.rst:277 +#: library/dataclasses.rst:280 msgid "" "Other attributes may exist, but they are private and must not be inspected " "or relied on." msgstr "" +"D'autres attributs peuvent exister, mais ils sont privés et ne sont pas " +"censés être inspectés. Le code ne doit jamais reposer sur eux." -#: ../Doc/library/dataclasses.rst:282 +#: library/dataclasses.rst:285 msgid "" "Returns a tuple of :class:`Field` objects that define the fields for this " "dataclass. Accepts either a dataclass, or an instance of a dataclass. " "Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " "not return pseudo-fields which are ``ClassVar`` or ``InitVar``." msgstr "" +"Renvoie un *n*-uplet d'objets :class:`Field` correspondant aux champs de " +"l'argument, à l'exclusion des pseudo-champs ``ClassVar`` ou ``InitVar``. " +"L'argument peut être soit une classe de données, soit une instance d'une " +"telle classe ; si ce n'est pas le cas, une exception :exc:`TypeError` est " +"levée." -#: ../Doc/library/dataclasses.rst:289 +#: library/dataclasses.rst:292 msgid "" "Converts the dataclass ``instance`` to a dict (by using the factory function " "``dict_factory``). Each dataclass is converted to a dict of its fields, as " @@ -471,22 +530,22 @@ msgid "" "into. For example::" msgstr "" -#: ../Doc/library/dataclasses.rst:309 ../Doc/library/dataclasses.rst:323 +#: library/dataclasses.rst:326 msgid "Raises :exc:`TypeError` if ``instance`` is not a dataclass instance." msgstr "" -#: ../Doc/library/dataclasses.rst:313 +#: library/dataclasses.rst:316 msgid "" "Converts the dataclass ``instance`` to a tuple (by using the factory " "function ``tuple_factory``). Each dataclass is converted to a tuple of its " "field values. dataclasses, dicts, lists, and tuples are recursed into." msgstr "" -#: ../Doc/library/dataclasses.rst:318 +#: library/dataclasses.rst:321 msgid "Continuing from the previous example::" -msgstr "" +msgstr "Pour continuer l'exemple précédent :" -#: ../Doc/library/dataclasses.rst:327 +#: library/dataclasses.rst:330 msgid "" "Creates a new dataclass with name ``cls_name``, fields as defined in " "``fields``, base classes as given in ``bases``, and initialized with a " @@ -498,19 +557,23 @@ msgid "" "`dataclass`." msgstr "" -#: ../Doc/library/dataclasses.rst:336 +#: library/dataclasses.rst:339 msgid "" "This function is not strictly required, because any Python mechanism for " "creating a new class with ``__annotations__`` can then apply the :func:" "`dataclass` function to convert that class to a dataclass. This function is " "provided as a convenience. For example::" msgstr "" +"Cette fonction est pratique mais pas absolument nécessaire, puisqu'il suffit " +"de créer par un moyen quelconque une classe avec l'attribut " +"``__annotation__`` et de lui appliquer la fonction :func:`dataclass`, qui la " +"convertit en une classe de données. Par exemple, ceci :" -#: ../Doc/library/dataclasses.rst:348 +#: library/dataclasses.rst:351 msgid "Is equivalent to::" -msgstr "" +msgstr "est équivalent à ::" -#: ../Doc/library/dataclasses.rst:361 +#: library/dataclasses.rst:364 msgid "" "Creates a new object of the same type of ``instance``, replacing fields with " "values from ``changes``. If ``instance`` is not a Data Class, raises :exc:" @@ -518,27 +581,35 @@ msgid "" "`TypeError`." msgstr "" -#: ../Doc/library/dataclasses.rst:366 +#: library/dataclasses.rst:369 msgid "" "The newly returned object is created by calling the :meth:`__init__` method " "of the dataclass. This ensures that :meth:`__post_init__`, if present, is " "also called." msgstr "" +"L'objet renvoyé est créé à l'aide de la méthode :meth:`__init__` de la " +"classe de données, ce qui garantit que :meth:`__post_init__` est appelée (si " +"elle existe)." -#: ../Doc/library/dataclasses.rst:370 +#: library/dataclasses.rst:373 msgid "" "Init-only variables without default values, if any exist, must be specified " "on the call to :func:`replace` so that they can be passed to :meth:" "`__init__` and :meth:`__post_init__`." msgstr "" +"Si un champ d'initialisation (voir plus bas) n'a pas de valeur par défaut, " +"il faut l'inclure dans l'appel à :func:`replace` afin qu'il soit passé à :" +"meth:`__init__` et :meth:`__post_init__`." -#: ../Doc/library/dataclasses.rst:374 +#: library/dataclasses.rst:377 msgid "" "It is an error for ``changes`` to contain any fields that are defined as " "having ``init=False``. A :exc:`ValueError` will be raised in this case." msgstr "" +"Si une clé de *changes* correspond à un champ défini avec ``init=False``, :" +"exc:`ValueError` est levée." -#: ../Doc/library/dataclasses.rst:378 +#: library/dataclasses.rst:381 msgid "" "Be forewarned about how ``init=False`` fields work during a call to :func:" "`replace`. They are not copied from the source object, but rather are " @@ -548,25 +619,37 @@ msgid "" "perhaps a custom ``replace()`` (or similarly named) method which handles " "instance copying." msgstr "" +"Prenez garde aux champs définis avec ``init=False`` dans un appel à :func:" +"`replace`. Ils ne sont pas copiés automatiquement de l'instance source. " +"C'est le rôle de :meth:`__post_init__` de les initialiser — ou pas. Les " +"champs avec ``init=False`` doivent rarement être utilisés et seulement à bon " +"escient. Si vous en avez, il peut être sage de traiter la copie des " +"instances par des constructeurs de classe alternatifs, ou bien une méthode " +"personnalisée ``replace()`` (ou un nom similaire)." -#: ../Doc/library/dataclasses.rst:389 +#: library/dataclasses.rst:392 msgid "" -"Returns True if its parameter is a dataclass or an instance of one, " -"otherwise returns False." +"Return ``True`` if its parameter is a dataclass or an instance of one, " +"otherwise return ``False``." msgstr "" +"Renvoie ``True`` si l'argument est soit une classe de données, soit une " +"instance d'une telle classe. Sinon, renvoie ``False``." -#: ../Doc/library/dataclasses.rst:392 +#: library/dataclasses.rst:395 msgid "" "If you need to know if a class is an instance of a dataclass (and not a " "dataclass itself), then add a further check for ``not isinstance(obj, " "type)``::" msgstr "" +"Pour vérifier qu'un objet *obj* est une instance d'une classe de données, et " +"non pas lui-même une classe de données, ajoutez le test ``not " +"isinstance(obj, type)`` ::" -#: ../Doc/library/dataclasses.rst:400 +#: library/dataclasses.rst:403 msgid "Post-init processing" -msgstr "" +msgstr "Post-initialisation" -#: ../Doc/library/dataclasses.rst:402 +#: library/dataclasses.rst:405 msgid "" "The generated :meth:`__init__` code will call a method named :meth:" "`__post_init__`, if :meth:`__post_init__` is defined on the class. It will " @@ -575,25 +658,38 @@ msgid "" "order they were defined in the class. If no :meth:`__init__` method is " "generated, then :meth:`__post_init__` will not automatically be called." msgstr "" +"Après avoir initialisé l'objet, la méthode :meth:`__init__` générée appelle " +"la méthode :meth:`__post_init__`, si elle est définie. :meth:`__post_init__` " +"est habituellement appelée avec un simple ``self.__post_init__()``. " +"Cependant, si la classe comporte des champs d'initialisation (voir plus " +"bas), leurs valeurs sont aussi passées à :meth:`__post_init__` telles " +"qu'elles ont été fournies à :meth:`__init__`. Si la classe est créée avec " +"``init=False``, :meth:`__post_init__` n'est jamais appelée automatiquement." -#: ../Doc/library/dataclasses.rst:410 +#: library/dataclasses.rst:413 msgid "" "Among other uses, this allows for initializing field values that depend on " "one or more other fields. For example::" msgstr "" +"Cette méthode permet, entre autres, d'initialiser des champs qui dépendent " +"d'autres champs. Par exemple :" -#: ../Doc/library/dataclasses.rst:422 +#: library/dataclasses.rst:425 msgid "" "See the section below on init-only variables for ways to pass parameters to :" "meth:`__post_init__`. Also see the warning about how :func:`replace` " "handles ``init=False`` fields." msgstr "" +"Voir la section plus bas à propos des variables d'initialisation pour les " +"moyens de passer des paramètres à :meth:`__post_init__`. Voir également " +"l'avertissement sur le traitement par :func:`replace` des champs définis " +"avec ``init=False``." -#: ../Doc/library/dataclasses.rst:427 +#: library/dataclasses.rst:430 msgid "Class variables" -msgstr "" +msgstr "Variables de classe" -#: ../Doc/library/dataclasses.rst:429 +#: library/dataclasses.rst:432 msgid "" "One of two places where :func:`dataclass` actually inspects the type of a " "field is to determine if a field is a class variable as defined in :pep:" @@ -603,11 +699,11 @@ msgid "" "pseudo-fields are not returned by the module-level :func:`fields` function." msgstr "" -#: ../Doc/library/dataclasses.rst:438 +#: library/dataclasses.rst:441 msgid "Init-only variables" -msgstr "" +msgstr "Variables d'initialisation" -#: ../Doc/library/dataclasses.rst:440 +#: library/dataclasses.rst:443 msgid "" "The other place where :func:`dataclass` inspects a type annotation is to " "determine if a field is an init-only variable. It does this by seeing if " @@ -619,23 +715,27 @@ msgid "" "`__post_init__` method. They are not otherwise used by dataclasses." msgstr "" -#: ../Doc/library/dataclasses.rst:450 +#: library/dataclasses.rst:453 msgid "" "For example, suppose a field will be initialized from a database, if a value " "is not provided when creating the class::" msgstr "" +"On peut par exemple imaginer un champ initialisé à partir d'une base de " +"données s'il n'a pas reçu de valeur explicite :" -#: ../Doc/library/dataclasses.rst:465 +#: library/dataclasses.rst:468 msgid "" "In this case, :func:`fields` will return :class:`Field` objects for ``i`` " "and ``j``, but not for ``database``." msgstr "" +"Ici, :func:`fields` renvoie des objets :class:`Field` correspondant à ``i`` " +"et à ``j``, mais pas à ``database``." -#: ../Doc/library/dataclasses.rst:469 +#: library/dataclasses.rst:472 msgid "Frozen instances" -msgstr "" +msgstr "Instances figées" -#: ../Doc/library/dataclasses.rst:471 +#: library/dataclasses.rst:474 msgid "" "It is not possible to create truly immutable Python objects. However, by " "passing ``frozen=True`` to the :meth:`dataclass` decorator you can emulate " @@ -643,19 +743,27 @@ msgid "" "meth:`__delattr__` methods to the class. These methods will raise a :exc:" "`FrozenInstanceError` when invoked." msgstr "" +"Bien qu'il ne soit pas possible de créer des objets Python strictement " +"immuables, on peut rendre les instances d'une classe de données quasi " +"immuables en passant ``frozen=True`` au décorateur :meth:`dataclass`, ce qui " +"lui fait générer des méthodes :meth:`__setattr__` et :meth:`__delattr__`. " +"Celles-ci lèvent systématiquement l'exception :exc:`FrozenInstanceError`." -#: ../Doc/library/dataclasses.rst:477 +#: library/dataclasses.rst:480 msgid "" "There is a tiny performance penalty when using ``frozen=True``: :meth:" "`__init__` cannot use simple assignment to initialize fields, and must use :" "meth:`object.__setattr__`." msgstr "" +"Les performances sont légèrement moins bonnes avec ``frozen=True`` car :meth:" +"`__init__` doit passer par :meth:`object.__setattr__` au lieu de simples " +"affectations pour initialiser les champs." -#: ../Doc/library/dataclasses.rst:482 +#: library/dataclasses.rst:485 msgid "Inheritance" msgstr "Héritage" -#: ../Doc/library/dataclasses.rst:484 +#: library/dataclasses.rst:487 msgid "" "When the dataclass is being created by the :meth:`dataclass` decorator, it " "looks through all of the class's base classes in reverse MRO (that is, " @@ -666,61 +774,82 @@ msgid "" "ordered mapping of fields. Because the fields are in insertion order, " "derived classes override base classes. An example::" msgstr "" +"Au moment de la création d'une classe de données, le décorateur :meth:" +"`dataclass` parcourt toutes les classes mères dans l'ordre inverse de " +"résolution des méthodes (donc en commençant par :class:`object`). À chaque " +"fois qu'une classe de données est rencontrée, ses champs sont insérés dans " +"un tableau associatif ordonné. Pour finir, les champs de la classe elle-même " +"sont rajoutés. Toutes les méthodes générées utilisent en interne ce même " +"tableau associatif. Puisqu'il est ordonné, les champs des classes filles " +"écrasent ceux des classes mères. Voici un exemple :" -#: ../Doc/library/dataclasses.rst:504 +#: library/dataclasses.rst:507 msgid "" "The final list of fields is, in order, ``x``, ``y``, ``z``. The final type " "of ``x`` is ``int``, as specified in class ``C``." msgstr "" +"La liste finale des champs contient, dans l'ordre, ``x``, ``y``, ``z``. Le " +"type de ``x`` est ``int``, comme déclaré dans ``C``." -#: ../Doc/library/dataclasses.rst:507 +#: library/dataclasses.rst:510 msgid "The generated :meth:`__init__` method for ``C`` will look like::" -msgstr "" +msgstr "La méthode :meth:`__init__` générée pour ``C`` ressemble à :" -#: ../Doc/library/dataclasses.rst:512 +#: library/dataclasses.rst:515 msgid "Default factory functions" -msgstr "" +msgstr "Fabriques de valeurs par défaut" -#: ../Doc/library/dataclasses.rst:514 +#: library/dataclasses.rst:517 msgid "" "If a :func:`field` specifies a ``default_factory``, it is called with zero " "arguments when a default value for the field is needed. For example, to " "create a new instance of a list, use::" msgstr "" +"Le paramètre facultatif *default_factory* de :func:`field` est une fonction " +"qui est appelée sans argument pour fournir des valeurs par défaut. Par " +"exemple, voici comment donner la valeur par défaut d'une liste vide :" -#: ../Doc/library/dataclasses.rst:520 +#: library/dataclasses.rst:523 msgid "" "If a field is excluded from :meth:`__init__` (using ``init=False``) and the " "field also specifies ``default_factory``, then the default factory function " "will always be called from the generated :meth:`__init__` function. This " "happens because there is no other way to give the field an initial value." msgstr "" +"Si un champ avec fabrique est exclu de :meth:`__init__` (par " +"``init=False``), alors la fabrique est appelée par :meth:`__init__` pour " +"chaque nouvelle instance, puisque c'est le seul moyen d'obtenir une valeur à " +"laquelle initialiser le champ." -#: ../Doc/library/dataclasses.rst:527 +#: library/dataclasses.rst:530 msgid "Mutable default values" -msgstr "" +msgstr "Valeurs par défaut muables" -#: ../Doc/library/dataclasses.rst:529 +#: library/dataclasses.rst:532 msgid "" "Python stores default member variable values in class attributes. Consider " "this example, not using dataclasses::" msgstr "" +"En Python, les valeurs par défaut des attributs sont stockées dans des " +"attributs de la classe. Observez cet exemple, sans classe de données :" -#: ../Doc/library/dataclasses.rst:544 +#: library/dataclasses.rst:547 msgid "" "Note that the two instances of class ``C`` share the same class variable " "``x``, as expected." msgstr "" +"Comme attendu, les deux instances de ``C`` partagent le même objet pour " +"l'attribut ``x``." -#: ../Doc/library/dataclasses.rst:547 +#: library/dataclasses.rst:550 msgid "Using dataclasses, *if* this code was valid::" -msgstr "" +msgstr "Avec les classes de données, si ce code était valide :" -#: ../Doc/library/dataclasses.rst:555 +#: library/dataclasses.rst:558 msgid "it would generate code similar to::" -msgstr "" +msgstr "il générerait un code équivalent à :" -#: ../Doc/library/dataclasses.rst:566 +#: library/dataclasses.rst:569 msgid "" "This has the same issue as the original example using class ``C``. That is, " "two instances of class ``D`` that do not specify a value for ``x`` when " @@ -732,18 +861,24 @@ msgid "" "partial solution, but it does protect against many common errors." msgstr "" -#: ../Doc/library/dataclasses.rst:576 +#: library/dataclasses.rst:579 msgid "" "Using default factory functions is a way to create new instances of mutable " "types as default values for fields::" msgstr "" +"Pour qu'un champ d'un type muable soit par défaut initialisé à un nouvel " +"objet pour chaque instance, utilisez une fonction de fabrique :" -#: ../Doc/library/dataclasses.rst:586 +#: library/dataclasses.rst:589 msgid "Exceptions" msgstr "Exceptions" -#: ../Doc/library/dataclasses.rst:590 +#: library/dataclasses.rst:593 msgid "" "Raised when an implicitly defined :meth:`__setattr__` or :meth:`__delattr__` " -"is called on a dataclass which was defined with ``frozen=True``." +"is called on a dataclass which was defined with ``frozen=True``. It is a " +"subclass of :exc:`AttributeError`." msgstr "" +"Sous-classe de :exc:`AttributeError`, levée lorsqu'une méthode :meth:" +"`__setattr__` ou :meth:`__delattr__` définie implicitement est appelée dans " +"une classe de données définie avec ``frozen=True``." diff --git a/library/datatypes.po b/library/datatypes.po index c5158bc3af..6409026017 100644 --- a/library/datatypes.po +++ b/library/datatypes.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2018-09-28 11:37+0200\n" -"Last-Translator: Julien Palard \n" +"PO-Revision-Date: 2019-11-17 23:05+0100\n" +"Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.4\n" #: ../Doc/library/datatypes.rst:5 msgid "Data Types" msgstr "Types de données" #: ../Doc/library/datatypes.rst:7 -#, fuzzy msgid "" "The modules described in this chapter provide a variety of specialized data " "types such as dates and times, fixed-type arrays, heap queues, double-ended " @@ -27,10 +27,9 @@ msgid "" msgstr "" "Les modules documentés dans ce chapitre fournissent une gamme de types de " "données spécialisés tel que les dates et les heures, les listes à type " -"prédéfini, les *heap queue*, les queues synchronisées, et les ensembles." +"prédéfini, les *heap queue*, les queues synchronisées et les énumérations." #: ../Doc/library/datatypes.rst:11 -#, fuzzy msgid "" "Python also provides some built-in data types, in particular, :class:" "`dict`, :class:`list`, :class:`set` and :class:`frozenset`, and :class:" @@ -39,8 +38,8 @@ msgid "" msgstr "" "Python fournit aussi quelques types natifs, typiquement :class:`dict`, :" "class:`list`, :class:`set`, :class:`frozenset`, et :class:`tuple`. La " -"classe :class:`str` est utilisée pour stocker des chaînes Unicode, et la " -"classe :class:`bytes` des données binaires." +"classe :class:`str` est utilisée pour stocker des chaînes Unicode, et les " +"classes :class:`bytes` et :class:`bytearray` des données binaires." #: ../Doc/library/datatypes.rst:17 msgid "The following modules are documented in this chapter:" diff --git a/library/datetime.po b/library/datetime.po index 5f0469875e..6ad3e81bc8 100644 --- a/library/datetime.po +++ b/library/datetime.po @@ -3,81 +3,84 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-08-21 00:28+0200\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-06-01 17:38+0200\n" +"Last-Translator: Loc Cosnier \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.36.0\n" -#: ../Doc/library/datetime.rst:2 +#: library/datetime.rst:2 msgid ":mod:`datetime` --- Basic date and time types" msgstr ":mod:`datetime` — Types de base pour la date et l'heure" -#: ../Doc/library/datetime.rst:11 +#: library/datetime.rst:11 msgid "**Source code:** :source:`Lib/datetime.py`" msgstr "**Code source :** :source:`Lib/datetime.py`" -#: ../Doc/library/datetime.rst:17 -#, fuzzy +#: library/datetime.rst:17 msgid "" "The :mod:`datetime` module supplies classes for manipulating dates and times." -msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" +msgstr "" +"Le module :mod:`datetime` fournit des classes permettant de manipuler les " +"dates et les heures." -#: ../Doc/library/datetime.rst:19 -#, fuzzy +#: library/datetime.rst:19 msgid "" "While date and time arithmetic is supported, the focus of the implementation " "is on efficient attribute extraction for output formatting and manipulation." msgstr "" -"Le module :mod:`datetime` fournit des classes pour manipuler de façon simple " -"ou plus complexe des dates et des heures. Bien que les calculs de date et " -"d'heure sont gérés, l'implémentation est essentiellement tournée vers " -"l'efficacité pour extraire des attributs pour les manipuler et les formater " -"pour l'affichage. Pour d'autres fonctionnalités associées, voir aussi les " -"modules :mod:`time` et :mod:`calendar`." +"Bien que les calculs de date et d'heure sont gérés, l'attention lors de " +"l'implémentation s'est essentiellement portée sur l'efficacité de " +"l'extraction des attributs en vue de leur manipulation et formatage pour " +"l'affichage." -#: ../Doc/library/datetime.rst:25 +#: library/datetime.rst:25 msgid "Module :mod:`calendar`" msgstr "Module :mod:`calendar`" -#: ../Doc/library/datetime.rst:25 +#: library/datetime.rst:25 msgid "General calendar related functions." msgstr "Fonctions génériques associées au calendrier." -#: ../Doc/library/datetime.rst:28 +#: library/datetime.rst:28 msgid "Module :mod:`time`" msgstr "Module :mod:`time`" -#: ../Doc/library/datetime.rst:28 +#: library/datetime.rst:28 msgid "Time access and conversions." -msgstr "Accès au données d'horaires et aux conversions associées." +msgstr "Accès aux données d'horaires et aux conversions associées." -#: ../Doc/library/datetime.rst:30 -#, fuzzy +#: library/datetime.rst:30 msgid "Package `dateutil `_" -msgstr "`dateutil.tz `_" +msgstr "Paquet `dateutil `_" -#: ../Doc/library/datetime.rst:31 +#: library/datetime.rst:31 msgid "Third-party library with expanded time zone and parsing support." msgstr "" +"Bibliothèque tierce avec prise en charge complète du fuseau horaire et de " +"l'analyse de dates sous forme textuelle." -#: ../Doc/library/datetime.rst:36 -#, fuzzy +#: library/datetime.rst:36 msgid "Aware and Naive Objects" -msgstr "Pour un objet avisé :" +msgstr "Objets avisés et naïfs" -#: ../Doc/library/datetime.rst:38 -msgid "Date and time objects may be categorized as \"aware\" or \"naive.\"" +#: library/datetime.rst:38 +msgid "" +"Date and time objects may be categorized as \"aware\" or \"naive\" depending " +"on whether or not they include timezone information." msgstr "" +"Les objets *date* et *time* peuvent être classés comme « avisés » ou " +"« naïfs » selon qu'ils contiennent ou non des informations sur le fuseau " +"horaire." -#: ../Doc/library/datetime.rst:40 -#, fuzzy +#: library/datetime.rst:41 msgid "" "With sufficient knowledge of applicable algorithmic and political time " "adjustments, such as time zone and daylight saving time information, an " @@ -85,14 +88,13 @@ msgid "" "object represents a specific moment in time that is not open to " "interpretation. [#]_" msgstr "" -"Un objet avisé possède suffisamment de connaissance des règles à appliquer " -"et des politiques d'ajustement de l'heure comme les informations sur les " -"fuseaux horaires et l'heure d'été pour se situer de façon relative par " -"rapport à d'autres objets avisés. Un objet avisé est utilisé pour représenté " -"un moment précis de l'histoire qui n'est pas ouvert à l'interprétation [#]_." +"Un objet **avisé** possède suffisamment de connaissance des règles à " +"appliquer et des politiques d'ajustement de l'heure comme les informations " +"sur les fuseaux horaires et l'heure d'été pour se situer de façon relative " +"par rapport à d'autres objets avisés. Un objet avisé est utilisé pour " +"représenter un instant précis qui n'est pas ouvert à l'interprétation [#]_." -#: ../Doc/library/datetime.rst:46 -#, fuzzy +#: library/datetime.rst:47 msgid "" "A **naive** object does not contain enough information to unambiguously " "locate itself relative to other date/time objects. Whether a naive object " @@ -102,7 +104,7 @@ msgid "" "objects are easy to understand and to work with, at the cost of ignoring " "some aspects of reality." msgstr "" -"Un objet naïf ne comporte pas assez d'informations pour se situer sans " +"Un objet **naïf** ne comporte pas assez d'informations pour se situer sans " "ambiguïté par rapport à d'autres objets *date/time*. Le fait qu'un objet " "naïf représente un Temps universel coordonné (UTC), une heure locale ou une " "heure dans un autre fuseau horaire dépend complètement du programme, tout " @@ -110,7 +112,7 @@ msgstr "" "le programme. Les objets naïfs sont simples à comprendre et il est aisé de " "travailler avec, au prix de négliger certains aspects de la réalité." -#: ../Doc/library/datetime.rst:53 +#: library/datetime.rst:54 msgid "" "For applications requiring aware objects, :class:`.datetime` and :class:`." "time` objects have an optional time zone information attribute, :attr:`!" @@ -119,9 +121,14 @@ msgid "" "offset from UTC time, the time zone name, and whether daylight saving time " "is in effect." msgstr "" +"Pour les applications nécessitant des objets avisés, les objets :class:`." +"datetime` et :class:`.time` ont un attribut facultatif renseignant le fuseau " +"horaire, :attr:`!tzinfo`, qui peut être une instance d'une sous-classe de la " +"classe abstraite :class:`tzinfo`. Ces objets :class:`tzinfo` regroupent des " +"informations sur le décalage par rapport à l'heure UTC, le nom du fuseau " +"horaire, et si l'heure d'été est en vigueur." -#: ../Doc/library/datetime.rst:59 -#, fuzzy +#: library/datetime.rst:60 msgid "" "Only one concrete :class:`tzinfo` class, the :class:`timezone` class, is " "supplied by the :mod:`datetime` module. The :class:`timezone` class can " @@ -131,30 +138,24 @@ msgid "" "across the world are more political than rational, change frequently, and " "there is no standard suitable for every application aside from UTC." msgstr "" -"Pour les applications qui nécessitent des objets avisés, les objets :class:`." -"datetime` et :class:`.time` ont un attribut optionnel d'information sur le " -"fuseau horaire, :attr:`!tzinfo`, qui peut être réglé sur une instance d'une " -"sous-classe de la classe abstraite :class:`tzinfo`. Ces objets :class:" -"`tzinfo` capturent l'information à propos du décalage avec le temps UTC, le " -"nom du fuseau horaire, et si l'heure d'été est effective. Notez qu'une " -"seule classe concrète :class:`tzinfo`, la classe :class:`timezone`, est " -"proposée par le module :mod:`datetime`. La classe :class:`timezone` " -"représente des fuseaux horaires simples avec un décalage fixe par rapport à " -"UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du Nord. Gérer " -"des fuseaux horaires d'un niveau de détails plus avancé est à la charge de " -"l'application. Les règles d'ajustement du temps à travers le monde sont " -"plus politiques que rationnelles, changent fréquemment, et il n'y a pas de " -"standard qui vaille pour toute application, en dehors d'UTC." - -#: ../Doc/library/datetime.rst:68 +"Notez qu'une seule classe concrète :class:`tzinfo`, la classe :class:" +"`timezone`, est proposée par le module :mod:`datetime`. La classe :class:" +"`timezone` représente des fuseaux horaires simples avec un décalage fixe par " +"rapport à UTC, comme UTC lui-même ou les fuseaux EST et EDT d'Amérique du " +"Nord. Gérer des fuseaux horaires d'un niveau de détails plus avancé est à la " +"charge de l'application. Les règles d'ajustement du temps à travers le monde " +"sont plus politiques que rationnelles, changent fréquemment, et il n'y a pas " +"de standard qui vaille pour toute application, en dehors d'UTC." + +#: library/datetime.rst:69 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/datetime.rst:70 +#: library/datetime.rst:71 msgid "The :mod:`datetime` module exports the following constants:" -msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" +msgstr "Le module :mod:`datetime` exporte les constantes suivantes :" -#: ../Doc/library/datetime.rst:74 +#: library/datetime.rst:75 msgid "" "The smallest year number allowed in a :class:`date` or :class:`.datetime` " "object. :const:`MINYEAR` is ``1``." @@ -162,7 +163,7 @@ msgstr "" "Le numéro d'année le plus petit autorisé dans un objet :class:`date` ou :" "class:`datetime`. :const:`MINYEAR` vaut ``1``." -#: ../Doc/library/datetime.rst:80 +#: library/datetime.rst:81 msgid "" "The largest year number allowed in a :class:`date` or :class:`.datetime` " "object. :const:`MAXYEAR` is ``9999``." @@ -170,44 +171,43 @@ msgstr "" "Le numéro d'année le plus grand autorisé dans un objet :class:`date` ou :" "class:`datetime`. :const:`MAXYEAR` vaut ``9999``." -#: ../Doc/library/datetime.rst:84 +#: library/datetime.rst:85 msgid "Available Types" msgstr "Types disponibles" -#: ../Doc/library/datetime.rst:89 +#: library/datetime.rst:90 msgid "" "An idealized naive date, assuming the current Gregorian calendar always was, " "and always will be, in effect. Attributes: :attr:`year`, :attr:`month`, and :" "attr:`day`." msgstr "" "Une date naïve idéalisée, en supposant que le calendrier Grégorien actuel a " -"toujours existé et qu'il existera toujours. Attributs : :attr:`year`, :attr:" +"toujours existé et qu'il existera toujours. Attributs : :attr:`year`, :attr:" "`month` et :attr:`day`." -#: ../Doc/library/datetime.rst:97 -#, fuzzy +#: library/datetime.rst:98 msgid "" "An idealized time, independent of any particular day, assuming that every " -"day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap seconds" -"\" here.) Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" -"`microsecond`, and :attr:`.tzinfo`." +"day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap " +"seconds\" here.) Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :" +"attr:`microsecond`, and :attr:`.tzinfo`." msgstr "" "Un temps idéalisé, indépendant d'une date particulière, en supposant qu'une " "journée est composée d'exactement 24\\*60\\*60 secondes (il n'y a pas ici de " -"notion de \"seconde bissextile\"). Attributs : :attr:`hour`, :attr:" +"notion de « seconde intercalaire »). Attributs : :attr:`hour`, :attr:" "`minute`, :attr:`second`, :attr:`microsecond` et :attr:`tzinfo`." -#: ../Doc/library/datetime.rst:106 +#: library/datetime.rst:107 msgid "" "A combination of a date and a time. Attributes: :attr:`year`, :attr:" "`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" "`microsecond`, and :attr:`.tzinfo`." msgstr "" -"Une combinaison d'une date et d'une heure. Attributs : :attr:`year`, :attr:" +"Une combinaison d'une date et d'une heure. Attributs : :attr:`year`, :attr:" "`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:" "`microsecond`, et :attr:`tzinfo`." -#: ../Doc/library/datetime.rst:114 +#: library/datetime.rst:115 msgid "" "A duration expressing the difference between two :class:`date`, :class:`." "time`, or :class:`.datetime` instances to microsecond resolution." @@ -215,7 +215,7 @@ msgstr "" "Une durée qui exprime la différence entre deux instances de :class:`date`, :" "class:`time` ou :class:`datetime` en microsecondes." -#: ../Doc/library/datetime.rst:121 +#: library/datetime.rst:122 #, fuzzy msgid "" "An abstract base class for time zone information objects. These are used by " @@ -229,7 +229,7 @@ msgstr "" "d'ajustement d'horaire (par exemple la prise en compte d'un fuseau horaire " "et/ou de l'heure d'été)." -#: ../Doc/library/datetime.rst:129 +#: library/datetime.rst:130 msgid "" "A class that implements the :class:`tzinfo` abstract base class as a fixed " "offset from the UTC." @@ -237,96 +237,106 @@ msgstr "" "Une classe qui implémente la classe de base abstraite :class:`tzinfo` en " "tant qu'offset fixe par rapport au temps UTC." -#: ../Doc/library/datetime.rst:134 ../Doc/library/datetime.rst:152 +#: library/datetime.rst:153 msgid "Objects of these types are immutable." msgstr "Les objets issus de ces types sont immuables." -#: ../Doc/library/datetime.rst:136 +#: library/datetime.rst:137 msgid "Subclass relationships::" msgstr "Relations entre les sous-classes ::" -#: ../Doc/library/datetime.rst:147 +#: library/datetime.rst:148 msgid "Common Properties" -msgstr "" +msgstr "Propriétés communes" -#: ../Doc/library/datetime.rst:149 +#: library/datetime.rst:150 msgid "" "The :class:`date`, :class:`.datetime`, :class:`.time`, and :class:`timezone` " "types share these common features:" msgstr "" +"Les types :class:`date`, :class:`.datetime`, :class:`.time`, et :class:" +"`timezone` partagent les caractéristiques suivantes :" -#: ../Doc/library/datetime.rst:153 +#: library/datetime.rst:154 msgid "" "Objects of these types are hashable, meaning that they can be used as " "dictionary keys." msgstr "" +"Les objets de ces types sont hachables, ce qui signifie qu'ils peuvent être " +"utilisés comme clés de dictionnaire." -#: ../Doc/library/datetime.rst:155 +#: library/datetime.rst:156 msgid "" "Objects of these types support efficient pickling via the :mod:`pickle` " "module." msgstr "" +"Les objets de ces types peuvent être sérialisés efficacement par le module :" +"mod:`pickle`." -#: ../Doc/library/datetime.rst:158 +#: library/datetime.rst:159 msgid "Determining if an Object is Aware or Naive" -msgstr "" +msgstr "Catégorisation d'un objet en « avisé » ou « naïf »" -#: ../Doc/library/datetime.rst:160 +#: library/datetime.rst:161 msgid "Objects of the :class:`date` type are always naive." msgstr "Les objets de type :class:`date` sont toujours naïfs." -#: ../Doc/library/datetime.rst:162 -#, fuzzy +#: library/datetime.rst:163 msgid "" "An object of type :class:`.time` or :class:`.datetime` may be aware or naive." -msgstr "Les objets de type :class:`date` sont toujours naïfs." +msgstr "" +"Un objet du type :class:`.time` ou :class:`.datetime` peut être avisé ou " +"naïf." -#: ../Doc/library/datetime.rst:164 +#: library/datetime.rst:165 msgid "A :class:`.datetime` object *d* is aware if both of the following hold:" msgstr "" +"Un objet :class:`.datetime` *d* est avisé si les deux conditions suivantes " +"vérifient :" -#: ../Doc/library/datetime.rst:166 +#: library/datetime.rst:167 msgid "``d.tzinfo`` is not ``None``" -msgstr "" +msgstr "``d.tzinfo`` ne vaut pas ``None``" -#: ../Doc/library/datetime.rst:167 +#: library/datetime.rst:168 msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" -msgstr "" +msgstr "``d.tzinfo.utcoffset(d)`` ne renvoie pas ``None``" -#: ../Doc/library/datetime.rst:169 +#: library/datetime.rst:170 msgid "Otherwise, *d* is naive." -msgstr "" +msgstr "Autrement, *d* est naïf." -#: ../Doc/library/datetime.rst:171 +#: library/datetime.rst:172 msgid "A :class:`.time` object *t* is aware if both of the following hold:" msgstr "" +"Un objet :class:`.time` *t* est avisé si les deux conditions suivantes " +"vérifient :" -#: ../Doc/library/datetime.rst:173 +#: library/datetime.rst:174 msgid "``t.tzinfo`` is not ``None``" -msgstr "" +msgstr "``t.tzinfo`` ne vaut pas ``None``" -#: ../Doc/library/datetime.rst:174 +#: library/datetime.rst:175 msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." -msgstr "" +msgstr "``t.tzinfo.utcoffset(None)`` ne renvoie pas ``None``." -#: ../Doc/library/datetime.rst:176 +#: library/datetime.rst:177 msgid "Otherwise, *t* is naive." -msgstr "" +msgstr "Autrement, *t* est naïf." -#: ../Doc/library/datetime.rst:178 -#, fuzzy +#: library/datetime.rst:179 msgid "" "The distinction between aware and naive doesn't apply to :class:`timedelta` " "objects." msgstr "" -"La distinction entre naïf et avisé ne s'applique pas aux objets de type :" +"La distinction entre avisé et naïf ne s'applique pas aux objets de type :" "class:`timedelta`." -#: ../Doc/library/datetime.rst:184 +#: library/datetime.rst:185 msgid ":class:`timedelta` Objects" msgstr "Objets :class:`timedelta`" -#: ../Doc/library/datetime.rst:186 +#: library/datetime.rst:187 msgid "" "A :class:`timedelta` object represents a duration, the difference between " "two dates or times." @@ -334,7 +344,7 @@ msgstr "" "Un objet :class:`timedelta` représente une durée, c'est-à-dire la différence " "entre deux dates ou heures." -#: ../Doc/library/datetime.rst:191 +#: library/datetime.rst:192 #, fuzzy msgid "" "All arguments are optional and default to ``0``. Arguments may be integers " @@ -344,32 +354,31 @@ msgstr "" "Les paramètres peuvent être des entiers ou des flottants et ils peuvent être " "positifs ou négatifs." -#: ../Doc/library/datetime.rst:194 -#, fuzzy +#: library/datetime.rst:195 msgid "" "Only *days*, *seconds* and *microseconds* are stored internally. Arguments " "are converted to those units:" msgstr "" "Seuls les *jours*, les *secondes* et les *microsecondes* sont stockés en " -"interne. Tous les paramètres sont convertis dans ces unités :" +"interne. Tous les paramètres sont convertis dans ces unités :" -#: ../Doc/library/datetime.rst:197 +#: library/datetime.rst:198 msgid "A millisecond is converted to 1000 microseconds." msgstr "Une milliseconde est convertie en 1000 microsecondes." -#: ../Doc/library/datetime.rst:198 +#: library/datetime.rst:199 msgid "A minute is converted to 60 seconds." msgstr "Une minute est convertie en 60 secondes." -#: ../Doc/library/datetime.rst:199 +#: library/datetime.rst:200 msgid "An hour is converted to 3600 seconds." msgstr "Une heure est convertie en 3600 secondes." -#: ../Doc/library/datetime.rst:200 +#: library/datetime.rst:201 msgid "A week is converted to 7 days." msgstr "Une semaine est convertie en 7 jours." -#: ../Doc/library/datetime.rst:202 +#: library/datetime.rst:203 msgid "" "and days, seconds and microseconds are then normalized so that the " "representation is unique, with" @@ -377,27 +386,29 @@ msgstr "" "et ensuite les jours, secondes et microsecondes sont normalisés pour que la " "représentation soit unique avec" -#: ../Doc/library/datetime.rst:205 +#: library/datetime.rst:206 msgid "``0 <= microseconds < 1000000``" msgstr "``0 <= microseconds < 1000000``" -#: ../Doc/library/datetime.rst:206 +#: library/datetime.rst:207 msgid "``0 <= seconds < 3600*24`` (the number of seconds in one day)" msgstr "``0 <= secondes < 3600*24`` (le nombre de secondes dans une journée)" -#: ../Doc/library/datetime.rst:207 +#: library/datetime.rst:208 msgid "``-999999999 <= days <= 999999999``" msgstr "``-999999999 <= days <= 999999999``" -#: ../Doc/library/datetime.rst:209 +#: library/datetime.rst:210 msgid "" "The following example illustrates how any arguments besides *days*, " "*seconds* and *microseconds* are \"merged\" and normalized into those three " "resulting attributes::" msgstr "" +"L'exemple suivant illustre comment tous les arguments autres que *days*, " +"*seconds* et *microseconds* sont « fusionnés » et normalisés dans ces trois " +"attributs résultants ::" -#: ../Doc/library/datetime.rst:227 -#, fuzzy +#: library/datetime.rst:228 msgid "" "If any argument is a float and there are fractional microseconds, the " "fractional microseconds left over from all arguments are combined and their " @@ -407,12 +418,12 @@ msgid "" msgstr "" "Si l'un des arguments est un flottant et qu'il y a des microsecondes " "décimales, les microsecondes décimales laissées par les arguments sont " -"combinées et leur somme est arrondie à la microseconde la plus proche (en " -"arrondissant les demis vers le nombre pair). Si aucun argument n'est " +"combinées et leur somme est arrondie à la microseconde la plus proche (en " +"arrondissant les demis vers le nombre pair). Si aucun argument n'est " "flottant, les processus de conversion et de normalisation seront exacts (pas " "d'informations perdues)." -#: ../Doc/library/datetime.rst:234 +#: library/datetime.rst:235 msgid "" "If the normalized value of days lies outside the indicated range, :exc:" "`OverflowError` is raised." @@ -420,26 +431,24 @@ msgstr "" "Si la valeur normalisée des jours déborde de l'intervalle indiqué, une :exc:" "`OverflowError` est levée." -#: ../Doc/library/datetime.rst:237 +#: library/datetime.rst:238 #, fuzzy msgid "" "Note that normalization of negative values may be surprising at first. For " "example::" msgstr "" "Notez que la normalisation de valeurs négatives peut être surprenante au " -"premier abord. Par exemple," +"premier abord. Par exemple ::" -#: ../Doc/library/datetime.rst:246 ../Doc/library/datetime.rst:540 -#: ../Doc/library/datetime.rst:1045 ../Doc/library/datetime.rst:1663 -#: ../Doc/library/datetime.rst:2257 +#: library/datetime.rst:541 library/datetime.rst:1662 library/datetime.rst:2256 msgid "Class attributes:" -msgstr "Attributs de la classe :" +msgstr "Attributs de la classe :" -#: ../Doc/library/datetime.rst:250 +#: library/datetime.rst:251 msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." msgstr "L'objet :class:`timedelta` le plus négatif, ``timedelta(-999999999)``." -#: ../Doc/library/datetime.rst:255 +#: library/datetime.rst:256 msgid "" "The most positive :class:`timedelta` object, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." @@ -447,7 +456,7 @@ msgstr "" "L'objet :class:`timedelta` le plus positif, ``timedelta(days=999999999, " "hours=23, minutes=59, seconds=59, microseconds=999999)``." -#: ../Doc/library/datetime.rst:261 +#: library/datetime.rst:262 msgid "" "The smallest possible difference between non-equal :class:`timedelta` " "objects, ``timedelta(microseconds=1)``." @@ -455,7 +464,7 @@ msgstr "" "La plus petite différence entre des objets :class:`timedelta` non égaux, " "``timedelta(microseconds=1)``." -#: ../Doc/library/datetime.rst:264 +#: library/datetime.rst:265 msgid "" "Note that, because of normalization, ``timedelta.max`` > ``-timedelta.min``. " "``-timedelta.max`` is not representable as a :class:`timedelta` object." @@ -464,63 +473,59 @@ msgstr "" "timedelta.min``. ``-timedelta.max`` n'est pas représentable sous la forme " "d'un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:267 ../Doc/library/datetime.rst:558 -#: ../Doc/library/datetime.rst:1065 ../Doc/library/datetime.rst:1683 +#: library/datetime.rst:559 library/datetime.rst:1682 msgid "Instance attributes (read-only):" -msgstr "Attributs de l'instance (en lecture seule) :" +msgstr "Attributs de l'instance (en lecture seule) :" -#: ../Doc/library/datetime.rst:270 +#: library/datetime.rst:271 msgid "Attribute" msgstr "Attribut" -#: ../Doc/library/datetime.rst:270 +#: library/datetime.rst:271 msgid "Value" msgstr "Valeur" -#: ../Doc/library/datetime.rst:272 +#: library/datetime.rst:273 msgid "``days``" msgstr "``days``" -#: ../Doc/library/datetime.rst:272 +#: library/datetime.rst:273 msgid "Between -999999999 and 999999999 inclusive" msgstr "Entre -999999999 et 999999999 inclus" -#: ../Doc/library/datetime.rst:274 +#: library/datetime.rst:275 msgid "``seconds``" msgstr "``seconds``" -#: ../Doc/library/datetime.rst:274 +#: library/datetime.rst:275 msgid "Between 0 and 86399 inclusive" msgstr "Entre 0 et 86399 inclus" -#: ../Doc/library/datetime.rst:276 +#: library/datetime.rst:277 msgid "``microseconds``" msgstr "``microseconds``" -#: ../Doc/library/datetime.rst:276 +#: library/datetime.rst:277 msgid "Between 0 and 999999 inclusive" msgstr "Entre 0 et 999999 inclus" -#: ../Doc/library/datetime.rst:279 ../Doc/library/datetime.rst:575 -#: ../Doc/library/datetime.rst:1118 +#: library/datetime.rst:576 library/datetime.rst:1117 msgid "Supported operations:" -msgstr "Opérations gérées :" +msgstr "Opérations gérées :" -#: ../Doc/library/datetime.rst:284 ../Doc/library/datetime.rst:578 -#: ../Doc/library/datetime.rst:1121 +#: library/datetime.rst:579 library/datetime.rst:1120 msgid "Operation" msgstr "Opération" -#: ../Doc/library/datetime.rst:284 ../Doc/library/datetime.rst:578 -#: ../Doc/library/datetime.rst:1121 +#: library/datetime.rst:579 library/datetime.rst:1120 msgid "Result" msgstr "Résultat" -#: ../Doc/library/datetime.rst:286 +#: library/datetime.rst:287 msgid "``t1 = t2 + t3``" msgstr "``t1 = t2 + t3``" -#: ../Doc/library/datetime.rst:286 +#: library/datetime.rst:287 msgid "" "Sum of *t2* and *t3*. Afterwards *t1*-*t2* == *t3* and *t1*-*t3* == *t2* are " "true. (1)" @@ -528,11 +533,11 @@ msgstr "" "Somme de *t2* et *t3*. Ensuite ``t1 - t2 == t3`` et ``t1 - t3 == t2`` sont " "des expressions vraies. (1)" -#: ../Doc/library/datetime.rst:289 +#: library/datetime.rst:290 msgid "``t1 = t2 - t3``" msgstr "``t1 = t2 - t3``" -#: ../Doc/library/datetime.rst:289 +#: library/datetime.rst:290 msgid "" "Difference of *t2* and *t3*. Afterwards *t1* == *t2* - *t3* and *t2* == *t1* " "+ *t3* are true. (1)(6)" @@ -540,11 +545,11 @@ msgstr "" "Différence entre *t2* et *t3*. Ensuite ``t1 == t2 - t3`` et ``t2 == t1 + " "t3`` sont des expressions vraies. (1)(6)" -#: ../Doc/library/datetime.rst:293 +#: library/datetime.rst:294 msgid "``t1 = t2 * i or t1 = i * t2``" msgstr "``t1 = t2 * i or t1 = i * t2``" -#: ../Doc/library/datetime.rst:293 +#: library/datetime.rst:294 msgid "" "Delta multiplied by an integer. Afterwards *t1* // i == *t2* is true, " "provided ``i != 0``." @@ -552,15 +557,15 @@ msgstr "" "Delta multiplié par un entier. Ensuite *t1* // i == *t2* est vrai, en " "admettant que ``i != 0``." -#: ../Doc/library/datetime.rst:297 +#: library/datetime.rst:298 msgid "In general, *t1* \\* i == *t1* \\* (i-1) + *t1* is true. (1)" msgstr "De manière générale, *t1* \\* i == *t1* \\* (i-1) + *t1* est vrai. (1)" -#: ../Doc/library/datetime.rst:300 +#: library/datetime.rst:301 msgid "``t1 = t2 * f or t1 = f * t2``" msgstr "``t1 = t2 * f or t1 = f * t2``" -#: ../Doc/library/datetime.rst:300 +#: library/datetime.rst:301 msgid "" "Delta multiplied by a float. The result is rounded to the nearest multiple " "of timedelta.resolution using round-half-to-even." @@ -569,11 +574,11 @@ msgstr "" "proche de ``timedelta.resolution`` en utilisant la règle de l'arrondi au " "pair le plus proche." -#: ../Doc/library/datetime.rst:304 +#: library/datetime.rst:305 msgid "``f = t2 / t3``" msgstr "``f = t2 / t3``" -#: ../Doc/library/datetime.rst:304 +#: library/datetime.rst:305 msgid "" "Division (3) of overall duration *t2* by interval unit *t3*. Returns a :" "class:`float` object." @@ -581,11 +586,11 @@ msgstr "" "Division (3) de la durée totale *t2* par l'unité d'intervalle *t3*. Renvoie " "un objet :class:`float`." -#: ../Doc/library/datetime.rst:308 +#: library/datetime.rst:309 msgid "``t1 = t2 / f or t1 = t2 / i``" msgstr "``t1 = t2 / f or t1 = t2 / i``" -#: ../Doc/library/datetime.rst:308 +#: library/datetime.rst:309 msgid "" "Delta divided by a float or an int. The result is rounded to the nearest " "multiple of timedelta.resolution using round-half-to-even." @@ -594,11 +599,11 @@ msgstr "" "multiple le plus proche de ``timedelta.resolution`` en utilisant la règle de " "l'arrondi au pair le plus proche." -#: ../Doc/library/datetime.rst:312 +#: library/datetime.rst:313 msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" msgstr "``t1 = t2 // i`` or ``t1 = t2 // t3``" -#: ../Doc/library/datetime.rst:312 +#: library/datetime.rst:313 #, fuzzy msgid "" "The floor is computed and the remainder (if any) is thrown away. In the " @@ -607,19 +612,19 @@ msgstr "" "Le quotient est calculé et le reste (s'il y en a un) est ignoré. Dans le " "second cas, un entier est renvoyé. (3)" -#: ../Doc/library/datetime.rst:316 +#: library/datetime.rst:317 msgid "``t1 = t2 % t3``" msgstr "``t1 = t2 % t3``" -#: ../Doc/library/datetime.rst:316 +#: library/datetime.rst:317 msgid "The remainder is computed as a :class:`timedelta` object. (3)" msgstr "Le reste est calculé comme un objet de type :class:`timedelta`. (3)" -#: ../Doc/library/datetime.rst:319 +#: library/datetime.rst:320 msgid "``q, r = divmod(t1, t2)``" msgstr "``q, r = divmod(t1, t2)``" -#: ../Doc/library/datetime.rst:319 +#: library/datetime.rst:320 msgid "" "Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " "t2``. q is an integer and r is a :class:`timedelta` object." @@ -627,19 +632,19 @@ msgstr "" "Calcule le quotient et le reste : ``q = t1 // t2`` (3) et ``r = t1 % t2``. q " "est un entier et r est un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:324 +#: library/datetime.rst:325 msgid "``+t1``" msgstr "``+t1``" -#: ../Doc/library/datetime.rst:324 +#: library/datetime.rst:325 msgid "Returns a :class:`timedelta` object with the same value. (2)" msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" -#: ../Doc/library/datetime.rst:327 +#: library/datetime.rst:328 msgid "``-t1``" msgstr "``-t1``" -#: ../Doc/library/datetime.rst:327 +#: library/datetime.rst:328 msgid "" "equivalent to :class:`timedelta`\\ (-*t1.days*, -*t1.seconds*, -*t1." "microseconds*), and to *t1*\\* -1. (1)(4)" @@ -647,11 +652,11 @@ msgstr "" "équivalent à :class:`timedelta`\\ (*-t1.days*, *-t1.seconds*, *-t1." "microseconds*), et à ``t1 * -1``. (1)(4)" -#: ../Doc/library/datetime.rst:332 +#: library/datetime.rst:333 msgid "``abs(t)``" msgstr "``abs(t)``" -#: ../Doc/library/datetime.rst:332 +#: library/datetime.rst:333 msgid "" "equivalent to +\\ *t* when ``t.days >= 0``, and to -*t* when ``t.days < 0``. " "(2)" @@ -659,11 +664,11 @@ msgstr "" "équivalent à ``+t`` quand ``t.days >= 0``, et à ``-t`` quand ``t.days < 0``. " "(2)" -#: ../Doc/library/datetime.rst:335 +#: library/datetime.rst:336 msgid "``str(t)``" msgstr "``str(t)``" -#: ../Doc/library/datetime.rst:335 +#: library/datetime.rst:336 msgid "" "Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " "negative for negative ``t``. (5)" @@ -671,11 +676,11 @@ msgstr "" "Renvoie une chaîne de la forme ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, où D est " "négatif pour ``t`` négatif. (5)" -#: ../Doc/library/datetime.rst:339 +#: library/datetime.rst:340 msgid "``repr(t)``" msgstr "``repr(t)``" -#: ../Doc/library/datetime.rst:339 +#: library/datetime.rst:340 msgid "" "Returns a string representation of the :class:`timedelta` object as a " "constructor call with canonical attribute values." @@ -683,42 +688,40 @@ msgstr "" "Renvoie une chaîne de la forme objet :class:`timedelta` comme un appel " "construit avec des valeurs d'attributs canoniques." -#: ../Doc/library/datetime.rst:345 ../Doc/library/datetime.rst:592 -#: ../Doc/library/datetime.rst:2469 +#: library/datetime.rst:593 library/datetime.rst:2468 msgid "Notes:" msgstr "Notes :" -#: ../Doc/library/datetime.rst:348 +#: library/datetime.rst:349 #, fuzzy msgid "This is exact but may overflow." msgstr "Ceci est exact, mais peut provoquer un débordement." -#: ../Doc/library/datetime.rst:351 +#: library/datetime.rst:352 #, fuzzy msgid "This is exact and cannot overflow." msgstr "Ceci est exact, et ne peut pas provoquer un débordement." -#: ../Doc/library/datetime.rst:354 +#: library/datetime.rst:355 msgid "Division by 0 raises :exc:`ZeroDivisionError`." msgstr "Une division par 0 provoque :exc:`ZeroDivisionError`." -#: ../Doc/library/datetime.rst:357 +#: library/datetime.rst:358 msgid "-*timedelta.max* is not representable as a :class:`timedelta` object." msgstr "" "*-timedelta.max* n'est pas représentable avec un objet :class:`timedelta`." -#: ../Doc/library/datetime.rst:360 -#, fuzzy +#: library/datetime.rst:361 msgid "" "String representations of :class:`timedelta` objects are normalized " "similarly to their internal representation. This leads to somewhat unusual " "results for negative timedeltas. For example::" msgstr "" "La représentation en chaîne de caractères des objets :class:`timedelta` est " -"normalisée similairement à leur représentation interne. Cela amène à des " -"résultats inhabituels pour des *timedeltas* négatifs. Par exemple :" +"normalisée similairement à leur représentation interne. Cela amène à des " +"résultats inhabituels pour des *timedeltas* négatifs. Par exemple ::" -#: ../Doc/library/datetime.rst:370 +#: library/datetime.rst:371 msgid "" "The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" "t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " @@ -728,7 +731,7 @@ msgstr "" "sauf si *t3* vaut ``timedelta.max` ; dans ce cas, la première expression " "produit une valeur alors que la seconde lève une ``OverflowError``." -#: ../Doc/library/datetime.rst:374 +#: library/datetime.rst:375 #, fuzzy msgid "" "In addition to the operations listed above, :class:`timedelta` objects " @@ -739,8 +742,7 @@ msgstr "" "implémentent certaines additions et soustractions avec des objets :class:" "`date` et :class:`datetime` (voir ci-dessous)." -#: ../Doc/library/datetime.rst:378 -#, fuzzy +#: library/datetime.rst:379 msgid "" "Floor division and true division of a :class:`timedelta` object by another :" "class:`timedelta` object are now supported, as are remainder operations and " @@ -749,46 +751,48 @@ msgid "" msgstr "" "La division entière et la vraie division d'un objet :class:`timedelta` par " "un autre :class:`timedelta` sont maintenant gérées, comme le sont les " -"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " +"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " "division et la multiplication d'un objet :class:`timedelta` par un :class:" "`float` sont maintenant implémentées." -#: ../Doc/library/datetime.rst:385 -#, fuzzy +#: library/datetime.rst:386 msgid "" "Comparisons of :class:`timedelta` objects are supported, with some caveats." -msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" +msgstr "" +"Les comparaisons des objets :class:`timedelta` sont gérées, avec quelques " +"réserves." -#: ../Doc/library/datetime.rst:387 +#: library/datetime.rst:388 msgid "" "The comparisons ``==`` or ``!=`` *always* return a :class:`bool`, no matter " "the type of the compared object::" msgstr "" +"Les comparaisons ``==`` ou ``!=`` renvoient *toujours* un :class:`bool`, " +"quel que soit le type de l'objet comparé ::" -#: ../Doc/library/datetime.rst:398 +#: library/datetime.rst:399 msgid "" "For all other comparisons (such as ``<`` and ``>``), when a :class:" "`timedelta` object is compared to an object of a different type, :exc:" "`TypeError` is raised::" msgstr "" +"Pour toutes les autres comparaisons (telles que ``<`` et ``>``), lorsqu'un " +"objet :class:`timedelta` est comparé à un objet d'un type différent, :exc:" +"`TypeError` est levée ::" -#: ../Doc/library/datetime.rst:409 -#, fuzzy +#: library/datetime.rst:410 msgid "" "In Boolean contexts, a :class:`timedelta` object is considered to be true if " "and only if it isn't equal to ``timedelta(0)``." msgstr "" -"Les objets :class:`timedelta` sont :term:`hashable` (utilisables comme clés " -"de dictionnaires), implémentent le protocole *pickle* et, dans un contexte " -"booléen, un :class:`timedelta` est considéré vrai si et seulement si il " -"n'est pas égal à ``timedelta(0)``." +"Dans les contextes booléens, un objet :class:`timedelta` est considéré comme " +"vrai si et seulement s'il n'est pas égal à ``timedelta(0)``." -#: ../Doc/library/datetime.rst:412 ../Doc/library/datetime.rst:621 -#: ../Doc/library/datetime.rst:1192 ../Doc/library/datetime.rst:1780 +#: library/datetime.rst:622 library/datetime.rst:1779 msgid "Instance methods:" -msgstr "Méthodes de l'instance :" +msgstr "Méthodes de l'instance :" -#: ../Doc/library/datetime.rst:416 +#: library/datetime.rst:417 msgid "" "Return the total number of seconds contained in the duration. Equivalent to " "``td / timedelta(seconds=1)``. For interval units other than seconds, use " @@ -799,7 +803,7 @@ msgstr "" "seconde, utilisez directement la division (par exemple, ``td / " "timedelta(microseconds=1)``)." -#: ../Doc/library/datetime.rst:420 +#: library/datetime.rst:421 msgid "" "Note that for very large time intervals (greater than 270 years on most " "platforms) this method will lose microsecond accuracy." @@ -808,88 +812,88 @@ msgstr "" "sur la plupart des plateformes), cette méthode perdra la précision des " "microsecondes." -#: ../Doc/library/datetime.rst:426 -#, fuzzy +#: library/datetime.rst:427 msgid "Examples of usage: :class:`timedelta`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemples d'utilisation de la classe :class:`timedelta` :" -#: ../Doc/library/datetime.rst:428 +#: library/datetime.rst:429 msgid "An additional example of normalization::" -msgstr "" +msgstr "Un exemple supplémentaire de normalisation ::" -#: ../Doc/library/datetime.rst:440 -#, fuzzy +#: library/datetime.rst:441 msgid "Examples of :class:`timedelta` arithmetic::" -msgstr "Objets :class:`timedelta`" +msgstr "Exemples d'arithmétique avec la classe :class:`timedelta` ::" -#: ../Doc/library/datetime.rst:459 +#: library/datetime.rst:460 msgid ":class:`date` Objects" msgstr "Objets :class:`date`" -#: ../Doc/library/datetime.rst:461 +#: library/datetime.rst:462 msgid "" "A :class:`date` object represents a date (year, month and day) in an " "idealized calendar, the current Gregorian calendar indefinitely extended in " "both directions." msgstr "" +"Un objet :class:`date` représente une date (année, mois et jour) dans un " +"calendrier idéal, le calendrier grégorien actuel étant indéfiniment étendu " +"dans les deux sens." -#: ../Doc/library/datetime.rst:465 +#: library/datetime.rst:466 msgid "" "January 1 of year 1 is called day number 1, January 2 of year 1 is called " "day number 2, and so on. [#]_" msgstr "" +"Le 1\\ :sup:`er` janvier de l'année 1 est appelé jour numéro 1, le 2 janvier " +"de l'année 1 est appelé jour numéro 2, et ainsi de suite. [#]_" -#: ../Doc/library/datetime.rst:470 -#, fuzzy +#: library/datetime.rst:471 msgid "" "All arguments are required. Arguments must be integers, in the following " "ranges:" msgstr "" -"Tous les arguments sont requis. Les arguments peuvent être des entiers, " -"dans les intervalles suivant :" +"Tous les arguments sont requis. Les arguments peuvent être des entiers, dans " +"les intervalles suivants :" -#: ../Doc/library/datetime.rst:473 +#: library/datetime.rst:474 msgid "``MINYEAR <= year <= MAXYEAR``" msgstr "``MINYEAR <= year <= MAXYEAR``" -#: ../Doc/library/datetime.rst:474 +#: library/datetime.rst:475 msgid "``1 <= month <= 12``" msgstr "``1 <= month <= 12``" -#: ../Doc/library/datetime.rst:475 +#: library/datetime.rst:476 msgid "``1 <= day <= number of days in the given month and year``" msgstr "``1 <= day <= nombre de jours dans le mois et l'année donnés``" -#: ../Doc/library/datetime.rst:477 ../Doc/library/datetime.rst:835 +#: library/datetime.rst:836 msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised." msgstr "" "Si un argument est donné en dehors de ces intervalles, une :exc:`valueError` " "est levée." -#: ../Doc/library/datetime.rst:480 ../Doc/library/datetime.rst:840 +#: library/datetime.rst:841 msgid "Other constructors, all class methods:" msgstr "Autres constructeurs, méthodes de classe :" -#: ../Doc/library/datetime.rst:484 +#: library/datetime.rst:485 msgid "Return the current local date." -msgstr "" +msgstr "Renvoie la date locale courante." -#: ../Doc/library/datetime.rst:486 -#, fuzzy +#: library/datetime.rst:487 msgid "This is equivalent to ``date.fromtimestamp(time.time())``." -msgstr "" -"Renvoie la date locale courante. Cela est équivalent à ``date." -"fromtimestamp(time.time())``." +msgstr "Cela est équivalent à ``date.fromtimestamp(time.time())``." -#: ../Doc/library/datetime.rst:490 +#: library/datetime.rst:491 msgid "" "Return the local date corresponding to the POSIX timestamp, such as is " "returned by :func:`time.time`." msgstr "" +"Renvoie la date locale correspondant à l'horodatage POSIX, telle que " +"renvoyée par :func:`time.time`." -#: ../Doc/library/datetime.rst:493 -#, fuzzy +#: library/datetime.rst:494 msgid "" "This may raise :exc:`OverflowError`, if the timestamp is out of the range of " "values supported by the platform C :c:func:`localtime` function, and :exc:" @@ -898,16 +902,14 @@ msgid "" "that include leap seconds in their notion of a timestamp, leap seconds are " "ignored by :meth:`fromtimestamp`." msgstr "" -"Renvoie la date locale correspondant à l'horodatage (*timestamp* en anglais) " -"*POSIX*, tel que renvoyé par :func:`time.time`. Elle peut lever une :exc:" -"`OverflowError`, si l'horodatage est en dehors des bornes gérées par la " -"fonction C :c:func:`localtime` de la plateforme, et une :exc:`OSError` en " -"cas d'échec de :c:func:`localtime`. Il est commun d'être restreint aux " -"années entre 1970 et 2038. Notez que sur les systèmes non *POSIX* qui " -"incluent les secondes de décalage dans leur notion d'horodatage, ces " -"secondes sont ignorées par :meth:`fromtimestamp`." +"Elle peut lever une :exc:`OverflowError`, si l'horodatage est en dehors des " +"bornes gérées par la fonction C :c:func:`localtime` de la plateforme, et " +"une :exc:`OSError` en cas d'échec de :c:func:`localtime`. Il est commun " +"d'être restreint aux années entre 1970 et 2038. Notez que sur les systèmes " +"non *POSIX* qui incluent les secondes intercalaires dans leur notion " +"d'horodatage, ces secondes sont ignorées par :meth:`fromtimestamp`." -#: ../Doc/library/datetime.rst:500 +#: library/datetime.rst:501 msgid "" "Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " "out of the range of values supported by the platform C :c:func:`localtime` " @@ -919,29 +921,23 @@ msgstr "" "fonction C :c:func:`localtime` de la plateforme. Lève une :exc:`OSError` " "plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:`localtime`." -#: ../Doc/library/datetime.rst:509 -#, fuzzy +#: library/datetime.rst:510 msgid "" "Return the date corresponding to the proleptic Gregorian ordinal, where " "January 1 of year 1 has ordinal 1." msgstr "" "Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " -"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." -"fromordinal(d.toordinal()) == d``." +"janvier de l'an 1 a l'ordinal 1." -#: ../Doc/library/datetime.rst:512 -#, fuzzy +#: library/datetime.rst:513 msgid "" ":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " "For any date *d*, ``date.fromordinal(d.toordinal()) == d``." msgstr "" -"Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1. :exc:`ValueError` est levée à moins que " -"``1 <= ordinal <= date.max.toordinal()``. Pour toute date *d*, ``date." -"fromordinal(d.toordinal()) == d``." +":exc:`ValueError` est levée à moins que ``1 <= ordinal <= date.max." +"toordinal()``. Pour toute date *d*, ``date.fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:519 +#: library/datetime.rst:520 #, fuzzy msgid "" "Return a :class:`date` corresponding to a *date_string* given in the format " @@ -949,30 +945,35 @@ msgid "" msgstr "" "Renvoie une :class:`date` correspondant à *date_string* dans le format émis " "par :meth:`date.isoformat`. Spécifiquement, cette fonction gère des chaînes " -"dans le(s) format(s) ``YYYY-MM-DD``." +"dans le(s) format(s) ``YYYY-MM-DD`` ::" -#: ../Doc/library/datetime.rst:526 +#: library/datetime.rst:527 msgid "" "This is the inverse of :meth:`date.isoformat`. It only supports the format " "``YYYY-MM-DD``." msgstr "" +"C'est la réciproque de :meth:`date.isoformat`. Elle ne prend en charge que " +"le format ``YYYY-MM-DD``." -#: ../Doc/library/datetime.rst:534 +#: library/datetime.rst:535 msgid "" "Return a :class:`date` corresponding to the ISO calendar date specified by " "year, week and day. This is the inverse of the function :meth:`date." "isocalendar`." msgstr "" +"Renvoie une :class:`date` correspondant à la date du calendrier ISO définie " +"par l'année, la semaine et le jour. C'est la réciproque de la fonction :meth:" +"`date.isocalendar`." -#: ../Doc/library/datetime.rst:544 +#: library/datetime.rst:545 msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." msgstr "La plus vieille date représentable, ``date(MINYEAR, 1, 1)``." -#: ../Doc/library/datetime.rst:549 +#: library/datetime.rst:550 msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." msgstr "La dernière date représentable, ``date(MAXYEAR, 12, 31)``." -#: ../Doc/library/datetime.rst:554 +#: library/datetime.rst:555 msgid "" "The smallest possible difference between non-equal date objects, " "``timedelta(days=1)``." @@ -980,49 +981,49 @@ msgstr "" "La plus petite différence possible entre deux objets dates non-égaux, " "``timedelta(days=1)``." -#: ../Doc/library/datetime.rst:562 ../Doc/library/datetime.rst:1069 +#: library/datetime.rst:1068 msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." msgstr "Entre :const:`MINYEAR` et :const:`MAXYEAR` inclus." -#: ../Doc/library/datetime.rst:567 ../Doc/library/datetime.rst:1074 +#: library/datetime.rst:1073 msgid "Between 1 and 12 inclusive." msgstr "Entre 1 et 12 inclus." -#: ../Doc/library/datetime.rst:572 ../Doc/library/datetime.rst:1079 +#: library/datetime.rst:1078 msgid "Between 1 and the number of days in the given month of the given year." msgstr "Entre 1 et le nombre de jours du mois donné de l'année donnée." -#: ../Doc/library/datetime.rst:580 +#: library/datetime.rst:581 msgid "``date2 = date1 + timedelta``" msgstr "``date2 = date1 + timedelta``" -#: ../Doc/library/datetime.rst:580 +#: library/datetime.rst:581 #, fuzzy msgid "*date2* is ``timedelta.days`` days removed from *date1*. (1)" msgstr "" "*date2* est décalée de ``timedelta.days`` jours par rapport à *date1*. (1)" -#: ../Doc/library/datetime.rst:583 +#: library/datetime.rst:584 msgid "``date2 = date1 - timedelta``" msgstr "``date2 = date1 - timedelta``" -#: ../Doc/library/datetime.rst:583 +#: library/datetime.rst:584 msgid "Computes *date2* such that ``date2 + timedelta == date1``. (2)" msgstr "Calcule *date2* de façon à avoir ``date2 + timedelta == date1``. (2)" -#: ../Doc/library/datetime.rst:586 +#: library/datetime.rst:587 msgid "``timedelta = date1 - date2``" msgstr "``timedelta = date1 - date2``" -#: ../Doc/library/datetime.rst:586 ../Doc/library/datetime.rst:1127 +#: library/datetime.rst:1126 msgid "\\(3)" msgstr "\\(3)" -#: ../Doc/library/datetime.rst:588 +#: library/datetime.rst:589 msgid "``date1 < date2``" msgstr "``date1 < date2``" -#: ../Doc/library/datetime.rst:588 +#: library/datetime.rst:589 msgid "" "*date1* is considered less than *date2* when *date1* precedes *date2* in " "time. (4)" @@ -1030,8 +1031,7 @@ msgstr "" "*date1* est considérée comme inférieure à *date2* quand *date1* précède " "*date2* dans le temps. (4)" -#: ../Doc/library/datetime.rst:595 -#, fuzzy +#: library/datetime.rst:596 msgid "" "*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " "``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " @@ -1040,27 +1040,25 @@ msgid "" "`MINYEAR` or larger than :const:`MAXYEAR`." msgstr "" "*date2* est déplacée en avant dans le temps si ``timedelta.days > 0``, ou en " -"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." +"arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == timedelta." "days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés. " "Une :exc:`OverflowError` est levée si ``date2.year`` devait être inférieure " "à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." -#: ../Doc/library/datetime.rst:602 +#: library/datetime.rst:603 msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." msgstr "``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés." -#: ../Doc/library/datetime.rst:605 -#, fuzzy +#: library/datetime.rst:606 msgid "" "This is exact, and cannot overflow. timedelta.seconds and timedelta." "microseconds are 0, and date2 + timedelta == date1 after." msgstr "" -"Cela est exact, et ne peut pas dépasser les bornes. ``timedelta.seconds`` " -"et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta == " -"date1`` après cela." +"Cela est exact, et ne peut pas provoquer de débordement. ``timedelta." +"seconds`` et ``timedelta.microseconds`` valent ``0``, et ``date2 + timedelta " +"== date1`` après cela." -#: ../Doc/library/datetime.rst:609 -#, fuzzy +#: library/datetime.rst:610 msgid "" "In other words, ``date1 < date2`` if and only if ``date1.toordinal() < date2." "toordinal()``. Date comparison raises :exc:`TypeError` if the other " @@ -1076,67 +1074,69 @@ msgstr "" "< date2.toordinal()``. La comparaison de dates lève une :exc:`TypeError` si " "l'autre opérande n'est pas un objet :class:`date`. Cependant, " "``NotImplemented`` est renvoyé à la place si l'autre opérande a un attribut :" -"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " +"meth:`timetuple`. Cela permet à d'autres types d'objets dates d'avoir une " "chance d'implémenter une comparaison entre types différents. Sinon, quand un " "objet :class:`date` est comparé à un objet d'un type différent, une :exc:" -"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " +"`TypeError` est levée à moins que la comparaison soit ``==`` ou ``!=``. Ces " "derniers cas renvoient respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:619 -#, fuzzy +#: library/datetime.rst:620 msgid "" "In Boolean contexts, all :class:`date` objects are considered to be true." msgstr "" -"Dans un contexte booléen, un objet :class:`.time` est toujours considéré " +"Dans des contextes booléens, tous les objets :class:`date` sont considérés " "comme vrai." -#: ../Doc/library/datetime.rst:625 -#, fuzzy +#: library/datetime.rst:626 msgid "" "Return a date with the same value, except for those parameters given new " "values by whichever keyword arguments are specified." msgstr "" "Renvoie une date avec la même valeur, excepté pour les valeurs spécifiées " -"par arguments nommés. Par exemple, si ``d == date(2002, 12, 31)``, alors " -"``d.replace(day=26) == date(2002, 12, 26)``." +"par arguments nommés." -#: ../Doc/library/datetime.rst:628 ../Doc/library/datetime.rst:1823 +#: library/datetime.rst:1822 #, fuzzy msgid "Example::" -msgstr "Exemple :" +msgstr "Exemple ::" -#: ../Doc/library/datetime.rst:638 ../Doc/library/datetime.rst:1305 +#: library/datetime.rst:1304 msgid "" "Return a :class:`time.struct_time` such as returned by :func:`time." "localtime`." msgstr "" +"Renvoie une :class:`time.struct_time` telle que renvoyée par :func:`time." +"localtime`." -#: ../Doc/library/datetime.rst:640 +#: library/datetime.rst:641 msgid "The hours, minutes and seconds are 0, and the DST flag is -1." msgstr "" +"Les heures, minutes et secondes sont égales à 0 et le drapeau DST vaut -1." -#: ../Doc/library/datetime.rst:642 ../Doc/library/datetime.rst:1307 +#: library/datetime.rst:1306 msgid "``d.timetuple()`` is equivalent to::" -msgstr "" +msgstr "``d.timetuple()`` est équivalent à ::" -#: ../Doc/library/datetime.rst:646 +#: library/datetime.rst:647 msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " "day number within the current year starting with ``1`` for January 1st." msgstr "" +"où ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le " +"numéro du jour dans l'année courante commençant par ``1`` pour le 1\\ :sup:" +"`er` janvier." -#: ../Doc/library/datetime.rst:652 -#, fuzzy +#: library/datetime.rst:653 msgid "" "Return the proleptic Gregorian ordinal of the date, where January 1 of year " "1 has ordinal 1. For any :class:`date` object *d*, ``date.fromordinal(d." "toordinal()) == d``." msgstr "" "Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de " -"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." +"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, ``date." "fromordinal(d.toordinal()) == d``." -#: ../Doc/library/datetime.rst:659 +#: library/datetime.rst:660 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See also :" @@ -1146,7 +1146,7 @@ msgstr "" "dimanche vaut 6. Par exemple, ``date(2002, 12, 4).weekday() == 2``, un " "mercredi. Voir aussi :meth:`isoweekday`." -#: ../Doc/library/datetime.rst:666 +#: library/datetime.rst:667 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See also :" @@ -1156,19 +1156,20 @@ msgstr "" "dimanche vaut 7. Par exemple, ``date(2002, 12, 4).isoweekday() == 3``, un " "mercredi. Voir aussi :meth:`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:673 +#: library/datetime.rst:674 msgid "Return a 3-tuple, (ISO year, ISO week number, ISO weekday)." msgstr "" "Renvoie un *tuple* de 3 éléments, (année ISO, numéro de semaine ISO, jour de " "la semaine ISO)." -#: ../Doc/library/datetime.rst:675 +#: library/datetime.rst:676 msgid "" "The ISO calendar is a widely used variant of the Gregorian calendar. [#]_" msgstr "" +"Le calendrier ISO est une variante largement utilisée du calendrier " +"grégorien. [#]_" -#: ../Doc/library/datetime.rst:677 -#, fuzzy +#: library/datetime.rst:678 msgid "" "The ISO year consists of 52 or 53 full weeks, and where a week starts on a " "Monday and ends on a Sunday. The first week of an ISO year is the first " @@ -1177,61 +1178,53 @@ msgid "" "Gregorian year." msgstr "" "Une année ISO est composée de 52 ou 53 semaines pleines, où chaque semaine " -"débute un lundi et se termine un dimanche. La première semaine d'une année " +"débute un lundi et se termine un dimanche. La première semaine d'une année " "ISO est la première semaine calendaire (grégorienne) de l'année comportant " -"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce " -"mercredi est la même que son année grégorienne." +"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce jeudi " +"est la même que son année Grégorienne." -#: ../Doc/library/datetime.rst:682 -#, fuzzy +#: library/datetime.rst:683 msgid "" "For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " "begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" msgstr "" "Par exemple, l'année 2004 débute un jeudi, donc la première semaine de " "l'année ISO 2004 débute le lundi 29 décembre 2003 et se termine le dimanche " -"4 janvier 2004, ainsi ``date(2003, 12, 29).isocalendar() == (2004, 1, 1)`` " -"et ``date(2004, 1, 4).isocalendar() == (2004, 1, 7)``." +"4 janvier 2004 ::" -#: ../Doc/library/datetime.rst:693 -#, fuzzy +#: library/datetime.rst:694 msgid "" "Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" msgstr "" "Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " -"'2002-12-04'``." +"\"YYYY-MM-DD\" ::" -#: ../Doc/library/datetime.rst:699 +#: library/datetime.rst:700 msgid "This is the inverse of :meth:`date.fromisoformat`." -msgstr "" +msgstr "C'est la réciproque de :meth:`date.fromisoformat`." -#: ../Doc/library/datetime.rst:703 +#: library/datetime.rst:704 msgid "For a date *d*, ``str(d)`` is equivalent to ``d.isoformat()``." msgstr "Pour une date *d*, ``str(d)`` est équivalent à ``d.isoformat()``." -#: ../Doc/library/datetime.rst:708 +#: library/datetime.rst:709 msgid "Return a string representing the date::" -msgstr "" +msgstr "Renvoie une chaîne de caractères représentant la date ::" -#: ../Doc/library/datetime.rst:714 ../Doc/library/datetime.rst:1491 +#: library/datetime.rst:1490 msgid "``d.ctime()`` is equivalent to::" -msgstr "" +msgstr "``d.ctime()`` est équivalent à ::" -#: ../Doc/library/datetime.rst:718 -#, fuzzy +#: library/datetime.rst:719 msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." "ctime` invokes, but which :meth:`date.ctime` does not invoke) conforms to " "the C standard." msgstr "" -"Renvoie une chaîne de caractères représentant la date, par exemple " -"``date(2002, 12, 4).ctime() == 'Wed Dec 4 00:00:00 2002'``. ``d.ctime()`` " -"est équivalent à ``time.ctime(time.mktime(d.timetuple()))`` sur les " -"plateformes où la fonction C native :c:func:`ctime` (que :func:`time.ctime` " -"invoque, mais pas :meth:`date.ctime`) est conforme au standard C." +"sur les plateformes où la fonction C native :c:func:`ctime` (que :func:`time." +"ctime` invoque, mais pas :meth:`date.ctime`) est conforme au standard C." -#: ../Doc/library/datetime.rst:725 +#: library/datetime.rst:726 msgid "" "Return a string representing the date, controlled by an explicit format " "string. Format codes referring to hours, minutes or seconds will see 0 " @@ -1243,7 +1236,7 @@ msgstr "" "heures, minutes ou secondes auront pour valeur 0. Pour une liste complète " "des directives de formatage, voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:733 +#: library/datetime.rst:734 msgid "" "Same as :meth:`.date.strftime`. This makes it possible to specify a format " "string for a :class:`.date` object in :ref:`formatted string literals `__. This does not support parsing " -"arbitrary ISO 8601 strings - it is only intended as the inverse operation " -"of :meth:`datetime.isoformat`." +"parser.html#dateutil.parser.isoparse>`__." msgstr "" +"Ceci ne prend pas en charge l'analyse arbitraire des chaînes de caractères " +"ISO 8601 - il est uniquement destiné à l'opération réciproque de :meth:" +"`datetime.isoformat`. Un analyseur ISO 8601 plus complet, ``dateutil.parser." +"isoparse`` est disponible dans le paquet tiers `dateutil `__." -#: ../Doc/library/datetime.rst:1003 ../Doc/library/datetime.rst:1420 -#: ../Doc/library/datetime.rst:1767 -#, fuzzy +#: library/datetime.rst:1419 library/datetime.rst:1766 msgid "Examples::" -msgstr "Exemple :" +msgstr "Exemples ::" -#: ../Doc/library/datetime.rst:1022 +#: library/datetime.rst:1021 msgid "" "Return a :class:`.datetime` corresponding to the ISO calendar date specified " "by year, week and day. The non-date components of the datetime are populated " "with their normal default values. This is the inverse of the function :meth:" "`datetime.isocalendar`." msgstr "" +"Renvoie une classe :class:`.datetime` correspondant à la date du calendrier " +"ISO spécifiée par année, semaine et jour. Les composantes ne relevant pas de " +"la date de *datetime* sont renseignées avec leurs valeurs par défaut " +"normales. C'est la réciproque de la fonction :meth:`datetime.isocalendar`." -#: ../Doc/library/datetime.rst:1031 +#: library/datetime.rst:1030 msgid "" "Return a :class:`.datetime` corresponding to *date_string*, parsed according " "to *format*." msgstr "" +"Renvoie une classe :class:`.datetime` correspondant à *date_string*, " +"analysée selon *format*." -#: ../Doc/library/datetime.rst:1034 +#: library/datetime.rst:1033 msgid "This is equivalent to::" msgstr "C’est équivalent à ::" -#: ../Doc/library/datetime.rst:1038 -#, fuzzy +#: library/datetime.rst:1037 msgid "" ":exc:`ValueError` is raised if the date_string and format can't be parsed " "by :func:`time.strptime` or if it returns a value which isn't a time tuple. " "For a complete list of formatting directives, see :ref:`strftime-strptime-" "behavior`." msgstr "" -"Renvoie un :class:`.datetime` correspondant à la chaîne *date_string*, " -"analysée conformément à *format*. Cela est équivalent à ``datetime(*(time." -"strptime(date_string, format)[0:6]))``. Une :exc:`ValueError` est levée si " -"*date_string* et *format* ne peuvent être analysée par :func:`time.strptime` " -"ou si elle renvoie une valeur qui n'est pas un *tuple-temps*. Pour une liste " -"complète des directives de formatage, voir :ref:`strftime-strptime-behavior`." +"Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " +"analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " +"pas un *n*-uplet de temps. Pour une liste complète des directives de " +"formatage, voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1049 +#: library/datetime.rst:1048 msgid "" "The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." @@ -1681,7 +1671,7 @@ msgstr "" "Le plus ancien :class:`.datetime` représentable, ``datetime(MINYEAR, 1, 1, " "tzinfo=None)``." -#: ../Doc/library/datetime.rst:1055 +#: library/datetime.rst:1054 msgid "" "The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " "59, 59, 999999, tzinfo=None)``." @@ -1689,7 +1679,7 @@ msgstr "" "Le dernier :class:`.datetime` représentable, ``datetime(MAXYEAR, 12, 31, 23, " "59, 59, 999999, tzinfo=None)``." -#: ../Doc/library/datetime.rst:1061 +#: library/datetime.rst:1060 msgid "" "The smallest possible difference between non-equal :class:`.datetime` " "objects, ``timedelta(microseconds=1)``." @@ -1697,20 +1687,19 @@ msgstr "" "La plus petite différence possible entre deux objets :class:`.datetime` non-" "égaux, ``timedelta(microseconds=1)``." -#: ../Doc/library/datetime.rst:1084 ../Doc/library/datetime.rst:1687 +#: library/datetime.rst:1686 msgid "In ``range(24)``." msgstr "Dans ``range(24)``." -#: ../Doc/library/datetime.rst:1089 ../Doc/library/datetime.rst:1094 -#: ../Doc/library/datetime.rst:1692 ../Doc/library/datetime.rst:1697 +#: library/datetime.rst:1093 library/datetime.rst:1696 msgid "In ``range(60)``." msgstr "Dans ``range(60)``." -#: ../Doc/library/datetime.rst:1099 ../Doc/library/datetime.rst:1702 +#: library/datetime.rst:1701 msgid "In ``range(1000000)``." msgstr "Dans ``range(1000000)``." -#: ../Doc/library/datetime.rst:1104 +#: library/datetime.rst:1103 msgid "" "The object passed as the *tzinfo* argument to the :class:`.datetime` " "constructor, or ``None`` if none was passed." @@ -1718,8 +1707,7 @@ msgstr "" "L'objet passé en tant que paramètre *tzinfo* du constructeur de la classe :" "class:`.datetime` ou ``None`` si aucun n'a été donné." -#: ../Doc/library/datetime.rst:1110 ../Doc/library/datetime.rst:1713 -#, fuzzy +#: library/datetime.rst:1712 msgid "" "In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " "(A repeated interval occurs when clocks are rolled back at the end of " @@ -1727,44 +1715,42 @@ msgid "" "decreased for political reasons.) The value 0 (1) represents the earlier " "(later) of the two moments with the same wall time representation." msgstr "" -"``0`` ou ``1``. Utilisé pour désambiguïser les heures dans un intervalle " -"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la " -"fin de l'heure d'été ou quand le décalage UTC du fuseau courant et " +"Dans ``[0, 1]``. Utilisé pour désambiguïser les heures dans un intervalle " +"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la fin " +"de l'heure d'été ou quand le décalage horaire UTC du fuseau courant est " "décrémenté pour des raisons politiques.) La valeur 0 (1) représente le plus " "ancien (récent) des deux moments représentés par la même heure." -#: ../Doc/library/datetime.rst:1123 +#: library/datetime.rst:1122 msgid "``datetime2 = datetime1 + timedelta``" msgstr "``datetime2 = datetime1 + timedelta``" -#: ../Doc/library/datetime.rst:1123 ../Doc/library/datetime.rst:2305 -#: ../Doc/library/datetime.rst:2310 ../Doc/library/datetime.rst:2322 -#: ../Doc/library/datetime.rst:2327 ../Doc/library/datetime.rst:2387 -#: ../Doc/library/datetime.rst:2392 ../Doc/library/datetime.rst:2396 +#: library/datetime.rst:2304 library/datetime.rst:2321 +#: library/datetime.rst:2386 library/datetime.rst:2395 msgid "\\(1)" msgstr "\\(1)" -#: ../Doc/library/datetime.rst:1125 +#: library/datetime.rst:1124 msgid "``datetime2 = datetime1 - timedelta``" msgstr "``datetime2 = datetime1 - timedelta``" -#: ../Doc/library/datetime.rst:1125 ../Doc/library/datetime.rst:2338 +#: library/datetime.rst:2337 msgid "\\(2)" msgstr "\\(2)" -#: ../Doc/library/datetime.rst:1127 +#: library/datetime.rst:1126 msgid "``timedelta = datetime1 - datetime2``" msgstr "``timedelta = datetime1 - datetime2``" -#: ../Doc/library/datetime.rst:1129 +#: library/datetime.rst:1128 msgid "``datetime1 < datetime2``" msgstr "``datetime1 < datetime2``" -#: ../Doc/library/datetime.rst:1129 +#: library/datetime.rst:1128 msgid "Compares :class:`.datetime` to :class:`.datetime`. (4)" msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" -#: ../Doc/library/datetime.rst:1134 +#: library/datetime.rst:1133 #, fuzzy msgid "" "datetime2 is a duration of timedelta removed from datetime1, moving forward " @@ -1784,7 +1770,7 @@ msgstr "" "qu'aucun ajustement de fuseau horaire n'est réalisé même si l'entrée est " "avisée." -#: ../Doc/library/datetime.rst:1143 +#: library/datetime.rst:1142 msgid "" "Computes the datetime2 such that datetime2 + timedelta == datetime1. As for " "addition, the result has the same :attr:`~.datetime.tzinfo` attribute as the " @@ -1796,7 +1782,7 @@ msgstr "" "que le *datetime* d'entrée, et aucun ajustement de fuseau horaire n'est " "réalisé même si l'entrée est avisée." -#: ../Doc/library/datetime.rst:1148 +#: library/datetime.rst:1147 #, fuzzy msgid "" "Subtraction of a :class:`.datetime` from a :class:`.datetime` is defined " @@ -1808,7 +1794,7 @@ msgstr "" "avisés. Si l'un est avisé et que l'autre est naïf, une :exc:`TypeError` est " "levée." -#: ../Doc/library/datetime.rst:1152 +#: library/datetime.rst:1151 #, fuzzy msgid "" "If both are naive, or both are aware and have the same :attr:`~.datetime." @@ -1822,7 +1808,7 @@ msgstr "" "``datetime2 + t == datetime1``. Aucun ajustement de fuseau horaire n'a lieu " "dans ce cas." -#: ../Doc/library/datetime.rst:1157 +#: library/datetime.rst:1156 #, fuzzy msgid "" "If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " @@ -1837,7 +1823,7 @@ msgstr "" "a.utcoffset()) - (b.replace(tzinfo=None) - b.utcoffset())`` à l'exception " "que l'implémentation ne produit jamais de débordement." -#: ../Doc/library/datetime.rst:1163 +#: library/datetime.rst:1162 msgid "" "*datetime1* is considered less than *datetime2* when *datetime1* precedes " "*datetime2* in time." @@ -1845,7 +1831,7 @@ msgstr "" "*datetime1* est considéré inférieur à *datetime2* quand il le précède dans " "le temps." -#: ../Doc/library/datetime.rst:1166 +#: library/datetime.rst:1165 #, fuzzy msgid "" "If one comparand is naive and the other is aware, :exc:`TypeError` is raised " @@ -1856,7 +1842,7 @@ msgstr "" "une comparaison d'ordre est attendue. Pour les comparaisons d'égalité, les " "instances naïves ne sont jamais égales aux instances avisées." -#: ../Doc/library/datetime.rst:1170 +#: library/datetime.rst:1169 #, fuzzy msgid "" "If both comparands are aware, and have the same :attr:`~.datetime.tzinfo` " @@ -1873,7 +1859,7 @@ msgstr "" "premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " "``self.utcoffset()``)." -#: ../Doc/library/datetime.rst:1176 +#: library/datetime.rst:1175 #, fuzzy msgid "" "Equality comparisons between aware and naive :class:`.datetime` instances " @@ -1882,7 +1868,7 @@ msgstr "" "Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " "avisées ne lèvent pas de :exc:`TypeError`." -#: ../Doc/library/datetime.rst:1182 +#: library/datetime.rst:1181 #, fuzzy msgid "" "In order to stop comparison from falling back to the default scheme of " @@ -1906,11 +1892,11 @@ msgstr "" "comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:1196 +#: library/datetime.rst:1195 msgid "Return :class:`date` object with same year, month and day." msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." -#: ../Doc/library/datetime.rst:1201 +#: library/datetime.rst:1200 #, fuzzy msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond and " @@ -1920,11 +1906,11 @@ msgstr "" "microseconde et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " "méthode :meth:`timetz`." -#: ../Doc/library/datetime.rst:1204 ../Doc/library/datetime.rst:1213 +#: library/datetime.rst:1212 msgid "The fold value is copied to the returned :class:`.time` object." msgstr "La valeur *fold* est copiée vers l'objet :class:`.time` renvoyé." -#: ../Doc/library/datetime.rst:1210 +#: library/datetime.rst:1209 #, fuzzy msgid "" "Return :class:`.time` object with same hour, minute, second, microsecond, " @@ -1934,7 +1920,7 @@ msgstr "" "seconde, microseconde, *fold* et *tzinfo*. Voir aussi la méthode :meth:" "`time`." -#: ../Doc/library/datetime.rst:1221 +#: library/datetime.rst:1220 #, fuzzy msgid "" "Return a datetime with the same attributes, except for those attributes " @@ -1947,7 +1933,7 @@ msgstr "" "Notez que ``tzinfo=None`` peut être spécifié pour créer un *datetime* naïf " "depuis un *datetime* avisé sans conversion de la date ou de l'heure." -#: ../Doc/library/datetime.rst:1232 +#: library/datetime.rst:1231 msgid "" "Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " "adjusting the date and time data so the result is the same UTC time as " @@ -1957,7 +1943,7 @@ msgstr "" "valant *tz*, ajustant la date et l'heure pour que le résultat soit le même " "temps UTC que *self*, mais dans le temps local au fuseau *tz*." -#: ../Doc/library/datetime.rst:1236 +#: library/datetime.rst:1235 #, fuzzy msgid "" "If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " @@ -1969,7 +1955,7 @@ msgstr "" "``None``. Si *self* est naïf, Python considère que le temps est exprimé " "dans le fuseau horaire du système." -#: ../Doc/library/datetime.rst:1240 +#: library/datetime.rst:1239 #, fuzzy msgid "" "If called without arguments (or with ``tz=None``) the system local timezone " @@ -1982,7 +1968,7 @@ msgstr "" "l'instance *datetime* convertie aura pour valeur une instance de :class:" "`timezone` avec le nom de fuseau et le décalage obtenus depuis l'OS." -#: ../Doc/library/datetime.rst:1245 +#: library/datetime.rst:1244 msgid "" "If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " "adjustment of date or time data is performed. Else the result is local time " @@ -1996,7 +1982,7 @@ msgstr "" "après ``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` aura les " "mêmes données de date et d'heure que ``dt - dt.utcoffset()``." -#: ../Doc/library/datetime.rst:1251 +#: library/datetime.rst:1250 #, fuzzy msgid "" "If you merely want to attach a time zone object *tz* to a datetime *dt* " @@ -2010,7 +1996,7 @@ msgstr "" "d'un *datetime* *dt* avisé sans conversion des données de date et d'heure, " "utilisez ``dt.replace(tzinfo=None)``." -#: ../Doc/library/datetime.rst:1256 +#: library/datetime.rst:1255 msgid "" "Note that the default :meth:`tzinfo.fromutc` method can be overridden in a :" "class:`tzinfo` subclass to affect the result returned by :meth:`astimezone`. " @@ -2019,13 +2005,13 @@ msgstr "" "Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie " "dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé par :" "meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se " -"comporte comme : ::" +"comporte comme ::" -#: ../Doc/library/datetime.rst:1268 +#: library/datetime.rst:1267 msgid "*tz* now can be omitted." msgstr "*tz* peut maintenant être omis." -#: ../Doc/library/datetime.rst:1271 +#: library/datetime.rst:1270 msgid "" "The :meth:`astimezone` method can now be called on naive instances that are " "presumed to represent system local time." @@ -2033,7 +2019,7 @@ msgstr "" "La méthode :meth:`astimezone` peut maintenant être appelée sur des instances " "naïves qui sont supposées représenter un temps local au système." -#: ../Doc/library/datetime.rst:1278 +#: library/datetime.rst:1277 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(self)``, and raises an exception if the latter doesn't return " @@ -2044,13 +2030,12 @@ msgstr "" "ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1282 ../Doc/library/datetime.rst:1865 -#: ../Doc/library/datetime.rst:1971 ../Doc/library/datetime.rst:2217 -#: ../Doc/library/datetime.rst:2229 ../Doc/library/datetime.rst:2525 +#: library/datetime.rst:1864 library/datetime.rst:2216 +#: library/datetime.rst:2524 msgid "The UTC offset is not restricted to a whole number of minutes." msgstr "Le décalage UTC peut aussi être autre chose qu'un ensemble de minutes." -#: ../Doc/library/datetime.rst:1288 +#: library/datetime.rst:1287 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(self)``, and raises an exception if the latter doesn't return ``None`` " @@ -2061,12 +2046,11 @@ msgstr "" "renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1292 ../Doc/library/datetime.rst:1875 -#: ../Doc/library/datetime.rst:2025 +#: library/datetime.rst:1874 library/datetime.rst:2024 msgid "The DST offset is not restricted to a whole number of minutes." msgstr "Le décalage DST n'est pas restreint à des minutes entières." -#: ../Doc/library/datetime.rst:1298 +#: library/datetime.rst:1297 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(self)``, raises an exception if the latter doesn't return ``None`` or " @@ -2076,7 +2060,7 @@ msgstr "" "tzinfo.tzname(self)``, lève une exception si l'expression précédente ne " "renvoie pas ``None`` ou une chaîne de caractères," -#: ../Doc/library/datetime.rst:1313 +#: library/datetime.rst:1312 #, fuzzy msgid "" "where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " @@ -2097,7 +2081,7 @@ msgstr "" "une valeur non-nulle, :attr:`tm_isdst` est mise à ``1`` ; sinon :attr:" "`tm_isdst` est mise à ``0``." -#: ../Doc/library/datetime.rst:1324 +#: library/datetime.rst:1323 #, fuzzy msgid "" "If :class:`.datetime` instance *d* is naive, this is the same as ``d." @@ -2109,7 +2093,7 @@ msgstr "" "de ce que renvoie ``d.dst()``. L'heure d'été n'est jamais effective pour un " "temps UTC." -#: ../Doc/library/datetime.rst:1328 +#: library/datetime.rst:1327 #, fuzzy msgid "" "If *d* is aware, *d* is normalized to UTC time, by subtracting ``d." @@ -2124,7 +2108,7 @@ msgstr "" "`OverflowError` peut être levée si *d.year* vaut ``MINYEAR``ou ``MAXYEAR`` " "et que l'ajustement UTC fait dépasser les bornes." -#: ../Doc/library/datetime.rst:1337 +#: library/datetime.rst:1336 msgid "" "Because naive ``datetime`` objects are treated by many ``datetime`` methods " "as local times, it is preferred to use aware datetimes to represent times in " @@ -2133,28 +2117,33 @@ msgid "" "replace(tzinfo=timezone.utc)`` to make it aware, at which point you can use :" "meth:`.datetime.timetuple`." msgstr "" +"Comme les objets ``datetime`` naïfs sont traités par de nombreuses méthodes " +"``datetime`` comme des heures locales, il est préférable d'utiliser les " +"``datetime`` avisés pour représenter les heures en UTC ; par conséquent, " +"l'utilisation de ``utcfromtimetuple`` peut donner des résultats trompeurs. " +"Si vous disposez d'une ``datetime`` naïve représentant l'heure UTC, utilisez " +"``datetime.replace(tzinfo=timezone.utc)`` pour la rendre avisée, puis vous " +"pouvez utiliser :meth:`.datetime.timetuple`." -#: ../Doc/library/datetime.rst:1346 -#, fuzzy +#: library/datetime.rst:1345 msgid "" "Return the proleptic Gregorian ordinal of the date. The same as ``self." "date().toordinal()``." msgstr "" -"Renvoie l'ordinal du calendrier géorgien proleptique de cette date. " +"Renvoie l'ordinal du calendrier grégorien proleptique de cette date. " "Identique à ``self.date().toordinal()``." -#: ../Doc/library/datetime.rst:1351 -#, fuzzy +#: library/datetime.rst:1350 msgid "" "Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " "return value is a :class:`float` similar to that returned by :func:`time." "time`." msgstr "" -"Renvoie l'horodatage (*timestamp* en anglais) *POSIX* correspondant à " -"l'instance :class:`.datetime`. La valeur renvoyée est un :class:`float` " -"similaire à ceux renvoyés par :func:`time.time`." +"Renvoie l'horodatage *POSIX* correspondant à l'instance :class:`.datetime`. " +"La valeur renvoyée est un :class:`float` similaire à ceux renvoyés par :func:" +"`time.time`." -#: ../Doc/library/datetime.rst:1355 +#: library/datetime.rst:1354 #, fuzzy msgid "" "Naive :class:`.datetime` instances are assumed to represent local time and " @@ -2170,14 +2159,14 @@ msgstr "" "plateformes, cette méthode peut lever une :exc:`OverflowError` pour les " "temps trop éloignés dans le passé ou le futur." -#: ../Doc/library/datetime.rst:1362 +#: library/datetime.rst:1361 msgid "" "For aware :class:`.datetime` instances, the return value is computed as::" msgstr "" "Pour les instances :class:`.datetime` avisées, la valeur renvoyée est " -"calculée comme suit : ::" +"calculée comme suit ::" -#: ../Doc/library/datetime.rst:1369 +#: library/datetime.rst:1368 msgid "" "The :meth:`timestamp` method uses the :attr:`.fold` attribute to " "disambiguate the times during a repeated interval." @@ -2185,7 +2174,7 @@ msgstr "" "La méthode :meth:`timestamp` utilise l'attribut :attr:`.fold` pour " "désambiguïser le temps dans un intervalle répété." -#: ../Doc/library/datetime.rst:1375 +#: library/datetime.rst:1374 #, fuzzy msgid "" "There is no method to obtain the POSIX timestamp directly from a naive :" @@ -2197,13 +2186,13 @@ msgstr "" "*POSIX* directement depuis une instance :class:`.datetime` naïve " "représentant un temps UTC. Si votre application utilise cette convention et " "que le fuseau horaire de votre système est UTC, vous pouvez obtenir " -"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` : ::" +"l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` ::" -#: ../Doc/library/datetime.rst:1383 +#: library/datetime.rst:1382 msgid "or by calculating the timestamp directly::" -msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement : ::" +msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" -#: ../Doc/library/datetime.rst:1389 +#: library/datetime.rst:1388 msgid "" "Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " "The same as ``self.date().weekday()``. See also :meth:`isoweekday`." @@ -2212,7 +2201,7 @@ msgstr "" "dimanche vaut 6. Identique à ``self.date().weekday()``. Voir aussi :meth:" "`isoweekday`." -#: ../Doc/library/datetime.rst:1395 +#: library/datetime.rst:1394 msgid "" "Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " "The same as ``self.date().isoweekday()``. See also :meth:`weekday`, :meth:" @@ -2222,7 +2211,7 @@ msgstr "" "dimanche vaut 7. Identique à ``self.date().isoweekday()``. Voir aussi :meth:" "`weekday`, :meth:`isocalendar`." -#: ../Doc/library/datetime.rst:1402 +#: library/datetime.rst:1401 #, fuzzy msgid "" "Return a 3-tuple, (ISO year, ISO week number, ISO weekday). The same as " @@ -2231,53 +2220,51 @@ msgstr "" "Renvoie un *tuple* de 3 éléments, (année ISO, numéro de semaine ISO, jour de " "la semaine ISO). Identique à ``self.date().isocalendar()``." -#: ../Doc/library/datetime.rst:1408 -#, fuzzy +#: library/datetime.rst:1407 msgid "Return a string representing the date and time in ISO 8601 format:" msgstr "" -"Renvoie une chaîne représentant la date et l'heure au format ISO 8601, *YYYY-" -"MM-DDTHH:MM:SS.ffffff* ou, si :attr:`microsecond` vaut 0, *YYYY-MM-DDTHH:MM:" -"SS*" +"Renvoie une chaîne représentant la date et l'heure au format ISO 8601 :" -#: ../Doc/library/datetime.rst:1410 +#: library/datetime.rst:1409 msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" -msgstr "" +msgstr "``YYYY-MM-DDTHH:MM:SS.ffffff``, si :attr:`microsecond` ne vaut pas 0" -#: ../Doc/library/datetime.rst:1411 +#: library/datetime.rst:1410 msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" -msgstr "" +msgstr "``YYYY-MM-DDTHH:MM:SS``, si :attr:`microsecond` vaut 0" -#: ../Doc/library/datetime.rst:1413 -#, fuzzy +#: library/datetime.rst:1412 msgid "" "If :meth:`utcoffset` does not return ``None``, a string is appended, giving " "the UTC offset:" msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " -"plus renvoyer ``None``." +"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " +"donnant le décalage UTC :" -#: ../Doc/library/datetime.rst:1416 +#: library/datetime.rst:1415 msgid "" "``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` " "is not 0" msgstr "" +"``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` " +"ne vaut pas 0" -#: ../Doc/library/datetime.rst:1418 +#: library/datetime.rst:1417 msgid "" "``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0" msgstr "" +"``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0" -#: ../Doc/library/datetime.rst:1428 -#, fuzzy +#: library/datetime.rst:1427 msgid "" "The optional argument *sep* (default ``'T'``) is a one-character separator, " "placed between the date and time portions of the result. For example::" msgstr "" -"L'argument optionnel *sep* (valant par défaut ``'T'``) est un séparateur " -"d'un caractère, placé entre les portions du résultat correspondant à la date " -"et à l'heure. Par exemple," +"L'argument optionnel *sep* (par défaut ``'T'``) est un séparateur d'un " +"caractère, placé entre les portions du résultat correspondant à la date et à " +"l'heure. Par exemple ::" -#: ../Doc/library/datetime.rst:1442 ../Doc/library/datetime.rst:1803 +#: library/datetime.rst:1802 msgid "" "The optional argument *timespec* specifies the number of additional " "components of the time to include (the default is ``'auto'``). It can be one " @@ -2287,7 +2274,7 @@ msgstr "" "additionnels de temps à inclure (par défaut ``'auto'``). Il peut valoir " "l'une des valeurs suivantes :" -#: ../Doc/library/datetime.rst:1446 ../Doc/library/datetime.rst:1807 +#: library/datetime.rst:1806 msgid "" "``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " "``'microseconds'`` otherwise." @@ -2295,18 +2282,17 @@ msgstr "" "``'auto'`` : Identique à ``'seconds'`` si :attr:`microsecond` vaut 0, à " "``'microseconds'`` sinon." -#: ../Doc/library/datetime.rst:1448 ../Doc/library/datetime.rst:1809 -#, fuzzy +#: library/datetime.rst:1808 msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." -msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres HH." +msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres ``HH``." -#: ../Doc/library/datetime.rst:1449 ../Doc/library/datetime.rst:1810 -#, fuzzy +#: library/datetime.rst:1809 msgid "" "``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." -msgstr "``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format HH:MM." +msgstr "" +"``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format ``HH:MM``." -#: ../Doc/library/datetime.rst:1450 ../Doc/library/datetime.rst:1811 +#: library/datetime.rst:1810 #, fuzzy msgid "" "``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " @@ -2315,7 +2301,7 @@ msgstr "" "``'seconds'`` : Inclut :attr:`hour`, :attr:`minute` et :attr:`second` au " "format ``HH:MM:SS``." -#: ../Doc/library/datetime.rst:1452 ../Doc/library/datetime.rst:1813 +#: library/datetime.rst:1812 #, fuzzy msgid "" "``'milliseconds'``: Include full time, but truncate fractional second part " @@ -2324,27 +2310,26 @@ msgstr "" "``'milliseconds'`` : Inclut le temps complet, mais tronque la partie " "fractionnaire des millisecondes, au format ``HH:MM:SS.sss``." -#: ../Doc/library/datetime.rst:1454 ../Doc/library/datetime.rst:1815 +#: library/datetime.rst:1814 #, fuzzy msgid "``'microseconds'``: Include full time in ``HH:MM:SS.ffffff`` format." msgstr "" "``'microseconds'`` : Inclut le temps complet, au format ``HH:MM:SS.ffffff``." -#: ../Doc/library/datetime.rst:1458 ../Doc/library/datetime.rst:1819 +#: library/datetime.rst:1818 msgid "Excluded time components are truncated, not rounded." msgstr "Les composants de temps exclus sont tronqués et non arrondis." -#: ../Doc/library/datetime.rst:1460 -#, fuzzy +#: library/datetime.rst:1459 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" msgstr "" -"Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide." +"Une :exc:`ValueError` est levée en cas d'argument *timespec* invalide ::" -#: ../Doc/library/datetime.rst:1470 ../Doc/library/datetime.rst:1834 +#: library/datetime.rst:1833 msgid "Added the *timespec* argument." msgstr "Ajout de l'argument *timespec*." -#: ../Doc/library/datetime.rst:1476 +#: library/datetime.rst:1475 msgid "" "For a :class:`.datetime` instance *d*, ``str(d)`` is equivalent to ``d." "isoformat(' ')``." @@ -2352,17 +2337,19 @@ msgstr "" "Pour une instance *d* de :class:`.datetime`, ``str(d)`` est équivalent à ``d." "isoformat(' ')``." -#: ../Doc/library/datetime.rst:1482 +#: library/datetime.rst:1481 msgid "Return a string representing the date and time::" -msgstr "" +msgstr "Renvoie une chaîne de caractères représentant la date et l'heure ::" -#: ../Doc/library/datetime.rst:1488 +#: library/datetime.rst:1487 msgid "" "The output string will *not* include time zone information, regardless of " "whether the input is aware or naive." msgstr "" +"La chaîne de caractères en sortie n'inclura *pas* d'informations sur le " +"fuseau horaire, que l'entrée soit avisée ou naïve." -#: ../Doc/library/datetime.rst:1495 +#: library/datetime.rst:1494 #, fuzzy msgid "" "on platforms where the native C :c:func:`ctime` function (which :func:`time." @@ -2375,7 +2362,7 @@ msgstr "" "plateformes où la fonction C native :c:func:`ctime` (que :func:`time.ctime` " "invoque, mais pas :meth:`date.ctime`) est conforme au standard C." -#: ../Doc/library/datetime.rst:1501 +#: library/datetime.rst:1500 #, fuzzy msgid "" "Return a string representing the date and time, controlled by an explicit " @@ -2386,7 +2373,7 @@ msgstr "" "de format explicite. Pour une liste complète des directives de formatage, " "voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1508 +#: library/datetime.rst:1507 #, fuzzy msgid "" "Same as :meth:`.datetime.strftime`. This makes it possible to specify a " @@ -2400,32 +2387,33 @@ msgstr "" "une liste complète des directives de formatage, voir :ref:`strftime-strptime-" "behavior`." -#: ../Doc/library/datetime.rst:1515 -#, fuzzy +#: library/datetime.rst:1514 msgid "Examples of Usage: :class:`.datetime`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemple d'utilisation de la classe :class:`.datetime` :" -#: ../Doc/library/datetime.rst:1517 -#, fuzzy +#: library/datetime.rst:1516 msgid "Examples of working with :class:`~datetime.datetime` objects:" -msgstr "Exemples d'utilisation des objets *datetime* :" +msgstr "Exemples d'utilisation des objets :class:`~datetime.datetime` :" -#: ../Doc/library/datetime.rst:1570 +#: library/datetime.rst:1569 msgid "" "The example below defines a :class:`tzinfo` subclass capturing time zone " "information for Kabul, Afghanistan, which used +4 UTC until 1945 and then " "+4:30 UTC thereafter::" msgstr "" +"L'exemple ci-dessous définit une sous-classe :class:`tzinfo` qui regroupe " +"des informations sur les fuseaux horaires pour Kaboul, en Afghanistan, qui a " +"utilisé +4 UTC jusqu'en 1945, puis +4:30 UTC par la suite ::" -#: ../Doc/library/datetime.rst:1617 +#: library/datetime.rst:1616 msgid "Usage of ``KabulTz`` from above::" -msgstr "" +msgstr "Utilisation de ``KabulTz`` cité plus haut ::" -#: ../Doc/library/datetime.rst:1643 +#: library/datetime.rst:1642 msgid ":class:`.time` Objects" msgstr "Objets :class:`.time`" -#: ../Doc/library/datetime.rst:1645 +#: library/datetime.rst:1644 #, fuzzy msgid "" "A :class:`time` object represents a (local) time of day, independent of any " @@ -2434,7 +2422,7 @@ msgstr "" "Un objet *time* représente une heure (locale) du jour, indépendante de tout " "jour particulier, et sujette à des ajustements par un objet :class:`tzinfo`." -#: ../Doc/library/datetime.rst:1650 +#: library/datetime.rst:1649 #, fuzzy msgid "" "All arguments are optional. *tzinfo* may be ``None``, or an instance of a :" @@ -2445,7 +2433,7 @@ msgstr "" "instance d'une sous-classe :class:`tzinfo`. Les autres arguments doivent " "être des nombres entiers, dans les intervalles suivants :" -#: ../Doc/library/datetime.rst:1660 +#: library/datetime.rst:1659 #, fuzzy msgid "" "If an argument outside those ranges is given, :exc:`ValueError` is raised. " @@ -2455,18 +2443,18 @@ msgstr "" "levée. Ils valent tous ``0`` par défaut, à l'exception de *tzinfo* qui " "vaut :const:`None`." -#: ../Doc/library/datetime.rst:1668 +#: library/datetime.rst:1667 msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." msgstr "" "Le plus petit objet :class:`.time` représentable, ``time(0, 0, 0, 0)``." -#: ../Doc/library/datetime.rst:1673 +#: library/datetime.rst:1672 msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." msgstr "" "Le plus grand objet :class:`.time` représentable, ``time(23, 59, 59, " "999999)``." -#: ../Doc/library/datetime.rst:1678 +#: library/datetime.rst:1677 msgid "" "The smallest possible difference between non-equal :class:`.time` objects, " "``timedelta(microseconds=1)``, although note that arithmetic on :class:`." @@ -2476,7 +2464,7 @@ msgstr "" "égaux, ``timedelta(microseconds=1)``, notez cependant que les objets :class:" "`.time` n'implémentent pas d'opérations arithmétiques." -#: ../Doc/library/datetime.rst:1707 +#: library/datetime.rst:1706 msgid "" "The object passed as the tzinfo argument to the :class:`.time` constructor, " "or ``None`` if none was passed." @@ -2484,7 +2472,7 @@ msgstr "" "L'objet passé comme argument *tzinfo* au constructeur de :class:`.time`, ou " "``None`` si aucune valeur n'a été passée." -#: ../Doc/library/datetime.rst:1721 +#: library/datetime.rst:1720 #, fuzzy msgid "" ":class:`.time` objects support comparison of :class:`.time` to :class:`." @@ -2499,7 +2487,7 @@ msgstr "" "`TypeError` est levée. Pour les égalités, les instances naïves ne sont " "jamais égales aux instances avisées." -#: ../Doc/library/datetime.rst:1727 +#: library/datetime.rst:1726 #, fuzzy msgid "" "If both comparands are aware, and have the same :attr:`~time.tzinfo` " @@ -2524,7 +2512,7 @@ msgstr "" "que la comparaison soit ``==`` ou ``!=``. Ces derniers cas renvoient " "respectivement :const:`False` et :const:`True`." -#: ../Doc/library/datetime.rst:1737 +#: library/datetime.rst:1736 #, fuzzy msgid "" "Equality comparisons between aware and naive :class:`~datetime.time` " @@ -2533,7 +2521,7 @@ msgstr "" "Les comparaisons d'égalité entre instances de :class:`~datetime.time` naïves " "et avisées ne lèvent pas de :exc:`TypeError`." -#: ../Doc/library/datetime.rst:1741 +#: library/datetime.rst:1740 #, fuzzy msgid "" "In Boolean contexts, a :class:`.time` object is always considered to be true." @@ -2541,7 +2529,7 @@ msgstr "" "Dans un contexte booléen, un objet :class:`.time` est toujours considéré " "comme vrai." -#: ../Doc/library/datetime.rst:1743 +#: library/datetime.rst:1742 #, fuzzy msgid "" "Before Python 3.5, a :class:`.time` object was considered to be false if it " @@ -2554,11 +2542,11 @@ msgstr "" "propice aux erreurs, il a été supprimé en Python 3.5. Voir :issue:`13936` " "pour les détails complets." -#: ../Doc/library/datetime.rst:1750 +#: library/datetime.rst:1749 msgid "Other constructor:" msgstr "Autre constructeur :" -#: ../Doc/library/datetime.rst:1754 +#: library/datetime.rst:1753 #, fuzzy msgid "" "Return a :class:`.time` corresponding to a *time_string* in one of the " @@ -2569,7 +2557,7 @@ msgstr "" "par :meth:`date.isoformat`. Spécifiquement, cette fonction gère des chaînes " "dans le(s) format(s) ``YYYY-MM-DD``." -#: ../Doc/library/datetime.rst:1764 +#: library/datetime.rst:1763 #, fuzzy msgid "" "This does *not* support parsing arbitrary ISO 8601 strings. It is only " @@ -2578,7 +2566,7 @@ msgstr "" "Ceci ne gère pas l'analyse arbitraire de chaînes ISO 8601, ceci est " "seulement destiné à l'opération inverse de :meth:`time.isoformat`." -#: ../Doc/library/datetime.rst:1785 +#: library/datetime.rst:1784 #, fuzzy msgid "" "Return a :class:`.time` with the same value, except for those attributes " @@ -2592,44 +2580,45 @@ msgstr "" "`.time` naïve à partir d'une instance :class:`.time` avisée, sans conversion " "des données de temps." -#: ../Doc/library/datetime.rst:1796 -#, fuzzy +#: library/datetime.rst:1795 msgid "Return a string representing the time in ISO 8601 format, one of:" msgstr "" -"Renvoie une chaîne de caractères représentant la date au format ISO 8601, " -"\"YYYY-MM-DD\". Par exemple, ``date(2002, 12, 4).isoformat() == " -"'2002-12-04'``." +"Renvoie une chaîne de caractères représentant la date au format ISO 8601 :" -#: ../Doc/library/datetime.rst:1798 +#: library/datetime.rst:1797 msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" -msgstr "" +msgstr "``HH:MM:SS.ffffff``, si :attr:`microsecond` ne vaut pas 0" -#: ../Doc/library/datetime.rst:1799 +#: library/datetime.rst:1798 msgid "``HH:MM:SS``, if :attr:`microsecond` is 0" -msgstr "" +msgstr "``HH:MM:SS``, si :attr:`microsecond` vaut 0" -#: ../Doc/library/datetime.rst:1800 +#: library/datetime.rst:1799 msgid "" "``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :meth:`utcoffset` does not " "return ``None``" msgstr "" +"``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :meth:`utcoffset` ne renvoie pas " +"``None``" -#: ../Doc/library/datetime.rst:1801 +#: library/datetime.rst:1800 msgid "" "``HH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0 and :meth:" "`utcoffset` does not return ``None``" msgstr "" +"``HH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0 et :meth:" +"`utcoffset` ne renvoie pas ``None``" -#: ../Doc/library/datetime.rst:1821 +#: library/datetime.rst:1820 msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." msgstr "" "Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide." -#: ../Doc/library/datetime.rst:1840 +#: library/datetime.rst:1839 msgid "For a time *t*, ``str(t)`` is equivalent to ``t.isoformat()``." msgstr "Pour un temps *t*, ``str(t)`` est équivalent à ``t.isoformat()``." -#: ../Doc/library/datetime.rst:1845 +#: library/datetime.rst:1844 #, fuzzy msgid "" "Return a string representing the time, controlled by an explicit format " @@ -2640,7 +2629,7 @@ msgstr "" "chaîne de formatage explicite. Pour une liste complète des directives de " "formatage, voir :ref:`strftime-strptime-behavior`." -#: ../Doc/library/datetime.rst:1852 +#: library/datetime.rst:1851 #, fuzzy msgid "" "Same as :meth:`.time.strftime`. This makes it possible to specify a format " @@ -2654,7 +2643,7 @@ msgstr "" "liste complète des directives de formatage, voir :ref:`strftime-strptime-" "behavior`." -#: ../Doc/library/datetime.rst:1861 +#: library/datetime.rst:1860 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "utcoffset(None)``, and raises an exception if the latter doesn't return " @@ -2665,7 +2654,7 @@ msgstr "" "ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1871 +#: library/datetime.rst:1870 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "dst(None)``, and raises an exception if the latter doesn't return ``None``, " @@ -2676,7 +2665,7 @@ msgstr "" "renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " "inférieure à un jour." -#: ../Doc/library/datetime.rst:1880 +#: library/datetime.rst:1879 msgid "" "If :attr:`.tzinfo` is ``None``, returns ``None``, else returns ``self.tzinfo." "tzname(None)``, or raises an exception if the latter doesn't return ``None`` " @@ -2686,28 +2675,30 @@ msgstr "" "tzinfo.tzname(None)``, et lève une exception si l'expression précédente ne " "renvoie pas ``None`` ou une chaîne de caractères." -#: ../Doc/library/datetime.rst:1885 -#, fuzzy +#: library/datetime.rst:1884 msgid "Examples of Usage: :class:`.time`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" +msgstr "Exemples d'utilisation de :class:`.time`" -#: ../Doc/library/datetime.rst:1887 -#, fuzzy +#: library/datetime.rst:1886 msgid "Examples of working with a :class:`.time` object::" -msgstr "Exemples d'utilisation des objets *datetime* :" +msgstr "Exemples d'utilisation de l'objet :class:`.time` ::" -#: ../Doc/library/datetime.rst:1918 +#: library/datetime.rst:1917 msgid ":class:`tzinfo` Objects" msgstr "Objets :class:`tzinfo`" -#: ../Doc/library/datetime.rst:1922 +#: library/datetime.rst:1921 msgid "" "This is an abstract base class, meaning that this class should not be " "instantiated directly. Define a subclass of :class:`tzinfo` to capture " "information about a particular time zone." msgstr "" +"Il s'agit d'une classe de base abstraite, ce qui signifie que cette classe " +"ne doit pas être instanciée directement. Définissez une sous-classe de :" +"class:`tzinfo` pour capturer des informations sur un fuseau horaire " +"particulier." -#: ../Doc/library/datetime.rst:1926 +#: library/datetime.rst:1925 msgid "" "An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " "constructors for :class:`.datetime` and :class:`.time` objects. The latter " @@ -2723,7 +2714,7 @@ msgstr "" "temps local par rapport à UTC, le nom du fuseau horaire, le décalage d'heure " "d'été, tous relatifs à un objet de date ou d'heure qui leur est passé." -#: ../Doc/library/datetime.rst:1932 +#: library/datetime.rst:1931 #, fuzzy msgid "" "You need to derive a concrete subclass, and (at least) supply " @@ -2742,7 +2733,7 @@ msgstr "" "avec des décalages fixes par rapport à UTC, tels qu'UTC lui-même ou les nord-" "américains EST et EDT." -#: ../Doc/library/datetime.rst:1939 +#: library/datetime.rst:1938 #, fuzzy msgid "" "Special requirement for pickling: A :class:`tzinfo` subclass must have an :" @@ -2755,7 +2746,7 @@ msgstr "" "sans quoi un objet sérialisé ne pourrait pas toujours être désérialisé. " "C'est un prérequis technique qui pourrait être assoupli dans le futur." -#: ../Doc/library/datetime.rst:1944 +#: library/datetime.rst:1943 #, fuzzy msgid "" "A concrete subclass of :class:`tzinfo` may need to implement the following " @@ -2767,13 +2758,16 @@ msgstr "" "l'utilisation qui est faite des objets :mod:`datetime` avisés. Dans le " "doute, implémentez-les toutes." -#: ../Doc/library/datetime.rst:1951 +#: library/datetime.rst:1950 msgid "" "Return offset of local time from UTC, as a :class:`timedelta` object that is " "positive east of UTC. If local time is west of UTC, this should be negative." msgstr "" +"Renvoie le décalage de l'heure locale par rapport à UTC, sous la forme d'un " +"objet :class:`timedelta` qui est positif à l'est de UTC. Si l'heure locale " +"est à l'ouest de UTC, il doit être négatif." -#: ../Doc/library/datetime.rst:1954 +#: library/datetime.rst:1953 #, fuzzy msgid "" "This represents the *total* offset from UTC; for example, if a :class:" @@ -2794,9 +2788,9 @@ msgstr "" "objet :class:`timedelta` compris strictement entre ``-timedelta(hours=24)`` " "et ``timedelta(hours=24)`` (la magnitude du décalage doit être inférieure à " "un jour). La plupart des implémentations de :meth:`utcoffset` ressembleront " -"probablement à l'une des deux suivantes : ::" +"probablement à l'une des deux suivantes ::" -#: ../Doc/library/datetime.rst:1965 +#: library/datetime.rst:1964 msgid "" "If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " "``None`` either." @@ -2804,7 +2798,7 @@ msgstr "" "Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " "plus renvoyer ``None``." -#: ../Doc/library/datetime.rst:1968 +#: library/datetime.rst:1967 msgid "" "The default implementation of :meth:`utcoffset` raises :exc:" "`NotImplementedError`." @@ -2812,13 +2806,15 @@ msgstr "" "L'implémentation par défaut de :meth:`utcoffset` lève une :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:1977 +#: library/datetime.rst:1976 msgid "" "Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " "object or ``None`` if DST information isn't known." msgstr "" +"Renvoie le réglage de l'heure d'été (DST), sous la forme d'un objet :class:" +"`timedelta` ou ``None`` si l'information DST n'est pas connue." -#: ../Doc/library/datetime.rst:1981 +#: library/datetime.rst:1980 #, fuzzy msgid "" "Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " @@ -2845,7 +2841,7 @@ msgstr "" "`dst` pour tenir compte des heures d'été quand elle traverse des fuseaux " "horaires." -#: ../Doc/library/datetime.rst:1991 +#: library/datetime.rst:1990 msgid "" "An instance *tz* of a :class:`tzinfo` subclass that models both standard and " "daylight times must be consistent in this sense:" @@ -2853,11 +2849,11 @@ msgstr "" "Une instance *tz* d'une sous-classe :class:`tzinfo` convenant à la fois pour " "une heure standard et une heure d'été doit être cohérente :" -#: ../Doc/library/datetime.rst:1994 +#: library/datetime.rst:1993 msgid "``tz.utcoffset(dt) - tz.dst(dt)``" msgstr "``tz.utcoffset(dt) - tz.dst(dt)``" -#: ../Doc/library/datetime.rst:1996 +#: library/datetime.rst:1995 #, fuzzy msgid "" "must return the same result for every :class:`.datetime` *dt* with ``dt." @@ -2881,26 +2877,26 @@ msgstr "" "l'implémentation par défaut de :meth:`tzinfo.fromutc` pour tout de même " "fonctionner correctement avec :meth:`astimezone`." -#: ../Doc/library/datetime.rst:2005 +#: library/datetime.rst:2004 msgid "" "Most implementations of :meth:`dst` will probably look like one of these " "two::" msgstr "" "La plupart des implémentations de :meth:`dst` ressembleront probablement à " -"l'une des deux suivantes : ::" +"l'une des deux suivantes ::" -#: ../Doc/library/datetime.rst:2011 +#: library/datetime.rst:2010 msgid "or::" -msgstr "ou  ::" +msgstr "ou ::" -#: ../Doc/library/datetime.rst:2023 +#: library/datetime.rst:2022 msgid "" "The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." msgstr "" "L'implémentation par défaut de :meth:`dst` lève une :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2031 +#: library/datetime.rst:2030 #, fuzzy msgid "" "Return the time zone name corresponding to the :class:`.datetime` object " @@ -2924,7 +2920,7 @@ msgstr "" "renvoyer des noms différents en fonction de valeurs de *dt* spécifiques, en " "particulier si la classe :class:`tzinfo` tient compte de l'heure d'été." -#: ../Doc/library/datetime.rst:2041 +#: library/datetime.rst:2040 msgid "" "The default implementation of :meth:`tzname` raises :exc:" "`NotImplementedError`." @@ -2932,7 +2928,7 @@ msgstr "" "L'implémentation par défaut de :meth:`tzname` lève une :exc:" "`NotImplementedError`." -#: ../Doc/library/datetime.rst:2044 +#: library/datetime.rst:2043 #, fuzzy msgid "" "These methods are called by a :class:`.datetime` or :class:`.time` object, " @@ -2949,7 +2945,7 @@ msgstr "" "être prêtes à recevoir un argument ``None`` pour *dt*, ou une instance de :" "class:`.datetime`." -#: ../Doc/library/datetime.rst:2050 +#: library/datetime.rst:2049 #, fuzzy msgid "" "When ``None`` is passed, it's up to the class designer to decide the best " @@ -2965,7 +2961,7 @@ msgstr "" "``utcoffset(None)`` de renvoyer le décalage UTC standard, comme il n'existe " "aucune autre convention pour obtenir ce décalage." -#: ../Doc/library/datetime.rst:2056 +#: library/datetime.rst:2055 #, fuzzy msgid "" "When a :class:`.datetime` object is passed in response to a :class:`." @@ -2983,7 +2979,7 @@ msgstr "" "étant le temps local, et n'aient pas à se soucier des objets dans d'autres " "fuseaux horaires." -#: ../Doc/library/datetime.rst:2062 +#: library/datetime.rst:2061 msgid "" "There is one more :class:`tzinfo` method that a subclass may wish to " "override:" @@ -2991,7 +2987,7 @@ msgstr "" "Il y a une dernière méthode de :class:`tzinfo` que les sous-classes peuvent " "vouloir redéfinir :" -#: ../Doc/library/datetime.rst:2067 +#: library/datetime.rst:2066 #, fuzzy msgid "" "This is called from the default :class:`datetime.astimezone()` " @@ -3007,7 +3003,7 @@ msgstr "" "et d'heure, renvoyant un objet *datetime* équivalent à *self*, dans le temps " "local." -#: ../Doc/library/datetime.rst:2073 +#: library/datetime.rst:2072 #, fuzzy msgid "" "Most :class:`tzinfo` subclasses should be able to inherit the default :meth:" @@ -3034,15 +3030,15 @@ msgstr "" "ne pas produire les résultats attendus si le résultat est l'une des heures " "affectées par le changement d'heure." -#: ../Doc/library/datetime.rst:2084 +#: library/datetime.rst:2083 msgid "" "Skipping code for error cases, the default :meth:`fromutc` implementation " "acts like::" msgstr "" "En omettant le code des cas d'erreurs, l'implémentation par défaut de :meth:" -"`fromutc` se comporte comme suit : ::" +"`fromutc` se comporte comme suit ::" -#: ../Doc/library/datetime.rst:2102 +#: library/datetime.rst:2101 msgid "" "In the following :download:`tzinfo_examples.py <../includes/tzinfo_examples." "py>` file there are some examples of :class:`tzinfo` classes:" @@ -3050,7 +3046,7 @@ msgstr "" "Dans le fichier :download:`tzinfo_examples.py <../includes/tzinfo_examples." "py>` il y a des exemples de :class:`tzinfo` classes:" -#: ../Doc/library/datetime.rst:2108 +#: library/datetime.rst:2107 #, fuzzy msgid "" "Note that there are unavoidable subtleties twice per year in a :class:" @@ -3064,9 +3060,9 @@ msgstr "" "standard et d'été, au passage de l'une à l'autre. Concrètement, considérez " "le fuseau de l'est des États-Unis (UTC -0500), où EDT (heure d'été) débute à " "la minute qui suit 1:59 (EST) le second dimanche de mars, et se termine à la " -"minute qui suit 1:59 (EDT) le premier dimanche de novembre : ::" +"minute qui suit 1:59 (EDT) le premier dimanche de novembre ::" -#: ../Doc/library/datetime.rst:2122 +#: library/datetime.rst:2121 #, fuzzy msgid "" "When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " @@ -3079,9 +3075,9 @@ msgstr "" "1:59 à 3:00. Une heure de la forme 2:MM n'a pas vraiment de sens ce jour " "là, donc ``astimezone(Eastern)`` ne délivrera pas de résultat avec ``hour " "== 2`` pour le jour où débute l'heure d'été. Par exemple, lors de la " -"transition du printemps 2016, nous obtenons" +"transition du printemps 2016, nous obtenons ::" -#: ../Doc/library/datetime.rst:2141 +#: library/datetime.rst:2140 #, fuzzy msgid "" "When DST ends (the \"end\" line), there's a potentially worse problem: " @@ -3107,9 +3103,9 @@ msgstr "" "temps UTC de la forme 5:MM et 6:MM sont tous deux associés à 1:MM quand " "convertis vers ce fuseau, mais les heures les plus anciennes ont l'attribut :" "attr:`~datetime.fold` à 0 et les plus récentes l'ont à 1. Par exemple, lors " -"de la transition de l'automne 2016, nous obtenons" +"de la transition de l'automne 2016, nous obtenons ::" -#: ../Doc/library/datetime.rst:2163 +#: library/datetime.rst:2162 #, fuzzy msgid "" "Note that the :class:`.datetime` instances that differ only by the value of " @@ -3119,7 +3115,7 @@ msgstr "" "valeur de leur attribut :attr:`~datetime.fold` sont considérées égales dans " "les comparaisons." -#: ../Doc/library/datetime.rst:2166 +#: library/datetime.rst:2165 msgid "" "Applications that can't bear wall-time ambiguities should explicitly check " "the value of the :attr:`~datetime.fold` attribute or avoid using hybrid :" @@ -3136,11 +3132,11 @@ msgstr "" "représentant uniquement le fuseau EST (de décalage fixe *-5h*) ou uniquement " "EDT (*-4h*))." -#: ../Doc/library/datetime.rst:2181 +#: library/datetime.rst:2180 msgid "`dateutil.tz `_" msgstr "`dateutil.tz `_" -#: ../Doc/library/datetime.rst:2175 +#: library/datetime.rst:2174 #, fuzzy msgid "" "The :mod:`datetime` module has a basic :class:`timezone` class (for handling " @@ -3151,7 +3147,7 @@ msgstr "" "décalages fixes par rapport à UTC et :attr:`timezone.utc` comme instance du " "fuseau horaire UTC." -#: ../Doc/library/datetime.rst:2179 +#: library/datetime.rst:2178 #, fuzzy msgid "" "*dateutil.tz* library brings the *IANA timezone database* (also known as the " @@ -3161,13 +3157,13 @@ msgstr "" "fuseaux horaires IANA* (*IANA timezone database*, aussi appelée base de " "données Olson) , et son utilisation est recommandée." -#: ../Doc/library/datetime.rst:2187 +#: library/datetime.rst:2186 msgid "`IANA timezone database `_" msgstr "" "`Base de données des fuseaux horaires de l'IANA `_" -#: ../Doc/library/datetime.rst:2184 +#: library/datetime.rst:2183 msgid "" "The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " "and data that represent the history of local time for many representative " @@ -3182,17 +3178,20 @@ msgstr "" "politiques sur les bornes du fuseau, les décalages UTC, et les règles de " "passage à l'heure d'été." -#: ../Doc/library/datetime.rst:2194 +#: library/datetime.rst:2193 msgid ":class:`timezone` Objects" msgstr "Objets :class:`timezone`" -#: ../Doc/library/datetime.rst:2196 +#: library/datetime.rst:2195 msgid "" "The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " "of which represents a timezone defined by a fixed offset from UTC." msgstr "" +"La classe :class:`timezone` est une sous-classe de :class:`tzinfo`, dont " +"chaque instance représente un fuseau horaire défini par un décalage fixe par " +"rapport à UTC." -#: ../Doc/library/datetime.rst:2200 +#: library/datetime.rst:2199 #, fuzzy msgid "" "Objects of this class cannot be used to represent timezone information in " @@ -3206,7 +3205,7 @@ msgstr "" "emplacements où plusieurs décalages sont utilisés au cours de l'année ou où " "des changements historiques ont été opérés sur le temps civil." -#: ../Doc/library/datetime.rst:2207 +#: library/datetime.rst:2206 #, fuzzy msgid "" "The *offset* argument must be specified as a :class:`timedelta` object " @@ -3219,7 +3218,7 @@ msgstr "" "strictement compris entre ``-timedelta(hours=24)`` et " "``timedelta(hours=24)``, autrement une :exc:`ValueError` est levée." -#: ../Doc/library/datetime.rst:2212 +#: library/datetime.rst:2211 #, fuzzy msgid "" "The *name* argument is optional. If specified it must be a string that will " @@ -3229,13 +3228,15 @@ msgstr "" "caractères qui sera utilisée comme valeur de retour de la méthode :meth:" "`datetime.tzname`." -#: ../Doc/library/datetime.rst:2223 ../Doc/library/datetime.rst:2234 +#: library/datetime.rst:2233 msgid "" "Return the fixed value specified when the :class:`timezone` instance is " "constructed." msgstr "" +"Renvoie la valeur fixe spécifiée lorsque l'instance :class:`timezone` est " +"construite." -#: ../Doc/library/datetime.rst:2226 +#: library/datetime.rst:2225 #, fuzzy msgid "" "The *dt* argument is ignored. The return value is a :class:`timedelta` " @@ -3246,7 +3247,7 @@ msgstr "" "instance :class:`timedelta` égale à la différence entre le temps local et " "UTC." -#: ../Doc/library/datetime.rst:2237 +#: library/datetime.rst:2236 #, fuzzy msgid "" "If *name* is not provided in the constructor, the name returned by " @@ -3263,37 +3264,36 @@ msgstr "" "et HH et MM sont respectivement les représentations à deux chiffres de " "``offset.hours`` et ``offset.minutes``." -#: ../Doc/library/datetime.rst:2243 +#: library/datetime.rst:2242 #, fuzzy msgid "" -"Name generated from ``offset=timedelta(0)`` is now plain `'UTC'`, not ``'UTC" -"+00:00'``." +"Name generated from ``offset=timedelta(0)`` is now plain `'UTC'`, not " +"``'UTC+00:00'``." msgstr "" "Le nom généré à partir de ``offset=timedelta(0)`` est maintenant \"UTC\" " "plutôt que \"UTC+00:00\"." -#: ../Doc/library/datetime.rst:2250 +#: library/datetime.rst:2249 msgid "Always returns ``None``." msgstr "Renvoie toujours ``None``." -#: ../Doc/library/datetime.rst:2254 -#, fuzzy +#: library/datetime.rst:2253 msgid "" "Return ``dt + offset``. The *dt* argument must be an aware :class:`." "datetime` instance, with ``tzinfo`` set to ``self``." msgstr "" -"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" -"class:`datetime`, avec ``tzinfo`` valant ``self``." +"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée de :" +"class:`.datetime`, avec ``tzinfo`` valant ``self``." -#: ../Doc/library/datetime.rst:2261 +#: library/datetime.rst:2260 msgid "The UTC timezone, ``timezone(timedelta(0))``." msgstr "Le fuseau horaire UTC, ``timezone(timedelta(0))``." -#: ../Doc/library/datetime.rst:2270 +#: library/datetime.rst:2269 msgid ":meth:`strftime` and :meth:`strptime` Behavior" msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" -#: ../Doc/library/datetime.rst:2272 +#: library/datetime.rst:2271 #, fuzzy msgid "" ":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " @@ -3307,376 +3307,371 @@ msgstr "" "la fonction ``time.strftime(fmt, d.timetuple())`` du module :mod:`time`, " "bien que tous les objets ne comportent pas de méthode :meth:`timetuple`." -#: ../Doc/library/datetime.rst:2276 +#: library/datetime.rst:2275 msgid "" "Conversely, the :meth:`datetime.strptime` class method creates a :class:`." "datetime` object from a string representing a date and time and a " "corresponding format string." msgstr "" +"Inversement, la méthode de classe :meth:`datetime.strptime` crée un objet :" +"class:`.datetime` à partir d'une chaîne représentant une date et une heure, " +"et une chaîne de format correspondante." -#: ../Doc/library/datetime.rst:2280 +#: library/datetime.rst:2279 msgid "" "The table below provides a high-level comparison of :meth:`strftime` versus :" "meth:`strptime`:" msgstr "" +"Le tableau ci-dessous fournit une comparaison de haut niveau entre :meth:" +"`strftime` et :meth:`strptime` :" -#: ../Doc/library/datetime.rst:2284 -#, fuzzy +#: library/datetime.rst:2283 msgid "``strftime``" -msgstr "``str(t)``" +msgstr "``strftime``" -#: ../Doc/library/datetime.rst:2284 -#, fuzzy +#: library/datetime.rst:2283 msgid "``strptime``" -msgstr "``str(t)``" +msgstr "``strptime``" -#: ../Doc/library/datetime.rst:2286 +#: library/datetime.rst:2285 msgid "Usage" -msgstr "" +msgstr "Utilisation" -#: ../Doc/library/datetime.rst:2286 +#: library/datetime.rst:2285 msgid "Convert object to a string according to a given format" -msgstr "" +msgstr "Convertit un objet en une chaîne de caractères selon un format donné" -#: ../Doc/library/datetime.rst:2286 +#: library/datetime.rst:2285 msgid "" "Parse a string into a :class:`.datetime` object given a corresponding format" msgstr "" +"Analyse une chaîne de caractères dans un objet :class:`.datetime` en " +"fonction du format de correspondance donné" -#: ../Doc/library/datetime.rst:2288 +#: library/datetime.rst:2287 msgid "Type of method" -msgstr "" +msgstr "Type de méthode" -#: ../Doc/library/datetime.rst:2288 -#, fuzzy +#: library/datetime.rst:2287 msgid "Instance method" -msgstr "Méthodes de l'instance :" +msgstr "Méthode d'instance" -#: ../Doc/library/datetime.rst:2288 +#: library/datetime.rst:2287 msgid "Class method" -msgstr "" +msgstr "Méthode de classe" -#: ../Doc/library/datetime.rst:2290 +#: library/datetime.rst:2289 msgid "Method of" -msgstr "" +msgstr "Méthode de" -#: ../Doc/library/datetime.rst:2290 -#, fuzzy +#: library/datetime.rst:2289 msgid ":class:`date`; :class:`.datetime`; :class:`.time`" -msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" +msgstr ":class:`date` ; :class:`.datetime` ; :class:`.time`" -#: ../Doc/library/datetime.rst:2290 -#, fuzzy +#: library/datetime.rst:2289 msgid ":class:`.datetime`" -msgstr "Objets :class:`.datetime`" +msgstr ":class:`.datetime`" -#: ../Doc/library/datetime.rst:2292 +#: library/datetime.rst:2291 msgid "Signature" -msgstr "" +msgstr "Signature" -#: ../Doc/library/datetime.rst:2292 -#, fuzzy +#: library/datetime.rst:2291 msgid "``strftime(format)``" -msgstr "``str(t)``" +msgstr "``strftime(format)``" -#: ../Doc/library/datetime.rst:2292 +#: library/datetime.rst:2291 msgid "``strptime(date_string, format)``" -msgstr "" +msgstr "``strptime(date_string, format)``" -#: ../Doc/library/datetime.rst:2297 -#, fuzzy +#: library/datetime.rst:2296 msgid ":meth:`strftime` and :meth:`strptime` Format Codes" -msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" +msgstr "Codes de formatage de :meth:`strftime` et :meth:`strptime`" -#: ../Doc/library/datetime.rst:2299 -#, fuzzy +#: library/datetime.rst:2298 msgid "" "The following is a list of all the format codes that the 1989 C standard " "requires, and these work on all platforms with a standard C implementation." msgstr "" "La liste suivante est la liste de tous les codes de formatage requis par le " "standard C (version 1989), ils fonctionnent sur toutes les plateformes " -"possédant une implémentation de C standard. Notez que la version 1999 du " -"standard C a ajouté des codes de formatage additionnels." +"possédant une implémentation de C standard." -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Directive" msgstr "Directive" -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Example" msgstr "Exemple" -#: ../Doc/library/datetime.rst:2303 ../Doc/library/datetime.rst:2406 +#: library/datetime.rst:2405 msgid "Notes" msgstr "Notes" -#: ../Doc/library/datetime.rst:2305 +#: library/datetime.rst:2304 msgid "``%a``" msgstr "``%a``" -#: ../Doc/library/datetime.rst:2305 +#: library/datetime.rst:2304 msgid "Weekday as locale's abbreviated name." msgstr "Jour de la semaine abrégé dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Sun, Mon, ..., Sat (en_US);" msgstr "Sun, Mon, ..., Sat (en_US);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "So, Mo, ..., Sa (de_DE)" msgstr "Lu, Ma, ..., Di (*fr_FR*)" -#: ../Doc/library/datetime.rst:2310 +#: library/datetime.rst:2309 msgid "``%A``" msgstr "``%A``" -#: ../Doc/library/datetime.rst:2310 +#: library/datetime.rst:2309 msgid "Weekday as locale's full name." msgstr "Jour de la semaine complet dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Sunday, Monday, ..., Saturday (en_US);" msgstr "*Sunday*, *Monday*, ..., *Saturday* (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Sonntag, Montag, ..., Samstag (de_DE)" msgstr "Lundi, Mardi, ..., Dimanche (*fr_FR*)" -#: ../Doc/library/datetime.rst:2315 +#: library/datetime.rst:2314 msgid "``%w``" msgstr "``%w``" -#: ../Doc/library/datetime.rst:2315 +#: library/datetime.rst:2314 msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." msgstr "" "Jour de la semaine en chiffre, avec 0 pour le dimanche et 6 pour le samedi." -#: ../Doc/library/datetime.rst:2315 +#: library/datetime.rst:2314 msgid "0, 1, ..., 6" msgstr "0, 1, ..., 6" -#: ../Doc/library/datetime.rst:2319 +#: library/datetime.rst:2318 msgid "``%d``" msgstr "``%d``" -#: ../Doc/library/datetime.rst:2319 +#: library/datetime.rst:2318 msgid "Day of the month as a zero-padded decimal number." msgstr "Jour du mois sur deux chiffres." -#: ../Doc/library/datetime.rst:2319 +#: library/datetime.rst:2318 msgid "01, 02, ..., 31" msgstr "01, 02, ..., 31" -#: ../Doc/library/datetime.rst:2319 ../Doc/library/datetime.rst:2332 -#: ../Doc/library/datetime.rst:2335 ../Doc/library/datetime.rst:2341 -#: ../Doc/library/datetime.rst:2344 ../Doc/library/datetime.rst:2350 -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2331 library/datetime.rst:2340 +#: library/datetime.rst:2349 library/datetime.rst:2367 msgid "\\(9)" msgstr "\\(9)" -#: ../Doc/library/datetime.rst:2322 +#: library/datetime.rst:2321 msgid "``%b``" msgstr "``%b``" -#: ../Doc/library/datetime.rst:2322 +#: library/datetime.rst:2321 msgid "Month as locale's abbreviated name." msgstr "Nom du mois abrégé dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Jan, Feb, ..., Dec (en_US);" msgstr "Jan, Feb, ..., Dec (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Jan, Feb, ..., Dez (de_DE)" msgstr "janv., févr., ..., déc. (*fr_FR*)" -#: ../Doc/library/datetime.rst:2327 +#: library/datetime.rst:2326 msgid "``%B``" msgstr "``%B``" -#: ../Doc/library/datetime.rst:2327 +#: library/datetime.rst:2326 msgid "Month as locale's full name." msgstr "Nom complet du mois dans la langue locale." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "January, February, ..., December (en_US);" msgstr "*January*, *February*, ..., *December* (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Januar, Februar, ..., Dezember (de_DE)" msgstr "janvier, février, ..., décembre (*fr_FR*)" -#: ../Doc/library/datetime.rst:2332 +#: library/datetime.rst:2331 msgid "``%m``" msgstr "``%m``" -#: ../Doc/library/datetime.rst:2332 +#: library/datetime.rst:2331 msgid "Month as a zero-padded decimal number." msgstr "Numéro du mois sur deux chiffres." -#: ../Doc/library/datetime.rst:2332 ../Doc/library/datetime.rst:2344 +#: library/datetime.rst:2343 msgid "01, 02, ..., 12" msgstr "01, 02, ..., 12" -#: ../Doc/library/datetime.rst:2335 +#: library/datetime.rst:2334 msgid "``%y``" msgstr "``%y``" -#: ../Doc/library/datetime.rst:2335 +#: library/datetime.rst:2334 msgid "Year without century as a zero-padded decimal number." msgstr "Année sur deux chiffres (sans le siècle)." -#: ../Doc/library/datetime.rst:2335 +#: library/datetime.rst:2334 msgid "00, 01, ..., 99" msgstr "00, 01, ..., 99" -#: ../Doc/library/datetime.rst:2338 +#: library/datetime.rst:2337 msgid "``%Y``" msgstr "``%Y``" -#: ../Doc/library/datetime.rst:2338 +#: library/datetime.rst:2337 msgid "Year with century as a decimal number." msgstr "Année complète sur quatre chiffres." -#: ../Doc/library/datetime.rst:2338 ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" msgstr "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" -#: ../Doc/library/datetime.rst:2341 +#: library/datetime.rst:2340 msgid "``%H``" msgstr "``%H``" -#: ../Doc/library/datetime.rst:2341 +#: library/datetime.rst:2340 msgid "Hour (24-hour clock) as a zero-padded decimal number." msgstr "Heure à deux chiffres de 00 à 23." -#: ../Doc/library/datetime.rst:2341 +#: library/datetime.rst:2340 msgid "00, 01, ..., 23" msgstr "00, 01, ..., 23" -#: ../Doc/library/datetime.rst:2344 +#: library/datetime.rst:2343 msgid "``%I``" msgstr "``%I``" -#: ../Doc/library/datetime.rst:2344 +#: library/datetime.rst:2343 msgid "Hour (12-hour clock) as a zero-padded decimal number." msgstr "Heure à deux chiffres pour les horloges 12h (01 à 12)." -#: ../Doc/library/datetime.rst:2347 +#: library/datetime.rst:2346 msgid "``%p``" msgstr "``%p``" -#: ../Doc/library/datetime.rst:2347 +#: library/datetime.rst:2346 msgid "Locale's equivalent of either AM or PM." msgstr "Équivalent local à AM/PM." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "AM, PM (en_US);" msgstr "AM, PM (en_US);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "am, pm (de_DE)" msgstr "am, pm (de_DE)" -#: ../Doc/library/datetime.rst:2347 +#: library/datetime.rst:2346 msgid "\\(1), \\(3)" msgstr "\\(1), \\(3)" -#: ../Doc/library/datetime.rst:2350 +#: library/datetime.rst:2349 msgid "``%M``" msgstr "``%M``" -#: ../Doc/library/datetime.rst:2350 +#: library/datetime.rst:2349 msgid "Minute as a zero-padded decimal number." msgstr "Minutes sur deux chiffres." -#: ../Doc/library/datetime.rst:2350 ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "00, 01, ..., 59" msgstr "00, 01, ..., 59" -#: ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "``%S``" msgstr "``%S``" -#: ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "Second as a zero-padded decimal number." msgstr "Secondes sur deux chiffres." -#: ../Doc/library/datetime.rst:2353 +#: library/datetime.rst:2352 msgid "\\(4), \\(9)" msgstr "\\(4), \\(9)" -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "``%f``" msgstr "``%f``" -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "Microsecond as a decimal number, zero-padded on the left." msgstr "Microsecondes sur 6 chiffres." -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "000000, 000001, ..., 999999" msgstr "000000, 000001, ..., 999999" -#: ../Doc/library/datetime.rst:2356 +#: library/datetime.rst:2355 msgid "\\(5)" msgstr "\\(5)" -#: ../Doc/library/datetime.rst:2360 ../Doc/library/datetime.rst:2523 +#: library/datetime.rst:2522 msgid "``%z``" msgstr "``%z``" -#: ../Doc/library/datetime.rst:2360 -#, fuzzy +#: library/datetime.rst:2359 msgid "" "UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " "naive)." msgstr "" -"Décalage UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si l'instance " -"est naïve)." +"Décalage horaire UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si " +"l'instance est naïve)." -#: ../Doc/library/datetime.rst:2360 +#: library/datetime.rst:2359 msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" msgstr "(vide), +0000, -0400, +1030, +063415, -030712.345216" -#: ../Doc/library/datetime.rst:2360 +#: library/datetime.rst:2359 msgid "\\(6)" msgstr "\\(6)" -#: ../Doc/library/datetime.rst:2365 ../Doc/library/datetime.rst:2538 +#: library/datetime.rst:2537 msgid "``%Z``" msgstr "``%Z``" -#: ../Doc/library/datetime.rst:2365 +#: library/datetime.rst:2364 msgid "Time zone name (empty string if the object is naive)." msgstr "Nom du fuseau horaire (chaîne vide si l'instance est naïve)." -#: ../Doc/library/datetime.rst:2365 +#: library/datetime.rst:2364 msgid "(empty), UTC, EST, CST" msgstr "(vide), UTC, EST, CST" -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2367 msgid "``%j``" msgstr "``%j``" -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2367 msgid "Day of the year as a zero-padded decimal number." msgstr "Numéro du jour dans l'année sur trois chiffres." -#: ../Doc/library/datetime.rst:2368 +#: library/datetime.rst:2367 msgid "001, 002, ..., 366" msgstr "001, 002, ..., 366" -#: ../Doc/library/datetime.rst:2371 +#: library/datetime.rst:2370 msgid "``%U``" msgstr "``%U``" -#: ../Doc/library/datetime.rst:2371 +#: library/datetime.rst:2370 msgid "" "Week number of the year (Sunday as the first day of the week) as a zero " "padded decimal number. All days in a new year preceding the first Sunday are " @@ -3686,19 +3681,19 @@ msgstr "" "premier jour de la semaine). Tous les jours de l'année précédent le premier " "dimanche sont considérés comme appartenant à la semaine 0." -#: ../Doc/library/datetime.rst:2371 ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "00, 01, ..., 53" msgstr "00, 01, ..., 53" -#: ../Doc/library/datetime.rst:2371 ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "\\(7), \\(9)" msgstr "\\(7), \\(9)" -#: ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "``%W``" msgstr "``%W``" -#: ../Doc/library/datetime.rst:2379 +#: library/datetime.rst:2378 msgid "" "Week number of the year (Monday as the first day of the week) as a decimal " "number. All days in a new year preceding the first Monday are considered to " @@ -3708,81 +3703,84 @@ msgstr "" "premier jour de la semaine). Tous les jours de l'année précédent le premier " "lundi sont considérés comme appartenant à la semaine 0." -#: ../Doc/library/datetime.rst:2387 +#: library/datetime.rst:2386 msgid "``%c``" msgstr "``%c``" -#: ../Doc/library/datetime.rst:2387 +#: library/datetime.rst:2386 msgid "Locale's appropriate date and time representation." msgstr "Représentation locale de la date et de l'heure." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Tue Aug 16 21:30:00 1988 (en_US);" msgstr "Tue Aug 16 21:30:00 1988 (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "Di 16 Aug 21:30:00 1988 (de_DE)" msgstr "mar. 16 août 1988 21:30:00 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2392 +#: library/datetime.rst:2391 msgid "``%x``" msgstr "``%x``" -#: ../Doc/library/datetime.rst:2392 +#: library/datetime.rst:2391 msgid "Locale's appropriate date representation." msgstr "Représentation locale de la date." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "08/16/88 (None);" msgstr "08/16/88 (None);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "08/16/1988 (en_US);" msgstr "08/16/1988 (*en_US*);" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "16.08.1988 (de_DE)" msgstr "16/08/1988 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2396 +#: library/datetime.rst:2395 msgid "``%X``" msgstr "``%X``" -#: ../Doc/library/datetime.rst:2396 +#: library/datetime.rst:2395 msgid "Locale's appropriate time representation." msgstr "Représentation locale de l'heure." -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "21:30:00 (en_US);" msgstr "21:30:00 (*en_US*) ;" -#: ../Doc/library/datetime.rst:0 +#: library/datetime.rst:0 msgid "21:30:00 (de_DE)" msgstr "21:30:00 (*fr_FR*)" -#: ../Doc/library/datetime.rst:2399 +#: library/datetime.rst:2398 msgid "``%%``" msgstr "``%%``" -#: ../Doc/library/datetime.rst:2399 +#: library/datetime.rst:2398 msgid "A literal ``'%'`` character." msgstr "Un caractère ``'%'`` littéral." -#: ../Doc/library/datetime.rst:2399 +#: library/datetime.rst:2398 msgid "%" msgstr "%" -#: ../Doc/library/datetime.rst:2402 +#: library/datetime.rst:2401 msgid "" "Several additional directives not required by the C89 standard are included " "for convenience. These parameters all correspond to ISO 8601 date values." msgstr "" +"Plusieurs directives supplémentaires non requises par la norme C89 sont " +"incluses pour des raisons de commodité. Ces paramètres correspondent tous " +"aux valeurs de date de la norme ISO 8601." -#: ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "``%G``" msgstr "``%G``" -#: ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "" "ISO 8601 year with century representing the year that contains the greater " "part of the ISO week (``%V``)." @@ -3790,27 +3788,27 @@ msgstr "" "Année complète ISO 8601 représentant l'année contenant la plus grande partie " "de la semaine ISO (``%V``)." -#: ../Doc/library/datetime.rst:2408 +#: library/datetime.rst:2407 msgid "\\(8)" msgstr "\\(8)" -#: ../Doc/library/datetime.rst:2413 +#: library/datetime.rst:2412 msgid "``%u``" msgstr "``%u``" -#: ../Doc/library/datetime.rst:2413 +#: library/datetime.rst:2412 msgid "ISO 8601 weekday as a decimal number where 1 is Monday." msgstr "Jour de la semaine ISO 8601 où 1 correspond au lundi." -#: ../Doc/library/datetime.rst:2413 +#: library/datetime.rst:2412 msgid "1, 2, ..., 7" msgstr "1, 2, ..., 7" -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "``%V``" msgstr "``%V``" -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "" "ISO 8601 week as a decimal number with Monday as the first day of the week. " "Week 01 is the week containing Jan 4." @@ -3818,15 +3816,15 @@ msgstr "" "Numéro de la semaine ISO 8601, avec lundi étant le premier jour de la " "semaine. La semaine 01 est la semaine contenant le 4 janvier." -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "01, 02, ..., 53" msgstr "01, 02, ..., 53" -#: ../Doc/library/datetime.rst:2416 +#: library/datetime.rst:2415 msgid "\\(8), \\(9)" msgstr "\\(8), \\(9)" -#: ../Doc/library/datetime.rst:2423 +#: library/datetime.rst:2422 #, fuzzy msgid "" "These may not be available on all platforms when used with the :meth:" @@ -3843,7 +3841,7 @@ msgstr "" "directives d'année et de semaine précédentes. Appeler :meth:`strptime` avec " "des directives ISO 8601 incomplètes ou ambiguës lèvera une :exc:`ValueError`." -#: ../Doc/library/datetime.rst:2428 +#: library/datetime.rst:2427 #, fuzzy msgid "" "The full set of format codes supported varies across platforms, because " @@ -3857,15 +3855,15 @@ msgstr "" "voir un ensemble complet des codes de formatage implémentés par votre " "plateforme, consultez la documentation de :manpage:`strftime(3)`." -#: ../Doc/library/datetime.rst:2433 +#: library/datetime.rst:2432 msgid "``%G``, ``%u`` and ``%V`` were added." msgstr "``%G``, ``%u`` et ``%V`` ont été ajoutés." -#: ../Doc/library/datetime.rst:2437 +#: library/datetime.rst:2436 msgid "Technical Detail" -msgstr "" +msgstr "Détail technique" -#: ../Doc/library/datetime.rst:2439 +#: library/datetime.rst:2438 #, fuzzy msgid "" "Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " @@ -3879,7 +3877,7 @@ msgstr "" "la fonction ``time.strftime(fmt, d.timetuple())`` du module :mod:`time`, " "bien que tous les objets ne comportent pas de méthode :meth:`timetuple`." -#: ../Doc/library/datetime.rst:2443 +#: library/datetime.rst:2442 msgid "" "For the :meth:`datetime.strptime` class method, the default value is " "``1900-01-01T00:00:00.000``: any components not specified in the format " @@ -3889,18 +3887,22 @@ msgstr "" "``1900-01-01T00:00:00.000`` : tous les composants non spécifiés dans la " "chaîne de formatage seront retirés de la valeur par défaut. [#]_" -#: ../Doc/library/datetime.rst:2447 +#: library/datetime.rst:2446 msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::" msgstr "" +"L'utilisation de ``datetime.strptime(date_string, format)`` équivaut à ::" -#: ../Doc/library/datetime.rst:2451 +#: library/datetime.rst:2450 msgid "" "except when the format includes sub-second components or timezone offset " "information, which are supported in ``datetime.strptime`` but are discarded " "by ``time.strptime``." msgstr "" +"sauf lorsque le format inclut des composantes de sous-secondes ou des " +"informations de décalage de fuseau horaire, qui sont prises en charge dans " +"``datetime.strptime`` mais pas par ``time.strptime``." -#: ../Doc/library/datetime.rst:2455 +#: library/datetime.rst:2454 #, fuzzy msgid "" "For :class:`.time` objects, the format codes for year, month, and day should " @@ -3913,7 +3915,7 @@ msgstr "" "possèdent pas de telles valeurs. S'ils sont tout de même utilisés, ``1900`` " "est substitué à l'année, et ``1`` au mois et au jour." -#: ../Doc/library/datetime.rst:2459 +#: library/datetime.rst:2458 #, fuzzy msgid "" "For :class:`date` objects, the format codes for hours, minutes, seconds, and " @@ -3925,7 +3927,7 @@ msgstr "" "les objets :class:`date` ne possèdent pas de telles valeurs. S'ils sont " "tous de même utilisés, ils sont substitués par ``0``." -#: ../Doc/library/datetime.rst:2463 +#: library/datetime.rst:2462 msgid "" "For the same reason, handling of format strings containing Unicode code " "points that can't be represented in the charset of the current locale is " @@ -3940,7 +3942,7 @@ msgstr "" "plateformes ``strftime`` lève une :exc:`UnicodeError` ou renvoie une chaîne " "vide." -#: ../Doc/library/datetime.rst:2472 +#: library/datetime.rst:2471 msgid "" "Because the format depends on the current locale, care should be taken when " "making assumptions about the output value. Field orderings will vary (for " @@ -3959,7 +3961,7 @@ msgstr "" "utilisez :meth:`locale.getlocale` pour déterminer l'encodage de la locale " "courante)." -#: ../Doc/library/datetime.rst:2481 +#: library/datetime.rst:2480 msgid "" "The :meth:`strptime` method can parse years in the full [1, 9999] range, but " "years < 1000 must be zero-filled to 4-digit width." @@ -3968,7 +3970,7 @@ msgstr "" "[1, 9999], mais toutes les années < 1000 doivent être représentées sur " "quatre chiffres." -#: ../Doc/library/datetime.rst:2484 +#: library/datetime.rst:2483 msgid "" "In previous versions, :meth:`strftime` method was restricted to years >= " "1900." @@ -3976,13 +3978,13 @@ msgstr "" "Dans les versions précédentes, la méthode :meth:`strftime` était limitée aux " "années >= 1900." -#: ../Doc/library/datetime.rst:2488 +#: library/datetime.rst:2487 msgid "" "In version 3.2, :meth:`strftime` method was restricted to years >= 1000." msgstr "" "En version 3.2, la méthode :meth:`strftime` était limitée aux années >= 1000." -#: ../Doc/library/datetime.rst:2493 +#: library/datetime.rst:2492 msgid "" "When used with the :meth:`strptime` method, the ``%p`` directive only " "affects the output hour field if the ``%I`` directive is used to parse the " @@ -3992,7 +3994,7 @@ msgstr "" "n'affecte l'heure extraite que si la directive ``%I`` est utilisée pour " "analyser l'heure." -#: ../Doc/library/datetime.rst:2497 +#: library/datetime.rst:2496 msgid "" "Unlike the :mod:`time` module, the :mod:`datetime` module does not support " "leap seconds." @@ -4000,7 +4002,7 @@ msgstr "" "À l'inverse du module :mod:`time`, le module :mod:`datetime` ne gère pas les " "secondes intercalaires." -#: ../Doc/library/datetime.rst:2501 +#: library/datetime.rst:2500 #, fuzzy msgid "" "When used with the :meth:`strptime` method, the ``%f`` directive accepts " @@ -4014,7 +4016,7 @@ msgstr "" "caractères de formatage du standard C (mais implémentée séparément dans les " "objets *datetime*, la rendant ainsi toujours disponible)." -#: ../Doc/library/datetime.rst:2508 +#: library/datetime.rst:2507 msgid "" "For a naive object, the ``%z`` and ``%Z`` format codes are replaced by empty " "strings." @@ -4022,17 +4024,17 @@ msgstr "" "Pour les objets naïfs, les codes de formatage ``%z`` et ``%Z`` sont " "remplacés par des chaînes vides." -#: ../Doc/library/datetime.rst:2511 +#: library/datetime.rst:2510 msgid "For an aware object:" msgstr "Pour un objet avisé :" -#: ../Doc/library/datetime.rst:2514 +#: library/datetime.rst:2513 #, fuzzy msgid "" ":meth:`utcoffset` is transformed into a string of the form ``±HHMM[SS[." "ffffff]]``, where ``HH`` is a 2-digit string giving the number of UTC offset " "hours, ``MM`` is a 2-digit string giving the number of UTC offset minutes, " -"SS is a 2-digit string giving the number of UTC offset seconds and " +"``SS`` is a 2-digit string giving the number of UTC offset seconds and " "``ffffff`` is a 6-digit string giving the number of UTC offset microseconds. " "The ``ffffff`` part is omitted when the offset is a whole number of seconds " "and both the ``ffffff`` and the ``SS`` part is omitted when the offset is a " @@ -4050,7 +4052,7 @@ msgstr "" "``timedelta(hours=-3, minutes=-30)``, ``%z`` est remplacé par la chaîne " "`'-0330'``." -#: ../Doc/library/datetime.rst:2528 +#: library/datetime.rst:2527 msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, the " "UTC offsets can have a colon as a separator between hours, minutes and " @@ -4062,7 +4064,7 @@ msgstr "" "minutes et secondes. Par exemple, ``'+01:00:00'``, est analysé comme un " "décalage d'une heure. Par ailleurs, ``'Z'`` est identique à ``'+00:00'``." -#: ../Doc/library/datetime.rst:2536 +#: library/datetime.rst:2535 #, fuzzy msgid "" "If :meth:`tzname` returns ``None``, ``%Z`` is replaced by an empty string. " @@ -4072,7 +4074,7 @@ msgstr "" "vide. Autrement ``%Z`` est remplacé par la valeur renvoyée, qui doit être " "une chaîne." -#: ../Doc/library/datetime.rst:2540 +#: library/datetime.rst:2539 #, fuzzy msgid "" "When the ``%z`` directive is provided to the :meth:`strptime` method, an " @@ -4083,7 +4085,7 @@ msgstr "" "objet :class:`.datetime` avisé est construit. L'attribut ``tzinfo`` du " "résultat aura pour valeur une instance de :class:`timezone`." -#: ../Doc/library/datetime.rst:2546 +#: library/datetime.rst:2545 msgid "" "When used with the :meth:`strptime` method, ``%U`` and ``%W`` are only used " "in calculations when the day of the week and the calendar year (``%Y``) are " @@ -4093,7 +4095,7 @@ msgstr "" "et ``%W`` ne sont utilisées dans les calculs que si le jour de la semaine et " "l'année calendaire (``%Y``) sont spécifiés." -#: ../Doc/library/datetime.rst:2551 +#: library/datetime.rst:2550 msgid "" "Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " "day of the week and the ISO year (``%G``) are specified in a :meth:" @@ -4102,29 +4104,29 @@ msgid "" msgstr "" "De façon similaire à ``%U`` et ``%W``, ``%v`` n'est utilisé dans les calculs " "que lorsque le jour de la semaine et l'année ISO (``%G``) sont spécifiés " -"dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et ``" -"%Y`` ne sont pas interchangeables." +"dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et " +"``%Y`` ne sont pas interchangeables." -#: ../Doc/library/datetime.rst:2557 +#: library/datetime.rst:2556 msgid "" "When used with the :meth:`strptime` method, the leading zero is optional " "for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, ``%J``, ``%U``, " "``%W``, and ``%V``. Format ``%y`` does require a leading zero." msgstr "" "Quand cette directive est utilisée avec la méthode :meth:`strptime`, le zéro " -"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, ``" -"%M``, ``%S``, ``%J``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert un " -"zéro en entête." +"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, " +"``%M``, ``%S``, ``%J``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert " +"un zéro en entête." -#: ../Doc/library/datetime.rst:2562 +#: library/datetime.rst:2561 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/datetime.rst:2563 +#: library/datetime.rst:2562 msgid "If, that is, we ignore the effects of Relativity" msgstr "Si on ignore les effets de la Relativité" -#: ../Doc/library/datetime.rst:2565 +#: library/datetime.rst:2564 #, fuzzy msgid "" "This matches the definition of the \"proleptic Gregorian\" calendar in " @@ -4142,7 +4144,7 @@ msgstr "" "base de tous les calculs. Référez-vous au livre pour les algorithmes de " "conversion entre calendriers grégorien proleptique et les autres systèmes." -#: ../Doc/library/datetime.rst:2571 +#: library/datetime.rst:2570 #, fuzzy msgid "" "See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " @@ -4153,7 +4155,7 @@ msgstr "" "grégorien. Voir https://www.staff.science.uu.nl/~gent0113/calendar/" "isocalendar.htm pour une bonne explication." -#: ../Doc/library/datetime.rst:2575 +#: library/datetime.rst:2574 msgid "" "Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since ``1900`` is " "not a leap year." @@ -4322,7 +4324,7 @@ msgstr "" #~ "microsecond`` vaut 0, ``HH:MM:SS+HH:MM[:SS[.ffffff]]``." #~ msgid "or ::" -#~ msgstr "ou ::" +#~ msgstr "ou ::" #~ msgid "" #~ "Conversely, the :meth:`datetime.strptime` class method creates a :class:`." diff --git a/library/dbm.po b/library/dbm.po index 522ef52900..dac69e8c04 100644 --- a/library/dbm.po +++ b/library/dbm.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -19,8 +19,9 @@ msgid ":mod:`dbm` --- Interfaces to Unix \"databases\"" msgstr "" #: ../Doc/library/dbm.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/__init__.py`" -msgstr "" +msgstr "**Source code:** :source:`Lib/html/__init__.py`" #: ../Doc/library/dbm.rst:11 msgid "" @@ -175,7 +176,7 @@ msgstr "" #: ../Doc/library/dbm.rst:121 msgid "Module :mod:`shelve`" -msgstr "" +msgstr "Module :mod:`shelve`" #: ../Doc/library/dbm.rst:122 msgid "Persistence module which stores non-string data." @@ -190,8 +191,9 @@ msgid ":mod:`dbm.gnu` --- GNU's reinterpretation of dbm" msgstr "" #: ../Doc/library/dbm.rst:135 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/gnu.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/bdb.py`" #: ../Doc/library/dbm.rst:139 msgid "" @@ -315,8 +317,9 @@ msgid ":mod:`dbm.ndbm` --- Interface based on ndbm" msgstr "" #: ../Doc/library/dbm.rst:247 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/ndbm.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/bdb.py`" #: ../Doc/library/dbm.rst:251 msgid "" @@ -372,8 +375,9 @@ msgid ":mod:`dbm.dumb` --- Portable DBM implementation" msgstr "" #: ../Doc/library/dbm.rst:312 +#, fuzzy msgid "**Source code:** :source:`Lib/dbm/dumb.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/bdb.py`" #: ../Doc/library/dbm.rst:318 msgid "" @@ -411,11 +415,15 @@ msgid "" msgstr "" #: ../Doc/library/dbm.rst:369 +#, fuzzy msgid "" "It is possible to crash the Python interpreter when loading a database with " "a sufficiently large/complex entry due to stack depth limitations in " "Python's AST compiler." msgstr "" +"Il est possible de faire planter l'interpréteur Python avec des chaînes " +"suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " +"la limitation de la profondeur de la pile d'appels." #: ../Doc/library/dbm.rst:373 msgid "" diff --git a/library/debug.po b/library/debug.po index 4491317141..c737c27669 100644 --- a/library/debug.po +++ b/library/debug.po @@ -3,23 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2018-09-28 11:49+0200\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" +"PO-Revision-Date: 2019-10-31 11:32+0100\n" +"Last-Translator: Cléo Buck \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.0.6\n" #: ../Doc/library/debug.rst:3 msgid "Debugging and Profiling" msgstr "Débogueur et instrumentation" #: ../Doc/library/debug.rst:5 -#, fuzzy msgid "" "These libraries help you with Python development: the debugger enables you " "to step through code, analyze stack frames and set breakpoints etc., and the " @@ -32,4 +32,7 @@ msgstr "" "Le débogueur vous permet d'avancer pas à pas dans le code, d'analyser la " "pile d'appel, de placer des points d'arrêts, … Les outils d'instrumentation " "exécutent du code et vous donnent un rapport détaillé du temps d'exécution, " -"vous permettant d'identifier les goulots d'étranglement dans vos programmes." +"vous permettant d'identifier les goulots d'étranglement dans vos programmes. " +"Les événements d'audit fournissent une visibilité sur les comportements " +"d'exécution qui nécessiteraient autrement un débogage ou une correction " +"intrusifs." diff --git a/library/decimal.po b/library/decimal.po index cb1878aedb..60820755fb 100644 --- a/library/decimal.po +++ b/library/decimal.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-03-11 12:59+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-10-07 18:55+0200\n" "Last-Translator: \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/decimal.rst:2 +#: library/decimal.rst:2 msgid ":mod:`decimal` --- Decimal fixed point and floating point arithmetic" msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante" -#: ../Doc/library/decimal.rst:15 +#: library/decimal.rst:15 msgid "**Source code:** :source:`Lib/decimal.py`" msgstr "**Code source :** :source:`Lib/decimal.py`" -#: ../Doc/library/decimal.rst:33 +#: library/decimal.rst:33 msgid "" "The :mod:`decimal` module provides support for fast correctly-rounded " "decimal floating point arithmetic. It offers several advantages over the :" @@ -33,7 +33,7 @@ msgstr "" "rapide et produisant des arrondis mathématiquement corrects. Il possède " "plusieurs avantages en comparaison au type :class:`float` :" -#: ../Doc/library/decimal.rst:37 +#: library/decimal.rst:37 msgid "" "Decimal \"is based on a floating-point model which was designed with people " "in mind, and necessarily has a paramount guiding principle -- computers must " @@ -47,7 +47,7 @@ msgstr "" "apprend à l'école » -- extrait (traduit) de la spécification de " "l'arithmétique décimale." -#: ../Doc/library/decimal.rst:42 +#: library/decimal.rst:42 msgid "" "Decimal numbers can be represented exactly. In contrast, numbers like :" "const:`1.1` and :const:`2.2` do not have exact representations in binary " @@ -61,7 +61,7 @@ msgstr "" "lorsqu'il saisit ``1.1 + 2.2``, ce qui se passe en arithmétique binaire à " "virgule flottante." -#: ../Doc/library/decimal.rst:47 +#: library/decimal.rst:47 msgid "" "The exactness carries over into arithmetic. In decimal floating point, " "``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating " @@ -78,7 +78,7 @@ msgstr "" "s'accumuler. Pour ces raisons ``decimal`` est le module utilisé pour des " "applications comptables ayant des contraintes strictes de fiabilité." -#: ../Doc/library/decimal.rst:54 +#: library/decimal.rst:54 msgid "" "The decimal module incorporates a notion of significant places so that " "``1.30 + 1.20`` is :const:`2.50`. The trailing zero is kept to indicate " @@ -95,7 +95,7 @@ msgstr "" "dans les facteurs. Par exemple, ``1.3 * 1.2`` donnerait :const:`1.56` tandis " "que ``1.30 * 1.20`` donnerait :const:`1.5600`." -#: ../Doc/library/decimal.rst:61 +#: library/decimal.rst:61 msgid "" "Unlike hardware based binary floating point, the decimal module has a user " "alterable precision (defaulting to 28 places) which can be as large as " @@ -106,7 +106,7 @@ msgstr "" "chiffres significatifs) qui peut être aussi élevée que nécessaire pour un " "problème donné :" -#: ../Doc/library/decimal.rst:73 +#: library/decimal.rst:73 msgid "" "Both binary and decimal floating point are implemented in terms of published " "standards. While the built-in float type exposes only a modest portion of " @@ -123,7 +123,7 @@ msgstr "" "possibilité de forcer une arithmétique exacte en utilisant des exceptions " "pour bloquer toute opération inexacte." -#: ../Doc/library/decimal.rst:80 +#: library/decimal.rst:80 msgid "" "The decimal module was designed to support \"without prejudice, both exact " "unrounded decimal arithmetic (sometimes called fixed-point arithmetic) and " @@ -135,7 +135,7 @@ msgstr "" "fixe) et à la fois une arithmétique en virgule flottante. » (extrait traduit " "de la spécification de l'arithmétique décimale)." -#: ../Doc/library/decimal.rst:85 +#: library/decimal.rst:85 msgid "" "The module design is centered around three concepts: the decimal number, " "the context for arithmetic, and signals." @@ -143,7 +143,7 @@ msgstr "" "Le module est conçu autour de trois concepts : le nombre décimal, le " "contexte arithmétique et les signaux." -#: ../Doc/library/decimal.rst:88 +#: library/decimal.rst:88 msgid "" "A decimal number is immutable. It has a sign, coefficient digits, and an " "exponent. To preserve significance, the coefficient digits do not truncate " @@ -157,7 +157,7 @@ msgstr "" "spéciales telles que :const:`Infinity`, :const:`-Infinity`, et :const:`NaN`. " "Le standard fait également la différence entre :const:`-0` et :const:`+0`." -#: ../Doc/library/decimal.rst:94 +#: library/decimal.rst:94 msgid "" "The context for arithmetic is an environment specifying precision, rounding " "rules, limits on exponents, flags indicating the results of operations, and " @@ -174,7 +174,7 @@ msgstr "" "const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :" "const:`ROUND_HALF_UP`, :const:`ROUND_UP`, et :const:`ROUND_05UP`." -#: ../Doc/library/decimal.rst:101 +#: library/decimal.rst:101 msgid "" "Signals are groups of exceptional conditions arising during the course of " "computation. Depending on the needs of the application, signals may be " @@ -192,7 +192,7 @@ msgstr "" "`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` et :" "const:`FloatOperation`." -#: ../Doc/library/decimal.rst:108 +#: library/decimal.rst:108 msgid "" "For each signal there is a flag and a trap enabler. When a signal is " "encountered, its flag is set to one, then, if the trap enabler is set to " @@ -205,7 +205,7 @@ msgstr "" "donc les remettre à zéro avant de commencer un calcul qu'il souhaite " "surveiller." -#: ../Doc/library/decimal.rst:116 +#: library/decimal.rst:116 msgid "" "IBM's General Decimal Arithmetic Specification, `The General Decimal " "Arithmetic Specification `_." @@ -213,11 +213,11 @@ msgstr "" "La spécification d'IBM sur l'arithmétique décimale : `The General Decimal " "Arithmetic Specification `_." -#: ../Doc/library/decimal.rst:125 +#: library/decimal.rst:125 msgid "Quick-start Tutorial" msgstr "Introduction pratique" -#: ../Doc/library/decimal.rst:127 +#: library/decimal.rst:127 msgid "" "The usual start to using decimals is importing the module, viewing the " "current context with :func:`getcontext` and, if necessary, setting new " @@ -227,7 +227,7 @@ msgstr "" "`getcontext`, et si nécessaire configurer la précision, l'arrondi, et la " "gestion des signaux ::" -#: ../Doc/library/decimal.rst:139 +#: library/decimal.rst:139 msgid "" "Decimal instances can be constructed from integers, strings, floats, or " "tuples. Construction from an integer or a float performs an exact conversion " @@ -242,7 +242,7 @@ msgstr "" "const:`NaN` qui signifie en anglais « *Not a number* », en français « pas un " "nombre », des :const:`Infinity` positifs ou négatifs et :const:`-0` ::" -#: ../Doc/library/decimal.rst:163 +#: library/decimal.rst:163 msgid "" "If the :exc:`FloatOperation` signal is trapped, accidental mixing of " "decimals and floats in constructors or ordering comparisons raises an " @@ -252,7 +252,7 @@ msgstr "" "d'objets ``Decimal`` et de ``float`` dans les constructeurs ou des " "opérations de comparaisons, une exception est levée ::" -#: ../Doc/library/decimal.rst:182 +#: library/decimal.rst:182 msgid "" "The significance of a new Decimal is determined solely by the number of " "digits input. Context precision and rounding only come into play during " @@ -262,7 +262,7 @@ msgstr "" "déterminé entièrement par le nombre de chiffres saisis. La précision et les " "règles d'arrondis n'interviennent que lors d'opérations arithmétiques." -#: ../Doc/library/decimal.rst:199 +#: library/decimal.rst:199 msgid "" "If the internal limits of the C version are exceeded, constructing a decimal " "raises :class:`InvalidOperation`::" @@ -270,7 +270,7 @@ msgstr "" "Si les limites internes de la version en C sont dépassées, la construction " "d'un objet décimal lève l'exception :class:`InvalidOperation` ::" -#: ../Doc/library/decimal.rst:209 +#: library/decimal.rst:209 msgid "" "Decimals interact well with much of the rest of Python. Here is a small " "decimal floating point flying circus:" @@ -278,13 +278,13 @@ msgstr "" "Les objets ``Decimal`` interagissent très bien avec le reste de Python. " "Voici quelques exemple d'opérations avec des décimaux :" -#: ../Doc/library/decimal.rst:241 +#: library/decimal.rst:241 msgid "And some mathematical functions are also available to Decimal:" msgstr "" "Et certaines fonctions mathématiques sont également disponibles sur des " "instances de ``Decimal`` :" -#: ../Doc/library/decimal.rst:253 +#: library/decimal.rst:253 msgid "" "The :meth:`quantize` method rounds a number to a fixed exponent. This " "method is useful for monetary applications that often round results to a " @@ -294,7 +294,7 @@ msgstr "" "méthode est utile pour des applications monétaires qui arrondissent souvent " "un résultat à un nombre de chiffres significatifs exact :" -#: ../Doc/library/decimal.rst:262 +#: library/decimal.rst:262 msgid "" "As shown above, the :func:`getcontext` function accesses the current context " "and allows the settings to be changed. This approach meets the needs of " @@ -304,7 +304,7 @@ msgstr "" "actuel et permet de modifier les paramètres. Cette approche répond aux " "besoins de la plupart des applications." -#: ../Doc/library/decimal.rst:266 +#: library/decimal.rst:266 msgid "" "For more advanced work, it may be useful to create alternate contexts using " "the Context() constructor. To make an alternate active, use the :func:" @@ -314,7 +314,7 @@ msgstr "" "alternatifs en utilisant le constructeur de ``Context``. Pour activer cet " "objet ``Context``, utilisez la fonction :func:`setcontext`." -#: ../Doc/library/decimal.rst:270 +#: library/decimal.rst:270 msgid "" "In accordance with the standard, the :mod:`decimal` module provides two " "ready to use standard contexts, :const:`BasicContext` and :const:" @@ -326,7 +326,7 @@ msgstr "" "premier est particulièrement utile pour le débogage car beaucoup des pièges " "sont activés dans cet objet." -#: ../Doc/library/decimal.rst:299 +#: library/decimal.rst:299 msgid "" "Contexts also have signal flags for monitoring exceptional conditions " "encountered during computations. The flags remain set until explicitly " @@ -339,7 +339,7 @@ msgstr "" "zéro ces options avant chaque inspection de chaque calcul, avec la méthode :" "meth:`clear_flags`. ::" -#: ../Doc/library/decimal.rst:312 +#: library/decimal.rst:312 msgid "" "The *flags* entry shows that the rational approximation to :const:`Pi` was " "rounded (digits beyond the context precision were thrown away) and that the " @@ -350,7 +350,7 @@ msgstr "" "Context ont été tronqués) et que le résultat est différent (certains des " "chiffres tronqués étaient différents de zéro)." -#: ../Doc/library/decimal.rst:316 +#: library/decimal.rst:316 msgid "" "Individual traps are set using the dictionary in the :attr:`traps` field of " "a context:" @@ -358,7 +358,7 @@ msgstr "" "L'activation des pièges se fait en utilisant un dictionnaire dans " "l'attribut :attr:`traps` de l'objet Context :" -#: ../Doc/library/decimal.rst:331 +#: library/decimal.rst:331 msgid "" "Most programs adjust the current context only once, at the beginning of the " "program. And, in many applications, data is converted to :class:`Decimal` " @@ -373,15 +373,15 @@ msgstr "" "manipule la donnée de la même manière qu'avec les autres types numériques " "Python." -#: ../Doc/library/decimal.rst:343 +#: library/decimal.rst:343 msgid "Decimal objects" msgstr "Les objets Decimal" -#: ../Doc/library/decimal.rst:348 +#: library/decimal.rst:348 msgid "Construct a new :class:`Decimal` object based from *value*." msgstr "Construire un nouvel objet :class:`Decimal` à partir de *value*." -#: ../Doc/library/decimal.rst:350 +#: library/decimal.rst:350 msgid "" "*value* can be an integer, string, tuple, :class:`float`, or another :class:" "`Decimal` object. If no *value* is given, returns ``Decimal('0')``. If " @@ -395,7 +395,7 @@ msgstr "" "de caractère, elle doit correspondre à la syntaxe décimale en dehors des " "espaces de début et de fin, ou des tirets bas, qui sont enlevés ::" -#: ../Doc/library/decimal.rst:366 +#: library/decimal.rst:366 msgid "" "Other Unicode decimal digits are also permitted where ``digit`` appears " "above. These include decimal digits from various other alphabets (for " @@ -407,7 +407,7 @@ msgstr "" "exemple les chiffres indo-arabes ou Devanagari) ainsi que les chiffres de " "pleine largeur ``'\\uff10'`` jusqu'à ``'\\uff19'``." -#: ../Doc/library/decimal.rst:371 +#: library/decimal.rst:371 msgid "" "If *value* is a :class:`tuple`, it should have three components, a sign (:" "const:`0` for positive or :const:`1` for negative), a :class:`tuple` of " @@ -419,7 +419,7 @@ msgstr "" "et un entier représentant l'exposant. Par exemple, ``Decimal((0, (1, 4, 1, " "4), -3))`` construit l'objet ``Decimal('1.414')``." -#: ../Doc/library/decimal.rst:376 +#: library/decimal.rst:376 msgid "" "If *value* is a :class:`float`, the binary floating point value is " "losslessly converted to its exact decimal equivalent. This conversion can " @@ -433,7 +433,7 @@ msgstr "" "``Decimal(float('1.1'))`` devient " "``Decimal('1.100000000000000088817841970012523233890533447265625')``." -#: ../Doc/library/decimal.rst:382 +#: library/decimal.rst:382 msgid "" "The *context* precision does not affect how many digits are stored. That is " "determined exclusively by the number of digits in *value*. For example, " @@ -445,7 +445,7 @@ msgstr "" "dans *value*. Par exemple, ``Decimal('3.00000')`` enregistre les 5 zéros " "même si la précision du contexte est de 3." -#: ../Doc/library/decimal.rst:387 +#: library/decimal.rst:387 msgid "" "The purpose of the *context* argument is determining what to do if *value* " "is a malformed string. If the context traps :const:`InvalidOperation`, an " @@ -457,18 +457,18 @@ msgstr "" "`InvalidOperation` est activée, une exception est levée, sinon le " "constructeur renvoie un objet ``Decimal`` avec la valeur :const:`NaN`." -#: ../Doc/library/decimal.rst:392 +#: library/decimal.rst:392 msgid "Once constructed, :class:`Decimal` objects are immutable." msgstr "Une fois construit, les objets :class:`Decimal` sont immuables." -#: ../Doc/library/decimal.rst:394 +#: library/decimal.rst:394 msgid "" "The argument to the constructor is now permitted to be a :class:`float` " "instance." msgstr "" "L'argument du constructeur peut désormais être un objet :class:`float`." -#: ../Doc/library/decimal.rst:398 +#: library/decimal.rst:398 msgid "" ":class:`float` arguments raise an exception if the :exc:`FloatOperation` " "trap is set. By default the trap is off." @@ -476,7 +476,7 @@ msgstr "" "Un argument :class:`float` lève une exception si l'option :exc:" "`FloatOperation` est activé. Par défaut l'option ne l'est pas." -#: ../Doc/library/decimal.rst:402 +#: library/decimal.rst:402 msgid "" "Underscores are allowed for grouping, as with integral and floating-point " "literals in code." @@ -484,7 +484,7 @@ msgstr "" "Les tirets bas sont autorisés pour regrouper, tout comme pour l'arithmétique " "en virgule fixe et flottante." -#: ../Doc/library/decimal.rst:406 +#: library/decimal.rst:406 msgid "" "Decimal floating point objects share many properties with the other built-in " "numeric types such as :class:`float` and :class:`int`. All of the usual " @@ -501,7 +501,7 @@ msgstr "" "comparés, classés, et convertis vers un autre type (tel que :class:`float` " "ou :class:`int`)." -#: ../Doc/library/decimal.rst:413 +#: library/decimal.rst:413 msgid "" "There are some small differences between arithmetic on Decimal objects and " "arithmetic on integers and floats. When the remainder operator ``%`` is " @@ -511,9 +511,9 @@ msgstr "" "Il existe quelques différences mineures entre l'arithmétique entre les " "objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand " "l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du " -"résultat est le signe du *dividend* plutôt que le signe du diviseur::" +"résultat est le signe du *dividend* plutôt que le signe du diviseur ::" -#: ../Doc/library/decimal.rst:423 +#: library/decimal.rst:423 msgid "" "The integer division operator ``//`` behaves analogously, returning the " "integer part of the true quotient (truncating towards zero) rather than its " @@ -521,9 +521,9 @@ msgid "" msgstr "" "L'opérateur division entière, ``//`` se comporte de la même manière, " "retournant la partie entière du quotient, plutôt que son arrondi, de manière " -"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y``::" +"à préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::" -#: ../Doc/library/decimal.rst:432 +#: library/decimal.rst:432 msgid "" "The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-" "integer`` operations (respectively) as described in the specification." @@ -531,7 +531,7 @@ msgstr "" "Les opérateurs ``//`` et ``%`` implémentent la division entière et le reste " "(ou modulo), respectivement, tel que décrit dans la spécification." -#: ../Doc/library/decimal.rst:436 +#: library/decimal.rst:436 msgid "" "Decimal objects cannot generally be combined with floats or instances of :" "class:`fractions.Fraction` in arithmetic operations: an attempt to add a :" @@ -549,7 +549,7 @@ msgstr "" "`Decimal` avec les autres types numériques. Cela évite d'avoir des résultats " "absurdes lors des tests d'égalité entre différents types." -#: ../Doc/library/decimal.rst:444 +#: library/decimal.rst:444 msgid "" "Mixed-type comparisons between :class:`Decimal` instances and other numeric " "types are now fully supported." @@ -557,13 +557,13 @@ msgstr "" "Les comparaisons inter-types entre :class:`Decimal` et les autres types " "numériques sont désormais intégralement gérés." -#: ../Doc/library/decimal.rst:448 +#: library/decimal.rst:448 msgid "" "In addition to the standard numeric properties, decimal floating point " "objects also have a number of specialized methods:" msgstr "" -#: ../Doc/library/decimal.rst:454 +#: library/decimal.rst:454 msgid "" "Return the adjusted exponent after shifting out the coefficient's rightmost " "digits until only the lead digit remains: ``Decimal('321e+5').adjusted()`` " @@ -571,14 +571,14 @@ msgid "" "digit with respect to the decimal point." msgstr "" -#: ../Doc/library/decimal.rst:461 +#: library/decimal.rst:461 msgid "" "Return a pair ``(n, d)`` of integers that represent the given :class:" "`Decimal` instance as a fraction, in lowest terms and with a positive " "denominator::" msgstr "" -#: ../Doc/library/decimal.rst:468 +#: library/decimal.rst:468 msgid "" "The conversion is exact. Raise OverflowError on infinities and ValueError " "on NaNs." @@ -586,33 +586,33 @@ msgstr "" "La conversion est exacte. Lève une ``OverflowError`` sur l'infini et " "``ValueError`` sur les ``Nan``'s." -#: ../Doc/library/decimal.rst:475 +#: library/decimal.rst:475 msgid "" "Return a :term:`named tuple` representation of the number: " "``DecimalTuple(sign, digits, exponent)``." msgstr "" -#: ../Doc/library/decimal.rst:481 +#: library/decimal.rst:481 msgid "" "Return the canonical encoding of the argument. Currently, the encoding of " "a :class:`Decimal` instance is always canonical, so this operation returns " "its argument unchanged." msgstr "" -#: ../Doc/library/decimal.rst:487 +#: library/decimal.rst:487 msgid "" "Compare the values of two Decimal instances. :meth:`compare` returns a " "Decimal instance, and if either operand is a NaN then the result is a NaN::" msgstr "" -#: ../Doc/library/decimal.rst:498 +#: library/decimal.rst:498 msgid "" "This operation is identical to the :meth:`compare` method, except that all " "NaNs signal. That is, if neither operand is a signaling NaN then any quiet " "NaN operand is treated as though it were a signaling NaN." msgstr "" -#: ../Doc/library/decimal.rst:504 +#: library/decimal.rst:504 msgid "" "Compare two operands using their abstract representation rather than their " "numerical value. Similar to the :meth:`compare` method, but the result " @@ -621,7 +621,7 @@ msgid "" "unequal in this ordering:" msgstr "" -#: ../Doc/library/decimal.rst:513 +#: library/decimal.rst:513 msgid "" "Quiet and signaling NaNs are also included in the total ordering. The " "result of this function is ``Decimal('0')`` if both operands have the same " @@ -631,15 +631,14 @@ msgid "" "details of the total order." msgstr "" -#: ../Doc/library/decimal.rst:520 ../Doc/library/decimal.rst:531 -#: ../Doc/library/decimal.rst:559 ../Doc/library/decimal.rst:834 +#: library/decimal.rst:531 library/decimal.rst:834 msgid "" "This operation is unaffected by context and is quiet: no flags are changed " "and no rounding is performed. As an exception, the C version may raise " "InvalidOperation if the second operand cannot be converted exactly." msgstr "" -#: ../Doc/library/decimal.rst:526 +#: library/decimal.rst:526 msgid "" "Compare two operands using their abstract representation rather than their " "value as in :meth:`compare_total`, but ignoring the sign of each operand. " @@ -647,42 +646,42 @@ msgid "" "copy_abs())``." msgstr "" -#: ../Doc/library/decimal.rst:537 +#: library/decimal.rst:537 msgid "" "Just returns self, this method is only to comply with the Decimal " "Specification." msgstr "" -#: ../Doc/library/decimal.rst:542 +#: library/decimal.rst:542 msgid "" "Return the absolute value of the argument. This operation is unaffected by " "the context and is quiet: no flags are changed and no rounding is performed." msgstr "" -#: ../Doc/library/decimal.rst:548 +#: library/decimal.rst:548 msgid "" "Return the negation of the argument. This operation is unaffected by the " "context and is quiet: no flags are changed and no rounding is performed." msgstr "" -#: ../Doc/library/decimal.rst:553 +#: library/decimal.rst:553 msgid "" "Return a copy of the first operand with the sign set to be the same as the " "sign of the second operand. For example:" msgstr "" -#: ../Doc/library/decimal.rst:565 +#: library/decimal.rst:565 msgid "" "Return the value of the (natural) exponential function ``e**x`` at the given " "number. The result is correctly rounded using the :const:`ROUND_HALF_EVEN` " "rounding mode." msgstr "" -#: ../Doc/library/decimal.rst:576 +#: library/decimal.rst:576 msgid "Classmethod that converts a float to a decimal number, exactly." msgstr "" -#: ../Doc/library/decimal.rst:578 +#: library/decimal.rst:578 msgid "" "Note `Decimal.from_float(0.1)` is not the same as `Decimal('0.1')`. Since " "0.1 is not exactly representable in binary floating point, the value is " @@ -691,92 +690,113 @@ msgid "" "`0.1000000000000000055511151231257827021181583404541015625`." msgstr "" -#: ../Doc/library/decimal.rst:584 +#: library/decimal.rst:584 msgid "" "From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed " "directly from a :class:`float`." msgstr "" -#: ../Doc/library/decimal.rst:602 +#: library/decimal.rst:602 msgid "" "Fused multiply-add. Return self*other+third with no rounding of the " "intermediate product self*other." msgstr "" -#: ../Doc/library/decimal.rst:610 +#: library/decimal.rst:610 msgid "" "Return :const:`True` if the argument is canonical and :const:`False` " "otherwise. Currently, a :class:`Decimal` instance is always canonical, so " "this operation always returns :const:`True`." msgstr "" +"Renvoie :const:`True` si l'argument est sous forme canonique et :const:" +"`False` sinon. Actuellement, une instance :class:`Decimal` est toujours " +"canonique, donc cette opération renvoie toujours :const:`True`." -#: ../Doc/library/decimal.rst:616 +#: library/decimal.rst:616 msgid "" "Return :const:`True` if the argument is a finite number, and :const:`False` " "if the argument is an infinity or a NaN." msgstr "" +"Renvoie :const:`True` si l'argument est un nombre fini et :const:`False` si " +"l'argument est un infini ou NaN." -#: ../Doc/library/decimal.rst:621 +#: library/decimal.rst:621 msgid "" "Return :const:`True` if the argument is either positive or negative infinity " "and :const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un infini positif ou négatif et :" +"const:`False` sinon." -#: ../Doc/library/decimal.rst:626 +#: library/decimal.rst:626 msgid "" "Return :const:`True` if the argument is a (quiet or signaling) NaN and :" "const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN (signalétique ou silencieux) " +"et :const:`False` sinon." -#: ../Doc/library/decimal.rst:631 +#: library/decimal.rst:631 msgid "" "Return :const:`True` if the argument is a *normal* finite number. Return :" "const:`False` if the argument is zero, subnormal, infinite or a NaN." msgstr "" -#: ../Doc/library/decimal.rst:636 +#: library/decimal.rst:636 msgid "" "Return :const:`True` if the argument is a quiet NaN, and :const:`False` " "otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN silencieux et :const:`False` " +"sinon." -#: ../Doc/library/decimal.rst:641 +#: library/decimal.rst:641 msgid "" "Return :const:`True` if the argument has a negative sign and :const:`False` " "otherwise. Note that zeros and NaNs can both carry signs." msgstr "" +"Renvoie :const:`True` si l'argument est négatif et :const:`False` sinon. " +"Notez que les zéros et les NaNs peuvent être signés." -#: ../Doc/library/decimal.rst:646 +#: library/decimal.rst:646 msgid "" "Return :const:`True` if the argument is a signaling NaN and :const:`False` " "otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un NaN signalétique et :const:" +"`False` sinon." -#: ../Doc/library/decimal.rst:651 +#: library/decimal.rst:651 msgid "" "Return :const:`True` if the argument is subnormal, and :const:`False` " "otherwise." msgstr "" -#: ../Doc/library/decimal.rst:656 +#: library/decimal.rst:656 msgid "" "Return :const:`True` if the argument is a (positive or negative) zero and :" "const:`False` otherwise." msgstr "" +"Renvoie :const:`True` si l'argument est un zéro (positif ou négatif) et :" +"const:`False` sinon." -#: ../Doc/library/decimal.rst:661 +#: library/decimal.rst:661 msgid "" "Return the natural (base e) logarithm of the operand. The result is " "correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" +"Renvoie le logarithme naturel (base e) de l'opérande. Le résultat est " +"arrondi avec le mode :const:`ROUND_HALF_EVEN`." -#: ../Doc/library/decimal.rst:666 +#: library/decimal.rst:666 msgid "" "Return the base ten logarithm of the operand. The result is correctly " "rounded using the :const:`ROUND_HALF_EVEN` rounding mode." msgstr "" +"Renvoie le logarithme en base 10 de l'opérande. Le résultat est arrondi avec " +"le mode :const:`ROUND_HALF_EVEN`." -#: ../Doc/library/decimal.rst:671 +#: library/decimal.rst:671 msgid "" "For a nonzero number, return the adjusted exponent of its operand as a :" "class:`Decimal` instance. If the operand is a zero then ``Decimal('-" @@ -784,74 +804,74 @@ msgid "" "the operand is an infinity then ``Decimal('Infinity')`` is returned." msgstr "" -#: ../Doc/library/decimal.rst:679 +#: library/decimal.rst:679 msgid "" ":meth:`logical_and` is a logical operation which takes two *logical " "operands* (see :ref:`logical_operands_label`). The result is the digit-wise " "``and`` of the two operands." msgstr "" -#: ../Doc/library/decimal.rst:685 +#: library/decimal.rst:685 msgid "" ":meth:`logical_invert` is a logical operation. The result is the digit-wise " "inversion of the operand." msgstr "" -#: ../Doc/library/decimal.rst:690 +#: library/decimal.rst:690 msgid "" ":meth:`logical_or` is a logical operation which takes two *logical operands* " "(see :ref:`logical_operands_label`). The result is the digit-wise ``or`` of " "the two operands." msgstr "" -#: ../Doc/library/decimal.rst:696 +#: library/decimal.rst:696 msgid "" ":meth:`logical_xor` is a logical operation which takes two *logical " "operands* (see :ref:`logical_operands_label`). The result is the digit-wise " "exclusive or of the two operands." msgstr "" -#: ../Doc/library/decimal.rst:702 +#: library/decimal.rst:702 msgid "" "Like ``max(self, other)`` except that the context rounding rule is applied " "before returning and that :const:`NaN` values are either signaled or ignored " "(depending on the context and whether they are signaling or quiet)." msgstr "" -#: ../Doc/library/decimal.rst:709 +#: library/decimal.rst:709 msgid "" "Similar to the :meth:`.max` method, but the comparison is done using the " "absolute values of the operands." msgstr "" -#: ../Doc/library/decimal.rst:714 +#: library/decimal.rst:714 msgid "" "Like ``min(self, other)`` except that the context rounding rule is applied " "before returning and that :const:`NaN` values are either signaled or ignored " "(depending on the context and whether they are signaling or quiet)." msgstr "" -#: ../Doc/library/decimal.rst:721 +#: library/decimal.rst:721 msgid "" "Similar to the :meth:`.min` method, but the comparison is done using the " "absolute values of the operands." msgstr "" -#: ../Doc/library/decimal.rst:726 +#: library/decimal.rst:726 msgid "" "Return the largest number representable in the given context (or in the " "current thread's context if no context is given) that is smaller than the " "given operand." msgstr "" -#: ../Doc/library/decimal.rst:732 +#: library/decimal.rst:732 msgid "" "Return the smallest number representable in the given context (or in the " "current thread's context if no context is given) that is larger than the " "given operand." msgstr "" -#: ../Doc/library/decimal.rst:738 +#: library/decimal.rst:738 msgid "" "If the two operands are unequal, return the number closest to the first " "operand in the direction of the second operand. If both operands are " @@ -859,7 +879,7 @@ msgid "" "be the same as the sign of the second operand." msgstr "" -#: ../Doc/library/decimal.rst:745 +#: library/decimal.rst:745 msgid "" "Normalize the number by stripping the rightmost trailing zeros and " "converting any result equal to :const:`Decimal('0')` to :const:" @@ -869,63 +889,67 @@ msgid "" "``Decimal('32.1')``." msgstr "" -#: ../Doc/library/decimal.rst:754 +#: library/decimal.rst:754 msgid "" "Return a string describing the *class* of the operand. The returned value " "is one of the following ten strings." msgstr "" -#: ../Doc/library/decimal.rst:757 +#: library/decimal.rst:757 msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." -msgstr "" +msgstr "``\"-Infinity\"``, indiquant que l'opérande est l'infini négatif ;" -#: ../Doc/library/decimal.rst:758 +#: library/decimal.rst:758 msgid "" "``\"-Normal\"``, indicating that the operand is a negative normal number." msgstr "" -#: ../Doc/library/decimal.rst:759 +#: library/decimal.rst:759 msgid "" "``\"-Subnormal\"``, indicating that the operand is negative and subnormal." msgstr "" -#: ../Doc/library/decimal.rst:760 +#: library/decimal.rst:760 msgid "``\"-Zero\"``, indicating that the operand is a negative zero." -msgstr "" +msgstr "``\"-Zero\"``, indiquant que l'opérande est un zéro négatif ;" -#: ../Doc/library/decimal.rst:761 +#: library/decimal.rst:761 msgid "``\"+Zero\"``, indicating that the operand is a positive zero." -msgstr "" +msgstr "``\"+Zero\"``, indiquant que l'opérande est un zéro positif ;" -#: ../Doc/library/decimal.rst:762 +#: library/decimal.rst:762 msgid "" "``\"+Subnormal\"``, indicating that the operand is positive and subnormal." msgstr "" -#: ../Doc/library/decimal.rst:763 +#: library/decimal.rst:763 msgid "" "``\"+Normal\"``, indicating that the operand is a positive normal number." msgstr "" -#: ../Doc/library/decimal.rst:764 +#: library/decimal.rst:764 msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." -msgstr "" +msgstr "``\"+Infinity\"``, indiquant que l'opérande est l'infini positif ;" -#: ../Doc/library/decimal.rst:765 +#: library/decimal.rst:765 msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." msgstr "" +"``\"NaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " +"nombre) silencieux ;" -#: ../Doc/library/decimal.rst:766 +#: library/decimal.rst:766 msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." msgstr "" +"``\"sNaN\"``, indiquant que l'opérande est un NaN (*Not a Number*, pas un " +"nombre) signalétique." -#: ../Doc/library/decimal.rst:770 +#: library/decimal.rst:770 msgid "" "Return a value equal to the first operand after rounding and having the " "exponent of the second operand." msgstr "" -#: ../Doc/library/decimal.rst:776 +#: library/decimal.rst:776 msgid "" "Unlike other operations, if the length of the coefficient after the quantize " "operation would be greater than precision, then an :const:`InvalidOperation` " @@ -933,13 +957,13 @@ msgid "" "quantized exponent is always equal to that of the right-hand operand." msgstr "" -#: ../Doc/library/decimal.rst:782 +#: library/decimal.rst:782 msgid "" "Also unlike other operations, quantize never signals Underflow, even if the " "result is subnormal and inexact." msgstr "" -#: ../Doc/library/decimal.rst:785 +#: library/decimal.rst:785 msgid "" "If the exponent of the second operand is larger than that of the first then " "rounding may be necessary. In this case, the rounding mode is determined by " @@ -948,19 +972,19 @@ msgid "" "context is used." msgstr "" -#: ../Doc/library/decimal.rst:791 +#: library/decimal.rst:791 msgid "" "An error is returned whenever the resulting exponent is greater than :attr:" "`Emax` or less than :attr:`Etiny`." msgstr "" -#: ../Doc/library/decimal.rst:796 +#: library/decimal.rst:796 msgid "" "Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class " "does all its arithmetic. Included for compatibility with the specification." msgstr "" -#: ../Doc/library/decimal.rst:802 +#: library/decimal.rst:802 msgid "" "Return the remainder from dividing *self* by *other*. This differs from " "``self % other`` in that the sign of the remainder is chosen so as to " @@ -969,11 +993,11 @@ msgid "" "other``, and if two integers are equally near then the even one is chosen." msgstr "" -#: ../Doc/library/decimal.rst:809 +#: library/decimal.rst:809 msgid "If the result is zero then its sign will be the sign of *self*." msgstr "" -#: ../Doc/library/decimal.rst:820 +#: library/decimal.rst:820 msgid "" "Return the result of rotating the digits of the first operand by an amount " "specified by the second operand. The second operand must be an integer in " @@ -985,20 +1009,20 @@ msgid "" "are unchanged." msgstr "" -#: ../Doc/library/decimal.rst:831 +#: library/decimal.rst:831 msgid "" "Test whether self and other have the same exponent or whether both are :" "const:`NaN`." msgstr "" -#: ../Doc/library/decimal.rst:840 +#: library/decimal.rst:840 msgid "" "Return the first operand with exponent adjusted by the second. Equivalently, " "return the first operand multiplied by ``10**other``. The second operand " "must be an integer." msgstr "" -#: ../Doc/library/decimal.rst:846 +#: library/decimal.rst:846 msgid "" "Return the result of shifting the digits of the first operand by an amount " "specified by the second operand. The second operand must be an integer in " @@ -1009,34 +1033,34 @@ msgid "" "exponent of the first operand are unchanged." msgstr "" -#: ../Doc/library/decimal.rst:856 +#: library/decimal.rst:856 msgid "Return the square root of the argument to full precision." msgstr "" -#: ../Doc/library/decimal.rst:861 ../Doc/library/decimal.rst:1437 +#: library/decimal.rst:1440 msgid "" "Convert to a string, using engineering notation if an exponent is needed." msgstr "" -#: ../Doc/library/decimal.rst:863 ../Doc/library/decimal.rst:1439 +#: library/decimal.rst:1442 msgid "" "Engineering notation has an exponent which is a multiple of 3. This can " "leave up to 3 digits to the left of the decimal place and may require the " "addition of either one or two trailing zeros." msgstr "" -#: ../Doc/library/decimal.rst:867 +#: library/decimal.rst:867 msgid "" "For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." msgstr "" -#: ../Doc/library/decimal.rst:871 +#: library/decimal.rst:871 msgid "" "Identical to the :meth:`to_integral_value` method. The ``to_integral`` name " "has been kept for compatibility with older versions." msgstr "" -#: ../Doc/library/decimal.rst:876 +#: library/decimal.rst:876 msgid "" "Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` " "as appropriate if rounding occurs. The rounding mode is determined by the " @@ -1044,18 +1068,18 @@ msgid "" "parameter is given then the rounding mode of the current context is used." msgstr "" -#: ../Doc/library/decimal.rst:884 +#: library/decimal.rst:884 msgid "" "Round to the nearest integer without signaling :const:`Inexact` or :const:" "`Rounded`. If given, applies *rounding*; otherwise, uses the rounding " "method in either the supplied *context* or the current context." msgstr "" -#: ../Doc/library/decimal.rst:892 +#: library/decimal.rst:892 msgid "Logical operands" msgstr "" -#: ../Doc/library/decimal.rst:894 +#: library/decimal.rst:894 msgid "" "The :meth:`logical_and`, :meth:`logical_invert`, :meth:`logical_or`, and :" "meth:`logical_xor` methods expect their arguments to be *logical operands*. " @@ -1063,38 +1087,38 @@ msgid "" "are both zero, and whose digits are all either :const:`0` or :const:`1`." msgstr "" -#: ../Doc/library/decimal.rst:906 +#: library/decimal.rst:906 msgid "Context objects" msgstr "" -#: ../Doc/library/decimal.rst:908 +#: library/decimal.rst:908 msgid "" "Contexts are environments for arithmetic operations. They govern precision, " "set rules for rounding, determine which signals are treated as exceptions, " "and limit the range for exponents." msgstr "" -#: ../Doc/library/decimal.rst:912 +#: library/decimal.rst:912 msgid "" "Each thread has its own current context which is accessed or changed using " "the :func:`getcontext` and :func:`setcontext` functions:" msgstr "" -#: ../Doc/library/decimal.rst:918 +#: library/decimal.rst:918 msgid "Return the current context for the active thread." msgstr "" -#: ../Doc/library/decimal.rst:923 +#: library/decimal.rst:923 msgid "Set the current context for the active thread to *c*." msgstr "" -#: ../Doc/library/decimal.rst:925 +#: library/decimal.rst:925 msgid "" "You can also use the :keyword:`with` statement and the :func:`localcontext` " "function to temporarily change the active context." msgstr "" -#: ../Doc/library/decimal.rst:930 +#: library/decimal.rst:930 msgid "" "Return a context manager that will set the current context for the active " "thread to a copy of *ctx* on entry to the with-statement and restore the " @@ -1102,20 +1126,20 @@ msgid "" "specified, a copy of the current context is used." msgstr "" -#: ../Doc/library/decimal.rst:935 +#: library/decimal.rst:935 msgid "" "For example, the following code sets the current decimal precision to 42 " "places, performs a calculation, and then automatically restores the previous " "context::" msgstr "" -#: ../Doc/library/decimal.rst:945 +#: library/decimal.rst:945 msgid "" "New contexts can also be created using the :class:`Context` constructor " "described below. In addition, the module provides three pre-made contexts:" msgstr "" -#: ../Doc/library/decimal.rst:951 +#: library/decimal.rst:951 msgid "" "This is a standard context defined by the General Decimal Arithmetic " "Specification. Precision is set to nine. Rounding is set to :const:" @@ -1124,12 +1148,12 @@ msgid "" "`Subnormal`." msgstr "" -#: ../Doc/library/decimal.rst:957 +#: library/decimal.rst:957 msgid "" "Because many of the traps are enabled, this context is useful for debugging." msgstr "" -#: ../Doc/library/decimal.rst:962 +#: library/decimal.rst:962 msgid "" "This is a standard context defined by the General Decimal Arithmetic " "Specification. Precision is set to nine. Rounding is set to :const:" @@ -1137,7 +1161,7 @@ msgid "" "exceptions are not raised during computations)." msgstr "" -#: ../Doc/library/decimal.rst:967 +#: library/decimal.rst:967 msgid "" "Because the traps are disabled, this context is useful for applications that " "prefer to have result value of :const:`NaN` or :const:`Infinity` instead of " @@ -1145,7 +1169,7 @@ msgid "" "presence of conditions that would otherwise halt the program." msgstr "" -#: ../Doc/library/decimal.rst:975 +#: library/decimal.rst:975 msgid "" "This context is used by the :class:`Context` constructor as a prototype for " "new contexts. Changing a field (such a precision) has the effect of " @@ -1153,7 +1177,7 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/decimal.rst:979 +#: library/decimal.rst:979 msgid "" "This context is most useful in multi-threaded environments. Changing one of " "the fields before threads are started has the effect of setting system-wide " @@ -1161,65 +1185,65 @@ msgid "" "as it would require thread synchronization to prevent race conditions." msgstr "" -#: ../Doc/library/decimal.rst:984 +#: library/decimal.rst:984 msgid "" "In single threaded environments, it is preferable to not use this context at " "all. Instead, simply create contexts explicitly as described below." msgstr "" -#: ../Doc/library/decimal.rst:987 +#: library/decimal.rst:987 msgid "" -"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ =" -"\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :class:" -"`InvalidOperation`, and :class:`DivisionByZero`." +"The default values are :attr:`prec`\\ =\\ :const:`28`, :attr:`rounding`\\ " +"=\\ :const:`ROUND_HALF_EVEN`, and enabled traps for :class:`Overflow`, :" +"class:`InvalidOperation`, and :class:`DivisionByZero`." msgstr "" -#: ../Doc/library/decimal.rst:992 +#: library/decimal.rst:992 msgid "" "In addition to the three supplied contexts, new contexts can be created with " "the :class:`Context` constructor." msgstr "" -#: ../Doc/library/decimal.rst:998 +#: library/decimal.rst:998 msgid "" "Creates a new context. If a field is not specified or is :const:`None`, the " "default values are copied from the :const:`DefaultContext`. If the *flags* " "field is not specified or is :const:`None`, all flags are cleared." msgstr "" -#: ../Doc/library/decimal.rst:1002 +#: library/decimal.rst:1002 msgid "" "*prec* is an integer in the range [:const:`1`, :const:`MAX_PREC`] that sets " "the precision for arithmetic operations in the context." msgstr "" -#: ../Doc/library/decimal.rst:1005 +#: library/decimal.rst:1005 msgid "" "The *rounding* option is one of the constants listed in the section " "`Rounding Modes`_." msgstr "" -#: ../Doc/library/decimal.rst:1008 +#: library/decimal.rst:1008 msgid "" "The *traps* and *flags* fields list any signals to be set. Generally, new " "contexts should only set traps and leave the flags clear." msgstr "" -#: ../Doc/library/decimal.rst:1011 +#: library/decimal.rst:1011 msgid "" "The *Emin* and *Emax* fields are integers specifying the outer limits " "allowable for exponents. *Emin* must be in the range [:const:`MIN_EMIN`, :" "const:`0`], *Emax* in the range [:const:`0`, :const:`MAX_EMAX`]." msgstr "" -#: ../Doc/library/decimal.rst:1015 +#: library/decimal.rst:1015 msgid "" "The *capitals* field is either :const:`0` or :const:`1` (the default). If " "set to :const:`1`, exponents are printed with a capital :const:`E`; " "otherwise, a lowercase :const:`e` is used: :const:`Decimal('6.02e+23')`." msgstr "" -#: ../Doc/library/decimal.rst:1019 +#: library/decimal.rst:1019 msgid "" "The *clamp* field is either :const:`0` (the default) or :const:`1`. If set " "to :const:`1`, the exponent ``e`` of a :class:`Decimal` instance " @@ -1233,13 +1257,13 @@ msgid "" "significant trailing zeros. For example::" msgstr "" -#: ../Doc/library/decimal.rst:1034 +#: library/decimal.rst:1034 msgid "" "A *clamp* value of :const:`1` allows compatibility with the fixed-width " "decimal interchange formats specified in IEEE 754." msgstr "" -#: ../Doc/library/decimal.rst:1037 +#: library/decimal.rst:1037 msgid "" "The :class:`Context` class defines several general purpose methods as well " "as a large number of methods for doing arithmetic directly in a given " @@ -1252,30 +1276,30 @@ msgid "" "a Decimal instance is accepted." msgstr "" -#: ../Doc/library/decimal.rst:1050 +#: library/decimal.rst:1050 msgid "Resets all of the flags to :const:`0`." msgstr "" -#: ../Doc/library/decimal.rst:1054 +#: library/decimal.rst:1054 msgid "Resets all of the traps to :const:`0`." msgstr "" -#: ../Doc/library/decimal.rst:1060 +#: library/decimal.rst:1060 msgid "Return a duplicate of the context." msgstr "" -#: ../Doc/library/decimal.rst:1064 +#: library/decimal.rst:1064 msgid "Return a copy of the Decimal instance num." msgstr "" -#: ../Doc/library/decimal.rst:1068 +#: library/decimal.rst:1068 msgid "" "Creates a new Decimal instance from *num* but using *self* as context. " "Unlike the :class:`Decimal` constructor, the context precision, rounding " "method, flags, and traps are applied to the conversion." msgstr "" -#: ../Doc/library/decimal.rst:1072 +#: library/decimal.rst:1072 msgid "" "This is useful because constants are often given to a greater precision than " "is needed by the application. Another benefit is that rounding immediately " @@ -1284,14 +1308,14 @@ msgid "" "sum can change the result:" msgstr "" -#: ../Doc/library/decimal.rst:1086 +#: library/decimal.rst:1086 msgid "" "This method implements the to-number operation of the IBM specification. If " "the argument is a string, no leading or trailing whitespace or underscores " "are permitted." msgstr "" -#: ../Doc/library/decimal.rst:1092 +#: library/decimal.rst:1092 msgid "" "Creates a new Decimal instance from a float *f* but rounding using *self* as " "the context. Unlike the :meth:`Decimal.from_float` class method, the " @@ -1299,18 +1323,18 @@ msgid "" "conversion." msgstr "" -#: ../Doc/library/decimal.rst:1112 +#: library/decimal.rst:1112 msgid "" "Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " "value for subnormal results. When underflow occurs, the exponent is set to :" "const:`Etiny`." msgstr "" -#: ../Doc/library/decimal.rst:1118 +#: library/decimal.rst:1118 msgid "Returns a value equal to ``Emax - prec + 1``." msgstr "" -#: ../Doc/library/decimal.rst:1120 +#: library/decimal.rst:1120 msgid "" "The usual approach to working with decimals is to create :class:`Decimal` " "instances and then apply arithmetic operations which take place within the " @@ -1320,189 +1344,191 @@ msgid "" "recounted here." msgstr "" -#: ../Doc/library/decimal.rst:1130 +#: library/decimal.rst:1130 msgid "Returns the absolute value of *x*." msgstr "Renvoie la valeur absolue de *x*." -#: ../Doc/library/decimal.rst:1135 +#: library/decimal.rst:1135 msgid "Return the sum of *x* and *y*." -msgstr "" +msgstr "Renvoie la somme de *x* et *y*." -#: ../Doc/library/decimal.rst:1140 +#: library/decimal.rst:1140 msgid "Returns the same Decimal object *x*." msgstr "" -#: ../Doc/library/decimal.rst:1145 +#: library/decimal.rst:1145 msgid "Compares *x* and *y* numerically." msgstr "" -#: ../Doc/library/decimal.rst:1150 +#: library/decimal.rst:1150 msgid "Compares the values of the two operands numerically." msgstr "" -#: ../Doc/library/decimal.rst:1155 +#: library/decimal.rst:1155 msgid "Compares two operands using their abstract representation." msgstr "" -#: ../Doc/library/decimal.rst:1160 +#: library/decimal.rst:1160 msgid "" "Compares two operands using their abstract representation, ignoring sign." msgstr "" -#: ../Doc/library/decimal.rst:1165 +#: library/decimal.rst:1165 msgid "Returns a copy of *x* with the sign set to 0." msgstr "" -#: ../Doc/library/decimal.rst:1170 +#: library/decimal.rst:1170 msgid "Returns a copy of *x* with the sign inverted." -msgstr "" +msgstr "Renvoie une copie de *x* mais de signe opposé." -#: ../Doc/library/decimal.rst:1175 +#: library/decimal.rst:1175 msgid "Copies the sign from *y* to *x*." -msgstr "" +msgstr "Copie le signe de *y* vers *x*." -#: ../Doc/library/decimal.rst:1180 +#: library/decimal.rst:1180 msgid "Return *x* divided by *y*." -msgstr "" +msgstr "Renvoie *x* divisé par *y*." -#: ../Doc/library/decimal.rst:1185 +#: library/decimal.rst:1185 msgid "Return *x* divided by *y*, truncated to an integer." -msgstr "" +msgstr "Renvoie *x* divisé par *y*, tronqué comme entier." -#: ../Doc/library/decimal.rst:1190 +#: library/decimal.rst:1190 msgid "Divides two numbers and returns the integer part of the result." -msgstr "" +msgstr "Renvoie la partie entière de la division entre deux nombres." -#: ../Doc/library/decimal.rst:1195 +#: library/decimal.rst:1195 msgid "Returns `e ** x`." msgstr "" -#: ../Doc/library/decimal.rst:1200 +#: library/decimal.rst:1200 msgid "Returns *x* multiplied by *y*, plus *z*." -msgstr "" +msgstr "Renvoie *x* multiplié par *y*, plus *z*." -#: ../Doc/library/decimal.rst:1205 +#: library/decimal.rst:1205 msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1210 +#: library/decimal.rst:1210 msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1215 +#: library/decimal.rst:1215 msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est infini et ``False`` sinon." -#: ../Doc/library/decimal.rst:1220 +#: library/decimal.rst:1220 msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." msgstr "" +"Renvoie ``True`` si *x* est un NaN (silencieux ou signalétique) et ``False`` " +"sinon." -#: ../Doc/library/decimal.rst:1225 +#: library/decimal.rst:1225 msgid "" "Returns ``True`` if *x* is a normal number; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1230 +#: library/decimal.rst:1230 msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un NaN silencieux et ``False`` sinon." -#: ../Doc/library/decimal.rst:1235 +#: library/decimal.rst:1235 msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est négatif et ``False`` sinon." -#: ../Doc/library/decimal.rst:1240 +#: library/decimal.rst:1240 msgid "" "Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un NaN signalétique et ``False`` sinon." -#: ../Doc/library/decimal.rst:1245 +#: library/decimal.rst:1245 msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." msgstr "" -#: ../Doc/library/decimal.rst:1250 +#: library/decimal.rst:1250 msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." -msgstr "" +msgstr "Renvoie ``True`` si *x* est un zéro et ``False`` sinon." -#: ../Doc/library/decimal.rst:1255 +#: library/decimal.rst:1255 msgid "Returns the natural (base e) logarithm of *x*." -msgstr "" +msgstr "Renvoie le logarithme naturel (en base e) de *x*." -#: ../Doc/library/decimal.rst:1260 +#: library/decimal.rst:1260 msgid "Returns the base 10 logarithm of *x*." -msgstr "" +msgstr "Renvoie le logarithme en base 10 de *x*." -#: ../Doc/library/decimal.rst:1265 +#: library/decimal.rst:1265 msgid "Returns the exponent of the magnitude of the operand's MSD." msgstr "" -#: ../Doc/library/decimal.rst:1270 +#: library/decimal.rst:1270 msgid "Applies the logical operation *and* between each operand's digits." msgstr "" -#: ../Doc/library/decimal.rst:1275 +#: library/decimal.rst:1275 msgid "Invert all the digits in *x*." msgstr "" -#: ../Doc/library/decimal.rst:1280 +#: library/decimal.rst:1280 msgid "Applies the logical operation *or* between each operand's digits." msgstr "" -#: ../Doc/library/decimal.rst:1285 +#: library/decimal.rst:1285 msgid "Applies the logical operation *xor* between each operand's digits." msgstr "" -#: ../Doc/library/decimal.rst:1290 +#: library/decimal.rst:1290 msgid "Compares two values numerically and returns the maximum." -msgstr "" +msgstr "Renvoie le maximum entre les deux valeurs numériques." -#: ../Doc/library/decimal.rst:1295 ../Doc/library/decimal.rst:1305 +#: library/decimal.rst:1305 msgid "Compares the values numerically with their sign ignored." msgstr "" -#: ../Doc/library/decimal.rst:1300 +#: library/decimal.rst:1300 msgid "Compares two values numerically and returns the minimum." msgstr "" -#: ../Doc/library/decimal.rst:1310 +#: library/decimal.rst:1310 msgid "Minus corresponds to the unary prefix minus operator in Python." msgstr "" -#: ../Doc/library/decimal.rst:1315 +#: library/decimal.rst:1315 msgid "Return the product of *x* and *y*." -msgstr "" +msgstr "Renvoie la multiplication de *x* avec *y*." -#: ../Doc/library/decimal.rst:1320 +#: library/decimal.rst:1320 msgid "Returns the largest representable number smaller than *x*." msgstr "" -#: ../Doc/library/decimal.rst:1325 +#: library/decimal.rst:1325 msgid "Returns the smallest representable number larger than *x*." msgstr "" -#: ../Doc/library/decimal.rst:1330 +#: library/decimal.rst:1330 msgid "Returns the number closest to *x*, in direction towards *y*." msgstr "" -#: ../Doc/library/decimal.rst:1335 +#: library/decimal.rst:1335 msgid "Reduces *x* to its simplest form." -msgstr "" +msgstr "Réduit *x* à sa forme la plus simple." -#: ../Doc/library/decimal.rst:1340 +#: library/decimal.rst:1340 msgid "Returns an indication of the class of *x*." msgstr "" -#: ../Doc/library/decimal.rst:1345 +#: library/decimal.rst:1345 msgid "" "Plus corresponds to the unary prefix plus operator in Python. This " "operation applies the context precision and rounding, so it is *not* an " "identity operation." msgstr "" -#: ../Doc/library/decimal.rst:1352 +#: library/decimal.rst:1352 msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." msgstr "" -#: ../Doc/library/decimal.rst:1354 +#: library/decimal.rst:1354 msgid "" "With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " "be integral. The result will be inexact unless ``y`` is integral and the " @@ -1511,36 +1537,42 @@ msgid "" "in the Python version." msgstr "" -#: ../Doc/library/decimal.rst:1360 +#: library/decimal.rst:1360 +msgid "" +"``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " +"``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." +msgstr "" + +#: library/decimal.rst:1363 msgid "" "The C module computes :meth:`power` in terms of the correctly-rounded :meth:" "`exp` and :meth:`ln` functions. The result is well-defined but only \"almost " "always correctly-rounded\"." msgstr "" -#: ../Doc/library/decimal.rst:1365 +#: library/decimal.rst:1368 msgid "" "With three arguments, compute ``(x**y) % modulo``. For the three argument " "form, the following restrictions on the arguments hold:" msgstr "" -#: ../Doc/library/decimal.rst:1368 +#: library/decimal.rst:1371 msgid "all three arguments must be integral" msgstr "" -#: ../Doc/library/decimal.rst:1369 +#: library/decimal.rst:1372 msgid "``y`` must be nonnegative" -msgstr "" +msgstr "``y`` ne doit pas être négatif ;" -#: ../Doc/library/decimal.rst:1370 +#: library/decimal.rst:1373 msgid "at least one of ``x`` or ``y`` must be nonzero" -msgstr "" +msgstr "au moins l'un de ``x`` ou ``y`` doit être différent de zéro ;" -#: ../Doc/library/decimal.rst:1371 +#: library/decimal.rst:1374 msgid "``modulo`` must be nonzero and have at most 'precision' digits" msgstr "" -#: ../Doc/library/decimal.rst:1373 +#: library/decimal.rst:1376 msgid "" "The value resulting from ``Context.power(x, y, modulo)`` is equal to the " "value that would be obtained by computing ``(x**y) % modulo`` with unbounded " @@ -1549,160 +1581,175 @@ msgid "" "result is always exact." msgstr "" -#: ../Doc/library/decimal.rst:1383 +#: library/decimal.rst:1386 msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." msgstr "" -#: ../Doc/library/decimal.rst:1388 +#: library/decimal.rst:1391 msgid "Just returns 10, as this is Decimal, :)" -msgstr "" +msgstr "Renvoie 10 car c'est Decimal, :)" -#: ../Doc/library/decimal.rst:1393 +#: library/decimal.rst:1396 msgid "Returns the remainder from integer division." -msgstr "" +msgstr "Donne le reste de la division entière." -#: ../Doc/library/decimal.rst:1395 +#: library/decimal.rst:1398 msgid "" "The sign of the result, if non-zero, is the same as that of the original " "dividend." msgstr "" -#: ../Doc/library/decimal.rst:1401 +#: library/decimal.rst:1404 msgid "" "Returns ``x - y * n``, where *n* is the integer nearest the exact value of " "``x / y`` (if the result is 0 then its sign will be the sign of *x*)." msgstr "" -#: ../Doc/library/decimal.rst:1407 +#: library/decimal.rst:1410 msgid "Returns a rotated copy of *x*, *y* times." msgstr "" -#: ../Doc/library/decimal.rst:1412 +#: library/decimal.rst:1415 msgid "Returns ``True`` if the two operands have the same exponent." -msgstr "" +msgstr "Renvoie ``True`` si les deux opérandes ont le même exposant." -#: ../Doc/library/decimal.rst:1417 +#: library/decimal.rst:1420 msgid "Returns the first operand after adding the second value its exp." msgstr "" -#: ../Doc/library/decimal.rst:1422 +#: library/decimal.rst:1425 msgid "Returns a shifted copy of *x*, *y* times." msgstr "" -#: ../Doc/library/decimal.rst:1427 +#: library/decimal.rst:1430 msgid "Square root of a non-negative number to context precision." msgstr "" -#: ../Doc/library/decimal.rst:1432 +#: library/decimal.rst:1435 msgid "Return the difference between *x* and *y*." msgstr "" -#: ../Doc/library/decimal.rst:1446 +#: library/decimal.rst:1449 msgid "Rounds to an integer." msgstr "" -#: ../Doc/library/decimal.rst:1451 +#: library/decimal.rst:1454 msgid "Converts a number to a string using scientific notation." msgstr "" -#: ../Doc/library/decimal.rst:1458 +#: library/decimal.rst:1461 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/decimal.rst:1460 +#: library/decimal.rst:1463 msgid "" "The constants in this section are only relevant for the C module. They are " "also included in the pure Python version for compatibility." msgstr "" +"Les constantes de cette section ne sont pertinentes que pour le module C. " +"Elles sont aussi incluses pour le compatibilité dans la version en Python " +"pur." -#: ../Doc/library/decimal.rst:1464 +#: library/decimal.rst:1467 msgid "32-bit" msgstr "32-bit" -#: ../Doc/library/decimal.rst:1464 +#: library/decimal.rst:1467 msgid "64-bit" msgstr "64-bit" -#: ../Doc/library/decimal.rst:1466 ../Doc/library/decimal.rst:1468 +#: library/decimal.rst:1471 msgid ":const:`425000000`" msgstr ":const:`425000000`" -#: ../Doc/library/decimal.rst:1466 ../Doc/library/decimal.rst:1468 +#: library/decimal.rst:1471 msgid ":const:`999999999999999999`" msgstr ":const:`999999999999999999`" -#: ../Doc/library/decimal.rst:1470 +#: library/decimal.rst:1473 msgid ":const:`-425000000`" msgstr ":const:`-425000000`" -#: ../Doc/library/decimal.rst:1470 +#: library/decimal.rst:1473 msgid ":const:`-999999999999999999`" msgstr ":const:`-999999999999999999`" -#: ../Doc/library/decimal.rst:1472 +#: library/decimal.rst:1475 msgid ":const:`-849999999`" msgstr ":const:`-849999999`" -#: ../Doc/library/decimal.rst:1472 +#: library/decimal.rst:1475 msgid ":const:`-1999999999999999997`" msgstr ":const:`-1999999999999999997`" -#: ../Doc/library/decimal.rst:1478 +#: library/decimal.rst:1481 msgid "" -"The default value is ``True``. If Python is compiled without threads, the C " -"version automatically disables the expensive thread local context machinery. " -"In this case, the value is ``False``." +"The value is ``True``. Deprecated, because Python now always has threads." msgstr "" +"La valeur est ``True``. Déprécié, parce que maintenant Python possède " +"toujours des fils d'exécution." -#: ../Doc/library/decimal.rst:1483 -msgid "Rounding modes" +#: library/decimal.rst:1487 +msgid "" +"The default value is ``True``. If Python is compiled ``--without-decimal-" +"contextvar``, the C version uses a thread-local rather than a coroutine-" +"local context and the value is ``False``. This is slightly faster in some " +"nested context scenarios." +msgstr "" + +#: library/decimal.rst:1491 +msgid "backported to 3.7 and 3.8" msgstr "" -#: ../Doc/library/decimal.rst:1487 +#: library/decimal.rst:1495 +msgid "Rounding modes" +msgstr "Modes d'arrondi" + +#: library/decimal.rst:1499 msgid "Round towards :const:`Infinity`." msgstr "" -#: ../Doc/library/decimal.rst:1491 +#: library/decimal.rst:1503 msgid "Round towards zero." msgstr "" -#: ../Doc/library/decimal.rst:1495 +#: library/decimal.rst:1507 msgid "Round towards :const:`-Infinity`." msgstr "" -#: ../Doc/library/decimal.rst:1499 +#: library/decimal.rst:1511 msgid "Round to nearest with ties going towards zero." msgstr "" -#: ../Doc/library/decimal.rst:1503 +#: library/decimal.rst:1515 msgid "Round to nearest with ties going to nearest even integer." msgstr "" -#: ../Doc/library/decimal.rst:1507 +#: library/decimal.rst:1519 msgid "Round to nearest with ties going away from zero." msgstr "" -#: ../Doc/library/decimal.rst:1511 +#: library/decimal.rst:1523 msgid "Round away from zero." msgstr "" -#: ../Doc/library/decimal.rst:1515 +#: library/decimal.rst:1527 msgid "" "Round away from zero if last digit after rounding towards zero would have " "been 0 or 5; otherwise round towards zero." msgstr "" -#: ../Doc/library/decimal.rst:1522 +#: library/decimal.rst:1534 msgid "Signals" -msgstr "" +msgstr "Signaux" -#: ../Doc/library/decimal.rst:1524 +#: library/decimal.rst:1536 msgid "" "Signals represent conditions that arise during computation. Each corresponds " "to one context flag and one context trap enabler." msgstr "" -#: ../Doc/library/decimal.rst:1527 +#: library/decimal.rst:1539 msgid "" "The context flag is set whenever the condition is encountered. After the " "computation, flags may be checked for informational purposes (for instance, " @@ -1710,7 +1757,7 @@ msgid "" "sure to clear all flags before starting the next computation." msgstr "" -#: ../Doc/library/decimal.rst:1532 +#: library/decimal.rst:1544 msgid "" "If the context's trap enabler is set for the signal, then the condition " "causes a Python exception to be raised. For example, if the :class:" @@ -1718,26 +1765,26 @@ msgid "" "raised upon encountering the condition." msgstr "" -#: ../Doc/library/decimal.rst:1540 +#: library/decimal.rst:1552 msgid "Altered an exponent to fit representation constraints." msgstr "" -#: ../Doc/library/decimal.rst:1542 +#: library/decimal.rst:1554 msgid "" "Typically, clamping occurs when an exponent falls outside the context's :" "attr:`Emin` and :attr:`Emax` limits. If possible, the exponent is reduced " "to fit by adding zeros to the coefficient." msgstr "" -#: ../Doc/library/decimal.rst:1549 +#: library/decimal.rst:1561 msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." msgstr "" -#: ../Doc/library/decimal.rst:1554 +#: library/decimal.rst:1566 msgid "Signals the division of a non-infinite number by zero." msgstr "" -#: ../Doc/library/decimal.rst:1556 +#: library/decimal.rst:1568 msgid "" "Can occur with division, modulo division, or when raising a number to a " "negative power. If this signal is not trapped, returns :const:`Infinity` " @@ -1745,32 +1792,32 @@ msgid "" "calculation." msgstr "" -#: ../Doc/library/decimal.rst:1563 +#: library/decimal.rst:1575 msgid "Indicates that rounding occurred and the result is not exact." msgstr "" -#: ../Doc/library/decimal.rst:1565 +#: library/decimal.rst:1577 msgid "" "Signals when non-zero digits were discarded during rounding. The rounded " "result is returned. The signal flag or trap is used to detect when results " "are inexact." msgstr "" -#: ../Doc/library/decimal.rst:1572 +#: library/decimal.rst:1584 msgid "An invalid operation was performed." msgstr "" -#: ../Doc/library/decimal.rst:1574 +#: library/decimal.rst:1586 msgid "" "Indicates that an operation was requested that does not make sense. If not " "trapped, returns :const:`NaN`. Possible causes include::" msgstr "" -#: ../Doc/library/decimal.rst:1590 +#: library/decimal.rst:1602 msgid "Numerical overflow." -msgstr "" +msgstr "Débordement numérique." -#: ../Doc/library/decimal.rst:1592 +#: library/decimal.rst:1604 msgid "" "Indicates the exponent is larger than :attr:`Emax` after rounding has " "occurred. If not trapped, the result depends on the rounding mode, either " @@ -1779,11 +1826,11 @@ msgid "" "`Rounded` are also signaled." msgstr "" -#: ../Doc/library/decimal.rst:1601 +#: library/decimal.rst:1613 msgid "Rounding occurred though possibly no information was lost." msgstr "" -#: ../Doc/library/decimal.rst:1603 +#: library/decimal.rst:1615 msgid "" "Signaled whenever rounding discards digits; even if those digits are zero " "(such as rounding :const:`5.00` to :const:`5.0`). If not trapped, returns " @@ -1791,31 +1838,31 @@ msgid "" "digits." msgstr "" -#: ../Doc/library/decimal.rst:1611 +#: library/decimal.rst:1623 msgid "Exponent was lower than :attr:`Emin` prior to rounding." msgstr "" -#: ../Doc/library/decimal.rst:1613 +#: library/decimal.rst:1625 msgid "" "Occurs when an operation result is subnormal (the exponent is too small). If " "not trapped, returns the result unchanged." msgstr "" -#: ../Doc/library/decimal.rst:1619 +#: library/decimal.rst:1631 msgid "Numerical underflow with result rounded to zero." msgstr "" -#: ../Doc/library/decimal.rst:1621 +#: library/decimal.rst:1633 msgid "" "Occurs when a subnormal result is pushed to zero by rounding. :class:" "`Inexact` and :class:`Subnormal` are also signaled." msgstr "" -#: ../Doc/library/decimal.rst:1627 +#: library/decimal.rst:1639 msgid "Enable stricter semantics for mixing floats and Decimals." msgstr "" -#: ../Doc/library/decimal.rst:1629 +#: library/decimal.rst:1641 msgid "" "If the signal is not trapped (default), mixing floats and Decimals is " "permitted in the :class:`~decimal.Decimal` constructor, :meth:`~decimal." @@ -1826,26 +1873,26 @@ msgid "" "Context.create_decimal_from_float` do not set the flag." msgstr "" -#: ../Doc/library/decimal.rst:1637 +#: library/decimal.rst:1649 msgid "" "Otherwise (the signal is trapped), only equality comparisons and explicit " "conversions are silent. All other mixed operations raise :exc:" "`FloatOperation`." msgstr "" -#: ../Doc/library/decimal.rst:1641 +#: library/decimal.rst:1653 msgid "The following table summarizes the hierarchy of signals::" msgstr "" -#: ../Doc/library/decimal.rst:1662 +#: library/decimal.rst:1674 msgid "Floating Point Notes" msgstr "" -#: ../Doc/library/decimal.rst:1666 +#: library/decimal.rst:1678 msgid "Mitigating round-off error with increased precision" msgstr "" -#: ../Doc/library/decimal.rst:1668 +#: library/decimal.rst:1680 msgid "" "The use of decimal floating point eliminates decimal representation error " "(making it possible to represent :const:`0.1` exactly); however, some " @@ -1853,7 +1900,7 @@ msgid "" "fixed precision." msgstr "" -#: ../Doc/library/decimal.rst:1672 +#: library/decimal.rst:1684 msgid "" "The effects of round-off error can be amplified by the addition or " "subtraction of nearly offsetting quantities resulting in loss of " @@ -1862,24 +1909,24 @@ msgid "" "of the associative and distributive properties of addition:" msgstr "" -#: ../Doc/library/decimal.rst:1696 +#: library/decimal.rst:1708 msgid "" "The :mod:`decimal` module makes it possible to restore the identities by " "expanding the precision sufficiently to avoid loss of significance:" msgstr "" -#: ../Doc/library/decimal.rst:1716 +#: library/decimal.rst:1728 msgid "Special values" msgstr "" -#: ../Doc/library/decimal.rst:1718 +#: library/decimal.rst:1730 msgid "" "The number system for the :mod:`decimal` module provides special values " "including :const:`NaN`, :const:`sNaN`, :const:`-Infinity`, :const:" "`Infinity`, and two zeros, :const:`+0` and :const:`-0`." msgstr "" -#: ../Doc/library/decimal.rst:1722 +#: library/decimal.rst:1734 msgid "" "Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " "they can arise from dividing by zero when the :exc:`DivisionByZero` signal " @@ -1888,14 +1935,14 @@ msgid "" "representable number." msgstr "" -#: ../Doc/library/decimal.rst:1727 +#: library/decimal.rst:1739 msgid "" "The infinities are signed (affine) and can be used in arithmetic operations " "where they get treated as very large, indeterminate numbers. For instance, " "adding a constant to infinity gives another infinite result." msgstr "" -#: ../Doc/library/decimal.rst:1731 +#: library/decimal.rst:1743 msgid "" "Some operations are indeterminate and return :const:`NaN`, or if the :exc:" "`InvalidOperation` signal is trapped, raise an exception. For example, " @@ -1906,14 +1953,14 @@ msgid "" "the calculation to proceed while flagging specific results as invalid." msgstr "" -#: ../Doc/library/decimal.rst:1739 +#: library/decimal.rst:1751 msgid "" "A variant is :const:`sNaN` which signals rather than remaining quiet after " "every operation. This is a useful return value when an invalid result needs " "to interrupt a calculation for special handling." msgstr "" -#: ../Doc/library/decimal.rst:1743 +#: library/decimal.rst:1755 msgid "" "The behavior of Python's comparison operators can be a little surprising " "where a :const:`NaN` is involved. A test for equality where one of the " @@ -1930,7 +1977,7 @@ msgid "" "methods instead." msgstr "" -#: ../Doc/library/decimal.rst:1756 +#: library/decimal.rst:1768 msgid "" "The signed zeros can result from calculations that underflow. They keep the " "sign that would have resulted if the calculation had been carried out to " @@ -1938,7 +1985,7 @@ msgid "" "negative zeros are treated as equal and their sign is informational." msgstr "" -#: ../Doc/library/decimal.rst:1761 +#: library/decimal.rst:1773 msgid "" "In addition to the two signed zeros which are distinct yet equal, there are " "various representations of zero with differing precisions yet equivalent in " @@ -1947,11 +1994,11 @@ msgid "" "that the following calculation returns a value equal to zero:" msgstr "" -#: ../Doc/library/decimal.rst:1776 +#: library/decimal.rst:1788 msgid "Working with threads" msgstr "" -#: ../Doc/library/decimal.rst:1778 +#: library/decimal.rst:1790 msgid "" "The :func:`getcontext` function accesses a different :class:`Context` object " "for each thread. Having separate thread contexts means that threads may " @@ -1959,20 +2006,20 @@ msgid "" "other threads." msgstr "" -#: ../Doc/library/decimal.rst:1782 +#: library/decimal.rst:1794 msgid "" "Likewise, the :func:`setcontext` function automatically assigns its target " "to the current thread." msgstr "" -#: ../Doc/library/decimal.rst:1785 +#: library/decimal.rst:1797 msgid "" "If :func:`setcontext` has not been called before :func:`getcontext`, then :" "func:`getcontext` will automatically create a new context for use in the " "current thread." msgstr "" -#: ../Doc/library/decimal.rst:1789 +#: library/decimal.rst:1801 msgid "" "The new context is copied from a prototype context called *DefaultContext*. " "To control the defaults so that each thread will use the same values " @@ -1981,21 +2028,21 @@ msgid "" "a race condition between threads calling :func:`getcontext`. For example::" msgstr "" -#: ../Doc/library/decimal.rst:1814 +#: library/decimal.rst:1826 msgid "Recipes" msgstr "Cas pratiques" -#: ../Doc/library/decimal.rst:1816 +#: library/decimal.rst:1828 msgid "" "Here are a few recipes that serve as utility functions and that demonstrate " "ways to work with the :class:`Decimal` class::" msgstr "" -#: ../Doc/library/decimal.rst:1971 +#: library/decimal.rst:1983 msgid "Decimal FAQ" msgstr "FAQ *decimal*" -#: ../Doc/library/decimal.rst:1973 +#: library/decimal.rst:1985 msgid "" "Q. It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " "to minimize typing when using the interactive interpreter?" @@ -2003,45 +2050,55 @@ msgstr "" "Q. C'est fastidieux de taper ``decimal.Decimal('1234.5')``. Y a-t-il un " "moyen de réduire la frappe quand on utilise l'interpréteur interactif ?" -#: ../Doc/library/decimal.rst:1976 +#: library/decimal.rst:1988 msgid "A. Some users abbreviate the constructor to just a single letter:" msgstr "" "R. Certains utilisateurs abrègent le constructeur en une seule lettre :" -#: ../Doc/library/decimal.rst:1982 +#: library/decimal.rst:1994 msgid "" "Q. In a fixed-point application with two decimal places, some inputs have " "many places and need to be rounded. Others are not supposed to have excess " "digits and need to be validated. What methods should be used?" msgstr "" -#: ../Doc/library/decimal.rst:1986 +#: library/decimal.rst:1998 msgid "" "A. The :meth:`quantize` method rounds to a fixed number of decimal places. " "If the :const:`Inexact` trap is set, it is also useful for validation:" msgstr "" -#: ../Doc/library/decimal.rst:2004 +#: library/decimal.rst:2016 msgid "" "Q. Once I have valid two place inputs, how do I maintain that invariant " "throughout an application?" msgstr "" +"Q. Une fois que mes entrées sont à deux décimales valides, comment maintenir " +"cet invariant dans l'application ?" -#: ../Doc/library/decimal.rst:2007 +#: library/decimal.rst:2019 msgid "" "A. Some operations like addition, subtraction, and multiplication by an " "integer will automatically preserve fixed point. Others operations, like " "division and non-integer multiplication, will change the number of decimal " "places and need to be followed-up with a :meth:`quantize` step:" msgstr "" +"R. Certaines opérations comme l'addition, la soustraction et la " +"multiplication par un entier préservent automatiquement la virgule fixe. " +"D'autres opérations, comme la division et la multiplication par des non-" +"entiers, changent le nombre de décimales et doivent être suivies d'une " +"étape :meth:`quantize` :" -#: ../Doc/library/decimal.rst:2025 +#: library/decimal.rst:2037 msgid "" "In developing fixed-point applications, it is convenient to define functions " "to handle the :meth:`quantize` step:" msgstr "" +"Lors du développement d'applications en virgule fixe, il est pratique de " +"définir des fonctions pour gérer cette étape de quantification par :meth:" +"`quantize` :" -#: ../Doc/library/decimal.rst:2038 +#: library/decimal.rst:2050 msgid "" "Q. There are many ways to express the same value. The numbers :const:" "`200`, :const:`200.000`, :const:`2E2`, and :const:`.02E+4` all have the same " @@ -2049,19 +2106,19 @@ msgid "" "recognizable canonical value?" msgstr "" -#: ../Doc/library/decimal.rst:2043 +#: library/decimal.rst:2055 msgid "" "A. The :meth:`normalize` method maps all equivalent values to a single " "representative:" msgstr "" -#: ../Doc/library/decimal.rst:2050 +#: library/decimal.rst:2062 msgid "" "Q. Some decimal values always print with exponential notation. Is there a " "way to get a non-exponential representation?" msgstr "" -#: ../Doc/library/decimal.rst:2053 +#: library/decimal.rst:2065 msgid "" "A. For some values, exponential notation is the only way to express the " "number of significant places in the coefficient. For example, expressing :" @@ -2069,31 +2126,31 @@ msgid "" "original's two-place significance." msgstr "" -#: ../Doc/library/decimal.rst:2058 +#: library/decimal.rst:2070 msgid "" "If an application does not care about tracking significance, it is easy to " "remove the exponent and trailing zeroes, losing significance, but keeping " "the value unchanged:" msgstr "" -#: ../Doc/library/decimal.rst:2068 +#: library/decimal.rst:2080 msgid "Q. Is there a way to convert a regular float to a :class:`Decimal`?" msgstr "" -#: ../Doc/library/decimal.rst:2070 +#: library/decimal.rst:2082 msgid "" "A. Yes, any binary floating point number can be exactly expressed as a " "Decimal though an exact conversion may take more precision than intuition " "would suggest:" msgstr "" -#: ../Doc/library/decimal.rst:2079 +#: library/decimal.rst:2091 msgid "" "Q. Within a complex calculation, how can I make sure that I haven't gotten a " "spurious result because of insufficient precision or rounding anomalies." msgstr "" -#: ../Doc/library/decimal.rst:2082 +#: library/decimal.rst:2094 msgid "" "A. The decimal module makes it easy to test results. A best practice is to " "re-run calculations using greater precision and with various rounding modes. " @@ -2101,14 +2158,14 @@ msgid "" "issues, ill-conditioned inputs, or a numerically unstable algorithm." msgstr "" -#: ../Doc/library/decimal.rst:2087 +#: library/decimal.rst:2099 msgid "" "Q. I noticed that context precision is applied to the results of operations " "but not to the inputs. Is there anything to watch out for when mixing " "values of different precisions?" msgstr "" -#: ../Doc/library/decimal.rst:2091 +#: library/decimal.rst:2103 msgid "" "A. Yes. The principle is that all values are considered to be exact and so " "is the arithmetic on those values. Only the results are rounded. The " @@ -2117,23 +2174,23 @@ msgid "" "haven't been rounded:" msgstr "" -#: ../Doc/library/decimal.rst:2104 +#: library/decimal.rst:2116 msgid "" "The solution is either to increase precision or to force rounding of inputs " "using the unary plus operation:" msgstr "" -#: ../Doc/library/decimal.rst:2113 +#: library/decimal.rst:2125 msgid "" "Alternatively, inputs can be rounded upon creation using the :meth:`Context." "create_decimal` method:" msgstr "" -#: ../Doc/library/decimal.rst:2119 +#: library/decimal.rst:2131 msgid "Q. Is the CPython implementation fast for large numbers?" msgstr "" -#: ../Doc/library/decimal.rst:2121 +#: library/decimal.rst:2133 msgid "" "A. Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " "the decimal module integrate the high speed `libmpdec \n" -"Language-Team: FRENCH \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-18 22:51+0200\n" +"Last-Translator: Loc Cosnier \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.36.0\n" -#: ../Doc/library/difflib.rst:2 +#: library/difflib.rst:2 msgid ":mod:`difflib` --- Helpers for computing deltas" -msgstr "" +msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas" -#: ../Doc/library/difflib.rst:11 +#: library/difflib.rst:11 msgid "**Source code:** :source:`Lib/difflib.py`" msgstr "**Code source:** :source:`Lib/difflib.py`" -#: ../Doc/library/difflib.rst:20 +#: library/difflib.rst:20 +#, fuzzy msgid "" "This module provides classes and functions for comparing sequences. It can " -"be used for example, for comparing files, and can produce difference " -"information in various formats, including HTML and context and unified " +"be used for example, for comparing files, and can produce information about " +"file differences in various formats, including HTML and context and unified " "diffs. For comparing directories and files, see also, the :mod:`filecmp` " "module." msgstr "" +"Ce module fournit des classes et des fonctions permettant de comparer des " +"séquences. Il peut être utilisé, par exemple, pour comparer des fichiers et " +"peut produire des informations sur les différences dans divers formats, y " +"compris HTML et les différences contextuelles et unifiées. Pour la " +"comparaison de répertoires et de fichiers, voir aussi le module :mod:" +"`filecmp`." -#: ../Doc/library/difflib.rst:28 +#: library/difflib.rst:29 msgid "" "This is a flexible class for comparing pairs of sequences of any type, so " "long as the sequence elements are :term:`hashable`. The basic algorithm " @@ -46,8 +55,22 @@ msgid "" "minimal edit sequences, but does tend to yield matches that \"look right\" " "to people." msgstr "" - -#: ../Doc/library/difflib.rst:40 +"C'est une classe flexible permettant de comparer des séquences deux à deux " +"de n'importe quel type, tant que les éléments des séquences sont :term:" +"`hachables `. L'algorithme de base est antérieur, et un peu plus " +"sophistiqué, à un algorithme publié à la fin des années 1980 par Ratcliff et " +"Obershelp sous le nom hyperbolique de *gestalt pattern matching*. L'idée est " +"de trouver la plus longue sous-séquence d'appariement contiguë qui ne " +"contient pas d'éléments « indésirables » ; ces éléments « indésirables » " +"sont ceux qui sont inintéressants dans un certain sens, comme les lignes " +"blanches ou les espaces. (Le traitement des éléments indésirables est une " +"extension de l'algorithme de Ratcliff et Obershelp). La même idée est " +"ensuite appliquée récursivement aux morceaux des séquences à gauche et à " +"droite de la sous-séquence correspondante. Cela ne donne pas des séquences " +"de montage minimales, mais tend à donner des correspondances qui « semblent " +"correctes » pour les gens." + +#: library/difflib.rst:41 msgid "" "**Timing:** The basic Ratcliff-Obershelp algorithm is cubic time in the " "worst case and quadratic time in the expected case. :class:`SequenceMatcher` " @@ -55,8 +78,14 @@ msgid "" "dependent in a complicated way on how many elements the sequences have in " "common; best case time is linear." msgstr "" +"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est " +"de complexité cubique dans le pire cas et de complexité quadratique dans le " +"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le " +"pire cas et son comportement dans le cas attendu dépend de façon complexe du " +"nombre d'éléments que les séquences ont en commun ; le temps dans le " +"meilleur cas est linéaire." -#: ../Doc/library/difflib.rst:46 +#: library/difflib.rst:47 msgid "" "**Automatic junk heuristic:** :class:`SequenceMatcher` supports a heuristic " "that automatically treats certain sequence items as junk. The heuristic " @@ -67,124 +96,165 @@ msgid "" "This heuristic can be turned off by setting the ``autojunk`` argument to " "``False`` when creating the :class:`SequenceMatcher`." msgstr "" - -#: ../Doc/library/difflib.rst:54 ../Doc/library/difflib.rst:387 +"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` " +"utilise une heuristique qui traite automatiquement certains éléments de la " +"séquence comme indésirables. L'heuristique compte combien de fois chaque " +"élément individuel apparaît dans la séquence. Si les doublons d'un élément " +"(après le premier) représentent plus de 1 % de la séquence et que la " +"séquence compte au moins 200 éléments, cet élément est marqué comme " +"« populaire » et est traité comme indésirable aux fins de la comparaison des " +"séquences. Cette heuristique peut être désactivée en réglant l'argument " +"``autojunk`` sur ``False`` lors de la création de la classe :class:" +"`SequenceMatcher`." + +#: library/difflib.rst:388 msgid "The *autojunk* parameter." -msgstr "" +msgstr "Le paramètre *autojunk*." -#: ../Doc/library/difflib.rst:60 +#: library/difflib.rst:61 msgid "" "This is a class for comparing sequences of lines of text, and producing " "human-readable differences or deltas. Differ uses :class:`SequenceMatcher` " "both to compare sequences of lines, and to compare sequences of characters " "within similar (near-matching) lines." msgstr "" +"Il s'agit d'une classe permettant de comparer des séquences de lignes de " +"texte et de produire des différences ou deltas humainement lisibles. " +"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des " +"séquences de lignes, et pour comparer des séquences de caractères dans des " +"lignes similaires (quasi-correspondantes)." -#: ../Doc/library/difflib.rst:65 +#: library/difflib.rst:66 msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" msgstr "" +"Chaque ligne d'un delta :class:`Differ` commence par un code de deux " +"lettres :" -#: ../Doc/library/difflib.rst:68 +#: library/difflib.rst:69 msgid "Code" msgstr "Code" -#: ../Doc/library/difflib.rst:68 ../Doc/library/difflib.rst:494 +#: library/difflib.rst:495 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/difflib.rst:70 +#: library/difflib.rst:71 msgid "``'- '``" msgstr "``'- '``" -#: ../Doc/library/difflib.rst:70 +#: library/difflib.rst:71 msgid "line unique to sequence 1" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 1" -#: ../Doc/library/difflib.rst:72 +#: library/difflib.rst:73 msgid "``'+ '``" msgstr "``'+ '``" -#: ../Doc/library/difflib.rst:72 +#: library/difflib.rst:73 msgid "line unique to sequence 2" -msgstr "" +msgstr "ligne n'appartenant qu'à la séquence 2" -#: ../Doc/library/difflib.rst:74 +#: library/difflib.rst:75 msgid "``' '``" msgstr "``' '``" -#: ../Doc/library/difflib.rst:74 +#: library/difflib.rst:75 msgid "line common to both sequences" -msgstr "" +msgstr "ligne commune aux deux séquences" -#: ../Doc/library/difflib.rst:76 +#: library/difflib.rst:77 msgid "``'? '``" msgstr "``'? '``" -#: ../Doc/library/difflib.rst:76 +#: library/difflib.rst:77 msgid "line not present in either input sequence" -msgstr "" +msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée" -#: ../Doc/library/difflib.rst:79 +#: library/difflib.rst:80 msgid "" "Lines beginning with '``?``' attempt to guide the eye to intraline " "differences, and were not present in either input sequence. These lines can " "be confusing if the sequences contain tab characters." msgstr "" +"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les " +"différences intralignes, et n'étaient présentes dans aucune des séquences " +"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent " +"des caractères de tabulation." -#: ../Doc/library/difflib.rst:86 +#: library/difflib.rst:87 msgid "" "This class can be used to create an HTML table (or a complete HTML file " "containing the table) showing a side by side, line by line comparison of " "text with inter-line and intra-line change highlights. The table can be " "generated in either full or contextual difference mode." msgstr "" +"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier " +"HTML complet contenant le tableau) montrant une comparaison côte à côte, " +"ligne par ligne, du texte avec les changements inter-lignes et intralignes. " +"Le tableau peut être généré en mode de différence complet ou contextuel." -#: ../Doc/library/difflib.rst:91 +#: library/difflib.rst:92 msgid "The constructor for this class is:" -msgstr "" +msgstr "Le constructeur pour cette classe est :" -#: ../Doc/library/difflib.rst:96 +#: library/difflib.rst:97 msgid "Initializes instance of :class:`HtmlDiff`." -msgstr "" +msgstr "Initialise l'instance de :class:`HtmlDiff`." -#: ../Doc/library/difflib.rst:98 +#: library/difflib.rst:99 msgid "" "*tabsize* is an optional keyword argument to specify tab stop spacing and " "defaults to ``8``." msgstr "" +"*tabsize* est un mot-clé optionnel pour spécifier l'espacement des " +"tabulations et sa valeur par défaut est ``8``." -#: ../Doc/library/difflib.rst:101 +#: library/difflib.rst:102 msgid "" "*wrapcolumn* is an optional keyword to specify column number where lines are " "broken and wrapped, defaults to ``None`` where lines are not wrapped." msgstr "" +"*wrapcolumn* est un mot-clé optionnel pour spécifier le numéro de la colonne " +"où les lignes sont coupées pour être ré-agencées, la valeur par défaut est " +"``None`` lorsque les lignes ne sont pas ré-agencées." -#: ../Doc/library/difflib.rst:104 +#: library/difflib.rst:105 msgid "" "*linejunk* and *charjunk* are optional keyword arguments passed into :func:" "`ndiff` (used by :class:`HtmlDiff` to generate the side by side HTML " "differences). See :func:`ndiff` documentation for argument default values " "and descriptions." msgstr "" +"*linejunk* et *charjunk* sont des arguments de mots-clés optionnels passés " +"dans :func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les " +"différences HTML côte à côte). Voir la documentation de :func:`ndiff` pour " +"les valeurs par défaut des arguments et les descriptions." -#: ../Doc/library/difflib.rst:108 +#: library/difflib.rst:109 msgid "The following methods are public:" -msgstr "" +msgstr "Les méthodes suivantes sont publiques :" -#: ../Doc/library/difflib.rst:113 +#: library/difflib.rst:114 msgid "" "Compares *fromlines* and *tolines* (lists of strings) and returns a string " "which is a complete HTML file containing a table showing line by line " "differences with inter-line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et " +"renvoie une chaîne de caractères qui est un fichier HTML complet contenant " +"un tableau montrant les différences ligne par ligne avec les changements " +"inter-lignes et intralignes mis en évidence." -#: ../Doc/library/difflib.rst:117 +#: library/difflib.rst:118 msgid "" "*fromdesc* and *todesc* are optional keyword arguments to specify from/to " "file column header strings (both default to an empty string)." msgstr "" +"*fromdesc* et *todesc* sont des arguments mot-clé optionnels pour spécifier " +"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des " +"chaînes vides par défaut)." -#: ../Doc/library/difflib.rst:120 +#: library/difflib.rst:121 msgid "" "*context* and *numlines* are both optional keyword arguments. Set *context* " "to ``True`` when contextual differences are to be shown, else the default is " @@ -196,52 +266,83 @@ msgid "" "hyperlinks to place the next difference highlight at the top of the browser " "without any leading context)." msgstr "" +"*context* et *numlines* sont tous deux des arguments mots-clés facultatifs. " +"Mettre *context* à ``True`` lorsque les différences contextuelles doivent " +"être affichées, sinon la valeur par défaut est ``False`` pour afficher les " +"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque " +"*context* est `True``, *numlines* contrôle le nombre de lignes de contexte " +"qui entourent les différences mise en évidence. Lorsque *context* est " +"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant " +"un surlignage de différence lors de l'utilisation des hyperliens " +"« suivants » (un réglage à zéro ferait en sorte que les hyperliens " +"« suivants » placeraient le surlignage de différence suivant en haut du " +"navigateur sans aucun contexte introductif)." -#: ../Doc/library/difflib.rst:131 +#: library/difflib.rst:132 msgid "" "*fromdesc* and *todesc* are interpreted as unescaped HTML and should be " "properly escaped while receiving input from untrusted sources." msgstr "" +"*fromdesc* et *todesc* sont interprétés comme du HTML non échappé et doivent " +"être correctement échappés lors de la réception de données provenant de " +"sources non fiables." -#: ../Doc/library/difflib.rst:134 +#: library/difflib.rst:135 msgid "" "*charset* keyword-only argument was added. The default charset of HTML " "document changed from ``'ISO-8859-1'`` to ``'utf-8'``." msgstr "" +"l'argument mot-clé *charset* a été ajouté. Le jeu de caractères par défaut " +"du document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``." -#: ../Doc/library/difflib.rst:140 +#: library/difflib.rst:141 msgid "" "Compares *fromlines* and *tolines* (lists of strings) and returns a string " "which is a complete HTML table showing line by line differences with inter-" "line and intra-line changes highlighted." msgstr "" +"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne " +"qui est un tableau HTML complet montrant les différences ligne par ligne " +"avec les changements inter-lignes et intralignes mis en évidence." -#: ../Doc/library/difflib.rst:144 +#: library/difflib.rst:145 msgid "" "The arguments for this method are the same as those for the :meth:" "`make_file` method." msgstr "" +"Les arguments pour cette méthode sont les mêmes que ceux de la méthode :meth:" +"`make_file`." -#: ../Doc/library/difflib.rst:147 +#: library/difflib.rst:148 msgid "" ":file:`Tools/scripts/diff.py` is a command-line front-end to this class and " "contains a good example of its use." msgstr "" +":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de cette " +"classe et contient un bon exemple de son utilisation." -#: ../Doc/library/difflib.rst:153 +#: library/difflib.rst:154 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in context diff format." msgstr "" +"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta (un :" +"term:`generateur ` générant les lignes delta) dans un format de " +"différence de contexte." -#: ../Doc/library/difflib.rst:156 +#: library/difflib.rst:157 +#, fuzzy msgid "" "Context diffs are a compact way of showing just the lines that have changed " "plus a few lines of context. The changes are shown in a before/after " "style. The number of context lines is set by *n* which defaults to three." msgstr "" +"Les différences de contexte sont une façon compacte de montrer seulement les " +"lignes qui ont changé plus quelques lignes de contexte. Les changements " +"sont affichés dans un style avant/après. Le nombre de lignes de contexte " +"est défini par *n*, qui est de trois par défaut." -#: ../Doc/library/difflib.rst:160 +#: library/difflib.rst:161 msgid "" "By default, the diff control lines (those with ``***`` or ``---``) are " "created with a trailing newline. This is helpful so that inputs created " @@ -249,14 +350,22 @@ msgid "" "with :func:`io.IOBase.writelines` since both the inputs and outputs have " "trailing newlines." msgstr "" +"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou " +"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que " +"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des " +"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` " +"puisque les entrées et les sorties ont des nouvelles lignes de fin." -#: ../Doc/library/difflib.rst:166 ../Doc/library/difflib.rst:297 +#: library/difflib.rst:298 msgid "" "For inputs that do not have trailing newlines, set the *lineterm* argument " "to ``\"\"`` so that the output will be uniformly newline free." msgstr "" +"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument " +"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la " +"ligne." -#: ../Doc/library/difflib.rst:169 ../Doc/library/difflib.rst:300 +#: library/difflib.rst:301 msgid "" "The context diff format normally has a header for filenames and modification " "times. Any or all of these may be specified using strings for *fromfile*, " @@ -264,12 +373,20 @@ msgid "" "normally expressed in the ISO 8601 format. If not specified, the strings " "default to blanks." msgstr "" +"Le format de contexte de différence comporte normalement un en-tête pour les " +"noms de fichiers et les heures de modification. Tout ou partie de ces " +"éléments peuvent être spécifiés en utilisant les chaînes de caractères " +"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " +"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " +"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." -#: ../Doc/library/difflib.rst:192 ../Doc/library/difflib.rst:321 +#: library/difflib.rst:322 msgid "See :ref:`difflib-interface` for a more detailed example." msgstr "" +"Voir :ref:`une interface de ligne de commandes pour difflib ` pour un exemple plus détaillé." -#: ../Doc/library/difflib.rst:197 +#: library/difflib.rst:198 msgid "" "Return a list of the best \"good enough\" matches. *word* is a sequence for " "which close matches are desired (typically a string), and *possibilities* is " @@ -277,37 +394,37 @@ msgid "" "strings)." msgstr "" -#: ../Doc/library/difflib.rst:201 +#: library/difflib.rst:202 msgid "" "Optional argument *n* (default ``3``) is the maximum number of close matches " "to return; *n* must be greater than ``0``." msgstr "" -#: ../Doc/library/difflib.rst:204 +#: library/difflib.rst:205 msgid "" "Optional argument *cutoff* (default ``0.6``) is a float in the range [0, 1]. " "Possibilities that don't score at least that similar to *word* are ignored." msgstr "" -#: ../Doc/library/difflib.rst:207 +#: library/difflib.rst:208 msgid "" "The best (no more than *n*) matches among the possibilities are returned in " "a list, sorted by similarity score, most similar first." msgstr "" -#: ../Doc/library/difflib.rst:223 +#: library/difflib.rst:224 msgid "" "Compare *a* and *b* (lists of strings); return a :class:`Differ`\\ -style " "delta (a :term:`generator` generating the delta lines)." msgstr "" -#: ../Doc/library/difflib.rst:226 +#: library/difflib.rst:227 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are filtering " "functions (or ``None``):" msgstr "" -#: ../Doc/library/difflib.rst:229 +#: library/difflib.rst:230 msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk, or false if not. The default is ``None``. There " @@ -318,7 +435,7 @@ msgid "" "this usually works better than using this function." msgstr "" -#: ../Doc/library/difflib.rst:237 +#: library/difflib.rst:238 msgid "" "*charjunk*: A function that accepts a character (a string of length 1), and " "returns if the character is junk, or false if not. The default is module-" @@ -326,33 +443,33 @@ msgid "" "characters (a blank or tab; it's a bad idea to include newline in this!)." msgstr "" -#: ../Doc/library/difflib.rst:242 +#: library/difflib.rst:243 msgid "" ":file:`Tools/scripts/ndiff.py` is a command-line front-end to this function." msgstr "" -#: ../Doc/library/difflib.rst:260 +#: library/difflib.rst:261 msgid "Return one of the two sequences that generated a delta." msgstr "" -#: ../Doc/library/difflib.rst:262 +#: library/difflib.rst:263 msgid "" "Given a *sequence* produced by :meth:`Differ.compare` or :func:`ndiff`, " "extract lines originating from file 1 or 2 (parameter *which*), stripping " "off line prefixes." msgstr "" -#: ../Doc/library/difflib.rst:266 +#: library/difflib.rst:267 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/difflib.rst:283 +#: library/difflib.rst:284 msgid "" "Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " "generating the delta lines) in unified diff format." msgstr "" -#: ../Doc/library/difflib.rst:286 +#: library/difflib.rst:287 msgid "" "Unified diffs are a compact way of showing just the lines that have changed " "plus a few lines of context. The changes are shown in an inline style " @@ -360,7 +477,7 @@ msgid "" "set by *n* which defaults to three." msgstr "" -#: ../Doc/library/difflib.rst:291 +#: library/difflib.rst:292 msgid "" "By default, the diff control lines (those with ``---``, ``+++``, or ``@@``) " "are created with a trailing newline. This is helpful so that inputs created " @@ -369,14 +486,14 @@ msgid "" "trailing newlines." msgstr "" -#: ../Doc/library/difflib.rst:325 +#: library/difflib.rst:326 msgid "" "Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence " "of delta lines (also bytes) in the format returned by *dfunc*. *dfunc* must " "be a callable, typically either :func:`unified_diff` or :func:`context_diff`." msgstr "" -#: ../Doc/library/difflib.rst:330 +#: library/difflib.rst:331 msgid "" "Allows you to compare data with unknown or inconsistent encoding. All inputs " "except *n* must be bytes objects, not str. Works by losslessly converting " @@ -386,70 +503,70 @@ msgid "" "unknown/inconsistent encodings as *a* and *b*." msgstr "" -#: ../Doc/library/difflib.rst:341 +#: library/difflib.rst:342 msgid "" -"Return true for ignorable lines. The line *line* is ignorable if *line* is " -"blank or contains a single ``'#'``, otherwise it is not ignorable. Used as " -"a default for parameter *linejunk* in :func:`ndiff` in older versions." +"Return ``True`` for ignorable lines. The line *line* is ignorable if *line* " +"is blank or contains a single ``'#'``, otherwise it is not ignorable. Used " +"as a default for parameter *linejunk* in :func:`ndiff` in older versions." msgstr "" -#: ../Doc/library/difflib.rst:348 +#: library/difflib.rst:349 msgid "" -"Return true for ignorable characters. The character *ch* is ignorable if " -"*ch* is a space or tab, otherwise it is not ignorable. Used as a default " +"Return ``True`` for ignorable characters. The character *ch* is ignorable " +"if *ch* is a space or tab, otherwise it is not ignorable. Used as a default " "for parameter *charjunk* in :func:`ndiff`." msgstr "" -#: ../Doc/library/difflib.rst:356 +#: library/difflib.rst:357 msgid "" "`Pattern Matching: The Gestalt Approach `_" msgstr "" -#: ../Doc/library/difflib.rst:356 +#: library/difflib.rst:357 msgid "" "Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. " "This was published in `Dr. Dobb's Journal `_ in " "July, 1988." msgstr "" -#: ../Doc/library/difflib.rst:363 +#: library/difflib.rst:364 msgid "SequenceMatcher Objects" msgstr "" -#: ../Doc/library/difflib.rst:365 +#: library/difflib.rst:366 msgid "The :class:`SequenceMatcher` class has this constructor:" msgstr "" -#: ../Doc/library/difflib.rst:370 +#: library/difflib.rst:371 msgid "" "Optional argument *isjunk* must be ``None`` (the default) or a one-argument " "function that takes a sequence element and returns true if and only if the " "element is \"junk\" and should be ignored. Passing ``None`` for *isjunk* is " -"equivalent to passing ``lambda x: 0``; in other words, no elements are " +"equivalent to passing ``lambda x: False``; in other words, no elements are " "ignored. For example, pass::" msgstr "" -#: ../Doc/library/difflib.rst:378 +#: library/difflib.rst:379 msgid "" "if you're comparing lines as sequences of characters, and don't want to " "synch up on blanks or hard tabs." msgstr "" -#: ../Doc/library/difflib.rst:381 +#: library/difflib.rst:382 msgid "" "The optional arguments *a* and *b* are sequences to be compared; both " "default to empty strings. The elements of both sequences must be :term:" "`hashable`." msgstr "" -#: ../Doc/library/difflib.rst:384 +#: library/difflib.rst:385 msgid "" "The optional argument *autojunk* can be used to disable the automatic junk " "heuristic." msgstr "" -#: ../Doc/library/difflib.rst:390 +#: library/difflib.rst:391 msgid "" "SequenceMatcher objects get three data attributes: *bjunk* is the set of " "elements of *b* for which *isjunk* is ``True``; *bpopular* is the set of non-" @@ -459,19 +576,19 @@ msgid "" "`set_seqs` or :meth:`set_seq2`." msgstr "" -#: ../Doc/library/difflib.rst:397 +#: library/difflib.rst:398 msgid "The *bjunk* and *bpopular* attributes." msgstr "" -#: ../Doc/library/difflib.rst:400 +#: library/difflib.rst:401 msgid ":class:`SequenceMatcher` objects have the following methods:" msgstr "" -#: ../Doc/library/difflib.rst:404 +#: library/difflib.rst:405 msgid "Set the two sequences to be compared." msgstr "" -#: ../Doc/library/difflib.rst:406 +#: library/difflib.rst:407 msgid "" ":class:`SequenceMatcher` computes and caches detailed information about the " "second sequence, so if you want to compare one sequence against many " @@ -479,23 +596,23 @@ msgid "" "call :meth:`set_seq1` repeatedly, once for each of the other sequences." msgstr "" -#: ../Doc/library/difflib.rst:414 +#: library/difflib.rst:415 msgid "" "Set the first sequence to be compared. The second sequence to be compared " "is not changed." msgstr "" -#: ../Doc/library/difflib.rst:420 +#: library/difflib.rst:421 msgid "" "Set the second sequence to be compared. The first sequence to be compared " "is not changed." msgstr "" -#: ../Doc/library/difflib.rst:426 +#: library/difflib.rst:427 msgid "Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``." msgstr "" -#: ../Doc/library/difflib.rst:428 +#: library/difflib.rst:429 msgid "" "If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns " "``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo " @@ -507,7 +624,7 @@ msgid "" "that starts earliest in *b*." msgstr "" -#: ../Doc/library/difflib.rst:441 +#: library/difflib.rst:442 msgid "" "If *isjunk* was provided, first the longest matching block is determined as " "above, but with the additional restriction that no junk element appears in " @@ -516,7 +633,7 @@ msgid "" "junk except as identical junk happens to be adjacent to an interesting match." msgstr "" -#: ../Doc/library/difflib.rst:448 +#: library/difflib.rst:449 msgid "" "Here's the same example as before, but considering blanks to be junk. That " "prevents ``' abcd'`` from matching the ``' abcd'`` at the tail end of the " @@ -524,22 +641,22 @@ msgid "" "matches the leftmost ``'abcd'`` in the second sequence:" msgstr "" -#: ../Doc/library/difflib.rst:457 +#: library/difflib.rst:458 msgid "If no blocks match, this returns ``(alo, blo, 0)``." msgstr "" -#: ../Doc/library/difflib.rst:459 +#: library/difflib.rst:460 msgid "This method returns a :term:`named tuple` ``Match(a, b, size)``." msgstr "" -#: ../Doc/library/difflib.rst:464 +#: library/difflib.rst:465 msgid "" "Return list of triples describing non-overlapping matching subsequences. " -"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:j" -"+n]``. The triples are monotonically increasing in *i* and *j*." +"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == b[j:" +"j+n]``. The triples are monotonically increasing in *i* and *j*." msgstr "" -#: ../Doc/library/difflib.rst:469 +#: library/difflib.rst:470 msgid "" "The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It " "is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')`` " @@ -548,7 +665,7 @@ msgid "" "triples always describe non-adjacent equal blocks." msgstr "" -#: ../Doc/library/difflib.rst:486 +#: library/difflib.rst:487 msgid "" "Return list of 5-tuples describing how to turn *a* into *b*. Each tuple is " "of the form ``(tag, i1, i2, j1, j2)``. The first tuple has ``i1 == j1 == " @@ -556,101 +673,101 @@ msgid "" "tuple, and, likewise, *j1* equal to the previous *j2*." msgstr "" -#: ../Doc/library/difflib.rst:491 +#: library/difflib.rst:492 msgid "The *tag* values are strings, with these meanings:" msgstr "" -#: ../Doc/library/difflib.rst:494 +#: library/difflib.rst:495 msgid "Value" msgstr "Valeur" -#: ../Doc/library/difflib.rst:496 +#: library/difflib.rst:497 msgid "``'replace'``" msgstr "``'replace'``" -#: ../Doc/library/difflib.rst:496 +#: library/difflib.rst:497 msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." msgstr "" -#: ../Doc/library/difflib.rst:499 +#: library/difflib.rst:500 msgid "``'delete'``" msgstr "``'delete'``" -#: ../Doc/library/difflib.rst:499 +#: library/difflib.rst:500 msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." msgstr "" -#: ../Doc/library/difflib.rst:502 +#: library/difflib.rst:503 msgid "``'insert'``" msgstr "``'insert'``" -#: ../Doc/library/difflib.rst:502 +#: library/difflib.rst:503 msgid "" "``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " "this case." msgstr "" -#: ../Doc/library/difflib.rst:506 +#: library/difflib.rst:507 msgid "``'equal'``" msgstr "``'equal'``" -#: ../Doc/library/difflib.rst:506 +#: library/difflib.rst:507 msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." msgstr "" -#: ../Doc/library/difflib.rst:510 +#: library/difflib.rst:511 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/difflib.rst:527 +#: library/difflib.rst:528 msgid "Return a :term:`generator` of groups with up to *n* lines of context." msgstr "" -#: ../Doc/library/difflib.rst:529 +#: library/difflib.rst:530 msgid "" "Starting with the groups returned by :meth:`get_opcodes`, this method splits " "out smaller change clusters and eliminates intervening ranges which have no " "changes." msgstr "" -#: ../Doc/library/difflib.rst:533 +#: library/difflib.rst:534 msgid "The groups are returned in the same format as :meth:`get_opcodes`." msgstr "" -#: ../Doc/library/difflib.rst:538 +#: library/difflib.rst:539 msgid "" "Return a measure of the sequences' similarity as a float in the range [0, 1]." msgstr "" -#: ../Doc/library/difflib.rst:541 +#: library/difflib.rst:542 msgid "" "Where T is the total number of elements in both sequences, and M is the " "number of matches, this is 2.0\\*M / T. Note that this is ``1.0`` if the " "sequences are identical, and ``0.0`` if they have nothing in common." msgstr "" -#: ../Doc/library/difflib.rst:545 +#: library/difflib.rst:546 msgid "" "This is expensive to compute if :meth:`get_matching_blocks` or :meth:" "`get_opcodes` hasn't already been called, in which case you may want to try :" "meth:`quick_ratio` or :meth:`real_quick_ratio` first to get an upper bound." msgstr "" -#: ../Doc/library/difflib.rst:552 +#: library/difflib.rst:553 msgid "" "Caution: The result of a :meth:`ratio` call may depend on the order of the " "arguments. For instance::" msgstr "" -#: ../Doc/library/difflib.rst:563 +#: library/difflib.rst:564 msgid "Return an upper bound on :meth:`ratio` relatively quickly." msgstr "" -#: ../Doc/library/difflib.rst:568 +#: library/difflib.rst:569 msgid "Return an upper bound on :meth:`ratio` very quickly." msgstr "" -#: ../Doc/library/difflib.rst:571 +#: library/difflib.rst:572 msgid "" "The three methods that return the ratio of matching to total characters can " "give different results due to differing levels of approximation, although :" @@ -658,57 +775,57 @@ msgid "" "as :meth:`ratio`:" msgstr "" -#: ../Doc/library/difflib.rst:588 +#: library/difflib.rst:589 msgid "SequenceMatcher Examples" msgstr "" -#: ../Doc/library/difflib.rst:590 +#: library/difflib.rst:591 msgid "This example compares two strings, considering blanks to be \"junk\":" msgstr "" -#: ../Doc/library/difflib.rst:596 +#: library/difflib.rst:597 msgid "" ":meth:`ratio` returns a float in [0, 1], measuring the similarity of the " "sequences. As a rule of thumb, a :meth:`ratio` value over 0.6 means the " "sequences are close matches:" msgstr "" -#: ../Doc/library/difflib.rst:603 +#: library/difflib.rst:604 msgid "" "If you're only interested in where the sequences match, :meth:" "`get_matching_blocks` is handy:" msgstr "" -#: ../Doc/library/difflib.rst:612 +#: library/difflib.rst:613 msgid "" "Note that the last tuple returned by :meth:`get_matching_blocks` is always a " "dummy, ``(len(a), len(b), 0)``, and this is the only case in which the last " "tuple element (number of elements matched) is ``0``." msgstr "" -#: ../Doc/library/difflib.rst:616 +#: library/difflib.rst:617 msgid "" "If you want to know how to change the first sequence into the second, use :" "meth:`get_opcodes`:" msgstr "" -#: ../Doc/library/difflib.rst:627 +#: library/difflib.rst:628 msgid "" "The :func:`get_close_matches` function in this module which shows how simple " "code building on :class:`SequenceMatcher` can be used to do useful work." msgstr "" -#: ../Doc/library/difflib.rst:631 +#: library/difflib.rst:632 msgid "" "`Simple version control recipe `_ for a small application built with :class:`SequenceMatcher`." msgstr "" -#: ../Doc/library/difflib.rst:639 +#: library/difflib.rst:640 msgid "Differ Objects" msgstr "" -#: ../Doc/library/difflib.rst:641 +#: library/difflib.rst:642 msgid "" "Note that :class:`Differ`\\ -generated deltas make no claim to be " "**minimal** diffs. To the contrary, minimal diffs are often counter-" @@ -718,31 +835,31 @@ msgid "" "longer diff." msgstr "" -#: ../Doc/library/difflib.rst:647 +#: library/difflib.rst:648 msgid "The :class:`Differ` class has this constructor:" msgstr "" -#: ../Doc/library/difflib.rst:652 +#: library/difflib.rst:654 msgid "" "Optional keyword parameters *linejunk* and *charjunk* are for filter " "functions (or ``None``):" msgstr "" -#: ../Doc/library/difflib.rst:655 +#: library/difflib.rst:657 msgid "" "*linejunk*: A function that accepts a single string argument, and returns " "true if the string is junk. The default is ``None``, meaning that no line " "is considered junk." msgstr "" -#: ../Doc/library/difflib.rst:659 +#: library/difflib.rst:661 msgid "" "*charjunk*: A function that accepts a single character argument (a string of " "length 1), and returns true if the character is junk. The default is " "``None``, meaning that no character is considered junk." msgstr "" -#: ../Doc/library/difflib.rst:663 +#: library/difflib.rst:665 msgid "" "These junk-filtering functions speed up matching to find differences and do " "not cause any differing lines or characters to be ignored. Read the " @@ -750,17 +867,17 @@ msgid "" "*isjunk* parameter for an explanation." msgstr "" -#: ../Doc/library/difflib.rst:669 +#: library/difflib.rst:671 msgid "" ":class:`Differ` objects are used (deltas generated) via a single method:" msgstr "" -#: ../Doc/library/difflib.rst:674 +#: library/difflib.rst:676 msgid "" "Compare two sequences of lines, and generate the delta (a sequence of lines)." msgstr "" -#: ../Doc/library/difflib.rst:676 +#: library/difflib.rst:678 msgid "" "Each sequence must contain individual single-line strings ending with " "newlines. Such sequences can be obtained from the :meth:`~io.IOBase." @@ -769,11 +886,11 @@ msgid "" "IOBase.writelines` method of a file-like object." msgstr "" -#: ../Doc/library/difflib.rst:687 +#: library/difflib.rst:689 msgid "Differ Example" msgstr "" -#: ../Doc/library/difflib.rst:689 +#: library/difflib.rst:691 msgid "" "This example compares two texts. First we set up the texts, sequences of " "individual single-line strings ending with newlines (such sequences can also " @@ -781,34 +898,34 @@ msgid "" "objects):" msgstr "" -#: ../Doc/library/difflib.rst:708 +#: library/difflib.rst:710 msgid "Next we instantiate a Differ object:" msgstr "" -#: ../Doc/library/difflib.rst:712 +#: library/difflib.rst:714 msgid "" "Note that when instantiating a :class:`Differ` object we may pass functions " "to filter out line and character \"junk.\" See the :meth:`Differ` " "constructor for details." msgstr "" -#: ../Doc/library/difflib.rst:716 +#: library/difflib.rst:718 msgid "Finally, we compare the two:" msgstr "" -#: ../Doc/library/difflib.rst:720 +#: library/difflib.rst:722 msgid "``result`` is a list of strings, so let's pretty-print it:" msgstr "" -#: ../Doc/library/difflib.rst:735 +#: library/difflib.rst:737 msgid "As a single multi-line string it looks like this:" msgstr "" -#: ../Doc/library/difflib.rst:754 +#: library/difflib.rst:756 msgid "A command-line interface to difflib" msgstr "" -#: ../Doc/library/difflib.rst:756 +#: library/difflib.rst:758 msgid "" "This example shows how to use difflib to create a ``diff``-like utility. It " "is also contained in the Python source distribution, as :file:`Tools/scripts/" diff --git a/library/dis.po b/library/dis.po index 31a8c6048a..529129011a 100644 --- a/library/dis.po +++ b/library/dis.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-07-18 21:03+0200\n" "Last-Translator: Aya Keddam \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/dis.rst:2 +#: library/dis.rst:2 msgid ":mod:`dis` --- Disassembler for Python bytecode" msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" -#: ../Doc/library/dis.rst:7 +#: library/dis.rst:7 msgid "**Source code:** :source:`Lib/dis.py`" msgstr "**Code source :** :source:`Lib/dis.py`" -#: ../Doc/library/dis.rst:11 +#: library/dis.rst:11 msgid "" "The :mod:`dis` module supports the analysis of CPython :term:`bytecode` by " "disassembling it. The CPython bytecode which this module takes as an input " @@ -35,7 +35,7 @@ msgstr "" "prend en paramètre, est défini dans le fichier :file:`Include/opcode.h` et " "est utilisé par le compilateur et l'interpréteur." -#: ../Doc/library/dis.rst:18 +#: library/dis.rst:18 msgid "" "Bytecode is an implementation detail of the CPython interpreter. No " "guarantees are made that bytecode will not be added, removed, or changed " @@ -48,7 +48,7 @@ msgstr "" "cette bibliothèque ne fonctionne pas nécessairement sur les machines " "virtuelles Python ni les différentes versions de Python." -#: ../Doc/library/dis.rst:23 +#: library/dis.rst:23 msgid "" "Use 2 bytes for each instruction. Previously the number of bytes varied by " "instruction." @@ -56,11 +56,11 @@ msgstr "" "Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " "par instruction." -#: ../Doc/library/dis.rst:28 +#: library/dis.rst:28 msgid "Example: Given the function :func:`myfunc`::" msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" -#: ../Doc/library/dis.rst:33 +#: library/dis.rst:33 msgid "" "the following command can be used to display the disassembly of :func:" "`myfunc`::" @@ -68,15 +68,15 @@ msgstr "" "la commande suivante peut-être utilisé pour afficher le désassemblage de :" "func:`myfunc` ::" -#: ../Doc/library/dis.rst:42 +#: library/dis.rst:42 msgid "(The \"2\" is a line number)." msgstr "(Le \"2\" est un numéro de ligne)." -#: ../Doc/library/dis.rst:45 +#: library/dis.rst:45 msgid "Bytecode analysis" msgstr "Analyse du code intermédiaire" -#: ../Doc/library/dis.rst:49 +#: library/dis.rst:49 msgid "" "The bytecode analysis API allows pieces of Python code to be wrapped in a :" "class:`Bytecode` object that provides easy access to details of the compiled " @@ -86,7 +86,7 @@ msgstr "" "code en Python dans une classe :class:`Bytecode`, qui permet un accès facile " "aux détails du code compilé." -#: ../Doc/library/dis.rst:56 +#: library/dis.rst:56 msgid "" "Analyse the bytecode corresponding to a function, generator, asynchronous " "generator, coroutine, method, string of source code, or a code object (as " @@ -97,7 +97,7 @@ msgstr "" "caractères du code source, ou bien une classe (comme retourne la fonction :" "func:`compile`)." -#: ../Doc/library/dis.rst:60 +#: library/dis.rst:60 msgid "" "This is a convenience wrapper around many of the functions listed below, " "most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " @@ -108,7 +108,7 @@ msgstr "" "instance de la classe :class:`Bytecode` rend les opérations du code " "intermédiaire des instances de :class:`Instruction`." -#: ../Doc/library/dis.rst:64 ../Doc/library/dis.rst:225 +#: library/dis.rst:225 msgid "" "If *first_line* is not ``None``, it indicates the line number that should be " "reported for the first source line in the disassembled code. Otherwise, the " @@ -120,7 +120,7 @@ msgstr "" "Autrement, les informations sur la ligne source sont prises directement à " "partir de la classe du code désassemblé." -#: ../Doc/library/dis.rst:69 +#: library/dis.rst:69 msgid "" "If *current_offset* is not ``None``, it refers to an instruction offset in " "the disassembled code. Setting this means :meth:`.dis` will display a " @@ -131,7 +131,7 @@ msgstr "" "dire que :meth:`.dis` va générer un marqueur de \" l'instruction en cours\" " "contre le code d'opération donné." -#: ../Doc/library/dis.rst:75 +#: library/dis.rst:75 msgid "" "Construct a :class:`Bytecode` instance from the given traceback, setting " "*current_offset* to the instruction responsible for the exception." @@ -139,15 +139,15 @@ msgstr "" "Construisez une instance :class:`Bytecode` à partir de la trace d'appel, en " "mettant *current_offet* à l'instruction responsable de l'exception." -#: ../Doc/library/dis.rst:80 +#: library/dis.rst:80 msgid "The compiled code object." msgstr "Le code compilé objet." -#: ../Doc/library/dis.rst:84 +#: library/dis.rst:84 msgid "The first source line of the code object (if available)" msgstr "La première ligne source du code objet (si disponible)" -#: ../Doc/library/dis.rst:88 +#: library/dis.rst:88 msgid "" "Return a formatted view of the bytecode operations (the same as printed by :" "func:`dis.dis`, but returned as a multi-line string)." @@ -156,7 +156,7 @@ msgstr "" "celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " "plusieurs lignes )." -#: ../Doc/library/dis.rst:93 +#: library/dis.rst:93 msgid "" "Return a formatted multi-line string with detailed information about the " "code object, like :func:`code_info`." @@ -164,21 +164,20 @@ msgstr "" "Retourne une chaîne de caractères de plusieurs lignes formatée avec des " "informations détaillées sur l'objet code comme :func:`code_info`." -#: ../Doc/library/dis.rst:96 ../Doc/library/dis.rst:130 -#: ../Doc/library/dis.rst:176 +#: library/dis.rst:130 library/dis.rst:176 msgid "This can now handle coroutine and asynchronous generator objects." msgstr "" "Cette version supporte la coroutine et les objets générateurs asynchrones." -#: ../Doc/library/dis.rst:99 +#: library/dis.rst:99 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/dis.rst:112 +#: library/dis.rst:112 msgid "Analysis functions" msgstr "Analyse de fonctions" -#: ../Doc/library/dis.rst:114 +#: library/dis.rst:114 msgid "" "The :mod:`dis` module also defines the following analysis functions that " "convert the input directly to the desired output. They can be useful if only " @@ -190,7 +189,7 @@ msgstr "" "peuvent être utiles si il n'y a qu'une seule opération à effectuer, la " "représentation intermédiaire objet n'étant donc pas utile dans ce cas:" -#: ../Doc/library/dis.rst:120 +#: library/dis.rst:120 msgid "" "Return a formatted multi-line string with detailed code object information " "for the supplied function, generator, asynchronous generator, coroutine, " @@ -201,7 +200,7 @@ msgstr "" "générateurs asynchrone, coroutine, la méthode, la chaine de caractères du " "code source ou objet." -#: ../Doc/library/dis.rst:124 +#: library/dis.rst:124 msgid "" "Note that the exact contents of code info strings are highly implementation " "dependent and they may change arbitrarily across Python VMs or Python " @@ -212,7 +211,7 @@ msgstr "" "peuvent changer arbitrairement sous machines virtuelles Python ou les " "versions de Python." -#: ../Doc/library/dis.rst:136 +#: library/dis.rst:136 msgid "" "Print detailed code object information for the supplied function, method, " "source code string or code object to *file* (or ``sys.stdout`` if *file* is " @@ -222,7 +221,7 @@ msgstr "" "méthode, la chaîne de caractère du code source ou du code objet à *file* (ou " "bien ``sys.stdout`` si *file* n'est pas spécifié)." -#: ../Doc/library/dis.rst:140 +#: library/dis.rst:140 msgid "" "This is a convenient shorthand for ``print(code_info(x), file=file)``, " "intended for interactive exploration at the interpreter prompt." @@ -231,12 +230,11 @@ msgstr "" "principalement fait pour l'exploration interactive sur l'invite de " "l'interpréteur." -#: ../Doc/library/dis.rst:145 ../Doc/library/dis.rst:170 -#: ../Doc/library/dis.rst:189 ../Doc/library/dis.rst:213 +#: library/dis.rst:170 library/dis.rst:213 msgid "Added *file* parameter." msgstr "Ajout du paramètre *file*." -#: ../Doc/library/dis.rst:151 +#: library/dis.rst:151 msgid "" "Disassemble the *x* object. *x* can denote either a module, a class, a " "method, a function, a generator, an asynchronous generator, a coroutine, a " @@ -265,8 +263,7 @@ msgstr "" "`compile` avant qu'elles ne soient désassemblées. Si aucun objet n'est " "fourni, cette fonction désassemble les dernières traces d'appel." -#: ../Doc/library/dis.rst:164 ../Doc/library/dis.rst:186 -#: ../Doc/library/dis.rst:210 +#: library/dis.rst:186 library/dis.rst:210 msgid "" "The disassembly is written as text to the supplied *file* argument if " "provided and to ``sys.stdout`` otherwise." @@ -274,7 +271,7 @@ msgstr "" "Le désassemblage est envoyé sous forme de texte à l'argument du fichier " "*file* si il est fourni, et à ``sys.stdout`` sinon." -#: ../Doc/library/dis.rst:167 +#: library/dis.rst:167 msgid "" "The maximal depth of recursion is limited by *depth* unless it is ``None``. " "``depth=0`` means no recursion." @@ -282,13 +279,13 @@ msgstr "" "La profondeur maximale de récursion est limitée par *depth* sauf si elle " "correspond à ``None``. ``depth=0`` indique qu'il n'y a pas de récursion." -#: ../Doc/library/dis.rst:173 +#: library/dis.rst:173 msgid "Implemented recursive disassembling and added *depth* parameter." msgstr "" "Le désassemblage récursif a été implémenté, et le paramètre *depth* a été " "ajouté." -#: ../Doc/library/dis.rst:182 +#: library/dis.rst:182 msgid "" "Disassemble the top-of-stack function of a traceback, using the last " "traceback if none was passed. The instruction causing the exception is " @@ -298,7 +295,7 @@ msgstr "" "la dernière trace d'appels si rien n'a été envoyé. L'instruction à l'origine " "de l'exception est indiquée." -#: ../Doc/library/dis.rst:196 +#: library/dis.rst:196 msgid "" "Disassemble a code object, indicating the last instruction if *lasti* was " "provided. The output is divided in the following columns:" @@ -306,35 +303,35 @@ msgstr "" "Désassemble un code objet, en indiquant la dernière instruction si *lasti* " "est fournie. La sortie est répartie sur les colonnes suivantes :" -#: ../Doc/library/dis.rst:199 +#: library/dis.rst:199 msgid "the line number, for the first instruction of each line" msgstr "le numéro de ligne, pour la première instruction de chaque ligne" -#: ../Doc/library/dis.rst:200 +#: library/dis.rst:200 msgid "the current instruction, indicated as ``-->``," msgstr "l'instruction en cours, indiquée par ``-->``," -#: ../Doc/library/dis.rst:201 +#: library/dis.rst:201 msgid "a labelled instruction, indicated with ``>>``," msgstr "une instruction libellée, indiquée par ``> >``," -#: ../Doc/library/dis.rst:202 +#: library/dis.rst:202 msgid "the address of the instruction," msgstr "l'adresse de l'instruction," -#: ../Doc/library/dis.rst:203 +#: library/dis.rst:203 msgid "the operation code name," msgstr "le nom de le code d'opération," -#: ../Doc/library/dis.rst:204 +#: library/dis.rst:204 msgid "operation parameters, and" msgstr "paramètres de l'opération, et" -#: ../Doc/library/dis.rst:205 +#: library/dis.rst:205 msgid "interpretation of the parameters in parentheses." msgstr "interprétation des paramètres entre parenthèses." -#: ../Doc/library/dis.rst:207 +#: library/dis.rst:207 msgid "" "The parameter interpretation recognizes local and global variable names, " "constant values, branch targets, and compare operators." @@ -343,7 +340,7 @@ msgstr "" "globales, des valeurs constantes, des branchements cibles, et des opérateurs " "de comparaison." -#: ../Doc/library/dis.rst:219 +#: library/dis.rst:219 msgid "" "Return an iterator over the instructions in the supplied function, method, " "source code string or code object." @@ -351,7 +348,7 @@ msgstr "" "Retourne un itérateur sur les instructions dans la fonction fournie, la " "méthode, les chaînes de caractères du code source ou objet." -#: ../Doc/library/dis.rst:222 +#: library/dis.rst:222 msgid "" "The iterator generates a series of :class:`Instruction` named tuples giving " "the details of each operation in the supplied code." @@ -359,7 +356,7 @@ msgstr "" "Cet itérateur génère une série de n-uplets de :class:`Instruction` qui " "donnent les détails de chacune des opérations dans le code fourni." -#: ../Doc/library/dis.rst:235 +#: library/dis.rst:235 msgid "" "This generator function uses the ``co_firstlineno`` and ``co_lnotab`` " "attributes of the code object *code* to find the offsets which are starts of " @@ -368,23 +365,23 @@ msgid "" "to decode it." msgstr "" -#: ../Doc/library/dis.rst:241 +#: library/dis.rst:241 msgid "Line numbers can be decreasing. Before, they were always increasing." msgstr "" "Les numéros de lignes peuvent être décroissants. Avant, ils étaient toujours " "croissants." -#: ../Doc/library/dis.rst:247 +#: library/dis.rst:247 msgid "" -"Detect all offsets in the code object *code* which are jump targets, and " -"return a list of these offsets." +"Detect all offsets in the raw compiled bytecode string *code* which are jump " +"targets, and return a list of these offsets." msgstr "" -#: ../Doc/library/dis.rst:253 +#: library/dis.rst:253 msgid "Compute the stack effect of *opcode* with argument *oparg*." msgstr "" -#: ../Doc/library/dis.rst:255 +#: library/dis.rst:255 msgid "" "If the code has a jump target and *jump* is ``True``, :func:`~stack_effect` " "will return the stack effect of jumping. If *jump* is ``False``, it will " @@ -392,16 +389,16 @@ msgid "" "it will return the maximal stack effect of both cases." msgstr "" -#: ../Doc/library/dis.rst:262 +#: library/dis.rst:262 #, fuzzy msgid "Added *jump* parameter." msgstr "Ajout du paramètre *file*." -#: ../Doc/library/dis.rst:269 +#: library/dis.rst:269 msgid "Python Bytecode Instructions" msgstr "Les instructions du code intermédiaire en Python" -#: ../Doc/library/dis.rst:271 +#: library/dis.rst:271 msgid "" "The :func:`get_instructions` function and :class:`Bytecode` class provide " "details of bytecode instructions as :class:`Instruction` instances:" @@ -410,11 +407,11 @@ msgstr "" "des détails sur le code intermédiaire des instructions comme :class:" "`Instruction` instances:" -#: ../Doc/library/dis.rst:276 +#: library/dis.rst:276 msgid "Details for a bytecode operation" msgstr "Détails sur le code intermédiaire de l'opération" -#: ../Doc/library/dis.rst:280 +#: library/dis.rst:280 msgid "" "numeric code for operation, corresponding to the opcode values listed below " "and the bytecode values in the :ref:`opcode_collections`." @@ -423,185 +420,185 @@ msgstr "" "dessous et les valeurs du code intermédiaire dans la :ref:" "`opcode_collections`." -#: ../Doc/library/dis.rst:286 +#: library/dis.rst:286 msgid "human readable name for operation" msgstr "nom lisible/compréhensible de l'opération" -#: ../Doc/library/dis.rst:291 +#: library/dis.rst:291 msgid "numeric argument to operation (if any), otherwise ``None``" msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" -#: ../Doc/library/dis.rst:296 +#: library/dis.rst:296 msgid "resolved arg value (if known), otherwise same as arg" msgstr "" -#: ../Doc/library/dis.rst:301 +#: library/dis.rst:301 msgid "human readable description of operation argument" msgstr "" -#: ../Doc/library/dis.rst:306 +#: library/dis.rst:306 msgid "start index of operation within bytecode sequence" msgstr "" -#: ../Doc/library/dis.rst:311 +#: library/dis.rst:311 msgid "line started by this opcode (if any), otherwise ``None``" msgstr "" -#: ../Doc/library/dis.rst:316 +#: library/dis.rst:316 msgid "``True`` if other code jumps to here, otherwise ``False``" msgstr "" -#: ../Doc/library/dis.rst:321 +#: library/dis.rst:321 msgid "" "The Python compiler currently generates the following bytecode instructions." msgstr "" -#: ../Doc/library/dis.rst:324 +#: library/dis.rst:324 msgid "**General instructions**" msgstr "" -#: ../Doc/library/dis.rst:328 +#: library/dis.rst:328 msgid "Do nothing code. Used as a placeholder by the bytecode optimizer." msgstr "" -#: ../Doc/library/dis.rst:333 +#: library/dis.rst:333 msgid "Removes the top-of-stack (TOS) item." msgstr "" -#: ../Doc/library/dis.rst:338 +#: library/dis.rst:338 msgid "Swaps the two top-most stack items." msgstr "" -#: ../Doc/library/dis.rst:343 +#: library/dis.rst:343 msgid "" "Lifts second and third stack item one position up, moves top down to " "position three." msgstr "" -#: ../Doc/library/dis.rst:349 +#: library/dis.rst:349 msgid "" -"Lifts second, third and forth stack items one position up, moves top down to " -"position four." +"Lifts second, third and fourth stack items one position up, moves top down " +"to position four." msgstr "" -#: ../Doc/library/dis.rst:357 +#: library/dis.rst:357 msgid "Duplicates the reference on top of the stack." msgstr "" -#: ../Doc/library/dis.rst:364 +#: library/dis.rst:364 msgid "" "Duplicates the two references on top of the stack, leaving them in the same " "order." msgstr "" -#: ../Doc/library/dis.rst:370 +#: library/dis.rst:370 msgid "**Unary operations**" msgstr "" -#: ../Doc/library/dis.rst:372 +#: library/dis.rst:372 msgid "" "Unary operations take the top of the stack, apply the operation, and push " "the result back on the stack." msgstr "" -#: ../Doc/library/dis.rst:377 +#: library/dis.rst:377 msgid "Implements ``TOS = +TOS``." msgstr "" -#: ../Doc/library/dis.rst:382 +#: library/dis.rst:382 msgid "Implements ``TOS = -TOS``." msgstr "" -#: ../Doc/library/dis.rst:387 +#: library/dis.rst:387 msgid "Implements ``TOS = not TOS``." msgstr "" -#: ../Doc/library/dis.rst:392 +#: library/dis.rst:392 msgid "Implements ``TOS = ~TOS``." msgstr "" -#: ../Doc/library/dis.rst:397 +#: library/dis.rst:397 msgid "Implements ``TOS = iter(TOS)``." msgstr "" -#: ../Doc/library/dis.rst:402 +#: library/dis.rst:402 msgid "" "If ``TOS`` is a :term:`generator iterator` or :term:`coroutine` object it is " "left as is. Otherwise, implements ``TOS = iter(TOS)``." msgstr "" -#: ../Doc/library/dis.rst:408 +#: library/dis.rst:408 msgid "**Binary operations**" msgstr "" -#: ../Doc/library/dis.rst:410 +#: library/dis.rst:410 msgid "" "Binary operations remove the top of the stack (TOS) and the second top-most " "stack item (TOS1) from the stack. They perform the operation, and put the " "result back on the stack." msgstr "" -#: ../Doc/library/dis.rst:416 +#: library/dis.rst:416 msgid "Implements ``TOS = TOS1 ** TOS``." msgstr "" -#: ../Doc/library/dis.rst:421 +#: library/dis.rst:421 msgid "Implements ``TOS = TOS1 * TOS``." msgstr "" -#: ../Doc/library/dis.rst:426 +#: library/dis.rst:426 msgid "Implements ``TOS = TOS1 @ TOS``." msgstr "" -#: ../Doc/library/dis.rst:433 +#: library/dis.rst:433 msgid "Implements ``TOS = TOS1 // TOS``." msgstr "" -#: ../Doc/library/dis.rst:438 +#: library/dis.rst:438 msgid "Implements ``TOS = TOS1 / TOS``." msgstr "" -#: ../Doc/library/dis.rst:443 +#: library/dis.rst:443 msgid "Implements ``TOS = TOS1 % TOS``." msgstr "" -#: ../Doc/library/dis.rst:448 +#: library/dis.rst:448 msgid "Implements ``TOS = TOS1 + TOS``." msgstr "" -#: ../Doc/library/dis.rst:453 +#: library/dis.rst:453 msgid "Implements ``TOS = TOS1 - TOS``." msgstr "" -#: ../Doc/library/dis.rst:458 +#: library/dis.rst:458 msgid "Implements ``TOS = TOS1[TOS]``." msgstr "" -#: ../Doc/library/dis.rst:463 +#: library/dis.rst:463 msgid "Implements ``TOS = TOS1 << TOS``." msgstr "" -#: ../Doc/library/dis.rst:468 +#: library/dis.rst:468 msgid "Implements ``TOS = TOS1 >> TOS``." msgstr "" -#: ../Doc/library/dis.rst:473 +#: library/dis.rst:473 msgid "Implements ``TOS = TOS1 & TOS``." msgstr "" -#: ../Doc/library/dis.rst:478 +#: library/dis.rst:478 msgid "Implements ``TOS = TOS1 ^ TOS``." msgstr "" -#: ../Doc/library/dis.rst:483 +#: library/dis.rst:483 msgid "Implements ``TOS = TOS1 | TOS``." msgstr "" -#: ../Doc/library/dis.rst:486 +#: library/dis.rst:486 msgid "**In-place operations**" msgstr "" -#: ../Doc/library/dis.rst:488 +#: library/dis.rst:488 msgid "" "In-place operations are like binary operations, in that they remove TOS and " "TOS1, and push the result back on the stack, but the operation is done in-" @@ -609,92 +606,92 @@ msgid "" "to be) the original TOS1." msgstr "" -#: ../Doc/library/dis.rst:495 +#: library/dis.rst:495 msgid "Implements in-place ``TOS = TOS1 ** TOS``." msgstr "" -#: ../Doc/library/dis.rst:500 +#: library/dis.rst:500 msgid "Implements in-place ``TOS = TOS1 * TOS``." msgstr "" -#: ../Doc/library/dis.rst:505 +#: library/dis.rst:505 msgid "Implements in-place ``TOS = TOS1 @ TOS``." msgstr "" -#: ../Doc/library/dis.rst:512 +#: library/dis.rst:512 msgid "Implements in-place ``TOS = TOS1 // TOS``." msgstr "" -#: ../Doc/library/dis.rst:517 +#: library/dis.rst:517 msgid "Implements in-place ``TOS = TOS1 / TOS``." msgstr "" -#: ../Doc/library/dis.rst:522 +#: library/dis.rst:522 msgid "Implements in-place ``TOS = TOS1 % TOS``." msgstr "" -#: ../Doc/library/dis.rst:527 +#: library/dis.rst:527 msgid "Implements in-place ``TOS = TOS1 + TOS``." msgstr "" -#: ../Doc/library/dis.rst:532 +#: library/dis.rst:532 msgid "Implements in-place ``TOS = TOS1 - TOS``." msgstr "" -#: ../Doc/library/dis.rst:537 +#: library/dis.rst:537 msgid "Implements in-place ``TOS = TOS1 << TOS``." msgstr "" -#: ../Doc/library/dis.rst:542 +#: library/dis.rst:542 msgid "Implements in-place ``TOS = TOS1 >> TOS``." msgstr "" -#: ../Doc/library/dis.rst:547 +#: library/dis.rst:547 msgid "Implements in-place ``TOS = TOS1 & TOS``." msgstr "" -#: ../Doc/library/dis.rst:552 +#: library/dis.rst:552 msgid "Implements in-place ``TOS = TOS1 ^ TOS``." msgstr "" -#: ../Doc/library/dis.rst:557 +#: library/dis.rst:557 msgid "Implements in-place ``TOS = TOS1 | TOS``." msgstr "" -#: ../Doc/library/dis.rst:562 +#: library/dis.rst:562 msgid "Implements ``TOS1[TOS] = TOS2``." msgstr "" -#: ../Doc/library/dis.rst:567 +#: library/dis.rst:567 msgid "Implements ``del TOS1[TOS]``." msgstr "" -#: ../Doc/library/dis.rst:570 +#: library/dis.rst:570 msgid "**Coroutine opcodes**" msgstr "" -#: ../Doc/library/dis.rst:574 +#: library/dis.rst:574 msgid "" "Implements ``TOS = get_awaitable(TOS)``, where ``get_awaitable(o)`` returns " "``o`` if ``o`` is a coroutine object or a generator object with the " "CO_ITERABLE_COROUTINE flag, or resolves ``o.__await__``." msgstr "" -#: ../Doc/library/dis.rst:584 +#: library/dis.rst:584 msgid "Implements ``TOS = TOS.__aiter__()``." msgstr "" -#: ../Doc/library/dis.rst:587 +#: library/dis.rst:587 msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." msgstr "" -#: ../Doc/library/dis.rst:594 +#: library/dis.rst:594 msgid "" "Implements ``PUSH(get_awaitable(TOS.__anext__()))``. See ``GET_AWAITABLE`` " "for details about ``get_awaitable``" msgstr "" -#: ../Doc/library/dis.rst:602 +#: library/dis.rst:602 msgid "" "Terminates an :keyword:`async for` loop. Handles an exception raised when " "awaiting a next item. If TOS is :exc:`StopAsyncIteration` pop 7 values from " @@ -703,48 +700,48 @@ msgid "" "exception handler block is removed from the block stack." msgstr "" -#: ../Doc/library/dis.rst:613 +#: library/dis.rst:613 msgid "" "Resolves ``__aenter__`` and ``__aexit__`` from the object on top of the " "stack. Pushes ``__aexit__`` and result of ``__aenter__()`` to the stack." msgstr "" -#: ../Doc/library/dis.rst:621 +#: library/dis.rst:621 msgid "Creates a new frame object." msgstr "" -#: ../Doc/library/dis.rst:627 +#: library/dis.rst:627 msgid "**Miscellaneous opcodes**" msgstr "" -#: ../Doc/library/dis.rst:631 +#: library/dis.rst:631 msgid "" "Implements the expression statement for the interactive mode. TOS is " "removed from the stack and printed. In non-interactive mode, an expression " "statement is terminated with :opcode:`POP_TOP`." msgstr "" -#: ../Doc/library/dis.rst:638 +#: library/dis.rst:638 msgid "" "Calls ``set.add(TOS1[-i], TOS)``. Used to implement set comprehensions." msgstr "" -#: ../Doc/library/dis.rst:643 +#: library/dis.rst:643 msgid "" -"Calls ``list.append(TOS[-i], TOS)``. Used to implement list comprehensions." +"Calls ``list.append(TOS1[-i], TOS)``. Used to implement list comprehensions." msgstr "" -#: ../Doc/library/dis.rst:648 +#: library/dis.rst:648 msgid "" "Calls ``dict.__setitem__(TOS1[-i], TOS1, TOS)``. Used to implement dict " "comprehensions." msgstr "" -#: ../Doc/library/dis.rst:652 +#: library/dis.rst:652 msgid "Map value is TOS and map key is TOS1. Before, those were reversed." msgstr "" -#: ../Doc/library/dis.rst:655 +#: library/dis.rst:655 msgid "" "For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` and :opcode:" "`MAP_ADD` instructions, while the added value or key/value pair is popped " @@ -752,19 +749,19 @@ msgid "" "further iterations of the loop." msgstr "" -#: ../Doc/library/dis.rst:663 +#: library/dis.rst:663 msgid "Returns with TOS to the caller of the function." msgstr "" -#: ../Doc/library/dis.rst:668 +#: library/dis.rst:668 msgid "Pops TOS and yields it from a :term:`generator`." msgstr "" -#: ../Doc/library/dis.rst:673 +#: library/dis.rst:673 msgid "Pops TOS and delegates to it as a subiterator from a :term:`generator`." msgstr "" -#: ../Doc/library/dis.rst:680 +#: library/dis.rst:680 msgid "" "Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " "set up to an empty ``dict``. This opcode is only emitted if a class or " @@ -772,20 +769,20 @@ msgid "" "statically." msgstr "" -#: ../Doc/library/dis.rst:690 +#: library/dis.rst:690 msgid "" "Loads all symbols not starting with ``'_'`` directly from the module TOS to " "the local namespace. The module is popped after loading all names. This " "opcode implements ``from module import *``." msgstr "" -#: ../Doc/library/dis.rst:697 +#: library/dis.rst:697 msgid "" "Removes one block from the block stack. Per frame, there is a stack of " "blocks, denoting :keyword:`try` statements, and such." msgstr "" -#: ../Doc/library/dis.rst:703 +#: library/dis.rst:703 msgid "" "Removes one block from the block stack. The popped block must be an " "exception handler block, as implicitly created when entering an except " @@ -793,20 +790,20 @@ msgid "" "last three popped values are used to restore the exception state." msgstr "" -#: ../Doc/library/dis.rst:711 +#: library/dis.rst:711 msgid "" "Cleans up the value stack and the block stack. If *preserve_tos* is not " "``0`` TOS first is popped from the stack and pushed on the stack after " "performing other stack operations:" msgstr "" -#: ../Doc/library/dis.rst:715 +#: library/dis.rst:715 msgid "" "If TOS is ``NULL`` or an integer (pushed by :opcode:`BEGIN_FINALLY` or :" "opcode:`CALL_FINALLY`) it is popped from the stack." msgstr "" -#: ../Doc/library/dis.rst:717 +#: library/dis.rst:717 msgid "" "If TOS is an exception type (pushed when an exception has been raised) 6 " "values are popped from the stack, the last three popped values are used to " @@ -814,40 +811,40 @@ msgid "" "block stack." msgstr "" -#: ../Doc/library/dis.rst:722 +#: library/dis.rst:722 msgid "" "It is similar to :opcode:`END_FINALLY`, but doesn't change the bytecode " "counter nor raise an exception. Used for implementing :keyword:`break`, :" "keyword:`continue` and :keyword:`return` in the :keyword:`finally` block." msgstr "" -#: ../Doc/library/dis.rst:731 +#: library/dis.rst:731 msgid "" "Pushes ``NULL`` onto the stack for using it in :opcode:`END_FINALLY`, :" "opcode:`POP_FINALLY`, :opcode:`WITH_CLEANUP_START` and :opcode:" "`WITH_CLEANUP_FINISH`. Starts the :keyword:`finally` block." msgstr "" -#: ../Doc/library/dis.rst:740 +#: library/dis.rst:740 msgid "" "Terminates a :keyword:`finally` clause. The interpreter recalls whether the " "exception has to be re-raised or execution has to be continued depending on " "the value of TOS." msgstr "" -#: ../Doc/library/dis.rst:744 +#: library/dis.rst:744 msgid "" "If TOS is ``NULL`` (pushed by :opcode:`BEGIN_FINALLY`) continue from the " "next instruction. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:746 +#: library/dis.rst:746 msgid "" "If TOS is an integer (pushed by :opcode:`CALL_FINALLY`), sets the bytecode " "counter to TOS. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:748 +#: library/dis.rst:748 msgid "" "If TOS is an exception type (pushed when an exception has been raised) 6 " "values are popped from the stack, the first three popped values are used to " @@ -856,13 +853,13 @@ msgid "" "stack." msgstr "" -#: ../Doc/library/dis.rst:757 +#: library/dis.rst:757 msgid "" "Pushes :func:`builtins.__build_class__` onto the stack. It is later called " "by :opcode:`CALL_FUNCTION` to construct a class." msgstr "" -#: ../Doc/library/dis.rst:763 +#: library/dis.rst:763 msgid "" "This opcode performs several operations before a with block starts. First, " "it loads :meth:`~object.__exit__` from the context manager and pushes it " @@ -874,12 +871,12 @@ msgid "" "or :opcode:`UNPACK_SEQUENCE`)." msgstr "" -#: ../Doc/library/dis.rst:777 +#: library/dis.rst:777 msgid "" "Starts cleaning up the stack when a :keyword:`with` statement block exits." msgstr "" -#: ../Doc/library/dis.rst:779 +#: library/dis.rst:779 msgid "" "At the top of the stack are either ``NULL`` (pushed by :opcode:" "`BEGIN_FINALLY`) or 6 values pushed if an exception has been raised in the " @@ -887,7 +884,7 @@ msgid "" "meth:`~object.__aexit__` bound method." msgstr "" -#: ../Doc/library/dis.rst:784 +#: library/dis.rst:784 msgid "" "If TOS is ``NULL``, calls ``SECOND(None, None, None)``, removes the function " "from the stack, leaving TOS, and pushes ``None`` to the stack. Otherwise " @@ -896,49 +893,49 @@ msgid "" "pushes the result of the call." msgstr "" -#: ../Doc/library/dis.rst:793 +#: library/dis.rst:793 msgid "" "Finishes cleaning up the stack when a :keyword:`with` statement block exits." msgstr "" -#: ../Doc/library/dis.rst:795 +#: library/dis.rst:795 msgid "" "TOS is result of ``__exit__()`` or ``__aexit__()`` function call pushed by :" "opcode:`WITH_CLEANUP_START`. SECOND is ``None`` or an exception type " "(pushed when an exception has been raised)." msgstr "" -#: ../Doc/library/dis.rst:799 +#: library/dis.rst:799 msgid "" "Pops two values from the stack. If SECOND is not None and TOS is true " "unwinds the EXCEPT_HANDLER block which was created when the exception was " "caught and pushes ``NULL`` to the stack." msgstr "" -#: ../Doc/library/dis.rst:804 +#: library/dis.rst:804 msgid "All of the following opcodes use their arguments." msgstr "" -#: ../Doc/library/dis.rst:808 +#: library/dis.rst:808 msgid "" "Implements ``name = TOS``. *namei* is the index of *name* in the attribute :" "attr:`co_names` of the code object. The compiler tries to use :opcode:" "`STORE_FAST` or :opcode:`STORE_GLOBAL` if possible." msgstr "" -#: ../Doc/library/dis.rst:815 +#: library/dis.rst:815 msgid "" "Implements ``del name``, where *namei* is the index into :attr:`co_names` " "attribute of the code object." msgstr "" -#: ../Doc/library/dis.rst:821 +#: library/dis.rst:821 msgid "" "Unpacks TOS into *count* individual values, which are put onto the stack " "right-to-left." msgstr "" -#: ../Doc/library/dis.rst:827 +#: library/dis.rst:827 msgid "" "Implements assignment with a starred target: Unpacks an iterable in TOS into " "individual values, where the total number of values can be smaller than the " @@ -946,136 +943,136 @@ msgid "" "leftover items." msgstr "" -#: ../Doc/library/dis.rst:832 +#: library/dis.rst:832 msgid "" "The low byte of *counts* is the number of values before the list value, the " "high byte of *counts* the number of values after it. The resulting values " "are put onto the stack right-to-left." msgstr "" -#: ../Doc/library/dis.rst:839 +#: library/dis.rst:839 msgid "" "Implements ``TOS.name = TOS1``, where *namei* is the index of name in :attr:" "`co_names`." msgstr "" -#: ../Doc/library/dis.rst:845 +#: library/dis.rst:845 msgid "" "Implements ``del TOS.name``, using *namei* as index into :attr:`co_names`." msgstr "" -#: ../Doc/library/dis.rst:850 +#: library/dis.rst:850 msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." msgstr "" -#: ../Doc/library/dis.rst:855 +#: library/dis.rst:855 msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." msgstr "" -#: ../Doc/library/dis.rst:860 +#: library/dis.rst:860 msgid "Pushes ``co_consts[consti]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:865 +#: library/dis.rst:865 msgid "Pushes the value associated with ``co_names[namei]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:870 +#: library/dis.rst:870 msgid "" "Creates a tuple consuming *count* items from the stack, and pushes the " "resulting tuple onto the stack." msgstr "" -#: ../Doc/library/dis.rst:876 +#: library/dis.rst:876 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." msgstr "" -#: ../Doc/library/dis.rst:881 +#: library/dis.rst:881 msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." msgstr "" -#: ../Doc/library/dis.rst:886 +#: library/dis.rst:886 msgid "" "Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " "that the dictionary holds *count* entries: ``{..., TOS3: TOS2, TOS1: TOS}``." msgstr "" -#: ../Doc/library/dis.rst:890 +#: library/dis.rst:890 msgid "" "The dictionary is created from stack items instead of creating an empty " "dictionary pre-sized to hold *count* items." msgstr "" -#: ../Doc/library/dis.rst:897 +#: library/dis.rst:897 msgid "" -"The version of :opcode:`BUILD_MAP` specialized for constant keys. *count* " -"values are consumed from the stack. The top element on the stack contains a " -"tuple of keys." +"The version of :opcode:`BUILD_MAP` specialized for constant keys. Pops the " +"top element on the stack which contains a tuple of keys, then starting from " +"``TOS1``, pops *count* values to form values in the built dictionary." msgstr "" -#: ../Doc/library/dis.rst:906 +#: library/dis.rst:906 msgid "" "Concatenates *count* strings from the stack and pushes the resulting string " "onto the stack." msgstr "" -#: ../Doc/library/dis.rst:914 +#: library/dis.rst:914 msgid "" "Pops *count* iterables from the stack, joins them in a single tuple, and " "pushes the result. Implements iterable unpacking in tuple displays ``(*x, " "*y, *z)``." msgstr "" -#: ../Doc/library/dis.rst:923 +#: library/dis.rst:923 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but is used for ``f(*x, *y, " "*z)`` call syntax. The stack item at position ``count + 1`` should be the " "corresponding callable ``f``." msgstr "" -#: ../Doc/library/dis.rst:932 +#: library/dis.rst:932 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a list instead " "of tuple. Implements iterable unpacking in list displays ``[*x, *y, *z]``." msgstr "" -#: ../Doc/library/dis.rst:941 +#: library/dis.rst:941 msgid "" "This is similar to :opcode:`BUILD_TUPLE_UNPACK`, but pushes a set instead of " "tuple. Implements iterable unpacking in set displays ``{*x, *y, *z}``." msgstr "" -#: ../Doc/library/dis.rst:950 +#: library/dis.rst:950 msgid "" "Pops *count* mappings from the stack, merges them into a single dictionary, " "and pushes the result. Implements dictionary unpacking in dictionary " "displays ``{**x, **y, **z}``." msgstr "" -#: ../Doc/library/dis.rst:959 +#: library/dis.rst:959 msgid "" "This is similar to :opcode:`BUILD_MAP_UNPACK`, but is used for ``f(**x, **y, " "**z)`` call syntax. The stack item at position ``count + 2`` should be the " "corresponding callable ``f``." msgstr "" -#: ../Doc/library/dis.rst:964 +#: library/dis.rst:964 msgid "" "The position of the callable is determined by adding 2 to the opcode " "argument instead of encoding it in the second byte of the argument." msgstr "" -#: ../Doc/library/dis.rst:971 +#: library/dis.rst:971 msgid "Replaces TOS with ``getattr(TOS, co_names[namei])``." msgstr "" -#: ../Doc/library/dis.rst:976 +#: library/dis.rst:976 msgid "" "Performs a Boolean operation. The operation name can be found in " "``cmp_op[opname]``." msgstr "" -#: ../Doc/library/dis.rst:982 +#: library/dis.rst:982 msgid "" "Imports the module ``co_names[namei]``. TOS and TOS1 are popped and provide " "the *fromlist* and *level* arguments of :func:`__import__`. The module " @@ -1084,42 +1081,42 @@ msgid "" "modifies the namespace." msgstr "" -#: ../Doc/library/dis.rst:991 +#: library/dis.rst:991 msgid "" "Loads the attribute ``co_names[namei]`` from the module found in TOS. The " "resulting object is pushed onto the stack, to be subsequently stored by a :" "opcode:`STORE_FAST` instruction." msgstr "" -#: ../Doc/library/dis.rst:998 +#: library/dis.rst:998 msgid "Increments bytecode counter by *delta*." msgstr "" -#: ../Doc/library/dis.rst:1003 +#: library/dis.rst:1003 msgid "If TOS is true, sets the bytecode counter to *target*. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1010 +#: library/dis.rst:1010 msgid "If TOS is false, sets the bytecode counter to *target*. TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1017 +#: library/dis.rst:1017 msgid "" "If TOS is true, sets the bytecode counter to *target* and leaves TOS on the " "stack. Otherwise (TOS is false), TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1025 +#: library/dis.rst:1025 msgid "" "If TOS is false, sets the bytecode counter to *target* and leaves TOS on the " "stack. Otherwise (TOS is true), TOS is popped." msgstr "" -#: ../Doc/library/dis.rst:1033 +#: library/dis.rst:1033 msgid "Set bytecode counter to *target*." msgstr "" -#: ../Doc/library/dis.rst:1038 +#: library/dis.rst:1038 msgid "" "TOS is an :term:`iterator`. Call its :meth:`~iterator.__next__` method. If " "this yields a new value, push it on the stack (leaving the iterator below " @@ -1127,37 +1124,37 @@ msgid "" "code counter is incremented by *delta*." msgstr "" -#: ../Doc/library/dis.rst:1046 +#: library/dis.rst:1046 msgid "Loads the global named ``co_names[namei]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:1051 +#: library/dis.rst:1051 msgid "" "Pushes a try block from a try-finally or try-except clause onto the block " "stack. *delta* points to the finally block or the first except block." msgstr "" -#: ../Doc/library/dis.rst:1057 +#: library/dis.rst:1057 msgid "" "Pushes the address of the next instruction onto the stack and increments " "bytecode counter by *delta*. Used for calling the finally block as a " "\"subroutine\"." msgstr "" -#: ../Doc/library/dis.rst:1066 +#: library/dis.rst:1066 msgid "" "Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." msgstr "" -#: ../Doc/library/dis.rst:1071 +#: library/dis.rst:1071 msgid "Stores TOS into the local ``co_varnames[var_num]``." msgstr "" -#: ../Doc/library/dis.rst:1076 +#: library/dis.rst:1076 msgid "Deletes local ``co_varnames[var_num]``." msgstr "" -#: ../Doc/library/dis.rst:1081 +#: library/dis.rst:1081 msgid "" "Pushes a reference to the cell contained in slot *i* of the cell and free " "variable storage. The name of the variable is ``co_cellvars[i]`` if *i* is " @@ -1165,52 +1162,52 @@ msgid "" "len(co_cellvars)]``." msgstr "" -#: ../Doc/library/dis.rst:1089 +#: library/dis.rst:1089 msgid "" "Loads the cell contained in slot *i* of the cell and free variable storage. " "Pushes a reference to the object the cell contains on the stack." msgstr "" -#: ../Doc/library/dis.rst:1095 +#: library/dis.rst:1095 msgid "" "Much like :opcode:`LOAD_DEREF` but first checks the locals dictionary before " "consulting the cell. This is used for loading free variables in class " "bodies." msgstr "" -#: ../Doc/library/dis.rst:1104 +#: library/dis.rst:1104 msgid "" "Stores TOS into the cell contained in slot *i* of the cell and free variable " "storage." msgstr "" -#: ../Doc/library/dis.rst:1110 +#: library/dis.rst:1110 msgid "" "Empties the cell contained in slot *i* of the cell and free variable " "storage. Used by the :keyword:`del` statement." msgstr "" -#: ../Doc/library/dis.rst:1118 +#: library/dis.rst:1118 msgid "" "Raises an exception using one of the 3 forms of the ``raise`` statement, " "depending on the value of *argc*:" msgstr "" -#: ../Doc/library/dis.rst:1121 +#: library/dis.rst:1121 msgid "0: ``raise`` (re-raise previous exception)" msgstr "" -#: ../Doc/library/dis.rst:1122 +#: library/dis.rst:1122 msgid "1: ``raise TOS`` (raise exception instance or type at ``TOS``)" msgstr "" -#: ../Doc/library/dis.rst:1123 +#: library/dis.rst:1123 msgid "" "2: ``raise TOS1 from TOS`` (raise exception instance or type at ``TOS1`` " "with ``__cause__`` set to ``TOS``)" msgstr "" -#: ../Doc/library/dis.rst:1129 +#: library/dis.rst:1129 msgid "" "Calls a callable object with positional arguments. *argc* indicates the " "number of positional arguments. The top of the stack contains positional " @@ -1220,11 +1217,11 @@ msgid "" "arguments, and pushes the return value returned by the callable object." msgstr "" -#: ../Doc/library/dis.rst:1137 +#: library/dis.rst:1137 msgid "This opcode is used only for calls with positional arguments." msgstr "" -#: ../Doc/library/dis.rst:1143 +#: library/dis.rst:1143 msgid "" "Calls a callable object with positional (if any) and keyword arguments. " "*argc* indicates the total number of positional and keyword arguments. The " @@ -1237,13 +1234,13 @@ msgid "" "object." msgstr "" -#: ../Doc/library/dis.rst:1153 +#: library/dis.rst:1153 msgid "" "Keyword arguments are packed in a tuple instead of a dictionary, *argc* " "indicates the total number of arguments." msgstr "" -#: ../Doc/library/dis.rst:1160 +#: library/dis.rst:1160 msgid "" "Calls a callable object with variable set of positional and keyword " "arguments. If the lowest bit of *flags* is set, the top of the stack " @@ -1259,64 +1256,66 @@ msgid "" "value returned by the callable object." msgstr "" -#: ../Doc/library/dis.rst:1179 +#: library/dis.rst:1179 msgid "" -"Loads a method named ``co_names[namei]`` from TOS object. TOS is popped and " -"method and TOS are pushed when interpreter can call unbound method directly. " -"TOS will be used as the first argument (``self``) by :opcode:`CALL_METHOD`. " -"Otherwise, ``NULL`` and method is pushed (method is bound method or " -"something else)." +"Loads a method named ``co_names[namei]`` from the TOS object. TOS is popped. " +"This bytecode distinguishes two cases: if TOS has a method with the correct " +"name, the bytecode pushes the unbound method and TOS. TOS will be used as " +"the first argument (``self``) by :opcode:`CALL_METHOD` when calling the " +"unbound method. Otherwise, ``NULL`` and the object return by the attribute " +"lookup are pushed." msgstr "" -#: ../Doc/library/dis.rst:1190 +#: library/dis.rst:1191 msgid "" -"Calls a method. *argc* is number of positional arguments. Keyword arguments " -"are not supported. This opcode is designed to be used with :opcode:" -"`LOAD_METHOD`. Positional arguments are on top of the stack. Below them, " -"two items described in :opcode:`LOAD_METHOD` on the stack. All of them are " -"popped and return value is pushed." +"Calls a method. *argc* is the number of positional arguments. Keyword " +"arguments are not supported. This opcode is designed to be used with :" +"opcode:`LOAD_METHOD`. Positional arguments are on top of the stack. Below " +"them, the two items described in :opcode:`LOAD_METHOD` are on the stack " +"(either ``self`` and an unbound method object or ``NULL`` and an arbitrary " +"callable). All of them are popped and the return value is pushed." msgstr "" -#: ../Doc/library/dis.rst:1201 +#: library/dis.rst:1203 msgid "" "Pushes a new function object on the stack. From bottom to top, the consumed " "stack must consist of values if the argument carries a specified flag value" msgstr "" -#: ../Doc/library/dis.rst:1204 +#: library/dis.rst:1206 msgid "" "``0x01`` a tuple of default values for positional-only and positional-or-" "keyword parameters in positional order" msgstr "" -#: ../Doc/library/dis.rst:1206 +#: library/dis.rst:1208 msgid "``0x02`` a dictionary of keyword-only parameters' default values" msgstr "" -#: ../Doc/library/dis.rst:1207 +#: library/dis.rst:1209 msgid "``0x04`` an annotation dictionary" msgstr "" -#: ../Doc/library/dis.rst:1208 +#: library/dis.rst:1210 msgid "``0x08`` a tuple containing cells for free variables, making a closure" msgstr "" -#: ../Doc/library/dis.rst:1209 +#: library/dis.rst:1211 msgid "the code associated with the function (at TOS1)" msgstr "" -#: ../Doc/library/dis.rst:1210 +#: library/dis.rst:1212 msgid "the :term:`qualified name` of the function (at TOS)" msgstr "" -#: ../Doc/library/dis.rst:1217 +#: library/dis.rst:1219 msgid "" "Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " "``slice(TOS1, TOS)`` is pushed; if it is 3, ``slice(TOS2, TOS1, TOS)`` is " "pushed. See the :func:`slice` built-in function for more information." msgstr "" -#: ../Doc/library/dis.rst:1224 +#: library/dis.rst:1226 msgid "" "Prefixes any opcode which has an argument too big to fit into the default " "one byte. *ext* holds an additional byte which act as higher bits in the " @@ -1324,86 +1323,86 @@ msgid "" "allowed, forming an argument from two-byte to four-byte." msgstr "" -#: ../Doc/library/dis.rst:1232 +#: library/dis.rst:1234 msgid "" "Used for implementing formatted literal strings (f-strings). Pops an " "optional *fmt_spec* from the stack, then a required *value*. *flags* is " "interpreted as follows:" msgstr "" -#: ../Doc/library/dis.rst:1236 +#: library/dis.rst:1238 msgid "``(flags & 0x03) == 0x00``: *value* is formatted as-is." msgstr "" -#: ../Doc/library/dis.rst:1237 +#: library/dis.rst:1239 msgid "" "``(flags & 0x03) == 0x01``: call :func:`str` on *value* before formatting it." msgstr "" -#: ../Doc/library/dis.rst:1239 +#: library/dis.rst:1241 msgid "" "``(flags & 0x03) == 0x02``: call :func:`repr` on *value* before formatting " "it." msgstr "" -#: ../Doc/library/dis.rst:1241 +#: library/dis.rst:1243 msgid "" "``(flags & 0x03) == 0x03``: call :func:`ascii` on *value* before formatting " "it." msgstr "" -#: ../Doc/library/dis.rst:1243 +#: library/dis.rst:1245 msgid "" "``(flags & 0x04) == 0x04``: pop *fmt_spec* from the stack and use it, else " "use an empty *fmt_spec*." msgstr "" -#: ../Doc/library/dis.rst:1246 +#: library/dis.rst:1248 msgid "" "Formatting is performed using :c:func:`PyObject_Format`. The result is " "pushed on the stack." msgstr "" -#: ../Doc/library/dis.rst:1254 +#: library/dis.rst:1256 msgid "" "This is not really an opcode. It identifies the dividing line between " "opcodes which don't use their argument and those that do (``< " "HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." msgstr "" -#: ../Doc/library/dis.rst:1258 +#: library/dis.rst:1260 msgid "" "Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " "ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." msgstr "" -#: ../Doc/library/dis.rst:1266 +#: library/dis.rst:1268 msgid "Opcode collections" msgstr "" -#: ../Doc/library/dis.rst:1268 +#: library/dis.rst:1270 msgid "" "These collections are provided for automatic introspection of bytecode " "instructions:" msgstr "" -#: ../Doc/library/dis.rst:1273 +#: library/dis.rst:1275 msgid "Sequence of operation names, indexable using the bytecode." msgstr "" -#: ../Doc/library/dis.rst:1278 +#: library/dis.rst:1280 msgid "Dictionary mapping operation names to bytecodes." msgstr "" -#: ../Doc/library/dis.rst:1283 +#: library/dis.rst:1285 msgid "Sequence of all compare operation names." msgstr "" -#: ../Doc/library/dis.rst:1288 +#: library/dis.rst:1290 msgid "Sequence of bytecodes that access a constant." msgstr "" -#: ../Doc/library/dis.rst:1293 +#: library/dis.rst:1295 msgid "" "Sequence of bytecodes that access a free variable (note that 'free' in this " "context refers to names in the current scope that are referenced by inner " @@ -1411,22 +1410,22 @@ msgid "" "does *not* include references to global or builtin scopes)." msgstr "" -#: ../Doc/library/dis.rst:1301 +#: library/dis.rst:1303 msgid "Sequence of bytecodes that access an attribute by name." msgstr "" -#: ../Doc/library/dis.rst:1306 +#: library/dis.rst:1308 msgid "Sequence of bytecodes that have a relative jump target." msgstr "" -#: ../Doc/library/dis.rst:1311 +#: library/dis.rst:1313 msgid "Sequence of bytecodes that have an absolute jump target." msgstr "" -#: ../Doc/library/dis.rst:1316 +#: library/dis.rst:1318 msgid "Sequence of bytecodes that access a local variable." msgstr "" -#: ../Doc/library/dis.rst:1321 +#: library/dis.rst:1323 msgid "Sequence of bytecodes of Boolean operations." msgstr "" diff --git a/library/distribution.po b/library/distribution.po index 50f97b18d2..14eaab7fae 100644 --- a/library/distribution.po +++ b/library/distribution.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-10 11:27+0200\n" "PO-Revision-Date: 2018-06-10 15:33+0200\n" diff --git a/library/distutils.po b/library/distutils.po index e1ca8f516d..9114e0129c 100644 --- a/library/distutils.po +++ b/library/distutils.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-09-28 12:38+0200\n" diff --git a/library/doctest.po b/library/doctest.po index 6b227c7a72..cdda6fa46c 100644 --- a/library/doctest.po +++ b/library/doctest.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,63 +14,82 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/doctest.rst:2 +#: library/doctest.rst:2 msgid ":mod:`doctest` --- Test interactive Python examples" -msgstr "" +msgstr ":mod:`doctest` — Exemples de tests interactifs en Python" -#: ../Doc/library/doctest.rst:12 +#: library/doctest.rst:12 msgid "**Source code:** :source:`Lib/doctest.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/doctest.py`" -#: ../Doc/library/doctest.rst:16 +#: library/doctest.rst:16 msgid "" "The :mod:`doctest` module searches for pieces of text that look like " "interactive Python sessions, and then executes those sessions to verify that " "they work exactly as shown. There are several common ways to use doctest:" msgstr "" +"Le module :mod:`doctest` cherche des extraits de texte ressemblant à des " +"sessions Python interactives avant de les exécuter, de façon à vérifier que " +"le fonctionnement correspond exactement à la description. Voici quelques cas " +"d'utilisation de *doctest* :" -#: ../Doc/library/doctest.rst:20 +#: library/doctest.rst:20 msgid "" "To check that a module's docstrings are up-to-date by verifying that all " "interactive examples still work as documented." msgstr "" +"Vérifier que les *docstrings* d'un module sont à jour en vérifiant que tous " +"les exemples interactifs fonctionnent toujours tels que décrits." -#: ../Doc/library/doctest.rst:23 +#: library/doctest.rst:23 msgid "" "To perform regression testing by verifying that interactive examples from a " "test file or a test object work as expected." msgstr "" +"Réaliser un test de régression en vérifiant que les exemples interactifs " +"provenant d'un fichier de test ou d'un objet de test fonctionnent comme " +"prévu." -#: ../Doc/library/doctest.rst:26 +#: library/doctest.rst:26 msgid "" "To write tutorial documentation for a package, liberally illustrated with " "input-output examples. Depending on whether the examples or the expository " "text are emphasized, this has the flavor of \"literate testing\" or " "\"executable documentation\"." msgstr "" +"Rédiger de la documentation sous forme de tutoriel pour un paquet, avec une " +"abondance d'exemples ayant des entrées et des sorties. On pourrait voir ça " +"comme des tests « dans le texte » ou de la « documentation exécutable », " +"selon le point de vue." -#: ../Doc/library/doctest.rst:31 +#: library/doctest.rst:31 msgid "Here's a complete but small example module::" -msgstr "" +msgstr "Voici un petit exemple d'un module qui soit tout de même complet ::" -#: ../Doc/library/doctest.rst:88 +#: library/doctest.rst:88 msgid "" "If you run :file:`example.py` directly from the command line, :mod:`doctest` " "works its magic:" msgstr "" +"L'exécution du fichier :file:`example.py` directement à partir de la ligne " +"de commande démontre la magie de :mod:`doctest` :" -#: ../Doc/library/doctest.rst:96 +#: library/doctest.rst:96 msgid "" "There's no output! That's normal, and it means all the examples worked. " "Pass ``-v`` to the script, and :mod:`doctest` prints a detailed log of what " "it's trying, and prints a summary at the end:" msgstr "" +"Il n'y a pas de sortie ! C'est normal, cela signifie que tous les exemples " +"fonctionnent. Passez ``-v`` au script pour que :mod:`doctest` affiche un " +"journal détaillé de ce qui a été essayé, avant d'afficher un résumé à la " +"fin :" -#: ../Doc/library/doctest.rst:114 +#: library/doctest.rst:114 msgid "And so on, eventually ending with:" -msgstr "" +msgstr "Et ainsi de suite, jusqu'à ce qu'on atteigne :" -#: ../Doc/library/doctest.rst:133 +#: library/doctest.rst:133 msgid "" "That's all you need to know to start making productive use of :mod:" "`doctest`! Jump in. The following sections provide full details. Note that " @@ -78,143 +97,204 @@ msgid "" "libraries. Especially useful examples can be found in the standard test " "file :file:`Lib/test/test_doctest.py`." msgstr "" +"C'est tout ce dont vous avez besoin pour pouvoir commencer une utilisation " +"productive de :mod:`doctest` ! Allez-y. Les sections suivantes donnent tous " +"les détails. Notez qu'il y a plusieurs exemples de *doctests* dans la suite " +"de tests de la bibliothèque standard de Python et dans les autres " +"bibliothèques. Des exemples particulièrement utiles se situent dans le " +"fichier de test standard :file:`Lib/test/test_doctest.py`." -#: ../Doc/library/doctest.rst:143 +#: library/doctest.rst:143 msgid "Simple Usage: Checking Examples in Docstrings" -msgstr "" +msgstr "Utilisation simple : vérifier des exemples dans des *docstrings*" -#: ../Doc/library/doctest.rst:145 +#: library/doctest.rst:145 msgid "" "The simplest way to start using doctest (but not necessarily the way you'll " "continue to do it) is to end each module :mod:`M` with::" msgstr "" +"Le plus simple pour commencer à utiliser *doctest* (mais pas nécessairement " +"la façon avec laquelle vous continuerez) est de terminer chaque module :mod:" +"`M` avec ::" -#: ../Doc/library/doctest.rst:152 +#: library/doctest.rst:152 msgid ":mod:`doctest` then examines docstrings in module :mod:`M`." -msgstr "" +msgstr ":mod:`doctest` examine alors les *docstrings* dans le module :mod:`M`." -#: ../Doc/library/doctest.rst:154 +#: library/doctest.rst:154 msgid "" "Running the module as a script causes the examples in the docstrings to get " "executed and verified::" msgstr "" +"Exécuter le module comme un script a comme conséquence d'exécuter et de " +"vérifier les exemples dans les *docstrings* ::" -#: ../Doc/library/doctest.rst:159 +#: library/doctest.rst:159 msgid "" "This won't display anything unless an example fails, in which case the " "failing example(s) and the cause(s) of the failure(s) are printed to stdout, " "and the final line of output is ``***Test Failed*** N failures.``, where *N* " "is the number of examples that failed." msgstr "" +"Ceci n'affiche rien à moins qu'un exemple échoue ; le cas échéant, les " +"exemples défaillants et les causes du ou des échecs sont affichés sur " +"*stdout*, et la ligne finale de la sortie est ``***Test Failed*** *N " +"failures*.``, où *N* est le nombre d'exemples défaillants." -#: ../Doc/library/doctest.rst:164 +#: library/doctest.rst:164 msgid "Run it with the ``-v`` switch instead::" -msgstr "" +msgstr "À la place, exécutez-la avec l'option de ligne de commande ``-v`` ::" -#: ../Doc/library/doctest.rst:168 +#: library/doctest.rst:168 msgid "" "and a detailed report of all examples tried is printed to standard output, " "along with assorted summaries at the end." msgstr "" +"alors, un rapport détaillé de tous les exemples faisant partie de l'essai " +"est affiché sur la sortie standard, accompagné à la fin de leurs résumés." -#: ../Doc/library/doctest.rst:171 +#: library/doctest.rst:171 msgid "" "You can force verbose mode by passing ``verbose=True`` to :func:`testmod`, " "or prohibit it by passing ``verbose=False``. In either of those cases, " "``sys.argv`` is not examined by :func:`testmod` (so passing ``-v`` or not " "has no effect)." msgstr "" +"Vous pouvez activer le mode verbeux en passant ``verbose=True`` à :func:" +"`testmod`, ou vous le désactiver en lui passant ``verbose=False``. Dans ces " +"deux cas, ``sys.argv`` n'est pas inspecté par :func:`testmod` (ainsi, lui " +"passer ``-v`` ou pas n'a aucun effet)." -#: ../Doc/library/doctest.rst:176 +#: library/doctest.rst:176 msgid "" "There is also a command line shortcut for running :func:`testmod`. You can " "instruct the Python interpreter to run the doctest module directly from the " "standard library and pass the module name(s) on the command line::" msgstr "" +"Il y a un raccourci pour exécuter :func:`testmod` à partir de la ligne de " +"commande. Vous demandez à l'interpréteur Python d'exécuter le module " +"*doctest* directement à partir de la bibliothèque standard afin de passer le " +"ou les noms des modules à partir de la ligne de commande ainsi ::" -#: ../Doc/library/doctest.rst:182 +#: library/doctest.rst:182 msgid "" "This will import :file:`example.py` as a standalone module and run :func:" "`testmod` on it. Note that this may not work correctly if the file is part " "of a package and imports other submodules from that package." msgstr "" +"Ceci importera :file:`example.py` comme un module autonome et exécutera :" +"func:`testmod` sur celui-ci. Notez que ceci peut ne pas fonctionner si le " +"fichier fait partie d'un paquet et importe d'autres sous-modules de ce " +"paquet." -#: ../Doc/library/doctest.rst:186 +#: library/doctest.rst:186 msgid "" "For more information on :func:`testmod`, see section :ref:`doctest-basic-" "api`." msgstr "" +"Pour plus d'informations sur :func:`testmod`, consultez la section :ref:" +"`doctest-basic-api`." -#: ../Doc/library/doctest.rst:192 +#: library/doctest.rst:192 msgid "Simple Usage: Checking Examples in a Text File" -msgstr "" +msgstr "Utilisation simple : vérifier des exemples dans un fichier texte" -#: ../Doc/library/doctest.rst:194 +#: library/doctest.rst:194 msgid "" "Another simple application of doctest is testing interactive examples in a " "text file. This can be done with the :func:`testfile` function::" msgstr "" +"Une autre application simple de *doctest* est de tester des exemples " +"interactifs dans un fichier texte. Ceci est fait avec la fonction :func:" +"`testfile` ::" -#: ../Doc/library/doctest.rst:200 +#: library/doctest.rst:200 msgid "" "That short script executes and verifies any interactive Python examples " "contained in the file :file:`example.txt`. The file content is treated as " "if it were a single giant docstring; the file doesn't need to contain a " "Python program! For example, perhaps :file:`example.txt` contains this:" msgstr "" +"Ce court script exécute et vérifie chacun des exemples Python interactifs " +"contenus dans le fichier :file:`example.txt`. Le contenu du fichier est " +"traité comme une seule *docstring* géante ; le fichier n'a pas besoin de " +"contenir un programme Python ! Par exemple, prenons un fichier :file:" +"`example.txt` contenant :" -#: ../Doc/library/doctest.rst:223 +#: library/doctest.rst:223 msgid "" "Running ``doctest.testfile(\"example.txt\")`` then finds the error in this " "documentation::" msgstr "" +"Exécuter ``doctest.testfile(\"example.txt\")`` recherche les erreurs dans " +"cette documentation ::" -#: ../Doc/library/doctest.rst:234 +#: library/doctest.rst:234 msgid "" "As with :func:`testmod`, :func:`testfile` won't display anything unless an " "example fails. If an example does fail, then the failing example(s) and the " "cause(s) of the failure(s) are printed to stdout, using the same format as :" "func:`testmod`." msgstr "" +"Comme pour :func:`testmod`, :func:`testfile` n'affichera rien sauf si un " +"exemple échoue. Si un exemple échoue, alors le ou les exemples défaillants " +"et leurs causes sont affichés sur *stdout*, dans le même format que :func:" +"`testmod`." -#: ../Doc/library/doctest.rst:239 +#: library/doctest.rst:239 msgid "" "By default, :func:`testfile` looks for files in the calling module's " "directory. See section :ref:`doctest-basic-api` for a description of the " "optional arguments that can be used to tell it to look for files in other " "locations." msgstr "" +"Par défaut, :func:`testfile` cherche les fichiers dans le répertoire où se " +"situe le module qui l'appelle. Consultez la section :ref:`doctest-basic-api` " +"pour une description des options de ligne de commande à utiliser afin de " +"chercher dans d'autres répertoires." -#: ../Doc/library/doctest.rst:243 +#: library/doctest.rst:243 msgid "" "Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the ``-" "v`` command-line switch or with the optional keyword argument *verbose*." msgstr "" +"Comme pour :func:`testmod`, la verbosité de :func:`testfile` peut être " +"ajustée avec l'option de ligne de commande ``-v`` ou avec le mot clé " +"*verbose*." -#: ../Doc/library/doctest.rst:247 +#: library/doctest.rst:247 msgid "" "There is also a command line shortcut for running :func:`testfile`. You can " "instruct the Python interpreter to run the doctest module directly from the " "standard library and pass the file name(s) on the command line::" msgstr "" +"Il y a un raccourci pour exécuter :func:`testfile` à partir de la ligne de " +"commande. Demandez à l'interpréteur Python d'exécuter le module *doctest* " +"directement à partir de la bibliothèque standard et de passer le ou les noms " +"des modules à partir de la ligne de commande ainsi ::" -#: ../Doc/library/doctest.rst:253 +#: library/doctest.rst:253 msgid "" "Because the file name does not end with :file:`.py`, :mod:`doctest` infers " "that it must be run with :func:`testfile`, not :func:`testmod`." msgstr "" +"Puisque le nom du fichier ne se termine pas par :file:`.py`, :mod:`doctest` " +"en déduit qu'il s'exécute à l'aide de :func:`testfile`, et non pas :func:" +"`testmod`." -#: ../Doc/library/doctest.rst:256 +#: library/doctest.rst:256 msgid "" "For more information on :func:`testfile`, see section :ref:`doctest-basic-" "api`." msgstr "" +"Pour plus d'information sur :func:`testfile`, consultez la section :ref:" +"`doctest-basic-api`." -#: ../Doc/library/doctest.rst:262 +#: library/doctest.rst:262 msgid "How It Works" -msgstr "" +msgstr "Comment ça marche" -#: ../Doc/library/doctest.rst:264 +#: library/doctest.rst:264 msgid "" "This section examines in detail how doctest works: which docstrings it looks " "at, how it finds interactive examples, what execution context it uses, how " @@ -223,18 +303,29 @@ msgid "" "examples; for information about actually running doctest on these examples, " "see the following sections." msgstr "" +"Cette section examine en détail le fonctionnement de *doctest* : quelles " +"*docstrings* sont considérées, comment sont trouvés les exemples " +"interactifs, quel est le contexte d'exécution sélectionné, comment les " +"exceptions sont gérées, et de quelles façons les options de ligne de " +"commande peuvent être utilisées pour définir le comportement. Ceci est " +"l'information dont vous avez besoin pour écrire des exemples *doctest* ; " +"pour de l'information sur l'exécution de *doctest* sur ces exemples, " +"consultez les sections suivantes." -#: ../Doc/library/doctest.rst:275 +#: library/doctest.rst:275 msgid "Which Docstrings Are Examined?" -msgstr "" +msgstr "Quelles *docstrings* sont considérées ?" -#: ../Doc/library/doctest.rst:277 +#: library/doctest.rst:277 msgid "" "The module docstring, and all function, class and method docstrings are " "searched. Objects imported into the module are not searched." msgstr "" +"Les *docstrings* du module, de toutes les fonctions, classes, et méthodes " +"sont cherchées. Les objets qui sont importés dans le module ne sont pas " +"cherchés." -#: ../Doc/library/doctest.rst:280 +#: library/doctest.rst:280 msgid "" "In addition, if ``M.__test__`` exists and \"is true\", it must be a dict, " "and each entry maps a (string) name to a function object, class object, or " @@ -242,44 +333,62 @@ msgid "" "searched, and strings are treated as if they were docstrings. In output, a " "key ``K`` in ``M.__test__`` appears with name ::" msgstr "" +"De plus, si ``M.__test__`` existe et qu'il est vrai, il doit être un *dict* " +"dont chaque élément lie un nom (chaîne de caractère) à un objet (fonction, " +"classe, chaîne de caractère). Les *docstrings* d'objets fonctions et classes " +"trouvées dans ``M.__test__`` sont cherchés, et les chaînes de caractères " +"sont traitées comme si elles étaient des *docstrings*. En sortie, une clé " +"``K`` dans ``M.__test__`` apparaît avec le nom ::" -#: ../Doc/library/doctest.rst:288 +#: library/doctest.rst:288 msgid "" "Any classes found are recursively searched similarly, to test docstrings in " "their contained methods and nested classes." msgstr "" +"Toute classe trouvée est ainsi cherchée récursivement, afin de tester les " +"*docstrings* contenues dans leurs méthodes et leurs classes imbriquées." -#: ../Doc/library/doctest.rst:299 +#: library/doctest.rst:299 msgid "How are Docstring Examples Recognized?" -msgstr "" +msgstr "Comment les exemples *docstring* sont-ils identifiés ?" -#: ../Doc/library/doctest.rst:301 +#: library/doctest.rst:301 msgid "" "In most cases a copy-and-paste of an interactive console session works fine, " "but doctest isn't trying to do an exact emulation of any specific Python " "shell." msgstr "" +"Dans la plupart des cas, un copier-coller d'une séance interactive de " +"console fonctionne bien, mais *doctest* n'essaye pas de faire une simulation " +"exacte d'un *shell* Python spécifique." -#: ../Doc/library/doctest.rst:326 +#: library/doctest.rst:326 msgid "" "Any expected output must immediately follow the final ``'>>> '`` or ``'... " "'`` line containing the code, and the expected output (if any) extends to " "the next ``'>>> '`` or all-whitespace line." msgstr "" +"Toute sortie souhaitée doit immédiatement suivre le dernier ``'>>> '`` ou le " +"dernier ``'... '`` contenant le code, et la sortie souhaitée, s'il y en a " +"une, s'étend jusqu'au prochain ``'>>> '`` ou à la prochaine ligne vide." -#: ../Doc/library/doctest.rst:330 +#: library/doctest.rst:330 msgid "The fine print:" -msgstr "" +msgstr "En détail :" -#: ../Doc/library/doctest.rst:332 +#: library/doctest.rst:332 msgid "" "Expected output cannot contain an all-whitespace line, since such a line is " "taken to signal the end of expected output. If expected output does contain " "a blank line, put ```` in your doctest example each place a blank " "line is expected." msgstr "" +"La sortie souhaitée ne peut pas contenir une ligne vide, puisque contenir " +"une telle ligne signale la fin de la sortie souhaitée. Si la sortie " +"souhaitée doit contenir une ligne vide, ajoutez ```` dans votre " +"exemple *doctest* à chaque endroit où une ligne vide est souhaitée." -#: ../Doc/library/doctest.rst:337 +#: library/doctest.rst:337 msgid "" "All hard tab characters are expanded to spaces, using 8-column tab stops. " "Tabs in output generated by the tested code are not modified. Because any " @@ -293,43 +402,71 @@ msgid "" "different algorithm for handling tabs by writing a custom :class:" "`DocTestParser` class." msgstr "" - -#: ../Doc/library/doctest.rst:349 +"Tous les caractères de tabulation insécables (*hard tab characters*) sont " +"convertis en espaces, en utilisant des taquets de tabulation de 8 espaces. " +"Les tabulations se trouvant dans la sortie générée par le code test ne sont " +"pas modifiées. Comme tout caractère de tabulation insécable *est* converti, " +"ceci veut dire que si le code de sortie inclut des caractères de tabulation " +"insécables, alors la seule façon que le *doctest* peut réussir est si " +"l'option :const:`NORMALIZE_WHITESPACE` ou si :ref:`directive ` a cours. De façon alternative, le test peut être ré-écrit afin " +"de capturer la sortie et de la comparer à un ensemble de valeurs attendues, " +"et ce, en tant qu'étape du test. Cette gestion des tabulations à la source a " +"été obtenue suite à un processus d'essais et d'erreurs ; il a été démontré " +"que c'était là la façon de les gérer qui soit la moins susceptible de " +"générer des erreurs. Il est possible d'utiliser un algorithme différent pour " +"la gestion des tabulations en rédigeant une classe sur mesure :class:" +"`DocTestParser`." + +#: library/doctest.rst:349 msgid "" "Output to stdout is captured, but not output to stderr (exception tracebacks " "are captured via a different means)." msgstr "" +"La sortie vers *stdout* est capturée, mais pas la sortie vers *stderr* (les " +"traces d'appel sont capturées par d'autres moyens)." -#: ../Doc/library/doctest.rst:352 +#: library/doctest.rst:352 msgid "" "If you continue a line via backslashing in an interactive session, or for " "any other reason use a backslash, you should use a raw docstring, which will " "preserve your backslashes exactly as you type them::" msgstr "" +"Si vous souhaitez conserver les barres obliques inversées telles quelles " +"lorsque vous terminez une ligne avec une barre oblique inversée dans une " +"séance interactive, ou quand vous utilisez une telle barre pour toute autre " +"raison, vous devez utiliser une *docstring* brute ::" -#: ../Doc/library/doctest.rst:361 +#: library/doctest.rst:361 msgid "" "Otherwise, the backslash will be interpreted as part of the string. For " "example, the ``\\n`` above would be interpreted as a newline character. " "Alternatively, you can double each backslash in the doctest version (and not " "use a raw string)::" msgstr "" +"Sinon, la barre oblique inversée est interprétée comme faisant partie de la " +"chaîne de caractères. Par exemple, le ``\\n`` ci-dessus est interprété comme " +"un caractère de saut de ligne. De façon alternative, vous pouvez doubler " +"chaque barre oblique inversée dans la version *doctest* (et n'utilisez pas " +"dans ce cas de *docstring* brute) ::" -#: ../Doc/library/doctest.rst:370 +#: library/doctest.rst:370 msgid "The starting column doesn't matter::" -msgstr "" +msgstr "La colonne de départ n'a pas d'importance ::" -#: ../Doc/library/doctest.rst:377 +#: library/doctest.rst:377 msgid "" "and as many leading whitespace characters are stripped from the expected " "output as appeared in the initial ``'>>> '`` line that started the example." msgstr "" +"et autant d'espaces sont retirés de la sortie attendue qu'il y avait " +"d'espaces avant la ligne commençant par ``'>>> '``." -#: ../Doc/library/doctest.rst:384 +#: library/doctest.rst:384 msgid "What's the Execution Context?" -msgstr "" +msgstr "Quel est le contexte d'exécution ?" -#: ../Doc/library/doctest.rst:386 +#: library/doctest.rst:386 msgid "" "By default, each time :mod:`doctest` finds a docstring to test, it uses a " "*shallow copy* of :mod:`M`'s globals, so that running tests doesn't change " @@ -339,18 +476,30 @@ msgid "" "names defined earlier in the docstring being run. Examples cannot see names " "defined in other docstrings." msgstr "" +"Par défaut, chaque fois que :mod:`doctest` trouve une *docstring* à tester, " +"il utilise une *copie superficielle* des variables globales de :mod:`M`, de " +"telle façon que l'exécution de tests ne change pas les variables globales " +"réelles du module et que l'exécution d'un unique test dans :mod:`M` ne " +"puisse laisser traîner des miettes pouvant accidentellement causer la " +"réussite d'un autre test. Ceci signifie que les exemples peuvent utiliser " +"librement n'importe quel nom défini au niveau supérieur dans :mod:`M` ainsi " +"que les noms définis précédemment dans la *docstring* en cours d'exécution. " +"Les exemples ne peuvent voir les noms définis dans d'autres *docstrings*." -#: ../Doc/library/doctest.rst:394 +#: library/doctest.rst:394 msgid "" "You can force use of your own dict as the execution context by passing " "``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." msgstr "" +"Vous pouvez forcer l'utilisation de votre propre *dict* comme contexte " +"d'exécution en passant ``globs=your_dict`` à :func:`testmod` ou encore, à :" +"func:`testfile`." -#: ../Doc/library/doctest.rst:401 +#: library/doctest.rst:401 msgid "What About Exceptions?" -msgstr "" +msgstr "Qu'en est-il des exceptions ?" -#: ../Doc/library/doctest.rst:403 +#: library/doctest.rst:403 msgid "" "No problem, provided that the traceback is the only output produced by the " "example: just paste in the traceback. [#]_ Since tracebacks contain details " @@ -358,53 +507,78 @@ msgid "" "numbers), this is one case where doctest works hard to be flexible in what " "it accepts." msgstr "" +"Pas de problèmes, tant que la trace d'appels est la seule sortie produite " +"par l'exemple : il suffit d'ajouter la trace. [#]_ Comme les traces d'appels " +"contiennent des détails qui sont sujets à changement rapide (par exemple, le " +"chemin exact vers un fichier et les numéros de ligne), ceci est un cas où " +"*doctest* fait un effort pour être flexible dans ce qu'il accepte." -#: ../Doc/library/doctest.rst:409 +#: library/doctest.rst:409 msgid "Simple example::" -msgstr "" +msgstr "Exemple simple ::" -#: ../Doc/library/doctest.rst:416 +#: library/doctest.rst:416 msgid "" "That doctest succeeds if :exc:`ValueError` is raised, with the ``list." "remove(x): x not in list`` detail as shown." msgstr "" +"Ce *doctest* réussit si :exc:`ValueError` est levée, avec le détail ``list." +"remote(x): x not in list`` tel que montré." -#: ../Doc/library/doctest.rst:419 +#: library/doctest.rst:419 msgid "" "The expected output for an exception must start with a traceback header, " "which may be either of the following two lines, indented the same as the " "first line of the example::" msgstr "" +"La sortie attendue pour une exception doit commencer par un en-tête de trace " +"d'appels, qui peut être l'une des deux lignes suivantes, avec la même " +"indentation que la première ligne de l'exemple ::" -#: ../Doc/library/doctest.rst:426 +#: library/doctest.rst:426 msgid "" "The traceback header is followed by an optional traceback stack, whose " "contents are ignored by doctest. The traceback stack is typically omitted, " "or copied verbatim from an interactive session." msgstr "" +"L'en-tête de la trace d'appels est suivi par une pile optionnelle de trace " +"d'appels, dont le contenu est ignoré par *doctest*. La trace d'appels est " +"habituellement omise, ou est copiée verbatim à partir d'une séance " +"interactive." -#: ../Doc/library/doctest.rst:430 +#: library/doctest.rst:430 msgid "" "The traceback stack is followed by the most interesting part: the line(s) " "containing the exception type and detail. This is usually the last line of " "a traceback, but can extend across multiple lines if the exception has a " "multi-line detail::" msgstr "" +"La pile de trace d'appels est suivie par la partie la plus intéressante : la " +"ou les lignes contenant le type et le détail de l'exception. Ceci est " +"habituellement la dernière ligne de la trace d'appels ; dans le cas où " +"l'exception a un détail sur plusieurs lignes, il est possible de prolonger " +"sur plusieurs lignes ::" -#: ../Doc/library/doctest.rst:442 +#: library/doctest.rst:442 msgid "" "The last three lines (starting with :exc:`ValueError`) are compared against " "the exception's type and detail, and the rest are ignored." msgstr "" +"Les trois dernières lignes (en commençant par :exc:`ValueError`) sont " +"comparées avec le type et le détail de l'exception ; tout le reste est " +"ignoré." -#: ../Doc/library/doctest.rst:445 +#: library/doctest.rst:445 msgid "" "Best practice is to omit the traceback stack, unless it adds significant " "documentation value to the example. So the last example is probably better " "as::" msgstr "" +"La pratique optimale est d'omettre la pile de trace d'appels, à moins que " +"celle-ci ait une valeur significative de documentation de l'exemple. Ainsi, " +"le dernier exemple est probablement meilleur tel qui suit ::" -#: ../Doc/library/doctest.rst:455 +#: library/doctest.rst:455 msgid "" "Note that tracebacks are treated very specially. In particular, in the " "rewritten example, the use of ``...`` is independent of doctest's :const:" @@ -412,12 +586,20 @@ msgid "" "just as well be three (or three hundred) commas or digits, or an indented " "transcript of a Monty Python skit." msgstr "" +"Prenez note que les traces d'appels sont traitées de façon vraiment " +"particulière. Précisément, dans l'exemple ré-écrit, l'utilisation de ``...`` " +"est indépendante de l'option *doctest* :const:`ELLIPSIS`. Les points de " +"suspension dans cet exemple peuvent être omis, ou peuvent aussi être trois " +"(ou trois cents) virgules ou chiffres, ou une retranscription indentée d'une " +"parodie de Monty Python." -#: ../Doc/library/doctest.rst:461 +#: library/doctest.rst:461 msgid "Some details you should read once, but won't need to remember:" msgstr "" +"Quelques détails que vous devriez lire une fois, mais que vous pouvez " +"oublier :" -#: ../Doc/library/doctest.rst:463 +#: library/doctest.rst:463 msgid "" "Doctest can't guess whether your expected output came from an exception " "traceback or from ordinary printing. So, e.g., an example that expects " @@ -426,8 +608,15 @@ msgid "" "ordinary output rarely begins with a traceback header line, so this doesn't " "create real problems." msgstr "" +"*Doctest* ne peut pas deviner si votre sortie attendue provient d'une trace " +"d'appels issue d'une exception ou d'un affichage ordinaire. Ainsi, si nous " +"avons un exemple s'attendant à obtenir ``ValueError: 42 is prime``, celui-ci " +"réussira peu importe si :exc:`ValueError` est réellement levée ou si " +"l'exemple affiche simplement ce texte de trace d'appels. Dans la pratique, " +"une sortie ordinaire commence rarement par une ligne d'en-tête de trace " +"d'appels ; ainsi, ceci ne pose pas de vrai problème." -#: ../Doc/library/doctest.rst:470 +#: library/doctest.rst:470 msgid "" "Each line of the traceback stack (if present) must be indented further than " "the first line of the example, *or* start with a non-alphanumeric character. " @@ -435,15 +624,25 @@ msgid "" "with an alphanumeric is taken to be the start of the exception detail. Of " "course this does the right thing for genuine tracebacks." msgstr "" +"Chaque ligne de la trace d'appel (s'il y en a) doit soit être indentée d'un " +"niveau supplémentaire au niveau de la première ligne de l'exemple *ou* doit " +"commencer par un caractère qui ne soit pas alphanumérique. La première ligne " +"suivant l'en-tête de la trace d'appels qui soit indentée similairement et " +"qui commence par un caractère alphanumérique est comprise comme étant le " +"début du détail de l'exception. Bien sûr, ceci fait la chose adéquate pour " +"les traces d'appels véritables." -#: ../Doc/library/doctest.rst:476 +#: library/doctest.rst:476 msgid "" "When the :const:`IGNORE_EXCEPTION_DETAIL` doctest option is specified, " "everything following the leftmost colon and any module information in the " "exception name is ignored." msgstr "" +"Lorsque l'option de *doctest* :const:`IGNORE_EXCEPTION_DETAIL` est définie, " +"tout ce qui suit le point-virgule se trouvant le plus à gauche ainsi que " +"toute information liée au module dans le nom de l'exception sont ignorés." -#: ../Doc/library/doctest.rst:480 +#: library/doctest.rst:480 msgid "" "The interactive shell omits the traceback header line for some :exc:" "`SyntaxError`\\ s. But doctest uses the traceback header line to " @@ -451,26 +650,37 @@ msgid "" "need to test a :exc:`SyntaxError` that omits the traceback header, you will " "need to manually add the traceback header line to your test example." msgstr "" +"Le shell interactif omet la ligne d'en-tête de la trace d'appels pour " +"certaines erreurs :exc:`SyntaxError`. Ceci étant dit, *doctest* utilise la " +"ligne d'en-tête de la trace d'appels afin de faire une distinction entre les " +"exceptions et les autres types d'erreurs. Ainsi, dans les rares cas où vous " +"avez besoin de tester une erreur :exc:`SyntaxError` qui omet l'en-tête de la " +"trace d'appels, il vous est nécessaire d'ajouter manuellement la ligne d'en-" +"tête de la trace d'appels à l'exemple de test." -#: ../Doc/library/doctest.rst:488 +#: library/doctest.rst:488 msgid "" "For some :exc:`SyntaxError`\\ s, Python displays the character position of " "the syntax error, using a ``^`` marker::" msgstr "" -#: ../Doc/library/doctest.rst:497 +#: library/doctest.rst:497 msgid "" "Since the lines showing the position of the error come before the exception " "type and detail, they are not checked by doctest. For example, the " "following test would pass, even though it puts the ``^`` marker in the wrong " "location::" msgstr "" +"Comme les lignes dénotant la position de l'erreur précèdent le type et le " +"détail de l'exception, elles ne sont pas vérifiées par *doctest*. Par " +"exemple, le test suivant réussira, même si le marqueur ``^`` n'est pas à la " +"bonne place ::" -#: ../Doc/library/doctest.rst:513 +#: library/doctest.rst:513 msgid "Option Flags" -msgstr "" +msgstr "Options de ligne de commande" -#: ../Doc/library/doctest.rst:515 +#: library/doctest.rst:515 msgid "" "A number of option flags control various aspects of doctest's behavior. " "Symbolic names for the flags are supplied as module constants, which can be :" @@ -479,18 +689,28 @@ msgid "" "and may be passed to the doctest command line interface via the ``-o`` " "option." msgstr "" +"Un ensemble d'options de ligne de commande contrôle différents aspects du " +"comportement de *doctest*. Pour les options, des noms symboliques sont " +"fournis comme des constantes de module, qui peuvent être composés par un OU " +"bit à bit (:ref:`bitwise ORed `) et passés à diverses fonctions. " +"Les noms peuvent aussi être utilisés dans des :ref:`instructions doctest " +"`, et peuvent être passés à l'interface de ligne de " +"commande de *doctest* à l'aide de l'option ``-o``." -#: ../Doc/library/doctest.rst:521 +#: library/doctest.rst:521 msgid "The ``-o`` command line option." -msgstr "" +msgstr "L'option de ligne de commande ``-o``." -#: ../Doc/library/doctest.rst:524 +#: library/doctest.rst:524 msgid "" "The first group of options define test semantics, controlling aspects of how " "doctest decides whether actual output matches an example's expected output:" msgstr "" +"Le premier groupe d'options définit les sémantiques de test, de façon à " +"contrôler comment *doctest* décide si la sortie obtenue correspond à la " +"sortie attendue de l'exemple :" -#: ../Doc/library/doctest.rst:530 +#: library/doctest.rst:530 msgid "" "By default, if an expected output block contains just ``1``, an actual " "output block containing just ``1`` or just ``True`` is considered to be a " @@ -501,8 +721,18 @@ msgid "" "output still work in these cases. This option will probably go away, but " "not for several years." msgstr "" +"Par défaut, si un bloc de sortie attendu contient uniquement un ``1``, un " +"vrai bloc de sortie contenant uniquement un ``1`` ou un ``True`` sera " +"considéré comme étant une correspondance ; de façon similaire, nous avons " +"une correspondance pour ``0`` et ``False``. Lorsque l'option :const:" +"`DONT_ACCEPT_TRUE_FOR_1` est précisée, aucune de ces substitutions n'est " +"acceptée. Le comportement par défaut s'ajuste au fait que Python a changé le " +"type de renvoi de plusieurs fonctions, passant de nombres entiers à des " +"booléens ; les *doctests* s'attendant à une sortie de \"petit " +"entier\" (*little integer*) fonctionnent encore dans ces cas. Cette option " +"disparaîtra probablement, mais pas avant plusieurs années." -#: ../Doc/library/doctest.rst:542 +#: library/doctest.rst:542 msgid "" "By default, if an expected output block contains a line containing only the " "string ````, then that line will match a blank line in the actual " @@ -510,8 +740,15 @@ msgid "" "is the only way to communicate that a blank line is expected. When :const:" "`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not allowed." msgstr "" +"Par défaut, si un bloc de sortie attendue contient une ligne contenant " +"uniquement la chaîne de caractères ````, alors cette ligne sera " +"en correspondance avec une ligne vide dans la sortie réelle. Puisqu'une " +"véritable ligne vide permet de délimiter la sortie attendue, ceci est la " +"seule façon de communiquer qu'une ligne vide est souhaitée. Lorsque " +"l'option :const:`DONT_ACCEPT_BLANKLINE` est précisée, cette substitution " +"n'est pas permise." -#: ../Doc/library/doctest.rst:551 +#: library/doctest.rst:551 msgid "" "When specified, all sequences of whitespace (blanks and newlines) are " "treated as equal. Any sequence of whitespace within the expected output " @@ -520,8 +757,16 @@ msgid "" "useful when a line of expected output is very long, and you want to wrap it " "across multiple lines in your source." msgstr "" +"Lorsque précisé, toutes les séquences de caractères d'espacement et de " +"caractères de saut de ligne sont traitées comme équivalentes. Toute séquence " +"de caractères d'espacement à l'intérieur de la sortie attendue correspondra " +"alors à toute séquence de caractères d'espacement à l'intérieur de la sortie " +"réelle. Par défaut, les caractères d'espacement doivent correspondre de " +"façon exacte. L'option :const:`NORMALIZE_WHITESPACE` est particulièrement " +"utile lorsqu'une ligne de sortie attendue est très longue, et que l'on " +"souhaite la répartir sur plusieurs lignes dans le fichier source." -#: ../Doc/library/doctest.rst:562 +#: library/doctest.rst:562 msgid "" "When specified, an ellipsis marker (``...``) in the expected output can " "match any substring in the actual output. This includes substrings that " @@ -529,8 +774,16 @@ msgid "" "this simple. Complicated uses can lead to the same kinds of \"oops, it " "matched too much!\" surprises that ``.*`` is prone to in regular expressions." msgstr "" +"Lorsque précisé, un marqueur de points de suspension (``...``) dans la " +"sortie attendue peut correspondre à n'importe quelle partie de chaîne de " +"caractères dans la sortie réelle. Ceci inclut les parties qui traversent les " +"frontières de lignes, ainsi que les parties vides de chaînes de caractères ; " +"ainsi, il est préférable d'en faire une utilisation simple. Les usages " +"complexes mènent aux mêmes surprises du type \"oups, il y avait trop de " +"correspondances !\" que l'utilisation de ``.*`` dans les expressions " +"régulières." -#: ../Doc/library/doctest.rst:571 +#: library/doctest.rst:571 msgid "" "When specified, an example that expects an exception passes if an exception " "of the expected type is raised, even if the exception detail does not " @@ -538,15 +791,24 @@ msgid "" "the actual exception raised is ``ValueError: 3*14``, but will fail, e.g., " "if :exc:`TypeError` is raised." msgstr "" +"Lorsque précisé, un exemple qui s'attend à une exception réussit le test si " +"une exception du type attendu est levée, même si le détail de l'exception ne " +"correspond pas. Par exemple, un exemple s'attendant à ``ValueError: 42`` " +"réussira si l'exception réellement levée est ``ValueError: 3*14``, mais " +"échouera si par exemple :exc:`TypeError` est levée." -#: ../Doc/library/doctest.rst:577 +#: library/doctest.rst:577 msgid "" "It will also ignore the module name used in Python 3 doctest reports. Hence " "both of these variations will work with the flag specified, regardless of " "whether the test is run under Python 2.7 or Python 3.2 (or later versions)::" msgstr "" +"Il fera fi du nom de module utilisé dans les rapports *doctest* de Python 3. " +"Ainsi, ces deux variations fonctionneront avec l'option précisée, peu " +"importe si le test est exécuté avec Python 2.7 ou Python 3.2 (ou des " +"versions ultérieures) ::" -#: ../Doc/library/doctest.rst:589 +#: library/doctest.rst:589 msgid "" "Note that :const:`ELLIPSIS` can also be used to ignore the details of the " "exception message, but such a test may still fail based on whether or not " @@ -557,21 +819,36 @@ msgid "" "support :ref:`doctest directives ` and ignore them as " "irrelevant comments). For example::" msgstr "" +"Prendre note que :const:`ELLIPSIS` peut aussi être utilisée afin d'ignorer " +"les détails du message d'exception, mais un tel test peut tout de même " +"échouer si les détails du module sont affichés comme faisant partie du nom " +"de l'exception. L'utilisation de :const:`IGNORE_EXCEPTION_DETAIL` et des " +"détails de Python 2.3 est aussi la seule façon claire d'écrire un *doctest* " +"qui ne se soucie pas du détail d'exception tout en continuant de réussir, et " +"ce, pour Python 2.3 ou antérieur (ces versions ne supportent pas les :ref:" +"`instructions doctest `, les ignorant et les traitant " +"comme des commentaires sans pertinence). Par exemple ::" -#: ../Doc/library/doctest.rst:603 +#: library/doctest.rst:603 msgid "" "passes under Python 2.3 and later Python versions with the flag specified, " "even though the detail changed in Python 2.4 to say \"does not\" instead of " "\"doesn't\"." msgstr "" +"réussit sous Python 2.3 ainsi que pour les versions ultérieures de Python, " +"avec l'option précisée, même si le détail a été changé dans Python 2.4 pour " +"mentionner *\"does not\"* plutôt que *\"doesn't\"* (ne fait pas)." -#: ../Doc/library/doctest.rst:607 +#: library/doctest.rst:607 msgid "" ":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " "to the module containing the exception under test." msgstr "" +"Maintenant, :const:`IGNORE_EXCEPTION_DETAIL` permet aussi d'ignorer toute " +"information liée au module contenant l'exception qui est en train d'être " +"testée." -#: ../Doc/library/doctest.rst:614 +#: library/doctest.rst:614 msgid "" "When specified, do not run the example at all. This can be useful in " "contexts where doctest examples serve as both documentation and test cases, " @@ -579,33 +856,50 @@ msgid "" "be checked. E.g., the example's output might be random; or the example " "might depend on resources which would be unavailable to the test driver." msgstr "" +"Lorsque précisé, cesse complètement l'exécution de tous les exemples. Ceci " +"peut être utile dans des contextes où les exemples *doctest* sont à la fois " +"de la documentation et des cas de tests, et qu'un exemple doit être inclus " +"pour des raisons de documentation, mais ne devrait pas être vérifié. Par " +"exemple, la sortie de l'exemple doit être aléatoire ; ou encore, lorsque " +"l'exemple peut dépendre de ressources inatteignables pour l'exécuteur de " +"test." -#: ../Doc/library/doctest.rst:620 +#: library/doctest.rst:620 msgid "" "The SKIP flag can also be used for temporarily \"commenting out\" examples." msgstr "" +"L'option *SKIP* peut aussi être utilisée temporairement afin de commenter " +"des exemples et d'en empêcher l'exécution." -#: ../Doc/library/doctest.rst:625 +#: library/doctest.rst:625 msgid "A bitmask or'ing together all the comparison flags above." msgstr "" +"Un masque binaire effectuant une composition avec OU de toutes les options " +"de comparaisons ci-dessus." -#: ../Doc/library/doctest.rst:627 +#: library/doctest.rst:627 msgid "The second group of options controls how test failures are reported:" msgstr "" +"Le deuxième groupe d'options détermine comment les échecs de tests sont " +"signalés :" -#: ../Doc/library/doctest.rst:632 +#: library/doctest.rst:632 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "are displayed using a unified diff." msgstr "" +"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " +"et réelles multi-lignes sont affichées dans une *diff* unifiée." -#: ../Doc/library/doctest.rst:638 +#: library/doctest.rst:638 msgid "" "When specified, failures that involve multi-line expected and actual outputs " "will be displayed using a context diff." msgstr "" +"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " +"et réelles multi-lignes sont affichées dans une *diff* de contexte." -#: ../Doc/library/doctest.rst:644 +#: library/doctest.rst:644 msgid "" "When specified, differences are computed by ``difflib.Differ``, using the " "same algorithm as the popular :file:`ndiff.py` utility. This is the only " @@ -614,8 +908,15 @@ msgid "" "output contains letter ``l``, a line is inserted with a caret marking the " "mismatching column positions." msgstr "" +"Lorsque précisé, les différences sont obtenues grâce à ``difflib.Differ``, " +"en utilisant le même algorithme que le populaire utilitaire :file:`ndiff." +"py`. Ceci est la seule méthode qui puisse faire la différence à l'intérieur " +"des lignes ainsi que parmi les lignes prises conjointement. Par exemple, si " +"une ligne de sortie attendue contient le chiffre ``1`` alors que la sortie " +"réelle contient la lettre ``l``, une ligne est insérée avec un marqueur " +"caret démarquant les positions de colonnes où il n'y a pas de correspondance." -#: ../Doc/library/doctest.rst:653 +#: library/doctest.rst:653 msgid "" "When specified, display the first failing example in each doctest, but " "suppress output for all remaining examples. This will prevent doctest from " @@ -625,32 +926,52 @@ msgid "" "remaining examples are still run, and still count towards the total number " "of failures reported; only the output is suppressed." msgstr "" +"Lorsque précisé, le premier exemple défaillant de chaque *doctest* est " +"affiché, mais la sortie est supprimée pour tous les autres exemples. Ceci " +"empêche *doctest* de rapporter les exemples adéquats qui échouent du fait " +"d'échecs précédents ; ceci peut aussi cacher des exemples inadéquats qui " +"échouent de façon indépendante au premier échec. Lorsque :const:" +"`REPORT_ONLY_FIRST_FAILURE` est précisé, les exemples restants sont toujours " +"exécutés, et sont toujours comptabilisés dans le nombre total des lignes " +"échouant ; seulement la sortie est omise." -#: ../Doc/library/doctest.rst:664 +#: library/doctest.rst:664 msgid "" "When specified, exit after the first failing example and don't attempt to " "run the remaining examples. Thus, the number of failures reported will be at " "most 1. This flag may be useful during debugging, since examples after the " "first failure won't even produce debugging output." msgstr "" +"Lorsque précisé, mettre fin à l'exécution après le premier exemple " +"défaillant et ne pas essayer d'exécuter les exemples restants. Ainsi, le " +"nombre d'échecs rapporté sera au plus un (1). Cette option peut être utile " +"durant le débogage, étant donné que les exemples suivant le premier échec ne " +"produiront aucune sortie de débogage." -#: ../Doc/library/doctest.rst:669 +#: library/doctest.rst:669 msgid "" "The doctest command line accepts the option ``-f`` as a shorthand for ``-o " "FAIL_FAST``." msgstr "" +"La ligne de commande de *doctest* accepte l'option ``-f`` comme un raccourci " +"de ``-o FAIL_FAST``." -#: ../Doc/library/doctest.rst:677 +#: library/doctest.rst:677 msgid "A bitmask or'ing together all the reporting flags above." msgstr "" +"Un masque binaire effectuant une composition avec le OU de toutes les " +"options de signalement ci-dessus." -#: ../Doc/library/doctest.rst:680 +#: library/doctest.rst:680 msgid "" "There is also a way to register new option flag names, though this isn't " "useful unless you intend to extend :mod:`doctest` internals via subclassing:" msgstr "" +"Il y a aussi une façon d'enregistrer des nouveaux noms d'option, quoique " +"ceci n'est pas utile sauf dans le cas où vous devez faire une extension pour " +"le code interne de :mod:`doctest` par le biais d'une sous-classe :" -#: ../Doc/library/doctest.rst:686 +#: library/doctest.rst:686 msgid "" "Create a new option flag with a given name, and return the new flag's " "integer value. :func:`register_optionflag` can be used when subclassing :" @@ -658,36 +979,50 @@ msgid "" "are supported by your subclasses. :func:`register_optionflag` should always " "be called using the following idiom::" msgstr "" +"Crée une nouvelle option avec un nom donné, et renvoie la valeur en nombre " +"entier de la nouvelle option. La fonction :func:`register_optionflag` peut " +"être utilisée lors de la création de sous-classes à partir de :class:" +"`OutputChecker` ou :class:`DocTestRunner` pour créer de nouvelles options " +"qui sont supportées par vos sous-classes. La fonction :func:" +"`register_optionflag` devrait toujours être appelée par l'expression " +"suivante ::" -#: ../Doc/library/doctest.rst:702 +#: library/doctest.rst:702 msgid "Directives" -msgstr "" +msgstr "Instructions" -#: ../Doc/library/doctest.rst:704 +#: library/doctest.rst:704 msgid "" "Doctest directives may be used to modify the :ref:`option flags ` for an individual example. Doctest directives are special Python " "comments following an example's source code:" msgstr "" +"Les instructions *doctest* peuvent être utilisées afin de modifier les :ref:" +"`options ` pour un exemple individuel. Les instructions " +"*doctest* sont des commentaires Python spéciaux suivant le code source d'un " +"exemple :" -#: ../Doc/library/doctest.rst:715 +#: library/doctest.rst:715 msgid "" "Whitespace is not allowed between the ``+`` or ``-`` and the directive " "option name. The directive option name can be any of the option flag names " "explained above." msgstr "" -#: ../Doc/library/doctest.rst:719 +#: library/doctest.rst:719 msgid "" "An example's doctest directives modify doctest's behavior for that single " "example. Use ``+`` to enable the named behavior, or ``-`` to disable it." msgstr "" +"Les instructions d'un exemple *doctest* modifient le comportement de " +"*doctest* et ce, seulement pour cet exemple. Utilisez ``+`` pour activer le " +"comportement nommé, ou ``-`` pour le désactiver." -#: ../Doc/library/doctest.rst:722 +#: library/doctest.rst:722 msgid "For example, this test passes::" msgstr "" -#: ../Doc/library/doctest.rst:728 +#: library/doctest.rst:728 msgid "" "Without the directive it would fail, both because the actual output doesn't " "have two blanks before the single-digit list elements, and because the " @@ -695,26 +1030,26 @@ msgid "" "a directive to do so::" msgstr "" -#: ../Doc/library/doctest.rst:736 +#: library/doctest.rst:736 msgid "" "Multiple directives can be used on a single physical line, separated by " "commas::" msgstr "" -#: ../Doc/library/doctest.rst:742 +#: library/doctest.rst:742 msgid "" "If multiple directive comments are used for a single example, then they are " "combined::" msgstr "" -#: ../Doc/library/doctest.rst:749 +#: library/doctest.rst:749 msgid "" "As the previous example shows, you can add ``...`` lines to your example " "containing only directives. This can be useful when an example is too long " "for a directive to comfortably fit on the same line::" msgstr "" -#: ../Doc/library/doctest.rst:757 +#: library/doctest.rst:757 msgid "" "Note that since all options are disabled by default, and directives apply " "only to the example they appear in, enabling options (via ``+`` in a " @@ -723,12 +1058,20 @@ msgid "" "defaults. In such cases, disabling an option via ``-`` in a directive can " "be useful." msgstr "" +"Prendre note que puisque toutes les options sont désactivées par défaut, et " +"comme les instructions s'appliquent uniquement aux exemples dans lesquelles " +"elles apparaissent, activer les options (par le biais de ``+`` dans une " +"instruction) est habituellement le seul choix ayant du sens. Toutefois, les " +"options peuvent aussi être passées aux fonctions qui exécutent les " +"*doctests*, définissant de nouvelles valeurs par défaut. Dans de tels cas, " +"désactiver une option par l'utilisation de ``-`` dans une instruction peut " +"être utile." -#: ../Doc/library/doctest.rst:767 +#: library/doctest.rst:767 msgid "Warnings" msgstr "Avertissements" -#: ../Doc/library/doctest.rst:769 +#: library/doctest.rst:769 msgid "" ":mod:`doctest` is serious about requiring exact matches in expected output. " "If even a single character doesn't match, the test fails. This will " @@ -737,85 +1080,112 @@ msgid "" "doesn't guarantee that the element is printed in any particular order, so a " "test like ::" msgstr "" +"Le module :mod:`doctest` est rigoureux pour ce qui est d'inclure des " +"correspondances exactes dans la sortie attendue. Si un seul caractère ne " +"correspond pas, le test échoue. Ceci vous surprendra probablement quelques " +"fois, alors que vous apprenez exactement ce que Python garantit et ne " +"garantit pas pour qui est des sorties. Par exemple, lorsqu'on affiche un " +"ensemble (set), Python ne garantit pas que les éléments sont affichés dans " +"un ordre particulier ; ainsi un test tel que ::" -#: ../Doc/library/doctest.rst:778 +#: library/doctest.rst:778 msgid "is vulnerable! One workaround is to do ::" -msgstr "" +msgstr "est vulnérable ! Une alternative est de faire ::" -#: ../Doc/library/doctest.rst:783 +#: library/doctest.rst:783 msgid "instead. Another is to do ::" -msgstr "" +msgstr "à la place. Une autre façon de faire est ::" -#: ../Doc/library/doctest.rst:791 +#: library/doctest.rst:791 msgid "" "Before Python 3.6, when printing a dict, Python did not guarantee that the " "key-value pairs was printed in any particular order." msgstr "" +"Avant Python 3.6, lorsque Python affichait un *dict*, il ne garantissait pas " +"que les paires clés-valeurs suivaient un ordre particulier." -#: ../Doc/library/doctest.rst:794 +#: library/doctest.rst:794 msgid "There are others, but you get the idea." -msgstr "" +msgstr "Il y en a d'autres, mais vous saisissez l'idée." -#: ../Doc/library/doctest.rst:796 +#: library/doctest.rst:796 msgid "" "Another bad idea is to print things that embed an object address, like ::" msgstr "" -#: ../Doc/library/doctest.rst:804 +#: library/doctest.rst:804 msgid "" "The :const:`ELLIPSIS` directive gives a nice approach for the last example::" msgstr "" -#: ../Doc/library/doctest.rst:809 +#: library/doctest.rst:809 msgid "" "Floating-point numbers are also subject to small output variations across " "platforms, because Python defers to the platform C library for float " "formatting, and C libraries vary widely in quality here. ::" msgstr "" +"Les nombres à virgule flottante sont aussi sujets à de petites variations à " +"la sortie, tout dépendamment de la plateforme utilisée, étant donné que " +"Python s'en remet à la bibliothèque de la plateforme C pour la mise-en-forme " +"des *floats*, et les bibliothèques C varient grandement pour ce qui de leur " +"qualité sur ce point. ::" -#: ../Doc/library/doctest.rst:820 +#: library/doctest.rst:820 msgid "" "Numbers of the form ``I/2.**J`` are safe across all platforms, and I often " "contrive doctest examples to produce numbers of that form::" msgstr "" -#: ../Doc/library/doctest.rst:826 +#: library/doctest.rst:826 msgid "" "Simple fractions are also easier for people to understand, and that makes " "for better documentation." msgstr "" +"Les fractions simples sont aussi plus faciles à comprendre, et cela fait une " +"meilleure documentation." -#: ../Doc/library/doctest.rst:833 +#: library/doctest.rst:833 msgid "Basic API" -msgstr "" +msgstr "API de base" -#: ../Doc/library/doctest.rst:835 +#: library/doctest.rst:835 msgid "" "The functions :func:`testmod` and :func:`testfile` provide a simple " "interface to doctest that should be sufficient for most basic uses. For a " "less formal introduction to these two functions, see sections :ref:`doctest-" "simple-testmod` and :ref:`doctest-simple-testfile`." msgstr "" +"Les fonctions :func:`testmod` et :func:`testfile` fournissent une interface " +"simple pour *doctest* qui est suffisante pour les cas d'usage les plus " +"élémentaires. Pour une introduction moins formelle à ces deux fonctions, " +"voir les sections :ref:`doctest-simple-testmod` et :ref:`doctest-simple-" +"testfile`." -#: ../Doc/library/doctest.rst:843 +#: library/doctest.rst:843 msgid "" "All arguments except *filename* are optional, and should be specified in " "keyword form." msgstr "" +"Tous les arguments sauf *filename* sont optionnels, et doivent être précisés " +"sous forme lettrée." -#: ../Doc/library/doctest.rst:846 +#: library/doctest.rst:846 msgid "" "Test examples in the file named *filename*. Return ``(failure_count, " "test_count)``." msgstr "" +"Teste les exemples dans le fichier nommé *filename*. Renvoie " +"``(failure_count, test_count)``." -#: ../Doc/library/doctest.rst:849 +#: library/doctest.rst:849 msgid "" "Optional argument *module_relative* specifies how the filename should be " "interpreted:" msgstr "" +"L'argument optionnel *module_relative* précise comment le nom de fichier " +"doit être interprété :" -#: ../Doc/library/doctest.rst:852 +#: library/doctest.rst:852 msgid "" "If *module_relative* is ``True`` (the default), then *filename* specifies an " "OS-independent module-relative path. By default, this path is relative to " @@ -824,21 +1194,34 @@ msgid "" "should use ``/`` characters to separate path segments, and may not be an " "absolute path (i.e., it may not begin with ``/``)." msgstr "" +"Si *module_relative* prend la valeur ``True`` (la valeur par défaut), alors " +"*filename* précise un chemin relatif au module qui soit indépendant du " +"système d'exploitation (*OS*). Par défaut, ce chemin est relatif au " +"répertoire du module appelant ; mais si l'argument *package* est précisé, " +"alors il est relatif à ce paquet. Pour garantir l'indépendance quant au " +"système d'exploitation, *filename* doit utiliser des caractères ``/`` pour " +"séparer chaque segment de chemin, et ne peut pas être un chemin absolu " +"(c'est-à-dire qu'il ne peut pas commencer par ``/``)." -#: ../Doc/library/doctest.rst:859 +#: library/doctest.rst:859 msgid "" "If *module_relative* is ``False``, then *filename* specifies an OS-specific " "path. The path may be absolute or relative; relative paths are resolved " "with respect to the current working directory." msgstr "" +"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " +"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " +"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." -#: ../Doc/library/doctest.rst:863 +#: library/doctest.rst:863 msgid "" "Optional argument *name* gives the name of the test; by default, or if " "``None``, ``os.path.basename(filename)`` is used." msgstr "" +"L'option *name* désigne le nom du test ; par défaut, ou si ``None`` est " +"passé en argument, ``os.path.basename(filename)`` est utilisé." -#: ../Doc/library/doctest.rst:866 +#: library/doctest.rst:866 msgid "" "Optional argument *package* is a Python package or the name of a Python " "package whose directory should be used as the base directory for a module-" @@ -846,16 +1229,26 @@ msgid "" "directory is used as the base directory for module-relative filenames. It " "is an error to specify *package* if *module_relative* is ``False``." msgstr "" +"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " +"répertoire doit être utilisé comme le répertoire principal pour un nom de " +"fichier lié à un module. Si aucun paquet n'est spécifié, le répertoire du " +"module appelé à l'exécution est utilisé comme le répertoire principal pour " +"les noms de fichiers liés au module. C'est une erreur que de spécifier " +"*package* si *module_relative* a ``False`` comme valeur." -#: ../Doc/library/doctest.rst:872 +#: library/doctest.rst:872 msgid "" "Optional argument *globs* gives a dict to be used as the globals when " "executing examples. A new shallow copy of this dict is created for the " "doctest, so its examples start with a clean slate. By default, or if " "``None``, a new empty dict is used." msgstr "" +"L'option *globs* spécifie un *dict* à utiliser comme *globals* lorsque des " +"exemples sont exécutés. Une copie superficielle de ce *dict* est créée pour " +"le *doctest* ; ainsi, ces exemples commencent avec un état vide. Par défaut, " +"ou si ``None`` est passé en argument, un nouveau *dict* vide est utilisé." -#: ../Doc/library/doctest.rst:877 +#: library/doctest.rst:877 msgid "" "Optional argument *extraglobs* gives a dict merged into the globals used to " "execute examples. This works like :meth:`dict.update`: if *globs* and " @@ -867,85 +1260,131 @@ msgid "" "passing an *extraglobs* dict mapping the generic name to the subclass to be " "tested." msgstr "" +"L'option *extraglobs* spécifie un *dict* intégré dans les variables globales " +"utilisées pour exécuter l'exemple. Ceci fonctionne comme :meth:`dict." +"update` : si *globs* et *extraglobs* ont une clé commune, la valeur associée " +"à *extraglobs* apparaît dans le *dict* combiné. Par défaut, ou si ``None`` " +"est passé en argument, aucune variable globale supplémentaire est utilisée. " +"Ceci est une fonctionnalité avancée qui permet la configuration des " +"*doctests*. Par exemple, un *doctest* peut être rédigé pour une classe de " +"base, en utilisant un nom générique pour la classe, puis réutilisé afin de " +"tester un nombre indéfini de sous-classes en passant un *dict* *extraglobs* " +"reliant le nom générique à la sous-classe qui doit être testée." -#: ../Doc/library/doctest.rst:886 +#: library/doctest.rst:886 msgid "" "Optional argument *verbose* prints lots of stuff if true, and prints only " "failures if false; by default, or if ``None``, it's true if and only if ``'-" "v'`` is in ``sys.argv``." msgstr "" +"L'option *verbose* affiche une grande quantité d'information si elle est " +"vraie, et affiche uniquement les défaillances si elle est fausse ; par " +"défaut, ou si ``None``, celle-ci est vraie si et seulement si ``-v`` est " +"présent dans ``sys.argv``." -#: ../Doc/library/doctest.rst:890 +#: library/doctest.rst:890 msgid "" "Optional argument *report* prints a summary at the end when true, else " "prints nothing at the end. In verbose mode, the summary is detailed, else " "the summary is very brief (in fact, empty if all tests passed)." msgstr "" +"L'option *report* affiche un résumé à la fin lorsque vraie ; sinon, rien " +"n'est affiché à la fin. En mode *verbose*, le résumé est détaillé, sinon le " +"résumé est très bref (en fait, vide si tous les tests ont réussi)." -#: ../Doc/library/doctest.rst:894 +#: library/doctest.rst:894 msgid "" "Optional argument *optionflags* (default value 0) takes the :ref:`bitwise OR " "` of option flags. See section :ref:`doctest-options`." msgstr "" +"L'option *optionflags* (dont la valeur par défaut est de zéro) calcule la " +"valeur :ref:`bitwise OR ` des options de ligne de commande. Voir la " +"section :ref:`doctest-options`." -#: ../Doc/library/doctest.rst:898 +#: library/doctest.rst:898 msgid "" "Optional argument *raise_on_error* defaults to false. If true, an exception " "is raised upon the first failure or unexpected exception in an example. " "This allows failures to be post-mortem debugged. Default behavior is to " "continue running examples." msgstr "" +"L'option *raise_on_error* est fausse par défaut. Si elle est vraie, une " +"exception est levée à la première défaillance ou à la première exception qui " +"ne soit prévue dans l'exemple. Ceci permet aux défaillances d'être analysées " +"lors d'un post-mortem. Le comportement par défaut est de poursuivre " +"l'exécution des exemples." -#: ../Doc/library/doctest.rst:903 ../Doc/library/doctest.rst:1043 +#: library/doctest.rst:1043 msgid "" "Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) " "that should be used to extract tests from the files. It defaults to a " "normal parser (i.e., ``DocTestParser()``)." msgstr "" +"L'option *parser* définit une classe ou une sous-classe :class:" +"`DocTestParser` qui doit être utilisée pour extraire les tests des fichiers. " +"Par défaut, on utilise un analyseur normal (c'est-à-dire, " +"``DocTestParser()``)." -#: ../Doc/library/doctest.rst:907 ../Doc/library/doctest.rst:1047 +#: library/doctest.rst:1047 msgid "" "Optional argument *encoding* specifies an encoding that should be used to " "convert the file to unicode." msgstr "" +"L'option *encoding* définit un encodage à utiliser pour convertir le fichier " +"en format *unicode*." -#: ../Doc/library/doctest.rst:913 +#: library/doctest.rst:913 msgid "" "All arguments are optional, and all except for *m* should be specified in " "keyword form." msgstr "" +"Toutes les options sont facultatives, et toutes sauf *m* doivent être " +"définies en format lettré." -#: ../Doc/library/doctest.rst:916 +#: library/doctest.rst:916 msgid "" "Test examples in docstrings in functions and classes reachable from module " "*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " "starting with ``m.__doc__``." msgstr "" +"Ceci teste les exemples en *docstrings* dans les fonctions et les classes " +"accessibles depuis le module *m* (ou depuis le module :mod:`__main__` si *m* " +"n'a pas été défini ou est ``None``), en commençant par ``m.__doc__``." -#: ../Doc/library/doctest.rst:920 +#: library/doctest.rst:920 msgid "" "Also test examples reachable from dict ``m.__test__``, if it exists and is " "not ``None``. ``m.__test__`` maps names (strings) to functions, classes and " "strings; function and class docstrings are searched for examples; strings " "are searched directly, as if they were docstrings." msgstr "" +"Ceci teste aussi les exemples accessibles depuis le *dict* ``m.__test__``, " +"si et seulement s'il existe et qu'il n'est pas ``None``. Le *dict* ``m." +"__test__`` associe des noms (chaînes de caractères) à des fonctions, des " +"classes et des chaînes de caractères ; les *docstrings* de fonctions et de " +"classes sont fouillées pour des exemples ; les chaînes de caractères sont " +"fouillées directement, comme si elles étaient des *docstrings*." -#: ../Doc/library/doctest.rst:925 +#: library/doctest.rst:925 msgid "" "Only docstrings attached to objects belonging to module *m* are searched." msgstr "" +"Seulement les *docstrings* attribuées à des objets appartenant au module *m* " +"sont fouillées." -#: ../Doc/library/doctest.rst:927 +#: library/doctest.rst:927 msgid "Return ``(failure_count, test_count)``." -msgstr "" +msgstr "Renvoie ``(failure_count, test_count)``." -#: ../Doc/library/doctest.rst:929 +#: library/doctest.rst:929 msgid "" "Optional argument *name* gives the name of the module; by default, or if " "``None``, ``m.__name__`` is used." msgstr "" +"L'option *name* donne le nom du module ; par défaut, ou si ``None``, ``m." +"__name__`` est utilisé." -#: ../Doc/library/doctest.rst:932 +#: library/doctest.rst:932 msgid "" "Optional argument *exclude_empty* defaults to false. If true, objects for " "which no doctests are found are excluded from consideration. The default is " @@ -954,57 +1393,83 @@ msgid "" "output for objects with no tests. The *exclude_empty* argument to the newer :" "class:`DocTestFinder` constructor defaults to true." msgstr "" +"L'option *exclude_empty* prend la valeur faux par défaut. Si la valeur est " +"vraie, les objets pour lesquels aucun *doctest* n'est trouvé ne sont pas " +"pris en compte. Le défaut est un bricolage permettant la compatibilité à " +"rebours, de façon à ce que le code qui utilise toujours :meth:`doctest." +"master.summarize` en conjonction avec :func:`testmod` puisse continuer " +"d'obtenir des sorties pour les objets n'ayant aucun test. L'option " +"*exclude_empty* dans le constructeur de la classe plus récente :class:" +"`DocTestFinder` prend vrai comme valeur par défaut." -#: ../Doc/library/doctest.rst:939 +#: library/doctest.rst:939 msgid "" "Optional arguments *extraglobs*, *verbose*, *report*, *optionflags*, " "*raise_on_error*, and *globs* are the same as for function :func:`testfile` " "above, except that *globs* defaults to ``m.__dict__``." msgstr "" +"Les options *extraglobs*, *verbose*, *report*, *optionflags*, " +"*raise_on_error*, et *globs* sont les mêmes que pour la fonction :func:" +"`testfile` ci-dessus, sauf pour *globs*, qui est ``m.__dict__`` par défaut." -#: ../Doc/library/doctest.rst:946 +#: library/doctest.rst:946 msgid "" "Test examples associated with object *f*; for example, *f* may be a string, " "a module, a function, or a class object." msgstr "" +"Les exemples de test associés à l'objet *f* ; par exemple, *f* peut être une " +"chaîne de caractères, un module, une fonction, ou un objet de classe." -#: ../Doc/library/doctest.rst:949 +#: library/doctest.rst:949 msgid "" "A shallow copy of dictionary argument *globs* is used for the execution " "context." msgstr "" +"Une copie superficielle de l'argument-dictionnaire *globs* est utilisée pour " +"le contexte d'exécution." -#: ../Doc/library/doctest.rst:951 +#: library/doctest.rst:951 msgid "" -"Optional argument *name* is used in failure messages, and defaults to ``" -"\"NoName\"``." +"Optional argument *name* is used in failure messages, and defaults to " +"``\"NoName\"``." msgstr "" +"L'option *name* est utilisée pour les messages d'échec, et prend " +"``\"NoName\"`` comme valeur par défaut." -#: ../Doc/library/doctest.rst:954 +#: library/doctest.rst:954 msgid "" "If optional argument *verbose* is true, output is generated even if there " "are no failures. By default, output is generated only in case of an example " "failure." msgstr "" +"Si l'option *verbose* est vraie, les sorties sont générées même s'il n'y a " +"aucun échec. Par défaut, la sortie est générée seulement si un exemple " +"échoue." -#: ../Doc/library/doctest.rst:957 +#: library/doctest.rst:957 msgid "" "Optional argument *compileflags* gives the set of flags that should be used " "by the Python compiler when running the examples. By default, or if " "``None``, flags are deduced corresponding to the set of future features " "found in *globs*." msgstr "" +"L'option *compileflags* donne l'ensemble des options qui doit être utilisée " +"par le compilateur Python lorsqu'il exécute les exemples. Par défaut, ou si " +"``None``, les options sont inférées à partir de l'ensemble des " +"fonctionnalités futures trouvées dans *globs*." -#: ../Doc/library/doctest.rst:961 +#: library/doctest.rst:961 msgid "" "Optional argument *optionflags* works as for function :func:`testfile` above." msgstr "" +"L'option *optionflags* fonctionne similairement à la fonction :func:" +"`testfile` ci-dessus." -#: ../Doc/library/doctest.rst:967 +#: library/doctest.rst:967 msgid "Unittest API" -msgstr "" +msgstr "API de tests unitaires" -#: ../Doc/library/doctest.rst:969 +#: library/doctest.rst:969 msgid "" "As your collection of doctest'ed modules grows, you'll want a way to run all " "their doctests systematically. :mod:`doctest` provides two functions that " @@ -1012,20 +1477,33 @@ msgid "" "files containing doctests. To integrate with :mod:`unittest` test " "discovery, include a :func:`load_tests` function in your test module::" msgstr "" +"Au fur et à mesure que la collection de modules testés avec *doctest* " +"s'agrandira, vous allez souhaiter avoir une façon d'exécuter " +"systématiquement tous les *doctests*. Le module :mod:`doctest` fournit deux " +"fonctions qui peuvent être utilisées afin de créer des suites de tests " +"unitaires :mod:`unittest` à partir des modules et des fichiers textes " +"contenant des *doctests*. Afin d'intégrer la découverte fournie par :mod:" +"`unittest`, il suffit d'ajouter une fonction :func:`load_tests` dans votre " +"module de test ::" -#: ../Doc/library/doctest.rst:983 +#: library/doctest.rst:983 msgid "" "There are two main functions for creating :class:`unittest.TestSuite` " "instances from text files and modules with doctests:" msgstr "" +"Il y a deux fonctions principales pour créer des instances de la classe :" +"class:`unittest.TestSuite` à partir de fichiers textes et de modules ayant " +"des *doctests* :" -#: ../Doc/library/doctest.rst:989 +#: library/doctest.rst:989 msgid "" "Convert doctest tests from one or more text files to a :class:`unittest." "TestSuite`." msgstr "" +"Convertit des tests *doctest* à partir d'un ou plusieurs fichiers vers une " +"classe :class:`unittest.TestSuite`." -#: ../Doc/library/doctest.rst:992 +#: library/doctest.rst:992 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs the interactive examples in each file. If an example in " @@ -1033,22 +1511,32 @@ msgid "" "`failureException` exception is raised showing the name of the file " "containing the test and a (sometimes approximate) line number." msgstr "" +"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée dans le " +"cadriciel de tests unitaires et exécute les exemples interactifs trouvés " +"dans chaque fichier. Si un exemple de n'importe quel fichier échoue, alors " +"le test unitaire de synthèse échoue aussi, et une exception :exc:" +"`failureException` est levée, affichant le nom du fichier contenant le test " +"et un numéro de ligne (celui-ci est parfois approximatif)." -#: ../Doc/library/doctest.rst:998 +#: library/doctest.rst:998 msgid "Pass one or more paths (as strings) to text files to be examined." msgstr "" +"Passe un ou plusieurs chemins (sous forme de chaînes de caractères) à des " +"fichiers textes afin d'être vérifiés." -#: ../Doc/library/doctest.rst:1000 +#: library/doctest.rst:1000 msgid "Options may be provided as keyword arguments:" -msgstr "" +msgstr "Les options peuvent être fournies comme des options lettrées :" -#: ../Doc/library/doctest.rst:1002 +#: library/doctest.rst:1002 msgid "" "Optional argument *module_relative* specifies how the filenames in *paths* " "should be interpreted:" msgstr "" +"L'option *module_relative* précise comment les noms de fichiers dans *paths* " +"doivent être interprétés :" -#: ../Doc/library/doctest.rst:1005 +#: library/doctest.rst:1005 msgid "" "If *module_relative* is ``True`` (the default), then each filename in " "*paths* specifies an OS-independent module-relative path. By default, this " @@ -1058,15 +1546,26 @@ msgid "" "segments, and may not be an absolute path (i.e., it may not begin with ``/" "``)." msgstr "" +"Si *module_relative* a ``True`` comme valeur (valeur par défaut), alors " +"chaque nom de fichier dans *paths* précise un chemin relatif au module qui " +"soit indépendant du système d'exploitation. Par défaut, ce chemin est " +"relatif au répertoire du module appelant ; mais si l'option *package* est " +"précisée, alors il est relatif à ce paquet. Afin de garantir l'indépendance " +"face au système d'exploitation, chaque nom de fichier doit utiliser des " +"caractères ``/`` afin de séparer les segments de chemin, et ne peut pas être " +"un chemin absolu (c'est-à-dire, il ne peut pas commencer par ``/``)." -#: ../Doc/library/doctest.rst:1013 +#: library/doctest.rst:1013 msgid "" "If *module_relative* is ``False``, then each filename in *paths* specifies " "an OS-specific path. The path may be absolute or relative; relative paths " "are resolved with respect to the current working directory." msgstr "" +"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " +"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " +"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." -#: ../Doc/library/doctest.rst:1017 +#: library/doctest.rst:1017 msgid "" "Optional argument *package* is a Python package or the name of a Python " "package whose directory should be used as the base directory for module-" @@ -1075,49 +1574,79 @@ msgid "" "filenames. It is an error to specify *package* if *module_relative* is " "``False``." msgstr "" +"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " +"répertoire dont être utilisé comme le répertoire principal pour un nom de " +"fichier dans *paths* qui soit lié à un module. Si aucun paquet n'est " +"spécifié, le répertoire du module appelé à l'exécution est utilisé comme le " +"répertoire principal pour les noms de fichiers liés au module. C'est une " +"erreur que de spécifier *package* si *module_relative* a ``False`` comme " +"valeur." -#: ../Doc/library/doctest.rst:1024 +#: library/doctest.rst:1024 msgid "" "Optional argument *setUp* specifies a set-up function for the test suite. " "This is called before running the tests in each file. The *setUp* function " "will be passed a :class:`DocTest` object. The setUp function can access the " "test globals as the *globs* attribute of the test passed." msgstr "" +"L'option *setUp* précise une fonction de mise-en-place pour la suite de " +"tests. Ceci est appelé avant l'exécution des tests dans chaque fichier. La " +"fonction *setUp* est passée à un objet :class:`DocTest`. La fonction *setUp* " +"peut accéder aux valeurs globales du test par le biais de l'attribut *globs* " +"du test passé." -#: ../Doc/library/doctest.rst:1029 +#: library/doctest.rst:1029 msgid "" "Optional argument *tearDown* specifies a tear-down function for the test " "suite. This is called after running the tests in each file. The *tearDown* " "function will be passed a :class:`DocTest` object. The setUp function can " "access the test globals as the *globs* attribute of the test passed." msgstr "" +"L'option *tearDown* précise une fonction de démolition pour la suite de " +"tests. Celle-ci est appelée après avoir exécuté les tests dans chaque " +"fichier. La fonction *tearDown* est passée à un objet :class:`DocTest`. La " +"fonction *setUp* peut accéder aux valeurs globales du test par l'attribut " +"*globs* du test passé." -#: ../Doc/library/doctest.rst:1034 ../Doc/library/doctest.rst:1068 +#: library/doctest.rst:1068 msgid "" "Optional argument *globs* is a dictionary containing the initial global " "variables for the tests. A new copy of this dictionary is created for each " "test. By default, *globs* is a new empty dictionary." msgstr "" +"L'option *globs* est un dictionnaire contenant les variables globales " +"initiales pour les tests. Une nouvelle copie de ce dictionnaire est créée " +"pour chaque test. Par défaut, *globs* est un nouveau dictionnaire vide." -#: ../Doc/library/doctest.rst:1038 +#: library/doctest.rst:1038 msgid "" "Optional argument *optionflags* specifies the default doctest options for " "the tests, created by or-ing together individual option flags. See section :" "ref:`doctest-options`. See function :func:`set_unittest_reportflags` below " "for a better way to set reporting options." msgstr "" +"Les options *optionflags* précisent les options par défaut de *doctest* pour " +"les tests, créées en composant par un OU les différentes options " +"individuelles. Voir la section :ref:`doctest-options`. Voir la fonction :" +"func:`set_unittest_reportflags` ci-dessous pour une meilleure façon de " +"préciser des options de rapport." -#: ../Doc/library/doctest.rst:1050 +#: library/doctest.rst:1050 msgid "" "The global ``__file__`` is added to the globals provided to doctests loaded " "from a text file using :func:`DocFileSuite`." msgstr "" +"La valeur globale ``__file__`` est ajoutée aux valeurs globales fournies par " +"les *doctests*, ceux-ci étant téléchargés d'un fichier texte utilisant la " +"fonction :func:`DocFileSuite`." -#: ../Doc/library/doctest.rst:1056 +#: library/doctest.rst:1056 msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." msgstr "" +"Convertit les tests *doctest* pour un module donné à une classe :class:" +"`unittest.TestSuite`." -#: ../Doc/library/doctest.rst:1058 +#: library/doctest.rst:1058 msgid "" "The returned :class:`unittest.TestSuite` is to be run by the unittest " "framework and runs each doctest in the module. If any of the doctests fail, " @@ -1125,43 +1654,64 @@ msgid "" "exception is raised showing the name of the file containing the test and a " "(sometimes approximate) line number." msgstr "" +"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée par le " +"cadriciel de test unitaire, afin d'exécuter chaque *doctest* dans le module. " +"Si n'importe lequel des *doctests* échoue, alors le test unitaire de " +"synthèse échoue, et une exception :exc:`failureException` est levée, " +"affichant le nom du fichier contenant le test et un numéro de ligne pouvant " +"être approximatif." -#: ../Doc/library/doctest.rst:1064 +#: library/doctest.rst:1064 msgid "" "Optional argument *module* provides the module to be tested. It can be a " "module object or a (possibly dotted) module name. If not specified, the " "module calling this function is used." msgstr "" +"L'option *module* fournit le module qui sera testé. Il peut prendre la forme " +"d'un objet-module ou celle du nom d'un module (possiblement *dotted*). Si " +"non-précisée, le module appelant cette fonction est utilisé." -#: ../Doc/library/doctest.rst:1072 +#: library/doctest.rst:1072 msgid "" "Optional argument *extraglobs* specifies an extra set of global variables, " "which is merged into *globs*. By default, no extra globals are used." msgstr "" +"L'option *extraglobs* précise un ensemble supplémentaire de variables " +"globales, à fusionner avec *globs*. Par défaut, aucune variable globale " +"supplémentaire est utilisée." -#: ../Doc/library/doctest.rst:1075 +#: library/doctest.rst:1075 msgid "" "Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " "drop-in replacement) that is used to extract doctests from the module." msgstr "" +"L'option *test_finder* est l'instance de :class:`DocTestFinder` (ou un " +"remplacement *drop-in*) qui est utilisée pour extraire les *doctests* à " +"partir du module." -#: ../Doc/library/doctest.rst:1078 +#: library/doctest.rst:1078 msgid "" "Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " "for function :func:`DocFileSuite` above." msgstr "" +"Les options *setUp*, *tearDown* et *optionflags* sont les mêmes que pour la " +"fonction :func:`DocFileSuite` ci-dessus." -#: ../Doc/library/doctest.rst:1081 +#: library/doctest.rst:1081 msgid "This function uses the same search technique as :func:`testmod`." msgstr "" +"Cette fonction utilise la même technique de recherche que :func:`testmod`." -#: ../Doc/library/doctest.rst:1083 +#: library/doctest.rst:1083 msgid "" ":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " "*module* contains no docstrings instead of raising :exc:`ValueError`." msgstr "" +"La fonction :func:`DocTestSuite` renvoie une instance vide de la classe :" +"class:`unittest.TestSuite` si *module* ne contient aucune *docstring*, et " +"ce, au lieu de lever l'exception :exc:`ValueError`." -#: ../Doc/library/doctest.rst:1088 +#: library/doctest.rst:1088 msgid "" "Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " "out of :class:`doctest.DocTestCase` instances, and :class:`DocTestCase` is a " @@ -1169,15 +1719,24 @@ msgid "" "documented here (it's an internal detail), but studying its code can answer " "questions about the exact details of :mod:`unittest` integration." msgstr "" +"Sous le capot, :func:`DocTestSuite` crée une classe :class:`unittest." +"TestSuite` à partir d'instances de :class:`doctest.DocTestCase` ; de plus, :" +"class:`DocTestCase` est une sous-classe de :class:`unittest.TestCase`. La " +"classe :class:`DocTestCase` n'est pas documentée ici (c'est un détail " +"interne), mais l'étude de son code peut répondre à des questions concernant " +"les détails exacts de l'intégration du module :mod:`doctest`." -#: ../Doc/library/doctest.rst:1094 +#: library/doctest.rst:1094 msgid "" "Similarly, :func:`DocFileSuite` creates a :class:`unittest.TestSuite` out " "of :class:`doctest.DocFileCase` instances, and :class:`DocFileCase` is a " "subclass of :class:`DocTestCase`." msgstr "" +"De la même façon, :func:`DocFileSuite` crée une classe :class:`unittest." +"TestSuite` à partir des instances :class:`doctest.DocFileCase`, où :class:" +"`DocFileCase` est une sous-classe de :class:`DocTestCase`." -#: ../Doc/library/doctest.rst:1098 +#: library/doctest.rst:1098 msgid "" "So both ways of creating a :class:`unittest.TestSuite` run instances of :" "class:`DocTestCase`. This is important for a subtle reason: when you run :" @@ -1189,24 +1748,43 @@ msgid "" "specified by command line options), but there's no way to pass options " "through :mod:`unittest` to :mod:`doctest` test runners." msgstr "" - -#: ../Doc/library/doctest.rst:1108 +"Ainsi, les deux façons de créer une :class:`unittest.TestSuite` utilisent " +"des instances de la classe :class:`DocTestCase`. Ceci est important pour une " +"raison subtile : lorsque vous exécutez par vous-même des fonctions :mod:" +"`doctest`, vous pouvez contrôler les options :mod:`doctest` qui sont " +"utilisées de façon directe, en passant des options aux fonctions :mod:" +"`doctest`. Toutefois, si vous écrivez un cadriciel :mod:`unittest`, alors :" +"mod:`unittest` a le contrôle final de quand et de comment les tests sont " +"exécutés. La personne qui écrit le cadriciel souhaite habituellement " +"contrôler les options de rapport de :mod:`doctest` (qui sont peut-être, par " +"exemple, spécifiées en options de ligne de commande), sauf qu'il n'y a pas " +"de moyen de spécifier des options à l'attention des exécuteurs de test de :" +"mod:`doctest` à partir de :mod:`unittest`." + +#: library/doctest.rst:1108 msgid "" "For this reason, :mod:`doctest` also supports a notion of :mod:`doctest` " "reporting flags specific to :mod:`unittest` support, via this function:" msgstr "" +"Pour cette raison, :mod:`doctest` implémente le concept d'options de rapport " +"de :mod:`doctest` qui soit spécifique à :mod:`unittest`, par le biais de " +"cette fonction :" -#: ../Doc/library/doctest.rst:1114 +#: library/doctest.rst:1114 msgid "Set the :mod:`doctest` reporting flags to use." msgstr "" +"Voir les options de ligne de commandes de :mod:`doctest` pour l'utilisation." -#: ../Doc/library/doctest.rst:1116 +#: library/doctest.rst:1116 msgid "" "Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " "section :ref:`doctest-options`. Only \"reporting flags\" can be used." msgstr "" +"L'argument *flags* prend la :ref:`composition OU bit à bit ` des " +"arguments. Voir la section :ref:`doctest-options`. Ce sont uniquement les " +"\"options de rapport\" qui peuvent être utilisées." -#: ../Doc/library/doctest.rst:1119 +#: library/doctest.rst:1119 msgid "" "This is a module-global setting, and affects all future doctests run by " "module :mod:`unittest`: the :meth:`runTest` method of :class:`DocTestCase` " @@ -1219,18 +1797,32 @@ msgid "" "were specified when the :class:`DocTestCase` instance was constructed, :mod:" "`doctest`'s :mod:`unittest` reporting flags are ignored." msgstr "" - -#: ../Doc/library/doctest.rst:1130 +"Ceci est un paramètre au niveau global du module, et affecte tous les futurs " +"*doctests* exécutés par le module :mod:`unittest` : la méthode :meth:" +"`runTest` de :class:`DocTestCase` prend en compte les options précisées pour " +"le cas de test lorsque l'instance de la classe :class:`DocTestCase` a été " +"construite. Si aucune option de rapport n'a été précisée (ce qui est le cas " +"typique et attendu), les options de rapport du module :mod:`unitest` de :mod:" +"`doctest` sont :ref:`` vers les options, et " +"les options obtenues sont passées à l'instance de la classe :class:" +"`DocTestRunner` créée pour exécuter le *doctest*. Si une seule option de " +"rapport a été précisée lorsque l'instance de :class:`DocTestCase` a été " +"construite, les options de rapport du module :mod:`unittest` de :mod:" +"`doctest` sont ignorées." + +#: library/doctest.rst:1130 msgid "" "The value of the :mod:`unittest` reporting flags in effect before the " "function was called is returned by the function." msgstr "" +"La valeur prise par les options de rapport de :mod:`unittest` et ce, avant " +"que la fonction n'ait été appelée, est renvoyée par la fonction." -#: ../Doc/library/doctest.rst:1137 +#: library/doctest.rst:1137 msgid "Advanced API" -msgstr "" +msgstr "API avancé" -#: ../Doc/library/doctest.rst:1139 +#: library/doctest.rst:1139 msgid "" "The basic API is a simple wrapper that's intended to make doctest easy to " "use. It is fairly flexible, and should meet most users' needs; however, if " @@ -1238,85 +1830,91 @@ msgid "" "doctest's capabilities, then you should use the advanced API." msgstr "" -#: ../Doc/library/doctest.rst:1144 +#: library/doctest.rst:1144 msgid "" "The advanced API revolves around two container classes, which are used to " "store the interactive examples extracted from doctest cases:" msgstr "" -#: ../Doc/library/doctest.rst:1147 +#: library/doctest.rst:1147 msgid "" ":class:`Example`: A single Python :term:`statement`, paired with its " "expected output." msgstr "" +":class:`Example` : Un unique :term:`statement` Python, pris conjointement " +"avec sa sortie attendue." -#: ../Doc/library/doctest.rst:1150 +#: library/doctest.rst:1150 msgid "" ":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " "from a single docstring or text file." msgstr "" +":class:`DocTest` : Une collection de :class:`Example`, habituellement " +"extraits d'une seule *docstring* ou fichier texte." -#: ../Doc/library/doctest.rst:1153 +#: library/doctest.rst:1153 msgid "" "Additional processing classes are defined to find, parse, and run, and check " "doctest examples:" msgstr "" -#: ../Doc/library/doctest.rst:1156 +#: library/doctest.rst:1156 msgid "" ":class:`DocTestFinder`: Finds all docstrings in a given module, and uses a :" "class:`DocTestParser` to create a :class:`DocTest` from every docstring that " "contains interactive examples." msgstr "" -#: ../Doc/library/doctest.rst:1160 +#: library/doctest.rst:1160 msgid "" ":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " "(such as an object's docstring)." msgstr "" -#: ../Doc/library/doctest.rst:1163 +#: library/doctest.rst:1163 msgid "" ":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " "uses an :class:`OutputChecker` to verify their output." msgstr "" -#: ../Doc/library/doctest.rst:1166 +#: library/doctest.rst:1166 msgid "" ":class:`OutputChecker`: Compares the actual output from a doctest example " "with the expected output, and decides whether they match." msgstr "" -#: ../Doc/library/doctest.rst:1169 +#: library/doctest.rst:1169 msgid "" "The relationships among these processing classes are summarized in the " "following diagram::" msgstr "" -#: ../Doc/library/doctest.rst:1185 +#: library/doctest.rst:1185 msgid "DocTest Objects" -msgstr "" +msgstr "Objets *doctest*" -#: ../Doc/library/doctest.rst:1190 +#: library/doctest.rst:1190 msgid "" "A collection of doctest examples that should be run in a single namespace. " "The constructor arguments are used to initialize the attributes of the same " "names." msgstr "" -#: ../Doc/library/doctest.rst:1194 +#: library/doctest.rst:1194 msgid "" ":class:`DocTest` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" +":class:`DocTest` définit les attributs suivants. Ils sont initialisés par le " +"constructeur, et ne doivent pas être modifiés directement." -#: ../Doc/library/doctest.rst:1200 +#: library/doctest.rst:1200 msgid "" "A list of :class:`Example` objects encoding the individual interactive " "Python examples that should be run by this test." msgstr "" -#: ../Doc/library/doctest.rst:1206 +#: library/doctest.rst:1206 msgid "" "The namespace (aka globals) that the examples should be run in. This is a " "dictionary mapping names to values. Any changes to the namespace made by " @@ -1324,57 +1922,57 @@ msgid "" "`globs` after the test is run." msgstr "" -#: ../Doc/library/doctest.rst:1214 +#: library/doctest.rst:1214 msgid "" "A string name identifying the :class:`DocTest`. Typically, this is the name " "of the object or file that the test was extracted from." msgstr "" -#: ../Doc/library/doctest.rst:1220 +#: library/doctest.rst:1220 msgid "" "The name of the file that this :class:`DocTest` was extracted from; or " "``None`` if the filename is unknown, or if the :class:`DocTest` was not " "extracted from a file." msgstr "" -#: ../Doc/library/doctest.rst:1227 +#: library/doctest.rst:1227 msgid "" "The line number within :attr:`filename` where this :class:`DocTest` begins, " "or ``None`` if the line number is unavailable. This line number is zero-" "based with respect to the beginning of the file." msgstr "" -#: ../Doc/library/doctest.rst:1234 +#: library/doctest.rst:1234 msgid "" "The string that the test was extracted from, or ``None`` if the string is " "unavailable, or if the test was not extracted from a string." msgstr "" -#: ../Doc/library/doctest.rst:1241 +#: library/doctest.rst:1241 msgid "Example Objects" -msgstr "" +msgstr "Exemples d'objets" -#: ../Doc/library/doctest.rst:1246 +#: library/doctest.rst:1246 msgid "" "A single interactive example, consisting of a Python statement and its " "expected output. The constructor arguments are used to initialize the " "attributes of the same names." msgstr "" -#: ../Doc/library/doctest.rst:1251 +#: library/doctest.rst:1251 msgid "" ":class:`Example` defines the following attributes. They are initialized by " "the constructor, and should not be modified directly." msgstr "" -#: ../Doc/library/doctest.rst:1257 +#: library/doctest.rst:1257 msgid "" "A string containing the example's source code. This source code consists of " "a single Python statement, and always ends with a newline; the constructor " "adds a newline when necessary." msgstr "" -#: ../Doc/library/doctest.rst:1264 +#: library/doctest.rst:1264 msgid "" "The expected output from running the example's source code (either from " "stdout, or a traceback in case of exception). :attr:`want` ends with a " @@ -1382,7 +1980,7 @@ msgid "" "The constructor adds a newline when necessary." msgstr "" -#: ../Doc/library/doctest.rst:1272 +#: library/doctest.rst:1272 msgid "" "The exception message generated by the example, if the example is expected " "to generate an exception; or ``None`` if it is not expected to generate an " @@ -1391,20 +1989,20 @@ msgid "" "unless it's ``None``. The constructor adds a newline if needed." msgstr "" -#: ../Doc/library/doctest.rst:1281 +#: library/doctest.rst:1281 msgid "" "The line number within the string containing this example where the example " "begins. This line number is zero-based with respect to the beginning of the " "containing string." msgstr "" -#: ../Doc/library/doctest.rst:1288 +#: library/doctest.rst:1288 msgid "" "The example's indentation in the containing string, i.e., the number of " "space characters that precede the example's first prompt." msgstr "" -#: ../Doc/library/doctest.rst:1294 +#: library/doctest.rst:1294 msgid "" "A dictionary mapping from option flags to ``True`` or ``False``, which is " "used to override default options for this example. Any option flags not " @@ -1413,11 +2011,11 @@ msgid "" "are set." msgstr "" -#: ../Doc/library/doctest.rst:1303 +#: library/doctest.rst:1303 msgid "DocTestFinder objects" -msgstr "" +msgstr "Objets *DocTestFinder*" -#: ../Doc/library/doctest.rst:1308 +#: library/doctest.rst:1308 msgid "" "A processing class used to extract the :class:`DocTest`\\ s that are " "relevant to a given object, from its docstring and the docstrings of its " @@ -1425,48 +2023,48 @@ msgid "" "classes, functions, methods, staticmethods, classmethods, and properties." msgstr "" -#: ../Doc/library/doctest.rst:1313 +#: library/doctest.rst:1313 msgid "" "The optional argument *verbose* can be used to display the objects searched " "by the finder. It defaults to ``False`` (no output)." msgstr "" -#: ../Doc/library/doctest.rst:1316 +#: library/doctest.rst:1316 msgid "" "The optional argument *parser* specifies the :class:`DocTestParser` object " "(or a drop-in replacement) that is used to extract doctests from docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1319 +#: library/doctest.rst:1319 msgid "" "If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " "will only examine the given object, and not any contained objects." msgstr "" -#: ../Doc/library/doctest.rst:1322 +#: library/doctest.rst:1322 msgid "" "If the optional argument *exclude_empty* is false, then :meth:`DocTestFinder." "find` will include tests for objects with empty docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1326 +#: library/doctest.rst:1326 msgid ":class:`DocTestFinder` defines the following method:" -msgstr "" +msgstr "La classe :class:`DocTestFinder` définit la méthode suivante :" -#: ../Doc/library/doctest.rst:1331 +#: library/doctest.rst:1331 msgid "" "Return a list of the :class:`DocTest`\\ s that are defined by *obj*'s " "docstring, or by any of its contained objects' docstrings." msgstr "" -#: ../Doc/library/doctest.rst:1334 +#: library/doctest.rst:1334 msgid "" "The optional argument *name* specifies the object's name; this name will be " "used to construct names for the returned :class:`DocTest`\\ s. If *name* is " "not specified, then ``obj.__name__`` is used." msgstr "" -#: ../Doc/library/doctest.rst:1338 +#: library/doctest.rst:1338 msgid "" "The optional parameter *module* is the module that contains the given " "object. If the module is not specified or is ``None``, then the test finder " @@ -1474,26 +2072,26 @@ msgid "" "module is used:" msgstr "" -#: ../Doc/library/doctest.rst:1342 +#: library/doctest.rst:1342 msgid "As a default namespace, if *globs* is not specified." msgstr "" -#: ../Doc/library/doctest.rst:1344 +#: library/doctest.rst:1344 msgid "" "To prevent the DocTestFinder from extracting DocTests from objects that are " "imported from other modules. (Contained objects with modules other than " "*module* are ignored.)" msgstr "" -#: ../Doc/library/doctest.rst:1348 +#: library/doctest.rst:1348 msgid "To find the name of the file containing the object." -msgstr "" +msgstr "Afin de trouver le nom du fichier contenant l'objet." -#: ../Doc/library/doctest.rst:1350 +#: library/doctest.rst:1350 msgid "To help find the line number of the object within its file." msgstr "" -#: ../Doc/library/doctest.rst:1352 +#: library/doctest.rst:1352 msgid "" "If *module* is ``False``, no attempt to find the module will be made. This " "is obscure, of use mostly in testing doctest itself: if *module* is " @@ -1502,7 +2100,7 @@ msgid "" "contained objects will (recursively) be searched for doctests." msgstr "" -#: ../Doc/library/doctest.rst:1358 +#: library/doctest.rst:1358 msgid "" "The globals for each :class:`DocTest` is formed by combining *globs* and " "*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " @@ -1512,34 +2110,39 @@ msgid "" "defaults to ``{}``." msgstr "" -#: ../Doc/library/doctest.rst:1369 +#: library/doctest.rst:1369 msgid "DocTestParser objects" -msgstr "" +msgstr "Objets *DocTestParser*" -#: ../Doc/library/doctest.rst:1374 +#: library/doctest.rst:1374 msgid "" "A processing class used to extract interactive examples from a string, and " "use them to create a :class:`DocTest` object." msgstr "" -#: ../Doc/library/doctest.rst:1378 ../Doc/library/doctest.rst:1446 +#: library/doctest.rst:1446 msgid ":class:`DocTestParser` defines the following methods:" -msgstr "" +msgstr "La classe :class:`DocTestFinder` définit les méthodes suivantes :" -#: ../Doc/library/doctest.rst:1383 +#: library/doctest.rst:1383 msgid "" "Extract all doctest examples from the given string, and collect them into a :" "class:`DocTest` object." msgstr "" +"Extrait tous les exemples de *doctests* à partir de la chaîne de caractère " +"donnée, et les réunit dans un objet :class:`DocTest`." -#: ../Doc/library/doctest.rst:1386 +#: library/doctest.rst:1386 msgid "" "*globs*, *name*, *filename*, and *lineno* are attributes for the new :class:" "`DocTest` object. See the documentation for :class:`DocTest` for more " "information." msgstr "" +"Notez que *globs*, *name*, *filname* et *lineno* sont des attributs pour le " +"nouvel objet :class:`DocTest`. Voir la documentation pour :class:`DocTest` " +"pour plus d'information." -#: ../Doc/library/doctest.rst:1393 +#: library/doctest.rst:1393 msgid "" "Extract all doctest examples from the given string, and return them as a " "list of :class:`Example` objects. Line numbers are 0-based. The optional " @@ -1547,7 +2150,7 @@ msgid "" "error messages." msgstr "" -#: ../Doc/library/doctest.rst:1400 +#: library/doctest.rst:1400 msgid "" "Divide the given string into examples and intervening text, and return them " "as a list of alternating :class:`Example`\\ s and strings. Line numbers for " @@ -1555,17 +2158,17 @@ msgid "" "name identifying this string, and is only used for error messages." msgstr "" -#: ../Doc/library/doctest.rst:1409 +#: library/doctest.rst:1409 msgid "DocTestRunner objects" -msgstr "" +msgstr "Objets *DocTestRunner*" -#: ../Doc/library/doctest.rst:1414 +#: library/doctest.rst:1414 msgid "" "A processing class used to execute and verify the interactive examples in a :" "class:`DocTest`." msgstr "" -#: ../Doc/library/doctest.rst:1417 +#: library/doctest.rst:1417 msgid "" "The comparison between expected outputs and actual outputs is done by an :" "class:`OutputChecker`. This comparison may be customized with a number of " @@ -1575,7 +2178,7 @@ msgid "" "constructor." msgstr "" -#: ../Doc/library/doctest.rst:1423 +#: library/doctest.rst:1423 msgid "" "The test runner's display output can be controlled in two ways. First, an " "output function can be passed to :meth:`TestRunner.run`; this function will " @@ -1586,14 +2189,14 @@ msgid "" "`report_unexpected_exception`, and :meth:`report_failure`." msgstr "" -#: ../Doc/library/doctest.rst:1431 +#: library/doctest.rst:1431 msgid "" "The optional keyword argument *checker* specifies the :class:`OutputChecker` " "object (or drop-in replacement) that should be used to compare the expected " "outputs to the actual outputs of doctest examples." msgstr "" -#: ../Doc/library/doctest.rst:1435 +#: library/doctest.rst:1435 msgid "" "The optional keyword argument *verbose* controls the :class:" "`DocTestRunner`'s verbosity. If *verbose* is ``True``, then information is " @@ -1602,56 +2205,56 @@ msgid "" "verbose output is used iff the command-line switch ``-v`` is used." msgstr "" -#: ../Doc/library/doctest.rst:1441 +#: library/doctest.rst:1441 msgid "" "The optional keyword argument *optionflags* can be used to control how the " "test runner compares expected output to actual output, and how it displays " "failures. For more information, see section :ref:`doctest-options`." msgstr "" -#: ../Doc/library/doctest.rst:1451 +#: library/doctest.rst:1451 msgid "" "Report that the test runner is about to process the given example. This " "method is provided to allow subclasses of :class:`DocTestRunner` to " "customize their output; it should not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1455 +#: library/doctest.rst:1455 msgid "" "*example* is the example about to be processed. *test* is the test " "*containing example*. *out* is the output function that was passed to :meth:" "`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1462 +#: library/doctest.rst:1462 msgid "" "Report that the given example ran successfully. This method is provided to " "allow subclasses of :class:`DocTestRunner` to customize their output; it " "should not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1466 ../Doc/library/doctest.rst:1477 +#: library/doctest.rst:1477 msgid "" "*example* is the example about to be processed. *got* is the actual output " "from the example. *test* is the test containing *example*. *out* is the " "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1473 +#: library/doctest.rst:1473 msgid "" "Report that the given example failed. This method is provided to allow " "subclasses of :class:`DocTestRunner` to customize their output; it should " "not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1484 +#: library/doctest.rst:1484 msgid "" "Report that the given example raised an unexpected exception. This method is " "provided to allow subclasses of :class:`DocTestRunner` to customize their " "output; it should not be called directly." msgstr "" -#: ../Doc/library/doctest.rst:1488 +#: library/doctest.rst:1488 msgid "" "*example* is the example about to be processed. *exc_info* is a tuple " "containing information about the unexpected exception (as returned by :func:" @@ -1659,13 +2262,13 @@ msgid "" "output function that was passed to :meth:`DocTestRunner.run`." msgstr "" -#: ../Doc/library/doctest.rst:1496 +#: library/doctest.rst:1496 msgid "" "Run the examples in *test* (a :class:`DocTest` object), and display the " "results using the writer function *out*." msgstr "" -#: ../Doc/library/doctest.rst:1499 +#: library/doctest.rst:1499 msgid "" "The examples are run in the namespace ``test.globs``. If *clear_globs* is " "true (the default), then this namespace will be cleared after the test runs, " @@ -1673,52 +2276,52 @@ msgid "" "after the test completes, then use *clear_globs=False*." msgstr "" -#: ../Doc/library/doctest.rst:1504 +#: library/doctest.rst:1504 msgid "" "*compileflags* gives the set of flags that should be used by the Python " "compiler when running the examples. If not specified, then it will default " "to the set of future-import flags that apply to *globs*." msgstr "" -#: ../Doc/library/doctest.rst:1508 +#: library/doctest.rst:1508 msgid "" "The output of each example is checked using the :class:`DocTestRunner`'s " "output checker, and the results are formatted by the :meth:`DocTestRunner." "report_\\*` methods." msgstr "" -#: ../Doc/library/doctest.rst:1515 +#: library/doctest.rst:1515 msgid "" "Print a summary of all the test cases that have been run by this " "DocTestRunner, and return a :term:`named tuple` ``TestResults(failed, " "attempted)``." msgstr "" -#: ../Doc/library/doctest.rst:1518 +#: library/doctest.rst:1518 msgid "" "The optional *verbose* argument controls how detailed the summary is. If " "the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity " "is used." msgstr "" -#: ../Doc/library/doctest.rst:1525 +#: library/doctest.rst:1525 msgid "OutputChecker objects" -msgstr "" +msgstr "Objets *OutputChecker*" -#: ../Doc/library/doctest.rst:1530 +#: library/doctest.rst:1530 msgid "" "A class used to check the whether the actual output from a doctest example " "matches the expected output. :class:`OutputChecker` defines two methods: :" "meth:`check_output`, which compares a given pair of outputs, and returns " -"true if they match; and :meth:`output_difference`, which returns a string " -"describing the differences between two outputs." +"``True`` if they match; and :meth:`output_difference`, which returns a " +"string describing the differences between two outputs." msgstr "" -#: ../Doc/library/doctest.rst:1537 +#: library/doctest.rst:1537 msgid ":class:`OutputChecker` defines the following methods:" -msgstr "" +msgstr "La classe :class:`OutputChecker` définit les méthodes suivantes :" -#: ../Doc/library/doctest.rst:1541 +#: library/doctest.rst:1541 msgid "" "Return ``True`` iff the actual output from an example (*got*) matches the " "expected output (*want*). These strings are always considered to match if " @@ -1727,28 +2330,31 @@ msgid "" "`doctest-options` for more information about option flags." msgstr "" -#: ../Doc/library/doctest.rst:1550 +#: library/doctest.rst:1550 msgid "" "Return a string describing the differences between the expected output for a " "given example (*example*) and the actual output (*got*). *optionflags* is " "the set of option flags used to compare *want* and *got*." msgstr "" -#: ../Doc/library/doctest.rst:1558 +#: library/doctest.rst:1558 msgid "Debugging" -msgstr "" +msgstr "Débogage" -#: ../Doc/library/doctest.rst:1560 +#: library/doctest.rst:1560 msgid "Doctest provides several mechanisms for debugging doctest examples:" msgstr "" +"*Doctest* fournit plusieurs mécanismes pour déboguer des exemples *doctest* :" -#: ../Doc/library/doctest.rst:1562 +#: library/doctest.rst:1562 msgid "" "Several functions convert doctests to executable Python programs, which can " "be run under the Python debugger, :mod:`pdb`." msgstr "" +"Plusieurs fonctions convertissent les *doctests* en programmes Python " +"exécutables, qui peuvent être exécutés grâce au débogueur Python, :mod:`pdb`." -#: ../Doc/library/doctest.rst:1565 +#: library/doctest.rst:1565 msgid "" "The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " "raises an exception for the first failing example, containing information " @@ -1756,13 +2362,13 @@ msgid "" "debugging on the example." msgstr "" -#: ../Doc/library/doctest.rst:1570 +#: library/doctest.rst:1570 msgid "" "The :mod:`unittest` cases generated by :func:`DocTestSuite` support the :" "meth:`debug` method defined by :class:`unittest.TestCase`." msgstr "" -#: ../Doc/library/doctest.rst:1573 +#: library/doctest.rst:1573 msgid "" "You can add a call to :func:`pdb.set_trace` in a doctest example, and you'll " "drop into the Python debugger when that line is executed. Then you can " @@ -1770,21 +2376,21 @@ msgid "" "`a.py` contains just this module docstring::" msgstr "" -#: ../Doc/library/doctest.rst:1588 +#: library/doctest.rst:1588 msgid "Then an interactive Python session may look like this::" -msgstr "" +msgstr "Alors une séance interactive de Python peut ressembler à ceci ::" -#: ../Doc/library/doctest.rst:1621 +#: library/doctest.rst:1621 msgid "" "Functions that convert doctests to Python code, and possibly run the " "synthesized code under the debugger:" msgstr "" -#: ../Doc/library/doctest.rst:1627 +#: library/doctest.rst:1627 msgid "Convert text with examples to a script." -msgstr "" +msgstr "Convertit du texte contenant des exemples en un script." -#: ../Doc/library/doctest.rst:1629 +#: library/doctest.rst:1629 msgid "" "Argument *s* is a string containing doctest examples. The string is " "converted to a Python script, where doctest examples in *s* are converted to " @@ -1792,22 +2398,25 @@ msgid "" "generated script is returned as a string. For example, ::" msgstr "" -#: ../Doc/library/doctest.rst:1644 +#: library/doctest.rst:1644 msgid "displays::" msgstr "" -#: ../Doc/library/doctest.rst:1654 +#: library/doctest.rst:1654 msgid "" "This function is used internally by other functions (see below), but can " "also be useful when you want to transform an interactive Python session into " "a Python script." msgstr "" +"Cette fonction est utilisée à l'interne par d'autres fonctions (voir ci-" +"bas), mais peut aussi être utile lorsque l'on souhaite transformer une " +"séance interactive de Python en script Python." -#: ../Doc/library/doctest.rst:1661 +#: library/doctest.rst:1661 msgid "Convert the doctest for an object to a script." -msgstr "" +msgstr "Convertit en script l'objet *doctest*." -#: ../Doc/library/doctest.rst:1663 +#: library/doctest.rst:1663 msgid "" "Argument *module* is a module object, or dotted name of a module, containing " "the object whose doctests are of interest. Argument *name* is the name " @@ -1817,17 +2426,19 @@ msgid "" "module :file:`a.py` contains a top-level function :func:`f`, then ::" msgstr "" -#: ../Doc/library/doctest.rst:1673 +#: library/doctest.rst:1673 msgid "" "prints a script version of function :func:`f`'s docstring, with doctests " "converted to code, and the rest placed in comments." msgstr "" +"affiche une version script de la *docstring* de la fonction :func:`f`, avec " +"des *doctests* convertis en code, et le reste dans les commentaires." -#: ../Doc/library/doctest.rst:1679 +#: library/doctest.rst:1679 msgid "Debug the doctests for an object." -msgstr "" +msgstr "Débogue les *doctests* pour un objet." -#: ../Doc/library/doctest.rst:1681 +#: library/doctest.rst:1681 msgid "" "The *module* and *name* arguments are the same as for function :func:" "`testsource` above. The synthesized Python script for the named object's " @@ -1835,13 +2446,15 @@ msgid "" "the control of the Python debugger, :mod:`pdb`." msgstr "" -#: ../Doc/library/doctest.rst:1686 +#: library/doctest.rst:1686 msgid "" "A shallow copy of ``module.__dict__`` is used for both local and global " "execution context." msgstr "" +"Une copie superficielle de ``module.__dict__`` est utilisée à la fois pour " +"les contextes d'exécution locaux et globaux." -#: ../Doc/library/doctest.rst:1689 +#: library/doctest.rst:1689 msgid "" "Optional argument *pm* controls whether post-mortem debugging is used. If " "*pm* has a true value, the script file is run directly, and the debugger " @@ -1853,30 +2466,39 @@ msgid "" "to :func:`pdb.run`." msgstr "" -#: ../Doc/library/doctest.rst:1700 +#: library/doctest.rst:1700 msgid "Debug the doctests in a string." -msgstr "" +msgstr "Débogue les *doctests* dans une chaîne de caractères." -#: ../Doc/library/doctest.rst:1702 +#: library/doctest.rst:1702 msgid "" "This is like function :func:`debug` above, except that a string containing " "doctest examples is specified directly, via the *src* argument." msgstr "" +"Ceci est similaire à la fonction :func:`debug` décrite ci-haut, mis-à-part " +"qu'une chaîne de caractères contenant des exemples *doctest* est définie " +"directement, par l'option *src*." -#: ../Doc/library/doctest.rst:1705 +#: library/doctest.rst:1705 msgid "" "Optional argument *pm* has the same meaning as in function :func:`debug` " "above." msgstr "" +"L'option *pm* a la même définition que dans la fonction :func:`debug` ci-" +"haut." -#: ../Doc/library/doctest.rst:1707 +#: library/doctest.rst:1707 msgid "" "Optional argument *globs* gives a dictionary to use as both local and global " "execution context. If not specified, or ``None``, an empty dictionary is " "used. If specified, a shallow copy of the dictionary is used." msgstr "" +"L'option *globs* définit un dictionnaire à utiliser comme contexte " +"d'exécution global et local. Si elle n'est pas définie, ou si ``None``, un " +"dictionnaire vide est utilisé. Si définie, une copie superficielle du " +"dictionnaire est utilisée." -#: ../Doc/library/doctest.rst:1712 +#: library/doctest.rst:1712 msgid "" "The :class:`DebugRunner` class, and the special exceptions it may raise, are " "of most interest to testing framework authors, and will only be sketched " @@ -1884,7 +2506,7 @@ msgid "" "(which is a doctest!) for more details:" msgstr "" -#: ../Doc/library/doctest.rst:1720 +#: library/doctest.rst:1720 msgid "" "A subclass of :class:`DocTestRunner` that raises an exception as soon as a " "failure is encountered. If an unexpected exception occurs, an :exc:" @@ -1894,89 +2516,107 @@ msgid "" "the actual output." msgstr "" -#: ../Doc/library/doctest.rst:1727 +#: library/doctest.rst:1727 msgid "" "For information about the constructor parameters and methods, see the " "documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" "api`." msgstr "" +"Pour de l'information sur les paramètres et méthodes du constructeur, voir " +"la documentation pour la classe :class:`DocTestrunner` dans la section :reF:" +"`doctest-advanced-api`." -#: ../Doc/library/doctest.rst:1730 +#: library/doctest.rst:1730 msgid "" "There are two exceptions that may be raised by :class:`DebugRunner` " "instances:" msgstr "" +"Il y a deux exceptions qui peuvent être levées par des instances :class:" +"`DebugRunner` :" -#: ../Doc/library/doctest.rst:1735 +#: library/doctest.rst:1735 msgid "" "An exception raised by :class:`DocTestRunner` to signal that a doctest " "example's actual output did not match its expected output. The constructor " "arguments are used to initialize the attributes of the same names." msgstr "" +"Une exception levée par :class:`DocTestRunner` pour signaler que la sortie " +"obtenue suite à un exemple *doctest* ne correspond pas à la sortie attendue. " +"Les arguments du constructeur sont utilisés pour initialiser les attributs " +"des mêmes noms." -#: ../Doc/library/doctest.rst:1739 +#: library/doctest.rst:1739 msgid ":exc:`DocTestFailure` defines the following attributes:" -msgstr "" +msgstr ":exc:`DocTestFailure` définit les attributs suivants :" -#: ../Doc/library/doctest.rst:1744 ../Doc/library/doctest.rst:1768 +#: library/doctest.rst:1768 msgid "The :class:`DocTest` object that was being run when the example failed." msgstr "" +"L'objet issu de la classe :class:`DocTest` qui était en cours d'exécution " +"lorsque l'exemple a échoué." -#: ../Doc/library/doctest.rst:1749 ../Doc/library/doctest.rst:1773 +#: library/doctest.rst:1773 msgid "The :class:`Example` that failed." -msgstr "" +msgstr "L'exemple :class:`Example` qui a échoué." -#: ../Doc/library/doctest.rst:1754 +#: library/doctest.rst:1754 msgid "The example's actual output." -msgstr "" +msgstr "La sortie obtenue par l'exécution de l'exemple." -#: ../Doc/library/doctest.rst:1759 +#: library/doctest.rst:1759 msgid "" "An exception raised by :class:`DocTestRunner` to signal that a doctest " "example raised an unexpected exception. The constructor arguments are used " "to initialize the attributes of the same names." msgstr "" +"Une exception levée par :class:`DocTestRunner` afin de signaler qu'un " +"exemple *doctest* a levé une exception inattendue. Les arguments du " +"constructeur sont utilisés pour initialiser les attributs des mêmes noms." -#: ../Doc/library/doctest.rst:1763 +#: library/doctest.rst:1763 msgid ":exc:`UnexpectedException` defines the following attributes:" -msgstr "" +msgstr ":exc:`UnexpectedException` définit les attributs suivants :" -#: ../Doc/library/doctest.rst:1778 +#: library/doctest.rst:1778 msgid "" "A tuple containing information about the unexpected exception, as returned " "by :func:`sys.exc_info`." msgstr "" +"Un n-uplet contenant l'information au sujet de l'exception inattendue, telle " +"que retourné par :func:`sys.exc_info`." -#: ../Doc/library/doctest.rst:1785 +#: library/doctest.rst:1785 msgid "Soapbox" -msgstr "" +msgstr "Éditorial" -#: ../Doc/library/doctest.rst:1787 +#: library/doctest.rst:1787 msgid "" "As mentioned in the introduction, :mod:`doctest` has grown to have three " "primary uses:" msgstr "" +"Comme mentionné dans l'introduction, :mod:`doctest` a présentement trois " +"usages principaux :" -#: ../Doc/library/doctest.rst:1790 +#: library/doctest.rst:1790 msgid "Checking examples in docstrings." -msgstr "" +msgstr "Vérifier les exemples dans les *docstrings*." -#: ../Doc/library/doctest.rst:1792 +#: library/doctest.rst:1792 msgid "Regression testing." -msgstr "" +msgstr "Test de régression." -#: ../Doc/library/doctest.rst:1794 +#: library/doctest.rst:1794 msgid "Executable documentation / literate testing." -msgstr "" +msgstr "De la documentation exécutable / des tests littéraires." -#: ../Doc/library/doctest.rst:1796 +#: library/doctest.rst:1796 msgid "" "These uses have different requirements, and it is important to distinguish " "them. In particular, filling your docstrings with obscure test cases makes " "for bad documentation." msgstr "" -#: ../Doc/library/doctest.rst:1800 +#: library/doctest.rst:1800 msgid "" "When writing a docstring, choose docstring examples with care. There's an " "art to this that needs to be learned---it may not be natural at first. " @@ -1988,7 +2628,7 @@ msgid "" "\"harmless\" change." msgstr "" -#: ../Doc/library/doctest.rst:1808 +#: library/doctest.rst:1808 msgid "" "Doctest also makes an excellent tool for regression testing, especially if " "you don't skimp on explanatory text. By interleaving prose and examples, it " @@ -2009,13 +2649,13 @@ msgid "" "different results, blurring the distinction between testing and explaining." msgstr "" -#: ../Doc/library/doctest.rst:1826 +#: library/doctest.rst:1826 msgid "" "Regression testing is best confined to dedicated objects or files. There " "are several options for organizing tests:" msgstr "" -#: ../Doc/library/doctest.rst:1829 +#: library/doctest.rst:1829 msgid "" "Write text files containing test cases as interactive examples, and test the " "files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " @@ -2023,7 +2663,7 @@ msgid "" "doctest." msgstr "" -#: ../Doc/library/doctest.rst:1834 +#: library/doctest.rst:1834 msgid "" "Define functions named ``_regrtest_topic`` that consist of single " "docstrings, containing test cases for the named topics. These functions can " @@ -2031,27 +2671,36 @@ msgid "" "test file." msgstr "" -#: ../Doc/library/doctest.rst:1838 +#: library/doctest.rst:1838 msgid "" "Define a ``__test__`` dictionary mapping from regression test topics to " "docstrings containing test cases." msgstr "" -#: ../Doc/library/doctest.rst:1841 +#: library/doctest.rst:1841 msgid "" "When you have placed your tests in a module, the module can itself be the " "test runner. When a test fails, you can arrange for your test runner to re-" "run only the failing doctest while you debug the problem. Here is a minimal " "example of such a test runner::" msgstr "" +"Lorsque vous placez vos tests dans un module, le module lui-même peut être " +"l'exécuteur de tests. Lorsqu'un test échoue, vous pouvez signifier à votre " +"exécuteur de tests de rouler une seconde fois uniquement les tests qui " +"échouent et ce, tant que vous travaillez sur le problème. Voici un exemple " +"minimal d'un test exécuteur de tests ::" -#: ../Doc/library/doctest.rst:1863 +#: library/doctest.rst:1863 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/doctest.rst:1864 +#: library/doctest.rst:1864 msgid "" "Examples containing both expected output and an exception are not supported. " "Trying to guess where one ends and the other begins is too error-prone, and " "that also makes for a confusing test." msgstr "" +"Les exemples contenant à la fois la sortie attendue et une exception ne sont " +"pas supportés. Tenter de deviner où finit l'un et où commence l'autre peut " +"mener à plusieurs erreurs, en plus d'être un test qui soit source de " +"confusion." diff --git a/library/dummy_threading.po b/library/dummy_threading.po index a4e2593b2b..ddc6aa08b0 100644 --- a/library/dummy_threading.po +++ b/library/dummy_threading.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-28 15:29+0200\n" "PO-Revision-Date: 2018-09-29 15:32+0200\n" diff --git a/library/email.charset.po b/library/email.charset.po index c85c8cee62..aaac8e479d 100644 --- a/library/email.charset.po +++ b/library/email.charset.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -19,8 +19,9 @@ msgid ":mod:`email.charset`: Representing character sets" msgstr "" #: ../Doc/library/email.charset.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/charset.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.charset.rst:11 msgid "" diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po index 26d5420a70..67798e1a76 100644 --- a/library/email.compat32-message.po +++ b/library/email.compat32-message.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-06-03 22:10+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,13 +14,13 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.compat32-message.rst:4 +#: library/email.compat32-message.rst:4 msgid "" ":mod:`email.message.Message`: Representing an email message using the :data:" "`~email.policy.compat32` API" msgstr "" -#: ../Doc/library/email.compat32-message.rst:12 +#: library/email.compat32-message.rst:12 msgid "" "The :class:`Message` class is very similar to the :class:`~email.message." "EmailMessage` class, without the methods added by that class, and with the " @@ -30,11 +30,11 @@ msgid "" "legacy code." msgstr "" -#: ../Doc/library/email.compat32-message.rst:19 +#: library/email.compat32-message.rst:19 msgid "The philosophy and structure of the two classes is otherwise the same." msgstr "" -#: ../Doc/library/email.compat32-message.rst:21 +#: library/email.compat32-message.rst:21 msgid "" "This document describes the behavior under the default (for :class:" "`Message`) policy :attr:`~email.policy.Compat32`. If you are going to use " @@ -42,10 +42,10 @@ msgid "" "class instead." msgstr "" -#: ../Doc/library/email.compat32-message.rst:25 +#: library/email.compat32-message.rst:25 msgid "" "An email message consists of *headers* and a *payload*. Headers must be :" -"rfc:`5233` style names and values, where the field name and value are " +"rfc:`5322` style names and values, where the field name and value are " "separated by a colon. The colon is not part of either the field name or the " "field value. The payload may be a simple text message, or a binary object, " "or a structured sequence of sub-messages each with their own set of headers " @@ -54,7 +54,7 @@ msgid "" "`message/rfc822`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:34 +#: library/email.compat32-message.rst:34 msgid "" "The conceptual model provided by a :class:`Message` object is that of an " "ordered dictionary of headers with additional methods for accessing both " @@ -64,7 +64,7 @@ msgid "" "methods must be used to access them." msgstr "" -#: ../Doc/library/email.compat32-message.rst:41 +#: library/email.compat32-message.rst:41 msgid "" "The :class:`Message` pseudo-dictionary is indexed by the header names, which " "must be ASCII values. The values of the dictionary are strings that are " @@ -78,11 +78,11 @@ msgid "" "mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:52 +#: library/email.compat32-message.rst:52 msgid "Here are the methods of the :class:`Message` class:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:57 +#: library/email.compat32-message.rst:57 msgid "" "If *policy* is specified (it must be an instance of a :mod:`~email.policy` " "class) use the rules it specifies to update and serialize the representation " @@ -92,11 +92,11 @@ msgid "" "`~email.policy` documentation." msgstr "" -#: ../Doc/library/email.compat32-message.rst:64 +#: library/email.compat32-message.rst:64 msgid "The *policy* keyword argument was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:69 +#: library/email.compat32-message.rst:69 msgid "" "Return the entire message flattened as a string. When optional *unixfrom* " "is true, the envelope header is included in the returned string. *unixfrom* " @@ -109,15 +109,14 @@ msgid "" "*policy* will be passed to the ``Generator``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:79 -#: ../Doc/library/email.compat32-message.rst:121 +#: library/email.compat32-message.rst:79 library/email.compat32-message.rst:121 msgid "" "Flattening the message may trigger changes to the :class:`Message` if " "defaults need to be filled in to complete the transformation to a string " "(for example, MIME boundaries may be generated or modified)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:83 +#: library/email.compat32-message.rst:83 msgid "" "Note that this method is provided as a convenience and may not always format " "the message the way you want. For example, by default it does not do the " @@ -127,7 +126,7 @@ msgid "" "method directly. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:97 +#: library/email.compat32-message.rst:97 msgid "" "If the message object contains binary data that is not encoded according to " "RFC standards, the non-compliant data will be replaced by unicode \"unknown " @@ -135,17 +134,17 @@ msgid "" "generator.BytesGenerator`.)" msgstr "" -#: ../Doc/library/email.compat32-message.rst:102 +#: library/email.compat32-message.rst:102 msgid "the *policy* keyword argument was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:107 +#: library/email.compat32-message.rst:107 msgid "" "Equivalent to :meth:`.as_string()`. Allows ``str(msg)`` to produce a string " "containing the formatted message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:113 +#: library/email.compat32-message.rst:113 msgid "" "Return the entire message flattened as a bytes object. When optional " "*unixfrom* is true, the envelope header is included in the returned string. " @@ -155,7 +154,7 @@ msgid "" "specified *policy* will be passed to the ``BytesGenerator``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:125 +#: library/email.compat32-message.rst:125 msgid "" "Note that this method is provided as a convenience and may not always format " "the message the way you want. For example, by default it does not do the " @@ -165,13 +164,13 @@ msgid "" "flatten` method directly. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:145 +#: library/email.compat32-message.rst:145 msgid "" "Equivalent to :meth:`.as_bytes()`. Allows ``bytes(msg)`` to produce a bytes " "object containing the formatted message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:153 +#: library/email.compat32-message.rst:153 msgid "" "Return ``True`` if the message's payload is a list of sub-\\ :class:" "`Message` objects, otherwise return ``False``. When :meth:`is_multipart` " @@ -182,18 +181,18 @@ msgid "" "return ``True`` when the :class:`Message` is of type ``message/rfc822``.)" msgstr "" -#: ../Doc/library/email.compat32-message.rst:165 +#: library/email.compat32-message.rst:165 msgid "" "Set the message's envelope header to *unixfrom*, which should be a string." msgstr "" -#: ../Doc/library/email.compat32-message.rst:170 +#: library/email.compat32-message.rst:170 msgid "" "Return the message's envelope header. Defaults to ``None`` if the envelope " "header was never set." msgstr "" -#: ../Doc/library/email.compat32-message.rst:176 +#: library/email.compat32-message.rst:176 msgid "" "Add the given *payload* to the current payload, which must be ``None`` or a " "list of :class:`Message` objects before the call. After the call, the " @@ -202,14 +201,14 @@ msgid "" "instead." msgstr "" -#: ../Doc/library/email.compat32-message.rst:182 +#: library/email.compat32-message.rst:182 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content` and the related ``make`` and ``add`` methods." msgstr "" -#: ../Doc/library/email.compat32-message.rst:190 +#: library/email.compat32-message.rst:190 msgid "" "Return the current payload, which will be a list of :class:`Message` objects " "when :meth:`is_multipart` is ``True``, or a string when :meth:`is_multipart` " @@ -217,7 +216,7 @@ msgid "" "modify the message's payload in place." msgstr "" -#: ../Doc/library/email.compat32-message.rst:195 +#: library/email.compat32-message.rst:195 msgid "" "With optional argument *i*, :meth:`get_payload` will return the *i*-th " "element of the payload, counting from zero, if :meth:`is_multipart` is " @@ -227,7 +226,7 @@ msgid "" "exc:`TypeError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:202 +#: library/email.compat32-message.rst:202 msgid "" "Optional *decode* is a flag indicating whether the payload should be decoded " "or not, according to the :mailheader:`Content-Transfer-Encoding` header. " @@ -243,7 +242,7 @@ msgid "" "or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:216 +#: library/email.compat32-message.rst:216 msgid "" "When *decode* is ``False`` (the default) the body is returned as a string " "without decoding the :mailheader:`Content-Transfer-Encoding`. However, for " @@ -254,28 +253,28 @@ msgid "" "the email package, the body is decoded using the default ASCII charset." msgstr "" -#: ../Doc/library/email.compat32-message.rst:225 +#: library/email.compat32-message.rst:225 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by :meth:`~email.message.EmailMessage." "get_content` and :meth:`~email.message.EmailMessage.iter_parts`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:233 +#: library/email.compat32-message.rst:233 msgid "" "Set the entire message object's payload to *payload*. It is the client's " "responsibility to ensure the payload invariants. Optional *charset* sets " "the message's default character set; see :meth:`set_charset` for details." msgstr "" -#: ../Doc/library/email.compat32-message.rst:237 +#: library/email.compat32-message.rst:237 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by :meth:`~email.message.EmailMessage." "set_content`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:244 +#: library/email.compat32-message.rst:244 msgid "" "Set the character set of the payload to *charset*, which can either be a :" "class:`~email.charset.Charset` instance (see :mod:`email.charset`), a string " @@ -286,7 +285,7 @@ msgid "" "Anything else will generate a :exc:`TypeError`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:252 +#: library/email.compat32-message.rst:252 msgid "" "If there is no existing :mailheader:`MIME-Version` header one will be " "added. If there is no existing :mailheader:`Content-Type` header, one will " @@ -303,26 +302,26 @@ msgid "" "not modified." msgstr "" -#: ../Doc/library/email.compat32-message.rst:266 +#: library/email.compat32-message.rst:266 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the *charset* parameter of the :meth:" "`email.emailmessage.EmailMessage.set_content` method." msgstr "" -#: ../Doc/library/email.compat32-message.rst:274 +#: library/email.compat32-message.rst:274 msgid "" "Return the :class:`~email.charset.Charset` instance associated with the " "message's payload." msgstr "" -#: ../Doc/library/email.compat32-message.rst:277 +#: library/email.compat32-message.rst:277 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class it always returns ``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:282 +#: library/email.compat32-message.rst:282 msgid "" "The following methods implement a mapping-like interface for accessing the " "message's :rfc:`2822` headers. Note that there are some semantic " @@ -335,19 +334,19 @@ msgid "" "deleted and then re-added are always appended to the end of the header list." msgstr "" -#: ../Doc/library/email.compat32-message.rst:292 +#: library/email.compat32-message.rst:292 msgid "" "These semantic differences are intentional and are biased toward maximal " "convenience." msgstr "" -#: ../Doc/library/email.compat32-message.rst:295 +#: library/email.compat32-message.rst:295 msgid "" "Note that in all cases, any envelope header present in the message is not " "included in the mapping interface." msgstr "" -#: ../Doc/library/email.compat32-message.rst:298 +#: library/email.compat32-message.rst:298 msgid "" "In a model generated from bytes, any header values that (in contravention of " "the RFCs) contain non-ASCII bytes will, when retrieved through this " @@ -355,25 +354,25 @@ msgid "" "charset of `unknown-8bit`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:306 +#: library/email.compat32-message.rst:306 msgid "Return the total number of headers, including duplicates." msgstr "" -#: ../Doc/library/email.compat32-message.rst:311 +#: library/email.compat32-message.rst:311 msgid "" -"Return true if the message object has a field named *name*. Matching is done " -"case-insensitively and *name* should not include the trailing colon. Used " -"for the ``in`` operator, e.g.::" +"Return ``True`` if the message object has a field named *name*. Matching is " +"done case-insensitively and *name* should not include the trailing colon. " +"Used for the ``in`` operator, e.g.::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:321 +#: library/email.compat32-message.rst:321 msgid "" "Return the value of the named header field. *name* should not include the " "colon field separator. If the header is missing, ``None`` is returned; a :" "exc:`KeyError` is never raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:325 +#: library/email.compat32-message.rst:325 msgid "" "Note that if the named field appears more than once in the message's " "headers, exactly which of those field values will be returned is undefined. " @@ -381,59 +380,59 @@ msgid "" "headers." msgstr "" -#: ../Doc/library/email.compat32-message.rst:333 +#: library/email.compat32-message.rst:333 msgid "" "Add a header to the message with field name *name* and value *val*. The " "field is appended to the end of the message's existing fields." msgstr "" -#: ../Doc/library/email.compat32-message.rst:336 +#: library/email.compat32-message.rst:336 msgid "" "Note that this does *not* overwrite or delete any existing header with the " "same name. If you want to ensure that the new header is the only one " "present in the message with field name *name*, delete the field first, e.g.::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:346 +#: library/email.compat32-message.rst:346 msgid "" "Delete all occurrences of the field with name *name* from the message's " "headers. No exception is raised if the named field isn't present in the " "headers." msgstr "" -#: ../Doc/library/email.compat32-message.rst:353 +#: library/email.compat32-message.rst:353 msgid "Return a list of all the message's header field names." msgstr "" -#: ../Doc/library/email.compat32-message.rst:358 +#: library/email.compat32-message.rst:358 msgid "Return a list of all the message's field values." msgstr "" -#: ../Doc/library/email.compat32-message.rst:363 +#: library/email.compat32-message.rst:363 msgid "" "Return a list of 2-tuples containing all the message's field headers and " "values." msgstr "" -#: ../Doc/library/email.compat32-message.rst:369 +#: library/email.compat32-message.rst:369 msgid "" "Return the value of the named header field. This is identical to :meth:" "`__getitem__` except that optional *failobj* is returned if the named header " "is missing (defaults to ``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:373 +#: library/email.compat32-message.rst:373 msgid "Here are some additional useful methods:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:378 +#: library/email.compat32-message.rst:378 msgid "" "Return a list of all the values for the field named *name*. If there are no " "such named headers in the message, *failobj* is returned (defaults to " "``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:385 +#: library/email.compat32-message.rst:385 msgid "" "Extended header setting. This method is similar to :meth:`__setitem__` " "except that additional header parameters can be provided as keyword " @@ -441,7 +440,7 @@ msgid "" "value for the header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:390 +#: library/email.compat32-message.rst:390 msgid "" "For each item in the keyword argument dictionary *_params*, the key is taken " "as the parameter name, with underscores converted to dashes (since dashes " @@ -458,30 +457,30 @@ msgid "" "``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:404 +#: library/email.compat32-message.rst:404 msgid "Here's an example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:408 +#: library/email.compat32-message.rst:408 msgid "This will add a header that looks like ::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:412 +#: library/email.compat32-message.rst:412 msgid "An example with non-ASCII characters::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:417 +#: library/email.compat32-message.rst:417 msgid "Which produces ::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:424 +#: library/email.compat32-message.rst:424 msgid "" "Replace a header. Replace the first header found in the message that " "matches *_name*, retaining header order and field name case. If no matching " "header was found, a :exc:`KeyError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:431 +#: library/email.compat32-message.rst:431 msgid "" "Return the message's content type. The returned string is coerced to lower " "case of the form :mimetype:`maintype/subtype`. If there was no :mailheader:" @@ -491,7 +490,7 @@ msgid "" "return a value." msgstr "" -#: ../Doc/library/email.compat32-message.rst:438 +#: library/email.compat32-message.rst:438 msgid "" ":rfc:`2045` defines a message's default type to be :mimetype:`text/plain` " "unless it appears inside a :mimetype:`multipart/digest` container, in which " @@ -500,19 +499,19 @@ msgid "" "the default type be :mimetype:`text/plain`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:447 +#: library/email.compat32-message.rst:447 msgid "" "Return the message's main content type. This is the :mimetype:`maintype` " "part of the string returned by :meth:`get_content_type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:453 +#: library/email.compat32-message.rst:453 msgid "" "Return the message's sub-content type. This is the :mimetype:`subtype` part " "of the string returned by :meth:`get_content_type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:459 +#: library/email.compat32-message.rst:459 msgid "" "Return the default content type. Most messages have a default content type " "of :mimetype:`text/plain`, except for messages that are subparts of :" @@ -520,14 +519,14 @@ msgid "" "content type of :mimetype:`message/rfc822`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:467 +#: library/email.compat32-message.rst:467 msgid "" "Set the default content type. *ctype* should either be :mimetype:`text/" "plain` or :mimetype:`message/rfc822`, although this is not enforced. The " "default content type is not stored in the :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:475 +#: library/email.compat32-message.rst:475 msgid "" "Return the message's :mailheader:`Content-Type` parameters, as a list. The " "elements of the returned list are 2-tuples of key/value pairs, as split on " @@ -537,22 +536,22 @@ msgid "" "`get_param` and is unquoted if optional *unquote* is ``True`` (the default)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:483 +#: library/email.compat32-message.rst:483 msgid "" "Optional *failobj* is the object to return if there is no :mailheader:" "`Content-Type` header. Optional *header* is the header to search instead " "of :mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:487 -#: ../Doc/library/email.compat32-message.rst:525 +#: library/email.compat32-message.rst:487 +#: library/email.compat32-message.rst:525 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the *params* property of the " "individual header objects returned by the header access methods." msgstr "" -#: ../Doc/library/email.compat32-message.rst:495 +#: library/email.compat32-message.rst:495 msgid "" "Return the value of the :mailheader:`Content-Type` header's parameter " "*param* as a string. If the message has no :mailheader:`Content-Type` " @@ -560,13 +559,13 @@ msgid "" "(defaults to ``None``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:500 +#: library/email.compat32-message.rst:500 msgid "" "Optional *header* if given, specifies the message header to use instead of :" "mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:503 +#: library/email.compat32-message.rst:503 msgid "" "Parameter keys are always compared case insensitively. The return value can " "either be a string, or a 3-tuple if the parameter was :rfc:`2231` encoded. " @@ -576,7 +575,7 @@ msgid "" "``us-ascii`` charset. You can usually ignore ``LANGUAGE``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:511 +#: library/email.compat32-message.rst:511 msgid "" "If your application doesn't care whether the parameter was encoded as in :" "rfc:`2231`, you can collapse the parameter value by calling :func:`email." @@ -585,14 +584,14 @@ msgid "" "value is a tuple, or the original string unquoted if it isn't. For example::" msgstr "" -#: ../Doc/library/email.compat32-message.rst:521 +#: library/email.compat32-message.rst:521 msgid "" "In any case, the parameter value (either the returned string, or the " "``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " "to ``False``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:534 +#: library/email.compat32-message.rst:534 msgid "" "Set a parameter in the :mailheader:`Content-Type` header. If the parameter " "already exists in the header, its value will be replaced with *value*. If " @@ -601,14 +600,14 @@ msgid "" "value will be appended as per :rfc:`2045`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:540 +#: library/email.compat32-message.rst:540 msgid "" "Optional *header* specifies an alternative header to :mailheader:`Content-" "Type`, and all parameters will be quoted as necessary unless optional " "*requote* is ``False`` (the default is ``True``)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:544 +#: library/email.compat32-message.rst:544 msgid "" "If optional *charset* is specified, the parameter will be encoded according " "to :rfc:`2231`. Optional *language* specifies the RFC 2231 language, " @@ -616,18 +615,18 @@ msgid "" "strings." msgstr "" -#: ../Doc/library/email.compat32-message.rst:549 +#: library/email.compat32-message.rst:549 msgid "" "If *replace* is ``False`` (the default) the header is moved to the end of " "the list of headers. If *replace* is ``True``, the header will be updated " "in place." msgstr "" -#: ../Doc/library/email.compat32-message.rst:553 +#: library/email.compat32-message.rst:553 msgid "``replace`` keyword was added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:558 +#: library/email.compat32-message.rst:558 msgid "" "Remove the given parameter completely from the :mailheader:`Content-Type` " "header. The header will be re-written in place without the parameter or its " @@ -636,14 +635,14 @@ msgid "" "mailheader:`Content-Type`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:567 +#: library/email.compat32-message.rst:567 msgid "" "Set the main type and subtype for the :mailheader:`Content-Type` header. " "*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " "a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/email.compat32-message.rst:571 +#: library/email.compat32-message.rst:571 msgid "" "This method replaces the :mailheader:`Content-Type` header, keeping all the " "parameters in place. If *requote* is ``False``, this leaves the existing " @@ -651,20 +650,20 @@ msgid "" "default)." msgstr "" -#: ../Doc/library/email.compat32-message.rst:576 +#: library/email.compat32-message.rst:576 msgid "" "An alternative header can be specified in the *header* argument. When the :" "mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` header " "is also added." msgstr "" -#: ../Doc/library/email.compat32-message.rst:580 +#: library/email.compat32-message.rst:580 msgid "" "This is a legacy method. On the :class:`~email.emailmessage.EmailMessage` " "class its functionality is replaced by the ``make_`` and ``add_`` methods." msgstr "" -#: ../Doc/library/email.compat32-message.rst:587 +#: library/email.compat32-message.rst:587 msgid "" "Return the value of the ``filename`` parameter of the :mailheader:`Content-" "Disposition` header of the message. If the header does not have a " @@ -674,7 +673,7 @@ msgid "" "always be unquoted as per :func:`email.utils.unquote`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:598 +#: library/email.compat32-message.rst:598 msgid "" "Return the value of the ``boundary`` parameter of the :mailheader:`Content-" "Type` header of the message, or *failobj* if either the header is missing, " @@ -682,7 +681,7 @@ msgid "" "unquoted as per :func:`email.utils.unquote`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:606 +#: library/email.compat32-message.rst:606 msgid "" "Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " "*boundary*. :meth:`set_boundary` will always quote *boundary* if " @@ -690,7 +689,7 @@ msgid "" "object has no :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:611 +#: library/email.compat32-message.rst:611 msgid "" "Note that using this method is subtly different than deleting the old :" "mailheader:`Content-Type` header and adding a new one with the new boundary " @@ -700,28 +699,28 @@ msgid "" "the original :mailheader:`Content-Type` header." msgstr "" -#: ../Doc/library/email.compat32-message.rst:621 +#: library/email.compat32-message.rst:621 msgid "" "Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " "coerced to lower case. If there is no :mailheader:`Content-Type` header, or " "if that header has no ``charset`` parameter, *failobj* is returned." msgstr "" -#: ../Doc/library/email.compat32-message.rst:625 +#: library/email.compat32-message.rst:625 msgid "" "Note that this method differs from :meth:`get_charset` which returns the :" "class:`~email.charset.Charset` instance for the default encoding of the " "message body." msgstr "" -#: ../Doc/library/email.compat32-message.rst:631 +#: library/email.compat32-message.rst:631 msgid "" "Return a list containing the character set names in the message. If the " "message is a :mimetype:`multipart`, then the list will contain one element " "for each subpart in the payload, otherwise, it will be a list of length 1." msgstr "" -#: ../Doc/library/email.compat32-message.rst:635 +#: library/email.compat32-message.rst:635 msgid "" "Each item in the list will be a string which is the value of the ``charset`` " "parameter in the :mailheader:`Content-Type` header for the represented " @@ -730,7 +729,7 @@ msgid "" "then that item in the returned list will be *failobj*." msgstr "" -#: ../Doc/library/email.compat32-message.rst:645 +#: library/email.compat32-message.rst:645 msgid "" "Return the lowercased value (without parameters) of the message's :" "mailheader:`Content-Disposition` header if it has one, or ``None``. The " @@ -738,7 +737,7 @@ msgid "" "the message follows :rfc:`2183`." msgstr "" -#: ../Doc/library/email.compat32-message.rst:654 +#: library/email.compat32-message.rst:654 msgid "" "The :meth:`walk` method is an all-purpose generator which can be used to " "iterate over all the parts and subparts of a message object tree, in depth-" @@ -746,13 +745,13 @@ msgid "" "in a ``for`` loop; each iteration returns the next subpart." msgstr "" -#: ../Doc/library/email.compat32-message.rst:659 +#: library/email.compat32-message.rst:659 msgid "" "Here's an example that prints the MIME type of every part of a multipart " "message structure:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:685 +#: library/email.compat32-message.rst:685 msgid "" "``walk`` iterates over the subparts of any part where :meth:`is_multipart` " "returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " @@ -760,21 +759,21 @@ msgid "" "``_structure`` debug helper function:" msgstr "" -#: ../Doc/library/email.compat32-message.rst:712 +#: library/email.compat32-message.rst:712 msgid "" "Here the ``message`` parts are not ``multiparts``, but they do contain " "subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " "subparts." msgstr "" -#: ../Doc/library/email.compat32-message.rst:717 +#: library/email.compat32-message.rst:717 msgid "" ":class:`Message` objects can also optionally contain two instance " "attributes, which can be used when generating the plain text of a MIME " "message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:723 +#: library/email.compat32-message.rst:723 msgid "" "The format of a MIME document allows for some text between the blank line " "following the headers, and the first multipart boundary string. Normally, " @@ -784,7 +783,7 @@ msgid "" "can become visible." msgstr "" -#: ../Doc/library/email.compat32-message.rst:730 +#: library/email.compat32-message.rst:730 msgid "" "The *preamble* attribute contains this leading extra-armor text for MIME " "documents. When the :class:`~email.parser.Parser` discovers some text after " @@ -796,26 +795,26 @@ msgid "" "parser` and :mod:`email.generator` for details." msgstr "" -#: ../Doc/library/email.compat32-message.rst:740 +#: library/email.compat32-message.rst:740 msgid "" "Note that if the message object has no preamble, the *preamble* attribute " "will be ``None``." msgstr "" -#: ../Doc/library/email.compat32-message.rst:746 +#: library/email.compat32-message.rst:746 msgid "" "The *epilogue* attribute acts the same way as the *preamble* attribute, " "except that it contains text that appears between the last boundary and the " "end of the message." msgstr "" -#: ../Doc/library/email.compat32-message.rst:750 +#: library/email.compat32-message.rst:750 msgid "" "You do not need to set the epilogue to the empty string in order for the :" "class:`~email.generator.Generator` to print a newline at the end of the file." msgstr "" -#: ../Doc/library/email.compat32-message.rst:757 +#: library/email.compat32-message.rst:757 msgid "" "The *defects* attribute contains a list of all the problems found when " "parsing this message. See :mod:`email.errors` for a detailed description of " diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po index 20e324e957..12476f88f2 100644 --- a/library/email.contentmanager.po +++ b/library/email.contentmanager.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-17 10:39+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/library/email.encoders.po b/library/email.encoders.po index d224bd438a..57c90a7179 100644 --- a/library/email.encoders.po +++ b/library/email.encoders.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2018-10-05 09:50+0200\n" diff --git a/library/email.errors.po b/library/email.errors.po index 536743673f..f08fcf0312 100644 --- a/library/email.errors.po +++ b/library/email.errors.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-06-17 10:39+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,17 +16,19 @@ msgstr "" #: ../Doc/library/email.errors.rst:2 msgid ":mod:`email.errors`: Exception and Defect classes" -msgstr "" +msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" #: ../Doc/library/email.errors.rst:7 msgid "**Source code:** :source:`Lib/email/errors.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/errors.py`" #: ../Doc/library/email.errors.rst:11 msgid "" "The following exception classes are defined in the :mod:`email.errors` " "module:" msgstr "" +"Les classes d'exception suivantes sont définies dans le module :mod:`email." +"errors` :" #: ../Doc/library/email.errors.rst:16 msgid "" @@ -34,6 +36,9 @@ msgid "" "raise. It is derived from the standard :exc:`Exception` class and defines " "no additional methods." msgstr "" +"Exception de base, dont héritent toutes les exceptions du paquet :mod:" +"`email`. Cette classe hérite de la classe native :exc:`Exception` et ne " +"définit aucune méthode additionnelle." #: ../Doc/library/email.errors.rst:23 msgid "" @@ -41,6 +46,9 @@ msgid "" "Parser` class. It is derived from :exc:`MessageError`. This class is also " "used internally by the parser used by :mod:`~email.headerregistry`." msgstr "" +"Exception de base pour les exceptions levées par la classe :class:`~email." +"parser.Parser`. Elle hérite de :exc:`MessageError`. Cette classe est aussi " +"utilisée en interne par l'analyseur de :mod:`~email.headerregistry`." #: ../Doc/library/email.errors.rst:31 msgid "" @@ -53,10 +61,19 @@ msgid "" "header (that is, there is what is supposed to be a continuation line that " "has no leading whitespace and looks like a header)." msgstr "" +"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous " +"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du " +"message. Lorsque la méthode :meth:`~email.message.EmailMessage." +"set_boundary` est invoquée, elle lève cette erreur si le type du contenu est " +"inconnu. La classe :class:`~email.header.Header` lève cette exception pour " +"certains types d'erreurs provenant du décodage base64. Elle la lève aussi " +"quand un en-tête est créé et qu'il semble contenir un en-tête imbriqué, " +"c'est-à-dire que la ligne qui suit ressemble à un en-tête et ne commence pas " +"par des caractères d'espacement." #: ../Doc/library/email.errors.rst:43 msgid "Deprecated and no longer used." -msgstr "" +msgstr "Obsolète, n'est plus utilisé." #: ../Doc/library/email.errors.rst:48 msgid "" @@ -66,6 +83,12 @@ msgid "" "`multipart` or missing. :exc:`MultipartConversionError` multiply inherits " "from :exc:`MessageError` and the built-in :exc:`TypeError`." msgstr "" +"Cette exception est levée quand le contenu, que la méthode :meth:" +"`add_payload` essaie d'ajouter à l'objet :class:`~email.message.Message`, " +"est déjà un scalaire et que le type principal du message :mailheader:" +"`Content-Type` est manquant ou différent de :mimetype:`multipart`. :exc:" +"`MultipartConversionError` hérite à la fois de :exc:`MessageError` et de :" +"exc:`TypeError`." #: ../Doc/library/email.errors.rst:54 msgid "" @@ -75,6 +98,11 @@ msgid "" "derived from :class:`~email.mime.nonmultipart.MIMENonMultipart` (e.g. :class:" "`~email.mime.image.MIMEImage`)." msgstr "" +"Comme la méthode :meth:`Message.add_payload` est obsolète, cette exception " +"est rarement utilisée. Néanmoins, elle peut être levée si la méthode :meth:" +"`~email.message.Message.attach` est invoquée sur une instance de classe " +"dérivée de :class:`~email.mime.nonmultipart.MIMENonMultipart` (p. ex. :class:" +"`~email.mime.image.MIMEImage`)." #: ../Doc/library/email.errors.rst:62 msgid "" @@ -85,41 +113,60 @@ msgid "" "nested message object would have a defect, but the containing messages would " "not." msgstr "" +"Voici la liste des anomalies que peut identifier :class:`~email.parser." +"FeedParser` pendant l'analyse des messages. Notez que les anomalies sont " +"signalées à l'endroit où elles sont détectées : par exemple, dans le cas " +"d'une malformation de l'en-tête d'un message imbriqué dans un message de " +"type :mimetype:`multipart/alternative`, l'anomalie est signalée sur le " +"message imbriqué seulement." #: ../Doc/library/email.errors.rst:68 msgid "" "All defect classes are subclassed from :class:`email.errors.MessageDefect`." msgstr "" +"Toutes les anomalies sont des sous-classes de :class:`email.errors." +"MessageDefect`." #: ../Doc/library/email.errors.rst:70 msgid "" ":class:`NoBoundaryInMultipartDefect` -- A message claimed to be a multipart, " "but had no :mimetype:`boundary` parameter." msgstr "" +":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite " +"(*multipart* en anglais), mais qui ne contient pas de séparateur :mimetype:" +"`boundary`." #: ../Doc/library/email.errors.rst:73 msgid "" ":class:`StartBoundaryNotFoundDefect` -- The start boundary claimed in the :" "mailheader:`Content-Type` header was never found." msgstr "" +":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le " +"séparateur de départ indiqué dans le :mailheader:`Content-Type`." #: ../Doc/library/email.errors.rst:76 msgid "" ":class:`CloseBoundaryNotFoundDefect` -- A start boundary was found, but no " "corresponding close boundary was ever found." msgstr "" +":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, " +"mais pas le séparateur de fin correspondant." #: ../Doc/library/email.errors.rst:81 msgid "" ":class:`FirstHeaderLineIsContinuationDefect` -- The message had a " "continuation line as its first header line." msgstr "" +":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-" +"tête du message est une ligne de continuation." #: ../Doc/library/email.errors.rst:84 msgid "" ":class:`MisplacedEnvelopeHeaderDefect` - A \"Unix From\" header was found in " "the middle of a header block." msgstr "" +":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent " +"à l'intérieur d'un bloc d'en-tête." #: ../Doc/library/email.errors.rst:87 msgid "" @@ -127,24 +174,34 @@ msgid "" "headers that had no leading white space but contained no ':'. Parsing " "continues assuming that the line represents the first line of the body." msgstr "" +":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient " +"pas de caractères d'espacement au début et aucun « : ». L'analyse continue " +"en supposant qu'il s'agit donc de la première ligne du corps du message." #: ../Doc/library/email.errors.rst:93 msgid "" ":class:`MalformedHeaderDefect` -- A header was found that was missing a " "colon, or was otherwise malformed." msgstr "" +":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un " +"« : »." #: ../Doc/library/email.errors.rst:96 msgid "This defect has not been used for several Python versions." -msgstr "" +msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python." #: ../Doc/library/email.errors.rst:99 msgid "" ":class:`MultipartInvariantViolationDefect` -- A message claimed to be a :" "mimetype:`multipart`, but no subparts were found. Note that when a message " "has this defect, its :meth:`~email.message.Message.is_multipart` method may " -"return false even though its content type claims to be :mimetype:`multipart`." +"return ``False`` even though its content type claims to be :mimetype:" +"`multipart`." msgstr "" +":class:`MultipartInvariantViolationDefect` — Le message indique être de " +"type :mimetype:`multipart`, mais aucune pièce jointe n'a été trouvée. Notez " +"que, dans ce cas, la méthode :meth:`~email.message.Message.is_multipart` " +"peut renvoyer ``False`` même si le type de contenu est :mimetype:`multipart`." #: ../Doc/library/email.errors.rst:104 msgid "" @@ -152,6 +209,9 @@ msgid "" "encoded bytes, the padding was not correct. Enough padding is added to " "perform the decode, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc " +"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés " +"pour permettre le décodage, mais le résultat du décodage peut être invalide." #: ../Doc/library/email.errors.rst:108 msgid "" @@ -159,6 +219,10 @@ msgid "" "encoded bytes, characters outside the base64 alphabet were encountered. The " "characters are ignored, but the resulting decoded bytes may be invalid." msgstr "" +":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à " +"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets " +"encodés en base64. Les caractères ont été ignorés, mais le résultat du " +"décodage peut être invalide." #: ../Doc/library/email.errors.rst:112 msgid "" @@ -166,3 +230,6 @@ msgid "" "encoded bytes, the number of non-padding base64 characters was invalid (1 " "more than a multiple of 4). The encoded block was kept as-is." msgstr "" +":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de " +"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus " +"qu'un multiple de 4). Le bloc encodé n'a pas été modifié." diff --git a/library/email.examples.po b/library/email.examples.po index 50eb37fed9..99492cea8b 100644 --- a/library/email.examples.po +++ b/library/email.examples.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-06-10 11:27+0200\n" "PO-Revision-Date: 2018-09-28 13:01+0200\n" diff --git a/library/email.generator.po b/library/email.generator.po index b86b6586cb..4326da071f 100644 --- a/library/email.generator.po +++ b/library/email.generator.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -19,8 +19,9 @@ msgid ":mod:`email.generator`: Generating MIME documents" msgstr "" #: ../Doc/library/email.generator.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/generator.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/iterators.py`" #: ../Doc/library/email.generator.rst:11 msgid "" diff --git a/library/email.header.po b/library/email.header.po index 3b78d46705..62c10c2242 100644 --- a/library/email.header.po +++ b/library/email.header.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" @@ -14,15 +14,16 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.header.rst:2 +#: library/email.header.rst:2 msgid ":mod:`email.header`: Internationalized headers" msgstr "" -#: ../Doc/library/email.header.rst:7 +#: library/email.header.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/header.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/encoders.py`" -#: ../Doc/library/email.header.rst:11 +#: library/email.header.rst:11 msgid "" "This module is part of the legacy (``Compat32``) email API. In the current " "API encoding and decoding of headers is handled transparently by the " @@ -32,7 +33,7 @@ msgid "" "headers." msgstr "" -#: ../Doc/library/email.header.rst:17 +#: library/email.header.rst:17 msgid "" "The remaining text in this section is the original documentation of the " "module." @@ -40,7 +41,7 @@ msgstr "" "Le texte restant de cette section est la documentation originale de ce " "module." -#: ../Doc/library/email.header.rst:19 +#: library/email.header.rst:19 msgid "" ":rfc:`2822` is the base standard that describes the format of email " "messages. It derives from the older :rfc:`822` standard which came into " @@ -49,7 +50,7 @@ msgid "" "bit ASCII characters." msgstr "" -#: ../Doc/library/email.header.rst:24 +#: library/email.header.rst:24 msgid "" "Of course, as email has been deployed worldwide, it has become " "internationalized, such that language specific character sets can now be " @@ -61,7 +62,7 @@ msgid "" "these standards in its :mod:`email.header` and :mod:`email.charset` modules." msgstr "" -#: ../Doc/library/email.header.rst:33 +#: library/email.header.rst:33 msgid "" "If you want to include non-ASCII characters in your email headers, say in " "the :mailheader:`Subject` or :mailheader:`To` fields, you should use the :" @@ -71,7 +72,7 @@ msgid "" "header` module. For example::" msgstr "" -#: ../Doc/library/email.header.rst:50 +#: library/email.header.rst:50 msgid "" "Notice here how we wanted the :mailheader:`Subject` field to contain a non-" "ASCII character? We did this by creating a :class:`Header` instance and " @@ -81,17 +82,17 @@ msgid "" "mail readers would show this header using the embedded ISO-8859-1 character." msgstr "" -#: ../Doc/library/email.header.rst:57 +#: library/email.header.rst:57 msgid "Here is the :class:`Header` class description:" msgstr "" -#: ../Doc/library/email.header.rst:62 +#: library/email.header.rst:62 msgid "" "Create a MIME-compliant header that can contain strings in different " "character sets." msgstr "" -#: ../Doc/library/email.header.rst:65 +#: library/email.header.rst:65 msgid "" "Optional *s* is the initial header value. If ``None`` (the default), the " "initial header value is not set. You can later append to the header with :" @@ -99,7 +100,7 @@ msgid "" "class:`str`, but see the :meth:`append` documentation for semantics." msgstr "" -#: ../Doc/library/email.header.rst:70 +#: library/email.header.rst:70 msgid "" "Optional *charset* serves two purposes: it has the same meaning as the " "*charset* argument to the :meth:`append` method. It also sets the default " @@ -109,7 +110,7 @@ msgid "" "charset and as the default for subsequent :meth:`append` calls." msgstr "" -#: ../Doc/library/email.header.rst:77 +#: library/email.header.rst:77 msgid "" "The maximum line length can be specified explicitly via *maxlinelen*. For " "splitting the first line to a shorter value (to account for the field header " @@ -119,7 +120,7 @@ msgid "" "for the first line of a long, split header." msgstr "" -#: ../Doc/library/email.header.rst:84 +#: library/email.header.rst:84 msgid "" "Optional *continuation_ws* must be :rfc:`2822`\\ -compliant folding " "whitespace, and is usually either a space or a hard tab character. This " @@ -127,16 +128,16 @@ msgid "" "defaults to a single space character." msgstr "" -#: ../Doc/library/email.header.rst:89 +#: library/email.header.rst:89 msgid "" "Optional *errors* is passed straight through to the :meth:`append` method." msgstr "" -#: ../Doc/library/email.header.rst:94 +#: library/email.header.rst:94 msgid "Append the string *s* to the MIME header." msgstr "" -#: ../Doc/library/email.header.rst:96 +#: library/email.header.rst:96 msgid "" "Optional *charset*, if given, should be a :class:`~email.charset.Charset` " "instance (see :mod:`email.charset`) or the name of a character set, which " @@ -145,7 +146,7 @@ msgid "" "used." msgstr "" -#: ../Doc/library/email.header.rst:102 +#: library/email.header.rst:102 msgid "" "*s* may be an instance of :class:`bytes` or :class:`str`. If it is an " "instance of :class:`bytes`, then *charset* is the encoding of that byte " @@ -153,13 +154,13 @@ msgid "" "decoded with that character set." msgstr "" -#: ../Doc/library/email.header.rst:107 +#: library/email.header.rst:107 msgid "" "If *s* is an instance of :class:`str`, then *charset* is a hint specifying " "the character set of the characters in the string." msgstr "" -#: ../Doc/library/email.header.rst:110 +#: library/email.header.rst:110 msgid "" "In either case, when producing an :rfc:`2822`\\ -compliant header using :rfc:" "`2047` rules, the string will be encoded using the output codec of the " @@ -167,20 +168,20 @@ msgid "" "UnicodeError will be raised." msgstr "" -#: ../Doc/library/email.header.rst:115 +#: library/email.header.rst:115 msgid "" "Optional *errors* is passed as the errors argument to the decode call if *s* " "is a byte string." msgstr "" -#: ../Doc/library/email.header.rst:121 +#: library/email.header.rst:121 msgid "" "Encode a message header into an RFC-compliant format, possibly wrapping long " "lines and encapsulating non-ASCII parts in base64 or quoted-printable " "encodings." msgstr "" -#: ../Doc/library/email.header.rst:125 +#: library/email.header.rst:125 msgid "" "Optional *splitchars* is a string containing characters which should be " "given extra weight by the splitting algorithm during normal header " @@ -193,31 +194,31 @@ msgid "" "Splitchars does not affect :RFC:`2047` encoded lines." msgstr "" -#: ../Doc/library/email.header.rst:135 +#: library/email.header.rst:135 msgid "" "*maxlinelen*, if given, overrides the instance's value for the maximum line " "length." msgstr "" -#: ../Doc/library/email.header.rst:138 +#: library/email.header.rst:138 msgid "" "*linesep* specifies the characters used to separate the lines of the folded " -"header. It defaults to the most useful value for Python application code (``" -"\\n``), but ``\\r\\n`` can be specified in order to produce headers with RFC-" -"compliant line separators." +"header. It defaults to the most useful value for Python application code " +"(``\\n``), but ``\\r\\n`` can be specified in order to produce headers with " +"RFC-compliant line separators." msgstr "" -#: ../Doc/library/email.header.rst:143 +#: library/email.header.rst:143 msgid "Added the *linesep* argument." msgstr "" -#: ../Doc/library/email.header.rst:147 +#: library/email.header.rst:147 msgid "" "The :class:`Header` class also provides a number of methods to support " "standard operators and built-in functions." msgstr "" -#: ../Doc/library/email.header.rst:152 +#: library/email.header.rst:152 msgid "" "Returns an approximation of the :class:`Header` as a string, using an " "unlimited line length. All pieces are converted to unicode using the " @@ -226,34 +227,34 @@ msgid "" "error handler." msgstr "" -#: ../Doc/library/email.header.rst:158 +#: library/email.header.rst:158 msgid "Added handling for the ``'unknown-8bit'`` charset." msgstr "" -#: ../Doc/library/email.header.rst:164 +#: library/email.header.rst:164 msgid "" "This method allows you to compare two :class:`Header` instances for equality." msgstr "" -#: ../Doc/library/email.header.rst:170 +#: library/email.header.rst:170 msgid "" "This method allows you to compare two :class:`Header` instances for " "inequality." msgstr "" -#: ../Doc/library/email.header.rst:173 +#: library/email.header.rst:173 msgid "" "The :mod:`email.header` module also provides the following convenient " "functions." msgstr "" -#: ../Doc/library/email.header.rst:178 +#: library/email.header.rst:178 msgid "" "Decode a message header value without converting the character set. The " "header value is in *header*." msgstr "" -#: ../Doc/library/email.header.rst:181 +#: library/email.header.rst:181 msgid "" "This function returns a list of ``(decoded_string, charset)`` pairs " "containing each of the decoded parts of the header. *charset* is ``None`` " @@ -261,24 +262,24 @@ msgid "" "containing the name of the character set specified in the encoded string." msgstr "" -#: ../Doc/library/email.header.rst:186 +#: library/email.header.rst:186 msgid "Here's an example::" msgstr "" -#: ../Doc/library/email.header.rst:195 +#: library/email.header.rst:195 msgid "" "Create a :class:`Header` instance from a sequence of pairs as returned by :" "func:`decode_header`." msgstr "" -#: ../Doc/library/email.header.rst:198 +#: library/email.header.rst:198 msgid "" ":func:`decode_header` takes a header value string and returns a sequence of " "pairs of the format ``(decoded_string, charset)`` where *charset* is the " "name of the character set." msgstr "" -#: ../Doc/library/email.header.rst:202 +#: library/email.header.rst:202 msgid "" "This function takes one of those sequence of pairs and returns a :class:" "`Header` instance. Optional *maxlinelen*, *header_name*, and " diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po index 3f9460a57e..d3bc6d95e1 100644 --- a/library/email.headerregistry.po +++ b/library/email.headerregistry.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2019-09-06 13:49+0200\n" @@ -14,19 +14,19 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.headerregistry.rst:2 +#: library/email.headerregistry.rst:2 msgid ":mod:`email.headerregistry`: Custom Header Objects" msgstr "" -#: ../Doc/library/email.headerregistry.rst:10 +#: library/email.headerregistry.rst:10 msgid "**Source code:** :source:`Lib/email/headerregistry.py`" msgstr "" -#: ../Doc/library/email.headerregistry.rst:14 +#: library/email.headerregistry.rst:14 msgid "[1]_" msgstr "" -#: ../Doc/library/email.headerregistry.rst:16 +#: library/email.headerregistry.rst:16 msgid "" "Headers are represented by customized subclasses of :class:`str`. The " "particular class used to represent a given header is determined by the :attr:" @@ -38,7 +38,7 @@ msgid "" "applications to add their own custom header types." msgstr "" -#: ../Doc/library/email.headerregistry.rst:25 +#: library/email.headerregistry.rst:25 msgid "" "When using any of the policy objects derived from :data:`~email.policy." "EmailPolicy`, all headers are produced by :class:`.HeaderRegistry` and have :" @@ -52,7 +52,7 @@ msgid "" "behavior for use by more complex applications." msgstr "" -#: ../Doc/library/email.headerregistry.rst:36 +#: library/email.headerregistry.rst:36 msgid "" "The sections below first document the header base classes and their " "attributes, followed by the API for modifying the behavior of :class:`." @@ -60,25 +60,25 @@ msgid "" "parsed from structured headers." msgstr "" -#: ../Doc/library/email.headerregistry.rst:44 +#: library/email.headerregistry.rst:44 msgid "" "*name* and *value* are passed to ``BaseHeader`` from the :attr:`~email." "policy.EmailPolicy.header_factory` call. The string value of any header " "object is the *value* fully decoded to unicode." msgstr "" -#: ../Doc/library/email.headerregistry.rst:48 +#: library/email.headerregistry.rst:48 msgid "This base class defines the following read-only properties:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:53 +#: library/email.headerregistry.rst:53 msgid "" "The name of the header (the portion of the field before the ':'). This is " "exactly the value passed in the :attr:`~email.policy.EmailPolicy." "header_factory` call for *name*; that is, case is preserved." msgstr "" -#: ../Doc/library/email.headerregistry.rst:61 +#: library/email.headerregistry.rst:61 msgid "" "A tuple of :exc:`~email.errors.HeaderDefect` instances reporting any RFC " "compliance problems found during parsing. The email package tries to be " @@ -86,7 +86,7 @@ msgid "" "module for a discussion of the types of defects that may be reported." msgstr "" -#: ../Doc/library/email.headerregistry.rst:69 +#: library/email.headerregistry.rst:69 msgid "" "The maximum number of headers of this type that can have the same ``name``. " "A value of ``None`` means unlimited. The ``BaseHeader`` value for this " @@ -94,14 +94,14 @@ msgid "" "override this value as needed." msgstr "" -#: ../Doc/library/email.headerregistry.rst:74 +#: library/email.headerregistry.rst:74 msgid "" "``BaseHeader`` also provides the following method, which is called by the " "email library code and should not in general be called by application " "programs:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:80 +#: library/email.headerregistry.rst:80 msgid "" "Return a string containing :attr:`~email.policy.Policy.linesep` characters " "as required to correctly fold the header according to *policy*. A :attr:" @@ -111,7 +111,7 @@ msgid "" "`2047` encoded." msgstr "" -#: ../Doc/library/email.headerregistry.rst:88 +#: library/email.headerregistry.rst:88 msgid "" "``BaseHeader`` by itself cannot be used to create a header object. It " "defines a protocol that each specialized header cooperates with in order to " @@ -120,7 +120,7 @@ msgid "" "method is called as follows::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:96 +#: library/email.headerregistry.rst:96 msgid "" "``kwds`` is a dictionary containing one pre-initialized key, ``defects``. " "``defects`` is an empty list. The parse method should append any detected " @@ -133,7 +133,7 @@ msgid "" "values." msgstr "" -#: ../Doc/library/email.headerregistry.rst:105 +#: library/email.headerregistry.rst:105 msgid "" "``BaseHeader``'s ``__new__`` then creates the header instance, and calls its " "``init`` method. The specialized class only needs to provide an ``init`` " @@ -141,14 +141,14 @@ msgid "" "``BaseHeader`` itself. Such an ``init`` method should look like this::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:114 +#: library/email.headerregistry.rst:114 msgid "" "That is, anything extra that the specialized class puts in to the ``kwds`` " "dictionary should be removed and handled, and the remaining contents of " "``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." msgstr "" -#: ../Doc/library/email.headerregistry.rst:121 +#: library/email.headerregistry.rst:121 msgid "" "An \"unstructured\" header is the default type of header in :rfc:`5322`. Any " "header that does not have a specified syntax is treated as unstructured. " @@ -156,7 +156,7 @@ msgid "" "header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:126 +#: library/email.headerregistry.rst:126 msgid "" "In :rfc:`5322`, an unstructured header is a run of arbitrary text in the " "ASCII character set. :rfc:`2047`, however, has an :rfc:`5322` compatible " @@ -169,24 +169,23 @@ msgid "" "such as invalid characters within the encoded words or the non-encoded text." msgstr "" -#: ../Doc/library/email.headerregistry.rst:136 +#: library/email.headerregistry.rst:136 msgid "This header type provides no additional attributes." msgstr "" -#: ../Doc/library/email.headerregistry.rst:141 +#: library/email.headerregistry.rst:141 msgid "" ":rfc:`5322` specifies a very specific format for dates within email headers. " "The ``DateHeader`` parser recognizes that date format, as well as " -"recognizing a number of variant forms that are sometimes found \"in the wild" -"\"." +"recognizing a number of variant forms that are sometimes found \"in the " +"wild\"." msgstr "" -#: ../Doc/library/email.headerregistry.rst:146 -#: ../Doc/library/email.headerregistry.rst:188 +#: library/email.headerregistry.rst:146 library/email.headerregistry.rst:188 msgid "This header type provides the following additional attributes:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:150 +#: library/email.headerregistry.rst:150 msgid "" "If the header value can be recognized as a valid date of one form or " "another, this attribute will contain a :class:`~datetime.datetime` instance " @@ -198,20 +197,20 @@ msgid "" "`datetime.timezone` to record the timezone offset." msgstr "" -#: ../Doc/library/email.headerregistry.rst:160 +#: library/email.headerregistry.rst:160 msgid "" "The ``decoded`` value of the header is determined by formatting the " "``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:165 +#: library/email.headerregistry.rst:165 msgid "" "When creating a ``DateHeader``, *value* may be :class:`~datetime.datetime` " "instance. This means, for example, that the following code is valid and " "does what one would expect::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:171 +#: library/email.headerregistry.rst:171 msgid "" "Because this is a naive ``datetime`` it will be interpreted as a UTC " "timestamp, and the resulting value will have a timezone of ``-0000``. Much " @@ -219,19 +218,19 @@ msgid "" "mod:`~email.utils` module::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:178 +#: library/email.headerregistry.rst:178 msgid "" "This example sets the date header to the current time and date using the " "current timezone offset." msgstr "" -#: ../Doc/library/email.headerregistry.rst:184 +#: library/email.headerregistry.rst:184 msgid "" "Address headers are one of the most complex structured header types. The " "``AddressHeader`` class provides a generic interface to any address header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:193 +#: library/email.headerregistry.rst:193 msgid "" "A tuple of :class:`.Group` objects encoding the addresses and groups found " "in the header value. Addresses that are not part of a group are represented " @@ -239,7 +238,7 @@ msgid "" "is ``None``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:201 +#: library/email.headerregistry.rst:201 msgid "" "A tuple of :class:`.Address` objects encoding all of the individual " "addresses from the header value. If the header value contains any groups, " @@ -248,7 +247,7 @@ msgid "" "\"flattened\" into a one dimensional list)." msgstr "" -#: ../Doc/library/email.headerregistry.rst:207 +#: library/email.headerregistry.rst:207 msgid "" "The ``decoded`` value of the header will have all encoded words decoded to " "unicode. :class:`~encodings.idna` encoded domain names are also decoded to " @@ -256,7 +255,7 @@ msgid "" "`str` value of the elements of the ``groups`` attribute with ``', '``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:213 +#: library/email.headerregistry.rst:213 msgid "" "A list of :class:`.Address` and :class:`.Group` objects in any combination " "may be used to set the value of an address header. ``Group`` objects whose " @@ -265,12 +264,12 @@ msgid "" "obtained from the ``groups`` attribute of the source header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:222 +#: library/email.headerregistry.rst:222 msgid "" "A subclass of :class:`.AddressHeader` that adds one additional attribute:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:228 +#: library/email.headerregistry.rst:228 msgid "" "The single address encoded by the header value. If the header value " "actually contains more than one address (which would be a violation of the " @@ -278,14 +277,14 @@ msgid "" "result in a :exc:`ValueError`." msgstr "" -#: ../Doc/library/email.headerregistry.rst:234 +#: library/email.headerregistry.rst:234 msgid "" "Many of the above classes also have a ``Unique`` variant (for example, " "``UniqueUnstructuredHeader``). The only difference is that in the " "``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." msgstr "" -#: ../Doc/library/email.headerregistry.rst:241 +#: library/email.headerregistry.rst:241 msgid "" "There is really only one valid value for the :mailheader:`MIME-Version` " "header, and that is ``1.0``. For future proofing, this header class " @@ -294,20 +293,20 @@ msgid "" "the following attributes:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:249 +#: library/email.headerregistry.rst:249 msgid "" "The version number as a string, with any whitespace and/or comments removed." msgstr "" -#: ../Doc/library/email.headerregistry.rst:254 +#: library/email.headerregistry.rst:254 msgid "The major version number as an integer" msgstr "" -#: ../Doc/library/email.headerregistry.rst:258 +#: library/email.headerregistry.rst:258 msgid "The minor version number as an integer" msgstr "" -#: ../Doc/library/email.headerregistry.rst:263 +#: library/email.headerregistry.rst:263 msgid "" "MIME headers all start with the prefix 'Content-'. Each specific header has " "a certain value, described under the class for that header. Some can also " @@ -315,41 +314,41 @@ msgid "" "class serves as a base for all the MIME headers that take parameters." msgstr "" -#: ../Doc/library/email.headerregistry.rst:270 +#: library/email.headerregistry.rst:270 msgid "A dictionary mapping parameter names to parameter values." msgstr "" -#: ../Doc/library/email.headerregistry.rst:275 +#: library/email.headerregistry.rst:275 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Type` header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:280 +#: library/email.headerregistry.rst:280 msgid "The content type string, in the form ``maintype/subtype``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:289 +#: library/email.headerregistry.rst:289 msgid "" "A :class:`ParameterizedMIMEHeader` class that handles the :mailheader:" "`Content-Disposition` header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:294 +#: library/email.headerregistry.rst:294 msgid "``inline`` and ``attachment`` are the only valid values in common use." msgstr "" -#: ../Doc/library/email.headerregistry.rst:299 +#: library/email.headerregistry.rst:299 msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:303 +#: library/email.headerregistry.rst:303 msgid "" "Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " "See :rfc:`2045` for more information." msgstr "" -#: ../Doc/library/email.headerregistry.rst:312 +#: library/email.headerregistry.rst:312 msgid "" "This is the factory used by :class:`~email.policy.EmailPolicy` by default. " "``HeaderRegistry`` builds the class used to create a header instance " @@ -362,151 +361,146 @@ msgid "" "class's ``__bases__`` list." msgstr "" -#: ../Doc/library/email.headerregistry.rst:322 +#: library/email.headerregistry.rst:322 msgid "The default mappings are:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "subject" msgstr "" -#: ../Doc/library/email.headerregistry.rst:324 +#: library/email.headerregistry.rst:324 msgid "UniqueUnstructuredHeader" msgstr "UniqueUnstructuredHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "date" msgstr "" -#: ../Doc/library/email.headerregistry.rst:325 -#: ../Doc/library/email.headerregistry.rst:327 +#: library/email.headerregistry.rst:325 library/email.headerregistry.rst:327 msgid "UniqueDateHeader" msgstr "UniqueDateHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-date" msgstr "" -#: ../Doc/library/email.headerregistry.rst:326 +#: library/email.headerregistry.rst:326 msgid "DateHeader" msgstr "DateHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "orig-date" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "sender" msgstr "" -#: ../Doc/library/email.headerregistry.rst:328 +#: library/email.headerregistry.rst:328 msgid "UniqueSingleAddressHeader" msgstr "UniqueSingleAddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-sender" msgstr "" -#: ../Doc/library/email.headerregistry.rst:329 +#: library/email.headerregistry.rst:329 msgid "SingleAddressHeader" msgstr "SingleAddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "to" msgstr "" -#: ../Doc/library/email.headerregistry.rst:330 -#: ../Doc/library/email.headerregistry.rst:332 -#: ../Doc/library/email.headerregistry.rst:334 -#: ../Doc/library/email.headerregistry.rst:336 -#: ../Doc/library/email.headerregistry.rst:338 +#: library/email.headerregistry.rst:330 library/email.headerregistry.rst:332 +#: library/email.headerregistry.rst:334 library/email.headerregistry.rst:336 +#: library/email.headerregistry.rst:338 msgid "UniqueAddressHeader" msgstr "UniqueAddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-to" msgstr "" -#: ../Doc/library/email.headerregistry.rst:331 -#: ../Doc/library/email.headerregistry.rst:333 -#: ../Doc/library/email.headerregistry.rst:335 -#: ../Doc/library/email.headerregistry.rst:337 +#: library/email.headerregistry.rst:331 library/email.headerregistry.rst:333 +#: library/email.headerregistry.rst:335 library/email.headerregistry.rst:337 msgid "AddressHeader" msgstr "AddressHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "cc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-cc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "bcc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-bcc" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "from" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "resent-from" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "reply-to" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "mime-version" msgstr "" -#: ../Doc/library/email.headerregistry.rst:339 +#: library/email.headerregistry.rst:339 msgid "MIMEVersionHeader" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "content-type" msgstr "" -#: ../Doc/library/email.headerregistry.rst:340 +#: library/email.headerregistry.rst:340 msgid "ContentTypeHeader" msgstr "ContentTypeHeader" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "content-disposition" msgstr "" -#: ../Doc/library/email.headerregistry.rst:341 +#: library/email.headerregistry.rst:341 msgid "ContentDispositionHeader" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "content-transfer-encoding" msgstr "" -#: ../Doc/library/email.headerregistry.rst:342 +#: library/email.headerregistry.rst:342 msgid "ContentTransferEncodingHeader" msgstr "" -#: ../Doc/library/email.headerregistry.rst:0 +#: library/email.headerregistry.rst:0 msgid "message-id" msgstr "" -#: ../Doc/library/email.headerregistry.rst:343 +#: library/email.headerregistry.rst:343 msgid "MessageIDHeader" msgstr "MessageIDHeader" -#: ../Doc/library/email.headerregistry.rst:345 +#: library/email.headerregistry.rst:345 msgid "``HeaderRegistry`` has the following methods:" msgstr "" -#: ../Doc/library/email.headerregistry.rst:350 +#: library/email.headerregistry.rst:350 msgid "" "*name* is the name of the header to be mapped. It will be converted to " "lower case in the registry. *cls* is the specialized class to be used, " @@ -514,11 +508,11 @@ msgid "" "that match *name*." msgstr "" -#: ../Doc/library/email.headerregistry.rst:358 +#: library/email.headerregistry.rst:358 msgid "Construct and return a class to handle creating a *name* header." msgstr "" -#: ../Doc/library/email.headerregistry.rst:363 +#: library/email.headerregistry.rst:363 msgid "" "Retrieves the specialized header associated with *name* from the registry " "(using *default_class* if *name* does not appear in the registry) and " @@ -527,30 +521,30 @@ msgid "" "the class instance created thereby." msgstr "" -#: ../Doc/library/email.headerregistry.rst:370 +#: library/email.headerregistry.rst:370 msgid "" "The following classes are the classes used to represent data parsed from " "structured headers and can, in general, be used by an application program to " "construct structured values to assign to specific headers." msgstr "" -#: ../Doc/library/email.headerregistry.rst:377 +#: library/email.headerregistry.rst:377 msgid "" "The class used to represent an email address. The general form of an " "address is::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:382 +#: library/email.headerregistry.rst:382 msgid "or::" msgstr "ou ::" -#: ../Doc/library/email.headerregistry.rst:386 +#: library/email.headerregistry.rst:386 msgid "" "where each part must conform to specific syntax rules spelled out in :rfc:" "`5322`." msgstr "" -#: ../Doc/library/email.headerregistry.rst:389 +#: library/email.headerregistry.rst:389 msgid "" "As a convenience *addr_spec* can be specified instead of *username* and " "*domain*, in which case *username* and *domain* will be parsed from the " @@ -560,48 +554,48 @@ msgid "" "*not* allowed in the username portion of the address." msgstr "" -#: ../Doc/library/email.headerregistry.rst:398 +#: library/email.headerregistry.rst:398 msgid "" "The display name portion of the address, if any, with all quoting removed. " "If the address does not have a display name, this attribute will be an empty " "string." msgstr "" -#: ../Doc/library/email.headerregistry.rst:404 +#: library/email.headerregistry.rst:404 msgid "The ``username`` portion of the address, with all quoting removed." msgstr "" -#: ../Doc/library/email.headerregistry.rst:408 +#: library/email.headerregistry.rst:408 msgid "The ``domain`` portion of the address." msgstr "" -#: ../Doc/library/email.headerregistry.rst:412 +#: library/email.headerregistry.rst:412 msgid "" "The ``username@domain`` portion of the address, correctly quoted for use as " "a bare address (the second form shown above). This attribute is not mutable." msgstr "" -#: ../Doc/library/email.headerregistry.rst:418 +#: library/email.headerregistry.rst:418 msgid "" "The ``str`` value of the object is the address quoted according to :rfc:" "`5322` rules, but with no Content Transfer Encoding of any non-ASCII " "characters." msgstr "" -#: ../Doc/library/email.headerregistry.rst:422 +#: library/email.headerregistry.rst:422 msgid "" "To support SMTP (:rfc:`5321`), ``Address`` handles one special case: if " "``username`` and ``domain`` are both the empty string (or ``None``), then " "the string value of the ``Address`` is ``<>``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:429 +#: library/email.headerregistry.rst:429 msgid "" "The class used to represent an address group. The general form of an " "address group is::" msgstr "" -#: ../Doc/library/email.headerregistry.rst:434 +#: library/email.headerregistry.rst:434 msgid "" "As a convenience for processing lists of addresses that consist of a mixture " "of groups and single addresses, a ``Group`` may also be used to represent " @@ -609,20 +603,20 @@ msgid "" "``None`` and providing a list of the single address as *addresses*." msgstr "" -#: ../Doc/library/email.headerregistry.rst:441 +#: library/email.headerregistry.rst:441 msgid "" "The ``display_name`` of the group. If it is ``None`` and there is exactly " "one ``Address`` in ``addresses``, then the ``Group`` represents a single " "address that is not in a group." msgstr "" -#: ../Doc/library/email.headerregistry.rst:447 +#: library/email.headerregistry.rst:447 msgid "" "A possibly empty tuple of :class:`.Address` objects representing the " "addresses in the group." msgstr "" -#: ../Doc/library/email.headerregistry.rst:452 +#: library/email.headerregistry.rst:452 msgid "" "The ``str`` value of a ``Group`` is formatted according to :rfc:`5322`, but " "with no Content Transfer Encoding of any non-ASCII characters. If " @@ -631,11 +625,11 @@ msgid "" "that single ``Address``." msgstr "" -#: ../Doc/library/email.headerregistry.rst:460 +#: library/email.headerregistry.rst:460 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/email.headerregistry.rst:461 +#: library/email.headerregistry.rst:461 msgid "" "Originally added in 3.3 as a :term:`provisional module `" msgstr "" diff --git a/library/email.iterators.po b/library/email.iterators.po index 2eb4578f9b..fb32dc9d03 100644 --- a/library/email.iterators.po +++ b/library/email.iterators.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" "PO-Revision-Date: 2019-06-20 19:13+0200\n" diff --git a/library/email.message.po b/library/email.message.po index 020aabe8eb..f1021a4a11 100644 --- a/library/email.message.po +++ b/library/email.message.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -19,8 +19,9 @@ msgid ":mod:`email.message`: Representing an email message" msgstr "" #: ../Doc/library/email.message.rst:10 +#, fuzzy msgid "**Source code:** :source:`Lib/email/message.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.message.rst:14 msgid "[1]_" @@ -222,9 +223,9 @@ msgstr "" #: ../Doc/library/email.message.rst:181 msgid "" -"Return true if the message object has a field named *name*. Matching is done " -"without regard to case and *name* does not include the trailing colon. Used " -"for the ``in`` operator. For example::" +"Return ``True`` if the message object has a field named *name*. Matching is " +"done without regard to case and *name* does not include the trailing colon. " +"Used for the ``in`` operator. For example::" msgstr "" #: ../Doc/library/email.message.rst:191 @@ -342,7 +343,7 @@ msgstr "" #: ../Doc/library/email.message.rst:287 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" #: ../Doc/library/email.message.rst:291 msgid "This will add a header that looks like ::" diff --git a/library/email.mime.po b/library/email.mime.po index c0dc9266ce..51a2d53caa 100644 --- a/library/email.mime.po +++ b/library/email.mime.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/library/email.parser.po b/library/email.parser.po index cf9c491819..ef66fcf100 100644 --- a/library/email.parser.po +++ b/library/email.parser.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-05-23 16:48+0200\n" "PO-Revision-Date: 2019-05-08 16:44+0200\n" diff --git a/library/email.po b/library/email.po index 7f3f3eca9f..4e0c34c378 100644 --- a/library/email.po +++ b/library/email.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,21 +14,21 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.rst:2 +#: library/email.rst:2 msgid ":mod:`email` --- An email and MIME handling package" msgstr ":mod:`email` — Un paquet de gestion des e-mails et MIME" -#: ../Doc/library/email.rst:11 +#: library/email.rst:11 msgid "**Source code:** :source:`Lib/email/__init__.py`" msgstr "**Code source:** :source:`Lib/email/__init__.py`" -#: ../Doc/library/email.rst:15 +#: library/email.rst:15 msgid "" "The :mod:`email` package is a library for managing email messages. It is " "specifically *not* designed to do any sending of email messages to SMTP (:" "rfc:`2821`), NNTP, or other servers; those are functions of modules such as :" "mod:`smtplib` and :mod:`nntplib`. The :mod:`email` package attempts to be " -"as RFC-compliant as possible, supporting :rfc:`5233` and :rfc:`6532`, as " +"as RFC-compliant as possible, supporting :rfc:`5322` and :rfc:`6532`, as " "well as such MIME-related RFCs as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :" "rfc:`2183`, and :rfc:`2231`." msgstr "" @@ -36,11 +36,11 @@ msgstr "" "spécifiquement conçu pour ne pas gérer les envois d'e-mails vers SMTP (:rfc:" "`2821`), NNTP, ou autres serveurs ; ces fonctions sont du ressort " "des modules comme :mod:`smtplib` et :mod:`nntplib`. Le paquet :mod:`email` " -"tente de respecter les RFC autant que possible, il gère :rfc:`5233` et :rfc:" +"tente de respecter les RFC autant que possible, il gère :rfc:`5322` et :rfc:" "`6532`, ainsi que les RFCs en rapport avec les MIME comme :rfc:`2045`, :rfc:" "`2046`, :rfc:`2047`, :rfc:`2183`, et :rfc:`2231`." -#: ../Doc/library/email.rst:23 +#: library/email.rst:23 msgid "" "The overall structure of the email package can be divided into three major " "components, plus a fourth component that controls the behavior of the other " @@ -49,7 +49,7 @@ msgstr "" "Ce paquet peut être divisé entre trois composants majeurs, et un quatrième " "composant qui contrôle le comportement des trois autres." -#: ../Doc/library/email.rst:27 +#: library/email.rst:27 msgid "" "The central component of the package is an \"object model\" that represents " "email messages. An application interacts with the package primarily through " @@ -71,7 +71,7 @@ msgstr "" "composants MIME, le modèle d'objet d'e-mail est une structure arborescente " "d'objets qui fournit tout à l'API de :class:`~email.message.EmailMessage`." -#: ../Doc/library/email.rst:37 +#: library/email.rst:37 msgid "" "The other two major components of the package are the :mod:`~email.parser` " "and the :mod:`~email.generator`. The parser takes the serialized version of " @@ -92,7 +92,7 @@ msgstr "" "déconseillée car il est très facile de finir avec des messages invalides " "d'une manière ou d'une autre)." -#: ../Doc/library/email.rst:46 +#: library/email.rst:46 msgid "" "The control component is the :mod:`~email.policy` module. Every :class:" "`~email.message.EmailMessage`, every :mod:`~email.generator`, and every :mod:" @@ -119,7 +119,7 @@ msgstr "" "de le sérialiser en utilisant une configuration SMTP standard quand on " "l'envoie vers un serveur d'e-mail." -#: ../Doc/library/email.rst:58 +#: library/email.rst:58 msgid "" "The email package does its best to hide the details of the various governing " "RFCs from the application. Conceptually the application should be able to " @@ -150,7 +150,7 @@ msgstr "" "couramment utilisés dans les logiciels internet modernes (et non uniquement " "les e-mails), les développeurs sont généralement familiers de ce concept." -#: ../Doc/library/email.rst:71 +#: library/email.rst:71 msgid "" "The following sections describe the functionality of the :mod:`email` " "package. We start with the :mod:`~email.message` object model, which is the " @@ -166,7 +166,7 @@ msgstr "" "couvrons les contrôles :mod:`~email.policy`, qui complètent le traitement " "des principaux composants de la bibliothèque." -#: ../Doc/library/email.rst:78 +#: library/email.rst:78 msgid "" "The next three sections cover the exceptions the package may raise and the " "defects (non-compliance with the RFCs) that the :mod:`~email.parser` may " @@ -187,7 +187,7 @@ msgstr "" "et elles documentent aussi leurs API pour pouvoir les étendre, ce qui ne " "manquera pas d'intéresser les applications avancées." -#: ../Doc/library/email.rst:87 +#: library/email.rst:87 msgid "" "Following those is a set of examples of using the fundamental parts of the " "APIs covered in the preceding sections." @@ -195,7 +195,7 @@ msgstr "" "Ci-dessous se trouve un ensemble d'exemples d'utilisations des éléments " "fondamentaux des API couvertes dans les sections précédentes." -#: ../Doc/library/email.rst:90 +#: library/email.rst:90 msgid "" "The foregoing represent the modern (unicode friendly) API of the email " "package. The remaining sections, starting with the :class:`~email.message." @@ -218,7 +218,7 @@ msgstr "" "toujours l'API :mod:`~email.policy.compat32` pour des raisons de " "rétrocompatibilité." -#: ../Doc/library/email.rst:100 +#: library/email.rst:100 msgid "" "Docs reorganized and rewritten to promote the new :class:`~email.message." "EmailMessage`/:class:`~email.policy.EmailPolicy` API." @@ -226,51 +226,51 @@ msgstr "" "Documents réorganisés et réécrits pour promouvoir la nouvelle API :class:" "`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy`." -#: ../Doc/library/email.rst:105 +#: library/email.rst:105 msgid "Contents of the :mod:`email` package documentation:" msgstr "Contenus de la documentation du paquet :mod:`email` :" -#: ../Doc/library/email.rst:120 +#: library/email.rst:120 msgid "Legacy API:" msgstr "API héritée :" -#: ../Doc/library/email.rst:136 +#: library/email.rst:136 msgid "Module :mod:`smtplib`" msgstr "Module :mod:`smtplib`" -#: ../Doc/library/email.rst:136 +#: library/email.rst:136 msgid "SMTP (Simple Mail Transport Protocol) client" msgstr "Client SMTP (*Simple Mail Transport Protocol*)" -#: ../Doc/library/email.rst:139 +#: library/email.rst:139 msgid "Module :mod:`poplib`" msgstr "Module :mod:`poplib`" -#: ../Doc/library/email.rst:139 +#: library/email.rst:139 msgid "POP (Post Office Protocol) client" msgstr "Client POP (*Post Office Protocol*)" -#: ../Doc/library/email.rst:142 +#: library/email.rst:142 msgid "Module :mod:`imaplib`" msgstr "Module :mod:`imaplib`" -#: ../Doc/library/email.rst:142 +#: library/email.rst:142 msgid "IMAP (Internet Message Access Protocol) client" msgstr "Client IMAP (*Internet Message Access Protocol*)" -#: ../Doc/library/email.rst:145 +#: library/email.rst:145 msgid "Module :mod:`nntplib`" msgstr "Module :mod:`nntplib`" -#: ../Doc/library/email.rst:145 +#: library/email.rst:145 msgid "NNTP (Net News Transport Protocol) client" msgstr "Client NNTP (*Net News Transport Protocol*)" -#: ../Doc/library/email.rst:149 +#: library/email.rst:149 msgid "Module :mod:`mailbox`" msgstr "Module :mod:`mailbox`" -#: ../Doc/library/email.rst:148 +#: library/email.rst:148 msgid "" "Tools for creating, reading, and managing collections of messages on disk " "using a variety standard formats." @@ -278,10 +278,10 @@ msgstr "" "Outils pour créer, lire et gérer des messages regroupés sur disque en " "utilisant des formats standards variés." -#: ../Doc/library/email.rst:151 +#: library/email.rst:151 msgid "Module :mod:`smtpd`" msgstr "Module :mod:`smtpd`" -#: ../Doc/library/email.rst:152 +#: library/email.rst:152 msgid "SMTP server framework (primarily useful for testing)" msgstr "Cadriciel pour serveur SMTP (principalement utile pour tester)" diff --git a/library/email.policy.po b/library/email.policy.po index 0caa7673fd..525a98086a 100644 --- a/library/email.policy.po +++ b/library/email.policy.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" @@ -14,15 +14,15 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/email.policy.rst:2 +#: library/email.policy.rst:2 msgid ":mod:`email.policy`: Policy Objects" msgstr "" -#: ../Doc/library/email.policy.rst:12 +#: library/email.policy.rst:12 msgid "**Source code:** :source:`Lib/email/policy.py`" msgstr "" -#: ../Doc/library/email.policy.rst:16 +#: library/email.policy.rst:16 msgid "" "The :mod:`email` package's prime focus is the handling of email messages as " "described by the various email and MIME RFCs. However, the general format " @@ -37,13 +37,13 @@ msgid "" "violate the standards." msgstr "" -#: ../Doc/library/email.policy.rst:28 +#: library/email.policy.rst:28 msgid "" "Policy objects give the email package the flexibility to handle all these " "disparate use cases." msgstr "" -#: ../Doc/library/email.policy.rst:31 +#: library/email.policy.rst:31 msgid "" "A :class:`Policy` object encapsulates a set of attributes and methods that " "control the behavior of various components of the email package during use. :" @@ -52,7 +52,7 @@ msgid "" "defaults are described below." msgstr "" -#: ../Doc/library/email.policy.rst:37 +#: library/email.policy.rst:37 msgid "" "There is a default policy used by all classes in the email package. For all " "of the :mod:`~email.parser` classes and the related convenience functions, " @@ -63,14 +63,14 @@ msgid "" "the email package." msgstr "" -#: ../Doc/library/email.policy.rst:44 +#: library/email.policy.rst:44 msgid "" "This default value for the *policy* keyword to :class:`~email.message." "EmailMessage` is the :class:`EmailPolicy` policy, via its pre-defined " "instance :data:`~default`." msgstr "" -#: ../Doc/library/email.policy.rst:48 +#: library/email.policy.rst:48 msgid "" "When a :class:`~email.message.Message` or :class:`~email.message." "EmailMessage` object is created, it acquires a policy. If the message is " @@ -82,7 +82,7 @@ msgid "" "to the generator that will override the one stored on the message object." msgstr "" -#: ../Doc/library/email.policy.rst:57 +#: library/email.policy.rst:57 msgid "" "The default value for the *policy* keyword for the :mod:`email.parser` " "classes and the parser convenience functions **will be changing** in a " @@ -91,7 +91,7 @@ msgid "" "described in the :mod:`~email.parser` module." msgstr "" -#: ../Doc/library/email.policy.rst:63 +#: library/email.policy.rst:63 msgid "" "The first part of this documentation covers the features of :class:`Policy`, " "an :term:`abstract base class` that defines the features that are common to " @@ -103,7 +103,7 @@ msgid "" "backward compatible behavior and features, respectively." msgstr "" -#: ../Doc/library/email.policy.rst:72 +#: library/email.policy.rst:72 msgid "" ":class:`Policy` instances are immutable, but they can be cloned, accepting " "the same keyword arguments as the class constructor and returning a new :" @@ -111,14 +111,14 @@ msgid "" "specified attributes values changed." msgstr "" -#: ../Doc/library/email.policy.rst:77 +#: library/email.policy.rst:77 msgid "" "As an example, the following code could be used to read an email message " "from a file on disk and pass it to the system ``sendmail`` program on a Unix " "system:" msgstr "" -#: ../Doc/library/email.policy.rst:113 +#: library/email.policy.rst:113 msgid "" "Here we are telling :class:`~email.generator.BytesGenerator` to use the RFC " "correct line separator characters when creating the binary string to feed " @@ -126,7 +126,7 @@ msgid "" "line separators." msgstr "" -#: ../Doc/library/email.policy.rst:118 +#: library/email.policy.rst:118 msgid "" "Some email package methods accept a *policy* keyword argument, allowing the " "policy to be overridden for that method. For example, the following code " @@ -135,20 +135,20 @@ msgid "" "line separators for the platform on which it is running::" msgstr "" -#: ../Doc/library/email.policy.rst:129 +#: library/email.policy.rst:129 msgid "" "Policy objects can also be combined using the addition operator, producing a " "policy object whose settings are a combination of the non-default values of " "the summed objects::" msgstr "" -#: ../Doc/library/email.policy.rst:137 +#: library/email.policy.rst:137 msgid "" "This operation is not commutative; that is, the order in which the objects " "are added matters. To illustrate::" msgstr "" -#: ../Doc/library/email.policy.rst:152 +#: library/email.policy.rst:152 msgid "" "This is the :term:`abstract base class` for all policy classes. It provides " "default implementations for a couple of trivial methods, as well as the " @@ -156,7 +156,7 @@ msgid "" "the constructor semantics." msgstr "" -#: ../Doc/library/email.policy.rst:157 +#: library/email.policy.rst:157 msgid "" "The constructor of a policy class can be passed various keyword arguments. " "The arguments that may be specified are any non-method properties on this " @@ -165,48 +165,48 @@ msgid "" "corresponding attribute." msgstr "" -#: ../Doc/library/email.policy.rst:163 +#: library/email.policy.rst:163 msgid "" "This class defines the following properties, and thus values for the " "following may be passed in the constructor of any policy class:" msgstr "" -#: ../Doc/library/email.policy.rst:169 +#: library/email.policy.rst:169 msgid "" "The maximum length of any line in the serialized output, not counting the " "end of line character(s). Default is 78, per :rfc:`5322`. A value of ``0`` " "or :const:`None` indicates that no line wrapping should be done at all." msgstr "" -#: ../Doc/library/email.policy.rst:177 +#: library/email.policy.rst:177 msgid "" "The string to be used to terminate lines in serialized output. The default " "is ``\\n`` because that's the internal end-of-line discipline used by " "Python, though ``\\r\\n`` is required by the RFCs." msgstr "" -#: ../Doc/library/email.policy.rst:184 +#: library/email.policy.rst:184 msgid "" "Controls the type of Content Transfer Encodings that may be or are required " "to be used. The possible values are:" msgstr "" -#: ../Doc/library/email.policy.rst:190 +#: library/email.policy.rst:190 msgid "``7bit``" msgstr "``7bit``" -#: ../Doc/library/email.policy.rst:190 +#: library/email.policy.rst:190 msgid "" "all data must be \"7 bit clean\" (ASCII-only). This means that where " "necessary data will be encoded using either quoted-printable or base64 " "encoding." msgstr "" -#: ../Doc/library/email.policy.rst:194 +#: library/email.policy.rst:194 msgid "``8bit``" msgstr "``8bit``" -#: ../Doc/library/email.policy.rst:194 +#: library/email.policy.rst:194 msgid "" "data is not constrained to be 7 bit clean. Data in headers is still " "required to be ASCII-only and so will be encoded (see :meth:`fold_binary` " @@ -214,7 +214,7 @@ msgid "" "the ``8bit`` CTE." msgstr "" -#: ../Doc/library/email.policy.rst:200 +#: library/email.policy.rst:200 msgid "" "A ``cte_type`` value of ``8bit`` only works with ``BytesGenerator``, not " "``Generator``, because strings cannot contain binary data. If a " @@ -222,71 +222,71 @@ msgid "" "it will act as if ``cte_type`` is ``7bit``." msgstr "" -#: ../Doc/library/email.policy.rst:208 +#: library/email.policy.rst:208 msgid "" "If :const:`True`, any defects encountered will be raised as errors. If :" "const:`False` (the default), defects will be passed to the :meth:" "`register_defect` method." msgstr "" -#: ../Doc/library/email.policy.rst:215 +#: library/email.policy.rst:215 msgid "" "If :const:`True`, lines starting with *\"From \"* in the body are escaped by " "putting a ``>`` in front of them. This parameter is used when the message is " "being serialized by a generator. Default: :const:`False`." msgstr "" -#: ../Doc/library/email.policy.rst:220 +#: library/email.policy.rst:220 msgid "The *mangle_from_* parameter." msgstr "" -#: ../Doc/library/email.policy.rst:226 +#: library/email.policy.rst:226 msgid "" "A factory function for constructing a new empty message object. Used by the " "parser when building messages. Defaults to ``None``, in which case :class:" "`~email.message.Message` is used." msgstr "" -#: ../Doc/library/email.policy.rst:232 +#: library/email.policy.rst:232 msgid "" "The following :class:`Policy` method is intended to be called by code using " "the email library to create policy instances with custom settings:" msgstr "" -#: ../Doc/library/email.policy.rst:238 +#: library/email.policy.rst:238 msgid "" "Return a new :class:`Policy` instance whose attributes have the same values " "as the current instance, except where those attributes are given new values " "by the keyword arguments." msgstr "" -#: ../Doc/library/email.policy.rst:243 +#: library/email.policy.rst:243 msgid "" "The remaining :class:`Policy` methods are called by the email package code, " "and are not intended to be called by an application using the email package. " "A custom policy must implement all of these methods." msgstr "" -#: ../Doc/library/email.policy.rst:250 +#: library/email.policy.rst:250 msgid "" "Handle a *defect* found on *obj*. When the email package calls this method, " "*defect* will always be a subclass of :class:`~email.errors.Defect`." msgstr "" -#: ../Doc/library/email.policy.rst:254 +#: library/email.policy.rst:254 msgid "" "The default implementation checks the :attr:`raise_on_defect` flag. If it " "is ``True``, *defect* is raised as an exception. If it is ``False`` (the " "default), *obj* and *defect* are passed to :meth:`register_defect`." msgstr "" -#: ../Doc/library/email.policy.rst:261 +#: library/email.policy.rst:261 msgid "" "Register a *defect* on *obj*. In the email package, *defect* will always be " "a subclass of :class:`~email.errors.Defect`." msgstr "" -#: ../Doc/library/email.policy.rst:264 +#: library/email.policy.rst:264 msgid "" "The default implementation calls the ``append`` method of the ``defects`` " "attribute of *obj*. When the email package calls :attr:`handle_defect`, " @@ -296,11 +296,11 @@ msgid "" "defects in parsed messages will raise unexpected errors." msgstr "" -#: ../Doc/library/email.policy.rst:274 +#: library/email.policy.rst:274 msgid "Return the maximum allowed number of headers named *name*." msgstr "" -#: ../Doc/library/email.policy.rst:276 +#: library/email.policy.rst:276 msgid "" "Called when a header is added to an :class:`~email.message.EmailMessage` or :" "class:`~email.message.Message` object. If the returned value is not ``0`` " @@ -308,7 +308,7 @@ msgid "" "greater than or equal to the value returned, a :exc:`ValueError` is raised." msgstr "" -#: ../Doc/library/email.policy.rst:282 +#: library/email.policy.rst:282 msgid "" "Because the default behavior of ``Message.__setitem__`` is to append the " "value to the list of headers, it is easy to create duplicate headers without " @@ -318,11 +318,11 @@ msgid "" "faithfully produce as many headers as exist in the message being parsed.)" msgstr "" -#: ../Doc/library/email.policy.rst:290 +#: library/email.policy.rst:290 msgid "The default implementation returns ``None`` for all header names." msgstr "" -#: ../Doc/library/email.policy.rst:295 +#: library/email.policy.rst:295 msgid "" "The email package calls this method with a list of strings, each string " "ending with the line separation characters found in the source being " @@ -332,7 +332,7 @@ msgid "" "the parsed header." msgstr "" -#: ../Doc/library/email.policy.rst:302 +#: library/email.policy.rst:302 msgid "" "If an implementation wishes to retain compatibility with the existing email " "package policies, *name* should be the case preserved name (all characters " @@ -341,16 +341,15 @@ msgid "" "stripped of leading whitespace." msgstr "" -#: ../Doc/library/email.policy.rst:308 +#: library/email.policy.rst:308 msgid "*sourcelines* may contain surrogateescaped binary data." msgstr "" -#: ../Doc/library/email.policy.rst:310 ../Doc/library/email.policy.rst:326 -#: ../Doc/library/email.policy.rst:342 +#: library/email.policy.rst:326 library/email.policy.rst:342 msgid "There is no default implementation" msgstr "" -#: ../Doc/library/email.policy.rst:315 +#: library/email.policy.rst:315 msgid "" "The email package calls this method with the name and value provided by the " "application program when the application program is modifying a ``Message`` " @@ -359,14 +358,14 @@ msgid "" "``Message`` to represent the header." msgstr "" -#: ../Doc/library/email.policy.rst:321 +#: library/email.policy.rst:321 msgid "" "If an implementation wishes to retain compatibility with the existing email " "package policies, the *name* and *value* should be strings or string " "subclasses that do not change the content of the passed in arguments." msgstr "" -#: ../Doc/library/email.policy.rst:331 +#: library/email.policy.rst:331 msgid "" "The email package calls this method with the *name* and *value* currently " "stored in the ``Message`` when that header is requested by the application " @@ -377,13 +376,13 @@ msgid "" "returned to the application." msgstr "" -#: ../Doc/library/email.policy.rst:339 +#: library/email.policy.rst:339 msgid "" "*value* may contain surrogateescaped binary data. There should be no " "surrogateescaped binary data in the value returned by the method." msgstr "" -#: ../Doc/library/email.policy.rst:347 +#: library/email.policy.rst:347 msgid "" "The email package calls this method with the *name* and *value* currently " "stored in the ``Message`` for a given header. The method should return a " @@ -393,32 +392,32 @@ msgid "" "discussion of the rules for folding email headers." msgstr "" -#: ../Doc/library/email.policy.rst:354 +#: library/email.policy.rst:354 msgid "" "*value* may contain surrogateescaped binary data. There should be no " "surrogateescaped binary data in the string returned by the method." msgstr "" -#: ../Doc/library/email.policy.rst:360 +#: library/email.policy.rst:360 msgid "" "The same as :meth:`fold`, except that the returned value should be a bytes " "object rather than a string." msgstr "" -#: ../Doc/library/email.policy.rst:363 +#: library/email.policy.rst:363 msgid "" "*value* may contain surrogateescaped binary data. These could be converted " "back into binary data in the returned bytes object." msgstr "" -#: ../Doc/library/email.policy.rst:370 +#: library/email.policy.rst:370 msgid "" "This concrete :class:`Policy` provides behavior that is intended to be fully " "compliant with the current email RFCs. These include (but are not limited " "to) :rfc:`5322`, :rfc:`2047`, and the current MIME RFCs." msgstr "" -#: ../Doc/library/email.policy.rst:374 +#: library/email.policy.rst:374 msgid "" "This policy adds new header parsing and folding algorithms. Instead of " "simple strings, headers are ``str`` subclasses with attributes that depend " @@ -426,23 +425,23 @@ msgid "" "implement :rfc:`2047` and :rfc:`5322`." msgstr "" -#: ../Doc/library/email.policy.rst:379 +#: library/email.policy.rst:379 msgid "" "The default value for the :attr:`~email.policy.Policy.message_factory` " "attribute is :class:`~email.message.EmailMessage`." msgstr "" -#: ../Doc/library/email.policy.rst:382 +#: library/email.policy.rst:382 msgid "" "In addition to the settable attributes listed above that apply to all " "policies, this policy adds the following additional attributes:" msgstr "" -#: ../Doc/library/email.policy.rst:385 +#: library/email.policy.rst:385 msgid "[1]_" msgstr "" -#: ../Doc/library/email.policy.rst:390 +#: library/email.policy.rst:390 msgid "" "If ``False``, follow :rfc:`5322`, supporting non-ASCII characters in headers " "by encoding them as \"encoded words\". If ``True``, follow :rfc:`6532` and " @@ -450,7 +449,7 @@ msgid "" "passed to SMTP servers that support the ``SMTPUTF8`` extension (:rfc:`6531`)." msgstr "" -#: ../Doc/library/email.policy.rst:399 +#: library/email.policy.rst:399 msgid "" "If the value for a header in the ``Message`` object originated from a :mod:" "`~email.parser` (as opposed to being set by a program), this attribute " @@ -458,37 +457,37 @@ msgid "" "transforming the message back into serialized form. The possible values are:" msgstr "" -#: ../Doc/library/email.policy.rst:406 +#: library/email.policy.rst:406 msgid "``none``" msgstr "``none``" -#: ../Doc/library/email.policy.rst:406 +#: library/email.policy.rst:406 msgid "all source values use original folding" msgstr "" -#: ../Doc/library/email.policy.rst:408 +#: library/email.policy.rst:408 msgid "``long``" msgstr "``long``" -#: ../Doc/library/email.policy.rst:408 +#: library/email.policy.rst:408 msgid "" "source values that have any line that is longer than ``max_line_length`` " "will be refolded" msgstr "" -#: ../Doc/library/email.policy.rst:411 +#: library/email.policy.rst:411 msgid "``all``" msgstr "``all``" -#: ../Doc/library/email.policy.rst:411 +#: library/email.policy.rst:411 msgid "all values are refolded." msgstr "" -#: ../Doc/library/email.policy.rst:414 +#: library/email.policy.rst:414 msgid "The default is ``long``." msgstr "" -#: ../Doc/library/email.policy.rst:419 +#: library/email.policy.rst:419 msgid "" "A callable that takes two arguments, ``name`` and ``value``, where ``name`` " "is a header field name and ``value`` is an unfolded header field value, and " @@ -499,7 +498,7 @@ msgid "" "custom parsing will be added in the future." msgstr "" -#: ../Doc/library/email.policy.rst:430 +#: library/email.policy.rst:430 msgid "" "An object with at least two methods: get_content and set_content. When the :" "meth:`~email.message.EmailMessage.get_content` or :meth:`~email.message." @@ -510,20 +509,20 @@ msgid "" "``content_manager`` is set to :data:`~email.contentmanager.raw_data_manager`." msgstr "" -#: ../Doc/library/email.policy.rst:442 ../Doc/library/email.policy.rst:600 +#: library/email.policy.rst:600 msgid "" "The class provides the following concrete implementations of the abstract " "methods of :class:`Policy`:" msgstr "" -#: ../Doc/library/email.policy.rst:448 +#: library/email.policy.rst:448 msgid "" "Returns the value of the :attr:`~email.headerregistry.BaseHeader.max_count` " "attribute of the specialized class used to represent the header with the " "given name." msgstr "" -#: ../Doc/library/email.policy.rst:456 ../Doc/library/email.policy.rst:606 +#: library/email.policy.rst:606 msgid "" "The name is parsed as everything up to the '``:``' and returned unmodified. " "The value is determined by stripping leading whitespace off the remainder of " @@ -531,7 +530,7 @@ msgid "" "trailing carriage return or linefeed characters." msgstr "" -#: ../Doc/library/email.policy.rst:464 +#: library/email.policy.rst:464 msgid "" "The name is returned unchanged. If the input value has a ``name`` attribute " "and it matches *name* ignoring case, the value is returned unchanged. " @@ -540,7 +539,7 @@ msgid "" "``ValueError`` is raised if the input value contains CR or LF characters." msgstr "" -#: ../Doc/library/email.policy.rst:474 +#: library/email.policy.rst:474 msgid "" "If the value has a ``name`` attribute, it is returned to unmodified. " "Otherwise the *name*, and the *value* with any CR or LF characters removed, " @@ -549,7 +548,7 @@ msgid "" "character glyph." msgstr "" -#: ../Doc/library/email.policy.rst:483 +#: library/email.policy.rst:483 msgid "" "Header folding is controlled by the :attr:`refold_source` policy setting. A " "value is considered to be a 'source value' if and only if it does not have a " @@ -561,7 +560,7 @@ msgid "" "current policy." msgstr "" -#: ../Doc/library/email.policy.rst:492 +#: library/email.policy.rst:492 msgid "" "Source values are split into lines using :meth:`~str.splitlines`. If the " "value is not to be refolded, the lines are rejoined using the ``linesep`` " @@ -571,13 +570,13 @@ msgid "" "using the ``unknown-8bit`` charset." msgstr "" -#: ../Doc/library/email.policy.rst:502 +#: library/email.policy.rst:502 msgid "" "The same as :meth:`fold` if :attr:`~Policy.cte_type` is ``7bit``, except " "that the returned value is bytes." msgstr "" -#: ../Doc/library/email.policy.rst:505 +#: library/email.policy.rst:505 msgid "" "If :attr:`~Policy.cte_type` is ``8bit``, non-ASCII binary data is converted " "back into bytes. Headers with binary data are not refolded, regardless of " @@ -585,7 +584,7 @@ msgid "" "binary data consists of single byte characters or multibyte characters." msgstr "" -#: ../Doc/library/email.policy.rst:512 +#: library/email.policy.rst:512 msgid "" "The following instances of :class:`EmailPolicy` provide defaults suitable " "for specific application domains. Note that in the future the behavior of " @@ -593,20 +592,20 @@ msgid "" "conform even more closely to the RFCs relevant to their domains." msgstr "" -#: ../Doc/library/email.policy.rst:520 +#: library/email.policy.rst:520 msgid "" "An instance of ``EmailPolicy`` with all defaults unchanged. This policy " -"uses the standard Python ``\\n`` line endings rather than the RFC-correct ``" -"\\r\\n``." +"uses the standard Python ``\\n`` line endings rather than the RFC-correct " +"``\\r\\n``." msgstr "" -#: ../Doc/library/email.policy.rst:527 +#: library/email.policy.rst:527 msgid "" "Suitable for serializing messages in conformance with the email RFCs. Like " "``default``, but with ``linesep`` set to ``\\r\\n``, which is RFC compliant." msgstr "" -#: ../Doc/library/email.policy.rst:534 +#: library/email.policy.rst:534 msgid "" "The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``. " "Useful for serializing messages to a message store without using encoded " @@ -615,46 +614,46 @@ msgid "" "SMTP.send_message` method handles this automatically)." msgstr "" -#: ../Doc/library/email.policy.rst:543 +#: library/email.policy.rst:543 msgid "" "Suitable for serializing headers with for use in HTTP traffic. Like " "``SMTP`` except that ``max_line_length`` is set to ``None`` (unlimited)." msgstr "" -#: ../Doc/library/email.policy.rst:549 +#: library/email.policy.rst:549 msgid "" "Convenience instance. The same as ``default`` except that " "``raise_on_defect`` is set to ``True``. This allows any policy to be made " "strict by writing::" msgstr "" -#: ../Doc/library/email.policy.rst:556 +#: library/email.policy.rst:556 msgid "" "With all of these :class:`EmailPolicies <.EmailPolicy>`, the effective API " "of the email package is changed from the Python 3.2 API in the following " "ways:" msgstr "" -#: ../Doc/library/email.policy.rst:559 +#: library/email.policy.rst:559 msgid "" "Setting a header on a :class:`~email.message.Message` results in that header " "being parsed and a header object created." msgstr "" -#: ../Doc/library/email.policy.rst:562 +#: library/email.policy.rst:562 msgid "" "Fetching a header value from a :class:`~email.message.Message` results in " "that header being parsed and a header object created and returned." msgstr "" -#: ../Doc/library/email.policy.rst:566 +#: library/email.policy.rst:566 msgid "" "Any header object, or any header that is refolded due to the policy " "settings, is folded using an algorithm that fully implements the RFC folding " "algorithms, including knowing where encoded words are required and allowed." msgstr "" -#: ../Doc/library/email.policy.rst:571 +#: library/email.policy.rst:571 msgid "" "From the application view, this means that any header obtained through the :" "class:`~email.message.EmailMessage` is a header object with extra " @@ -664,13 +663,13 @@ msgid "" "the unicode string into the correct RFC encoded form." msgstr "" -#: ../Doc/library/email.policy.rst:578 +#: library/email.policy.rst:578 msgid "" "The header objects and their attributes are described in :mod:`~email." "headerregistry`." msgstr "" -#: ../Doc/library/email.policy.rst:585 +#: library/email.policy.rst:585 msgid "" "This concrete :class:`Policy` is the backward compatibility policy. It " "replicates the behavior of the email package in Python 3.2. The :mod:" @@ -679,28 +678,28 @@ msgid "" "of the email package is to maintain compatibility with Python 3.2." msgstr "" -#: ../Doc/library/email.policy.rst:591 +#: library/email.policy.rst:591 msgid "" "The following attributes have values that are different from the :class:" "`Policy` default:" msgstr "" -#: ../Doc/library/email.policy.rst:597 +#: library/email.policy.rst:597 msgid "The default is ``True``." msgstr "" -#: ../Doc/library/email.policy.rst:614 +#: library/email.policy.rst:614 msgid "The name and value are returned unmodified." msgstr "" -#: ../Doc/library/email.policy.rst:619 +#: library/email.policy.rst:619 msgid "" "If the value contains binary data, it is converted into a :class:`~email." "header.Header` object using the ``unknown-8bit`` charset. Otherwise it is " "returned unmodified." msgstr "" -#: ../Doc/library/email.policy.rst:626 +#: library/email.policy.rst:626 msgid "" "Headers are folded using the :class:`~email.header.Header` folding " "algorithm, which preserves existing line breaks in the value, and wraps each " @@ -708,7 +707,7 @@ msgid "" "encoded using the ``unknown-8bit`` charset." msgstr "" -#: ../Doc/library/email.policy.rst:634 +#: library/email.policy.rst:634 msgid "" "Headers are folded using the :class:`~email.header.Header` folding " "algorithm, which preserves existing line breaks in the value, and wraps each " @@ -718,17 +717,17 @@ msgid "" "and any (RFC invalid) binary data it may contain." msgstr "" -#: ../Doc/library/email.policy.rst:644 +#: library/email.policy.rst:644 msgid "" "An instance of :class:`Compat32`, providing backward compatibility with the " "behavior of the email package in Python 3.2." msgstr "" -#: ../Doc/library/email.policy.rst:649 +#: library/email.policy.rst:649 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/email.policy.rst:650 +#: library/email.policy.rst:650 msgid "" "Originally added in 3.3 as a :term:`provisional feature `." diff --git a/library/email.utils.po b/library/email.utils.po index a133c99409..2142e3e2d7 100644 --- a/library/email.utils.po +++ b/library/email.utils.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.7\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-12-17 21:38+0100\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -19,8 +19,9 @@ msgid ":mod:`email.utils`: Miscellaneous utilities" msgstr "" #: ../Doc/library/email.utils.rst:7 +#, fuzzy msgid "**Source code:** :source:`Lib/email/utils.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/email/parser.py`" #: ../Doc/library/email.utils.rst:11 msgid "" @@ -132,8 +133,8 @@ msgid "" "directly to :func:`time.mktime`, and the tenth is the offset of the date's " "timezone from UTC (which is the official term for Greenwich Mean Time) " "[#]_. If the input string has no timezone, the last element of the tuple " -"returned is ``None``. Note that indexes 6, 7, and 8 of the result tuple are " -"not usable." +"returned is ``0``, which represents UTC. Note that indexes 6, 7, and 8 of " +"the result tuple are not usable." msgstr "" #: ../Doc/library/email.utils.rst:126 diff --git a/library/ensurepip.po b/library/ensurepip.po index 58df93fb95..18665f144a 100644 --- a/library/ensurepip.po +++ b/library/ensurepip.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2020-02-04 10:00+0100\n" "PO-Revision-Date: 2017-08-10 00:59+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -17,7 +17,7 @@ msgstr "" #: ../Doc/library/ensurepip.rst:2 msgid ":mod:`ensurepip` --- Bootstrapping the ``pip`` installer" -msgstr "" +msgstr ":mod:`ensurepip` — Amorçage de l'installateur ``pip``" #: ../Doc/library/ensurepip.rst:12 msgid "" @@ -28,6 +28,12 @@ msgid "" "is bundled with maintenance and feature releases of the CPython reference " "interpreter." msgstr "" +"Le module :mod:`ensurepip` met en place l'installateur ``pip`` dans un " +"environnement Python, classique ou virtuel. Ce principe d'amorçage a été " +"choisi car ``pip`` est un projet séparé de Python avec son propre cycle de " +"versions. Il permet en particulier d'embarquer la version la plus récente de " +"``pip`` dans les mises à jour de maintenance de l'interpréteur CPython comme " +"dans les nouvelles versions principales." #: ../Doc/library/ensurepip.rst:19 msgid "" @@ -36,12 +42,19 @@ msgid "" "needed if installing ``pip`` was skipped when installing Python (or when " "creating a virtual environment) or after explicitly uninstalling ``pip``." msgstr "" +"Dans la plupart des cas, il n'est pas nécessaire de recourir à ce module. " +"``pip`` est le plus souvent déjà installé pour vous. Cependant, " +"``ensurepip`` peut s'avérer utile si l'installation de ``pip`` a été sautée " +"au moment de l'installation de Python (ou en créant un environnement " +"virtuel), ou bien si ``pip`` a été désinstallé par l'utilisateur." #: ../Doc/library/ensurepip.rst:27 msgid "" "This module *does not* access the internet. All of the components needed to " "bootstrap ``pip`` are included as internal parts of the package." msgstr "" +"Ce module n'accède *pas* au réseau. Tout ce qu'il faut pour amorcer ``pip`` " +"est compris dans le paquet." #: ../Doc/library/ensurepip.rst:34 msgid ":ref:`installing-index`" @@ -49,28 +62,33 @@ msgstr ":ref:`installing-index`" #: ../Doc/library/ensurepip.rst:34 msgid "The end user guide for installing Python packages" -msgstr "" +msgstr "Guide de l'utilisateur final pour installer des paquets Python" #: ../Doc/library/ensurepip.rst:36 msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" msgstr "" +":pep:`453` : Amorçage explicite de pip dans les installations de Python" #: ../Doc/library/ensurepip.rst:37 msgid "The original rationale and specification for this module." msgstr "" +"Les motivations pour l'ajout de ce module et sa spécification d'origine" #: ../Doc/library/ensurepip.rst:41 +#, fuzzy msgid "Command line interface" -msgstr "" +msgstr "Interface en ligne de commande" #: ../Doc/library/ensurepip.rst:43 msgid "" "The command line interface is invoked using the interpreter's ``-m`` switch." msgstr "" +"On fait appel à l'interface en ligne de commande à l'aide de l'option ``-m`` " +"de l'interpréteur." #: ../Doc/library/ensurepip.rst:45 msgid "The simplest possible invocation is::" -msgstr "" +msgstr "L'invocation la plus simple est ::" #: ../Doc/library/ensurepip.rst:49 msgid "" @@ -87,6 +105,9 @@ msgid "" "virtual environment). The installation location can be controlled through " "two additional command line options:" msgstr "" +"``pip`` est installé par défaut dans l'environnement virtuel courant, s'il y " +"en a un, ou bien dans le dossier ``site-packages`` du système. L'emplacement " +"d'installation se règle à travers deux options :" #: ../Doc/library/ensurepip.rst:61 msgid "" @@ -94,6 +115,9 @@ msgid "" "rather than the root of the currently active virtual environment (if any) or " "the default root for the current Python installation." msgstr "" +"``--root `` : installe ``pip`` sur un chemin relatif à la racine " +"*dossier* au lieu de la racine de l'environnement virtuel ou la racine par " +"défaut de l'installation de Python." #: ../Doc/library/ensurepip.rst:64 msgid "" @@ -101,6 +125,9 @@ msgid "" "than globally for the current Python installation (this option is not " "permitted inside an active virtual environment)." msgstr "" +"``--user`` : installe ``pip`` dans le dossier ``site-packages`` propre à " +"l'utilisateur au lieu du dossier global de l'installation de Python. Cette " +"option n'est pas valide dans un environnement virtuel." #: ../Doc/library/ensurepip.rst:68 msgid "" @@ -108,34 +135,40 @@ msgid "" "stands for the version of Python used to invoke ``ensurepip``). The scripts " "installed can be controlled through two additional command line options:" msgstr "" +"Par défaut, les commandes ``pipX`` et ``pipX.Y`` sont créées (où X.Y est la " +"version de Python avec laquelle ``ensurepip`` est utilisé). Cela se contrôle " +"par deux options supplémentaires :" #: ../Doc/library/ensurepip.rst:73 msgid "" "``--altinstall``: if an alternate installation is requested, the ``pipX`` " "script will *not* be installed." msgstr "" +"``--altinstall`` : dans ce mode d'« installation parallèle », seule la " +"commande ``pipX.Y`` est ajoutée, et pas la commande ``pipX``." -#: ../Doc/library/ensurepip.rst:77 -msgid "``--default-pip``: if a \"default pip\" installation is requested, the" -msgstr "" - -#: ../Doc/library/ensurepip.rst:77 +#: ../Doc/library/ensurepip.rst:76 msgid "" +"``--default-pip``: if a \"default pip\" installation is requested, the " "``pip`` script will be installed in addition to the two regular scripts." msgstr "" +"``--default-pip`` : ce mode d'« installation de la version par défaut » crée " +"la commande ``pip`` en plus de ``pipX`` et ``pipX.Y``." #: ../Doc/library/ensurepip.rst:79 msgid "" "Providing both of the script selection options will trigger an exception." -msgstr "" +msgstr "Combiner ces deux options conduit à une exception." #: ../Doc/library/ensurepip.rst:83 msgid "Module API" -msgstr "" +msgstr "API du module" #: ../Doc/library/ensurepip.rst:85 msgid ":mod:`ensurepip` exposes two functions for programmatic use:" msgstr "" +"Le module :mod:`ensurepip` définit deux fonctions pour utilisation dans les " +"programmes :" #: ../Doc/library/ensurepip.rst:89 msgid "" @@ -146,6 +179,7 @@ msgstr "" #: ../Doc/library/ensurepip.rst:96 msgid "Bootstraps ``pip`` into the current or designated environment." msgstr "" +"Amorce ``pip`` dans l'environnement courant ou un environnement spécifique." #: ../Doc/library/ensurepip.rst:98 msgid "" @@ -153,6 +187,9 @@ msgid "" "*root* is ``None``, then installation uses the default install location for " "the current environment." msgstr "" +"Passer *root* permet de changer la racine du chemin d'installation. Si " +"*root* vaut ``None`` (la valeur par défaut), l'installation se fait dans la " +"racine par défaut pour l'environnement courant." #: ../Doc/library/ensurepip.rst:102 msgid "" @@ -165,39 +202,52 @@ msgid "" "*user* indicates whether to use the user scheme rather than installing " "globally." msgstr "" +"Si *user* vaut vrai, ``pip`` est mis dans des chemins qui le rendent " +"disponible pour cet utilisateur uniquement, et non pour tous les " +"utilisateurs de l'installation de Python." #: ../Doc/library/ensurepip.rst:108 msgid "" "By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " "stands for the current version of Python)." msgstr "" +"Par défaut, les commandes créées sont ``pipX`` et ``pipX.Y`` (où X.Y est la " +"version de Python)." #: ../Doc/library/ensurepip.rst:111 msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." -msgstr "" +msgstr "Si *altinstall* vaut vrai, ``pipX`` n'est pas créée." #: ../Doc/library/ensurepip.rst:113 msgid "" "If *default_pip* is set, then ``pip`` will be installed in addition to the " "two regular scripts." msgstr "" +"Si *default_pip* vaut vrai, la commande ``pip`` est créée en plus des deux " +"autres." #: ../Doc/library/ensurepip.rst:116 msgid "" "Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." msgstr "" +"Le fait de combiner *altinstall* et *default_pip* lève l'exception :exc:" +"`ValueError`." #: ../Doc/library/ensurepip.rst:119 msgid "" "*verbosity* controls the level of output to :data:`sys.stdout` from the " "bootstrapping operation." msgstr "" +"*verbosity* règle le niveau de verbosité des messages émis sur :data:`sys." +"stdout` pendant l'amorçage." #: ../Doc/library/ensurepip.rst:123 msgid "" "Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " "argument ``root``." msgstr "" +"Cette fonction lève un :ref:`événement d'audit ` ``ensurepip." +"bootstrap`` avec l'argument ``root``." #: ../Doc/library/ensurepip.rst:126 msgid "" @@ -205,6 +255,9 @@ msgid "" "environ``. Invoking the command line interface in a subprocess instead " "allows these side effects to be avoided." msgstr "" +"Le processus d'amorçage a des effets de bord sur ``sys.path`` et ``os." +"environ``. Pour les éviter, on peut appeler l'interface en ligne de commande " +"dans un sous-processus." #: ../Doc/library/ensurepip.rst:132 msgid "" @@ -213,3 +266,7 @@ msgid "" "be present by default (as the dependencies may be removed in a future " "version of ``pip``)." msgstr "" +"L'amorçage peut installer des modules supplémentaires qui sont requis pour " +"``pip``. Les autres programmes ne doivent pas prendre pour acquise la " +"présence de ces modules, car ``pip`` pourrait dans une version future se " +"passer de ces dépendances." diff --git a/library/enum.po b/library/enum.po index 220a00f34b..0ba4ede2cf 100644 --- a/library/enum.po +++ b/library/enum.po @@ -3,27 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-07-26 19:08+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2019-12-11 11:26+0100\n" "Last-Translator: Antoine Wecxsteen\n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" +"X-Generator: Poedit 1.8.7.1\n" -#: ../Doc/library/enum.rst:2 +#: library/enum.rst:2 msgid ":mod:`enum` --- Support for enumerations" msgstr ":mod:`enum` — Énumerations" -#: ../Doc/library/enum.rst:14 +#: library/enum.rst:14 msgid "**Source code:** :source:`Lib/enum.py`" msgstr "**Code source :** :source:`Lib/enum.py`" -#: ../Doc/library/enum.rst:18 +#: library/enum.rst:18 msgid "" "An enumeration is a set of symbolic names (members) bound to unique, " "constant values. Within an enumeration, the members can be compared by " @@ -34,11 +34,25 @@ msgstr "" "peuvent être comparés entre eux et il est possible d'itérer sur " "l'énumération elle-même." -#: ../Doc/library/enum.rst:24 +#: library/enum.rst:22 +msgid "Case of Enum Members" +msgstr "Convention de nommage pour les membres d'une **Enum**" + +#: library/enum.rst:24 +msgid "" +"Because Enums are used to represent constants we recommend using UPPER_CASE " +"names for enum members, and will be using that style in our examples." +msgstr "" +"Puisque les **Enums** sont utilisées pour représenter des constantes, il est " +"recommandé d'utiliser des majuscules (format ``MAJUSCULE_AVEC_SOULIGNÉS``) " +"pour leurs membres. Cette convention de style sera utilisée dans les " +"exemples." + +#: library/enum.rst:30 msgid "Module Contents" msgstr "Contenu du module" -#: ../Doc/library/enum.rst:26 +#: library/enum.rst:32 msgid "" "This module defines four enumeration classes that can be used to define " "unique sets of names and values: :class:`Enum`, :class:`IntEnum`, :class:" @@ -50,7 +64,7 @@ msgstr "" "class:`Flag` et :class:`IntFlag`. Il fournit également un décorateur, :func:" "`unique`, ainsi qu'une classe utilitaire, :class:`auto`." -#: ../Doc/library/enum.rst:33 +#: library/enum.rst:39 msgid "" "Base class for creating enumerated constants. See section `Functional API`_ " "for an alternate construction syntax." @@ -58,7 +72,7 @@ msgstr "" "Classe de base pour créer une énumération de constantes. Voir la section " "`API par fonction`_ pour une syntaxe alternative de construction." -#: ../Doc/library/enum.rst:38 +#: library/enum.rst:44 msgid "" "Base class for creating enumerated constants that are also subclasses of :" "class:`int`." @@ -66,7 +80,7 @@ msgstr "" "Classe de base pour créer une énumération de constantes qui sont également " "des sous-classes de :class:`int`." -#: ../Doc/library/enum.rst:43 +#: library/enum.rst:49 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operators without losing their :class:`IntFlag` membership. :class:" @@ -77,7 +91,7 @@ msgstr "" "qualité de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des " "sous-classes de :class:`int`." -#: ../Doc/library/enum.rst:49 +#: library/enum.rst:55 msgid "" "Base class for creating enumerated constants that can be combined using the " "bitwise operations without losing their :class:`Flag` membership." @@ -86,28 +100,31 @@ msgstr "" "combinées avec des opérateurs de comparaison bit-à-bit, sans perdre leur " "qualité de :class:`Flag`." -#: ../Doc/library/enum.rst:54 +#: library/enum.rst:61 msgid "" "Enum class decorator that ensures only one name is bound to any one value." msgstr "" "Décorateur de classe qui garantit qu'une valeur ne puisse être associée qu'à " "un seul nom." -#: ../Doc/library/enum.rst:58 -msgid "Instances are replaced with an appropriate value for Enum members." +#: library/enum.rst:65 +#, fuzzy +msgid "" +"Instances are replaced with an appropriate value for Enum members. Initial " +"value starts at 1." msgstr "" "Les instances de cette classe remplacent les membres d'une *Enum* par une " "valeur appropriée." -#: ../Doc/library/enum.rst:60 +#: library/enum.rst:67 msgid "``Flag``, ``IntFlag``, ``auto``" msgstr "``Flag``, ``IntFlag``, ``auto``" -#: ../Doc/library/enum.rst:64 +#: library/enum.rst:71 msgid "Creating an Enum" msgstr "Création d'une *Enum*" -#: ../Doc/library/enum.rst:66 +#: library/enum.rst:73 msgid "" "Enumerations are created using the :keyword:`class` syntax, which makes them " "easy to read and write. An alternative creation method is described in " @@ -117,13 +134,13 @@ msgstr "" "Une énumération est créée comme une :keyword:`class`, ce qui la rend facile " "à lire et à écrire. Une autre méthode de création est décrite dans `API par " "fonction`_. Pour définir une énumération, il faut hériter de :class:`Enum` " -"de la manière suivante : ::" +"de la manière suivante ::" -#: ../Doc/library/enum.rst:78 +#: library/enum.rst:85 msgid "Enum member values" msgstr "Valeurs des membres d'une *Enum*" -#: ../Doc/library/enum.rst:80 +#: library/enum.rst:87 msgid "" "Member values can be anything: :class:`int`, :class:`str`, etc.. If the " "exact value is unimportant you may use :class:`auto` instances and an " @@ -135,15 +152,15 @@ msgstr "" "instances de :class:`auto` et une valeur appropriée sera choisie pour vous. " "Soyez vigilant si vous mélangez :class:`auto` avec d'autres valeurs." -#: ../Doc/library/enum.rst:85 +#: library/enum.rst:92 msgid "Nomenclature" msgstr "Nomenclature" -#: ../Doc/library/enum.rst:87 +#: library/enum.rst:94 msgid "The class :class:`Color` is an *enumeration* (or *enum*)" msgstr "La classe :class:`Color` est une *énumération* (ou un *enum*)." -#: ../Doc/library/enum.rst:88 +#: library/enum.rst:95 msgid "" "The attributes :attr:`Color.RED`, :attr:`Color.GREEN`, etc., are " "*enumeration members* (or *enum members*) and are functionally constants." @@ -152,7 +169,7 @@ msgstr "" "*membres de l'énumération* (ou les *membres de l'enum*) et sont " "fonctionnellement des constantes." -#: ../Doc/library/enum.rst:90 +#: library/enum.rst:97 msgid "" "The enum members have *names* and *values* (the name of :attr:`Color.RED` is " "``RED``, the value of :attr:`Color.BLUE` is ``3``, etc.)" @@ -160,7 +177,7 @@ msgstr "" "Les membres de *l'enum* ont chacun un *nom* et une *valeur* ; le nom de :" "attr:`Color.RED` est ``RED``, la valeur de :attr:`Color.BLUE` est ``3``, etc." -#: ../Doc/library/enum.rst:96 +#: library/enum.rst:103 msgid "" "Even though we use the :keyword:`class` syntax to create Enums, Enums are " "not normal Python classes. See `How are Enums different?`_ for more details." @@ -169,44 +186,43 @@ msgstr "" "énumérations, les *Enums* ne sont pas des vraies classes Python. Voir `En " "quoi les Enums sont différentes ?`_ pour plus de détails." -#: ../Doc/library/enum.rst:100 +#: library/enum.rst:107 msgid "Enumeration members have human readable string representations::" msgstr "" "Les membres d'une énumération ont une représentation en chaîne de caractères " -"compréhensible par un humain : ::" +"compréhensible par un humain ::" -#: ../Doc/library/enum.rst:105 +#: library/enum.rst:112 msgid "...while their ``repr`` has more information::" -msgstr "… tandis que leur ``repr`` contient plus d'informations : ::" +msgstr "… tandis que leur ``repr`` contient plus d'informations ::" -#: ../Doc/library/enum.rst:110 +#: library/enum.rst:117 msgid "The *type* of an enumeration member is the enumeration it belongs to::" -msgstr "" -"Le *type* d'un membre est l'énumération auquel ce membre appartient : ::" +msgstr "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" -#: ../Doc/library/enum.rst:118 +#: library/enum.rst:125 msgid "Enum members also have a property that contains just their item name::" -msgstr "Les membres ont également un attribut qui contient leur nom : ::" +msgstr "Les membres ont également un attribut qui contient leur nom ::" -#: ../Doc/library/enum.rst:123 +#: library/enum.rst:130 msgid "Enumerations support iteration, in definition order::" msgstr "" "Les énumérations sont itérables, l'ordre d'itération est celui dans lequel " -"les membres sont déclarés : ::" +"les membres sont déclarés ::" -#: ../Doc/library/enum.rst:139 +#: library/enum.rst:146 msgid "" "Enumeration members are hashable, so they can be used in dictionaries and " "sets::" msgstr "" "Les membres d'une énumération sont hachables, ils peuvent ainsi être " -"utilisés dans des dictionnaires ou des ensembles : ::" +"utilisés dans des dictionnaires ou des ensembles ::" -#: ../Doc/library/enum.rst:149 +#: library/enum.rst:156 msgid "Programmatic access to enumeration members and their attributes" msgstr "Accès dynamique aux membres et à leurs attributs" -#: ../Doc/library/enum.rst:151 +#: library/enum.rst:158 msgid "" "Sometimes it's useful to access members in enumerations programmatically (i." "e. situations where ``Color.RED`` won't do because the exact color is not " @@ -215,27 +231,27 @@ msgstr "" "Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " "énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " "``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " -"programme). ``Enum`` permet de tels accès : ::" +"programme). ``Enum`` permet de tels accès ::" -#: ../Doc/library/enum.rst:160 +#: library/enum.rst:167 msgid "If you want to access enum members by *name*, use item access::" msgstr "" -"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation : ::" +"Pour accéder aux membres par leur *nom*, utilisez l'accès par indexation ::" -#: ../Doc/library/enum.rst:167 +#: library/enum.rst:174 msgid "If you have an enum member and need its :attr:`name` or :attr:`value`::" -msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre : ::" +msgstr "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" -#: ../Doc/library/enum.rst:177 +#: library/enum.rst:184 msgid "Duplicating enum members and values" msgstr "Duplication de membres et de valeurs" -#: ../Doc/library/enum.rst:179 +#: library/enum.rst:186 msgid "Having two enum members with the same name is invalid::" msgstr "" -"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* : ::" +"Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::" -#: ../Doc/library/enum.rst:189 +#: library/enum.rst:196 msgid "" "However, two enum members are allowed to have the same value. Given two " "members A and B with the same value (and A defined first), B is an alias to " @@ -245,9 +261,9 @@ msgstr "" "Cependant deux membres peuvent avoir la même valeur. Si deux membres A et B " "ont la même valeur (et que A est défini en premier), B sera un alias de A. " "Un accès par valeur avec la valeur commune à A et B renverra A. Un accès à B " -"par nom renverra aussi A : ::" +"par nom renverra aussi A ::" -#: ../Doc/library/enum.rst:209 +#: library/enum.rst:216 msgid "" "Attempting to create a member with the same name as an already defined " "attribute (another member, a method, etc.) or attempting to create an " @@ -257,11 +273,11 @@ msgstr "" "défini (un autre membre, une méthode, etc.) ou de créer un attribut avec le " "nom d'un membre." -#: ../Doc/library/enum.rst:215 +#: library/enum.rst:222 msgid "Ensuring unique enumeration values" msgstr "Coercition d'unicité des valeurs d'une énumération" -#: ../Doc/library/enum.rst:217 +#: library/enum.rst:224 msgid "" "By default, enumerations allow multiple names as aliases for the same value. " "When this behavior isn't desired, the following decorator can be used to " @@ -272,7 +288,7 @@ msgstr "" "décorateur suivant pour s'assurer que chaque valeur n'est utilisée qu'une " "seule fois au sein de l'énumération : ::" -#: ../Doc/library/enum.rst:223 +#: library/enum.rst:230 msgid "" "A :keyword:`class` decorator specifically for enumerations. It searches an " "enumeration's :attr:`__members__` gathering any aliases it finds; if any are " @@ -280,86 +296,90 @@ msgid "" msgstr "" "Un décorateur de :keyword:`class` spécifique aux énumérations. Il examine " "l'attribut :attr:`__members__` d'une énumération et recherche des alias ; " -"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails : ::" +"s'il en trouve, l'exception :exc:`ValueError` est levée avec des détails ::" -#: ../Doc/library/enum.rst:241 +#: library/enum.rst:248 msgid "Using automatic values" msgstr "Valeurs automatiques" -#: ../Doc/library/enum.rst:243 +#: library/enum.rst:250 msgid "If the exact value is unimportant you can use :class:`auto`::" msgstr "" "Si la valeur exacte n'a pas d'importance, vous pouvez utiliser :class:" -"`auto` : ::" +"`auto` ::" -#: ../Doc/library/enum.rst:254 +#: library/enum.rst:261 msgid "" "The values are chosen by :func:`_generate_next_value_`, which can be " "overridden::" msgstr "" "Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " -"être redéfinie : ::" +"être redéfinie ::" -#: ../Doc/library/enum.rst:272 +#: library/enum.rst:279 msgid "" -"The goal of the default :meth:`_generate_next_value_` methods is to provide " +"The goal of the default :meth:`_generate_next_value_` method is to provide " "the next :class:`int` in sequence with the last :class:`int` provided, but " "the way it does this is an implementation detail and may change." msgstr "" -"La méthode par défaut :meth:`_generate_next_value_` doit fournir le :class:" -"`int` suivant de la séquence en fonction du dernier :class:`int` fourni, " -"mais la séquence générée dépend de l'implémentation Python." +"La méthode :meth:`_generate_next_value_` doit renvoyer le prochain :class:" +"`int` de la séquence à partir du dernier :class:`int` fourni, mais " +"l'implémentation de cette fonction peut changer." -#: ../Doc/library/enum.rst:277 +#: library/enum.rst:285 +msgid "" +"The :meth:`_generate_next_value_` method must be defined before any members." +msgstr "" +"La méthode :meth:`_generate_next_value_` doit être définie avant tout membre." + +#: library/enum.rst:288 msgid "Iteration" msgstr "Itération" -#: ../Doc/library/enum.rst:279 +#: library/enum.rst:290 msgid "Iterating over the members of an enum does not provide the aliases::" -msgstr "" -"Itérer sur les membres d'une énumération ne parcourt pas les alias : ::" +msgstr "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" -#: ../Doc/library/enum.rst:284 -#, fuzzy +#: library/enum.rst:295 msgid "" "The special attribute ``__members__`` is a read-only ordered mapping of " "names to members. It includes all names defined in the enumeration, " "including the aliases::" msgstr "" -"L'attribut spécial ``__members__`` est un dictionnaire ordonné qui fait " -"correspondre les noms aux membres. Il inclut tous les noms définis dans " -"l'énumération, alias compris : ::" +"L'attribut spécial ``__members__`` est un dictionnaire en lecture seule " +"ordonné qui fait correspondre les noms aux membres. Il inclut tous les noms " +"définis dans l'énumération, alias compris ::" -#: ../Doc/library/enum.rst:296 +#: library/enum.rst:307 msgid "" "The ``__members__`` attribute can be used for detailed programmatic access " "to the enumeration members. For example, finding all the aliases::" msgstr "" "L'attribut ``__members__`` peut servir à accéder dynamiquement aux membres " -"de l'énumération. Par exemple, pour trouver tous les alias : ::" +"de l'énumération. Par exemple, pour trouver tous les alias ::" -#: ../Doc/library/enum.rst:304 +#: library/enum.rst:315 msgid "Comparisons" msgstr "Comparaisons" -#: ../Doc/library/enum.rst:306 +#: library/enum.rst:317 msgid "Enumeration members are compared by identity::" -msgstr "Les membres d'une énumération sont comparés par identité : ::" +msgstr "Les membres d'une énumération sont comparés par identité ::" -#: ../Doc/library/enum.rst:315 +#: library/enum.rst:326 msgid "" "Ordered comparisons between enumeration values are *not* supported. Enum " "members are not integers (but see `IntEnum`_ below)::" msgstr "" "Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " "*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " -"`IntEnum`_ ci-dessous) : ::" +"`IntEnum`_ ci-dessous) ::" -#: ../Doc/library/enum.rst:323 +#: library/enum.rst:334 msgid "Equality comparisons are defined though::" -msgstr "A contrario, les comparaisons d'égalité existent : ::" +msgstr "A contrario, les comparaisons d'égalité existent ::" -#: ../Doc/library/enum.rst:332 +#: library/enum.rst:343 msgid "" "Comparisons against non-enumeration values will always compare not equal " "(again, :class:`IntEnum` was explicitly designed to behave differently, see " @@ -367,13 +387,13 @@ msgid "" msgstr "" "Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " "toujours fausses (ici encore, :class:`IntEnum` a été conçue pour fonctionner " -"différemment, voir ci-dessous) : ::" +"différemment, voir ci-dessous) ::" -#: ../Doc/library/enum.rst:341 +#: library/enum.rst:352 msgid "Allowed members and attributes of enumerations" msgstr "Membres et attributs autorisés dans une énumération" -#: ../Doc/library/enum.rst:343 +#: library/enum.rst:354 msgid "" "The examples above use integers for enumeration values. Using integers is " "short and handy (and provided by default by the `Functional API`_), but not " @@ -388,19 +408,19 @@ msgstr "" "toutefois possible de donner une valeur arbitraire aux énumérations, si " "cette valeur est *vraiment* significative." -#: ../Doc/library/enum.rst:349 +#: library/enum.rst:360 msgid "" "Enumerations are Python classes, and can have methods and special methods as " "usual. If we have this enumeration::" msgstr "" "Les énumérations sont des classes Python et peuvent donc avoir des méthodes " -"et des méthodes spéciales. L'énumération suivante : ::" +"et des méthodes spéciales. L'énumération suivante ::" -#: ../Doc/library/enum.rst:369 +#: library/enum.rst:380 msgid "Then::" -msgstr "amène : ::" +msgstr "amène ::" -#: ../Doc/library/enum.rst:378 +#: library/enum.rst:389 msgid "" "The rules for what is allowed are as follows: names that start and end with " "a single underscore are reserved by enum and cannot be used; all other " @@ -417,7 +437,7 @@ msgstr "" "méthodes sont aussi des descripteurs) et des noms de variable listés dans :" "attr:`_ignore_`." -#: ../Doc/library/enum.rst:385 +#: library/enum.rst:396 msgid "" "Note: if your enumeration defines :meth:`__new__` and/or :meth:`__init__` " "then whatever value(s) were given to the enum member will be passed into " @@ -427,11 +447,11 @@ msgstr "" "alors la (ou les) valeur affectée au membre sera passée à ces méthodes. Voir " "l'exemple de `Planet`_." -#: ../Doc/library/enum.rst:391 +#: library/enum.rst:402 msgid "Restricted Enum subclassing" msgstr "Restrictions sur l'héritage" -#: ../Doc/library/enum.rst:393 +#: library/enum.rst:404 msgid "" "A new :class:`Enum` class must have one base Enum class, up to one concrete " "data type, and as many :class:`object`-based mixin classes as needed. The " @@ -440,21 +460,21 @@ msgstr "" "Une nouvelle classe :class:`Enum` doit avoir une classe *Enum* de base, au " "plus un type de données concret et autant de classes de mélange (basées sur :" "class:`object`) que nécessaire. L'ordre de ces classes de base est le " -"suivant : ::" +"suivant ::" -#: ../Doc/library/enum.rst:400 +#: library/enum.rst:411 msgid "" "Also, subclassing an enumeration is allowed only if the enumeration does not " "define any members. So this is forbidden::" msgstr "" "Hériter d'une énumération n'est permis que si cette énumération ne définit " -"aucun membre. Le code suivant n'est pas autorisé : ::" +"aucun membre. Le code suivant n'est pas autorisé ::" -#: ../Doc/library/enum.rst:410 +#: library/enum.rst:421 msgid "But this is allowed::" -msgstr "Mais celui-ci est correct : ::" +msgstr "Mais celui-ci est correct ::" -#: ../Doc/library/enum.rst:421 +#: library/enum.rst:432 msgid "" "Allowing subclassing of enums that define members would lead to a violation " "of some important invariants of types and instances. On the other hand, it " @@ -466,15 +486,15 @@ msgstr "" "d'autoriser un groupe d'énumérations à partager un comportement commun (voir " "par exemple `OrderedEnum`_)." -#: ../Doc/library/enum.rst:428 +#: library/enum.rst:439 msgid "Pickling" msgstr "Sérialisation" -#: ../Doc/library/enum.rst:430 +#: library/enum.rst:441 msgid "Enumerations can be pickled and unpickled::" -msgstr "Les énumérations peuvent être sérialisées et dé-sérialisées : ::" +msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" -#: ../Doc/library/enum.rst:437 +#: library/enum.rst:448 msgid "" "The usual restrictions for pickling apply: picklable enums must be defined " "in the top level of a module, since unpickling requires them to be " @@ -482,10 +502,10 @@ msgid "" msgstr "" "Les restrictions habituelles de sérialisation s'appliquent : les *enums* à " "sérialiser doivent être déclarés dans l'espace de nom de haut niveau du " -"module car la dé-sérialisation nécessite que ces *enums* puissent être " +"module car la déserialisation nécessite que ces *enums* puissent être " "importés depuis ce module." -#: ../Doc/library/enum.rst:443 +#: library/enum.rst:454 msgid "" "With pickle protocol version 4 it is possible to easily pickle enums nested " "in other classes." @@ -493,7 +513,7 @@ msgstr "" "Depuis la version 4 du protocole de *pickle*, il est possible de sérialiser " "facilement des *enums* imbriqués dans d'autres classes." -#: ../Doc/library/enum.rst:446 +#: library/enum.rst:457 msgid "" "It is possible to modify how Enum members are pickled/unpickled by defining :" "meth:`__reduce_ex__` in the enumeration class." @@ -501,17 +521,17 @@ msgstr "" "Redéfinir la méthode :meth:`__reduce_ex__` permet de modifier la " "sérialisation ou la dé-sérialisation des membres d'une énumération." -#: ../Doc/library/enum.rst:451 +#: library/enum.rst:462 msgid "Functional API" msgstr "API par fonction" -#: ../Doc/library/enum.rst:453 +#: library/enum.rst:464 msgid "" "The :class:`Enum` class is callable, providing the following functional API::" msgstr "" -"La :class:`Enum` est appelable et implémente l'API par fonction suivante : ::" +"La :class:`Enum` est appelable et implémente l'API par fonction suivante ::" -#: ../Doc/library/enum.rst:465 +#: library/enum.rst:476 msgid "" "The semantics of this API resemble :class:`~collections.namedtuple`. The " "first argument of the call to :class:`Enum` is the name of the enumeration." @@ -519,7 +539,7 @@ msgstr "" "La sémantique de cette API est similaire à :class:`~collections.namedtuple`. " "Le premier argument de l'appel à :class:`Enum` est le nom de l'énumération." -#: ../Doc/library/enum.rst:468 +#: library/enum.rst:479 msgid "" "The second argument is the *source* of enumeration member names. It can be " "a whitespace-separated string of names, a sequence of names, a sequence of 2-" @@ -538,9 +558,9 @@ msgstr "" "énumérations ; les autres affectent automatiquement des entiers en " "commençant par 1 (le paramètre ``start`` permet de changer la valeur de " "départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " -"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à : ::" +"d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::" -#: ../Doc/library/enum.rst:484 +#: library/enum.rst:495 msgid "" "The reason for defaulting to ``1`` as the starting number and not ``0`` is " "that ``0`` is ``False`` in a boolean sense, but enum members all evaluate to " @@ -550,7 +570,7 @@ msgstr "" "booléen vaut ``False`` alors que tous les membres d'une *enum* valent " "``True``." -#: ../Doc/library/enum.rst:488 +#: library/enum.rst:499 msgid "" "Pickling enums created with the functional API can be tricky as frame stack " "implementation details are used to try and figure out which module the " @@ -564,19 +584,19 @@ msgstr "" "l'énumération est créée (p. ex. elle échouera avec les fonctions utilitaires " "provenant d'un module séparé et peut ne pas fonctionner avec IronPython ou " "Jython). La solution consiste à préciser explicitement le nom du module " -"comme ceci : ::" +"comme ceci ::" -#: ../Doc/library/enum.rst:498 +#: library/enum.rst:509 msgid "" "If ``module`` is not supplied, and Enum cannot determine what it is, the new " "Enum members will not be unpicklable; to keep errors closer to the source, " "pickling will be disabled." msgstr "" "Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les " -"nouveaux membres de *l'Enum* ne seront pas dé-sérialisables ; pour garder " -"les erreurs au plus près de leur origine, la sérialisation sera désactivée." +"nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder les " +"erreurs au plus près de leur origine, la sérialisation sera désactivée." -#: ../Doc/library/enum.rst:502 +#: library/enum.rst:513 msgid "" "The new pickle protocol 4 also, in some circumstances, relies on :attr:" "`~definition.__qualname__` being set to the location where pickle will be " @@ -587,90 +607,90 @@ msgstr "" "cas, sur le fait que :attr:`~definition.__qualname__` pointe sur l'endroit " "où *pickle* peut trouver la classe. Par exemple, si la classe était " "disponible depuis la classe *SomeData* dans l'espace de nom de plus haut " -"niveau : ::" +"niveau ::" -#: ../Doc/library/enum.rst:509 +#: library/enum.rst:520 msgid "The complete signature is::" -msgstr "La signature complète est la suivante : ::" +msgstr "La signature complète est la suivante ::" -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "value" msgstr "value" -#: ../Doc/library/enum.rst:513 +#: library/enum.rst:524 msgid "What the new Enum class will record as its name." msgstr "Le nom de la la nouvelle classe *Enum*." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "names" msgstr "names" -#: ../Doc/library/enum.rst:515 +#: library/enum.rst:526 msgid "" "The Enum members. This can be a whitespace or comma separated string " "(values will start at 1 unless otherwise specified)::" msgstr "" "Les membres de l'énumération. Une chaîne de caractères séparés par des " "espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " -"spécifiée autrement) : ::" +"spécifiée autrement) ::" -#: ../Doc/library/enum.rst:520 +#: library/enum.rst:531 msgid "or an iterator of names::" -msgstr "ou un itérateur sur les noms : ::" +msgstr "ou un itérateur sur les noms ::" -#: ../Doc/library/enum.rst:524 +#: library/enum.rst:535 msgid "or an iterator of (name, value) pairs::" -msgstr "ou un itérateur sur les tuples (nom, valeur) : ::" +msgstr "ou un itérateur sur les tuples (nom, valeur) ::" -#: ../Doc/library/enum.rst:528 +#: library/enum.rst:539 msgid "or a mapping::" -msgstr "ou une correspondance : ::" +msgstr "ou une correspondance ::" -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "module" msgstr "module" -#: ../Doc/library/enum.rst:532 +#: library/enum.rst:543 msgid "name of module where new Enum class can be found." msgstr "nom du module dans lequel la classe *Enum* se trouve." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "qualname" msgstr "qualname" -#: ../Doc/library/enum.rst:534 +#: library/enum.rst:545 msgid "where in module new Enum class can be found." msgstr "localisation de la nouvelle classe *Enum* dans le module." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "type" msgstr "type" -#: ../Doc/library/enum.rst:536 +#: library/enum.rst:547 msgid "type to mix in to new Enum class." msgstr "le type à mélanger dans la nouvelle classe *Enum*." -#: ../Doc/library/enum.rst:0 +#: library/enum.rst:0 msgid "start" msgstr "start" -#: ../Doc/library/enum.rst:538 +#: library/enum.rst:549 msgid "number to start counting at if only names are passed in." msgstr "index de départ si uniquement des noms sont passés." -#: ../Doc/library/enum.rst:540 +#: library/enum.rst:551 msgid "The *start* parameter was added." msgstr "Ajout du paramètre *start*." -#: ../Doc/library/enum.rst:545 +#: library/enum.rst:556 msgid "Derived Enumerations" msgstr "Énumérations dérivées" -#: ../Doc/library/enum.rst:548 +#: library/enum.rst:559 msgid "IntEnum" msgstr "IntEnum" -#: ../Doc/library/enum.rst:550 +#: library/enum.rst:561 msgid "" "The first variation of :class:`Enum` that is provided is also a subclass of :" "class:`int`. Members of an :class:`IntEnum` can be compared to integers; by " @@ -680,28 +700,28 @@ msgstr "" "La première version dérivée de :class:`Enum` qui existe est aussi une sous-" "classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " "comparés à des entiers et, par extension, les comparaisons entre des " -"énumérations entières de type différent sont possibles : ::" +"énumérations entières de type différent sont possibles ::" -#: ../Doc/library/enum.rst:571 +#: library/enum.rst:582 msgid "" "However, they still can't be compared to standard :class:`Enum` " "enumerations::" msgstr "" "Elles ne peuvent cependant toujours pas être comparées à des énumérations " -"standards de :class:`Enum` : ::" +"standards de :class:`Enum` ::" -#: ../Doc/library/enum.rst:584 +#: library/enum.rst:595 msgid "" ":class:`IntEnum` values behave like integers in other ways you'd expect::" msgstr "" "Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " -"pouvait s'y attendre : ::" +"pouvait s'y attendre ::" -#: ../Doc/library/enum.rst:595 +#: library/enum.rst:606 msgid "IntFlag" msgstr "IntFlag" -#: ../Doc/library/enum.rst:597 +#: library/enum.rst:608 msgid "" "The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " "based on :class:`int`. The difference being :class:`IntFlag` members can be " @@ -721,15 +741,15 @@ msgstr "" "`IntFlag`, autre qu'un opérateur bit-à-bit lui fait perdre sa qualité de :" "class:`IntFlag`." -#: ../Doc/library/enum.rst:607 +#: library/enum.rst:618 msgid "Sample :class:`IntFlag` class::" -msgstr "Exemple d'une classe :class:`IntFlag` : ::" +msgstr "Exemple d'une classe :class:`IntFlag` ::" -#: ../Doc/library/enum.rst:623 +#: library/enum.rst:634 msgid "It is also possible to name the combinations::" -msgstr "Il est aussi possible de nommer les combinaisons : ::" +msgstr "Il est aussi possible de nommer les combinaisons ::" -#: ../Doc/library/enum.rst:635 +#: library/enum.rst:646 msgid "" "Another important difference between :class:`IntFlag` and :class:`Enum` is " "that if no flags are set (the value is 0), its boolean evaluation is :data:" @@ -737,21 +757,21 @@ msgid "" msgstr "" "Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " "que, si aucune option n'est activée (la valeur vaut 0), son évaluation " -"booléenne est :data:`False` : ::" +"booléenne est :data:`False` ::" -#: ../Doc/library/enum.rst:643 +#: library/enum.rst:654 msgid "" "Because :class:`IntFlag` members are also subclasses of :class:`int` they " "can be combined with them::" msgstr "" "Comme les membres d'une classe :class:`IntFlag` héritent aussi de :class:" -"`int`, ils peuvent être combinés avec eux : ::" +"`int`, ils peuvent être combinés avec eux ::" -#: ../Doc/library/enum.rst:651 +#: library/enum.rst:662 msgid "Flag" msgstr "Option" -#: ../Doc/library/enum.rst:653 +#: library/enum.rst:664 msgid "" "The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " "members can be combined using the bitwise operators (&, \\|, ^, ~). Unlike :" @@ -769,32 +789,32 @@ msgstr "" "recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " "choisir une valeur appropriée." -#: ../Doc/library/enum.rst:662 +#: library/enum.rst:673 msgid "" "Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " "no flags being set, the boolean evaluation is :data:`False`::" msgstr "" "Comme avec :class:`IntFlag`, si une combinaison de membres d'une classe :" "class:`Flag` n'active aucune option, l'évaluation booléenne de la " -"comparaison est :data:`False` : ::" +"comparaison est :data:`False` ::" -#: ../Doc/library/enum.rst:676 +#: library/enum.rst:687 msgid "" "Individual flags should have values that are powers of two (1, 2, 4, " "8, ...), while combinations of flags won't::" msgstr "" "Les options de base doivent avoir des puissances de deux pour valeurs (1, 2, " -"4, 8, ...) mais pas les combinaisons : ::" +"4, 8, ...) mais pas les combinaisons ::" -#: ../Doc/library/enum.rst:688 +#: library/enum.rst:699 msgid "" "Giving a name to the \"no flags set\" condition does not change its boolean " "value::" msgstr "" "Donner un nom à la valeur « aucune option activée » ne change pas sa valeur " -"booléenne : ::" +"booléenne ::" -#: ../Doc/library/enum.rst:704 +#: library/enum.rst:715 msgid "" "For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " "recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " @@ -813,19 +833,19 @@ msgstr "" "pas ; par exemple quand des constantes entières sont remplacées par des " "énumérations, ou pour l’interopérabilité avec d'autres systèmes." -#: ../Doc/library/enum.rst:714 +#: library/enum.rst:725 msgid "Others" msgstr "Autres" -#: ../Doc/library/enum.rst:716 +#: library/enum.rst:727 msgid "" "While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " "simple to implement independently::" msgstr "" "Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " -"très simple à implémenter hors de ce module : ::" +"très simple à implémenter hors de ce module ::" -#: ../Doc/library/enum.rst:722 +#: library/enum.rst:733 msgid "" "This demonstrates how similar derived enumerations can be defined; for " "example a :class:`StrEnum` that mixes in :class:`str` instead of :class:" @@ -835,11 +855,11 @@ msgstr "" "exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au lieu " "de :class:`int`." -#: ../Doc/library/enum.rst:725 +#: library/enum.rst:736 msgid "Some rules:" msgstr "Quelques règles :" -#: ../Doc/library/enum.rst:727 +#: library/enum.rst:738 msgid "" "When subclassing :class:`Enum`, mix-in types must appear before :class:" "`Enum` itself in the sequence of bases, as in the :class:`IntEnum` example " @@ -849,7 +869,7 @@ msgstr "" "avant la classe :class:`Enum` elle-même dans la liste des classes de base, " "comme dans l'exemple de :class:`IntEnum` ci-dessus." -#: ../Doc/library/enum.rst:730 +#: library/enum.rst:741 msgid "" "While :class:`Enum` can have members of any type, once you mix in an " "additional type, all the members must have values of that type, e.g. :class:" @@ -863,7 +883,7 @@ msgstr "" "s'applique pas aux types de mélange qui ne font qu'ajouter des méthodes et " "ne définissent pas de type de données, tels :class:`int` ou :class:`str`. " -#: ../Doc/library/enum.rst:735 +#: library/enum.rst:746 msgid "" "When another data type is mixed in, the :attr:`value` attribute is *not the " "same* as the enum member itself, although it is equivalent and will compare " @@ -873,51 +893,62 @@ msgstr "" "*pas* identique au membre de l'énumération lui-même, bien qu'ils soient " "équivalents et égaux en comparaison." -#: ../Doc/library/enum.rst:738 +#: library/enum.rst:749 msgid "" "%-style formatting: `%s` and `%r` call the :class:`Enum` class's :meth:" -"`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or `" -"%h` for IntEnum) treat the enum member as its mixed-in type." +"`__str__` and :meth:`__repr__` respectively; other codes (such as `%i` or " +"`%h` for IntEnum) treat the enum member as its mixed-in type." msgstr "" "Formatage de style *%* : `%s` et `%r` appellent respectivement les méthodes :" "meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; les autres " "codes, comme `%i` ou `%h` pour *IntEnum*, s'appliquent au membre comme si " "celui-ci était converti en son type de mélange." -#: ../Doc/library/enum.rst:741 +#: library/enum.rst:752 msgid "" ":ref:`Formatted string literals `, :meth:`str.format`, and :func:" -"`format` will use the mixed-in type's :meth:`__format__`. If the :class:" -"`Enum` class's :func:`str` or :func:`repr` is desired, use the `!s` or `!r` " -"format codes." -msgstr "" -":ref:`Chaînes de caractères formatées littérales ` : :meth:`str." -"format` et :func:`format` appellent la méthode :meth:`__format__` du type de " -"mélange. Pour appeler les fonctions :func:`str` ou :func:`repr` de la " -"classe :class:`Enum`, il faut utiliser les codes de formatage `!s` ou `!r`." - -#: ../Doc/library/enum.rst:747 +"`format` will use the mixed-in type's :meth:`__format__` unless :meth:" +"`__str__` or :meth:`__format__` is overridden in the subclass, in which case " +"the overridden methods or :class:`Enum` methods will be used. Use the !s " +"and !r format codes to force usage of the :class:`Enum` class's :meth:" +"`__str__` and :meth:`__repr__` methods." +msgstr "" +"Les :ref:`chaînes littérales formatées ` : :meth:`str.format` et :" +"func:`format` appellent la méthode :meth:`__format__` du type dérivé à moins " +"que :meth:`__str__` ou :meth:`__format__` soit surchargée dans la sous-" +"classe, auquel cas les méthodes surchargées ou celles de la classe :class:" +"`Enum` seront utilisées. Pour appeler les méthodes :meth:`__str__` ou :meth:" +"`__repr__` de la classe :class:`Enum`, il faut utiliser les codes de " +"formatage ``!s`` ou ``!r``." + +#: library/enum.rst:760 msgid "When to use :meth:`__new__` vs. :meth:`__init__`" -msgstr "" +msgstr "Quand utiliser :meth:`__new__` ou :meth:`__init__`" -#: ../Doc/library/enum.rst:749 +#: library/enum.rst:762 msgid "" ":meth:`__new__` must be used whenever you want to customize the actual value " "of the :class:`Enum` member. Any other modifications may go in either :meth:" "`__new__` or :meth:`__init__`, with :meth:`__init__` being preferred." msgstr "" +":meth:`__new__` doit être utilisé dès que vous souhaitez personnaliser la " +"valeur effective des membres d'un :class:`Enum`. Tout autre modification " +"peut autant aller dans :meth:`__new__` que dans :meth:`__init__`, mais " +"l'usage de :meth:`__init__` est recommandé." -#: ../Doc/library/enum.rst:753 +#: library/enum.rst:766 msgid "" "For example, if you want to pass several items to the constructor, but only " "want one of them to be the value::" msgstr "" +"Par exemple, si vous voulez passer plusieurs éléments au constructeur, mais " +"qu'un seul d'entre eux soit la valeur ::" -#: ../Doc/library/enum.rst:779 +#: library/enum.rst:792 msgid "Interesting examples" msgstr "Exemples intéressants" -#: ../Doc/library/enum.rst:781 +#: library/enum.rst:794 msgid "" "While :class:`Enum`, :class:`IntEnum`, :class:`IntFlag`, and :class:`Flag` " "are expected to cover the majority of use-cases, they cannot cover them " @@ -930,11 +961,11 @@ msgstr "" "réutilisées telles quelles, ou peuvent servir d'exemple pour développer vos " "propres énumérations." -#: ../Doc/library/enum.rst:788 +#: library/enum.rst:801 msgid "Omitting values" msgstr "Omettre les valeurs" -#: ../Doc/library/enum.rst:790 +#: library/enum.rst:803 msgid "" "In many use-cases one doesn't care what the actual value of an enumeration " "is. There are several ways to define this type of simple enumeration:" @@ -943,19 +974,19 @@ msgstr "" "d'importance. Il y a plusieurs façons de définir ce type d'énumération " "simple :" -#: ../Doc/library/enum.rst:793 +#: library/enum.rst:806 msgid "use instances of :class:`auto` for the value" msgstr "affecter des instances de :class:`auto` aux valeurs" -#: ../Doc/library/enum.rst:794 +#: library/enum.rst:807 msgid "use instances of :class:`object` as the value" msgstr "affecter des instances de :class:`object` aux valeurs" -#: ../Doc/library/enum.rst:795 +#: library/enum.rst:808 msgid "use a descriptive string as the value" msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" -#: ../Doc/library/enum.rst:796 +#: library/enum.rst:809 msgid "" "use a tuple as the value and a custom :meth:`__new__` to replace the tuple " "with an :class:`int` value" @@ -963,7 +994,7 @@ msgstr "" "affecter un n-uplet aux valeurs et définir une méthode :meth:`__new__` pour " "remplacer les n-uplets avec un :class:`int`" -#: ../Doc/library/enum.rst:799 +#: library/enum.rst:812 msgid "" "Using any of these methods signifies to the user that these values are not " "important, and also enables one to add, remove, or reorder members without " @@ -973,49 +1004,65 @@ msgstr "" "pas d'importance. Cela permet aussi d'ajouter, de supprimer ou de ré-" "ordonner les membres sans avoir à ré-énumérer les membres existants." -#: ../Doc/library/enum.rst:803 +#: library/enum.rst:816 msgid "" "Whichever method you choose, you should provide a :meth:`repr` that also " "hides the (unimportant) value::" msgstr "" "Quelle que soit la méthode choisie, il faut fournir une méthode :meth:`repr` " -"qui masque les valeurs (pas importantes de toute façon) : ::" +"qui masque les valeurs (pas importantes de toute façon) ::" -#: ../Doc/library/enum.rst:813 +#: library/enum.rst:826 msgid "Using :class:`auto`" msgstr "Avec :class:`auto`" -#: ../Doc/library/enum.rst:815 +#: library/enum.rst:828 msgid "Using :class:`auto` would look like::" -msgstr "On utilise :class:`auto` de la manière suivante : ::" +msgstr "On utilise :class:`auto` de la manière suivante ::" -#: ../Doc/library/enum.rst:827 +#: library/enum.rst:840 msgid "Using :class:`object`" msgstr "Avec :class:`object`" -#: ../Doc/library/enum.rst:829 +#: library/enum.rst:842 msgid "Using :class:`object` would look like::" -msgstr "On utilise :class:`object` de la manière suivante : ::" +msgstr "On utilise :class:`object` de la manière suivante ::" -#: ../Doc/library/enum.rst:841 +#: library/enum.rst:854 msgid "Using a descriptive string" msgstr "Avec une chaîne de caractères de description" -#: ../Doc/library/enum.rst:843 +#: library/enum.rst:856 msgid "Using a string as the value would look like::" -msgstr "On utilise une chaîne de caractères de la manière suivante : ::" +msgstr "On utilise une chaîne de caractères de la manière suivante ::" -#: ../Doc/library/enum.rst:857 +#: library/enum.rst:870 msgid "Using a custom :meth:`__new__`" msgstr "Avec une méthode ad-hoc :meth:`__new__`" -#: ../Doc/library/enum.rst:859 +#: library/enum.rst:872 msgid "Using an auto-numbering :meth:`__new__` would look like::" msgstr "" "On utilise une méthode :meth:`__new__` d'énumération de la manière " -"suivante : ::" +"suivante ::" -#: ../Doc/library/enum.rst:881 +#: library/enum.rst:891 +msgid "" +"To make a more general purpose ``AutoNumber``, add ``*args`` to the " +"signature::" +msgstr "" +"Pour définir un ``AutoNumber`` plus générique, ajoutez ``*args`` à la " +"signature ::" + +#: library/enum.rst:901 +msgid "" +"Then when you inherit from ``AutoNumber`` you can write your own " +"``__init__`` to handle any extra arguments::" +msgstr "" +"Ainsi, quand vous héritez d'``AutoNumber``, vous pouvez définir ``__init__`` " +"pour gérer tout argument supplémentaire ::" + +#: library/enum.rst:920 msgid "" "The :meth:`__new__` method, if defined, is used during creation of the Enum " "members; it is then replaced by Enum's :meth:`__new__` which is used after " @@ -1026,11 +1073,11 @@ msgstr "" "`__new__` de *Enum*, qui est utilisée après la création de la classe pour la " "recherche des membres existants." -#: ../Doc/library/enum.rst:887 +#: library/enum.rst:926 msgid "OrderedEnum" msgstr "OrderedEnum" -#: ../Doc/library/enum.rst:889 +#: library/enum.rst:928 msgid "" "An ordered enumeration that is not based on :class:`IntEnum` and so " "maintains the normal :class:`Enum` invariants (such as not being comparable " @@ -1039,20 +1086,20 @@ msgstr "" "Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " "par conséquent, respecte les invariants classiques de :class:`Enum` (comme " "par exemple l'impossibilité de pouvoir être comparée à d'autres " -"énumérations) ::" +"énumérations) ::" -#: ../Doc/library/enum.rst:923 +#: library/enum.rst:962 msgid "DuplicateFreeEnum" msgstr "DuplicateFreeEnum" -#: ../Doc/library/enum.rst:925 +#: library/enum.rst:964 msgid "" "Raises an error if a duplicate member name is found instead of creating an " "alias::" msgstr "" -"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias : ::" +"Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::" -#: ../Doc/library/enum.rst:950 +#: library/enum.rst:989 msgid "" "This is a useful example for subclassing Enum to add or change other " "behaviors as well as disallowing aliases. If the only desired change is " @@ -1062,31 +1109,31 @@ msgstr "" "des comportements comme interdire les alias. Si vous ne souhaitez " "qu'interdire les alias, il suffit d'utiliser le décorateur :func:`unique`." -#: ../Doc/library/enum.rst:956 +#: library/enum.rst:995 msgid "Planet" msgstr "Planet" -#: ../Doc/library/enum.rst:958 +#: library/enum.rst:997 msgid "" "If :meth:`__new__` or :meth:`__init__` is defined the value of the enum " "member will be passed to those methods::" msgstr "" "Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre de " -"l'énumération sera passée à ces méthodes : ::" +"l'énumération sera passée à ces méthodes ::" -#: ../Doc/library/enum.rst:986 +#: library/enum.rst:1025 msgid "TimePeriod" msgstr "TimePeriod" -#: ../Doc/library/enum.rst:988 +#: library/enum.rst:1027 msgid "An example to show the :attr:`_ignore_` attribute in use::" -msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` : ::" +msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::" -#: ../Doc/library/enum.rst:1005 +#: library/enum.rst:1044 msgid "How are Enums different?" msgstr "En quoi les *Enums* sont différentes ?" -#: ../Doc/library/enum.rst:1007 +#: library/enum.rst:1046 msgid "" "Enums have a custom metaclass that affects many aspects of both derived Enum " "classes and their instances (members)." @@ -1094,11 +1141,11 @@ msgstr "" "Les *enums* ont une métaclasse spéciale qui affecte de nombreux aspects des " "classes dérivées de *Enum* et de leur instances (membres)." -#: ../Doc/library/enum.rst:1012 +#: library/enum.rst:1051 msgid "Enum Classes" msgstr "Classes *Enum*" -#: ../Doc/library/enum.rst:1014 +#: library/enum.rst:1053 msgid "" "The :class:`EnumMeta` metaclass is responsible for providing the :meth:" "`__contains__`, :meth:`__dir__`, :meth:`__iter__` and other methods that " @@ -1116,11 +1163,11 @@ msgstr "" "finale :class:`Enum` sont correctes (comme :meth:`__new__`, :meth:" "`__getnewargs__`, :meth:`__str__` et :meth:`__repr__`)." -#: ../Doc/library/enum.rst:1024 +#: library/enum.rst:1063 msgid "Enum Members (aka instances)" msgstr "Membres d'Enum (c.-à-d. instances)" -#: ../Doc/library/enum.rst:1026 +#: library/enum.rst:1065 msgid "" "The most interesting thing about Enum members is that they are singletons. :" "class:`EnumMeta` creates them all while it is creating the :class:`Enum` " @@ -1135,24 +1182,23 @@ msgstr "" "membres déjà existantes pour être sûr de ne jamais en instancier de " "nouvelles." -#: ../Doc/library/enum.rst:1034 +#: library/enum.rst:1073 msgid "Finer Points" msgstr "Aspects approfondis" -#: ../Doc/library/enum.rst:1037 +#: library/enum.rst:1076 msgid "Supported ``__dunder__`` names" msgstr "Noms de la forme ``__dunder__`` disponibles" -#: ../Doc/library/enum.rst:1039 -#, fuzzy +#: library/enum.rst:1078 msgid "" ":attr:`__members__` is a read-only ordered mapping of ``member_name``:" "``member`` items. It is only available on the class." msgstr "" -":attr:`__members__` est une :class:`OrderedDict` de correspondances " -"``nom_du_membre`` / ``membre``. Elle n'est disponible que depuis la classe." +":attr:`__members__` est un dictionnaire en lecture seule ordonné d'éléments " +"``nom_du_membre`` / ``membre``. Il n'est disponible que depuis la classe." -#: ../Doc/library/enum.rst:1042 +#: library/enum.rst:1081 msgid "" ":meth:`__new__`, if specified, must create and return the enum members; it " "is also a very good idea to set the member's :attr:`_value_` appropriately. " @@ -1163,22 +1209,22 @@ msgstr "" "du membre est également conseillé. Une fois que tous les membres ont été " "créés, cette méthode n'est plus utilisée." -#: ../Doc/library/enum.rst:1048 +#: library/enum.rst:1087 msgid "Supported ``_sunder_`` names" msgstr "Noms de la forme ``_sunder_`` disponibles" -#: ../Doc/library/enum.rst:1050 +#: library/enum.rst:1089 msgid "``_name_`` -- name of the member" msgstr "``_name_`` -- nom du membre" -#: ../Doc/library/enum.rst:1051 +#: library/enum.rst:1090 msgid "" "``_value_`` -- value of the member; can be set / modified in ``__new__``" msgstr "" "``_value_`` -- valeur du membre ; il est possible d'y accéder ou de la muer " "dans ``__new__``" -#: ../Doc/library/enum.rst:1053 +#: library/enum.rst:1092 msgid "" "``_missing_`` -- a lookup function used when a value is not found; may be " "overridden" @@ -1186,7 +1232,7 @@ msgstr "" "``_missing_`` -- une fonction de recherche qui est appelée quand la valeur " "n'est pas trouvée ; elle peut être redéfinie" -#: ../Doc/library/enum.rst:1055 +#: library/enum.rst:1094 msgid "" "``_ignore_`` -- a list of names, either as a :func:`list` or a :func:`str`, " "that will not be transformed into members, and will be removed from the " @@ -1196,7 +1242,7 @@ msgstr "" "`str`, qui ne seront pas transformés en membres, et seront supprimés de la " "classe résultante" -#: ../Doc/library/enum.rst:1058 +#: library/enum.rst:1097 msgid "" "``_order_`` -- used in Python 2/3 code to ensure member order is consistent " "(class attribute, removed during class creation)" @@ -1205,7 +1251,7 @@ msgstr "" "membres est cohérent (attribut de classe, supprimé durant la création de la " "classe)" -#: ../Doc/library/enum.rst:1060 +#: library/enum.rst:1099 msgid "" "``_generate_next_value_`` -- used by the `Functional API`_ and by :class:" "`auto` to get an appropriate value for an enum member; may be overridden" @@ -1214,15 +1260,15 @@ msgstr "" "class:`auto` pour obtenir une valeur appropriée à affecter à un membre de " "*l'enum* ; elle peut être redéfinie" -#: ../Doc/library/enum.rst:1064 +#: library/enum.rst:1103 msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" -#: ../Doc/library/enum.rst:1065 +#: library/enum.rst:1104 msgid "``_ignore_``" msgstr "``_ignore_``" -#: ../Doc/library/enum.rst:1067 +#: library/enum.rst:1106 msgid "" "To help keep Python 2 / Python 3 code in sync an :attr:`_order_` attribute " "can be provided. It will be checked against the actual order of the " @@ -1230,9 +1276,9 @@ msgid "" msgstr "" "Pour faciliter la transition de Python 2 en Python 3, l'attribut :attr:" "`_order_` peut être défini. Il sera comparé au véritable ordre de " -"l'énumération et lève une erreur si les deux ne correspondent pas : ::" +"l'énumération et lève une erreur si les deux ne correspondent pas ::" -#: ../Doc/library/enum.rst:1083 +#: library/enum.rst:1122 msgid "" "In Python 2 code the :attr:`_order_` attribute is necessary as definition " "order is lost before it can be recorded." @@ -1240,11 +1286,11 @@ msgstr "" "En Python 2, l'attribut :attr:`_order_` est indispensable car l'ordre de la " "définition est perdu avant de pouvoir être enregistré." -#: ../Doc/library/enum.rst:1087 +#: library/enum.rst:1126 msgid "``Enum`` member type" msgstr "Type des membres de ``Enum``" -#: ../Doc/library/enum.rst:1089 +#: library/enum.rst:1128 msgid "" ":class:`Enum` members are instances of their :class:`Enum` class, and are " "normally accessed as ``EnumClass.member``. Under certain circumstances they " @@ -1259,13 +1305,13 @@ msgstr "" "est fortement déconseillé car cette indirection est susceptible d'échouer, " "ou pire, de ne pas renvoyer le membre de la classe :class:`Enum` désiré " "(c'est une autre bonne raison pour définir tous les noms des membres en " -"majuscules) : ::" +"majuscules) ::" -#: ../Doc/library/enum.rst:1110 +#: library/enum.rst:1149 msgid "Boolean value of ``Enum`` classes and members" msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" -#: ../Doc/library/enum.rst:1112 +#: library/enum.rst:1151 msgid "" ":class:`Enum` members that are mixed with non-:class:`Enum` types (such as :" "class:`int`, :class:`str`, etc.) are evaluated according to the mixed-in " @@ -1277,17 +1323,17 @@ msgstr "" "class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués selon les " "règles du type de mélange. Sinon, tous les membres valent :data:`True`. Pour " "faire dépendre l'évaluation booléenne de votre propre *Enum* de la valeur du " -"membre, il faut ajouter le code suivant à votre classe : ::" +"membre, il faut ajouter le code suivant à votre classe ::" -#: ../Doc/library/enum.rst:1121 +#: library/enum.rst:1160 msgid ":class:`Enum` classes always evaluate as :data:`True`." msgstr "Les classes :class:`Enum` valent toujours :data:`True`." -#: ../Doc/library/enum.rst:1125 +#: library/enum.rst:1164 msgid "``Enum`` classes with methods" msgstr "Classes ``Enum`` avec des méthodes" -#: ../Doc/library/enum.rst:1127 +#: library/enum.rst:1166 msgid "" "If you give your :class:`Enum` subclass extra methods, like the `Planet`_ " "class above, those methods will show up in a :func:`dir` of the member, but " @@ -1295,17 +1341,17 @@ msgid "" msgstr "" "Si votre classe :class:`Enum` contient des méthodes supplémentaires, comme " "la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel à :func:" -"`dir` sur le membre, mais pas avec un appel sur la classe : ::" +"`dir` sur le membre, mais pas avec un appel sur la classe ::" -#: ../Doc/library/enum.rst:1138 +#: library/enum.rst:1177 msgid "Combining members of ``Flag``" msgstr "Combinaison de membres de ``Flag``" -#: ../Doc/library/enum.rst:1140 +#: library/enum.rst:1179 msgid "" "If a combination of Flag members is not named, the :func:`repr` will include " "all named flags and all named combinations of flags that are in the value::" msgstr "" "Si une valeur issue de la combinaison de membres de *Flag* n'est pas " "associée explicitement à un membre, la fonction :func:`repr` inclut tous les " -"membres et toutes les combinaisons de membres présents dans cette valeur : ::" +"membres et toutes les combinaisons de membres présents dans cette valeur ::" diff --git a/library/errno.po b/library/errno.po index 279c258f62..ceda1e8806 100644 --- a/library/errno.po +++ b/library/errno.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-03-11 12:59+0100\n" "PO-Revision-Date: 2019-06-10 15:48+0200\n" diff --git a/library/exceptions.po b/library/exceptions.po index 66da1e65db..007201b526 100644 --- a/library/exceptions.po +++ b/library/exceptions.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-05-23 16:48+0200\n" -"PO-Revision-Date: 2019-06-10 15:49+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2020-05-30 23:32+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,11 +15,11 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/exceptions.rst:4 +#: library/exceptions.rst:4 msgid "Built-in Exceptions" msgstr "Exceptions natives" -#: ../Doc/library/exceptions.rst:10 +#: library/exceptions.rst:10 msgid "" "In Python, all exceptions must be instances of a class that derives from :" "class:`BaseException`. In a :keyword:`try` statement with an :keyword:" @@ -35,12 +35,12 @@ msgstr "" "mères). Deux classes qui ne sont pas liées par héritage ne sont jamais " "équivalentes, même si elles ont le même nom." -#: ../Doc/library/exceptions.rst:19 +#: library/exceptions.rst:19 msgid "" "The built-in exceptions listed below can be generated by the interpreter or " -"built-in functions. Except where mentioned, they have an \"associated value" -"\" indicating the detailed cause of the error. This may be a string or a " -"tuple of several items of information (e.g., an error code and a string " +"built-in functions. Except where mentioned, they have an \"associated " +"value\" indicating the detailed cause of the error. This may be a string or " +"a tuple of several items of information (e.g., an error code and a string " "explaining the code). The associated value is usually passed as arguments " "to the exception class's constructor." msgstr "" @@ -51,7 +51,7 @@ msgstr "" "d'erreur ou un message explicatif). Cette valeur associée est généralement " "donnée en argument du constructeur de la classe." -#: ../Doc/library/exceptions.rst:26 +#: library/exceptions.rst:26 msgid "" "User code can raise built-in exceptions. This can be used to test an " "exception handler or to report an error condition \"just like\" the " @@ -65,7 +65,7 @@ msgstr "" "exception ; mais attention car rien n'empêche du code utilisateur de lever " "une erreur inappropriée." -#: ../Doc/library/exceptions.rst:31 +#: library/exceptions.rst:31 msgid "" "The built-in exception classes can be subclassed to define new exceptions; " "programmers are encouraged to derive new exceptions from the :exc:" @@ -77,10 +77,10 @@ msgstr "" "nouvelles exceptions ; les programmeurs sont encouragés à faire dériver les " "nouvelles exceptions de la classe :exc:`Exception` ou d'une de ses sous-" "classes, et non de :exc:`BaseException`. Plus d'informations sur la " -"définition des exceptions sont disponibles dans le Tutoriel Python sous :ref:" -"`tut-userexceptions`." +"définition des exceptions sont disponibles dans le Tutoriel Python au " +"chapitre :ref:`tut-userexceptions`." -#: ../Doc/library/exceptions.rst:37 +#: library/exceptions.rst:37 msgid "" "When raising (or re-raising) an exception in an :keyword:`except` or :" "keyword:`finally` clause :attr:`__context__` is automatically set to the " @@ -90,42 +90,44 @@ msgid "" msgstr "" "En levant (ou levant à nouveau) une exception dans une clause :keyword:" "`except` ou :keyword:`finally`, :attr:`__context__` est automatiquement " -"assigné à la dernière exception capturée ; si la nouvelle exception n'est " +"assigné à la dernière exception interceptée ; si la nouvelle exception n'est " "pas gérée, la trace d'appels affichée inclut la ou les exception(s) " "d'origine et l'exception finale." -#: ../Doc/library/exceptions.rst:43 +#: library/exceptions.rst:43 +#, fuzzy msgid "" "When raising a new exception (rather than using a bare ``raise`` to re-raise " "the exception currently being handled), the implicit exception context can " -"be supplemented with an explicit cause by using :keyword:`from` with :" +"be supplemented with an explicit cause by using :keyword:`from` with :" "keyword:`raise`::" msgstr "" "En levant une nouvelle exception (plutôt que d'utiliser un simple ``raise`` " "pour lever à nouveau l'exception en cours de traitement), le contexte " "implicite d'exception peut être complété par une cause explicite en " -"utilisant :keyword:`from` avec :keyword:`raise`: ::" - -#: ../Doc/library/exceptions.rst:50 -msgid "" -"The expression following :keyword:`from` must be an exception or ``None``. " -"It will be set as :attr:`__cause__` on the raised exception. Setting :attr:" -"`__cause__` also implicitly sets the :attr:`__suppress_context__` attribute " -"to ``True``, so that using ``raise new_exc from None`` effectively replaces " -"the old exception with the new one for display purposes (e.g. converting :" -"exc:`KeyError` to :exc:`AttributeError`), while leaving the old exception " -"available in :attr:`__context__` for introspection when debugging." -msgstr "" -"L'expression suivant :keyword:`from` doit être une exception ou ``None``. " -"Elle sera assignée en tant que :attr:`__cause__` dans l'exception levée. " -"Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" +"utilisant :keyword:`from` avec :keyword:`raise` ::" + +#: library/exceptions.rst:50 +msgid "" +"The expression following :keyword:`from` must be an exception or " +"``None``. It will be set as :attr:`__cause__` on the raised exception. " +"Setting :attr:`__cause__` also implicitly sets the :attr:" +"`__suppress_context__` attribute to ``True``, so that using ``raise new_exc " +"from None`` effectively replaces the old exception with the new one for " +"display purposes (e.g. converting :exc:`KeyError` to :exc:`AttributeError`), " +"while leaving the old exception available in :attr:`__context__` for " +"introspection when debugging." +msgstr "" +"L'expression suivant :keyword:`from` doit être une exception ou " +"``None``. Elle sera assignée en tant que :attr:`__cause__` dans l'exception " +"levée. Changer :attr:`__cause__` change aussi implicitement l'attribut :attr:" "`__suppress_context__` à ``True``, de sorte que l'utilisation de ``raise " "new_exc from None`` remplace bien l'ancienne exception avec la nouvelle à " -"des fins d'affichage (e.g., convertir :exc:`KeyError` en :exc:" +"des fins d'affichage (par exemple, convertir :exc:`KeyError` en :exc:" "`AttributeError`), tout en laissant l'ancienne exception disponible dans :" "attr:`__context__` pour introspection lors du débogage." -#: ../Doc/library/exceptions.rst:59 +#: library/exceptions.rst:59 msgid "" "The default traceback display code shows these chained exceptions in " "addition to the traceback for the exception itself. An explicitly chained " @@ -134,13 +136,13 @@ msgid "" "is :const:`None` and :attr:`__suppress_context__` is false." msgstr "" "Le code d'affichage par défaut de la trace d'appels montre ces exceptions " -"chaînées en plus de la trace de l'exception elle-même. Une exception chaînée " -"explicitement dans :attr:`__cause__` est toujours affichée si présente. Une " -"exception implicitement chaînée dans :attr:`__context__` n'est affichée que " -"si :attr:`__cause__` est :const:`None` et :attr:`__suppress_context__` est " -"faux." +"chaînées en plus de la trace de l'exception elle-même. Si elle est présente, " +"une exception chaînée explicitement dans :attr:`__cause__` est toujours " +"affichée. Une exception implicitement chaînée dans :attr:`__context__` n'est " +"affichée que si :attr:`__cause__` est :const:`None` et :attr:" +"`__suppress_context__` est faux." -#: ../Doc/library/exceptions.rst:65 +#: library/exceptions.rst:65 msgid "" "In either case, the exception itself is always shown after any chained " "exceptions so that the final line of the traceback always shows the last " @@ -150,11 +152,11 @@ msgstr "" "les exceptions enchaînées, de sorte que la dernière ligne de la trace " "d'appels montre toujours la dernière exception qui a été levée." -#: ../Doc/library/exceptions.rst:71 +#: library/exceptions.rst:71 msgid "Base classes" msgstr "Classes de base" -#: ../Doc/library/exceptions.rst:73 +#: library/exceptions.rst:73 msgid "" "The following exceptions are used mostly as base classes for other " "exceptions." @@ -162,7 +164,7 @@ msgstr "" "Les exceptions suivantes sont utilisées principalement en tant que classes " "de base pour d'autres exceptions." -#: ../Doc/library/exceptions.rst:77 +#: library/exceptions.rst:77 msgid "" "The base class for all built-in exceptions. It is not meant to be directly " "inherited by user-defined classes (for that, use :exc:`Exception`). If :" @@ -176,7 +178,7 @@ msgstr "" "classe, la représentation du ou des argument(s) de l'instance est retournée, " "ou la chaîne vide s'il n'y avait pas d'arguments." -#: ../Doc/library/exceptions.rst:85 +#: library/exceptions.rst:85 msgid "" "The tuple of arguments given to the exception constructor. Some built-in " "exceptions (like :exc:`OSError`) expect a certain number of arguments and " @@ -189,16 +191,16 @@ msgstr "" "*tuple*, alors que d'autres ne sont généralement appelées qu'avec une seule " "chaîne de caractères rendant un message d'erreur." -#: ../Doc/library/exceptions.rst:92 +#: library/exceptions.rst:92 msgid "" "This method sets *tb* as the new traceback for the exception and returns the " "exception object. It is usually used in exception handling code like this::" msgstr "" "Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " "l'exception et retourne l'objet exception. Elle est généralement utilisée " -"dans du code de gestion d'exceptions comme ceci: ::" +"dans du code de gestion d'exceptions comme ceci ::" -#: ../Doc/library/exceptions.rst:105 +#: library/exceptions.rst:105 msgid "" "All built-in, non-system-exiting exceptions are derived from this class. " "All user-defined exceptions should also be derived from this class." @@ -207,7 +209,7 @@ msgstr "" "dérivent de cette classe. Toutes les exceptions définies par l'utilisateur " "devraient également être dérivées de cette classe." -#: ../Doc/library/exceptions.rst:111 +#: library/exceptions.rst:111 msgid "" "The base class for those built-in exceptions that are raised for various " "arithmetic errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" @@ -217,7 +219,7 @@ msgstr "" "erreurs arithmétiques : :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:" "`FloatingPointError`." -#: ../Doc/library/exceptions.rst:118 +#: library/exceptions.rst:118 msgid "" "Raised when a :ref:`buffer ` related operation cannot be " "performed." @@ -225,7 +227,7 @@ msgstr "" "Levée lorsqu'une opération liée à un :ref:`tampon ` ne peut " "pas être exécutée." -#: ../Doc/library/exceptions.rst:124 +#: library/exceptions.rst:124 msgid "" "The base class for the exceptions that are raised when a key or index used " "on a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. " @@ -236,19 +238,19 @@ msgstr "" "invalide : :exc:`IndexError`, :exc:`KeyError`. Peut être levée directement " "par :func:`codecs.lookup`." -#: ../Doc/library/exceptions.rst:130 +#: library/exceptions.rst:130 msgid "Concrete exceptions" msgstr "Exceptions concrètes" -#: ../Doc/library/exceptions.rst:132 +#: library/exceptions.rst:132 msgid "The following exceptions are the exceptions that are usually raised." msgstr "Les exceptions suivantes sont celles qui sont habituellement levées." -#: ../Doc/library/exceptions.rst:138 +#: library/exceptions.rst:138 msgid "Raised when an :keyword:`assert` statement fails." msgstr "Levée lorsqu'une instruction :keyword:`assert` échoue." -#: ../Doc/library/exceptions.rst:143 +#: library/exceptions.rst:143 msgid "" "Raised when an attribute reference (see :ref:`attribute-references`) or " "assignment fails. (When an object does not support attribute references or " @@ -258,7 +260,7 @@ msgstr "" "`attribute-references`) échoue. (Lorsqu'un objet ne supporte pas du tout la " "référence ou l'assignation d'attribut, :exc:`TypeError` est levé.)" -#: ../Doc/library/exceptions.rst:150 +#: library/exceptions.rst:150 msgid "" "Raised when the :func:`input` function hits an end-of-file condition (EOF) " "without reading any data. (N.B.: the :meth:`io.IOBase.read` and :meth:`io." @@ -269,11 +271,11 @@ msgstr "" "read` et :meth:`io.IOBase.readline` retournent une chaîne vide lorsqu'elles " "atteignent EOF.)" -#: ../Doc/library/exceptions.rst:157 +#: library/exceptions.rst:157 msgid "Not currently used." msgstr "N’est pas utilisé pour le moment." -#: ../Doc/library/exceptions.rst:162 +#: library/exceptions.rst:162 msgid "" "Raised when a :term:`generator` or :term:`coroutine` is closed; see :meth:" "`generator.close` and :meth:`coroutine.close`. It directly inherits from :" @@ -285,7 +287,7 @@ msgstr "" "de :exc:`BaseException` au lieu de :exc:`Exception` puisqu'il ne s'agit pas " "techniquement d'une erreur." -#: ../Doc/library/exceptions.rst:170 +#: library/exceptions.rst:170 msgid "" "Raised when the :keyword:`import` statement has troubles trying to load a " "module. Also raised when the \"from list\" in ``from ... import`` has a " @@ -295,7 +297,7 @@ msgstr "" "de charger un module. Également levée lorsque Python ne trouve pas un nom " "dans ``from ... import``." -#: ../Doc/library/exceptions.rst:174 +#: library/exceptions.rst:174 msgid "" "The :attr:`name` and :attr:`path` attributes can be set using keyword-only " "arguments to the constructor. When set they represent the name of the module " @@ -308,11 +310,11 @@ msgstr "" "tenté d'être importé et le chemin d'accès au fichier qui a déclenché " "l'exception." -#: ../Doc/library/exceptions.rst:179 +#: library/exceptions.rst:179 msgid "Added the :attr:`name` and :attr:`path` attributes." msgstr "Ajout des attributs :attr:`name` et :attr:`path`." -#: ../Doc/library/exceptions.rst:184 +#: library/exceptions.rst:184 msgid "" "A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a " "module could not be located. It is also raised when ``None`` is found in :" @@ -322,7 +324,7 @@ msgstr "" "lorsqu'un module n'a pas pu être localisé. Elle est généralement levée quand " "``None`` est trouvé dans :data:`sys.modules`." -#: ../Doc/library/exceptions.rst:193 +#: library/exceptions.rst:193 msgid "" "Raised when a sequence subscript is out of range. (Slice indices are " "silently truncated to fall in the allowed range; if an index is not an " @@ -332,7 +334,7 @@ msgstr "" "tranches (*slices*) sont tronqués silencieusement pour tomber dans la plage " "autorisée ; si un indice n'est pas un entier, :exc:`TypeError` est levée.)" -#: ../Doc/library/exceptions.rst:202 +#: library/exceptions.rst:202 msgid "" "Raised when a mapping (dictionary) key is not found in the set of existing " "keys." @@ -340,7 +342,7 @@ msgstr "" "Levée lorsqu'une clef (de dictionnaire) n'est pas trouvée dans l'ensemble " "des clefs existantes." -#: ../Doc/library/exceptions.rst:209 +#: library/exceptions.rst:209 msgid "" "Raised when the user hits the interrupt key (normally :kbd:`Control-C` or :" "kbd:`Delete`). During execution, a check for interrupts is made regularly. " @@ -351,11 +353,11 @@ msgstr "" "Levée lorsque l'utilisateur appuie sur la touche d'interruption " "(normalement :kbd:`Control-C` or :kbd:`Delete`). Pendant l'exécution, un " "contrôle des interruptions est effectué régulièrement. L'exception hérite " -"de :exc:`BaseException` afin de ne pas être accidentellement capturée par du " -"code qui capture :exc:`Exception` et ainsi empêcher l'interpréteur de " +"de :exc:`BaseException` afin de ne pas être accidentellement interceptée par " +"du code qui intercepte :exc:`Exception` et ainsi empêcher l'interpréteur de " "quitter." -#: ../Doc/library/exceptions.rst:218 +#: library/exceptions.rst:218 msgid "" "Raised when an operation runs out of memory but the situation may still be " "rescued (by deleting some objects). The associated value is a string " @@ -374,7 +376,7 @@ msgstr "" "une exception pour qu'une pile d'appels puisse être affichée, dans le cas où " "un programme en cours d'exécution en était la cause." -#: ../Doc/library/exceptions.rst:229 +#: library/exceptions.rst:229 msgid "" "Raised when a local or global name is not found. This applies only to " "unqualified names. The associated value is an error message that includes " @@ -384,7 +386,7 @@ msgstr "" "qu'aux noms non qualifiés. La valeur associée est un message d'erreur qui " "inclut le nom qui n'a pas pu être trouvé." -#: ../Doc/library/exceptions.rst:236 +#: library/exceptions.rst:236 msgid "" "This exception is derived from :exc:`RuntimeError`. In user defined base " "classes, abstract methods should raise this exception when they require " @@ -397,7 +399,7 @@ msgstr "" "méthode, ou lorsque la classe est en cours de développement pour indiquer " "que l'implémentation concrète doit encore être ajoutée." -#: ../Doc/library/exceptions.rst:243 +#: library/exceptions.rst:243 msgid "" "It should not be used to indicate that an operator or method is not meant to " "be supported at all -- in that case either leave the operator / method " @@ -408,7 +410,7 @@ msgstr "" "laissez soit l'opérateur / la méthode non défini, soit, s'il s'agit d'une " "sous-classe, assignez-le à :data:`None`." -#: ../Doc/library/exceptions.rst:249 +#: library/exceptions.rst:249 msgid "" "``NotImplementedError`` and ``NotImplemented`` are not interchangeable, even " "though they have similar names and purposes. See :data:`NotImplemented` for " @@ -418,18 +420,18 @@ msgstr "" "même s'ils ont des noms et des objectifs similaires. Voir :data:" "`NotImplemented` pour des détails sur la façon de les utiliser." -#: ../Doc/library/exceptions.rst:258 +#: library/exceptions.rst:258 msgid "" "This exception is raised when a system function returns a system-related " -"error, including I/O failures such as \"file not found\" or \"disk full" -"\" (not for illegal argument types or other incidental errors)." +"error, including I/O failures such as \"file not found\" or \"disk " +"full\" (not for illegal argument types or other incidental errors)." msgstr "" "Cette exception est levée lorsqu'une fonction système retourne une erreur " "liée au système, incluant les erreurs entrées-sorties telles que \"fichier " "non trouvé\" ou \"disque plein\" (pas pour les types d'arguments illégaux ou " "d'autres erreurs accidentelles)." -#: ../Doc/library/exceptions.rst:262 +#: library/exceptions.rst:262 msgid "" "The second form of the constructor sets the corresponding attributes, " "described below. The attributes default to :const:`None` if not specified. " @@ -443,7 +445,7 @@ msgstr "" "l'attribut :attr:`~BaseException.args` contient seulement un *tuple* à deux " "valeurs des deux premiers arguments du constructeur." -#: ../Doc/library/exceptions.rst:268 +#: library/exceptions.rst:268 msgid "" "The constructor often actually returns a subclass of :exc:`OSError`, as " "described in `OS exceptions`_ below. The particular subclass depends on the " @@ -457,11 +459,11 @@ msgstr "" "de la construction d':exc:`OSError` directement ou via un alias, et n'est " "pas hérité lors du sous-classement." -#: ../Doc/library/exceptions.rst:276 +#: library/exceptions.rst:276 msgid "A numeric error code from the C variable :c:data:`errno`." msgstr "Code d'erreur numérique de la variable C :c:data:`errno`." -#: ../Doc/library/exceptions.rst:280 +#: library/exceptions.rst:280 msgid "" "Under Windows, this gives you the native Windows error code. The :attr:`." "errno` attribute is then an approximate translation, in POSIX terms, of that " @@ -471,7 +473,7 @@ msgstr "" "errno` est alors une traduction approximative, en termes POSIX, de ce code " "d'erreur natif." -#: ../Doc/library/exceptions.rst:284 +#: library/exceptions.rst:284 msgid "" "Under Windows, if the *winerror* constructor argument is an integer, the :" "attr:`.errno` attribute is determined from the Windows error code, and the " @@ -483,7 +485,7 @@ msgstr "" "et l'argument *errno* est ignoré. Sur d'autres plateformes, l'argument " "*winerror* est ignoré, et l'attribut :attr:`winerror` n'existe pas." -#: ../Doc/library/exceptions.rst:292 +#: library/exceptions.rst:292 msgid "" "The corresponding error message, as provided by the operating system. It is " "formatted by the C functions :c:func:`perror` under POSIX, and :c:func:" @@ -493,7 +495,7 @@ msgstr "" "d'exploitation. Il est formaté par les fonctions C :c:func:`perror` sous " "POSIX, et :c:func:`FormatMessage` sous Windows." -#: ../Doc/library/exceptions.rst:300 +#: library/exceptions.rst:300 msgid "" "For exceptions that involve a file system path (such as :func:`open` or :" "func:`os.unlink`), :attr:`filename` is the file name passed to the function. " @@ -507,7 +509,7 @@ msgstr "" "à deux chemins d'accès au système de fichiers (comme :func:`os.rename`), :" "attr:`filename2` correspond au deuxième nom de fichier passé à la fonction." -#: ../Doc/library/exceptions.rst:307 +#: library/exceptions.rst:307 msgid "" ":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket." "error`, :exc:`select.error` and :exc:`mmap.error` have been merged into :exc:" @@ -517,7 +519,7 @@ msgstr "" "error`, :exc:`select.error` et :exc:`mmap.error` ont fusionnées en :exc:" "`OSError`, et le constructeur peut renvoyer une sous-classe." -#: ../Doc/library/exceptions.rst:313 +#: library/exceptions.rst:313 msgid "" "The :attr:`filename` attribute is now the original file name passed to the " "function, instead of the name encoded to or decoded from the filesystem " @@ -529,7 +531,7 @@ msgstr "" "système de fichiers. De plus, l'argument du constructeur et attribut " "*filename2* a été ajouté." -#: ../Doc/library/exceptions.rst:322 +#: library/exceptions.rst:322 msgid "" "Raised when the result of an arithmetic operation is too large to be " "represented. This cannot occur for integers (which would rather raise :exc:" @@ -546,7 +548,7 @@ msgstr "" "normalisation de la gestion des exceptions de virgule flottante en C, la " "plupart des opérations en virgule flottante ne sont pas vérifiées." -#: ../Doc/library/exceptions.rst:332 +#: library/exceptions.rst:332 msgid "" "This exception is derived from :exc:`RuntimeError`. It is raised when the " "interpreter detects that the maximum recursion depth (see :func:`sys." @@ -556,11 +558,11 @@ msgstr "" "l'interpréteur détecte que la profondeur de récursivité maximale (voir :func:" "`sys.getrecursionlimit`) est dépassée." -#: ../Doc/library/exceptions.rst:336 +#: library/exceptions.rst:336 msgid "Previously, a plain :exc:`RuntimeError` was raised." msgstr "Auparavant, une simple :exc:`RuntimeError` était levée." -#: ../Doc/library/exceptions.rst:342 +#: library/exceptions.rst:342 msgid "" "This exception is raised when a weak reference proxy, created by the :func:" "`weakref.proxy` function, is used to access an attribute of the referent " @@ -573,7 +575,7 @@ msgstr "" "Pour plus d'informations sur les pointeurs faibles, voir le module :mod:" "`weakref`." -#: ../Doc/library/exceptions.rst:350 +#: library/exceptions.rst:350 msgid "" "Raised when an error is detected that doesn't fall in any of the other " "categories. The associated value is a string indicating what precisely went " @@ -583,7 +585,7 @@ msgstr "" "détectée. La valeur associée est une chaîne de caractères indiquant " "précisément ce qui s'est mal passé." -#: ../Doc/library/exceptions.rst:357 +#: library/exceptions.rst:357 msgid "" "Raised by built-in function :func:`next` and an :term:`iterator`\\'s :meth:" "`~iterator.__next__` method to signal that there are no further items " @@ -593,7 +595,7 @@ msgstr "" "__next__` d'un :term:`iterator` (itérateur) pour signaler qu'il n'y a pas " "d'autres éléments produits par l'itérateur." -#: ../Doc/library/exceptions.rst:361 +#: library/exceptions.rst:361 msgid "" "The exception object has a single attribute :attr:`value`, which is given as " "an argument when constructing the exception, and defaults to :const:`None`." @@ -602,7 +604,7 @@ msgstr "" "argument lors de la construction de l'exception, et vaut :const:`None` par " "défaut." -#: ../Doc/library/exceptions.rst:365 +#: library/exceptions.rst:365 msgid "" "When a :term:`generator` or :term:`coroutine` function returns, a new :exc:" "`StopIteration` instance is raised, and the value returned by the function " @@ -613,7 +615,7 @@ msgstr "" "valeur retournée par la fonction est passée au paramètre :attr:`value` du " "constructeur de l'exception." -#: ../Doc/library/exceptions.rst:370 +#: library/exceptions.rst:370 msgid "" "If a generator code directly or indirectly raises :exc:`StopIteration`, it " "is converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` " @@ -623,7 +625,7 @@ msgstr "" "`StopIteration`, elle est convertie en :exc:`RuntimeError` (en conservant :" "exc:`StopIteration` comme cause de la nouvelle exception)." -#: ../Doc/library/exceptions.rst:374 +#: library/exceptions.rst:374 msgid "" "Added ``value`` attribute and the ability for generator functions to use it " "to return a value." @@ -631,7 +633,7 @@ msgstr "" "Ajout de l'attribut ``value`` et de la possibilité pour les fonctions de " "générateur de l'utiliser pour retourner une valeur." -#: ../Doc/library/exceptions.rst:378 +#: library/exceptions.rst:378 msgid "" "Introduced the RuntimeError transformation via ``from __future__ import " "generator_stop``, see :pep:`479`." @@ -639,7 +641,7 @@ msgstr "" "Introduit la transformation des erreurs RuntimeError via ``from __future__ " "import generator_stop``, cf. :pep:`479`." -#: ../Doc/library/exceptions.rst:382 +#: library/exceptions.rst:382 msgid "" "Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " "raised in a generator is transformed into a :exc:`RuntimeError`." @@ -648,7 +650,7 @@ msgstr "" "`StopIteration` est levée dans un générateur elle est transformée en une :" "exc:`RuntimeError`." -#: ../Doc/library/exceptions.rst:388 +#: library/exceptions.rst:388 msgid "" "Must be raised by :meth:`__anext__` method of an :term:`asynchronous " "iterator` object to stop the iteration." @@ -656,7 +658,7 @@ msgstr "" "Doit être levée par la méthode :meth:`__anext__` d'un objet :term:" "`asynchronous iterator` pour arrêter l'itération." -#: ../Doc/library/exceptions.rst:395 +#: library/exceptions.rst:395 msgid "" "Raised when the parser encounters a syntax error. This may occur in an :" "keyword:`import` statement, in a call to the built-in functions :func:`exec` " @@ -668,18 +670,36 @@ msgstr "" "fonctions natives :func:`exec` ou :func:`eval`, ou lors de la lecture du " "script initial ou de l'entrée standard (également de manière interactive)." -#: ../Doc/library/exceptions.rst:400 +#: library/exceptions.rst:400 +msgid "" +"The :func:`str` of the exception instance returns only the error message." +msgstr "" + +#: library/exceptions.rst:404 +msgid "The name of the file the syntax error occurred in." +msgstr "Le nom du fichier dans lequel l'erreur de syntaxe a été rencontrée." + +#: library/exceptions.rst:408 msgid "" -"Instances of this class have attributes :attr:`filename`, :attr:`lineno`, :" -"attr:`offset` and :attr:`text` for easier access to the details. :func:" -"`str` of the exception instance returns only the message." +"Which line number in the file the error occurred in. This is 1-indexed: the " +"first line in the file has a ``lineno`` of 1." msgstr "" -"Les instances de cette classe ont des attributs :attr:`filename`, :attr:" -"`lineno`, :attr:`offset` et :attr:`text` pour accéder plus facilement aux " -"détails. La représentation :func:`str` de l'instance de l'exception retourne " -"seulement le message." +"Le numéro de la ligne dans le fichier où l'erreur s'est produite. L'indiçage " +"commence à 1 : ``lineno`` vaut 1 pour la première ligne du fichier." -#: ../Doc/library/exceptions.rst:407 +#: library/exceptions.rst:413 +msgid "" +"The column in the line where the error occurred. This is 1-indexed: the " +"first character in the line has an ``offset`` of 1." +msgstr "" +"La colonne dans la ligne où l'erreur s'est produite. L'indiçage commence à " +"1 : ``offset`` vaut 1 pour le premier caractère de la ligne." + +#: library/exceptions.rst:418 +msgid "The source code text involved in the error." +msgstr "Le texte du code source impliqué dans l'erreur." + +#: library/exceptions.rst:423 msgid "" "Base class for syntax errors related to incorrect indentation. This is a " "subclass of :exc:`SyntaxError`." @@ -687,7 +707,7 @@ msgstr "" "Classe de base pour les erreurs de syntaxe liées à une indentation " "incorrecte. C'est une sous-classe de :exc:`SyntaxError`." -#: ../Doc/library/exceptions.rst:413 +#: library/exceptions.rst:429 msgid "" "Raised when indentation contains an inconsistent use of tabs and spaces. " "This is a subclass of :exc:`IndentationError`." @@ -695,7 +715,7 @@ msgstr "" "Levée lorsqu'une indentation contient une utilisation incohérente des " "tabulations et des espaces. C'est une sous-classe de :exc:`IndentationError`." -#: ../Doc/library/exceptions.rst:419 +#: library/exceptions.rst:435 msgid "" "Raised when the interpreter finds an internal error, but the situation does " "not look so serious to cause it to abandon all hope. The associated value is " @@ -706,7 +726,7 @@ msgstr "" "espoir. La valeur associée est une chaîne de caractères indiquant l'erreur " "qui est survenue (en termes bas niveau)." -#: ../Doc/library/exceptions.rst:423 +#: library/exceptions.rst:439 msgid "" "You should report this to the author or maintainer of your Python " "interpreter. Be sure to report the version of the Python interpreter (``sys." @@ -720,7 +740,7 @@ msgstr "" "interactive), le message d'erreur exact (la valeur associée à l'exception) " "et si possible le code source du programme qui a déclenché l'erreur." -#: ../Doc/library/exceptions.rst:432 +#: library/exceptions.rst:448 msgid "" "This exception is raised by the :func:`sys.exit` function. It inherits " "from :exc:`BaseException` instead of :exc:`Exception` so that it is not " @@ -735,8 +755,8 @@ msgid "" msgstr "" "Cette exception est levée par la fonction :func:`sys.exit`. Elle hérite de :" "exc:`BaseException` au lieu d':exc:`Exception` pour ne pas qu'elle soit " -"accidentellement capturée par du code qui capture :exc:`Exception`. Cela " -"permet à l'exception de se propager correctement et de faire quitter " +"interceptée accidentellement par du code qui intercepte :exc:`Exception`. " +"Cela permet à l'exception de se propager correctement et de faire quitter " "l'interpréteur. Lorsqu'elle n'est pas gérée, l'interpréteur Python quitte ; " "aucune trace d'appels n'est affichée. Le constructeur accepte le même " "argument optionnel passé à :func:`sys.exit`. Si la valeur est un entier, " @@ -745,7 +765,7 @@ msgstr "" "autre type (comme une chaîne de caractères), la valeur de l'objet est " "affichée et l'état de sortie est un." -#: ../Doc/library/exceptions.rst:443 +#: library/exceptions.rst:459 msgid "" "A call to :func:`sys.exit` is translated into an exception so that clean-up " "handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be " @@ -762,7 +782,7 @@ msgstr "" "immédiatement (par exemple, dans le processus enfant après un appel à :func:" "`os.fork`)." -#: ../Doc/library/exceptions.rst:452 +#: library/exceptions.rst:468 msgid "" "The exit status or error message that is passed to the constructor. " "(Defaults to ``None``.)" @@ -770,7 +790,7 @@ msgstr "" "L'état de sortie ou le message d'erreur passé au constructeur. (``None`` par " "défaut.)" -#: ../Doc/library/exceptions.rst:458 +#: library/exceptions.rst:474 msgid "" "Raised when an operation or function is applied to an object of " "inappropriate type. The associated value is a string giving details about " @@ -780,7 +800,7 @@ msgstr "" "inapproprié. La valeur associée est une chaîne de caractères donnant des " "détails sur le type d'inadéquation." -#: ../Doc/library/exceptions.rst:461 +#: library/exceptions.rst:477 msgid "" "This exception may be raised by user code to indicate that an attempted " "operation on an object is not supported, and is not meant to be. If an " @@ -793,7 +813,7 @@ msgstr "" "donnée mais n'a pas encore fourni une implémentation, lever :exc:" "`NotImplementedError` est plus approprié." -#: ../Doc/library/exceptions.rst:466 +#: library/exceptions.rst:482 msgid "" "Passing arguments of the wrong type (e.g. passing a :class:`list` when an :" "class:`int` is expected) should result in a :exc:`TypeError`, but passing " @@ -805,7 +825,7 @@ msgstr "" "le passage d'arguments avec la mauvaise valeur (e.g. un nombre en dehors des " "limites attendues) devrait résulter en une :exc:`ValueError`." -#: ../Doc/library/exceptions.rst:473 +#: library/exceptions.rst:489 msgid "" "Raised when a reference is made to a local variable in a function or method, " "but no value has been bound to that variable. This is a subclass of :exc:" @@ -815,7 +835,7 @@ msgstr "" "ou une méthode, mais qu'aucune valeur n'a été liée à cette variable. C'est " "une sous-classe de :exc:`NameError`." -#: ../Doc/library/exceptions.rst:480 +#: library/exceptions.rst:496 msgid "" "Raised when a Unicode-related encoding or decoding error occurs. It is a " "subclass of :exc:`ValueError`." @@ -823,7 +843,7 @@ msgstr "" "Levée lorsqu'une erreur d'encodage ou de décodage liée à Unicode se produit. " "C'est une sous-classe de :exc:`ValueError`." -#: ../Doc/library/exceptions.rst:483 +#: library/exceptions.rst:499 msgid "" ":exc:`UnicodeError` has attributes that describe the encoding or decoding " "error. For example, ``err.object[err.start:err.end]`` gives the particular " @@ -833,27 +853,27 @@ msgstr "" "décodage. Par exemple, ``err.object[err.start:err.end]`` donne l'entrée " "particulière invalide sur laquelle le codec a échoué." -#: ../Doc/library/exceptions.rst:489 +#: library/exceptions.rst:505 msgid "The name of the encoding that raised the error." msgstr "Le nom de l'encodage qui a provoqué l'erreur." -#: ../Doc/library/exceptions.rst:493 +#: library/exceptions.rst:509 msgid "A string describing the specific codec error." msgstr "Une chaîne de caractères décrivant l'erreur de codec spécifique." -#: ../Doc/library/exceptions.rst:497 +#: library/exceptions.rst:513 msgid "The object the codec was attempting to encode or decode." msgstr "L'objet que le codec essayait d'encoder ou de décoder." -#: ../Doc/library/exceptions.rst:501 +#: library/exceptions.rst:517 msgid "The first index of invalid data in :attr:`object`." msgstr "Le premier index des données invalides dans :attr:`object`." -#: ../Doc/library/exceptions.rst:505 +#: library/exceptions.rst:521 msgid "The index after the last invalid data in :attr:`object`." msgstr "L'index après la dernière donnée invalide dans :attr:`object`." -#: ../Doc/library/exceptions.rst:510 +#: library/exceptions.rst:526 msgid "" "Raised when a Unicode-related error occurs during encoding. It is a " "subclass of :exc:`UnicodeError`." @@ -861,7 +881,7 @@ msgstr "" "Levée lorsqu'une erreur liée à Unicode se produit durant l'encodage. C'est " "une sous-classe d':exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:516 +#: library/exceptions.rst:532 msgid "" "Raised when a Unicode-related error occurs during decoding. It is a " "subclass of :exc:`UnicodeError`." @@ -869,7 +889,7 @@ msgstr "" "Levée lorsqu'une erreur liée à Unicode se produit durant le décodage. C'est " "une sous-classe d':exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:522 +#: library/exceptions.rst:538 msgid "" "Raised when a Unicode-related error occurs during translating. It is a " "subclass of :exc:`UnicodeError`." @@ -877,7 +897,7 @@ msgstr "" "Levée lorsqu'une erreur liée à Unicode se produit durant la traduction. " "C'est une sous-classe d':exc:`UnicodeError`." -#: ../Doc/library/exceptions.rst:528 +#: library/exceptions.rst:544 msgid "" "Raised when an operation or function receives an argument that has the right " "type but an inappropriate value, and the situation is not described by a " @@ -887,7 +907,7 @@ msgstr "" "le bon type mais une valeur inappropriée, et que la situation n'est pas " "décrite par une exception plus précise telle que :exc:`IndexError`." -#: ../Doc/library/exceptions.rst:535 +#: library/exceptions.rst:551 msgid "" "Raised when the second argument of a division or modulo operation is zero. " "The associated value is a string indicating the type of the operands and the " @@ -897,7 +917,7 @@ msgstr "" "est zéro. La valeur associée est une chaîne indiquant le type des opérandes " "et de l'opération." -#: ../Doc/library/exceptions.rst:540 +#: library/exceptions.rst:556 msgid "" "The following exceptions are kept for compatibility with previous versions; " "starting from Python 3.3, they are aliases of :exc:`OSError`." @@ -905,15 +925,15 @@ msgstr "" "Les exceptions suivantes sont conservées pour la compatibilité avec les " "anciennes versions ; depuis Python 3.3, ce sont des alias d':exc:`OSError`." -#: ../Doc/library/exceptions.rst:549 +#: library/exceptions.rst:565 msgid "Only available on Windows." msgstr "Seulement disponible sous Windows." -#: ../Doc/library/exceptions.rst:553 +#: library/exceptions.rst:569 msgid "OS exceptions" msgstr "Exceptions système" -#: ../Doc/library/exceptions.rst:555 +#: library/exceptions.rst:571 msgid "" "The following exceptions are subclasses of :exc:`OSError`, they get raised " "depending on the system error code." @@ -921,7 +941,7 @@ msgstr "" "Les exceptions suivantes sont des sous-classes d':exc:`OSError`, elles sont " "levées en fonction du code d'erreur système." -#: ../Doc/library/exceptions.rst:560 +#: library/exceptions.rst:576 msgid "" "Raised when an operation would block on an object (e.g. socket) set for non-" "blocking operation. Corresponds to :c:data:`errno` ``EAGAIN``, ``EALREADY``, " @@ -931,7 +951,7 @@ msgstr "" "configuré pour une opération non-bloquante. Correspond à :c:data:`errno` " "``EAGAIN``, ``EALREADY``, ``EWOULDBLOCK`` et ``EINPROGRESS``." -#: ../Doc/library/exceptions.rst:565 +#: library/exceptions.rst:581 msgid "" "In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " "more attribute:" @@ -939,7 +959,7 @@ msgstr "" "En plus de ceux de :exc:`OSError`, :exc:`BlockingIOError` peut avoir un " "attribut de plus :" -#: ../Doc/library/exceptions.rst:570 +#: library/exceptions.rst:586 msgid "" "An integer containing the number of characters written to the stream before " "it blocked. This attribute is available when using the buffered I/O classes " @@ -949,7 +969,7 @@ msgstr "" "qu'il ne soit bloqué. Cet attribut est disponible lors de l'utilisation des " "classes tampon entrées-sorties du module :mod:`io`." -#: ../Doc/library/exceptions.rst:576 +#: library/exceptions.rst:592 msgid "" "Raised when an operation on a child process failed. Corresponds to :c:data:" "`errno` ``ECHILD``." @@ -957,11 +977,11 @@ msgstr "" "Levée lorsqu'une opération sur un processus enfant a échoué. Correspond à :c:" "data:`errno` ``ECHILD``." -#: ../Doc/library/exceptions.rst:581 +#: library/exceptions.rst:597 msgid "A base class for connection-related issues." msgstr "Une classe de base pour les problèmes de connexion." -#: ../Doc/library/exceptions.rst:583 +#: library/exceptions.rst:599 msgid "" "Subclasses are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:" "`ConnectionRefusedError` and :exc:`ConnectionResetError`." @@ -970,7 +990,7 @@ msgstr "" "`ConnectionAbortedError`, :exc:`ConnectionRefusedError` et :exc:" "`ConnectionResetError`." -#: ../Doc/library/exceptions.rst:588 +#: library/exceptions.rst:604 msgid "" "A subclass of :exc:`ConnectionError`, raised when trying to write on a pipe " "while the other end has been closed, or trying to write on a socket which " @@ -982,7 +1002,7 @@ msgstr "" "un connecteur (*socket* en anglais) qui a été fermé pour l'écriture. " "Correspond à :c:data:`errno` ``EPIPE`` et ``ESHUTDOWN``." -#: ../Doc/library/exceptions.rst:595 +#: library/exceptions.rst:611 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "aborted by the peer. Corresponds to :c:data:`errno` ``ECONNABORTED``." @@ -991,7 +1011,7 @@ msgstr "" "connexion est interrompue par le pair. Correspond à :c:data:`errno` " "``ECONNABORTED``." -#: ../Doc/library/exceptions.rst:601 +#: library/exceptions.rst:617 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection attempt is " "refused by the peer. Corresponds to :c:data:`errno` ``ECONNREFUSED``." @@ -1000,7 +1020,7 @@ msgstr "" "connexion est refusée par le pair. Correspond à :c:data:`errno` " "``ECONNREFUSED``." -#: ../Doc/library/exceptions.rst:607 +#: library/exceptions.rst:623 msgid "" "A subclass of :exc:`ConnectionError`, raised when a connection is reset by " "the peer. Corresponds to :c:data:`errno` ``ECONNRESET``." @@ -1008,7 +1028,7 @@ msgstr "" "Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une connexion est " "réinitialisée par le pair. Correspond à :c:data:`errno` ``ECONNRESET``." -#: ../Doc/library/exceptions.rst:613 +#: library/exceptions.rst:629 msgid "" "Raised when trying to create a file or directory which already exists. " "Corresponds to :c:data:`errno` ``EEXIST``." @@ -1016,7 +1036,7 @@ msgstr "" "Levée en essayant de créer un fichier ou un répertoire qui existe déjà. " "Correspond à :c:data:`errno` ``EEXIST``." -#: ../Doc/library/exceptions.rst:618 +#: library/exceptions.rst:634 msgid "" "Raised when a file or directory is requested but doesn't exist. Corresponds " "to :c:data:`errno` ``ENOENT``." @@ -1024,7 +1044,7 @@ msgstr "" "Levée lorsqu'un fichier ou répertoire est demandé mais n'existe pas. " "Correspond à :c:data:`errno` ``ENOENT``." -#: ../Doc/library/exceptions.rst:623 +#: library/exceptions.rst:639 msgid "" "Raised when a system call is interrupted by an incoming signal. Corresponds " "to :c:data:`errno` :py:data:`~errno.EINTR`." @@ -1032,7 +1052,7 @@ msgstr "" "Levée lorsqu'un appel système est interrompu par un signal entrant. " "Correspond à :c:data:`errno` :py:data:`~errno.EINTR`." -#: ../Doc/library/exceptions.rst:626 +#: library/exceptions.rst:642 msgid "" "Python now retries system calls when a syscall is interrupted by a signal, " "except if the signal handler raises an exception (see :pep:`475` for the " @@ -1042,7 +1062,7 @@ msgstr "" "un signal, sauf si le gestionnaire de signal lève une exception (voir :pep:" "`475` pour les raisons), au lieu de lever :exc:`InterruptedError`." -#: ../Doc/library/exceptions.rst:633 +#: library/exceptions.rst:649 msgid "" "Raised when a file operation (such as :func:`os.remove`) is requested on a " "directory. Corresponds to :c:data:`errno` ``EISDIR``." @@ -1050,7 +1070,7 @@ msgstr "" "Levée lorsqu'une opération sur un fichier (comme :func:`os.remove`) est " "demandée sur un répertoire. Correspond à :c:data:`errno` ``EISDIR``." -#: ../Doc/library/exceptions.rst:639 +#: library/exceptions.rst:655 msgid "" "Raised when a directory operation (such as :func:`os.listdir`) is requested " "on something which is not a directory. Corresponds to :c:data:`errno` " @@ -1060,7 +1080,7 @@ msgstr "" "demandée sur autre chose qu'un répertoire. Correspond à :c:data:`errno` " "``ENOTDIR``." -#: ../Doc/library/exceptions.rst:645 +#: library/exceptions.rst:661 msgid "" "Raised when trying to run an operation without the adequate access rights - " "for example filesystem permissions. Corresponds to :c:data:`errno` " @@ -1070,7 +1090,7 @@ msgstr "" "adéquats — par exemple les permissions du système de fichiers. Correspond à :" "c:data:`errno` ``EACCES`` et ``EPERM``." -#: ../Doc/library/exceptions.rst:651 +#: library/exceptions.rst:667 msgid "" "Raised when a given process doesn't exist. Corresponds to :c:data:`errno` " "``ESRCH``." @@ -1078,7 +1098,7 @@ msgstr "" "Levée lorsqu'un processus donné n'existe pas. Correspond à :c:data:`errno` " "``ESRCH``." -#: ../Doc/library/exceptions.rst:656 +#: library/exceptions.rst:672 msgid "" "Raised when a system function timed out at the system level. Corresponds to :" "c:data:`errno` ``ETIMEDOUT``." @@ -1086,19 +1106,19 @@ msgstr "" "Levée lorsqu'une fonction système a expiré au niveau système. Correspond à :" "c:data:`errno` ``ETIMEDOUT``." -#: ../Doc/library/exceptions.rst:659 +#: library/exceptions.rst:675 msgid "All the above :exc:`OSError` subclasses were added." msgstr "Toutes les sous-classes d':exc:`OSError` ci-dessus ont été ajoutées." -#: ../Doc/library/exceptions.rst:665 +#: library/exceptions.rst:681 msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" msgstr ":pep:`3151` -- Refonte de la hiérarchie des exceptions système et IO" -#: ../Doc/library/exceptions.rst:671 +#: library/exceptions.rst:687 msgid "Warnings" msgstr "Avertissements" -#: ../Doc/library/exceptions.rst:673 +#: library/exceptions.rst:689 msgid "" "The following exceptions are used as warning categories; see the :ref:" "`warning-categories` documentation for more details." @@ -1106,16 +1126,16 @@ msgstr "" "Les exceptions suivantes sont utilisées comme catégories d'avertissement ; " "voir :mod:`warning-categories` pour plus d'informations." -#: ../Doc/library/exceptions.rst:678 +#: library/exceptions.rst:694 msgid "Base class for warning categories." msgstr "Classe de base pour les catégories d'avertissement." -#: ../Doc/library/exceptions.rst:683 +#: library/exceptions.rst:699 msgid "Base class for warnings generated by user code." msgstr "" "Classe de base pour les avertissements générés par du code utilisateur." -#: ../Doc/library/exceptions.rst:688 +#: library/exceptions.rst:704 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for other Python developers." @@ -1123,7 +1143,7 @@ msgstr "" "Classe de base pour les avertissements sur les fonctionnalités obsolètes, " "lorsque ces avertissements sont destinés aux autres développeurs Python." -#: ../Doc/library/exceptions.rst:694 +#: library/exceptions.rst:710 msgid "" "Base class for warnings about features which are obsolete and expected to be " "deprecated in the future, but are not deprecated at the moment." @@ -1132,7 +1152,7 @@ msgstr "" "indiquent que la fonctionnalité peut encore être utilisée actuellement, mais " "qu'elle sera supprimée dans le futur." -#: ../Doc/library/exceptions.rst:698 +#: library/exceptions.rst:714 msgid "" "This class is rarely used as emitting a warning about a possible upcoming " "deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " @@ -1142,17 +1162,17 @@ msgstr "" "d’une obsolescence à venir est inhabituel, et :exc:`DeprecationWarning` est " "préféré pour les obsolescences actuelles." -#: ../Doc/library/exceptions.rst:705 +#: library/exceptions.rst:721 msgid "Base class for warnings about dubious syntax." msgstr "Classe de base pour les avertissements sur de la syntaxe douteuse." -#: ../Doc/library/exceptions.rst:710 +#: library/exceptions.rst:726 msgid "Base class for warnings about dubious runtime behavior." msgstr "" "Classe de base pour les avertissements sur les comportements d'exécution " "douteux." -#: ../Doc/library/exceptions.rst:715 +#: library/exceptions.rst:731 msgid "" "Base class for warnings about deprecated features when those warnings are " "intended for end users of applications that are written in Python." @@ -1161,24 +1181,24 @@ msgstr "" "seront obsolètes dans le futur quand ces avertissements destinés aux " "utilisateurs finaux des applications écrites en Python." -#: ../Doc/library/exceptions.rst:721 +#: library/exceptions.rst:737 msgid "Base class for warnings about probable mistakes in module imports." msgstr "" "Classe de base pour les avertissements sur des erreurs probables dans les " "importations de modules." -#: ../Doc/library/exceptions.rst:726 +#: library/exceptions.rst:742 msgid "Base class for warnings related to Unicode." msgstr "Classe de base pour les avertissements liés à l'Unicode." -#: ../Doc/library/exceptions.rst:731 +#: library/exceptions.rst:747 msgid "" "Base class for warnings related to :class:`bytes` and :class:`bytearray`." msgstr "" "Classe de base pour les avertissements liés à :class:`bytes` et :class:" "`bytearray`." -#: ../Doc/library/exceptions.rst:736 +#: library/exceptions.rst:752 msgid "" "Base class for warnings related to resource usage. Ignored by the default " "warning filters." @@ -1186,14 +1206,24 @@ msgstr "" "Classe de base pour les avertissements liés à l'utilisation de ressources. " "Ignorée par les filtres d’avertissements par défaut." -#: ../Doc/library/exceptions.rst:744 +#: library/exceptions.rst:760 msgid "Exception hierarchy" msgstr "Hiérarchie des exceptions" -#: ../Doc/library/exceptions.rst:746 +#: library/exceptions.rst:762 msgid "The class hierarchy for built-in exceptions is:" msgstr "La hiérarchie de classes pour les exceptions natives est la suivante :" +#~ msgid "" +#~ "Instances of this class have attributes :attr:`filename`, :attr:" +#~ "`lineno`, :attr:`offset` and :attr:`text` for easier access to the " +#~ "details. :func:`str` of the exception instance returns only the message." +#~ msgstr "" +#~ "Les instances de cette classe ont des attributs :attr:`filename`, :attr:" +#~ "`lineno`, :attr:`offset` et :attr:`text` pour accéder plus facilement aux " +#~ "détails. La représentation :func:`str` de l'instance de l'exception " +#~ "retourne seulement le message." + #~ msgid "" #~ "PendingDeprecationWarning was introduced as an \"ignored by default\" " #~ "version of DeprecationWarning. But :exc:`DeprecationWarning` is also " diff --git a/library/faulthandler.po b/library/faulthandler.po index 9b58850eb8..846cf34497 100644 --- a/library/faulthandler.po +++ b/library/faulthandler.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 17:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" diff --git a/library/fcntl.po b/library/fcntl.po index 9d714b4c4c..d87346c5af 100644 --- a/library/fcntl.po +++ b/library/fcntl.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" "PO-Revision-Date: 2017-08-10 00:59+0200\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" @@ -76,13 +76,19 @@ msgstr "" msgid "If the :c:func:`fcntl` fails, an :exc:`OSError` is raised." msgstr "" -#: ../Doc/library/fcntl.rst:63 +#: ../Doc/library/fcntl.rst:60 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.fcntl`` with arguments " +"``fd``, ``cmd``, ``arg``." +msgstr "" + +#: ../Doc/library/fcntl.rst:65 msgid "" "This function is identical to the :func:`~fcntl.fcntl` function, except that " "the argument handling is even more complicated." msgstr "" -#: ../Doc/library/fcntl.rst:66 +#: ../Doc/library/fcntl.rst:68 msgid "" "The *request* parameter is limited to values that can fit in 32-bits. " "Additional constants of interest for use as the *request* argument can be " @@ -90,26 +96,26 @@ msgid "" "relevant C header files." msgstr "" -#: ../Doc/library/fcntl.rst:71 +#: ../Doc/library/fcntl.rst:73 msgid "" "The parameter *arg* can be one of an integer, an object supporting the read-" "only buffer interface (like :class:`bytes`) or an object supporting the read-" "write buffer interface (like :class:`bytearray`)." msgstr "" -#: ../Doc/library/fcntl.rst:75 +#: ../Doc/library/fcntl.rst:77 msgid "" "In all but the last case, behaviour is as for the :func:`~fcntl.fcntl` " "function." msgstr "" -#: ../Doc/library/fcntl.rst:78 +#: ../Doc/library/fcntl.rst:80 msgid "" "If a mutable buffer is passed, then the behaviour is determined by the value " "of the *mutate_flag* parameter." msgstr "" -#: ../Doc/library/fcntl.rst:81 +#: ../Doc/library/fcntl.rst:83 msgid "" "If it is false, the buffer's mutability is ignored and behaviour is as for a " "read-only buffer, except that the 1024 byte limit mentioned above is avoided " @@ -117,7 +123,7 @@ msgid "" "system wants to put there, things should work." msgstr "" -#: ../Doc/library/fcntl.rst:86 +#: ../Doc/library/fcntl.rst:88 msgid "" "If *mutate_flag* is true (the default), then the buffer is (in effect) " "passed to the underlying :func:`ioctl` system call, the latter's return code " @@ -128,15 +134,21 @@ msgid "" "copied back into the supplied buffer." msgstr "" -#: ../Doc/library/fcntl.rst:94 +#: ../Doc/library/fcntl.rst:96 msgid "If the :c:func:`ioctl` fails, an :exc:`OSError` exception is raised." msgstr "" -#: ../Doc/library/fcntl.rst:96 +#: ../Doc/library/fcntl.rst:98 msgid "An example::" msgstr "Un exemple ::" -#: ../Doc/library/fcntl.rst:112 +#: ../Doc/library/fcntl.rst:111 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.ioctl`` with arguments " +"``fd``, ``request``, ``arg``." +msgstr "" + +#: ../Doc/library/fcntl.rst:116 msgid "" "Perform the lock operation *operation* on file descriptor *fd* (file objects " "providing a :meth:`~io.IOBase.fileno` method are accepted as well). See the " @@ -144,11 +156,17 @@ msgid "" "function is emulated using :c:func:`fcntl`.)" msgstr "" -#: ../Doc/library/fcntl.rst:117 +#: ../Doc/library/fcntl.rst:121 msgid "If the :c:func:`flock` fails, an :exc:`OSError` exception is raised." msgstr "" -#: ../Doc/library/fcntl.rst:122 +#: ../Doc/library/fcntl.rst:123 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.flock`` with arguments " +"``fd``, ``operation``." +msgstr "" + +#: ../Doc/library/fcntl.rst:128 msgid "" "This is essentially a wrapper around the :func:`~fcntl.fcntl` locking calls. " "*fd* is the file descriptor (file objects providing a :meth:`~io.IOBase." @@ -156,19 +174,19 @@ msgid "" "*cmd* is one of the following values:" msgstr "" -#: ../Doc/library/fcntl.rst:127 +#: ../Doc/library/fcntl.rst:133 msgid ":const:`LOCK_UN` -- unlock" msgstr "" -#: ../Doc/library/fcntl.rst:128 +#: ../Doc/library/fcntl.rst:134 msgid ":const:`LOCK_SH` -- acquire a shared lock" msgstr "" -#: ../Doc/library/fcntl.rst:129 +#: ../Doc/library/fcntl.rst:135 msgid ":const:`LOCK_EX` -- acquire an exclusive lock" msgstr "" -#: ../Doc/library/fcntl.rst:131 +#: ../Doc/library/fcntl.rst:137 msgid "" "When *cmd* is :const:`LOCK_SH` or :const:`LOCK_EX`, it can also be bitwise " "ORed with :const:`LOCK_NB` to avoid blocking on lock acquisition. If :const:" @@ -180,38 +198,44 @@ msgid "" "for writing." msgstr "" -#: ../Doc/library/fcntl.rst:140 +#: ../Doc/library/fcntl.rst:146 msgid "" "*len* is the number of bytes to lock, *start* is the byte offset at which " "the lock starts, relative to *whence*, and *whence* is as with :func:`io." "IOBase.seek`, specifically:" msgstr "" -#: ../Doc/library/fcntl.rst:144 +#: ../Doc/library/fcntl.rst:150 msgid ":const:`0` -- relative to the start of the file (:data:`os.SEEK_SET`)" msgstr "" -#: ../Doc/library/fcntl.rst:145 +#: ../Doc/library/fcntl.rst:151 msgid "" ":const:`1` -- relative to the current buffer position (:data:`os.SEEK_CUR`)" msgstr "" -#: ../Doc/library/fcntl.rst:146 +#: ../Doc/library/fcntl.rst:152 msgid ":const:`2` -- relative to the end of the file (:data:`os.SEEK_END`)" msgstr "" -#: ../Doc/library/fcntl.rst:148 +#: ../Doc/library/fcntl.rst:154 msgid "" "The default for *start* is 0, which means to start at the beginning of the " "file. The default for *len* is 0 which means to lock to the end of the " "file. The default for *whence* is also 0." msgstr "" -#: ../Doc/library/fcntl.rst:152 +#: ../Doc/library/fcntl.rst:158 +msgid "" +"Raises an :ref:`auditing event ` ``fcntl.lockf`` with arguments " +"``fd``, ``cmd``, ``len``, ``start``, ``whence``." +msgstr "" + +#: ../Doc/library/fcntl.rst:160 msgid "Examples (all on a SVR4 compliant system)::" msgstr "" -#: ../Doc/library/fcntl.rst:162 +#: ../Doc/library/fcntl.rst:170 msgid "" "Note that in the first example the return value variable *rv* will hold an " "integer value; in the second example it will hold a :class:`bytes` object. " @@ -219,11 +243,11 @@ msgid "" "therefore using the :func:`flock` call may be better." msgstr "" -#: ../Doc/library/fcntl.rst:173 +#: ../Doc/library/fcntl.rst:181 msgid "Module :mod:`os`" msgstr "Module :mod:`os`" -#: ../Doc/library/fcntl.rst:171 +#: ../Doc/library/fcntl.rst:179 msgid "" "If the locking flags :data:`~os.O_SHLOCK` and :data:`~os.O_EXLOCK` are " "present in the :mod:`os` module (on BSD only), the :func:`os.open` function " diff --git a/library/filecmp.po b/library/filecmp.po index 75b4808157..48e5a701c7 100644 --- a/library/filecmp.po +++ b/library/filecmp.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-04-07 11:17+0200\n" "PO-Revision-Date: 2019-05-23 20:39+0200\n" @@ -278,4 +278,4 @@ msgid "" msgstr "" "Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " "effectuer une recherche récursive dans deux répertoires afin d'afficher des " -"fichiers communs différents ::" +"fichiers communs différents ::" diff --git a/library/fileformats.po b/library/fileformats.po index 601452a29d..3ef031af65 100644 --- a/library/fileformats.po +++ b/library/fileformats.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-09-24 21:35+0200\n" diff --git a/library/fileinput.po b/library/fileinput.po index c93cced2c5..d5e1111826 100644 --- a/library/fileinput.po +++ b/library/fileinput.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2019-11-15 18:54+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/fileinput.rst:2 msgid ":mod:`fileinput` --- Iterate over lines from multiple input streams" -msgstr "" +msgstr ":mod:`fileinput` — Parcourt les lignes provenant de plusieurs entrées" #: ../Doc/library/fileinput.rst:10 msgid "**Source code:** :source:`Lib/fileinput.py`" @@ -28,10 +28,13 @@ msgid "" "over standard input or a list of files. If you just want to read or write " "one file see :func:`open`." msgstr "" +"Ce module offre une classe auxiliaire et des fonctions pour lire facilement " +"l'entrée standard ou bien les fichiers d'une liste. Si vous n'avez besoin de " +"lire ou écrire qu'un seul fichier, il suffit de :func:`open`." #: ../Doc/library/fileinput.rst:18 msgid "The typical use is::" -msgstr "" +msgstr "Ce module s'utilise le plus couramment comme ceci :" #: ../Doc/library/fileinput.rst:24 msgid "" @@ -42,6 +45,12 @@ msgid "" "it as the first argument to :func:`.input`. A single file name is also " "allowed." msgstr "" +"Ce code traite une à une les lignes des fichiers de ``sys.argv[1:]``. Si " +"cette liste est vide (pas d'argument en ligne de commande), il lit l'entrée " +"standard. Le nom de fichier ``'-'`` est équivalent à l'entrée standard (les " +"arguments facultatifs *mode* et *openhook* sont ignorés dans ce cas). On " +"peut aussi passer la liste des fichiers comme argument à :func:`.input`, " +"voire un nom de fichier unique." #: ../Doc/library/fileinput.rst:30 msgid "" @@ -50,10 +59,17 @@ msgid "" "`FileInput`. If an I/O error occurs during opening or reading a file, :exc:" "`OSError` is raised." msgstr "" +"Par défaut, tous les fichiers sont ouverts en mode texte. On peut changer ce " +"comportement à l'aide du paramètre *mode* de la fonction :func:`.input` ou " +"du constructeur de :class:`FileInput`. Si une erreur d'entrée-sortie se " +"produit durant l'ouverture ou la lecture d'un fichier, l'exception :exc:" +"`OSError` est levée." #: ../Doc/library/fileinput.rst:35 msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." msgstr "" +":exc:`IOError` était levée auparavant, elle est devenue un alias de :exc:" +"`OSError`." #: ../Doc/library/fileinput.rst:38 msgid "" @@ -61,6 +77,10 @@ msgid "" "return no lines, except perhaps for interactive use, or if it has been " "explicitly reset (e.g. using ``sys.stdin.seek(0)``)." msgstr "" +"Si ``sys.stdin`` apparaît plus d'une fois dans la liste, toutes les lignes " +"sont consommées dès la première fois, sauf éventuellement en cas d'usage " +"interactif ou si le flux d'entrée standard a été modifié dans l'intervalle " +"(par exemple avec ``sys.stdin.seek(0)``)." #: ../Doc/library/fileinput.rst:42 msgid "" @@ -68,12 +88,18 @@ msgid "" "in the list of filenames is noticeable at all is when the last file opened " "is empty." msgstr "" +"Les fichiers vides sont ouverts et refermés immédiatement. Ils ne sont pas " +"détectables dans la liste des fichiers, sauf éventuellement dans le cas où " +"le dernier fichier est vide." #: ../Doc/library/fileinput.rst:46 msgid "" "Lines are returned with any newlines intact, which means that the last line " "in a file may not have one." msgstr "" +"Les caractères de saut de ligne sont préservés, donc toutes les lignes se " +"terminent par un saut de ligne, sauf éventuellement la dernière ligne d'un " +"fichier." #: ../Doc/library/fileinput.rst:49 msgid "" @@ -86,7 +112,7 @@ msgstr "" #: ../Doc/library/fileinput.rst:55 msgid "The following function is the primary interface of this module:" -msgstr "" +msgstr "La fonction suivante constitue l'interface principale du module :" #: ../Doc/library/fileinput.rst:60 msgid "" @@ -95,6 +121,11 @@ msgid "" "to use during iteration. The parameters to this function will be passed " "along to the constructor of the :class:`FileInput` class." msgstr "" +"Crée une instance de :class:`FileInput`, qui devient l'état global pour " +"toutes les fonctions du module. Elle est également renvoyée afin que " +"l'utilisateur puisse la parcourir comme un objet itérable. Tous les " +"paramètres de cette fonction sont transmis au constructeur de :class:" +"`FileInput`." #: ../Doc/library/fileinput.rst:65 msgid "" @@ -102,32 +133,44 @@ msgid "" "keyword:`with` statement. In this example, *input* is closed after the :" "keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" +"Les instances de :class:`FileInput` peuvent s'utiliser comme gestionnaires " +"de contexte, avec l'instruction :keyword:`with`. Dans le code suivant, " +"*input* est fermé lorsque le bloc :keyword:`!with` se termine, y compris si " +"une exception l'a interrompu." #: ../Doc/library/fileinput.rst:73 ../Doc/library/fileinput.rst:166 msgid "Can be used as a context manager." -msgstr "" +msgstr "prise en charge du protocole de gestionnaire de contexte." #: ../Doc/library/fileinput.rst:76 msgid "The keyword parameters *mode* and *openhook* are now keyword-only." -msgstr "" +msgstr "les paramètres *mode* et *openhook* doivent être nommés." #: ../Doc/library/fileinput.rst:80 msgid "" "The following functions use the global state created by :func:`fileinput." "input`; if there is no active state, :exc:`RuntimeError` is raised." msgstr "" +"Toutes les fonctions suivantes font appel à l'état global du module mis en " +"place par :func:`fileinput.input`. L'absence de cet état déclenche " +"l'exception :exc:`RuntimeError`." #: ../Doc/library/fileinput.rst:86 msgid "" "Return the name of the file currently being read. Before the first line has " "been read, returns ``None``." msgstr "" +"Renvoie le nom du fichier en train d'être lu, ou ``None`` avant la lecture " +"de la toute première ligne." #: ../Doc/library/fileinput.rst:92 msgid "" "Return the integer \"file descriptor\" for the current file. When no file is " "opened (before the first line and between files), returns ``-1``." msgstr "" +"Renvoie le descripteur de fichier (sous forme d'entier) utilisé pour lire le " +"fichier courant. Si aucun fichier n'est ouvert (avant la première ligne et " +"entre les fichiers), le résultat est ``-1``." #: ../Doc/library/fileinput.rst:98 msgid "" @@ -135,6 +178,10 @@ msgid "" "Before the first line has been read, returns ``0``. After the last line of " "the last file has been read, returns the line number of that line." msgstr "" +"Renvoie le numéro de la ligne qui vient d'être lue, en commençant par la " +"première ligne du premier fichier. Avant cette toute première ligne, renvoie " +"``0``. Après la dernière ligne du dernier fichier, renvoie le numéro de " +"cette ligne." #: ../Doc/library/fileinput.rst:105 msgid "" @@ -142,18 +189,25 @@ msgid "" "read, returns ``0``. After the last line of the last file has been read, " "returns the line number of that line within the file." msgstr "" +"Renvoie le numéro de ligne relatif au fichier courant. Avant la toute " +"première ligne, renvoie ``0``. Après la toute dernière ligne, renvoie le " +"numéro de cette ligne par rapport à son fichier source." #: ../Doc/library/fileinput.rst:112 msgid "" -"Returns true if the line just read is the first line of its file, otherwise " -"returns false." +"Return ``True`` if the line just read is the first line of its file, " +"otherwise return ``False``." msgstr "" +"Renvoie ``True`` ou ``False`` selon que la ligne qui vient d'être lue est la " +"première du fichier." #: ../Doc/library/fileinput.rst:118 msgid "" -"Returns true if the last line was read from ``sys.stdin``, otherwise returns " -"false." +"Return ``True`` if the last line was read from ``sys.stdin``, otherwise " +"return ``False``." msgstr "" +"``True`` ou ``False`` selon que la dernière ligne lue provenait de ``sys." +"stdin`` ou non." #: ../Doc/library/fileinput.rst:124 msgid "" @@ -165,16 +219,27 @@ msgid "" "file. After the last line of the last file has been read, this function has " "no effect." msgstr "" +"Ferme le fichier courant et laisse la lecture se poursuivre au début du " +"suivant (ou se terminer si c'était le dernier fichier ; dans ce cas cette " +"fonction ne fait rien). Les lignes court-circuitées ne comptent pas dans les " +"numéros des lignes des fichiers suivants. Le nom du fichier courant n'est " +"pas modifié immédiatement, mais seulement après que la première ligne du " +"fichier suivant a été lue. Cette fonction n'a pas d'effet avant la lecture " +"de la première ligne (elle ne peut pas sauter le premier fichier)." #: ../Doc/library/fileinput.rst:134 msgid "Close the sequence." msgstr "" +"Ferme le fichier courant et termine la lecture en sautant les fichiers " +"suivants." #: ../Doc/library/fileinput.rst:136 msgid "" "The class which implements the sequence behavior provided by the module is " "available for subclassing as well:" msgstr "" +"La classe qui implémente ce comportement du module est publique. On peut en " +"créer des classes filles." #: ../Doc/library/fileinput.rst:142 msgid "" @@ -200,6 +265,10 @@ msgid "" "*filename* and *mode*, and returns an accordingly opened file-like object. " "You cannot use *inplace* and *openhook* together." msgstr "" +"S'il est fourni, l'argument *openhook* est une fonction. Elle est appelée " +"avec les paramètres *filename* et *mode*, et renvoie un objet fichier-" +"compatible ouvert selon *mode*. Notez que *openhook* et *inplace* sont " +"mutuellement exclusifs." #: ../Doc/library/fileinput.rst:158 msgid "" @@ -207,18 +276,22 @@ msgid "" "keyword:`with` statement. In this example, *input* is closed after the :" "keyword:`!with` statement is exited, even if an exception occurs::" msgstr "" +"Les objets :class:`FileInput` peuvent aussi fonctionner comme gestionnaires " +"de contexte dans un bloc :keyword:`with`. Dans l'exemple suivant, *input* " +"est fermé à la fin du bloc :keyword:`!with`, même arrêté par une exception." #: ../Doc/library/fileinput.rst:169 msgid "The ``'rU'`` and ``'U'`` modes." -msgstr "" +msgstr "modes ``'rU'`` et ``'U'``." #: ../Doc/library/fileinput.rst:172 msgid "Support for :meth:`__getitem__` method is deprecated." -msgstr "" +msgstr "accès à un indice avec :meth:`__getitem__`." #: ../Doc/library/fileinput.rst:175 msgid "The keyword parameter *mode* and *openhook* are now keyword-only." msgstr "" +"les paramètres *mode* et *openhook* doivent impérativement être nommés." #: ../Doc/library/fileinput.rst:180 msgid "" @@ -233,10 +306,22 @@ msgid "" "extension is ``'.bak'`` and it is deleted when the output file is closed. " "In-place filtering is disabled when standard input is read." msgstr "" +"**Filtrage sur place optionnel :** si ``inplace=True`` est passé à :func:" +"`fileinput.input` ou au constructeur de :class:`FileInput`, chaque fichier " +"d'entrée est déplacé vers une sauvegarde et la sortie standard est redirigée " +"vers le fichier lui-même, ce qui permet d'écrire des filtres qui modifient " +"directement les fichiers existants. Si le paramètre *backup* est fourni, il " +"donne l'extension des fichiers de sauvegarde. Dans ce cas, la sauvegarde est " +"conservée après l'opération. Par défaut, les fichiers de sauvegarde ont " +"l'extension ``'.bak'`` et sont supprimés dès que le fichier de sortie est " +"fermé. Si un fichier existe avec le même nom que la sauvegarde, il est " +"écrasé. Le filtrage sur place ne fait rien pour l'entrée standard." #: ../Doc/library/fileinput.rst:192 msgid "The two following opening hooks are provided by this module:" msgstr "" +"Les deux fonctions suivantes fournissent des valeurs prédéfinies pour " +"*openhook*." #: ../Doc/library/fileinput.rst:196 msgid "" @@ -245,6 +330,11 @@ msgid "" "modules. If the filename extension is not ``'.gz'`` or ``'.bz2'``, the file " "is opened normally (ie, using :func:`open` without any decompression)." msgstr "" +"Ouvre de façon transparente les fichiers compressés avec gzip ou bzip2, à " +"l'aide des modules :mod:`gzip` et :mod:`bz2`. Les fichiers compressés sont " +"reconnus aux extensions ``'.gz'`` et ``'.bz2'``. Tous les fichiers qui n'ont " +"pas l'une de ces deux extensions sont ouverts normalement (avec :func:" +"`open`, sans décompression)." #: ../Doc/library/fileinput.rst:201 msgid "" @@ -257,13 +347,18 @@ msgid "" "Returns a hook which opens each file with :func:`open`, using the given " "*encoding* and *errors* to read the file." msgstr "" +"Renvoie une fonction qui ouvre les fichiers en passant à :func:`open` les " +"arguments *encoding* et *errors*. Le résultat peut être exploité à travers " +"le point d'entrée automatique *openhook*." #: ../Doc/library/fileinput.rst:209 msgid "" "Usage example: ``fi = fileinput.FileInput(openhook=fileinput." "hook_encoded(\"utf-8\", \"surrogateescape\"))``" msgstr "" +"Exemple d'utilisation : ``fi = fileinput.FileInput(openhook=fileinput." +"hook_encoded(\"utf-8\", \"surrogateescape\"))``." #: ../Doc/library/fileinput.rst:213 msgid "Added the optional *errors* parameter." -msgstr "" +msgstr "ajout du paramètre facultatif *errors*." diff --git a/library/filesys.po b/library/filesys.po index 22b36309b1..eab9825ea2 100644 --- a/library/filesys.po +++ b/library/filesys.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2018-09-28 11:33+0200\n" diff --git a/library/fnmatch.po b/library/fnmatch.po index 6ae9a020f9..c4aa823394 100644 --- a/library/fnmatch.po +++ b/library/fnmatch.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2018-11-29 16:06+0100\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2019-02-21 17:34+0100\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/fnmatch.rst:2 +#: library/fnmatch.rst:2 msgid ":mod:`fnmatch` --- Unix filename pattern matching" msgstr ":mod:`fnmatch` — Filtrage par motif des noms de fichiers Unix" -#: ../Doc/library/fnmatch.rst:7 +#: library/fnmatch.rst:7 msgid "**Source code:** :source:`Lib/fnmatch.py`" msgstr "**Code source :** :source:`Lib/fnmatch.py`" -#: ../Doc/library/fnmatch.rst:15 +#: library/fnmatch.rst:15 msgid "" "This module provides support for Unix shell-style wildcards, which are *not* " "the same as regular expressions (which are documented in the :mod:`re` " @@ -34,47 +34,47 @@ msgstr "" "régulières (documentés dans le module :mod:`re`). Les caractères spéciaux " "utilisés comme caractères de remplacement de style shell sont :" -#: ../Doc/library/fnmatch.rst:27 +#: library/fnmatch.rst:27 msgid "Pattern" msgstr "Motif" -#: ../Doc/library/fnmatch.rst:27 +#: library/fnmatch.rst:27 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/fnmatch.rst:29 +#: library/fnmatch.rst:29 msgid "``*``" msgstr "``*``" -#: ../Doc/library/fnmatch.rst:29 +#: library/fnmatch.rst:29 msgid "matches everything" msgstr "reconnaît n'importe quoi" -#: ../Doc/library/fnmatch.rst:31 +#: library/fnmatch.rst:31 msgid "``?``" msgstr "``?``" -#: ../Doc/library/fnmatch.rst:31 +#: library/fnmatch.rst:31 msgid "matches any single character" msgstr "reconnaît n'importe quel caractère unique" -#: ../Doc/library/fnmatch.rst:33 +#: library/fnmatch.rst:33 msgid "``[seq]``" msgstr "``[seq]``" -#: ../Doc/library/fnmatch.rst:33 +#: library/fnmatch.rst:33 msgid "matches any character in *seq*" msgstr "reconnaît n'importe quel caractère dans *seq*" -#: ../Doc/library/fnmatch.rst:35 +#: library/fnmatch.rst:35 msgid "``[!seq]``" msgstr "``[!seq]``" -#: ../Doc/library/fnmatch.rst:35 +#: library/fnmatch.rst:35 msgid "matches any character not in *seq*" msgstr "reconnaît n'importe quel caractère qui n'est pas dans *seq*" -#: ../Doc/library/fnmatch.rst:38 +#: library/fnmatch.rst:38 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``'[?]'`` matches the character ``'?'``." @@ -82,7 +82,7 @@ msgstr "" "Pour une correspondance littérale, il faut entourer le métacaractère par des " "crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." -#: ../Doc/library/fnmatch.rst:43 +#: library/fnmatch.rst:43 msgid "" "Note that the filename separator (``'/'`` on Unix) is *not* special to this " "module. See module :mod:`glob` for pathname expansion (:mod:`glob` uses :" @@ -97,7 +97,7 @@ msgstr "" "commençant par un point ne sont pas traités de manière spéciale par ce " "module, et sont reconnus par les motifs ``*`` et ``?``." -#: ../Doc/library/fnmatch.rst:52 +#: library/fnmatch.rst:52 msgid "" "Test whether the *filename* string matches the *pattern* string, returning :" "const:`True` or :const:`False`. Both parameters are case-normalized using :" @@ -111,7 +111,7 @@ msgstr "" "`fnmatchcase` peut être utilisée pour réaliser une comparaison sensible à la " "casse, indépendamment du système d'exploitation." -#: ../Doc/library/fnmatch.rst:58 +#: library/fnmatch.rst:58 msgid "" "This example will print all file names in the current directory with the " "extension ``.txt``::" @@ -119,7 +119,7 @@ msgstr "" "Cet exemple affiche tous les noms de fichiers du répertoire courant ayant " "pour extension ``.txt`` ::" -#: ../Doc/library/fnmatch.rst:71 +#: library/fnmatch.rst:71 msgid "" "Test whether *filename* matches *pattern*, returning :const:`True` or :const:" "`False`; the comparison is case-sensitive and does not apply :func:`os.path." @@ -129,17 +129,18 @@ msgstr "" "`True` ou :const:`False` ; la comparaison est sensible à la casse et " "n'utilise pas la fonction :func:`os.path.normcase`." -#: ../Doc/library/fnmatch.rst:78 +#: library/fnmatch.rst:78 +#, fuzzy msgid "" -"Return the subset of the list of *names* that match *pattern*. It is the " -"same as ``[n for n in names if fnmatch(n, pattern)]``, but implemented more " -"efficiently." +"Construct a list from those elements of the iterable *names* that match " +"*pattern*. It is the same as ``[n for n in names if fnmatch(n, pattern)]``, " +"but implemented more efficiently." msgstr "" "Renvoie un sous-ensemble de la liste *names* correspondant au motif " "*pattern*. Similaire à ``[n for n in names if fnmatch(n, pattern)]``, mais " "implémenté plus efficacement." -#: ../Doc/library/fnmatch.rst:84 +#: library/fnmatch.rst:84 msgid "" "Return the shell-style *pattern* converted to a regular expression for using " "with :func:`re.match`." @@ -147,14 +148,14 @@ msgstr "" "Renvoie le motif *pattern*, de style shell, converti en une expression " "régulière utilisable avec :func:`re.match`." -#: ../Doc/library/fnmatch.rst:87 +#: library/fnmatch.rst:87 msgid "Example:" msgstr "Exemple :" -#: ../Doc/library/fnmatch.rst:101 +#: library/fnmatch.rst:101 msgid "Module :mod:`glob`" msgstr "Module :mod:`glob`" -#: ../Doc/library/fnmatch.rst:102 +#: library/fnmatch.rst:102 msgid "Unix shell-style path expansion." msgstr "Recherche de chemins de style shell Unix" diff --git a/library/formatter.po b/library/formatter.po index d8d91cb8ca..0ce8e72384 100644 --- a/library/formatter.po +++ b/library/formatter.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/library/fractions.po b/library/fractions.po index 7b4163d2fb..3498ba1671 100644 --- a/library/fractions.po +++ b/library/fractions.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2018-09-28 11:32+0200\n" @@ -122,6 +122,8 @@ msgid "" "Return a tuple of two integers, whose ratio is equal to the Fraction and " "with a positive denominator." msgstr "" +"Renvoie un *n*-uplet de deux entiers, dont le quotient est égal à la " +"fraction et dont le dénominateur est positif." #: ../Doc/library/fractions.rst:106 msgid "" diff --git a/library/frameworks.po b/library/frameworks.po index 57ffc85b9c..dcbab08add 100644 --- a/library/frameworks.po +++ b/library/frameworks.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2017-11-07 22:57+0100\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/frameworks.rst:5 msgid "Program Frameworks" -msgstr "*Frameworks* d'applications" +msgstr "Cadriciels d'applications" #: ../Doc/library/frameworks.rst:7 msgid "" @@ -24,9 +24,10 @@ msgid "" "dictate the structure of your program. Currently the modules described " "here are all oriented toward writing command-line interfaces." msgstr "" -"Les modules décrits dans ce chapitre sont des *frameworks* qui encadreront " -"la structure de vos programmes. Actuellement tous les modules décrits ici " -"sont destinés à écrire des interfaces en ligne de commande." +"Les modules décrits dans ce chapitre sont des cadriciels (*frameworks*, en " +"anglais) qui encadreront la structure de vos programmes. Actuellement tous " +"les modules décrits ici sont destinés à écrire des interfaces en ligne de " +"commande." #: ../Doc/library/frameworks.rst:11 msgid "The full list of modules described in this chapter is:" diff --git a/library/ftplib.po b/library/ftplib.po index 11ee9c58e4..04472fb9b1 100644 --- a/library/ftplib.po +++ b/library/ftplib.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 17:54+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" @@ -16,7 +16,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:2 msgid ":mod:`ftplib` --- FTP protocol client" -msgstr "" +msgstr ":mod:`ftplib` — Le protocole client FTP" #: ../Doc/library/ftplib.rst:7 msgid "**Source code:** :source:`Lib/ftplib.py`" @@ -34,7 +34,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:22 msgid "Here's a sample session using the :mod:`ftplib` module::" -msgstr "" +msgstr "Voici un exemple de session utilisant le module :mod:`ftplib` ::" #: ../Doc/library/ftplib.rst:42 msgid "The module defines the following items:" @@ -55,10 +55,12 @@ msgstr "" #: ../Doc/library/ftplib.rst:55 msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" msgstr "" +"La classe :class:`FTP` peut s'utiliser avec l'instruction :keyword:`with`, " +"p. ex.:" #: ../Doc/library/ftplib.rst:69 msgid "Support for the :keyword:`with` statement was added." -msgstr "" +msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." #: ../Doc/library/ftplib.rst:72 ../Doc/library/ftplib.rst:93 #: ../Doc/library/ftplib.rst:196 @@ -99,23 +101,27 @@ msgstr "" #: ../Doc/library/ftplib.rst:108 msgid "Here's a sample session using the :class:`FTP_TLS` class::" -msgstr "" +msgstr "Voici un exemple de session utilisant la classe :class:`FTP_TLS` ::" #: ../Doc/library/ftplib.rst:121 msgid "Exception raised when an unexpected reply is received from the server." -msgstr "" +msgstr "Exception levée lorsqu'une réponse inattendue est reçue du serveur." #: ../Doc/library/ftplib.rst:126 msgid "" "Exception raised when an error code signifying a temporary error (response " "codes in the range 400--499) is received." msgstr "" +"Exception levée lorsqu'un code d'erreur signifiant une erreur temporaire " +"(code de réponse dans l'intervalle 400-499) est reçu." #: ../Doc/library/ftplib.rst:132 msgid "" "Exception raised when an error code signifying a permanent error (response " "codes in the range 500--599) is received." msgstr "" +"Exception levée lorsqu'un code d'erreur signifiant une erreur permanente " +"(code de réponse dans l'intervalle 500-599) est reçu." #: ../Doc/library/ftplib.rst:138 msgid "" @@ -123,6 +129,9 @@ msgid "" "the response specifications of the File Transfer Protocol, i.e. begin with a " "digit in the range 1--5." msgstr "" +"Exception levée lorsqu'une réponse reçue du serveur ne correspond pas aux à " +"la spécification de File Transfer Protocol, c.-à-d. qu'elle doit commencer " +"par un chiffre dans l'intervalle 1-5." #: ../Doc/library/ftplib.rst:145 msgid "" @@ -158,6 +167,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:168 msgid ":class:`FTP` instances have the following methods:" msgstr "" +"Les instances de la classe :class:`FTP` possèdent les méthodes suivantes :" #: ../Doc/library/ftplib.rst:173 msgid "" @@ -335,10 +345,17 @@ msgid "" "directory). Multiple arguments can be used to pass non-standard options to " "the ``NLST`` command." msgstr "" +"Renvoie une liste de noms de fichiers comme celle que renvoie la commande " +"``NLST``. Le paramètre optionnel *argument* est une liste de dossiers (la " +"valeur par défaut est le répertoire courant du serveur). Plusieurs " +"paramètres peuvent être utilisés pour passer des paramètres non standards à " +"la commande ``NLST``." #: ../Doc/library/ftplib.rst:343 ../Doc/library/ftplib.rst:355 msgid "If your server supports the command, :meth:`mlsd` offers a better API." msgstr "" +"La commande :meth:`mlsd` offre une meilleure API si votre serveur sait la " +"gérer." #: ../Doc/library/ftplib.rst:348 msgid "" @@ -353,6 +370,7 @@ msgstr "" #: ../Doc/library/ftplib.rst:360 msgid "Rename file *fromname* on the server to *toname*." msgstr "" +"Renomme le fichier portant le nom *fromname* en *toname* sur le serveur." #: ../Doc/library/ftplib.rst:365 msgid "" @@ -367,15 +385,15 @@ msgstr "" #: ../Doc/library/ftplib.rst:377 msgid "Create a new directory on the server." -msgstr "" +msgstr "Crée un nouveau dossier sur le serveur." #: ../Doc/library/ftplib.rst:382 msgid "Return the pathname of the current directory on the server." -msgstr "" +msgstr "Renvoie le chemin d'accès au répertoire courant sur le serveur." #: ../Doc/library/ftplib.rst:387 msgid "Remove the directory named *dirname* on the server." -msgstr "" +msgstr "Supprime le dossier portant le nom *dirname* sur le serveur." #: ../Doc/library/ftplib.rst:392 msgid "" @@ -438,8 +456,8 @@ msgstr "" #: ../Doc/library/ftplib.rst:445 msgid "Set up secure data connection." -msgstr "" +msgstr "Établit une connexion de données sécurisée." #: ../Doc/library/ftplib.rst:449 msgid "Set up clear text data connection." -msgstr "" +msgstr "Établit une connexion de données non sécurisées." diff --git a/library/functional.po b/library/functional.po index 5355c961a8..4351ebc248 100644 --- a/library/functional.po +++ b/library/functional.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-02-15 00:43+0100\n" diff --git a/library/functions.po b/library/functions.po index c0d11600ca..2d2a60743f 100644 --- a/library/functions.po +++ b/library/functions.po @@ -3,23 +3,24 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" -"PO-Revision-Date: 2019-06-01 23:07+0200\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" +"PO-Revision-Date: 2023-03-23 10:14+0100\n" +"Last-Translator: Loc Cosnier \n" +"Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"X-Generator: Gtranslator 3.36.0\n" -#: ../Doc/library/functions.rst:5 ../Doc/library/functions.rst:11 +#: library/functions.rst:11 msgid "Built-in Functions" msgstr "Fonctions natives" -#: ../Doc/library/functions.rst:7 +#: library/functions.rst:7 msgid "" "The Python interpreter has a number of functions and types built into it " "that are always available. They are listed here in alphabetical order." @@ -27,325 +28,324 @@ msgstr "" "L'interpréteur Python propose quelques fonctions et types natifs qui sont " "toujours disponibles. Ils sont listés ici par ordre alphabétique." -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid ":func:`abs`" msgstr ":func:`abs`" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid ":func:`delattr`" msgstr ":func:`delattr`" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid ":func:`hash`" msgstr ":func:`hash`" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid "|func-memoryview|_" msgstr "|func-memoryview|_" -#: ../Doc/library/functions.rst:13 +#: library/functions.rst:13 msgid "|func-set|_" msgstr "|func-set|_" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`all`" msgstr ":func:`all`" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid "|func-dict|_" msgstr "|func-dict|_" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`help`" msgstr ":func:`help`" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`min`" msgstr ":func:`min`" -#: ../Doc/library/functions.rst:14 +#: library/functions.rst:14 msgid ":func:`setattr`" msgstr ":func:`setattr`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`any`" msgstr ":func:`any`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`dir`" msgstr ":func:`dir`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`hex`" msgstr ":func:`hex`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`next`" msgstr ":func:`next`" -#: ../Doc/library/functions.rst:15 +#: library/functions.rst:15 msgid ":func:`slice`" msgstr ":func:`slice`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`ascii`" msgstr ":func:`ascii`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`divmod`" msgstr ":func:`divmod`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`id`" msgstr ":func:`id`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`object`" msgstr ":func:`object`" -#: ../Doc/library/functions.rst:16 +#: library/functions.rst:16 msgid ":func:`sorted`" msgstr ":func:`sorted`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`bin`" msgstr ":func:`bin`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`enumerate`" msgstr ":func:`enumerate`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`input`" msgstr ":func:`input`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`oct`" msgstr ":func:`oct`" -#: ../Doc/library/functions.rst:17 +#: library/functions.rst:17 msgid ":func:`staticmethod`" msgstr ":func:`staticmethod`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`bool`" msgstr ":func:`bool`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`eval`" msgstr ":func:`eval`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`int`" msgstr ":func:`int`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid ":func:`open`" msgstr ":func:`open`" -#: ../Doc/library/functions.rst:18 +#: library/functions.rst:18 msgid "|func-str|_" msgstr "|func-str|_" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`breakpoint`" msgstr ":func:`breakpoint`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`exec`" msgstr ":func:`exec`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`isinstance`" msgstr ":func:`isinstance`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`ord`" msgstr ":func:`ord`" -#: ../Doc/library/functions.rst:19 +#: library/functions.rst:19 msgid ":func:`sum`" msgstr ":func:`sum`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid "|func-bytearray|_" msgstr "|func-bytearray|_" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`filter`" msgstr ":func:`filter`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`issubclass`" msgstr ":func:`issubclass`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`pow`" msgstr ":func:`pow`" -#: ../Doc/library/functions.rst:20 +#: library/functions.rst:20 msgid ":func:`super`" msgstr ":func:`super`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid "|func-bytes|_" msgstr "|func-bytes|_" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid ":func:`float`" msgstr ":func:`float`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid ":func:`iter`" msgstr ":func:`iter`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid ":func:`print`" msgstr ":func:`print`" -#: ../Doc/library/functions.rst:21 +#: library/functions.rst:21 msgid "|func-tuple|_" msgstr "|func-tuple|_" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`callable`" msgstr ":func:`callable`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`format`" msgstr ":func:`format`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`len`" msgstr ":func:`len`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`property`" msgstr ":func:`property`" -#: ../Doc/library/functions.rst:22 +#: library/functions.rst:22 msgid ":func:`type`" msgstr ":func:`type`" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid ":func:`chr`" msgstr ":func:`chr`" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid "|func-frozenset|_" msgstr "|func-frozenset|_" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid "|func-list|_" msgstr "|func-list|_" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid "|func-range|_" msgstr "|func-range|_" -#: ../Doc/library/functions.rst:23 +#: library/functions.rst:23 msgid ":func:`vars`" msgstr ":func:`vars`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`classmethod`" msgstr ":func:`classmethod`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`getattr`" msgstr ":func:`getattr`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`locals`" msgstr ":func:`locals`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`repr`" msgstr ":func:`repr`" -#: ../Doc/library/functions.rst:24 +#: library/functions.rst:24 msgid ":func:`zip`" msgstr ":func:`zip`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`compile`" msgstr ":func:`compile`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`globals`" msgstr ":func:`globals`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`map`" msgstr ":func:`map`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`reversed`" msgstr ":func:`reversed`" -#: ../Doc/library/functions.rst:25 +#: library/functions.rst:25 msgid ":func:`__import__`" msgstr ":func:`__import__`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`complex`" msgstr ":func:`complex`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`hasattr`" msgstr ":func:`hasattr`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`max`" msgstr ":func:`max`" -#: ../Doc/library/functions.rst:26 +#: library/functions.rst:26 msgid ":func:`round`" msgstr ":func:`round`" -#: ../Doc/library/functions.rst:45 -#, fuzzy +#: library/functions.rst:45 msgid "" "Return the absolute value of a number. The argument may be an integer or a " "floating point number. If the argument is a complex number, its magnitude " "is returned. If *x* defines :meth:`__abs__`, ``abs(x)`` returns ``x." "__abs__()``." msgstr "" -"Donne la valeur absolue d'un nombre. L'argument peut être un nombre entier " +"Renvoie la valeur absolue d'un nombre. L'argument peut être un nombre entier " "ou un nombre à virgule flottante. Si l'argument est un nombre complexe, son " -"`module `_ est " -"donné." +"module est renvoyé. Si *x* définit :meth:`__abs__`, ``abs(x)`` renvoie ``x." +"__abs__()``." -#: ../Doc/library/functions.rst:53 +#: library/functions.rst:53 msgid "" "Return ``True`` if all elements of the *iterable* are true (or if the " "iterable is empty). Equivalent to::" msgstr "" -"Donne ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " +"Renvoie ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " "vide), équivaut à ::" -#: ../Doc/library/functions.rst:65 +#: library/functions.rst:65 msgid "" "Return ``True`` if any element of the *iterable* is true. If the iterable " "is empty, return ``False``. Equivalent to::" msgstr "" -"Donne ``True`` si au moins un élément de *iterable* est vrai. Faux est aussi " -"donné dans le cas où *iterable* est vide, équivaut à ::" +"Renvoie ``True`` si au moins un élément de *iterable* est vrai. Faux est " +"renvoyé dans le cas où *iterable* est vide, équivaut à ::" -#: ../Doc/library/functions.rst:77 +#: library/functions.rst:77 msgid "" "As :func:`repr`, return a string containing a printable representation of an " "object, but escape the non-ASCII characters in the string returned by :func:" "`repr` using ``\\x``, ``\\u`` or ``\\U`` escapes. This generates a string " "similar to that returned by :func:`repr` in Python 2." msgstr "" -"Donne, tout comme :func:`repr`, une chaîne contenant une représentation " -"affichable d'un objet, en transformant les caractères non ASCII donnés par :" -"func:`repr` en utilisant des séquences d'échappement ``\\x``, ``\\u`` ou ``" -"\\U``. Cela génère une chaîne similaire à ce que renvoie :func:`repr` dans " -"Python 2." +"Renvoie, tout comme :func:`repr`, une chaîne contenant une représentation " +"affichable d'un objet, en transformant les caractères non ASCII renvoyés " +"par :func:`repr` en utilisant des séquences d'échappement ``\\x``, ``\\u`` " +"ou ``\\U``. Cela génère une chaîne similaire à ce que renvoie :func:`repr` " +"dans Python 2." -#: ../Doc/library/functions.rst:85 +#: library/functions.rst:85 msgid "" "Convert an integer number to a binary string prefixed with \"0b\". The " "result is a valid Python expression. If *x* is not a Python :class:`int` " @@ -355,21 +355,20 @@ msgstr "" "Convertit un nombre entier en binaire dans une chaîne avec le préfixe " "``0b``. Le résultat est une expression Python valide. Si *x* n'est pas un :" "class:`int`, il doit définir une méthode :meth:`__index__` donnant un nombre " -"entier, voici quelques exemples :" +"entier, voici quelques exemples :" -#: ../Doc/library/functions.rst:95 +#: library/functions.rst:95 msgid "" "If prefix \"0b\" is desired or not, you can use either of the following ways." msgstr "" "Que le préfixe ``0b`` soit souhaité ou non, vous pouvez utiliser les moyens " "suivants." -#: ../Doc/library/functions.rst:102 ../Doc/library/functions.rst:750 -#: ../Doc/library/functions.rst:1030 +#: library/functions.rst:751 library/functions.rst:1041 msgid "See also :func:`format` for more information." msgstr "Voir aussi :func:`format` pour plus d'information." -#: ../Doc/library/functions.rst:107 +#: library/functions.rst:107 msgid "" "Return a Boolean value, i.e. one of ``True`` or ``False``. *x* is converted " "using the standard :ref:`truth testing procedure `. If *x* is false " @@ -378,20 +377,19 @@ msgid "" "It cannot be subclassed further. Its only instances are ``False`` and " "``True`` (see :ref:`bltin-boolean-values`)." msgstr "" -"Donne une valeur booléenne, c'est à dire soit ``True``, soit ``False``. *x* " -"est converti en utilisant la :ref:`procédure standard d'évaluation de valeur " -"de vérité`. Si *x* est faux, ou omis, elle donne ``False``, sinon, " -"elle donne ``True``. La classe :class:`bool` hérite de la classe :class:" -"`int` (voir :ref:`typesnumeric`). Il n'est pas possible d'en hériter. Ses " -"seules instances sont ``False`` et ``True`` (voir :ref:`bltin-boolean-" +"Renvoie une valeur booléenne, c'est-à-dire soit ``True``, soit ``False``. " +"*x* est converti en utilisant la :ref:`procédure standard d'évaluation de " +"valeur de vérité`. Si *x* est faux, ou omis, elle renvoie ``False``, " +"sinon, elle renvoie ``True``. La classe :class:`bool` hérite de la classe :" +"class:`int` (voir :ref:`typesnumeric`). Il n'est pas possible d'en hériter. " +"Ses seules instances sont ``False`` et ``True`` (voir :ref:`bltin-boolean-" "values`)." -#: ../Doc/library/functions.rst:116 ../Doc/library/functions.rst:625 -#: ../Doc/library/functions.rst:832 +#: library/functions.rst:626 library/functions.rst:835 msgid "*x* is now a positional-only parameter." msgstr "*x* est désormais un argument exclusivement optionnel." -#: ../Doc/library/functions.rst:121 +#: library/functions.rst:121 msgid "" "This function drops you into the debugger at the call site. Specifically, " "it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " @@ -403,43 +401,45 @@ msgid "" "you to drop into the debugger of choice." msgstr "" "Cette fonction vous place dans le débogueur lorsqu'elle est appelée. Plus " -"précisément, elle appelle :func:`sys.breakpointhook`, en lui passant les " -"arguments ``args`` et ``kws``. Par défaut, ``sys.breakpointhook()`` " -"appelle :func:`pdb.set_trace()` qui n'attend aucun argument. Dans ce cas, " -"c'est purement une fonction de commodité donc vous n'avez pas à importer " +"précisément, elle appelle :func:`sys.breakpointhook`, en lui passant les " +"arguments ``args`` et ``kws``. Par défaut, ``sys.breakpointhook()`` appelle :" +"func:`pdb.set_trace()` qui n'attend aucun argument. Dans ce cas, c'est " +"purement une fonction de commodité donc vous n'avez pas à importer " "explicitement :mod:`pdb` ou à taper plus de code pour entrer dans le " -"débogueur. Cependant, :func:`sys.breakpointhook` peut-être paramétré pour " +"débogueur. Cependant, :func:`sys.breakpointhook` peut-être paramétré pour " "une autre fonction et :func:`breakpoint` l'appellera automatiquement, vous " "permettant ainsi de basculer dans le débogueur de votre choix." -#: ../Doc/library/functions.rst:132 +#: library/functions.rst:132 msgid "" "Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " "argument ``breakpointhook``." msgstr "" +"Lève un :ref:`auditing event ` ``builtins.breakpoint`` avec " +"l'argument ``breakpointhook``." -#: ../Doc/library/functions.rst:139 +#: library/functions.rst:139 msgid "" "Return a new array of bytes. The :class:`bytearray` class is a mutable " "sequence of integers in the range 0 <= x < 256. It has most of the usual " "methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " "as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." msgstr "" -"Donne un nouveau tableau d'octets. La classe :class:`bytearray` est une " -"séquence muable de nombre entiers dans l'intervalle 0 <= x < 256. Il possède " -"la plupart des méthodes des séquences variables, décrites dans :ref:" +"Renvoie un nouveau tableau d'octets. La classe :class:`bytearray` est une " +"séquence muable de nombres entiers dans l'intervalle 0 <= x < 256. Il " +"possède la plupart des méthodes des séquences variables, décrites dans :ref:" "`typesseq-mutable`, ainsi que la plupart des méthodes de la classe :class:" "`bytes`, voir :ref:`bytes-methods`." -#: ../Doc/library/functions.rst:144 +#: library/functions.rst:144 msgid "" "The optional *source* parameter can be used to initialize the array in a few " "different ways:" msgstr "" "Le paramètre optionnel *source* peut être utilisé pour initialiser l'*array* " -"de quelques manières différentes :" +"de quelques manières différentes :" -#: ../Doc/library/functions.rst:147 +#: library/functions.rst:147 msgid "" "If it is a *string*, you must also give the *encoding* (and optionally, " "*errors*) parameters; :func:`bytearray` then converts the string to bytes " @@ -449,7 +449,7 @@ msgstr "" "l'encodage (et éventuellement *errors*). La fonction :func:`bytearray` " "convertit ensuite la chaîne en *bytes* via la méthode :meth:`str.encode`." -#: ../Doc/library/functions.rst:151 +#: library/functions.rst:151 msgid "" "If it is an *integer*, the array will have that size and will be initialized " "with null bytes." @@ -457,15 +457,16 @@ msgstr "" "Si c'est un *entier*, l'*array* aura cette taille et sera initialisé de " "*null bytes*." -#: ../Doc/library/functions.rst:154 +#: library/functions.rst:154 msgid "" -"If it is an object conforming to the *buffer* interface, a read-only buffer " -"of the object will be used to initialize the bytes array." +"If it is an object conforming to the :ref:`buffer interface " +"`, a read-only buffer of the object will be used to " +"initialize the bytes array." msgstr "" -"Si c'est un objet conforme à l'interface *buffer*, un *buffer* en lecture " -"seule de l'objet sera utilisé pour initialiser l'*array*." +"si c'est un objet conforme à :ref:`l'interface tampon `, un " +"tampon en lecture seule de l'objet est utilisé pour initialiser le tableau ;" -#: ../Doc/library/functions.rst:157 +#: library/functions.rst:157 msgid "" "If it is an *iterable*, it must be an iterable of integers in the range ``0 " "<= x < 256``, which are used as the initial contents of the array." @@ -474,68 +475,68 @@ msgstr "" "l'intervalle ``0 <= x < 256``, qui seront utilisés pour initialiser le " "contenu de l'*array*." -#: ../Doc/library/functions.rst:160 +#: library/functions.rst:160 msgid "Without an argument, an array of size 0 is created." msgstr "Sans argument, un *array* de taille vide est crée." -#: ../Doc/library/functions.rst:162 +#: library/functions.rst:162 msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." msgstr "Voir :ref:`binaryseq` et :ref:`typebytearray`." -#: ../Doc/library/functions.rst:169 +#: library/functions.rst:169 msgid "" "Return a new \"bytes\" object, which is an immutable sequence of integers in " "the range ``0 <= x < 256``. :class:`bytes` is an immutable version of :" "class:`bytearray` -- it has the same non-mutating methods and the same " "indexing and slicing behavior." msgstr "" -"Donne un nouvel objet *bytes*, qui est une séquence immuable de nombre " +"Renvoie un nouvel objet *bytes*, qui est une séquence immuable de nombre " "entiers dans l'intervalle ``0 <= x <= 256``. Les :class:`bytes` est une " "version immuable de :class:`bytearray` -- avec les mêmes méthodes d'accès, " "et le même comportement lors de l'indexation ou la découpe." -#: ../Doc/library/functions.rst:174 +#: library/functions.rst:174 msgid "" "Accordingly, constructor arguments are interpreted as for :func:`bytearray`." msgstr "" "En conséquence, les arguments du constructeur sont les mêmes que pour :func:" "`bytearray`." -#: ../Doc/library/functions.rst:176 +#: library/functions.rst:176 msgid "Bytes objects can also be created with literals, see :ref:`strings`." msgstr "" "Les objets *bytes* peuvent aussi être créés à partir de littéraux, voir :ref:" "`strings`." -#: ../Doc/library/functions.rst:178 +#: library/functions.rst:178 msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." msgstr "" "Voir aussi :ref:`binaryseq`, :ref:`typebytes`, et :ref:`bytes-methods`." -#: ../Doc/library/functions.rst:183 +#: library/functions.rst:183 msgid "" "Return :const:`True` if the *object* argument appears callable, :const:" -"`False` if not. If this returns true, it is still possible that a call " -"fails, but if it is false, calling *object* will never succeed. Note that " -"classes are callable (calling a class returns a new instance); instances are " -"callable if their class has a :meth:`__call__` method." +"`False` if not. If this returns ``True``, it is still possible that a call " +"fails, but if it is ``False``, calling *object* will never succeed. Note " +"that classes are callable (calling a class returns a new instance); " +"instances are callable if their class has a :meth:`__call__` method." msgstr "" -"Donne :const:`True` si l'argument *object* semble être appelable, sinon :" -"const:`False`. Lorsqu'elle donne vrai, il reste une éventualité pour qu'un " -"appel échoue, cependant, lorsqu'elle donne faux, il ne sera jamais possible " -"d'appeler *object*. Notez que les classes sont appelables (appeler une " -"classe donne une nouvelle instance). Les instances sont appelables si leur " -"classe définit une méthode :meth:`__call__`." +"Renvoie :const:`True` si l'argument *object* semble être appelable, sinon :" +"const:`False`. Lorsqu'elle renvoie ``True``, il est toujours possible qu'un " +"appel échoue, cependant, lorsqu'elle renvoie ``False``, il ne sera jamais " +"possible d'appeler *object*. Notez que les classes sont appelables (appeler " +"une classe donne une nouvelle instance). Les instances sont appelables si " +"leur classe définit une méthode :meth:`__call__`." -#: ../Doc/library/functions.rst:189 +#: library/functions.rst:189 msgid "" "This function was first removed in Python 3.0 and then brought back in " "Python 3.2." msgstr "" -"Cette fonction à d'abord été supprimée avec Python 3.0 puis elle à été " +"Cette fonction a d'abord été supprimée avec Python 3.0 puis elle a été " "remise dans Python 3.2." -#: ../Doc/library/functions.rst:196 +#: library/functions.rst:196 msgid "" "Return the string representing a character whose Unicode code point is the " "integer *i*. For example, ``chr(97)`` returns the string ``'a'``, while " @@ -546,7 +547,7 @@ msgstr "" "de caractères ``'a'``, tandis que ``chr(8364)`` renvoie ``'€'``. Il s'agit " "de l'inverse de :func:`ord`." -#: ../Doc/library/functions.rst:200 +#: library/functions.rst:200 msgid "" "The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " "base 16). :exc:`ValueError` will be raised if *i* is outside that range." @@ -555,11 +556,11 @@ msgstr "" "(``0x10FFFF`` en base 16). Une exception :exc:`ValueError` sera levée si *i* " "est en dehors de l'intervalle." -#: ../Doc/library/functions.rst:206 +#: library/functions.rst:206 msgid "Transform a method into a class method." msgstr "Transforme une méthode en méthode de classe." -#: ../Doc/library/functions.rst:208 +#: library/functions.rst:208 msgid "" "A class method receives the class as implicit first argument, just like an " "instance method receives the instance. To declare a class method, use this " @@ -569,15 +570,15 @@ msgstr "" "tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " "une méthode de classe ::" -#: ../Doc/library/functions.rst:216 +#: library/functions.rst:216 msgid "" "The ``@classmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." msgstr "" -"La forme ``@classmethod`` est un :term:`decorator` de fonction — consultez :" -"ref:`function` pour plus de détails." +"La forme ``@classmethod`` est un :term:`décorateur ` de fonction " +"— consultez :ref:`function` pour plus de détails." -#: ../Doc/library/functions.rst:219 +#: library/functions.rst:219 msgid "" "A class method 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 " @@ -589,21 +590,21 @@ msgstr "" "sa classe. Si la méthode est appelée sur une instance de classe fille, c'est " "la classe fille qui sera donnée en premier argument implicite." -#: ../Doc/library/functions.rst:224 +#: library/functions.rst:224 msgid "" "Class methods are different than C++ or Java static methods. If you want " "those, see :func:`staticmethod`." msgstr "" "Les méthodes de classe sont différentes des méthodes statiques du C++ ou du " -"Java. Si c'est elles sont vous avez besoin, regardez du côté de :func:" +"Java. Si ce sont elles dont vous avez besoin, regardez du côté de :func:" "`staticmethod`." -#: ../Doc/library/functions.rst:227 +#: library/functions.rst:227 msgid "For more information on class methods, see :ref:`types`." msgstr "" "Pour plus d'informations sur les méthodes de classe, consultez :ref:`types`." -#: ../Doc/library/functions.rst:232 +#: library/functions.rst:232 msgid "" "Compile the *source* into a code or AST object. Code objects can be " "executed by :func:`exec` or :func:`eval`. *source* can either be a normal " @@ -615,17 +616,17 @@ msgstr "" "chaîne, un objet *bytes*, ou un objet AST. Consultez la documentation du " "module :mod:`ast` pour des informations sur la manipulation d'objets AST." -#: ../Doc/library/functions.rst:237 +#: library/functions.rst:237 msgid "" "The *filename* argument should give the file from which the code was read; " "pass some recognizable value if it wasn't read from a file (``''`` " "is commonly used)." msgstr "" -"L'argument *filename* doit nommer le fichier duquel le code à été lu. Donnez " +"L'argument *filename* doit nommer le fichier duquel le code a été lu. Donnez " "quelque chose de reconnaissable lorsqu'il n'a pas été lu depuis un fichier " "(typiquement ``\"\"``)." -#: ../Doc/library/functions.rst:241 +#: library/functions.rst:241 msgid "" "The *mode* argument specifies what kind of code must be compiled; it can be " "``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " @@ -633,13 +634,13 @@ msgid "" "single interactive statement (in the latter case, expression statements that " "evaluate to something other than ``None`` will be printed)." msgstr "" -"L'argument *mode* indique quel type de code doit être compilé : ``'exec'`` " +"L'argument *mode* indique quel type de code doit être compilé : ``'exec'`` " "si source est une suite d'instructions, ``'eval'`` pour une seule " -"expression, ou ``'single'`` si il ne contient qu'une instruction interactive " +"expression, ou ``'single'`` s'il ne contient qu'une instruction interactive " "(dans ce dernier cas, les résultats d'expressions donnant autre chose que " "``None`` seront affichés)." -#: ../Doc/library/functions.rst:247 +#: library/functions.rst:247 msgid "" "The optional arguments *flags* and *dont_inherit* control which :ref:`future " "statements ` affect the compilation of *source*. If neither is " @@ -661,7 +662,7 @@ msgstr "" "un entier différent de zéro, *flags* est utilisé seul -- les instructions " "futures déclarées autour de l'appel à *compile* sont ignorées." -#: ../Doc/library/functions.rst:257 +#: library/functions.rst:257 msgid "" "Future statements are specified by bits which can be bitwise ORed together " "to specify multiple statements. The bitfield required to specify a given " @@ -675,7 +676,7 @@ msgstr "" "l'attribut :attr:`~__future__._Feature.compiler_flag` de la classe :class:" "`~__future__.Feature` du module :mod:`__future__`." -#: ../Doc/library/functions.rst:262 +#: library/functions.rst:262 msgid "" "The optional argument *flags* also controls whether the compiled source is " "allowed to contain top-level ``await``, ``async for`` and ``async with``. " @@ -683,8 +684,13 @@ msgid "" "object has ``CO_COROUTINE`` set in ``co_code``, and can be interactively " "executed via ``await eval(code_object)``." msgstr "" +"L'argument optionnel *flags* contrôle également si la source compilée est " +"autorisée à contenir des ``await``, des ``async for`` et des ``async with`` " +"de haut niveau. Lorsque le bit ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` est " +"activé, l'objet code renvoyé a ``CO_COROUTINE`` activé dans ``co_code``, et " +"peut être exécuté de manière interactive via ``await eval(code_object)``." -#: ../Doc/library/functions.rst:268 +#: library/functions.rst:268 msgid "" "The argument *optimize* specifies the optimization level of the compiler; " "the default value of ``-1`` selects the optimization level of the " @@ -694,12 +700,12 @@ msgid "" msgstr "" "L'argument *optimize* indique le niveau d'optimisation du compilateur. La " "valeur par défaut est ``-1`` qui prend le niveau d'optimisation de " -"l'interpréteur tel que reçu via l'option :option:`-O`. Les niveau explicites " -"sont : ``0`` (pas d'optimisation, ``__debug__`` est ``True``), ``1`` (les " -"``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` (les " -"*docstrings* sont également supprimés)." +"l'interpréteur tel que reçu via l'option :option:`-O`. Les niveaux " +"explicites sont : ``0`` (pas d'optimisation, ``__debug__`` est ``True``), " +"``1`` (les ``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` " +"(les *docstrings* sont également supprimés)." -#: ../Doc/library/functions.rst:274 +#: library/functions.rst:274 msgid "" "This function raises :exc:`SyntaxError` if the compiled source is invalid, " "and :exc:`ValueError` if the source contains null bytes." @@ -707,7 +713,7 @@ msgstr "" "Cette fonction lève une :exc:`SyntaxError` si la source n'est pas valide, " "et :exc:`ValueError` si la source contient des octets *null*." -#: ../Doc/library/functions.rst:277 +#: library/functions.rst:277 msgid "" "If you want to parse Python code into its AST representation, see :func:`ast." "parse`." @@ -715,20 +721,26 @@ msgstr "" "Si vous voulez transformer du code Python en sa représentation AST, voyez :" "func:`ast.parse`." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source``, ``filename``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``compile`` avec les arguments " +"``source`` et ``filename``." -#: ../Doc/library/functions.rst:282 +#: library/functions.rst:282 msgid "" "Raises an :ref:`auditing event ` ``compile`` with arguments " "``source`` and ``filename``. This event may also be raised by implicit " "compilation." msgstr "" +"Lève un :ref:`auditing event ` ``compile`` avec les arguments " +"``source`` et ``filename``. Cet événement peut également être levé par une " +"compilation implicite." -#: ../Doc/library/functions.rst:288 +#: library/functions.rst:288 msgid "" "When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " "mode, input must be terminated by at least one newline character. This is " @@ -740,7 +752,7 @@ 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:295 +#: library/functions.rst:295 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 " @@ -750,7 +762,7 @@ msgstr "" "suffisamment grandes ou complexes lors de la compilation d'un objet AST à " "cause de la limitation de la profondeur de la pile d'appels." -#: ../Doc/library/functions.rst:299 +#: library/functions.rst:299 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." @@ -759,7 +771,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:303 +#: library/functions.rst:303 msgid "" "Previously, :exc:`TypeError` was raised when null bytes were encountered in " "*source*." @@ -767,13 +779,16 @@ msgstr "" "Précédemment, l'exception :exc:`TypeError` était levée quand un caractère " "nul était rencontré dans *source*." -#: ../Doc/library/functions.rst:307 +#: library/functions.rst:307 msgid "" "``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " "support for top-level ``await``, ``async for``, and ``async with``." msgstr "" +"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` peut maintenant être passée à *flags* " +"pour permettre une gestion de ``await``, ``async for``, et ``async with`` de " +"haut niveau." -#: ../Doc/library/functions.rst:314 +#: library/functions.rst:314 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, " @@ -784,24 +799,29 @@ msgid "" "conversion like :class:`int` and :class:`float`. If both arguments are " "omitted, returns ``0j``." msgstr "" -"Donne un nombre complexe de valeur ``real + imag\\*1j``, ou convertit une " +"Renvoie un nombre complexe de valeur ``real + imag*1j``, ou convertit une " "chaîne ou un nombre en nombre complexe. Si le premier paramètre est une " "chaîne, il sera interprété comme un nombre complexe et la fonction doit être " -"appelée dans second paramètre. Le second paramètre ne peut jamais être une " +"appelée sans second paramètre. Le second paramètre ne peut jamais être une " "chaîne. Chaque argument peut être de n'importe quel type numérique (même " "complexe). Si *imag* est omis, sa valeur par défaut est zéro, le " "constructeur effectue alors une simple conversion numérique comme le font :" -"class:`int` ou :class:`float`. Si aucun argument n'est fourni, donne ``0j``." +"class:`int` ou :class:`float`. Si aucun argument n'est fourni, renvoie " +"``0j``." -#: ../Doc/library/functions.rst:323 +#: library/functions.rst:323 msgid "" "For a general Python object ``x``, ``complex(x)`` delegates to ``x." "__complex__()``. If ``__complex__()`` is not defined then it falls back to :" "meth:`__float__`. If ``__float__()`` is not defined then it falls back to :" "meth:`__index__`." msgstr "" +"Pour un objet Python général ``x``, ``complex(x)`` délègue à ``x." +"__complex__()``. Si ``__complex__()`` n'est pas défini, alors il délègue à :" +"meth:`__float__`. Si ``__float__()`` n'est pas défini, alors il délègue à :" +"meth:`__index__`." -#: ../Doc/library/functions.rst:330 +#: library/functions.rst:330 msgid "" "When converting from a string, the string must not contain whitespace around " "the central ``+`` or ``-`` operator. For example, ``complex('1+2j')`` is " @@ -812,24 +832,25 @@ msgstr "" "``complex('1+2j')`` est bon, mais ``complex('1 + 2j')`` lève une :exc:" "`ValueError`." -#: ../Doc/library/functions.rst:335 +#: library/functions.rst:335 msgid "The complex type is described in :ref:`typesnumeric`." msgstr "Le type complexe est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:337 ../Doc/library/functions.rst:622 -#: ../Doc/library/functions.rst:829 +#: library/functions.rst:623 library/functions.rst:832 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:340 +#: library/functions.rst:340 msgid "" "Falls back to :meth:`__index__` if :meth:`__complex__` and :meth:`__float__` " "are not defined." msgstr "" +"Revient à :meth:`__index__` si :meth:`__complex__` et :meth:`__float__` ne " +"sont pas définis." -#: ../Doc/library/functions.rst:347 +#: library/functions.rst:347 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 " @@ -841,7 +862,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:359 +#: library/functions.rst:359 msgid "" "Create a new dictionary. The :class:`dict` object is the dictionary class. " "See :class:`dict` and :ref:`typesmapping` for documentation about this class." @@ -850,7 +871,7 @@ msgstr "" "dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " "sur cette classe." -#: ../Doc/library/functions.rst:362 +#: library/functions.rst:362 msgid "" "For other containers see the built-in :class:`list`, :class:`set`, and :" "class:`tuple` classes, as well as the :mod:`collections` module." @@ -858,7 +879,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:368 +#: library/functions.rst:368 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 " @@ -868,19 +889,19 @@ msgstr "" "Avec un argument, elle essaye de donner une liste d'attributs valides pour " "cet objet." -#: ../Doc/library/functions.rst:371 +#: library/functions.rst:371 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 " "custom :func:`__getattr__` or :func:`__getattribute__` function to customize " "the way :func:`dir` reports their attributes." msgstr "" -"Si l'objet à une méthode :meth:`__dir__`, elle est appelée et doit donner " +"Si l'objet a une méthode :meth:`__dir__`, elle est appelée et doit donner " "une liste d'attributs. Cela permet aux objets implémentant :func:" "`__getattr__` ou :func:`__getattribute__` de personnaliser ce que donnera :" "func:`dir`." -#: ../Doc/library/functions.rst:376 +#: library/functions.rst:376 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, " @@ -894,7 +915,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:381 +#: library/functions.rst:381 msgid "" "The default :func:`dir` mechanism behaves differently with different types " "of objects, as it attempts to produce the most relevant, rather than " @@ -902,9 +923,9 @@ msgid "" msgstr "" "Le mécanisme par défaut de :func:`dir` se comporte différemment avec " "différents types d'objets, car elle préfère donner une information " -"pertinente plutôt qu'exhaustive :" +"pertinente plutôt qu'exhaustive :" -#: ../Doc/library/functions.rst:385 +#: library/functions.rst:385 msgid "" "If the object is a module object, the list contains the names of the " "module's attributes." @@ -912,7 +933,7 @@ msgstr "" "Si l'objet est un module, la liste contiendra les noms des attributs du " "module." -#: ../Doc/library/functions.rst:388 +#: library/functions.rst:388 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." @@ -920,7 +941,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:391 +#: library/functions.rst:391 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 " @@ -930,11 +951,11 @@ msgstr "" "attributs de la classe, et récursivement des attributs des parents de la " "classe." -#: ../Doc/library/functions.rst:395 +#: library/functions.rst:395 msgid "The resulting list is sorted alphabetically. For example:" -msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" +msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" -#: ../Doc/library/functions.rst:414 +#: library/functions.rst:414 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 " @@ -948,7 +969,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:424 +#: library/functions.rst:424 msgid "" "Take two (non complex) numbers as arguments and return a pair of numbers " "consisting of their quotient and remainder when using integer division. " @@ -968,7 +989,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:436 +#: library/functions.rst:436 msgid "" "Return an enumerate object. *iterable* must be a sequence, an :term:" "`iterator`, or some other object which supports iteration. The :meth:" @@ -976,28 +997,27 @@ msgid "" "returns a tuple containing a count (from *start* which defaults to 0) and " "the values obtained from iterating over *iterable*." msgstr "" -"Donne un objet énumérant. *iterable* doit être une séquence, un :term:" -"`iterator`, ou tout autre objet supportant l'itération. La méthode :meth:" -"`~iterator.__next__` de l'itérateur donné par :func:`enumerate` donne un " -"tuple contenant un compte (démarrant à *start*, 0 par défaut) et les valeurs " -"obtenues de l'itération sur *iterable*." +"Renvoie un objet énumérant. *iterable* doit être une séquence, un :term:" +"`itérateur `, ou tout autre objet supportant l'itération. La " +"méthode :meth:`~iterator.__next__` de l'itérateur donné par :func:" +"`enumerate` renvoie un n-uplet contenant un compte (démarrant à *start*, 0 " +"par défaut) et les valeurs obtenues de l'itération sur *iterable*." -#: ../Doc/library/functions.rst:448 +#: library/functions.rst:448 msgid "Equivalent to::" msgstr "Équivalent à ::" -#: ../Doc/library/functions.rst:459 +#: library/functions.rst:459 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 " "object." msgstr "" -"Les arguments sont : une chaîne, et optionnellement des locales et des " +"Les arguments sont : une chaîne, et optionnellement des locales et des " "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:463 -#, fuzzy +#: library/functions.rst:463 msgid "" "The *expression* argument is parsed and evaluated as a Python expression " "(technically speaking, a condition list) using the *globals* and *locals* " @@ -1010,30 +1030,32 @@ msgid "" "omitted it defaults to the *globals* dictionary. If both dictionaries are " "omitted, the expression is executed with the *globals* and *locals* in the " "environment where :func:`eval` is called. Note, *eval()* does not have " -"access to the :term:`nested scope`\\s (non-locals) in the enclosing " -"environment." +"access to the :term:`nested scopes ` (non-locals) in the " +"enclosing environment." msgstr "" "L'argument *expression* est analysé et évalué comme une expression Python " "(techniquement, une *condition list*) en utilisant les dictionnaires " "*globals* et *locals* comme espaces de nommage globaux et locaux. Si le " "dictionnaire *globals* est présent mais ne contient pas de valeur pour la " -"clé ``'__builtins__'``, une référence au dictionnaire du module :mod:" +"clé ``__builtins__``, une référence au dictionnaire du module :mod:" "`builtins` y est inséré avant qu'*expression* ne soit évalué. Cela signifie " -"qu'*expression* à normalement un accès complet à tout le module :mod:" +"qu'*expression* a normalement un accès complet à tout le module :mod:" "`builtins`, et que les environnements restreints sont propagés. Si le " "dictionnaire *locals* est omis, sa valeur par défaut est le dictionnaire " "*globals*. Si les deux dictionnaires sont omis, l'expression est exécutée " -"dans l'environnement où :func:`eval` est appelé. La valeur donnée par *eval* " -"est le résultat de l'expression évaluée. Les erreurs de syntaxe sont " -"rapportées via des exceptions. Exemple :" +"avec les dictionnaires *globals* et *locals* dans l'environnement où :func:" +"`eval` est appelée. Note, *eval()* n'a pas accès aux :term:`portées " +"imbriquées ` (non locales) dans l'environnement englobant." -#: ../Doc/library/functions.rst:477 +#: library/functions.rst:477 msgid "" "The return value is the result of the evaluated expression. Syntax errors " "are reported as exceptions. Example:" msgstr "" +"La valeur de retour est le résultat de l'expression évaluée. Les erreurs de " +"syntaxe sont signalées comme des exceptions. Exemple :" -#: ../Doc/library/functions.rst:484 +#: library/functions.rst:484 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 " @@ -1042,22 +1064,22 @@ msgid "" msgstr "" "Cette fonction peut aussi être utilisée pour exécuter n'importe quel objet " "code (tel que ceux créés par :func:`compile`). Dans ce cas, donnez un objet " -"code plutôt qu'une chaîne. Si l'objet code à été compilé avec ``'exec'`` en " -"argument pour *mode*, :func:`eval` donnera ``None``." +"code plutôt qu'une chaîne. Si l'objet code a été compilé avec l'argument " +"*mode* à ``'exec'``, :func:`eval` donnera ``None``." -#: ../Doc/library/functions.rst:489 +#: library/functions.rst:489 msgid "" "Hints: dynamic execution of statements is supported by the :func:`exec` " "function. The :func:`globals` and :func:`locals` functions returns the " "current global and local dictionary, respectively, which may be useful to " "pass around for use by :func:`eval` or :func:`exec`." msgstr "" -"Conseils : L'exécution dynamique d'instructions est gérée par la fonction :" -"func:`exec`. Les fonctions :func:`globals` et :func:`locals` donnent " +"Conseils : L'exécution dynamique d'instructions est gérée par la fonction :" +"func:`exec`. Les fonctions :func:`globals` et :func:`locals` renvoient " "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "lors de l'usage de :func:`eval` et :func:`exec`." -#: ../Doc/library/functions.rst:494 +#: library/functions.rst:494 msgid "" "See :func:`ast.literal_eval` for a function that can safely evaluate strings " "with expressions containing only literals." @@ -1066,19 +1088,25 @@ msgstr "" "peut évaluer en toute sécurité des chaînes avec des expressions ne contenant " "que des valeurs littérales." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``exec`` with argument " "``code_object``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``exec`` avec l'argument " +"``code_object``." -#: ../Doc/library/functions.rst:499 ../Doc/library/functions.rst:534 +#: library/functions.rst:535 msgid "" "Raises an :ref:`auditing event ` ``exec`` with the code object as " "the argument. Code compilation events may also be raised." msgstr "" +"Lève un :ref:`auditing event ` ``exec`` avec l'objet de code comme " +"argument. Les événements de compilation de code peuvent également être levés." -#: ../Doc/library/functions.rst:506 +#: library/functions.rst:506 +#, fuzzy 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 " @@ -1086,22 +1114,22 @@ msgid "" "error occurs). [#]_ If it is a code object, it is simply executed. In all " "cases, the code that's executed is expected to be valid as file input (see " "the section \"File input\" in the Reference Manual). Be aware that the :" -"keyword:`return` and :keyword:`yield` statements may not be used outside of " -"function definitions even within the context of code passed to the :func:" -"`exec` function. The return value is ``None``." +"keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` statements may " +"not be used outside of function definitions even within the context of code " +"passed to the :func:`exec` function. The return value is ``None``." msgstr "" "Cette fonction permet l'exécution dynamique de code Python. *object* doit " "être soit une chaîne soit un objet code. Si c'est une chaîne, elle est " "d'abord analysée en une suite d'instructions Python qui sont ensuite " "exécutés (sauf erreur de syntaxe). [#]_ Si c'est un objet code, il est " -"simplement exécuté. dans tous les cas, le code fourni doit être valide selon " +"simplement exécuté. Dans tous les cas, le code fourni doit être valide selon " "les mêmes critères que s'il était un script dans un fichier (voir la section " -"\"File Input\" dans le manuel). Gardez en tête que les mots clefs :keyword:" +"\"File Input\" dans le manuel). Gardez en tête que les mots clés :keyword:" "`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``." +"fonction, même dans du code passé à :func:`exec`. La fonction renvoie " +"``None``." -#: ../Doc/library/functions.rst:516 -#, fuzzy +#: library/functions.rst:517 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 (and " @@ -1115,15 +1143,15 @@ msgid "" msgstr "" "Dans tous les cas, si les arguments optionnels sont omis, le code est " "exécuté dans le contexte actuel. Si seul *globals* est fourni, il doit être " -"un dictionnaire qui sera utilisé pour les globales et les locales. Si les " -"deux sont fournis, ils sont utilisés respectivement pour les variables " -"globales et locales. *locales* peut être n'importe quel objet ``mapping``. " -"Souvenez vous qu'au niveau d'un module, les dictionnaires des locales et des " -"globales ne sont qu'un. Si ``exec`` reçoit deux objets distincts dans " -"*globals* et *locals*, le code sera exécuté comme s'il était inclus dans une " -"définition de classe." +"un dictionnaire (et pas une sous-classe de dictionnaire) utilisé pour les " +"variables globales et locales. Si les deux sont fournis, ils sont utilisés " +"respectivement pour les variables globales et locales. *locales* peut être " +"n'importe quel objet de correspondance. Souvenez vous qu'au niveau d'un " +"module, les dictionnaires des locales et des globales ne sont qu'un. Si " +"``exec`` reçoit deux objets distincts dans *globals* et *locals*, le code " +"est exécuté comme s'il était inclus dans une définition de classe." -#: ../Doc/library/functions.rst:526 +#: library/functions.rst:527 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:" @@ -1131,36 +1159,36 @@ msgid "" "builtins are available to the executed code by inserting your own " "``__builtins__`` dictionary into *globals* before passing it to :func:`exec`." msgstr "" -"Si le dictionnaire *globals* ne contient pas de valeur pour la clef " +"Si le dictionnaire *globals* ne contient pas de valeur pour la clé " "``__builtins__``, une référence au dictionnaire du module :mod:`builtins` y " "est inséré. Cela vous permet de contrôler quelles fonctions natives sont " "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:539 +#: library/functions.rst:540 msgid "" "The built-in functions :func:`globals` and :func:`locals` return the current " "global and local dictionary, respectively, which may be useful to pass " "around for use as the second and third argument to :func:`exec`." msgstr "" -"Les fonctions natives :func:`globals` et :func:`locals` donnent " +"Les fonctions natives :func:`globals` et :func:`locals` renvoient " "respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " "en deuxième et troisième argument de :func:`exec`." -#: ../Doc/library/functions.rst:545 +#: library/functions.rst:546 msgid "" "The default *locals* act as described for function :func:`locals` below: " "modifications to the default *locals* dictionary should not be attempted. " "Pass an explicit *locals* dictionary if you need to see effects of the code " "on *locals* after function :func:`exec` returns." msgstr "" -"La valeur par défaut pour *locals* se comporte comme la fonction :func:" -"`locals`: Il est déconseillé de modifier le dictionnaire *locals* par " +"La valeur par défaut pour *locals* se comporte comme la fonction :func:" +"`locals` : Il est déconseillé de modifier le dictionnaire *locals* par " "défaut. Donnez un dictionnaire explicitement à *locals* si vous désirez " "observer l'effet du code sur les variables locales, après que :func:`exec` " "soit terminée." -#: ../Doc/library/functions.rst:553 +#: library/functions.rst:554 msgid "" "Construct an iterator from those elements of *iterable* for which *function* " "returns true. *iterable* may be either a sequence, a container which " @@ -1169,37 +1197,37 @@ msgid "" "removed." msgstr "" "Construit un itérateur depuis les éléments d'*iterable* pour lesquels " -"*function* donne vrai. *iterable* peut aussi bien être une séquence, un " -"conteneur qui supporte l'itération, ou un itérateur. Si *function* est " -"``None``, la fonction identité est prise, c'est à dire que tous les éléments " +"*function* renvoie ``True``. *iterable* peut aussi bien être une séquence, " +"un conteneur qui supporte l'itération, ou un itérateur. Si *function* est " +"``None``, la fonction identité est prise, c'est-à-dire que tous les éléments " "faux d'*iterable* sont supprimés." -#: ../Doc/library/functions.rst:559 +#: library/functions.rst:560 msgid "" "Note that ``filter(function, iterable)`` is equivalent to the generator " "expression ``(item for item in iterable if function(item))`` if function is " "not ``None`` and ``(item for item in iterable if item)`` if function is " "``None``." msgstr "" -"Notez que ``filter(fonction, iterable)`` est l'équivalent du générateur " -"``(item for item in iterable if fonction(item))`` si *fonction* n'est pas " +"Notez que ``filter(function, iterable)`` est l'équivalent du générateur " +"``(item for item in iterable if function(item))`` si *function* n'est pas " "``None`` et de ``(item for item in iterable if item)`` si *function* est " "``None``." -#: ../Doc/library/functions.rst:564 +#: library/functions.rst:565 msgid "" "See :func:`itertools.filterfalse` for the complementary function that " "returns elements of *iterable* for which *function* returns false." msgstr "" "Voir :func:`itertools.filterfalse` pour la fonction complémentaire qui donne " -"les éléments d'*iterable* pour lesquels *fonction* donne ``False``." +"les éléments d'*iterable* pour lesquels *function* renvoie ``False``." -#: ../Doc/library/functions.rst:574 +#: library/functions.rst:575 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*." +"Renvoie un nombre a virgule flottante depuis un nombre ou une chaîne *x*." -#: ../Doc/library/functions.rst:576 +#: library/functions.rst:577 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 " @@ -1215,9 +1243,9 @@ msgstr "" "d'effet sur la valeur produite. L'argument peut aussi être une chaîne " "représentant un NaN (*Not-a-Number*), 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és :" +"après que les espaces en début et fin de chaîne aient été retirées :" -#: ../Doc/library/functions.rst:591 +#: library/functions.rst:592 msgid "" "Here ``floatnumber`` is the form of a Python floating-point literal, " "described in :ref:`floating`. Case is not significant, so, for example, " @@ -1229,7 +1257,7 @@ msgstr "" "exemple, ``\"inf\"``, ``\" Inf\"``, ``\"INFINITY\"``, et ``\" iNfiNity\"`` " "sont tous des orthographes valides pour un infini positif." -#: ../Doc/library/functions.rst:596 +#: library/functions.rst:597 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 " @@ -1242,32 +1270,33 @@ msgstr "" "dehors de l'intervalle d'un nombre a virgule flottante pour Python, :exc:" "`OverflowError` est levée." -#: ../Doc/library/functions.rst:601 -#, fuzzy +#: library/functions.rst:602 msgid "" "For a general Python object ``x``, ``float(x)`` delegates to ``x." "__float__()``. If ``__float__()`` is not defined then it falls back to :" "meth:`__index__`." msgstr "" -"Pour un objet Python ``x``, ``float(x)`` est délégué à ``x.__float__()``." +"Pour un objet Python général ``x``, ``float(x)`` est délégué à ``x." +"__float__()``. Si ``__float__()`` n'est pas défini alors il est délégué à :" +"meth:`__index__`." -#: ../Doc/library/functions.rst:605 +#: library/functions.rst:606 msgid "If no argument is given, ``0.0`` is returned." -msgstr "Dans argument, ``0.0`` est donné." +msgstr "Sans argument, ``0.0`` est renvoyé." -#: ../Doc/library/functions.rst:607 +#: library/functions.rst:608 msgid "Examples::" msgstr "Exemples ::" -#: ../Doc/library/functions.rst:620 +#: library/functions.rst:621 msgid "The float type is described in :ref:`typesnumeric`." msgstr "Le type *float* est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:628 +#: library/functions.rst:629 msgid "Falls back to :meth:`__index__` if :meth:`__float__` is not defined." -msgstr "" +msgstr "Revient à :meth:`__index__` si :meth:`__float__` n'est pas défini." -#: ../Doc/library/functions.rst:638 +#: library/functions.rst:639 msgid "" "Convert a *value* to a \"formatted\" representation, as controlled by " "*format_spec*. The interpretation of *format_spec* will depend on the type " @@ -1277,9 +1306,9 @@ msgstr "" "Convertit une valeur en sa représentation \"formatée\", tel que décrit par " "*format_spec*. L'interprétation de *format_spec* dépend du type de la " "valeur, cependant il existe une syntaxe standard utilisée par la plupart des " -"types natifs : :ref:`formatspec`." +"types natifs : :ref:`formatspec`." -#: ../Doc/library/functions.rst:643 +#: library/functions.rst:644 msgid "" "The default *format_spec* is an empty string which usually gives the same " "effect as calling :func:`str(value) `." @@ -1287,7 +1316,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:646 +#: library/functions.rst:647 msgid "" "A call to ``format(value, format_spec)`` is translated to ``type(value)." "__format__(value, format_spec)`` which bypasses the instance dictionary when " @@ -1301,9 +1330,9 @@ msgstr "" "l'instance lors de la recherche de la méthode :meth:`__fornat__`. Une " "exception :exc:`TypeError` est levée si la recherche de la méthode atteint :" "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." +"soit le résultat ne sont pas des chaînes." -#: ../Doc/library/functions.rst:653 +#: library/functions.rst:654 msgid "" "``object().__format__(format_spec)`` raises :exc:`TypeError` if " "*format_spec* is not an empty string." @@ -1311,17 +1340,17 @@ msgstr "" "``object().__format__(format_spec)`` lève :exc:`TypeError` si *format_spec* " "n'est pas une chaîne vide." -#: ../Doc/library/functions.rst:662 +#: library/functions.rst:663 msgid "" "Return a new :class:`frozenset` object, optionally with elements taken from " "*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` and :" "ref:`types-set` for documentation about this class." msgstr "" -"Donne un nouveau :class:`frozenset`, dont les objets sont éventuellement " +"Renvoie un nouveau :class:`frozenset`, dont les objets sont éventuellement " "tirés d'*iterable*. ``frozenset`` est une classe native. Voir :class:" -"`frozenset` et :ref:`types-set` pour leurs documentation." +"`frozenset` et :ref:`types-set` pour la documentation sur cette classe." -#: ../Doc/library/functions.rst:666 +#: library/functions.rst:667 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." @@ -1330,7 +1359,7 @@ msgstr "" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:673 +#: library/functions.rst:674 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 " @@ -1339,51 +1368,51 @@ msgid "" "exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " "raised." msgstr "" -"Donne la valeur de l'attribut nommé *name* de l'objet *object*. *name* doit " -"être une chaîne. Si la chaîne est le nom d'un des attributs de l'objet, le " -"résultat est la valeur de cet attribut. Par exemple, ``getattr(x, " +"Renvoie la valeur de l'attribut nommé *name* de l'objet *object*. *name* " +"doit être une chaîne. Si la chaîne est le nom d'un des attributs de l'objet, " +"le résultat est la valeur de cet attribut. Par exemple, ``getattr(x, " "'foobar')`` est équivalent à ``x.foobar``. Si l'attribut n'existe pas, et " "que *default* est fourni, il est renvoyé, sinon l'exception :exc:" "`AttributeError` est levée." -#: ../Doc/library/functions.rst:682 +#: library/functions.rst:683 msgid "" "Return a dictionary representing the current global symbol table. This is " "always the dictionary of the current module (inside a function or method, " "this is the module where it is defined, not the module from which it is " "called)." msgstr "" -"Donne une représentation de la table de symboles globaux sous forme d'un " +"Renvoie une représentation de la table de symboles globaux sous forme d'un " "dictionnaire. C'est toujours le dictionnaire du module courant (dans une " "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:689 +#: library/functions.rst:690 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. " "(This is implemented by calling ``getattr(object, name)`` and seeing whether " "it raises an :exc:`AttributeError` or not.)" msgstr "" -"Les arguments sont : un objet et une chaîne. Le résultat est ``True`` si la " +"Les arguments sont : un objet et une chaîne. Le résultat est ``True`` si la " "chaîne est le nom d'un des attributs de l'objet, sinon ``False``. " "(L'implémentation appelle ``getattr(object, name)`` et regarde si une " -"exception :exc:`AttributeError` à été levée.)" +"exception :exc:`AttributeError` a été levée.)" -#: ../Doc/library/functions.rst:697 +#: library/functions.rst:698 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 " "dictionary lookup. Numeric values that compare equal have the same hash " "value (even if they are of different types, as is the case for 1 and 1.0)." msgstr "" -"Donne la valeur de *hash* d'un objet (s'il en a une). Les valeurs de *hash* " -"sont des entiers. Elles sont utilisées pour comparer rapidement des clefs de " -"dictionnaire lors de leur recherche. Les valeurs numériques égales ont le " -"même *hash* (même si leurs types sont différents, comme pour ``1`` et " +"Renvoie la valeur de *hash* d'un objet (s'il en a une). Les valeurs de " +"*hash* sont des entiers. Elles sont utilisées pour comparer rapidement des " +"clés de dictionnaire lors de leur recherche. Les valeurs numériques égales " +"ont le même *hash* (même si leurs types sont différents, comme pour ``1`` et " "``1.0``)." -#: ../Doc/library/functions.rst:704 +#: library/functions.rst:705 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 :" @@ -1393,7 +1422,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:710 +#: library/functions.rst:711 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 " @@ -1403,13 +1432,14 @@ msgid "" "argument is any other kind of object, a help page on the object is generated." msgstr "" "Invoque le système d'aide natif. (Cette fonction est destinée à l'usage en " -"mode interactif.) Soi aucun argument n'est fourni, le système d'aide démarre " -"dans l'interpréteur. Si l'argument est une chaîne, un module, une fonction, " -"une classe, une méthode, un mot clef, ou un sujet de documentation pourtant " -"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." +"mode interactif.) Si aucun argument n'est fourni, le système d'aide démarre " +"dans l'interpréteur. Si l'argument est une chaîne, celle-ci est recherchée " +"comme le nom d'un module, d'une fonction, d'une classe, d'une méthode, d'un " +"mot clé, ou d'un sujet de documentation, 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:717 +#: library/functions.rst:718 msgid "" "Note that if a slash(/) appears in the parameter list of a function, when " "invoking :func:`help`, it means that the parameters prior to the slash are " @@ -1422,22 +1452,22 @@ msgstr "" "plus d'informations, voir :ref:`La FAQ sur les arguments positionels `." -#: ../Doc/library/functions.rst:722 +#: library/functions.rst:723 msgid "" "This function is added to the built-in namespace by the :mod:`site` module." msgstr "" "Cette fonction est ajoutée à l'espace de nommage natif par le module :mod:" "`site`." -#: ../Doc/library/functions.rst:724 +#: library/functions.rst:725 msgid "" "Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " "for callables are now more comprehensive and consistent." msgstr "" "Les changements aux modules :mod:`pydoc` et :mod:`inspect` rendent les " -"signatures des appelables plus compréhensible et cohérente." +"signatures des appelables plus compréhensibles et cohérentes." -#: ../Doc/library/functions.rst:731 +#: library/functions.rst:732 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 :" @@ -1447,16 +1477,17 @@ msgstr "" "pas un :class:`int`, il doit définir une méthode :meth:`__index__` qui " "renvoie un entier. Quelques exemples :" -#: ../Doc/library/functions.rst:740 +#: library/functions.rst:741 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 " "ways:" 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 :" +"majuscule ou non, préfixée ou non, vous pouvez utiliser l'une des méthodes " +"suivantes :" -#: ../Doc/library/functions.rst:752 +#: library/functions.rst:753 msgid "" "See also :func:`int` for converting a hexadecimal string to an integer using " "a base of 16." @@ -1464,7 +1495,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:757 +#: library/functions.rst:758 msgid "" "To obtain a hexadecimal string representation for a float, use the :meth:" "`float.hex` method." @@ -1472,18 +1503,26 @@ 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:763 +#: library/functions.rst:764 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. " "Two objects with non-overlapping lifetimes may have the same :func:`id` " "value." msgstr "" -"Donne l'\"identité\" d'un objet. C'est un nombre entier garanti unique et " -"constant pour cet objet durant sa durée de vie. Deux objets sont les durées " +"Renvoie l'\"identité\" d'un objet. C'est un nombre entier garanti unique et " +"constant pour cet objet durant sa durée de vie. Deux objets dont les durées " "de vie ne se chevauchent pas peuvent partager le même :func:`id`." -#: ../Doc/library/functions.rst:773 +#: library/functions.rst:771 +msgid "" +"Raises an :ref:`auditing event ` ``builtins.id`` with argument " +"``id``." +msgstr "" +"Lève un :ref:`évènement d'audit ` ``builtins.id`` avec l'argument " +"``id``." + +#: library/functions.rst:776 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, " @@ -1491,11 +1530,11 @@ msgid "" "When EOF is read, :exc:`EOFError` is raised. Example::" msgstr "" "Si l'argument *prompt* est donné, il est écrit sur la sortie standard sans " -"le retour à la ligne final. La fonction lis ensuite une ligne sur l'entrée " +"le retour à la ligne final. La fonction lit ensuite une ligne sur l'entrée " "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 ::" +"quelle renvoie. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" -#: ../Doc/library/functions.rst:783 +#: library/functions.rst:786 msgid "" "If the :mod:`readline` module was loaded, then :func:`input` will use it to " "provide elaborate line editing and history features." @@ -1503,32 +1542,41 @@ 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:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``builtins.input`` avec " +"l'argument ``prompt``." -#: ../Doc/library/functions.rst:788 +#: library/functions.rst:791 msgid "" "Raises an :ref:`auditing event ` ``builtins.input`` with argument " "``prompt`` before reading input" msgstr "" +"Lève un :ref:`auditing event ` ``builtins.input`` avec l'argument " +"``prompt`` avant de lire l'entrée." -#: ../Doc/library/functions.rst:None +#: library/functions.rst:None +#, fuzzy msgid "" "Raises an :ref:`auditing event ` ``builtins.input/result`` with " "argument ``result``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``builtins.input/result`` avec " +"l'argument ``result``." -#: ../Doc/library/functions.rst:793 +#: library/functions.rst:796 msgid "" "Raises an auditing event ``builtins.input/result`` with the result after " "successfully reading input." msgstr "" +"Lève un événement d'audit ``builtins.input/result`` avec le résultat après " +"avoir lu avec succès l'entrée." -#: ../Doc/library/functions.rst:800 -#, fuzzy +#: library/functions.rst:803 msgid "" "Return an integer object constructed from a number or string *x*, or return " "``0`` if no arguments are given. If *x* defines :meth:`__int__`, ``int(x)`` " @@ -1536,13 +1584,14 @@ msgid "" "__index__()``. If *x* defines :meth:`__trunc__`, it returns ``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 " +"Renvoie un entier construit depuis un nombre ou une chaîne *x*, ou ``0`` si " "aucun argument n'est fourni. Si *x* définit une méthode :meth:`__int__`, " -"``int(x)`` renvoie ``x.__int__()``. Si *x* définit :meth:`__trunc__`, " +"``int(x)`` renvoie ``x.__int__()``. Si *x* définit :meth:`__index__`, " +"``int(x)`` renvoie ``x.__index__()`` Si *x* définit :meth:`__trunc__`, " "``int(x)`` renvoie ``x.__trunc__()``. Les nombres à virgule flottante sont " "tronqués vers zéro." -#: ../Doc/library/functions.rst:807 +#: library/functions.rst:810 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 " @@ -1557,10 +1606,10 @@ msgid "" "``int('010', 0)`` is not legal, while ``int('010')`` is, as well as " "``int('010', 8)``." msgstr "" -"Si *x* n'est pas un nombre ou si *base* est fourni, alors *x* doit être une " +"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 ` de base *base*. Le littéral peut être précédé " -"d'un ``+`` ou d'un ``-`` (sans être séparés par un espace), et peut être " +"d'un ``+`` ou d'un ``-`` (sans être séparés par un 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 " @@ -1571,11 +1620,11 @@ msgstr "" "0)`` n'est pas légal, alors que ``int('010')`` l'est tout comme ``int('010', " "8)``." -#: ../Doc/library/functions.rst:820 +#: library/functions.rst:823 msgid "The integer type is described in :ref:`typesnumeric`." msgstr "Le type des entiers est décrit dans :ref:`typesnumeric`." -#: ../Doc/library/functions.rst:822 +#: library/functions.rst:825 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 " @@ -1588,44 +1637,54 @@ msgstr "" "meth:`base.__int__ ` au lieu de :meth:`base.__index__ " "`." -#: ../Doc/library/functions.rst:835 +#: library/functions.rst:838 msgid "Falls back to :meth:`__index__` if :meth:`__int__` is not defined." +msgstr "Revient à :meth:`__index__` si :meth:`__int__` n'est pas défini." + +#: library/functions.rst:841 +msgid "" +":class:`int` string inputs and string representations can be limited to help " +"avoid denial of service attacks. A :exc:`ValueError` is raised when the " +"limit is exceeded while converting a string *x* to an :class:`int` or when " +"converting an :class:`int` into a string would exceed the limit. See the :" +"ref:`integer string conversion length limitation ` " +"documentation." msgstr "" -#: ../Doc/library/functions.rst:841 +#: library/functions.rst:852 msgid "" -"Return true if the *object* argument is an instance of the *classinfo* " +"Return ``True`` if the *object* argument is an instance of the *classinfo* " "argument, or of a (direct, indirect or :term:`virtual `) subclass thereof. If *object* is not an object of the given type, " -"the function always returns false. If *classinfo* is a tuple of type objects " -"(or recursively, other such tuples), return true if *object* is an instance " -"of any of the types. If *classinfo* is not a type or tuple of types and such " -"tuples, a :exc:`TypeError` exception is raised." -msgstr "" -"Donne ``True`` si *object* est une instance de *classinfo*, ou d'une de ses " -"classes filles, directe, indirecte, ou :term:`virtuelle `. Si *object* n'est pas un objet du type donné, la fonction donne " -"toujours ``False``. Si *classinfo* est un *tuple* de types (ou " -"récursivement, d'autres *tuples*), donne ``True`` si *object* est une " +"the function always returns ``False``. If *classinfo* is a tuple of type " +"objects (or recursively, other such tuples), return ``True`` if *object* is " +"an instance of any of the types. If *classinfo* is not a type or tuple of " +"types and such tuples, a :exc:`TypeError` exception is raised." +msgstr "" +"Renvoie ``True`` si *object* est une instance de *classinfo*, ou d'une de " +"ses classes filles, directe, indirecte, ou :term:`abstraite `. Si *object* n'est pas un objet du type donné, la fonction renvoie " +"toujours ``False``. Si *classinfo* est un n-uplet de types (ou " +"récursivement, d'autres n-uplets), renvoie ``True`` si *object* est une " "instance de n'importe quel de ces types. Si *classinfo* n'est ni un type ni " -"un *tuple* de types (et récursivement), une exception :exc:`TypeError` est " +"un n-uplet de types (et récursivement), une exception :exc:`TypeError` est " "levée." -#: ../Doc/library/functions.rst:853 +#: library/functions.rst:864 msgid "" -"Return true if *class* is a subclass (direct, indirect or :term:`virtual " +"Return ``True`` if *class* is a subclass (direct, indirect or :term:`virtual " "`) of *classinfo*. A class is considered a subclass of " "itself. *classinfo* may be a tuple of class objects, in which case every " "entry in *classinfo* will be checked. In any other case, a :exc:`TypeError` " "exception is raised." msgstr "" -"Donne ``True`` si *class* est une classe fille (directe, indirecte, ou :term:" -"`virtual `) de *classinfo*. Une classe est considérée " -"sous-classe d'elle même. *classinfo* peut être un tuple de classes, dans ce " -"cas la vérification sera faite pour chaque classe de *classinfo*. Dans tous " -"les autres cas, :exc:`TypeError` est levée." +"Renvoie ``True`` si *class* est une classe fille (directe, indirecte ou :" +"term:`abstraite `) de *classinfo*. Une classe est " +"considérée sous-classe d'elle-même. *classinfo* peut être un n-uplet de " +"classes, dans ce 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:862 +#: library/functions.rst:873 msgid "" "Return an :term:`iterator` object. The first argument is interpreted very " "differently depending on the presence of the second argument. Without a " @@ -1639,23 +1698,23 @@ msgid "" "__next__` method; if the value returned is equal to *sentinel*, :exc:" "`StopIteration` will be raised, otherwise the value will be returned." msgstr "" -"Donne un objet :term:`iterator`. Le premier argument est interprété très " -"différemment en fonction de la présence du second argument. Sans second " -"argument, *object* doit être une collection d'objets supportant le protocole " -"d'itération (la méthode :meth:`__iter__`), ou supportant le protocole des " -"séquences (la méthode :meth:`getitem`, avec des nombres entiers commençant " -"par ``0`` comme argument). S'il ne supporte aucun de ces protocoles, :exc:" -"`TypeError` est levée. Si le second argument *sentinel* est fourni, *objet* " -"doit être appelable. L'itérateur créé dans ce cas appellera *object* dans " -"argument à chaque appel de :meth:`~iterator.__next__`, si la valeur reçue " -"est égale à *sentinel* :exc:`StopIteration` est levée, autrement la valeur " -"est donnée." - -#: ../Doc/library/functions.rst:875 +"Renvoie un objet :term:`itérateur `. Le premier argument est " +"interprété très différemment en fonction de la présence du second argument. " +"Sans second argument, *object* doit être une collection d'objets supportant " +"le protocole d'itération (la méthode :meth:`__iter__`), ou supportant le " +"protocole des séquences (la méthode :meth:`getitem`, avec des nombres " +"entiers commençant par ``0`` comme argument). S'il ne supporte aucun de ces " +"protocoles, :exc:`TypeError` est levée. Si le second argument *sentinel* est " +"fourni, *objet* doit être appelable. L'itérateur créé dans ce cas appellera " +"*object* sans argument à chaque appel de :meth:`~iterator.__next__`, si la " +"valeur reçue est égale à *sentinel* :exc:`StopIteration` est levée, " +"autrement la valeur est renvoyée." + +#: library/functions.rst:886 msgid "See also :ref:`typeiter`." msgstr "Voir aussi :ref:`typeiter`." -#: ../Doc/library/functions.rst:877 +#: library/functions.rst:888 msgid "" "One useful application of the second form of :func:`iter` is to build a " "block-reader. For example, reading fixed-width blocks from a binary database " @@ -1665,17 +1724,17 @@ msgstr "" "construire un lecteur par blocs. Par exemple, lire des blocs de taille fixe " "d'une base de donnée binaire jusqu'à ce que la fin soit atteinte ::" -#: ../Doc/library/functions.rst:889 +#: library/functions.rst:900 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 " "(such as a dictionary, set, or frozen set)." msgstr "" -"Donne la longueur (nombre d'éléments) d'un objet. L'argument peut être une " -"séquence (tel qu'une chaîne, un objet ``bytes``, ``tuple``, ``list`` ou " +"Renvoie la longueur (nombre d'éléments) d'un objet. L'argument peut être une " +"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:898 +#: library/functions.rst:909 msgid "" "Rather than being a function, :class:`list` is actually a mutable sequence " "type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." @@ -1683,20 +1742,20 @@ 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:904 +#: library/functions.rst:915 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 " "blocks, but not in class blocks. Note that at the module level, :func:" "`locals` and :func:`globals` are the same dictionary." msgstr "" -"Met à jour et donne un dictionnaire représentant la table des symboles " -"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. " -"Notez qu’au niveau d’un module, :func:`locals` :func:`globals` sont le même " -"dictionnaire." +"Met à jour et renvoie un dictionnaire représentant la table des symboles " +"locaux. Les variables libres sont renvoyés par :func:`locals` lorsqu'elle " +"est appelée dans le corps d'une fonction, mais pas dans le corps d'une " +"classe. Notez qu’au niveau d’un module, :func:`locals` et :func:`globals` " +"sont le même dictionnaire." -#: ../Doc/library/functions.rst:910 +#: library/functions.rst:921 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." @@ -1705,7 +1764,7 @@ msgstr "" "peuvent ne pas affecter les valeurs des variables locales ou libres " "utilisées par l'interpréteur." -#: ../Doc/library/functions.rst:915 +#: library/functions.rst:926 msgid "" "Return an iterator that applies *function* to every item of *iterable*, " "yielding the results. If additional *iterable* arguments are passed, " @@ -1714,33 +1773,34 @@ msgid "" "the shortest iterable is exhausted. For cases where the function inputs are " "already arranged into argument tuples, see :func:`itertools.starmap`\\." msgstr "" -"Donne un itérateur appliquant *function* à chaque élément de *iterable*, et " -"donnant ses résultats au fur et à mesure avec ``yield``. Si d'autres " +"Renvoie un itérateur appliquant *function* à chaque élément de *iterable*, " +"et donnant ses résultats au fur et à mesure avec ``yield``. Si d'autres " "*iterable* sont fournis, *function* doit prendre autant d'arguments, et sera " "appelée avec les éléments de tous les itérables en parallèle. Avec plusieurs " "itérables, l'itération s'arrête avec l'itérable le plus court. Pour les cas " -"où les arguments seraient déjà rangés sous forme de tuples, voir :func:" +"où les arguments seraient déjà rangés sous forme de n-uplets, voir :func:" "`itertools.starmap`." -#: ../Doc/library/functions.rst:926 +#: library/functions.rst:937 msgid "" "Return the largest item in an iterable or the largest of two or more " "arguments." msgstr "" -"Donne l'élément le plus grand dans un itérable, ou l'argument le plus grand " -"parmi au moins deux arguments." +"Renvoie l'élément le plus grand dans un itérable, ou l'argument le plus " +"grand parmi au moins deux arguments." -#: ../Doc/library/functions.rst:929 +#: library/functions.rst:940 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 " "arguments are provided, the largest of the positional arguments is returned." msgstr "" -"Si un seul argument positionnel est fourni, il doit être :term:`iterable`. " -"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é." +"Si un seul argument positionnel est fourni, il doit être :term:`itérable " +"`. Le plus grand élément de l'itérable est renvoyé. Si au moins " +"deux arguments positionnels sont fournis, l'argument le plus grand sera " +"renvoyé." -#: ../Doc/library/functions.rst:934 ../Doc/library/functions.rst:971 +#: library/functions.rst:982 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 " @@ -1748,13 +1808,13 @@ msgid "" "empty. If the iterable is empty and *default* is not provided, a :exc:" "`ValueError` is raised." msgstr "" -"Elle accepte deux arguments par mot clef optionnels. L'argument *key* " +"Elle accepte deux arguments par mot clé optionnels. L'argument *key* " "spécifie une fonction à un argument permettant de trier comme pour :meth:" "`list.sort`. L'argument *default* quant à lui fournit un objet à donner si " "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:940 +#: library/functions.rst:951 msgid "" "If multiple items are maximal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " @@ -1762,86 +1822,86 @@ msgid "" "nlargest(1, iterable, key=keyfunc)``." msgstr "" "Si plusieurs éléments représentent la plus grande valeur, le premier " -"rencontré est donné. C'est cohérent avec d'autres outils préservant une " +"rencontré est renvoyé. C'est cohérent avec d'autres outils préservant une " "stabilité lors du tri, tel que ``sorted(iterable, key=keyfunc, reverse=True)" "[0]`` et ``heapq.nlargest(1, iterable, key=keyfunc)``." -#: ../Doc/library/functions.rst:945 ../Doc/library/functions.rst:982 +#: library/functions.rst:993 msgid "The *default* keyword-only argument." -msgstr "L'argument exclusivement par mot clef *default*." +msgstr "L'argument exclusivement par mot clé *default*." -#: ../Doc/library/functions.rst:948 ../Doc/library/functions.rst:985 +#: library/functions.rst:996 msgid "The *key* can be ``None``." -msgstr "" +msgstr "l'argument *key* peut être ``None``." -#: ../Doc/library/functions.rst:956 +#: library/functions.rst:967 msgid "" "Return a \"memory view\" object created from the given argument. See :ref:" "`typememoryview` for more information." msgstr "" -"Donne une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :ref:" -"`typememoryview` pour plus d'informations." +"Renvoie une \"vue mémoire\" (*memory view*) créée depuis l'argument. Voir :" +"ref:`typememoryview` pour plus d'informations." -#: ../Doc/library/functions.rst:963 +#: library/functions.rst:974 msgid "" "Return the smallest item in an iterable or the smallest of two or more " "arguments." msgstr "" -"Donne le plus petit élément d'un itérable ou le plus petit d'au moins deux " +"Renvoie le plus petit élément d'un itérable ou le plus petit d'au moins deux " "arguments." -#: ../Doc/library/functions.rst:966 +#: library/functions.rst:977 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 " "arguments are provided, the smallest of the positional arguments is returned." msgstr "" -"Si un seul argument est fourni, il doit être :term:`iterable`. Le plus petit " -"élément de l'itérable est donné. Si au moins deux arguments positionnels " -"sont fournis le plus petit argument positionnel est donné." +"Si un seul argument est fourni, il doit être :term:`itérable `. Le " +"plus petit élément de l'itérable est renvoyé. Si au moins deux arguments " +"positionnels sont fournis, le plus petit argument positionnel est renvoyé." -#: ../Doc/library/functions.rst:977 +#: library/functions.rst:988 msgid "" "If multiple items are minimal, the function returns the first one " "encountered. This is consistent with other sort-stability preserving tools " "such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " "iterable, key=keyfunc)``." msgstr "" -"Si plusieurs éléments sont minimaux, la fonction donne le premier. C'est " +"Si plusieurs éléments sont minimaux, la fonction renvoie le premier. C'est " "cohérent avec d'autres outils préservant une stabilité lors du tri, tel que " "``sorted(iterable, key=keyfunc)[0]`` et ``heapq.nsmallest(1, iterable, " "key=keyfunc)``." -#: ../Doc/library/functions.rst:991 +#: library/functions.rst:1002 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 " "exhausted, otherwise :exc:`StopIteration` is raised." msgstr "" "Donne l'élément suivant d'*iterator* en appelant sa méthode :meth:`~iterator." -"__next__`. Si *default* est fourni, il sera donné si l'itérateur est épousé, " -"sinon :exc:`StopIteration` est levée." +"__next__`. Si *default* est fourni, il sera renvoyé si l'itérateur est " +"épuisé, sinon :exc:`StopIteration` est levée." -#: ../Doc/library/functions.rst:998 +#: library/functions.rst:1009 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 " "function does not accept any arguments." msgstr "" -"Donne un objet vide. :class:`object` est la classe parente de toute les " +"Renvoie un objet vide. :class:`object` est la classe parente de toutes les " "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:1004 +#: library/functions.rst:1015 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." msgstr "" ":class:`object` n'a *pas* d'attribut :attr:`~object.__dict__`, vous ne " -"pouvez donc pas assigner d'attributs arbitraire à une instance d':class:" +"pouvez donc pas assigner d'attributs arbitraires à une instance d':class:" "`object`." -#: ../Doc/library/functions.rst:1010 +#: library/functions.rst:1021 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` " @@ -1849,27 +1909,29 @@ msgid "" "integer. For example:" msgstr "" "Convertit un entier en sa représentation octale dans une chaîne préfixée de " -"``0o``. Le résultat est une expression Python valide. Si *x* n'est pas un " +"``0o``. Le résultat est une expression Python valide. Si *x* n'est pas un " "objet :class:`int`, il doit définir une méthode :meth:`__index__` qui donne " -"un entier, par exemple :" +"un entier, par exemple :" -#: ../Doc/library/functions.rst:1020 +#: library/functions.rst:1031 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." 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." +"préfixe ``0o``, vous pouvez utiliser l'une des méthodes suivantes." -#: ../Doc/library/functions.rst:1037 +#: library/functions.rst:1048 msgid "" "Open *file* and return a corresponding :term:`file object`. If the file " -"cannot be opened, an :exc:`OSError` is raised." +"cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " +"examples of how to use this function." msgstr "" -"Ouvre *file* et donne un :term:`file object` correspondant. Si le fichier ne " -"peut pas être ouvert, une :exc:`OSError` est levée." +"Ouvre *file* et donne un :term:`objet fichier ` correspondant. " +"Si le fichier ne peut pas être ouvert, une :exc:`OSError` est levée. Voir :" +"ref:`tut-files` pour plus d'exemple d'utilisation de cette fonction." -#: ../Doc/library/functions.rst:1040 +#: library/functions.rst:1052 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 " @@ -1877,13 +1939,13 @@ msgid "" "given, it is closed when the returned I/O object is closed, unless *closefd* " "is set to ``False``.)" msgstr "" -"*file* est un :term:`path-like object` donnant le chemin (absolu ou relatif " -"au répertoire courant) du fichier à ouvrir ou un nombre entier représentant " -"le descripteur de fichier à envelopper. (Si un descripteur de fichier est " -"donné, il sera fermé en même temps que l'objet *I/O* renvoyé, sauf si " -"*closefd* est mis à ``False``.)" +"*file* est un :term:`objet simili-chemin ` donnant le " +"chemin (absolu ou relatif au répertoire courant) du fichier à ouvrir ou un " +"nombre entier représentant le descripteur de fichier à envelopper. (Si un " +"descripteur de fichier est donné, il sera fermé en même temps que l'objet *I/" +"O* renvoyé, sauf si *closefd* est mis à ``False``.)" -#: ../Doc/library/functions.rst:1046 +#: library/functions.rst:1058 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. " @@ -1904,88 +1966,87 @@ msgstr "" "certains systèmes Unix signifie que *toutes* les écritures seront des ajouts " "en fin de fichier peu importe la position demandée). En mode texte, si " "*encoding* n'est pas spécifié l'encodage utilisé est dépendant de la " -"plateforme : ``locale.getpreferredencoding(False)`` est appelée pour obtenir " +"plateforme : ``locale.getpreferredencoding(False)`` est appelée pour obtenir " "l'encodage de la locale actuelle. (Pour lire et écrire des octets bruts, " "utilisez le mode binaire en laissant *encoding* non spécifié.) Les modes " -"disponibles sont :" +"disponibles sont :" -#: ../Doc/library/functions.rst:1063 +#: library/functions.rst:1075 msgid "Character" msgstr "Caractère" -#: ../Doc/library/functions.rst:1063 +#: library/functions.rst:1075 msgid "Meaning" msgstr "Signification" -#: ../Doc/library/functions.rst:1065 +#: library/functions.rst:1077 msgid "``'r'``" msgstr "``'r'``" -#: ../Doc/library/functions.rst:1065 +#: library/functions.rst:1077 msgid "open for reading (default)" msgstr "ouvre en lecture (par défaut)" -#: ../Doc/library/functions.rst:1066 +#: library/functions.rst:1078 msgid "``'w'``" msgstr "``'w'``" -#: ../Doc/library/functions.rst:1066 +#: library/functions.rst:1078 msgid "open for writing, truncating the file first" msgstr "ouvre en écriture, tronquant le fichier" -#: ../Doc/library/functions.rst:1067 +#: library/functions.rst:1079 msgid "``'x'``" msgstr "``'x'``" -#: ../Doc/library/functions.rst:1067 +#: library/functions.rst:1079 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:1068 +#: library/functions.rst:1080 msgid "``'a'``" msgstr "``'a'``" -#: ../Doc/library/functions.rst:1068 +#: library/functions.rst:1080 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:1069 +#: library/functions.rst:1081 msgid "``'b'``" msgstr "``'b'``" -#: ../Doc/library/functions.rst:1069 +#: library/functions.rst:1081 msgid "binary mode" msgstr "mode binaire" -#: ../Doc/library/functions.rst:1070 +#: library/functions.rst:1082 msgid "``'t'``" msgstr "``'t'``" -#: ../Doc/library/functions.rst:1070 +#: library/functions.rst:1082 msgid "text mode (default)" msgstr "mode texte (par défaut)" -#: ../Doc/library/functions.rst:1071 +#: library/functions.rst:1083 msgid "``'+'``" msgstr "``'+'``" -#: ../Doc/library/functions.rst:1071 -#, fuzzy +#: library/functions.rst:1083 msgid "open for updating (reading and writing)" -msgstr "ouvre un fichier pour le modifier (lire et écrire)" +msgstr "ouvre en modification (lecture et écriture)" -#: ../Doc/library/functions.rst:1074 +#: library/functions.rst:1086 #, fuzzy msgid "" "The default mode is ``'r'`` (open for reading text, synonym of ``'rt'``). " "Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " "``'r+b'`` open the file with no truncation." msgstr "" -"Les mode par défaut est ``'r'`` (ouvrir pour lire du texte, synonyme de " -"``'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." +"Le mode par défaut est ``'r'`` (ouvrir pour lire du texte, synonyme de " +"``'rt'``). Les modes ``'w+'`` et ``'w+b'`` ouvrent et vident le fichier. Les " +"modes ``'r+'`` et ``'r+b'`` ouvrent le fichier sans le vider." -#: ../Doc/library/functions.rst:1078 +#: library/functions.rst:1090 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* " @@ -1996,14 +2057,14 @@ msgid "" "specified *encoding* if given." msgstr "" "Tel que mentionné dans :ref:`io-overview`, Python fait la différence entre " -"les I/O binaire et texte. Les fichiers ouverts en mode binaire (avec ``'b'`` " -"dans *mode*) donnent leur contenu sous forme de :class:`bytes` sans " -"décodage. En mode texte (par défaut, ou lorsque ``'t'`` est dans le *mode*), " -"le contenu du fichier est donné sous forme de :class:`str`, les octets ayant " -"été décodés au préalable en utilisant un encodage déduit de l'environnement " -"ou *encoding* s'il est donné." +"les entrées-sorties binaires et textes. Les fichiers ouverts en mode binaire " +"(avec ``'b'`` dans *mode*) donnent leur contenu sous forme de :class:`bytes` " +"sans décodage. En mode texte (par défaut, ou lorsque ``'t'`` est dans le " +"*mode*), le contenu du fichier est donné sous forme de :class:`str`, les " +"octets ayant été décodés au préalable en utilisant un encodage déduit de " +"l'environnement ou *encoding* s'il est donné." -#: ../Doc/library/functions.rst:1086 +#: library/functions.rst:1098 msgid "" "There is an additional mode character permitted, ``'U'``, which no longer " "has any effect, and is considered deprecated. It previously enabled :term:" @@ -2013,21 +2074,22 @@ msgid "" msgstr "" "Il y a un mode « caractères » supplémentaire autorisé, ``’U’``, qui n'a plus " "d'effet, et est considéré comme obsolète. Auparavant, il activait les :term:" -"`universal newlines` en mode texte, qui est devenu le comportement par " -"défaut dans Python 3.0. Référez-vous à la documentation du paramètre :ref:" -"`newline ` pour plus de détails." +"`retours à la ligne universels ` en mode texte, qui est " +"devenu le comportement par défaut dans Python 3.0. Référez-vous à la " +"documentation du paramètre :ref:`newline ` pour plus " +"de détails." -#: ../Doc/library/functions.rst:1094 +#: library/functions.rst:1106 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 " "platform-independent." msgstr "" "Python ne dépend pas de l'éventuelle notion de fichier texte du système sous-" -"jacent, tout le traitement est effectué par Python lui même, et est ainsi " +"jacent, tout le traitement est effectué par Python lui-même, et est ainsi " "indépendant de la plateforme." -#: ../Doc/library/functions.rst:1098 +#: library/functions.rst:1110 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 " @@ -2040,32 +2102,32 @@ msgstr "" "binaire), 1 pour avoir un *buffer* travaillant ligne par ligne (seulement " "disponible en mode texte), ou un entier supérieur à 1 pour donner la taille " "en octets d'un tampon de taille fixe. Sans l'argument *buffering*, les " -"comportements par défaut sont les suivants :" +"comportements par défaut sont les suivants :" -#: ../Doc/library/functions.rst:1104 +#: library/functions.rst:1116 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 " "size\" and falling back on :attr:`io.DEFAULT_BUFFER_SIZE`. On many systems, " "the buffer will typically be 4096 or 8192 bytes long." msgstr "" -"Les fichiers binaires sont les dans un tampon de taille fixe, dont la taille " +"Les fichiers binaires sont mis dans un tampon de taille fixe, dont la taille " "est choisie par une heuristique essayant de déterminer la taille des blocs " "du système sous-jacent, ou en utilisant par défaut :attr:`io." "DEFAULT_BUFFER_SIZE`. Sur de nombreux systèmes, le tampon sera de 4096 ou " "8192 octets." -#: ../Doc/library/functions.rst:1109 +#: library/functions.rst:1121 msgid "" "\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " "returns ``True``) use line buffering. Other text files use the policy " "described above for binary files." msgstr "" "Les fichiers texte \"interactifs\" (fichiers pour lesquels :meth:`io.IOBase." -"isatty` donne ``True``) utilisent un tampon par lignes. Les autres fichiers " -"texte sont traités comme les fichiers binaires." +"isatty` renvoie ``True``) utilisent un tampon par lignes. Les autres " +"fichiers texte sont traités comme les fichiers binaires." -#: ../Doc/library/functions.rst:1113 +#: library/functions.rst:1125 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 " @@ -2076,10 +2138,11 @@ msgstr "" "*encoding* est le nom de l'encodage utilisé pour encoder ou décoder le " "fichier. Il doit seulement être utilisé en mode texte. L'encodage par défaut " "dépend de la plateforme (ce que :func:`locale.getpreferredencoding` donne), " -"mais n'importe quel :term:`text encoding` supporté par Python peut être " -"utilisé. Voir :mod:`codecs` pour une liste des encodages supportés." +"mais n'importe quel :term:`encodage de texte ` pris en charge " +"par Python peut être utilisé. Voir :mod:`codecs` pour une liste des " +"encodages pris en charge." -#: ../Doc/library/functions.rst:1120 +#: library/functions.rst:1132 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 " @@ -2088,13 +2151,13 @@ msgid "" "register_error` is also valid. The standard names include:" msgstr "" "*errors* est une chaîne facultative spécifiant comment les erreurs " -"d'encodage et de décodages sont gérées, ce n'est pas utilisable en mode " -"binaire. Pléthore gestionnaires d'erreurs standards sont disponibles (listés " -"sous :ref:`error-handlers`), aussi, tout nom de gestionnaire d'erreur " -"enregistré avec :func:`codecs.register_error` est aussi un argument valide. " -"Les noms standards sont :" +"d'encodage et de décodage sont gérées, ce n'est pas utilisable en mode " +"binaire. De nombreux gestionnaires d'erreurs standards sont disponibles " +"(listés sous :ref:`error-handlers`), aussi, tout nom de gestionnaire " +"d'erreur enregistré avec :func:`codecs.register_error` est aussi un argument " +"valide. Les noms standards sont :" -#: ../Doc/library/functions.rst:1128 +#: library/functions.rst:1140 msgid "" "``'strict'`` to raise a :exc:`ValueError` exception if there is an encoding " "error. The default value of ``None`` has the same effect." @@ -2102,7 +2165,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:1132 +#: library/functions.rst:1144 msgid "" "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead to " "data loss." @@ -2110,7 +2173,7 @@ msgstr "" "``'ignore'`` ignore les erreurs. Notez qu'ignorer les erreurs d'encodage " "peut mener à des pertes de données." -#: ../Doc/library/functions.rst:1135 +#: library/functions.rst:1147 msgid "" "``'replace'`` causes a replacement marker (such as ``'?'``) to be inserted " "where there is malformed data." @@ -2118,7 +2181,7 @@ msgstr "" "``'replace'`` insère un marqueur de substitution (tel que ``'?'``) en place " "des données mal formées." -#: ../Doc/library/functions.rst:1138 +#: library/functions.rst:1150 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 " @@ -2133,7 +2196,7 @@ msgstr "" "l'écriture de la donnée. C'est utile pour traiter des fichiers d'un encodage " "inconnu." -#: ../Doc/library/functions.rst:1145 +#: library/functions.rst:1157 msgid "" "``'xmlcharrefreplace'`` is only supported when writing to a file. Characters " "not supported by the encoding are replaced with the appropriate XML " @@ -2143,7 +2206,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:1149 +#: library/functions.rst:1161 msgid "" "``'backslashreplace'`` replaces malformed data by Python's backslashed " "escape sequences." @@ -2151,7 +2214,7 @@ msgstr "" "``'backslashreplace'`` remplace les données mal formées par des séquences " "d'échappement Python (utilisant des *backslash*)." -#: ../Doc/library/functions.rst:1152 +#: library/functions.rst:1164 msgid "" "``'namereplace'`` (also only supported when writing) replaces unsupported " "characters with ``\\N{...}`` escape sequences." @@ -2159,17 +2222,18 @@ 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:1160 +#: library/functions.rst:1172 msgid "" "*newline* controls how :term:`universal newlines` mode works (it only " "applies to text mode). It can be ``None``, ``''``, ``'\\n'``, ``'\\r'``, " "and ``'\\r\\n'``. It works as follows:" msgstr "" -"*newline* contrôle comment le mode :term:`universal newlines` fonctionne " -"(seulement en mode texte). Il eut être ``None``, ``''``, ``'\\n'``, " -"``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme suit :" +"*newline* contrôle comment le mode :term:`retours à la ligne universels " +"` fonctionne (seulement en mode texte). Il peut être " +"``None``, ``''``, ``'\\n'``, ``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme " +"suit :" -#: ../Doc/library/functions.rst:1164 +#: library/functions.rst:1176 msgid "" "When reading input from the stream, if *newline* is ``None``, universal " "newlines mode is enabled. Lines in the input can end in ``'\\n'``, " @@ -2180,14 +2244,14 @@ msgid "" "given string, and the line ending is returned to the caller untranslated." msgstr "" "Lors de la lecture, si *newline* est ``None``, le mode *universal newlines* " -"est activé. Les lignes lues peuvent terminer par ``'\\n'``, ``'\\r'``, ou " -"``'\\r\\n'``, qui sont remplacés par ``'\\n'``, avant d'être données à " +"est activé. Les lignes lues peuvent se terminer par ``'\\n'``, ``'\\r'``, ou " +"``'\\r\\n'``, et sont remplacés par ``'\\n'``, avant d'être retournés à " "l'appelant. S'il vaut ``'*'``, le mode *universal newline* est activé mais " -"les fin de lignes ne sont pas remplacés. S'il a n'importe quel autre valeur " -"autorisée, les lignes sont seulement terminées par la chaîne donnée, qui est " -"rendue tel qu'elle." +"les fins de ligne ne sont pas remplacées. S'il a n'importe quelle autre " +"valeur autorisée, les lignes sont seulement terminées par la chaîne donnée, " +"qui est rendue telle qu'elle." -#: ../Doc/library/functions.rst:1172 +#: library/functions.rst:1184 msgid "" "When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " "characters written are translated to the system default line separator, :" @@ -2196,12 +2260,12 @@ msgid "" "characters written are translated to the given string." msgstr "" "Lors de l'écriture, si *newline* est ``None``, chaque ``'\\n'`` est remplacé " -"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " -"*newline* est ``*`` ou ``'\\n'`` aucun remplacent n'est effectué. Si " +"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " +"*newline* est ``*`` ou ``'\\n'`` aucun remplacement n'est effectué. Si " "*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " "la chaîne donnée." -#: ../Doc/library/functions.rst:1178 +#: library/functions.rst:1190 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 " @@ -2213,7 +2277,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:1183 +#: library/functions.rst:1195 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 " @@ -2223,17 +2287,17 @@ msgid "" msgstr "" "Un *opener* personnalisé peut être utilisé en fournissant un appelable comme " "*opener*. Le descripteur de fichier de cet objet fichier sera alors obtenu " -"en appelant *opener* avec (*file*, *flags*). *opener* doit donner un " -"descripteur de fichier ouvert (fournir :mod:`os.open` en temps qu'*opener* " +"en appelant *opener* avec (*file*, *flags*). *opener* doit renvoyer un " +"descripteur de fichier ouvert (fournir :mod:`os.open` en tant qu'*opener* " "aura le même effet que donner ``None``)." -#: ../Doc/library/functions.rst:1189 +#: library/functions.rst:1201 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:1191 +#: library/functions.rst:1203 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::" @@ -2241,7 +2305,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:1204 +#: library/functions.rst:1216 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 " @@ -2255,19 +2319,19 @@ msgid "" "disabled, the raw stream, a subclass of :class:`io.RawIOBase`, :class:`io." "FileIO`, is returned." msgstr "" -"Le type de :term:`file object` donné par la fonction :func:`open` dépend du " -"mode. Lorsque :func:`open` est utilisé pour ouvrir un fichier en mode texte " -"(``w``, ``r``, ``wt``, ``rt``, etc.), il donne une classe fille de :class:" -"`io.TextIOBase` (spécifiquement : :class:`io.TextIOWrapper`). Lors de " -"l'ouverture d'un fichier en mode binaire avec tampon, la classe donnée sera " -"une fille de :class:`io.BufferedIOBase`. La classe exacte varie : en lecture " -"en mode binaire elle donne une :class:`io.BufferedReader`, en écriture et " -"ajout en mode binaire c'est une :class:`io.BufferedWriter`, et en lecture/" -"écriture, c'est une :class:`io.BufferedRandom`. Lorsque le tampon est " -"désactivé, le flux brut, une classe fille de :class:`io.RawIOBase`, :class:" -"`io.FileIO` est donnée." +"Le type d'\\ :term:`objet fichier ` renvoyé par la fonction :" +"func:`open` dépend du mode. Lorsque :func:`open` est utilisé pour ouvrir un " +"fichier en mode texte (``w``, ``r``, ``wt``, ``rt``, etc.), il renvoie une " +"classe fille de :class:`io.TextIOBase` (spécifiquement : :class:`io." +"TextIOWrapper`). Lors de l'ouverture d'un fichier en mode binaire avec " +"tampon, la classe renvoyée sera une fille de :class:`io.BufferedIOBase`. La " +"classe exacte varie : en lecture en mode binaire elle renvoie une :class:`io." +"BufferedReader`, en écriture et ajout en mode binaire c'est une :class:`io." +"BufferedWriter`, et en lecture/écriture, c'est une :class:`io." +"BufferedRandom`. Lorsque le tampon est désactivé, le flux brut, une classe " +"fille de :class:`io.RawIOBase`, :class:`io.FileIO` est renvoyée." -#: ../Doc/library/functions.rst:1225 +#: library/functions.rst:1237 msgid "" "See also the file handling modules, such as, :mod:`fileinput`, :mod:`io` " "(where :func:`open` is declared), :mod:`os`, :mod:`os.path`, :mod:" @@ -2277,33 +2341,37 @@ 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:1230 +#: library/functions.rst:1242 msgid "" "Raises an :ref:`auditing event ` ``open`` with arguments ``file``, " "``mode``, ``flags``." msgstr "" +"Lève un :ref:`auditing event ` ``open`` avec les arguments " +"``file``, ``mode``, ``flags``." -#: ../Doc/library/functions.rst:1231 +#: library/functions.rst:1243 msgid "" "The ``mode`` and ``flags`` arguments may have been modified or inferred from " "the original call." msgstr "" +"Les arguments ``mode`` et ``flags`` peuvent avoir été modifiés ou déduits de " +"l'appel original." -#: ../Doc/library/functions.rst:1237 +#: library/functions.rst:1249 msgid "The *opener* parameter was added." msgstr "Le paramètre *opener* a été ajouté." -#: ../Doc/library/functions.rst:1238 +#: library/functions.rst:1250 msgid "The ``'x'`` mode was added." msgstr "Le mode ``'x'`` a été ajouté." -#: ../Doc/library/functions.rst:1239 +#: library/functions.rst:1251 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:1240 +#: library/functions.rst:1252 msgid "" ":exc:`FileExistsError` is now raised if the file opened in exclusive " "creation mode (``'x'``) already exists." @@ -2311,15 +2379,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:1246 +#: library/functions.rst:1258 msgid "The file is now non-inheritable." msgstr "Il n'est plus possible d'hériter de *file*." -#: ../Doc/library/functions.rst:1250 +#: library/functions.rst:1262 msgid "The ``'U'`` mode." msgstr "Le mode ``'U'``." -#: ../Doc/library/functions.rst:1255 +#: library/functions.rst:1267 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 :" @@ -2329,15 +2397,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:1258 +#: library/functions.rst:1270 msgid "The ``'namereplace'`` error handler was added." msgstr "Le gestionnaire d'erreurs ``'namereplace'`` a été ajouté." -#: ../Doc/library/functions.rst:1263 +#: library/functions.rst:1275 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:1264 +#: library/functions.rst:1276 msgid "" "On Windows, opening a console buffer may return a subclass of :class:`io." "RawIOBase` other than :class:`io.FileIO`." @@ -2345,7 +2413,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:1269 +#: library/functions.rst:1281 msgid "" "Given a string representing one Unicode character, return an integer " "representing the Unicode code point of that character. For example, " @@ -2353,24 +2421,23 @@ msgid "" "``8364``. This is the inverse of :func:`chr`." msgstr "" "Renvoie le nombre entier représentant le code Unicode du caractère " -"représenté par la chaîne donnée. Par exemple, ``ord('a')`` renvoie le " -"nombre entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il " -"s'agit de l'inverse de :func:`chr`." +"représenté par la chaîne donnée. Par exemple, ``ord('a')`` renvoie le nombre " +"entier ``97`` et ``ord('€')`` (symbole Euro) renvoie ``8364``. Il s'agit de " +"l'inverse de :func:`chr`." -#: ../Doc/library/functions.rst:1277 -#, fuzzy +#: library/functions.rst:1289 msgid "" "Return *base* to the power *exp*; if *mod* is present, return *base* to the " "power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " "mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the " "power operator: ``base**exp``." msgstr "" -"Donne *x* puissance *y*, et si *z* est présent, donne *x* puissance *y* " -"modulo *z* (calculé de manière plus efficiente que ``pow(x, y) % z``). La " -"forme à deux arguments est équivalent à ``x**y``." +"Renvoie *base* puissance *exp* et, si *mod* est présent, donne *base* " +"puissance *exp* modulo *mod* (calculé de manière plus efficiente que " +"``pow(base, exp) % mod``). La forme à deux arguments ``pow(base, exp)`` est " +"équivalente à l'opérateur puissance : ``base**exp``." -#: ../Doc/library/functions.rst:1282 -#, fuzzy +#: library/functions.rst:1294 msgid "" "The arguments must have numeric types. With mixed operand types, the " "coercion rules for binary arithmetic operators apply. For :class:`int` " @@ -2385,11 +2452,9 @@ msgstr "" "`int`, le résultat sera de même type que les opérandes (après coercition) " "sauf si le second argument est négatif, dans ce cas, les arguments sont " "convertis en ``float``, et le résultat sera un ``float`` aussi. Par exemple, " -"``10**2`` donne ``100``, alors que ``10**-2`` donne ``0.01``. Si le second " -"argument est négatif, le troisième doit être omis. Si *z* est fourni, *x* et " -"*y* doivent être des entiers et *y* positif." +"``10**2`` donne ``100``, alors que ``10**-2`` donne ``0.01``." -#: ../Doc/library/functions.rst:1289 +#: library/functions.rst:1301 msgid "" "For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " "also be of integer type and *mod* must be nonzero. If *mod* is present and " @@ -2397,23 +2462,33 @@ msgid "" "``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " "*base* modulo *mod*." msgstr "" +"Pour des opérandes *base* et *exp* de type :class:`int`, si *mod* est " +"présent, *mod* doit également être de type entier et *mod* doit être non " +"nul. Si *mod* est présent et que *exp* est négatif, *base* et *mod* doivent " +"être premiers entre eux. Dans ce cas, ``pow(inv_base, -exp, mod)`` est " +"renvoyé, où *inv_base* est un inverse de *base* modulo *mod*." -#: ../Doc/library/functions.rst:1295 +#: library/functions.rst:1307 msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" -msgstr "" +msgstr "Voici un exemple de calcul d'un inverse de ``38`` modulo ``97`` ::" -#: ../Doc/library/functions.rst:1302 +#: library/functions.rst:1314 msgid "" "For :class:`int` operands, the three-argument form of ``pow`` now allows the " "second argument to be negative, permitting computation of modular inverses." msgstr "" +"Pour les opérandes :class:`int`, la forme à trois arguments de ``pow`` " +"permet maintenant au deuxième argument d'être négatif, permettant le calcul " +"des inverses modulaires." -#: ../Doc/library/functions.rst:1307 +#: library/functions.rst:1319 msgid "" "Allow keyword arguments. Formerly, only positional arguments were supported." msgstr "" +"Autorise les arguments par mots-clés. Auparavant, seuls les arguments " +"positionnels étaient autorisés." -#: ../Doc/library/functions.rst:1314 +#: library/functions.rst:1326 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 " @@ -2421,9 +2496,9 @@ msgid "" msgstr "" "Écrit *objects* dans le flux texte *file*, séparés par *sep* et suivis de " "*end*. *sep*, *end*, *file*, et *flush*, s'ils sont présents, doivent être " -"données par mot clef." +"données par mot clé." -#: ../Doc/library/functions.rst:1318 +#: library/functions.rst:1330 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* " @@ -2433,24 +2508,24 @@ msgid "" msgstr "" "Tous les arguments positionnels sont convertis en chaîne comme le fait :func:" "`str`, puis écrits sur le flux, séparés par *sep* et terminés par *end*. " -"*sep* et *end* doivent être des chaînes, ou ``None`` , indiquant de prendre " +"*sep* et *end* doivent être des chaînes, ou ``None``, indiquant de prendre " "les valeurs par défaut. Si aucun *objects* n'est donné :func:`print` écris " "seulement *end*." -#: ../Doc/library/functions.rst:1324 +#: library/functions.rst:1336 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 " "arguments are converted to text strings, :func:`print` cannot be used with " "binary mode file objects. For these, use ``file.write(...)`` instead." msgstr "" -"L'argument *file* doit être un objet avec une méthode ``write(string)``; " +"L'argument *file* doit être un objet avec une méthode ``write(string)`` ; " "s'il n'est pas fourni, ou vaut ``None``, :data:`sys.stdout` sera utilisé. " "Puisque les arguments affichés sont convertis en chaîne, :func:`print` ne " -"peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux " +"peut pas être utilisé avec des fichiers ouverts en mode binaire. Pour ceux-" "ci utilisez plutôt ``file.write(...)``." -#: ../Doc/library/functions.rst:1329 +#: library/functions.rst:1341 msgid "" "Whether output is buffered is usually determined by *file*, but if the " "*flush* keyword argument is true, the stream is forcibly flushed." @@ -2458,30 +2533,30 @@ 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:1332 +#: library/functions.rst:1344 msgid "Added the *flush* keyword argument." -msgstr "Ajout de l'argument par mot clef *flush*." +msgstr "Ajout de l'argument par mot clé *flush*." -#: ../Doc/library/functions.rst:1338 +#: library/functions.rst:1350 msgid "Return a property attribute." -msgstr "Donne un attribut propriété." +msgstr "Renvoie un attribut propriété." -#: ../Doc/library/functions.rst:1340 +#: library/functions.rst:1352 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 " "attribute value. And *doc* creates a docstring for the attribute." msgstr "" "*fget* est une fonction permettant d'obtenir la valeur d'un attribut. *fset* " -"est une fonction pour en définir la valeur. *fdel* quand à elle permet de " +"est une fonction pour en définir la valeur. *fdel* quant à elle permet de " "supprimer la valeur d'un attribut, et *doc* créé une *docstring* pour " "l'attribut." -#: ../Doc/library/functions.rst:1344 +#: library/functions.rst:1356 msgid "A typical use is to define a managed attribute ``x``::" -msgstr "Une utilisation typique : définir un attribut managé ``x`` ::" +msgstr "Une utilisation typique : définir un attribut managé ``x`` ::" -#: ../Doc/library/functions.rst:1361 +#: library/functions.rst:1373 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." @@ -2489,7 +2564,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:1364 +#: library/functions.rst:1376 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 " @@ -2499,31 +2574,31 @@ msgstr "" "S'il est donné, *doc* sera la *docstring* de l'attribut. Autrement la " "propriété copiera celle de *fget* (si elle existe). Cela rend possible la " "création de propriétés en lecture seule en utilisant simplement :func:" -"`property` comme un :term:`decorator` ::" +"`property` comme un :term:`décorateur ` ::" -#: ../Doc/library/functions.rst:1377 +#: library/functions.rst:1389 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 " -"for *voltage* to \"Get the current voltage.\"" +"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 for *voltage* to \"Get the current voltage.\"" msgstr "" "Le décorateur ``@property`` transforme la méthode :meth:`voltage` en un " "*getter* d'un attribut du même nom, et donne *\"Get the current voltage\"* " "comme *docstring* de *voltage*." -#: ../Doc/library/functions.rst:1381 +#: library/functions.rst:1393 msgid "" "A property object has :attr:`~property.getter`, :attr:`~property.setter`, " "and :attr:`~property.deleter` methods usable as decorators that create a " "copy of the property with the corresponding accessor function set to the " "decorated function. This is best explained with an example::" msgstr "" -"Un objet propriété à les méthodes :attr:`~property.getter`, :attr:`~property." +"Un objet propriété a les méthodes :attr:`~property.getter`, :attr:`~property." "setter` et :attr:`~property.deleter` utilisables comme décorateurs créant " "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:1403 +#: library/functions.rst:1415 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 " @@ -2533,19 +2608,19 @@ msgstr "" "donner aux fonctions additionnelles le même nom que la propriété (``x`` dans " "ce cas.)" -#: ../Doc/library/functions.rst:1407 +#: library/functions.rst:1419 msgid "" "The returned property object also has the attributes ``fget``, ``fset``, and " "``fdel`` corresponding to the constructor arguments." msgstr "" -"L'objet propriété donné à aussi les attributs ``fget``, ``fset`` et ``fdel`` " -"correspondant correspondants aux arguments du constructeur." +"L'objet propriété renvoyé à aussi les attributs ``fget``, ``fset`` et " +"``fdel`` correspondants aux arguments du constructeur." -#: ../Doc/library/functions.rst:1410 +#: library/functions.rst:1422 msgid "The docstrings of property objects are now writeable." msgstr "Les *docstrings* des objets propriété peuvent maintenant être écrits." -#: ../Doc/library/functions.rst:1419 +#: library/functions.rst:1431 msgid "" "Rather than being a function, :class:`range` is actually an immutable " "sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." @@ -2553,7 +2628,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:1425 +#: library/functions.rst:1437 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 " @@ -2563,37 +2638,37 @@ msgid "" "including the name and address of the object. A class can control what this " "function returns for its instances by defining a :meth:`__repr__` method." msgstr "" -"Donne une chaîne contenant une représentation affichable de l'objet. Pour de " -"nombreux types, cette fonction essaye de donner une chaîne qui donnera à son " -"tour un objet de mène valeur lorsqu'elle est passée à :func:`eval`, sinon la " -"représentation sera une chaîne entourée de chevrons contenant le nom du type " -"et quelques informations supplémentaires souvent le nom et l'adresse de " -"l'objet. Une classe peut contrôler ce que cette fonction donne pour ses " -"instances en définissant une méthode :meth:`__repr__`." +"Renvoie une chaîne contenant une représentation affichable de l'objet. Pour " +"de nombreux types, cette fonction essaye de renvoyer une chaîne qui donnera " +"à son tour un objet de même valeur lorsqu'elle est passée à :func:`eval`, " +"sinon la représentation sera une chaîne entourée de chevrons contenant le " +"nom du type et quelques informations supplémentaires, souvent le nom et " +"l'adresse de l'objet. Une classe peut contrôler ce que cette fonction " +"renvoie pour ses instances en définissant une méthode :meth:`__repr__`." -#: ../Doc/library/functions.rst:1436 +#: library/functions.rst:1448 msgid "" "Return a reverse :term:`iterator`. *seq* must be an object which has a :" "meth:`__reversed__` method or supports the sequence protocol (the :meth:" "`__len__` method and the :meth:`__getitem__` method with integer arguments " "starting at ``0``)." msgstr "" -"Donne un :term:`iterator` inversé. *seq* doit être un objet ayant une " -"méthode :meth:`__reverse__` ou supportant le protocole séquence (la méthode :" -"meth:`__len__` et la méthode :meth:`__getitem__` avec des arguments entiers " -"commençant à zéro)." +"Renvoie un :term:`itérateur ` inversé. *seq* doit être un objet " +"ayant une méthode :meth:`__reverse__` ou supportant le protocole séquence " +"(la méthode :meth:`__len__` et la méthode :meth:`__getitem__` avec des " +"arguments entiers commençant à zéro)." -#: ../Doc/library/functions.rst:1444 +#: library/functions.rst:1456 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 " "input." msgstr "" "Renvoie *number* arrondi avec une précision de *ndigits* chiffres après la " -"virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " +"virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " "est renvoyé." -#: ../Doc/library/functions.rst:1448 +#: library/functions.rst:1460 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 " @@ -2611,7 +2686,7 @@ msgstr "" "zéro, ou négatif). La valeur renvoyée est un entier si *ndigits* n'est pas " "donné, (ou est ``None``). Sinon elle est du même type que *number*." -#: ../Doc/library/functions.rst:1457 +#: library/functions.rst:1469 msgid "" "For a general Python object ``number``, ``round`` delegates to ``number." "__round__``." @@ -2619,7 +2694,7 @@ msgstr "" "Pour tout autre objet Python ``number``, ``round`` délègue à ``number." "__round__``." -#: ../Doc/library/functions.rst:1462 +#: library/functions.rst:1474 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 " @@ -2628,32 +2703,32 @@ msgid "" "information." msgstr "" "Le comportement de :func:`round` avec les nombres à virgule flottante peut " -"être surprenant : par exemple ``round(2.675, 2)`` donne ``2.67`` au lieu de " -"``2.68``. Ce n'est pas un bug, mais dû au fait que la plupart des fractions " -"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." +"être surprenant : par exemple ``round(2.675, 2)`` donne ``2.67`` au lieu de " +"``2.68``. Ce n'est pas un bogue, mais dû au fait que la plupart des " +"fractions 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:1473 +#: library/functions.rst:1485 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-" "set` for documentation about this class." msgstr "" -"Donne un nouveau :class:`set`, dont les éléments peuvent être extraits " +"Renvoie un nouveau :class:`set`, dont les éléments peuvent être extraits " "d'*iterable*. ``set`` est une classe native. Voir :class:`set` et :ref:" "`types-set` pour la documentation de cette classe." -#: ../Doc/library/functions.rst:1477 +#: library/functions.rst:1489 msgid "" "For other containers see the built-in :class:`frozenset`, :class:`list`, :" "class:`tuple`, and :class:`dict` classes, as well as the :mod:`collections` " "module." msgstr "" -"D'autres conteneurs existent, typiquement : :class:`frozenset`, :class:" +"D'autres conteneurs existent, typiquement : :class:`frozenset`, :class:" "`list`, :class:`tuple`, et :class:`dict`, ainsi que le module :mod:" "`collections`." -#: ../Doc/library/functions.rst:1484 +#: library/functions.rst:1496 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 " @@ -2661,13 +2736,13 @@ msgid "" "the object allows it. For example, ``setattr(x, 'foobar', 123)`` is " "equivalent to ``x.foobar = 123``." msgstr "" -"C'est le complément de :func:`getattr`. Les arguments sont : un objet, une " +"C'est le complément de :func:`getattr`. Les arguments sont : un objet, une " "chaîne, et une valeur de type arbitraire. La chaîne peut nommer un attribut " "existant ou un nouvel attribut. La fonction assigne la valeur à l'attribut, " "si l'objet l'autorise. Par exemple, ``setattr(x, 'foobar', 123)`` équivaut à " "``x.foobar = 123``." -#: ../Doc/library/functions.rst:1496 +#: library/functions.rst:1508 msgid "" "Return a :term:`slice` object representing the set of indices specified by " "``range(start, stop, step)``. The *start* and *step* arguments default to " @@ -2680,38 +2755,39 @@ msgid "" "i]``. See :func:`itertools.islice` for an alternate version that returns an " "iterator." msgstr "" -"Donne un objet :class:`slice` représentant un ensemble d'indices spécifiés " -"par ``range(start, stop, step)``. Les arguments *start* et *step* valent " -"``None`` par défaut. Les objets *slice* (tranches) ont les attributs " -"suivants en lecture seule : :attr:`~slice.start`, :attr:`~slice.stop`, et :" +"Renvoie une :term:`tranche ` représentant un ensemble d'indices " +"spécifiés par ``range(start, stop, step)``. Les arguments *start* et *step* " +"valent ``None`` par défaut. Les objets « tranches » ont les attributs " +"suivants en lecture seule : :attr:`~slice.start`, :attr:`~slice.stop`, et :" "attr:`~slice.step` qui valent simplement les trois arguments (ou leurs " -"valeur par défaut). Ils n'ont pas d'autres fonctionnalité explicite, " +"valeurs par défaut). Ils n'ont pas d'autre fonctionnalité explicite, " "cependant ils sont utilisés par *Numerical Python* et d'autres bibliothèques " -"tierces. Les objets *slice* sont aussi générés par la notation par indices " -"étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. Voir :" -"func:`itertools.islice` pour une version alternative donnant un itérateur." +"tierces. Les objets « tranches » sont aussi générés par la notation par " +"indice étendue. Par exemple ``a[start:stop:step]`` ou ``a[start:stop, i]``. " +"Voir :func:`itertools.islice` pour une version alternative renvoyant un " +"itérateur." -#: ../Doc/library/functions.rst:1509 +#: library/functions.rst:1521 msgid "Return a new sorted list from the items in *iterable*." -msgstr "Donne une nouvelle liste triée depuis les éléments d'*iterable*." +msgstr "Renvoie une nouvelle liste triée depuis les éléments d'*iterable*." -#: ../Doc/library/functions.rst:1511 +#: library/functions.rst:1523 msgid "" "Has two optional arguments which must be specified as keyword arguments." -msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." +msgstr "A deux arguments optionnels qui doivent être fournis par mot clé." -#: ../Doc/library/functions.rst:1513 +#: library/functions.rst:1525 msgid "" "*key* specifies a function of one argument that is used to extract a " "comparison key from each element in *iterable* (for example, ``key=str." "lower``). The default value is ``None`` (compare the elements directly)." msgstr "" -"*key* spécifie une fonction d'un argument utilisé pour extraire une clef de " +"*key* spécifie une fonction d'un argument utilisé pour extraire une clé de " "comparaison de chaque élément de l'itérable (par exemple, ``key=str." "lower``). La valeur par défaut est ``None`` (compare les éléments " "directement)." -#: ../Doc/library/functions.rst:1517 +#: library/functions.rst:1529 msgid "" "*reverse* is a boolean value. If set to ``True``, then the list elements " "are sorted as if each comparison were reversed." @@ -2719,7 +2795,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:1520 +#: library/functions.rst:1532 msgid "" "Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " "*key* function." @@ -2727,7 +2803,7 @@ msgstr "" "Utilisez :func:`functools.cmp_to_key` pour convertir l'ancienne notation " "*cmp* en une fonction *key*." -#: ../Doc/library/functions.rst:1523 +#: library/functions.rst:1535 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 " @@ -2735,21 +2811,21 @@ msgid "" "example, sort by department, then by salary grade)." msgstr "" "La fonction native :func:`sorted` est garantie stable. Un tri est stable " -"s'il garantie de ne pas changer l'ordre relatif des éléments égaux entre " -"eux. C'est utile pour trier en plusieurs passes, par exemple par département " +"s'il garantit de ne pas changer l'ordre relatif des éléments égaux entre " +"eux. C'est utile pour trier en plusieurs passes (par exemple par département " "puis par salaire)." -#: ../Doc/library/functions.rst:1528 +#: library/functions.rst:1540 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:1532 +#: library/functions.rst:1544 msgid "Transform a method into a static method." msgstr "Transforme une méthode en méthode statique." -#: ../Doc/library/functions.rst:1534 +#: library/functions.rst:1546 msgid "" "A static method does not receive an implicit first argument. To declare a " "static method, use this idiom::" @@ -2757,15 +2833,15 @@ 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:1541 +#: library/functions.rst:1553 msgid "" "The ``@staticmethod`` form is a function :term:`decorator` -- see :ref:" "`function` for details." msgstr "" -"La forme ``@staticmethod`` est un :term:`decorator` de fonction. Consultez :" -"ref:`function` pour plus de détails." +"La forme ``@staticmethod`` est un :term:`décorateur ` de " +"fonction. Consultez :ref:`function` pour plus de détails." -#: ../Doc/library/functions.rst:1544 +#: library/functions.rst:1556 msgid "" "A static method can be called either on the class (such as ``C.f()``) or on " "an instance (such as ``C().f()``)." @@ -2773,7 +2849,7 @@ msgstr "" "Elle peut être appelée soit sur une classe (tel que ``C.f()``) ou sur une " "instance (tel que ``C().f()``)." -#: ../Doc/library/functions.rst:1547 +#: library/functions.rst:1559 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 " @@ -2783,7 +2859,7 @@ msgstr "" "ou en C++. Consultez :func:`classmethod` pour une variante utile pour créer " "des constructeurs alternatifs." -#: ../Doc/library/functions.rst:1551 +#: library/functions.rst:1563 msgid "" "Like all decorators, it is also possible to call ``staticmethod`` as a " "regular function and do something with its result. This is needed in some " @@ -2797,39 +2873,37 @@ 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:1560 +#: library/functions.rst:1572 msgid "For more information on static methods, see :ref:`types`." msgstr "" "Pour plus d'informations sur les méthodes statiques, consultez :ref:`types`." -#: ../Doc/library/functions.rst:1571 +#: library/functions.rst:1583 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` " +"Renvoie une version d'*object* sous forme de :class:`str`. Voir :func:`str` " "pour plus de détails." -#: ../Doc/library/functions.rst:1573 +#: library/functions.rst:1585 msgid "" "``str`` is the built-in string :term:`class`. For general information about " "strings, see :ref:`textseq`." 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`." +"``str`` est la :term:`classe ` native des chaînes de caractères. Pour " +"des informations générales à propos des chaînes, consultez :ref:`textseq`." -#: ../Doc/library/functions.rst:1579 -#, fuzzy +#: library/functions.rst:1591 msgid "" "Sums *start* and the items of an *iterable* from left to right and returns " "the total. The *iterable*'s items are normally numbers, and the start value " "is not allowed to be a string." msgstr "" -"Additionne *start* et les éléments d'*iterable* de gauche à droite et en " -"donne le total. *start* vaut ``0`` par défaut. Les éléments d'*iterable* " -"sont normalement des nombres, et la valeur de *start* ne peut pas être une " -"chaîne." +"Additionne *start* et les éléments d'un *iterable* de gauche à droite et en " +"donne le total. Les éléments de `iterable` sont normalement des nombres, et " +"la valeur de *start* ne peut pas être une chaîne de caractères." -#: ../Doc/library/functions.rst:1583 +#: library/functions.rst:1595 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 ``''." @@ -2843,51 +2917,52 @@ 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:1589 -#, fuzzy +#: library/functions.rst:1601 msgid "The *start* parameter can be specified as a keyword argument." -msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." +msgstr "Le paramètre *start* peut être spécifié comme un argument de mot-clé." -#: ../Doc/library/functions.rst:1594 -#, fuzzy +#: library/functions.rst:1606 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 " "been overridden in a class." msgstr "" -"Donne un objet mandataire (*proxy object* en anglais) déléguant les appels " -"de méthode à une classe parente ou sœur de type *type*. C'est utile pour " -"accéder à des méthodes héritées et substituées dans la classe. L'ordre de " -"recherche est le même que celui utilisé par :func:`getattr` sauf que *type* " -"lui même est sauté." +"Renvoie un objet mandataire (*proxy object* en anglais) déléguant les appels " +"de méthode à une classe parente ou sœur de *type*. C'est utile pour accéder " +"aux méthodes héritées qui ont été remplacées dans une classe." -#: ../Doc/library/functions.rst:1598 +#: library/functions.rst:1610 msgid "" "The *object-or-type* determines the :term:`method resolution order` to be " "searched. The search starts from the class right after the *type*." msgstr "" +"Le *object-or-type* détermine quel :term:`ordre de résolution des méthodes " +"` est utilisé pour la recherche. La recherche " +"commence à partir de la classe qui suit immédiatement le *type*." -#: ../Doc/library/functions.rst:1602 +#: library/functions.rst:1614 msgid "" "For example, if :attr:`~class.__mro__` of *object-or-type* is ``D -> B -> C -" "> A -> object`` and the value of *type* is ``B``, then :func:`super` " "searches ``C -> A -> object``." msgstr "" +"Par exemple, si :attr:`~class.__mro__` de *object-or-type* est ``D -> B -> C " +"-> A -> object`` et la valeur de *type* est ``B``, alors :func:`super` " +"recherche ``C -> A -> object``." -#: ../Doc/library/functions.rst:1606 -#, fuzzy +#: library/functions.rst:1618 msgid "" "The :attr:`~class.__mro__` attribute of the *object-or-type* lists the " "method resolution search order used by both :func:`getattr` and :func:" "`super`. The attribute is dynamic and can change whenever the inheritance " "hierarchy is updated." msgstr "" -"L'attribut :attr:`~class.__mro__` de *type* liste l'ordre de recherche de la " -"méthode de résolution utilisée par :func:`getattr` et :func:`super`. " -"L'attribut est dynamique et peut changer lorsque la hiérarchie d'héritage " -"est modifiée." +"L'attribut :attr:`~class.__mro__` de *object-or-type* liste l'ordre de " +"recherche de la méthode de résolution utilisée par :func:`getattr` et :func:" +"`super`. L'attribut est dynamique et peut changer lorsque la hiérarchie " +"d'héritage est modifiée." -#: ../Doc/library/functions.rst:1611 +#: library/functions.rst:1623 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. " @@ -2899,7 +2974,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:1616 +#: library/functions.rst:1628 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 " @@ -2912,17 +2987,18 @@ msgstr "" "maintenable. Cet usage se rapproche de l'usage de *super* dans d'autres " "langages de programmation." -#: ../Doc/library/functions.rst:1621 +#: library/functions.rst:1633 +#, fuzzy 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 " "found in statically compiled languages or languages that only support single " "inheritance. This makes it possible to implement \"diamond diagrams\" where " "multiple base classes implement the same method. Good design dictates that " -"this method have the same calling signature in every case (because the order " -"of calls is determined at runtime, because that order adapts to changes in " -"the class hierarchy, and because that order can include sibling classes that " -"are unknown prior to runtime)." +"such implementations have the same calling signature in every case (because " +"the order of calls is determined at runtime, because that order adapts to " +"changes in the class hierarchy, and because that order can include sibling " +"classes that are unknown prior to runtime)." msgstr "" "Le second est la gestion d'héritage multiple coopératif dans un " "environnement d'exécution dynamique. Cet usage est unique à Python, il ne se " @@ -2930,24 +3006,27 @@ msgstr "" "gérant que l'héritage simple. Cela rend possible d'implémenter un héritage " "en diamant dans lequel plusieurs classes parentes implémentent la même " "méthode. Une bonne conception implique que chaque méthode doit avoir la même " -"signature lors de leur appels dans tous les cas (parce que l'ordre des " -"appels est déterminée à l'exécution, parce que l'ordre s'adapte aux " -"changements dans la hiérarchie, et parce que l'ordre peut inclure des " -"classes sœurs inconnues avant l'exécution)." +"signature lors de leur appel dans tous les cas (parce que l'ordre des appels " +"est déterminée à l'exécution, parce que l'ordre s'adapte aux changements " +"dans la hiérarchie, et parce que l'ordre peut inclure des classes sœurs " +"inconnues avant l'exécution)." -#: ../Doc/library/functions.rst:1631 +#: library/functions.rst:1643 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:1638 +#: library/functions.rst:1650 msgid "" "In addition to method lookups, :func:`super` also works for attribute " -"lookups. One possible use case for this is calling :term:`descriptor`\\s in " -"a parent or sibling class." +"lookups. One possible use case for this is calling :term:`descriptors " +"` in a parent or sibling class." msgstr "" +"En plus de la recherche de méthodes, :func:`super` fonctionne également pour " +"la recherche d'attributs. Un cas d'utilisation possible est l'appel d'un :" +"term:`descripteur ` d'une classe parente ou sœur." -#: ../Doc/library/functions.rst:1642 +#: library/functions.rst:1654 msgid "" "Note that :func:`super` is implemented as part of the binding process for " "explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " @@ -2964,7 +3043,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:1649 +#: library/functions.rst:1661 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 " @@ -2973,7 +3052,7 @@ msgid "" "necessary details to correctly retrieve the class being defined, as well as " "accessing the current instance for ordinary methods." msgstr "" -"Notez aussi que, en dehors de sa forme sans arguments, la :func:`super` peut " +"Notez aussi que, en dehors de sa forme sans arguments, :func:`super` peut " "être utilisée en dehors des méthodes. La forme à deux arguments est précise " "et donne tous les arguments exactement, donnant les références appropriées. " "La forme sans arguments fonctionne seulement à l'intérieur d'une définition " @@ -2981,7 +3060,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:1656 +#: library/functions.rst:1668 msgid "" "For practical suggestions on how to design cooperative classes using :func:" "`super`, see `guide to using super() `_." -#: ../Doc/library/functions.rst:1665 +#: library/functions.rst:1677 msgid "" "Rather than being a function, :class:`tuple` is actually an immutable " "sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." @@ -2999,50 +3078,65 @@ 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:1674 +#: library/functions.rst:1686 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." "__class__ `." msgstr "" -"Avec un argument, donne le type d'*object*. La valeur donnée est un objet " -"type et généralement la même que la valeur de l'attribut :attr:`object." +"Avec un argument, renvoie le type d'*object*. La valeur renvoyée est un " +"objet type et généralement la même que la valeur de l'attribut :attr:`object." "__class__ `." -#: ../Doc/library/functions.rst:1678 +#: library/functions.rst:1690 msgid "" "The :func:`isinstance` built-in function is recommended for testing the type " "of an object, because it takes subclasses into account." msgstr "" "La fonction native :func:`isinstance` est recommandée pour tester le type " -"d'un objet car elle prend en compte l'héritage." +"d'un objet, car elle prend en compte l'héritage." -#: ../Doc/library/functions.rst:1682 +#: library/functions.rst:1694 +#, fuzzy 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 " -"class name and becomes the :attr:`~definition.__name__` attribute; the " -"*bases* tuple itemizes the base classes and becomes the :attr:`~class." -"__bases__` attribute; and the *dict* dictionary is the namespace containing " -"definitions for class body and is copied to a standard dictionary to become " -"the :attr:`~object.__dict__` attribute. For example, the following two " -"statements create identical :class:`type` objects:" +"class name and becomes the :attr:`~definition.__name__` attribute. The " +"*bases* tuple contains the base classes and becomes the :attr:`~class." +"__bases__` attribute; if empty, :class:`object`, the ultimate base of all " +"classes, is added. The *dict* dictionary contains attribute and method " +"definitions for the class body; it may be copied or wrapped before becoming " +"the :attr:`~object.__dict__` attribute. The following two statements create " +"identical :class:`type` objects:" msgstr "" "Avec trois arguments, renvoie un nouveau type. C'est essentiellement une " "forme dynamique de l'instruction :keyword:`class`. La chaîne *name* est le " -"nom de la classe et deviendra l'attribut :attr:`~definition.__name__` ; le " -"*tuple* *bases* contient les classes mères et deviendra l'attribut :attr:" +"nom de la classe et deviendra l'attribut :attr:`~definition.__name__` ; le n-" +"uplet *bases* contient les classes mères et deviendra l'attribut :attr:" "`~class.__bases__` ; et le dictionnaire *dict* est l'espace de nommage " "contenant les définitions du corps de la classe, il est copié vers un " "dictionnaire standard pour devenir l'attribut :attr:`~object.__dict__`. Par " "exemple, les deux instructions suivantes créent deux instances identiques " "de :class:`type` :" -#: ../Doc/library/functions.rst:1696 +#: library/functions.rst:1709 msgid "See also :ref:`bltin-type-objects`." msgstr "Voir aussi :ref:`bltin-type-objects`." -#: ../Doc/library/functions.rst:1698 +#: library/functions.rst:1711 +msgid "" +"Keyword arguments provided to the three argument form are passed to the " +"appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " +"in the same way that keywords in a class definition (besides *metaclass*) " +"would." +msgstr "" + +#: library/functions.rst:1716 +#, fuzzy +msgid "See also :ref:`class-customization`." +msgstr "Voir aussi :ref:`typeiter`." + +#: library/functions.rst:1718 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." @@ -3051,7 +3145,7 @@ msgstr "" "ne devraient plus utiliser la forme à un argument pour récupérer le type " "d'un objet." -#: ../Doc/library/functions.rst:1704 +#: library/functions.rst:1724 msgid "" "Return the :attr:`~object.__dict__` attribute for a module, class, instance, " "or any other object with a :attr:`~object.__dict__` attribute." @@ -3060,20 +3154,20 @@ msgstr "" "instance ou de n'importe quel objet avec un attribut :attr:`~object." "__dict__`." -#: ../Doc/library/functions.rst:1707 +#: library/functions.rst:1727 msgid "" "Objects such as modules and instances have an updateable :attr:`~object." "__dict__` attribute; however, other objects may have write restrictions on " "their :attr:`~object.__dict__` attributes (for example, classes use a :class:" "`types.MappingProxyType` to prevent direct dictionary updates)." msgstr "" -"Les objets tels que les modules et les instances on un attribut :attr:" +"Les objets tels que les modules et les instances ont un attribut :attr:" "`~object.__dict__` modifiable ; Cependant, d'autres objets peuvent avoir des " "restrictions en écriture sur leurs attributs :attr:`~object.__dict__` (par " -"exemple, les classes utilisent un :class:`types.MappingProxyType` pour " +"exemple, les classes utilisent un :class:`types.MappingProxyType` pour " "éviter les modifications directes du dictionnaire)." -#: ../Doc/library/functions.rst:1712 +#: library/functions.rst:1732 msgid "" "Without an argument, :func:`vars` acts like :func:`locals`. Note, the " "locals dictionary is only useful for reads since updates to the locals " @@ -3083,11 +3177,18 @@ msgstr "" "dictionnaire des variables locales n'est utile qu'en lecture, car ses " "écritures sont ignorées." -#: ../Doc/library/functions.rst:1719 +#: library/functions.rst:1736 +msgid "" +"A :exc:`TypeError` exception is raised if an object is specified but it " +"doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " +"defines the :attr:`~object.__slots__` attribute)." +msgstr "" + +#: library/functions.rst:1742 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:1721 +#: library/functions.rst:1744 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 " @@ -3095,13 +3196,13 @@ msgid "" "argument, it returns an iterator of 1-tuples. With no arguments, it returns " "an empty iterator. Equivalent to::" msgstr "" -"Donne un itérateur de tuples, où le *i*-ième tuple contiens le *i*-ième " -"élément de chacune des séquences ou itérables fournis. L'itérateur s'arrête " -"lorsque le plus petit itérable fourni est épuisé. Avec un seul argument " -"itérable, elle donne un itérateur sur des *tuples* d'un élément. Sans " -"arguments, elle donne un itérateur vide. Équivalent à ::" +"Renvoie un itérateur de n-uplets, où le *i*\\ :sup:`e` n-uplet contient le " +"*i*\\ :sup:`e` élément de chacune des séquences ou itérables fournis. " +"L'itérateur s'arrête lorsque le plus petit itérable fourni est épuisé. Avec " +"un seul argument itérable, elle renvoie un itérateur sur des n-uplets d'un " +"élément. Sans argument, elle renvoie un itérateur vide. Équivalent à ::" -#: ../Doc/library/functions.rst:1740 +#: library/functions.rst:1763 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 " @@ -3109,13 +3210,13 @@ msgid "" "so that each output tuple has the result of ``n`` calls to the iterator. " "This has the effect of dividing the input into n-length chunks." msgstr "" -"Il est garanti que les itérables soient évalués de gauche a droite. Cela " +"Il est garanti que les itérables soient évalués de gauche à droite. Cela " "rend possible de grouper une séquence de données en groupes de taille *n* " "via ``zip(*[iter(s)]*n)``. Cela duplique le *même* itérateur ``n`` fois tel " -"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*." +"que le n-uplet 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:1746 +#: library/functions.rst:1769 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 " @@ -3123,10 +3224,10 @@ msgid "" msgstr "" ":func:`zip` ne devrait être utilisée avec des itérables de longueur " "différente que lorsque les dernières données des itérables les plus longs " -"peuvent être ignorées. Si c'est valeurs sont importantes, utilisez plutôt :" +"peuvent être ignorées. Si ces valeurs sont importantes, utilisez plutôt :" "func:`itertools.zip_longest`." -#: ../Doc/library/functions.rst:1750 +#: library/functions.rst:1773 msgid "" ":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " "list::" @@ -3134,7 +3235,7 @@ msgstr "" ":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour " "dézipper une liste ::" -#: ../Doc/library/functions.rst:1771 +#: library/functions.rst:1794 msgid "" "This is an advanced function that is not needed in everyday Python " "programming, unlike :func:`importlib.import_module`." @@ -3142,7 +3243,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:1774 +#: library/functions.rst:1797 msgid "" "This function is invoked by the :keyword:`import` statement. It can be " "replaced (by importing the :mod:`builtins` module and assigning to " @@ -3156,13 +3257,14 @@ msgstr "" "Cette fonction est invoquée via l'instruction :keyword:`import`. Elle peut " "être remplacée (en important le module :mod:`builtins` et en y remplaçant " "``builtins.__import__``) afin de changer la sémantique de l'instruction :" -"keyword:`!import`, mais c'est extrêmement déconseillé car il est plus simple " -"d'utiliser des points d'entrées pour les importations (*import hooks*, voir " -"la :pep:`302`) pour le même résultat sans gêner du code s'attendant à " -"trouver l'implémentation par défaut. L'usage direct de :func:`__import__` " -"est aussi déconseillé en faveur de :func:`importlib.import_module`." +"keyword:`!import`, mais c'est extrêmement déconseillé, car il est plus " +"simple d'utiliser des points d'entrées pour les importations (*import " +"hooks*, voir la :pep:`302`) pour le même résultat sans gêner du code " +"s'attendant à trouver l'implémentation par défaut. L'usage direct de :func:" +"`__import__` est aussi déconseillé en faveur de :func:`importlib." +"import_module`." -#: ../Doc/library/functions.rst:1783 +#: library/functions.rst:1806 msgid "" "The function imports the module *name*, potentially using the given " "*globals* and *locals* to determine how to interpret the name in a package " @@ -3178,7 +3280,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:1790 +#: library/functions.rst:1813 msgid "" "*level* specifies whether to use absolute or relative imports. ``0`` (the " "default) means only perform absolute imports. Positive values for *level* " @@ -3191,7 +3293,7 @@ msgstr "" "positive indique le nombre de dossiers parents relativement au dossier du " "module appelant :func:`__import__` (voir la :pep:`328`)." -#: ../Doc/library/functions.rst:1796 +#: library/functions.rst:1819 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 " @@ -3199,48 +3301,48 @@ msgid "" "given, the module named by *name* is returned." msgstr "" "Lorsque la variable *name* est de la forme ``package.module``, normalement, " -"le paquet le plus haut (le nom jusqu'au premier point) est donné, et *pas* " +"le paquet le plus haut (le nom jusqu'au premier point) est renvoyé, et *pas* " "le module nommé par *name*. Cependant, lorsqu'un argument *fromlist* est " -"fourni, le module nommé par *name* est donné." +"fourni, le module nommé par *name* est renvoyé." -#: ../Doc/library/functions.rst:1801 +#: library/functions.rst:1824 msgid "" "For example, the statement ``import spam`` results in bytecode resembling " "the following code::" msgstr "" -"Par exemple, l'instruction ``import spam`` donne un code intermédiaire " +"Par exemple, l'instruction ``import spam`` renvoie un code intermédiaire " "(*bytecode* en anglais) ressemblant au code suivant ::" -#: ../Doc/library/functions.rst:1806 +#: library/functions.rst:1829 msgid "The statement ``import spam.ham`` results in this call::" -msgstr "L'instruction ``import ham.ham`` appelle ::" +msgstr "L'instruction ``import spam.ham`` appelle ::" -#: ../Doc/library/functions.rst:1810 +#: library/functions.rst:1833 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." msgstr "" -"Notez comment :func:`__import__` donne le module le plus haut ici parce que " -"c'est l'objet lié à un nom par l'instruction :keyword:`import`." +"Notez comment :func:`__import__` renvoie le module le plus haut ici parce " +"que c'est l'objet lié à un nom par l'instruction :keyword:`import`." -#: ../Doc/library/functions.rst:1813 +#: library/functions.rst:1836 msgid "" "On the other hand, the statement ``from spam.ham import eggs, sausage as " "saus`` results in ::" msgstr "" -"En revanche, l'instruction ``from spam.ham import eggs, saucage as saus`` " +"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " "donne ::" -#: ../Doc/library/functions.rst:1820 +#: library/functions.rst:1843 msgid "" "Here, the ``spam.ham`` module is returned from :func:`__import__`. From " "this object, the names to import are retrieved and assigned to their " "respective names." msgstr "" -"Ici le module ``spam.ham`` est donné par :func:`__import__`. De cet objet, " +"Ici le module ``spam.ham`` est renvoyé par :func:`__import__`. De cet objet, " "les noms à importer sont récupérés et assignés à leurs noms respectifs." -#: ../Doc/library/functions.rst:1824 +#: library/functions.rst:1847 msgid "" "If you simply want to import a module (potentially within a package) by " "name, use :func:`importlib.import_module`." @@ -3248,7 +3350,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:1827 +#: library/functions.rst:1850 msgid "" "Negative values for *level* are no longer supported (which also changes the " "default value to 0)." @@ -3256,11 +3358,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:1833 +#: library/functions.rst:1856 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/functions.rst:1834 +#: library/functions.rst:1857 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 " diff --git a/library/functools.po b/library/functools.po index b4dfe428cd..fd0434ebea 100644 --- a/library/functools.po +++ b/library/functools.po @@ -3,10 +3,10 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-02-21 17:51+0100\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2019-12-11 11:16+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" @@ -15,7 +15,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.2\n" -#: ../Doc/library/functools.rst:2 +#: library/functools.rst:2 msgid "" ":mod:`functools` --- Higher-order functions and operations on callable " "objects" @@ -23,11 +23,11 @@ msgstr "" ":mod:`functools` --- Fonctions de haut niveau et opérations sur des objets " "appelables" -#: ../Doc/library/functools.rst:13 +#: library/functools.rst:13 msgid "**Source code:** :source:`Lib/functools.py`" msgstr "**Code source :** :source:`Lib/functools.py`" -#: ../Doc/library/functools.rst:17 +#: library/functools.rst:17 msgid "" "The :mod:`functools` module is for higher-order functions: functions that " "act on or return other functions. In general, any callable object can be " @@ -38,11 +38,11 @@ msgstr "" "tout objet appelable peut être utilisé comme une fonction pour les besoins " "de ce module." -#: ../Doc/library/functools.rst:21 +#: library/functools.rst:21 msgid "The :mod:`functools` module defines the following functions:" msgstr "Le module :mod:`functools` définit les fonctions suivantes :" -#: ../Doc/library/functools.rst:25 +#: library/functools.rst:25 msgid "" "Transform a method of a class into a property whose value is computed once " "and then cached as a normal attribute for the life of the instance. Similar " @@ -50,12 +50,11 @@ msgid "" "computed properties of instances that are otherwise effectively immutable." msgstr "" -#: ../Doc/library/functools.rst:30 ../Doc/library/functools.rst:70 -#: ../Doc/library/functools.rst:276 +#: library/functools.rst:70 library/functools.rst:275 msgid "Example::" msgstr "Exemple ::" -#: ../Doc/library/functools.rst:48 +#: library/functools.rst:48 msgid "" "This decorator requires that the ``__dict__`` attribute on each instance be " "a mutable mapping. This means it will not work with some types, such as " @@ -65,7 +64,7 @@ msgid "" "don't provide a ``__dict__`` attribute at all)." msgstr "" -#: ../Doc/library/functools.rst:58 +#: library/functools.rst:58 msgid "" "Transform an old-style comparison function to a :term:`key function`. Used " "with tools that accept key functions (such as :func:`sorted`, :func:`min`, :" @@ -81,7 +80,7 @@ msgstr "" "portage de fonctions python 2 utilisant des fonctions de comparaison vers " "Python 3." -#: ../Doc/library/functools.rst:65 +#: library/functools.rst:65 msgid "" "A comparison function is any callable that accept two arguments, compares " "them, and returns a negative number for less-than, zero for equality, or a " @@ -94,13 +93,13 @@ msgstr "" "un appelable qui prend un argument et retourne une autre valeur qui sera " "utilisée comme clé de tri." -#: ../Doc/library/functools.rst:74 +#: library/functools.rst:74 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/functools.rst:82 +#: library/functools.rst:82 msgid "" "Decorator to wrap a function with a memoizing callable that saves up to the " "*maxsize* most recent calls. It can save time when an expensive or I/O " @@ -111,7 +110,7 @@ msgstr "" "une fonction coûteuse en ressources est souvent appelée avec les mêmes " "arguments." -#: ../Doc/library/functools.rst:86 +#: library/functools.rst:86 msgid "" "Since a dictionary is used to cache results, the positional and keyword " "arguments to the function must be hashable." @@ -119,7 +118,7 @@ msgstr "" "Comme un dictionnaire est utilisé pour mettre en cache les résultats, les " "arguments positionnels et nommés de la fonction doivent être hachables." -#: ../Doc/library/functools.rst:89 +#: library/functools.rst:89 msgid "" "Distinct argument patterns may be considered to be distinct calls with " "separate cache entries. For example, `f(a=1, b=2)` and `f(b=2, a=1)` differ " @@ -130,24 +129,25 @@ msgstr "" "`f(a=1, b=2)` et `f(b=2, a=1)` n'ont pas leurs arguments dans le même ordre, " "ce qui peut conduire à des entrées séparées dans le cache." -#: ../Doc/library/functools.rst:94 +#: library/functools.rst:94 msgid "" "If *user_function* is specified, it must be a callable. This allows the " "*lru_cache* decorator to be applied directly to a user function, leaving the " "*maxsize* at its default value of 128::" msgstr "" +"Si *user_function* est défini, ce doit être un appelable. Ceci permet à " +"*lru_cache* d'être appliqué directement sur une fonction de l'utilisateur, " +"sans préciser *maxsize* (qui est alors défini à sa valeur par défaut, 128) ::" -#: ../Doc/library/functools.rst:103 +#: library/functools.rst:103 msgid "" "If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " -"can grow without bound. The LRU feature performs best when *maxsize* is a " -"power-of-two." +"can grow without bound." msgstr "" "Si *maxsize* est à ``None``, la fonctionnalité LRU est désactivée et le " -"cache peut grossir sans limite. La fonctionnalité LRU fonctionne mieux " -"quand *maxsize* est une puissance de deux." +"cache peut grossir sans limite." -#: ../Doc/library/functools.rst:107 +#: library/functools.rst:106 msgid "" "If *typed* is set to true, function arguments of different types will be " "cached separately. For example, ``f(3)`` and ``f(3.0)`` will be treated as " @@ -157,7 +157,7 @@ msgstr "" "séparément. Par exemple, ``f(3)`` et ``f(3.0)`` seront considérés comme des " "appels distincts avec des résultats distincts." -#: ../Doc/library/functools.rst:111 +#: library/functools.rst:110 msgid "" "To help measure the effectiveness of the cache and tune the *maxsize* " "parameter, the wrapped function is instrumented with a :func:`cache_info` " @@ -171,7 +171,7 @@ msgstr "" "*misses*, *maxsize* et *currsize*. Dans un environnement *multithread*, les " "succès et échecs d'appel du cache sont approximatifs." -#: ../Doc/library/functools.rst:117 +#: library/functools.rst:116 msgid "" "The decorator also provides a :func:`cache_clear` function for clearing or " "invalidating the cache." @@ -179,7 +179,7 @@ msgstr "" "Le décorateur fournit également une fonction :func:`cache_clear` pour vider " "ou invalider le cache." -#: ../Doc/library/functools.rst:120 +#: library/functools.rst:119 msgid "" "The original underlying function is accessible through the :attr:" "`__wrapped__` attribute. This is useful for introspection, for bypassing " @@ -189,7 +189,7 @@ msgstr "" "`__wrapped__`. Ceci est utile pour l'introspection, pour outrepasser le " "cache, ou pour ré-englober la fonction avec un cache différent." -#: ../Doc/library/functools.rst:124 +#: library/functools.rst:123 msgid "" "An `LRU (least recently used) cache `_ works best when the most recent calls are the " @@ -206,7 +206,7 @@ msgstr "" "limite du cache permet de s'assurer que le cache ne grossisse pas sans " "limite sur les processus longs comme les serveurs web." -#: ../Doc/library/functools.rst:131 +#: library/functools.rst:130 msgid "" "In general, the LRU cache should only be used when you want to reuse " "previously computed values. Accordingly, it doesn't make sense to cache " @@ -219,11 +219,11 @@ msgstr "" "mutable distinct à chaque appel ou des fonctions *impures* telles que ``!" "time()`` ou ``!random()``." -#: ../Doc/library/functools.rst:136 +#: library/functools.rst:135 msgid "Example of an LRU cache for static web content::" msgstr "Exemple d'un cache LRU pour du contenu web statique ::" -#: ../Doc/library/functools.rst:155 +#: library/functools.rst:154 msgid "" "Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a `dynamic " @@ -234,16 +234,15 @@ msgstr "" "technique de `programmation dynamique `_ ::" -#: ../Doc/library/functools.rst:175 +#: library/functools.rst:174 msgid "Added the *typed* option." msgstr "L'option *typed* a été ajoutée." -#: ../Doc/library/functools.rst:178 -#, fuzzy +#: library/functools.rst:177 msgid "Added the *user_function* option." -msgstr "L'option *typed* a été ajoutée." +msgstr "Ajout de l'option *user_function*." -#: ../Doc/library/functools.rst:183 +#: library/functools.rst:182 msgid "" "Given a class defining one or more rich comparison ordering methods, this " "class decorator supplies the rest. This simplifies the effort involved in " @@ -253,7 +252,7 @@ msgstr "" "riches, ce décorateur de classe fournit le reste. Ceci simplifie l'effort à " "fournir dans la spécification de toutes les opérations de comparaison riche :" -#: ../Doc/library/functools.rst:187 +#: library/functools.rst:186 msgid "" "The class must define one of :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, " "or :meth:`__ge__`. In addition, the class should supply an :meth:`__eq__` " @@ -263,11 +262,11 @@ msgstr "" "`__le__`, :meth:`__gt__`, or :meth:`__ge__`. De plus, la classe doit fournir " "une méthode :meth:`__eq__`." -#: ../Doc/library/functools.rst:191 +#: library/functools.rst:190 msgid "For example::" msgstr "Par exemple ::" -#: ../Doc/library/functools.rst:211 +#: library/functools.rst:210 msgid "" "While this decorator makes it easy to create well behaved totally ordered " "types, it *does* come at the cost of slower execution and more complex stack " @@ -282,7 +281,7 @@ msgstr "" "méthodes de comparaison riches résoudra normalement vos problèmes de " "rapidité." -#: ../Doc/library/functools.rst:220 +#: library/functools.rst:219 msgid "" "Returning NotImplemented from the underlying comparison function for " "unrecognised types is now supported." @@ -290,7 +289,7 @@ msgstr "" "Retourner NotImplemented dans les fonction de comparaison sous-jacentes pour " "les types non reconnus est maintenant supporté." -#: ../Doc/library/functools.rst:226 +#: library/functools.rst:225 msgid "" "Return a new :ref:`partial object` which when called will " "behave like *func* called with the positional arguments *args* and keyword " @@ -304,13 +303,13 @@ msgstr "" "à l'appel, ils sont ajoutés à *args*. Si plus d'arguments nommés sont " "fournis, ils étendent et surchargent *keywords*. À peu près équivalent à ::" -#: ../Doc/library/functools.rst:242 +#: library/functools.rst:241 msgid "" -"The :func:`partial` is used for partial function application which \"freezes" -"\" some portion of a function's arguments and/or keywords resulting in a new " -"object with a simplified signature. For example, :func:`partial` can be " -"used to create a callable that behaves like the :func:`int` function where " -"the *base* argument defaults to two:" +"The :func:`partial` is used for partial function application which " +"\"freezes\" some portion of a function's arguments and/or keywords resulting " +"in a new object with a simplified signature. For example, :func:`partial` " +"can be used to create a callable that behaves like the :func:`int` function " +"where the *base* argument defaults to two:" msgstr "" ":func:`partial` est utilisé pour une application de fonction partielle qui " "\"gèle\" une portion des arguments et/ou mots-clés d'une fonction donnant un " @@ -318,7 +317,7 @@ msgstr "" "peut être utilisé pour créer un appelable qui se comporte comme la fonction :" "func:`int` ou l'argument *base* est deux par défaut :" -#: ../Doc/library/functools.rst:257 +#: library/functools.rst:256 msgid "" "Return a new :class:`partialmethod` descriptor which behaves like :class:" "`partial` except that it is designed to be used as a method definition " @@ -328,7 +327,7 @@ msgstr "" "comme :class:`partial` sauf qu'il est fait pour être utilisé comme une " "définition de méthode plutôt que d'être appelé directement." -#: ../Doc/library/functools.rst:261 +#: library/functools.rst:260 msgid "" "*func* must be a :term:`descriptor` or a callable (objects which are both, " "like normal functions, are handled as descriptors)." @@ -336,7 +335,7 @@ msgstr "" "*func* doit être un :term:`descriptor` ou un appelable (les objets qui sont " "les deux, comme les fonction normales, sont gérés comme des descripteurs)." -#: ../Doc/library/functools.rst:264 +#: library/functools.rst:263 msgid "" "When *func* is a descriptor (such as a normal Python function, :func:" "`classmethod`, :func:`staticmethod`, :func:`abstractmethod` or another " @@ -350,7 +349,7 @@ msgstr "" "au descripteur sous-jacent, et un :ref:`objet partiel ` " "approprié est renvoyé comme résultat." -#: ../Doc/library/functools.rst:270 +#: library/functools.rst:269 msgid "" "When *func* is a non-descriptor callable, an appropriate bound method is " "created dynamically. This behaves like a normal Python function when used as " @@ -364,8 +363,7 @@ msgstr "" "premier argument positionnel, avant les *args* et *keywords* fournis au " "constructeur :class:`partialmethod`." -#: ../Doc/library/functools.rst:301 -#, fuzzy +#: library/functools.rst:300 msgid "" "Apply *function* of two arguments cumulatively to the items of *iterable*, " "from left to right, so as to reduce the iterable to a single value. For " @@ -378,26 +376,28 @@ msgid "" "the first item is returned." msgstr "" "Applique *function* avec deux arguments cumulativement aux éléments de " -"*sequence*, de gauche à droite, pour réduire la séquence à une valeur " -"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " -"``((((1+2)+3)+4)+5)``. Le premier argument, *x*, et la valeur de cumul et le " -"deuxième, *y*, est la valeur de mise à jour depuis *sequence*. Si " +"*iterable*, de gauche à droite, pour réduire la séquence à une valeur " +"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " +"``((((1+2)+3)+4)+5)``. L'argument de gauche, *x*, est la valeur de cumul et " +"celui de droite, *y*, est la valeur mise à jour depuis *iterable*. Si " "l'argument optionnel *initializer* est présent, il est placé avant les " "éléments de la séquence dans le calcul, et sert de valeur par défaut quand " -"la séquence est vide. Si *initializer* n'est pas renseigné et que " -"*sequence* ne contient qu'un élément, le premier élément est retourné." +"la séquence est vide. Si *initializer* n'est pas renseigné et que *iterable* " +"ne contient qu'un élément, le premier élément est renvoyé." -#: ../Doc/library/functools.rst:310 +#: library/functools.rst:309 msgid "Roughly equivalent to::" -msgstr "Sensiblement équivalent à : ::" +msgstr "Sensiblement équivalent à ::" -#: ../Doc/library/functools.rst:322 +#: library/functools.rst:321 msgid "" "See :func:`itertools.accumulate` for an iterator that yields all " "intermediate values." msgstr "" +"Voir :func:`itertools.accumulate` pour un itérateur qui génère toutes les " +"valeurs intermédiaires." -#: ../Doc/library/functools.rst:327 +#: library/functools.rst:326 msgid "" "Transform a function into a :term:`single-dispatch ` :term:" "`generic function`." @@ -405,7 +405,7 @@ msgstr "" "Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." -#: ../Doc/library/functools.rst:330 +#: library/functools.rst:329 msgid "" "To define a generic function, decorate it with the ``@singledispatch`` " "decorator. Note that the dispatch happens on the type of the first argument, " @@ -415,7 +415,7 @@ msgstr "" "``@singledispatch``. Noter que la distribution est effectuée sur le type du " "premier argument, donc la fonction doit être créée en conséquence ::" -#: ../Doc/library/functools.rst:341 +#: library/functools.rst:340 msgid "" "To add overloaded implementations to the function, use the :func:`register` " "attribute of the generic function. It is a decorator. For functions " @@ -427,7 +427,7 @@ msgstr "" "Pour les fonctions annotées avec des types, le décorateur infère le type du " "premier argument automatiquement ::" -#: ../Doc/library/functools.rst:359 +#: library/functools.rst:358 msgid "" "For code which doesn't use type annotations, the appropriate type argument " "can be passed explicitly to the decorator itself::" @@ -435,7 +435,7 @@ msgstr "" "Pour le code qui n’utilise pas les indications de type, le type souhaité " "peut être passé explicitement en argument au décorateur ::" -#: ../Doc/library/functools.rst:370 +#: library/functools.rst:369 msgid "" "To enable registering lambdas and pre-existing functions, the :func:" "`register` attribute can be used in a functional form::" @@ -443,7 +443,7 @@ msgstr "" "Pour permettre l'enregistrement de *lambdas* et de fonctions pré-existantes, " "l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" -#: ../Doc/library/functools.rst:378 +#: library/functools.rst:377 msgid "" "The :func:`register` attribute returns the undecorated function which " "enables decorator stacking, pickling, as well as creating unit tests for " @@ -453,7 +453,7 @@ msgstr "" "d'empiler les décorateurs, la sérialisation, et la création de tests " "unitaires pour chaque variante indépendamment ::" -#: ../Doc/library/functools.rst:392 +#: library/functools.rst:391 msgid "" "When called, the generic function dispatches on the type of the first " "argument::" @@ -461,7 +461,7 @@ msgstr "" "Quand elle est appelée, la fonction générique distribue sur le type du " "premier argument ::" -#: ../Doc/library/functools.rst:412 +#: library/functools.rst:411 msgid "" "Where there is no registered implementation for a specific type, its method " "resolution order is used to find a more generic implementation. The original " @@ -474,7 +474,7 @@ msgstr "" "est enregistrée pour le type d'``object``, et elle sera utilisée si aucune " "implémentation n'est trouvée." -#: ../Doc/library/functools.rst:418 +#: library/functools.rst:417 msgid "" "To check which implementation will the generic function choose for a given " "type, use the ``dispatch()`` attribute::" @@ -482,7 +482,7 @@ msgstr "" "Pour vérifier quelle implémentation la fonction générique choisira pour un " "type donné, utiliser l'attribut ``dispatch()`` ::" -#: ../Doc/library/functools.rst:426 +#: library/functools.rst:425 msgid "" "To access all registered implementations, use the read-only ``registry`` " "attribute::" @@ -490,21 +490,20 @@ msgstr "" "Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " "en lecture seule ``registry`` ::" -#: ../Doc/library/functools.rst:440 +#: library/functools.rst:439 msgid "The :func:`register` attribute supports using type annotations." msgstr "" "L’attribut :func:`register` gère l’utilisation des indications de type." -#: ../Doc/library/functools.rst:446 -#, fuzzy +#: library/functools.rst:445 msgid "" "Transform a method into a :term:`single-dispatch ` :term:" "`generic function`." msgstr "" -"Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." +"Transforme une méthode en une :term:`fonction générique ` :" +"term:`single-dispatch `." -#: ../Doc/library/functools.rst:449 +#: library/functools.rst:448 #, fuzzy msgid "" "To define a generic method, decorate it with the ``@singledispatchmethod`` " @@ -515,7 +514,7 @@ msgstr "" "``@singledispatch``. Noter que la distribution est effectuée sur le type du " "premier argument, donc la fonction doit être créée en conséquence ::" -#: ../Doc/library/functools.rst:466 +#: library/functools.rst:465 msgid "" "``@singledispatchmethod`` supports nesting with other decorators such as " "``@classmethod``. Note that to allow for ``dispatcher.register``, " @@ -523,13 +522,13 @@ msgid "" "``Negator`` class with the ``neg`` methods being class bound::" msgstr "" -#: ../Doc/library/functools.rst:487 +#: library/functools.rst:486 msgid "" "The same pattern can be used for other similar decorators: ``staticmethod``, " "``abstractmethod``, and others." msgstr "" -#: ../Doc/library/functools.rst:495 +#: library/functools.rst:494 msgid "" "Update a *wrapper* function to look like the *wrapped* function. The " "optional arguments are tuples to specify which attributes of the original " @@ -548,13 +547,13 @@ msgstr "" "sur la fonction englobante et quels attributs de la fonction englobante sont " "mis à jour avec les attributs de la fonction originale. Les valeurs par " "défaut de ces arguments sont les constantes au niveau du module " -"``WRAPPER_ASSIGNMENTS`` (qui assigne``__module__``, ``__name__``, " +"``WRAPPER_ASSIGNMENTS`` (qui assigne ``__module__``, ``__name__``, " "``__qualname__``, ``__annotations__`` et ``__doc__``, la chaîne de " "documentation, depuis la fonction englobante) et ``WRAPPER_UPDATES`` (qui " "met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le " "dictionnaire de l'instance)." -#: ../Doc/library/functools.rst:505 +#: library/functools.rst:504 msgid "" "To allow access to the original function for introspection and other " "purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " @@ -566,7 +565,7 @@ msgstr "" "func:`lru_cache`), cette fonction ajoute automatiquement un attribut " "``__wrapped__`` qui référence la fonction englobée." -#: ../Doc/library/functools.rst:510 +#: library/functools.rst:509 msgid "" "The main intended use for this function is in :term:`decorator` functions " "which wrap the decorated function and return the wrapper. If the wrapper " @@ -580,7 +579,7 @@ msgstr "" "décorateur, au lieu de la définition originale, métadonnées souvent bien " "moins utiles." -#: ../Doc/library/functools.rst:516 +#: library/functools.rst:515 msgid "" ":func:`update_wrapper` may be used with callables other than functions. Any " "attributes named in *assigned* or *updated* that are missing from the object " @@ -594,20 +593,20 @@ msgstr "" "dans la fonction englobante). :exc:`AttributeError` est toujours levée si le " "fonction englobante elle même a des attributs non existants dans *updated*." -#: ../Doc/library/functools.rst:522 +#: library/functools.rst:521 msgid "Automatic addition of the ``__wrapped__`` attribute." msgstr "Ajout automatique de l'attribut ``__wrapped__``." -#: ../Doc/library/functools.rst:525 +#: library/functools.rst:524 msgid "Copying of the ``__annotations__`` attribute by default." msgstr "Copie de l'attribut ``__annotations__`` par défaut." -#: ../Doc/library/functools.rst:528 +#: library/functools.rst:527 msgid "Missing attributes no longer trigger an :exc:`AttributeError`." msgstr "" "Les attributs manquants ne lèvent plus d'exception :exc:`AttributeError`." -#: ../Doc/library/functools.rst:531 +#: library/functools.rst:530 msgid "" "The ``__wrapped__`` attribute now always refers to the wrapped function, " "even if that function defined a ``__wrapped__`` attribute. (see :issue:" @@ -616,7 +615,7 @@ msgstr "" "L'attribut ``__wrapped__`` renvoie toujours la fonction englobée, même si " "cette fonction définit un attribut ``__wrapped__``. (voir :issue:`17482`)" -#: ../Doc/library/functools.rst:539 +#: library/functools.rst:538 msgid "" "This is a convenience function for invoking :func:`update_wrapper` as a " "function decorator when defining a wrapper function. It is equivalent to " @@ -628,7 +627,7 @@ msgstr "" "C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " "assigned=assigned, updated=updated)``. Par exemple ::" -#: ../Doc/library/functools.rst:565 +#: library/functools.rst:564 msgid "" "Without the use of this decorator factory, the name of the example function " "would have been ``'wrapper'``, and the docstring of the original :func:" @@ -638,11 +637,11 @@ msgstr "" "d'exemple aurait été ``'wrapper'``, et la chaîne de documentation de la " "fonction :func:`example` originale aurait été perdue." -#: ../Doc/library/functools.rst:573 +#: library/functools.rst:572 msgid ":class:`partial` Objects" msgstr "Objets :class:`partial`" -#: ../Doc/library/functools.rst:575 +#: library/functools.rst:574 msgid "" ":class:`partial` objects are callable objects created by :func:`partial`. " "They have three read-only attributes:" @@ -650,7 +649,7 @@ msgstr "" "Les objets :class:`partial` sont des objets appelables créés par :func:" "`partial`. Ils ont trois attributs en lecture seule :" -#: ../Doc/library/functools.rst:581 +#: library/functools.rst:580 msgid "" "A callable object or function. Calls to the :class:`partial` object will be " "forwarded to :attr:`func` with new arguments and keywords." @@ -658,7 +657,7 @@ msgstr "" "Un objet ou une fonction appelable. Les appels à l'objet :class:`partial` " "seront transmis à :attr:`func` avec les nouveaux arguments et mots-clés." -#: ../Doc/library/functools.rst:587 +#: library/functools.rst:586 msgid "" "The leftmost positional arguments that will be prepended to the positional " "arguments provided to a :class:`partial` object call." @@ -666,7 +665,7 @@ msgstr "" "Les arguments positionnels qui seront ajoutés avant les arguments fournis " "lors de l'appel d'un objet :class:`partial`." -#: ../Doc/library/functools.rst:593 +#: library/functools.rst:592 msgid "" "The keyword arguments that will be supplied when the :class:`partial` object " "is called." @@ -674,7 +673,7 @@ msgstr "" "Les arguments nommés qui seront fournis quand l'objet :class:`partial` est " "appelé." -#: ../Doc/library/functools.rst:596 +#: library/functools.rst:595 msgid "" ":class:`partial` objects are like :class:`function` objects in that they are " "callable, weak referencable, and can have attributes. There are some " diff --git a/library/gc.po b/library/gc.po index 192f65d571..0fa4a8b1da 100644 --- a/library/gc.po +++ b/library/gc.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: FRENCH \n" @@ -14,11 +14,11 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/gc.rst:2 +#: library/gc.rst:2 msgid ":mod:`gc` --- Garbage Collector interface" -msgstr "" +msgstr ":mod:`gc` — Interface du ramasse-miettes" -#: ../Doc/library/gc.rst:12 +#: library/gc.rst:12 msgid "" "This module provides an interface to the optional garbage collector. It " "provides the ability to disable the collector, tune the collection " @@ -31,32 +31,49 @@ msgid "" "this includes ``gc.DEBUG_SAVEALL``, causing garbage-collected objects to be " "saved in gc.garbage for inspection." msgstr "" - -#: ../Doc/library/gc.rst:23 +"Ce module constitue une interface au ramasse-miettes facultatif. Il permet " +"de désactiver le ramasse-miettes ou de régler la fréquence des passages. Il " +"fournit des options de débogage, et donne aussi accès aux objets qui ne " +"peuvent pas être détruits bien qu'ils aient été détectés comme non " +"référencés. Le ramasse-miettes vient en complément du système de comptage de " +"références, et peut donc être désactivé pour du code qui ne crée aucun cycle " +"de références. On le désactive avec ``gc.disable()``. Pour remonter à la " +"source d'une fuite de mémoire, utilisez ``gc.set_debug(gc.DEBUG_LEAK)``. " +"Notez que ``gc.DEBUG_LEAK`` inclut ``gc.DEBUG_SAVEALL``. Cette dernière " +"option fait que les objets inatteignables, au lieu d'être détruits, sont " +"placés dans la liste ``gc.garbage`` pour pouvoir y être examinés." + +#: library/gc.rst:23 msgid "The :mod:`gc` module provides the following functions:" -msgstr "" +msgstr "Le module :mod:`gc` contient les fonctions suivantes :" -#: ../Doc/library/gc.rst:28 +#: library/gc.rst:28 msgid "Enable automatic garbage collection." -msgstr "" +msgstr "Active le ramasse-miettes." -#: ../Doc/library/gc.rst:33 +#: library/gc.rst:33 msgid "Disable automatic garbage collection." -msgstr "" +msgstr "Désactive le ramasse-miettes." -#: ../Doc/library/gc.rst:38 -msgid "Returns true if automatic collection is enabled." +#: library/gc.rst:38 +msgid "Return ``True`` if automatic collection is enabled." msgstr "" +"Renvoie ``True`` ou ``False`` selon que le ramasse-miettes est activé ou non." -#: ../Doc/library/gc.rst:43 +#: library/gc.rst:43 msgid "" "With no arguments, run a full collection. The optional argument " "*generation* may be an integer specifying which generation to collect (from " "0 to 2). A :exc:`ValueError` is raised if the generation number is " "invalid. The number of unreachable objects found is returned." msgstr "" +"Déclenche un passage du ramasse-miettes. En l'absence d'argument, un passage " +"complet est effectué. Le paramètre *generation* permet de le limiter à une " +"génération entre 0 et 2. Une exception :exc:`ValueError` est levée si le " +"numéro de la génération n'est pas valide. Cette fonction renvoie le nombre " +"d'objets inatteignables qui ont été détectés." -#: ../Doc/library/gc.rst:48 +#: library/gc.rst:48 msgid "" "The free lists maintained for a number of built-in types are cleared " "whenever a full collection or collection of the highest generation (2) is " @@ -64,59 +81,87 @@ msgid "" "implementation, in particular :class:`float`." msgstr "" -#: ../Doc/library/gc.rst:56 +#: library/gc.rst:56 msgid "" "Set the garbage collection debugging flags. Debugging information will be " "written to ``sys.stderr``. See below for a list of debugging flags which " "can be combined using bit operations to control debugging." msgstr "" +"Change les options de débogage du ramasse-miettes, qui activent l'écriture " +"d'informations sur ``sys.stderr``. Une liste d'options se trouve plus bas. " +"Les options peuvent se combiner par les opérateurs bit à bit." -#: ../Doc/library/gc.rst:63 +#: library/gc.rst:63 msgid "Return the debugging flags currently set." -msgstr "" +msgstr "Renvoie les options de débogage actives." -#: ../Doc/library/gc.rst:68 +#: library/gc.rst:68 msgid "" "Returns a list of all objects tracked by the collector, excluding the list " "returned. If *generation* is not None, return only the objects tracked by " "the collector that are in that generation." msgstr "" +"Renvoie la liste des objets suivis par le ramasse-miettes, à l'exclusion de " +"cette liste elle-même. Le paramètre facultatif *generation* restreint la " +"liste aux objets d'une génération particulière." -#: ../Doc/library/gc.rst:72 +#: library/gc.rst:72 msgid "New *generation* parameter." +msgstr "ajout du paramètre *generation*." + +#: library/gc.rst:75 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " +"``generation``." msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_objects`` avec " +"l'argument ``generation``." -#: ../Doc/library/gc.rst:77 +#: library/gc.rst:79 msgid "" "Return a list of three per-generation dictionaries containing collection " "statistics since interpreter start. The number of keys may change in the " "future, but currently each dictionary will contain the following items:" msgstr "" +"Renvoie une liste de trois dictionnaires, un par génération. Ils contiennent " +"des statistiques sur l'action du ramasse-miettes depuis le lancement de " +"l'interpréteur. Les clés actuellement présentes sont les suivantes (d'autres " +"pourraient être ajoutées dans des versions ultérieures) :" -#: ../Doc/library/gc.rst:82 +#: library/gc.rst:84 msgid "``collections`` is the number of times this generation was collected;" msgstr "" +"``collections``, le nombre de fois où cette génération a été examinée par le " +"ramasse-miettes ;" -#: ../Doc/library/gc.rst:84 +#: library/gc.rst:86 msgid "" "``collected`` is the total number of objects collected inside this " "generation;" msgstr "" +"``collected``, le nombre total d'objets qui ont été détruits alors qu'ils " +"étaient dans cette génération ;" -#: ../Doc/library/gc.rst:87 +#: library/gc.rst:89 msgid "" "``uncollectable`` is the total number of objects which were found to be " "uncollectable (and were therefore moved to the :data:`garbage` list) inside " "this generation." msgstr "" +"``uncollectable``, le nombre total d'objets qui ont été identifiés comme " +"indestructibles (et donc ajoutés à la liste :data:`garbage`) au sein de " +"cette génération." -#: ../Doc/library/gc.rst:96 +#: library/gc.rst:98 msgid "" "Set the garbage collection thresholds (the collection frequency). Setting " "*threshold0* to zero disables collection." msgstr "" +"Règle les seuils de déclenchement du ramasse-miettes, qui déterminent sa " +"fréquence de passage. Si *threshold0* est mis à zéro, le ramasse-miettes ne " +"passe jamais." -#: ../Doc/library/gc.rst:99 +#: library/gc.rst:101 msgid "" "The GC classifies objects into three generations depending on how many " "collection sweeps they have survived. New objects are placed in the " @@ -129,47 +174,87 @@ msgid "" "*threshold0*, collection starts. Initially only generation ``0`` is " "examined. If generation ``0`` has been examined more than *threshold1* " "times since generation ``1`` has been examined, then generation ``1`` is " -"examined as well. Similarly, *threshold2* controls the number of " -"collections of generation ``1`` before collecting generation ``2``." -msgstr "" - -#: ../Doc/library/gc.rst:116 +"examined as well. With the third generation, things are a bit more " +"complicated, see `Collecting the oldest generation `_ for more " +"information." +msgstr "" +"Les objets sont répartis en trois générations en fonction du nombre de " +"passages du ramasse-miettes qui les ont laissés intacts. Les objets " +"fraîchement créés sont placés dans la génération la plus jeune, numéro 0. À " +"chaque fois qu'un objet persiste à la suite d'un passage du ramasse-miettes, " +"il monte d'une génération, ceci jusqu'à la génération 2, la plus âgée. Le " +"ramasse-miettes se déclenche en fonction du nombre d'allocations et de " +"destructions depuis le passage précédent : lorsque les allocations moins les " +"destructions font plus que *threshold0*, un passage est initié. Lors des " +"premiers passages, seule la génération 0 est inspectée. La génération 1 est " +"examinée périodiquement, lorsque le nombre de passages sur la génération 0 " +"depuis le dernier passage ayant aussi examiné la génération 1 vient à " +"excéder *threshold1*. Les règles pour la génération 2 sont plus complexes. " +"Pour avoir des détails, voir `Collecting the oldest generation `_ " +"(dans le guide du développeur, en anglais)." + +#: library/gc.rst:118 msgid "" "Return the current collection counts as a tuple of ``(count0, count1, " "count2)``." msgstr "" +"Renvoie un triplet des nombres totaux de passages effectués par génération." -#: ../Doc/library/gc.rst:122 +#: library/gc.rst:124 msgid "" "Return the current collection thresholds as a tuple of ``(threshold0, " "threshold1, threshold2)``." msgstr "" +"Renvoie les seuils de passage sous la forme du triplet ``(threshold0, " +"threshold1, threshold2)``." -#: ../Doc/library/gc.rst:128 +#: library/gc.rst:130 msgid "" "Return the list of objects that directly refer to any of objs. This function " "will only locate those containers which support garbage collection; " "extension types which do refer to other objects but do not support garbage " "collection will not be found." msgstr "" +"Renvoie la liste des objets qui contiennent directement une référence à l'un " +"quelconque des arguments. Il est à noter que cette fonction prend uniquement " +"en compte les objets suivis par le ramasse-miettes, ce qui exclut les " +"instances de certains types d'extension qui contiennent bien des références " +"sans pour autant prendre en charge le ramassage des miettes." -#: ../Doc/library/gc.rst:133 +#: library/gc.rst:135 msgid "" "Note that objects which have already been dereferenced, but which live in " "cycles and have not yet been collected by the garbage collector can be " "listed among the resulting referrers. To get only currently live objects, " "call :func:`collect` before calling :func:`get_referrers`." msgstr "" +"La liste renvoyée peut contenir des objets déjà isolés, mais maintenus en " +"mémoire à cause d'un cycle. Pour les exclure, appelez :func:`collect` juste " +"avant :func:`get_referrers`." -#: ../Doc/library/gc.rst:138 +#: library/gc.rst:141 msgid "" "Care must be taken when using objects returned by :func:`get_referrers` " "because some of them could still be under construction and hence in a " "temporarily invalid state. Avoid using :func:`get_referrers` for any purpose " "other than debugging." msgstr "" +"La manipulation des objets renvoyés par :func:`get_referrers` est hasardeuse " +"car ils risquent d'être encore en cours d'initialisation, donc dans un état " +"temporairement instable. Mieux vaut réserver :func:`get_referrers` au " +"débogage." -#: ../Doc/library/gc.rst:146 +#: library/gc.rst:146 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_referrers`` with " +"argument ``objs``." +msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_referrers`` avec " +"l'argument ``objs``." + +#: library/gc.rst:151 msgid "" "Return a list of objects directly referred to by any of the arguments. The " "referents returned are those objects visited by the arguments' C-level :c:" @@ -180,8 +265,27 @@ msgid "" "example, if an integer is directly reachable from an argument, that integer " "object may or may not appear in the result list." msgstr "" +"Renvoie une liste des objets pointés par les références que contiennent les " +"arguments. Ils sont déterminés en appelant, si présente, la méthode C :c:" +"member:`~PyTypeObject.tp_traverse` de chaque argument, qui visite les objets " +"auxquels cet argument fait référence. Il est à noter que :c:member:" +"`~PyTypeObject.tp_traverse` n'est définie que par les objets qui gèrent le " +"ramassage des miettes, et n'a l'obligation de visiter que les objets qui " +"peuvent potentiellement faire partie d'un cycle. Ainsi, la liste renvoyée " +"par cette fonction ne contient par forcément tous les objets qu'il est " +"possible d'atteindre à partir des arguments. Par exemple, si l'un des " +"arguments contient un entier, ce dernier objet peut être présent ou non dans " +"la liste." + +#: library/gc.rst:159 +msgid "" +"Raises an :ref:`auditing event ` ``gc.get_referents`` with " +"argument ``objs``." +msgstr "" +"Lève un :ref:`événement d'audit ` ``gc.get_referents`` avec " +"l'argument ``objs``." -#: ../Doc/library/gc.rst:157 +#: library/gc.rst:163 msgid "" "Returns ``True`` if the object is currently tracked by the garbage " "collector, ``False`` otherwise. As a general rule, instances of atomic " @@ -190,8 +294,15 @@ msgid "" "present in order to suppress the garbage collector footprint of simple " "instances (e.g. dicts containing only atomic keys and values)::" msgstr "" +"Renvoie ``True`` ou ``False`` selon que l'argument est suivi ou non par le " +"ramasse-miettes. En règle générale, les objets atomiques ne sont pas suivis, " +"tandis que les objets non-atomiques, tels que les conteneurs et instances de " +"classes définies par l'utilisateur, le sont. Cependant, certains types " +"présentent des optimisations qui permettent de se passer avantageusement du " +"ramasse-miettes dans les cas simples, comme les dictionnaires dont toutes " +"les clés et valeurs sont atomiques :" -#: ../Doc/library/gc.rst:182 +#: library/gc.rst:188 msgid "" "Freeze all the objects tracked by gc - move them to a permanent generation " "and ignore all the future collections. This can be used before a POSIX " @@ -201,145 +312,192 @@ msgid "" "in parent process and freeze before fork and enable gc in child process." msgstr "" -#: ../Doc/library/gc.rst:194 +#: library/gc.rst:200 msgid "" "Unfreeze the objects in the permanent generation, put them back into the " "oldest generation." msgstr "" -#: ../Doc/library/gc.rst:202 +#: library/gc.rst:208 msgid "Return the number of objects in the permanent generation." msgstr "" -#: ../Doc/library/gc.rst:207 +#: library/gc.rst:213 msgid "" "The following variables are provided for read-only access (you can mutate " "the values but should not rebind them):" msgstr "" +"Les variables suivantes sont publiques, mais elles ne sont pas censées être " +"modifiées (vous pouvez les muter, mais pas les redéfinir)." -#: ../Doc/library/gc.rst:212 +#: library/gc.rst:218 msgid "" "A list of objects which the collector found to be unreachable but could not " "be freed (uncollectable objects). Starting with Python 3.4, this list " "should be empty most of the time, except when using instances of C extension " -"types with a non-NULL ``tp_del`` slot." +"types with a non-``NULL`` ``tp_del`` slot." msgstr "" +"Liste des objets indestructibles, que le ramasse-miettes n'a pas pu éliminer " +"bien qu'ils soient inatteignables. Depuis Python 3.4, cette liste demeure la " +"plupart du temps vide. Elle peut se remplir si le programme fait appel à des " +"types d'extension définis en C avec un champ ``tp_del`` différent de " +"``NULL``." -#: ../Doc/library/gc.rst:217 +#: library/gc.rst:223 msgid "" "If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " "to this list rather than freed." msgstr "" +"Si :const:`DEBUG_SAVEALL` est actif, tous les objets inatteignables sont " +"ajoutés à cette liste au lieu d'être détruits." -#: ../Doc/library/gc.rst:220 +#: library/gc.rst:226 msgid "" "If this list is non-empty at :term:`interpreter shutdown`, a :exc:" "`ResourceWarning` is emitted, which is silent by default. If :const:" "`DEBUG_UNCOLLECTABLE` is set, in addition all uncollectable objects are " "printed." msgstr "" +"Si cette liste n'est pas vide lors de l':term:`arrêt de l'interpréteur " +"`, un :exc:`ResourceWarning` est émis (les " +"avertissements de ce type sont silencieux par défaut). De plus, si :const:" +"`DEBUG_UNCOLLECTABLE` est actif, tous les objets indestructibles sont " +"affichés." -#: ../Doc/library/gc.rst:226 +#: library/gc.rst:232 msgid "" "Following :pep:`442`, objects with a :meth:`__del__` method don't end up in :" "attr:`gc.garbage` anymore." msgstr "" +"en application de la :pep:`442`, les objets qui définissent une méthode :" +"meth:`__del__` ne finissent plus dans :attr:`gc.garbage`." -#: ../Doc/library/gc.rst:232 +#: library/gc.rst:238 msgid "" "A list of callbacks that will be invoked by the garbage collector before and " "after collection. The callbacks will be called with two arguments, *phase* " "and *info*." msgstr "" +"Liste de fonctions de rappel lancées par le ramasse-miettes avant et après " +"un passage. Elles prennent deux arguments, *phase* et *info*." -#: ../Doc/library/gc.rst:236 +#: library/gc.rst:242 msgid "*phase* can be one of two values:" -msgstr "" +msgstr "*phase* peut prendre deux valeurs :" -#: ../Doc/library/gc.rst:238 +#: library/gc.rst:244 msgid "\"start\": The garbage collection is about to start." -msgstr "" +msgstr "``\"start\"`` lorsque le passage du ramasse-miettes est imminent." -#: ../Doc/library/gc.rst:240 +#: library/gc.rst:246 msgid "\"stop\": The garbage collection has finished." msgstr "" +"``\"stop\"`` lorsque le passage du ramasse-miettes vient de se terminer." -#: ../Doc/library/gc.rst:242 +#: library/gc.rst:248 msgid "" "*info* is a dict providing more information for the callback. The following " "keys are currently defined:" msgstr "" +"*info* est un dictionnaire qui donne plus d'informations à la fonction de " +"rappel. Les clés suivantes sont actuellement présentes :" -#: ../Doc/library/gc.rst:245 +#: library/gc.rst:251 msgid "\"generation\": The oldest generation being collected." -msgstr "" +msgstr "``\"generation\"``, la génération la plus âgée intégrée à ce passage ;" -#: ../Doc/library/gc.rst:247 +#: library/gc.rst:253 msgid "" "\"collected\": When *phase* is \"stop\", the number of objects successfully " "collected." msgstr "" +"``\"collected\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " +"détruits avec succès ;" -#: ../Doc/library/gc.rst:250 +#: library/gc.rst:256 msgid "" "\"uncollectable\": When *phase* is \"stop\", the number of objects that " "could not be collected and were put in :data:`garbage`." msgstr "" +"``\"uncollectable\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " +"indestructibles ajoutés à :data:`garbage`." -#: ../Doc/library/gc.rst:253 +#: library/gc.rst:259 msgid "" "Applications can add their own callbacks to this list. The primary use " "cases are:" msgstr "" +"Toute application peut ajouter ses propres fonctions de rappel à cette " +"liste. Voici les principales applications :" -#: ../Doc/library/gc.rst:256 +#: library/gc.rst:262 msgid "" "Gathering statistics about garbage collection, such as how often various " "generations are collected, and how long the collection takes." msgstr "" +"Faire des statistiques sur le passage du ramasse-miettes, par exemple la " +"fréquence à laquelle chaque génération est examinée, ou bien le temps d'un " +"passage ;" -#: ../Doc/library/gc.rst:260 +#: library/gc.rst:266 msgid "" "Allowing applications to identify and clear their own uncollectable types " "when they appear in :data:`garbage`." msgstr "" +"Identifier les types définis par une application dont les instances " +"s'ajoutent à :data:`garbage` car elles sont indestructibles." -#: ../Doc/library/gc.rst:266 +#: library/gc.rst:272 msgid "The following constants are provided for use with :func:`set_debug`:" msgstr "" +"Les constantes suivantes définissent les options de débogage que l'on peut " +"passer à :func:`set_debug` :" -#: ../Doc/library/gc.rst:271 +#: library/gc.rst:277 msgid "" "Print statistics during collection. This information can be useful when " "tuning the collection frequency." msgstr "" +"Affiche des statistiques durant les passages du ramasse-miettes. Utile pour " +"pouvoir régler la fréquence des passages." -#: ../Doc/library/gc.rst:277 +#: library/gc.rst:283 msgid "Print information on collectable objects found." -msgstr "" +msgstr "Affiche des informations sur les objets détruits." -#: ../Doc/library/gc.rst:282 +#: library/gc.rst:288 msgid "" "Print information of uncollectable objects found (objects which are not " "reachable but cannot be freed by the collector). These objects will be " "added to the ``garbage`` list." msgstr "" +"Affiche des informations sur les objets indestructibles (ceux qui sont " +"ajoutés à la liste ``garbage``, qui sont inatteignables mais dont la mémoire " +"ne peut pas être libérée)." -#: ../Doc/library/gc.rst:286 +#: library/gc.rst:292 msgid "" "Also print the contents of the :data:`garbage` list at :term:`interpreter " "shutdown`, if it isn't empty." msgstr "" +"Affiche également le contenu de :data:`garbage` à l':term:`arrêt de " +"l'interpréteur `, pour peu que cette liste ne soit pas " +"vide." -#: ../Doc/library/gc.rst:292 +#: library/gc.rst:298 msgid "" "When set, all unreachable objects found will be appended to *garbage* rather " "than being freed. This can be useful for debugging a leaking program." msgstr "" +"Lorsque cette option est active, les objets inatteignables sont ajoutés à la " +"liste *garbage* au lieu d'être supprimés. Ceci est utile pour déboguer une " +"fuite de mémoire." -#: ../Doc/library/gc.rst:298 +#: library/gc.rst:304 msgid "" "The debugging flags necessary for the collector to print information about a " "leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " "DEBUG_SAVEALL``)." msgstr "" +"Combinaison des options utiles au débogage d'une fuite de mémoire. Il s'agit " +"d'un raccourci pour ``DEBUG_COLLECTABLE|DEBUG_UNCOLLECTABLE|DEBUG_SAVEALL``." diff --git a/library/getopt.po b/library/getopt.po index c300df666d..6ae9310a3e 100644 --- a/library/getopt.po +++ b/library/getopt.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" diff --git a/library/getpass.po b/library/getpass.po index 7bef8781ef..032662f87a 100644 --- a/library/getpass.po +++ b/library/getpass.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-02-08 09:58+0100\n" "PO-Revision-Date: 2018-09-28 12:39+0200\n" diff --git a/library/gettext.po b/library/gettext.po index f4065f829d..2ed1f53c0b 100644 --- a/library/gettext.po +++ b/library/gettext.po @@ -3,27 +3,27 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: 2019-05-23 23:30+0200\n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-01-13 17:57+0100\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.4\n" -#: ../Doc/library/gettext.rst:2 +#: library/gettext.rst:2 msgid ":mod:`gettext` --- Multilingual internationalization services" msgstr ":mod:`gettext` — Services d'internationalisation multilingue" -#: ../Doc/library/gettext.rst:10 +#: library/gettext.rst:10 msgid "**Source code:** :source:`Lib/gettext.py`" msgstr "**Code source :** :source:`Lib/gettext.py`" -#: ../Doc/library/gettext.rst:14 +#: library/gettext.rst:14 msgid "" "The :mod:`gettext` module provides internationalization (I18N) and " "localization (L10N) services for your Python modules and applications. It " @@ -42,18 +42,18 @@ msgstr "" "une langue naturelle, puis de fournir un catalogue de traductions pour les " "lancer ensuite dans d'autres langues naturelles." -#: ../Doc/library/gettext.rst:22 +#: library/gettext.rst:22 msgid "" "Some hints on localizing your Python modules and applications are also given." msgstr "" "Quelques astuces sur la localisation de vos modules et applications Python " "sont également données." -#: ../Doc/library/gettext.rst:26 +#: library/gettext.rst:26 msgid "GNU :program:`gettext` API" msgstr "API GNU :program:`gettext`" -#: ../Doc/library/gettext.rst:28 +#: library/gettext.rst:28 msgid "" "The :mod:`gettext` module defines the following API, which is very similar " "to the GNU :program:`gettext` API. If you use this API you will affect the " @@ -71,8 +71,7 @@ msgstr "" "module Python ou si votre application a besoin de changer de langue à la " "volée, il est plus judicieux d'utiliser l'API basée sur des classes." -#: ../Doc/library/gettext.rst:39 -#, fuzzy +#: library/gettext.rst:39 msgid "" "Bind the *domain* to the locale directory *localedir*. More concretely, :" "mod:`gettext` will look for binary :file:`.mo` files for the given domain " @@ -84,11 +83,11 @@ msgstr "" "Lie *domain* au répertoire *localedir* des localisations. Plus " "spécifiquement, :mod:`gettext` va chercher les fichiers binaires :file:`.mo` " "pour un domaine donné, en utilisant le chemin suivant (sous Unix) : :file:" -"`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où *languages* est contenu " -"respectivement dans l'une des variables d'environnement suivantes : :envvar:" +"`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où *language* est " +"recherché dans l'une des variables d'environnement suivantes : :envvar:" "`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` et :envvar:`LANG`." -#: ../Doc/library/gettext.rst:45 +#: library/gettext.rst:45 msgid "" "If *localedir* is omitted or ``None``, then the current binding for *domain* " "is returned. [#]_" @@ -96,7 +95,7 @@ msgstr "" "Si *localedir* n'est pas renseigné ou vaut ``None``, alors le lien actuel de " "*domain* est renvoyé. [#]_" -#: ../Doc/library/gettext.rst:51 +#: library/gettext.rst:51 msgid "" "Bind the *domain* to *codeset*, changing the encoding of byte strings " "returned by the :func:`lgettext`, :func:`ldgettext`, :func:`lngettext` and :" @@ -108,7 +107,7 @@ msgstr "" "`lngettext` et :func:`ldngettext`. Si *codeset* n'est pas renseigné, alors " "le lien actuel est renvoyé." -#: ../Doc/library/gettext.rst:61 +#: library/gettext.rst:61 msgid "" "Change or query the current global domain. If *domain* is ``None``, then " "the current global domain is returned, otherwise the global domain is set to " @@ -118,7 +117,7 @@ msgstr "" "alors le domaine global actuel est renvoyé. Sinon, le domaine global est " "positionné à *domain*, puis renvoyé." -#: ../Doc/library/gettext.rst:69 +#: library/gettext.rst:69 msgid "" "Return the localized translation of *message*, based on the current global " "domain, language, and locale directory. This function is usually aliased " @@ -129,13 +128,13 @@ msgstr "" "est typiquement renommée :func:`_` dans le namespace courant (voir les " "exemples ci-dessous)." -#: ../Doc/library/gettext.rst:76 +#: library/gettext.rst:76 msgid "" "Like :func:`.gettext`, but look the message up in the specified *domain*." msgstr "" "Comme :func:`gettext`, mais cherche le message dans le domaine spécifié." -#: ../Doc/library/gettext.rst:81 +#: library/gettext.rst:81 msgid "" "Like :func:`.gettext`, but consider plural forms. If a translation is found, " "apply the plural formula to *n*, and return the resulting message (some " @@ -148,7 +147,7 @@ msgstr "" "pluriel). Si aucune traduction n'a été trouvée, renvoie *singular* si *n* " "vaut 1, *plural* sinon." -#: ../Doc/library/gettext.rst:86 +#: library/gettext.rst:86 msgid "" "The Plural formula is taken from the catalog header. It is a C or Python " "expression that has a free variable *n*; the expression evaluates to the " @@ -164,26 +163,23 @@ msgstr "" "gettext.html>`__ pour la syntaxe précise à utiliser dans les fichiers :file:" "`.po` et pour les formules dans différents langues." -#: ../Doc/library/gettext.rst:96 +#: library/gettext.rst:96 msgid "" "Like :func:`ngettext`, but look the message up in the specified *domain*." msgstr "" "Comme :func:`ngettext`, mais cherche le message dans le domaine spécifié." -#: ../Doc/library/gettext.rst:104 -#, fuzzy +#: library/gettext.rst:104 msgid "" "Similar to the corresponding functions without the ``p`` in the prefix (that " "is, :func:`gettext`, :func:`dgettext`, :func:`ngettext`, :func:`dngettext`), " "but the translation is restricted to the given message *context*." msgstr "" -"Équivalent aux fonctions correspondantes non préfixées par ``l`` (:func:`." -"gettext`, :func:`dgettext`, :func:`ngettext` et :func:`dngettext`), mais la " -"traduction est retournée en tant que chaîne d'octets, encodée avec " -"l'encodage du système si aucun autre n'a été explicitement défini avec :func:" -"`bind_textdomain_codeset`." +"Semblable aux fonctions correspondantes sans le ``p`` dans le préfixe (c'est-" +"à-dire :func:`gettext`, :func:`dgettext`, :func:`ngettext` et :func:" +"`dngettext`), mais la traduction est limitée au *context* du message donné." -#: ../Doc/library/gettext.rst:116 +#: library/gettext.rst:116 msgid "" "Equivalent to the corresponding functions without the ``l`` prefix (:func:`." "gettext`, :func:`dgettext`, :func:`ngettext` and :func:`dngettext`), but the " @@ -197,8 +193,7 @@ msgstr "" "l'encodage du système si aucun autre n'a été explicitement défini avec :func:" "`bind_textdomain_codeset`." -#: ../Doc/library/gettext.rst:124 -#, fuzzy +#: library/gettext.rst:124 msgid "" "These functions should be avoided in Python 3, because they return encoded " "bytes. It's much better to use alternatives which return Unicode strings " @@ -208,16 +203,13 @@ msgid "" "with the translated strings." msgstr "" "Ces fonctions sont à éviter en Python 3 car elles renvoient des octets " -"encodés. Il est préférable d'utiliser des alternatives qui renvoient de " +"encodés. Il est préférable d'utiliser des alternatives qui renvoient de " "l'Unicode, puisque beaucoup d'applications Python voudront manipuler du " -"texte lisible par des humains plutôt que des octets. En outre, il est " +"texte lisible par des humains plutôt que des octets. En outre, il est " "possible que vous obteniez des exceptions non prévues liées à Unicode s'il y " -"a des soucis d'encodage avec les chaînes de caractères traduites. Il est " -"d'ailleurs probable que les fonctions ``l*()`` deviennent obsolètes dans les " -"versions futures de Python à cause de leurs problèmes et limitations " -"inhérents." +"a des soucis d'encodage avec les chaînes de caractères traduites." -#: ../Doc/library/gettext.rst:134 +#: library/gettext.rst:134 msgid "" "Note that GNU :program:`gettext` also defines a :func:`dcgettext` method, " "but this was deemed not useful and so it is currently unimplemented." @@ -226,15 +218,15 @@ msgstr "" "elle a été considérée comme inutile et donc actuellement marquée comme non " "implémentée." -#: ../Doc/library/gettext.rst:137 +#: library/gettext.rst:137 msgid "Here's an example of typical usage for this API::" -msgstr "Voici un exemple classique d'utilisation de cette API : ::" +msgstr "Voici un exemple classique d'utilisation de cette API ::" -#: ../Doc/library/gettext.rst:148 +#: library/gettext.rst:148 msgid "Class-based API" msgstr "API basée sur les classes" -#: ../Doc/library/gettext.rst:150 +#: library/gettext.rst:150 msgid "" "The class-based API of the :mod:`gettext` module gives you more flexibility " "and greater convenience than the GNU :program:`gettext` API. It is the " @@ -253,7 +245,7 @@ msgstr "" "de cette classe \"translations\" peuvent également s'installer dans l'espace " "de nommage natif en tant que fonction :func:`_`." -#: ../Doc/library/gettext.rst:160 +#: library/gettext.rst:160 msgid "" "This function implements the standard :file:`.mo` file search algorithm. It " "takes a *domain*, identical to what :func:`textdomain` takes. Optional " @@ -266,7 +258,7 @@ msgstr "" "func:`bindtextdomain`. Le paramètre optionnel *langages* est une liste de " "chaînes de caractères correspondants au code d'une langue." -#: ../Doc/library/gettext.rst:165 +#: library/gettext.rst:165 msgid "" "If *localedir* is not given, then the default system locale directory is " "used. [#]_ If *languages* is not given, then the following environment " @@ -285,7 +277,7 @@ msgstr "" "langues, séparées par des deux-points, qui sera utilisée pour générer la " "liste des codes de langues attendue." -#: ../Doc/library/gettext.rst:173 +#: library/gettext.rst:173 msgid "" ":func:`find` then expands and normalizes the languages, and then iterates " "through them, searching for an existing file built of these components:" @@ -294,11 +286,11 @@ msgstr "" "sur la liste obtenue afin de trouver un fichier de traduction existant et " "correspondant :" -#: ../Doc/library/gettext.rst:176 +#: library/gettext.rst:176 msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" msgstr ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" -#: ../Doc/library/gettext.rst:178 +#: library/gettext.rst:178 msgid "" "The first such file name that exists is returned by :func:`find`. If no such " "file is found, then ``None`` is returned. If *all* is given, it returns a " @@ -310,7 +302,7 @@ msgstr "" "renvoyée la liste de tous les noms de fichiers, dans l'ordre dans lequel ils " "apparaissent dans *languages* ou dans les variables d'environnement." -#: ../Doc/library/gettext.rst:186 +#: library/gettext.rst:186 msgid "" "Return a :class:`*Translations` instance based on the *domain*, *localedir*, " "and *languages*, which are first passed to :func:`find` to get a list of the " @@ -332,7 +324,7 @@ msgstr "" "chaînes de caractères traduites, dans les méthodes :meth:`~NullTranslations." "lgettext` et :meth:`~NullTranslations.lngettext`." -#: ../Doc/library/gettext.rst:196 +#: library/gettext.rst:196 msgid "" "If multiple files are found, later files are used as fallbacks for earlier " "ones. To allow setting the fallback, :func:`copy.copy` is used to clone each " @@ -344,7 +336,7 @@ msgstr "" "`copy.copy` est utilisé pour copier chaque objet traduit depuis le cache ; " "les vraies données de l'instance étant toujours recopiées dans le cache." -#: ../Doc/library/gettext.rst:201 +#: library/gettext.rst:201 msgid "" "If no :file:`.mo` file is found, this function raises :exc:`OSError` if " "*fallback* is false (which is the default), and returns a :class:" @@ -355,17 +347,17 @@ msgstr "" "*fallback* vaut *True* et une instance :class:`NullTranslations` est " "renvoyée." -#: ../Doc/library/gettext.rst:205 +#: library/gettext.rst:205 msgid ":exc:`IOError` used to be raised instead of :exc:`OSError`." msgstr "" "Avant, c'était l'exception :exc:`IOError` qui était levée, au lieu de :exc:" "`OSError`." -#: ../Doc/library/gettext.rst:209 ../Doc/library/gettext.rst:232 +#: library/gettext.rst:232 msgid "The *codeset* parameter." -msgstr "" +msgstr "Le paramètre *codeset*." -#: ../Doc/library/gettext.rst:214 +#: library/gettext.rst:214 msgid "" "This installs the function :func:`_` in Python's builtins namespace, based " "on *domain*, *localedir*, and *codeset* which are passed to the function :" @@ -375,7 +367,7 @@ msgstr "" "en se basant sur *domain*, *localedir* et *codeset*, qui sont passés en " "argument de la fonction :func:`translation`." -#: ../Doc/library/gettext.rst:218 +#: library/gettext.rst:218 msgid "" "For the *names* parameter, please see the description of the translation " "object's :meth:`~NullTranslations.install` method." @@ -383,16 +375,16 @@ msgstr "" "Concernant le paramètre *names*, se référer à la description de la méthode :" "meth:`~NullTranslations.install`." -#: ../Doc/library/gettext.rst:221 +#: library/gettext.rst:221 msgid "" "As seen below, you usually mark the strings in your application that are " "candidates for translation, by wrapping them in a call to the :func:`_` " "function, like this::" msgstr "" "Habituellement, la fonction :func:`_` est appliquée aux chaînes de " -"caractères qui doivent être traduites comme suit : ::" +"caractères qui doivent être traduites comme suit ::" -#: ../Doc/library/gettext.rst:227 +#: library/gettext.rst:227 msgid "" "For convenience, you want the :func:`_` function to be installed in Python's " "builtins namespace, so it is easily accessible in all modules of your " @@ -402,11 +394,11 @@ msgstr "" "l'espace de nommage natif de Python pour la rendre plus accessible dans tous " "les modules de votre application." -#: ../Doc/library/gettext.rst:236 +#: library/gettext.rst:236 msgid "The :class:`NullTranslations` class" msgstr "La classe :class:`NullTranslations`" -#: ../Doc/library/gettext.rst:238 +#: library/gettext.rst:238 msgid "" "Translation classes are what actually implement the translation of original " "source file message strings to translated message strings. The base class " @@ -421,7 +413,7 @@ msgstr "" "spécifiques à la traduction. Voici les méthodes de :class:`!" "NullTranslations` :" -#: ../Doc/library/gettext.rst:247 +#: library/gettext.rst:247 msgid "" "Takes an optional :term:`file object` *fp*, which is ignored by the base " "class. Initializes \"protected\" instance variables *_info* and *_charset* " @@ -435,7 +427,7 @@ msgstr "" "*_fallback* qui est définie au travers de :meth:`add_fallback`. Puis " "appelle ``self._parse(fp)`` si *fp* ne vaut pas ``None``." -#: ../Doc/library/gettext.rst:255 +#: library/gettext.rst:255 msgid "" "No-op in the base class, this method takes file object *fp*, and reads the " "data from the file, initializing its message catalog. If you have an " @@ -447,7 +439,7 @@ msgstr "" "catalogue de messages dont le format n'est pas pris en charge, vous devriez " "surcharger cette méthode pour analyser votre format." -#: ../Doc/library/gettext.rst:263 +#: library/gettext.rst:263 msgid "" "Add *fallback* as the fallback object for the current translation object. A " "translation object should consult the fallback if it cannot provide a " @@ -457,7 +449,7 @@ msgstr "" "courant. Un objet de traduction devrait interroger cet objet de " "substitution s'il ne peut fournir une traduction pour un message donné." -#: ../Doc/library/gettext.rst:270 +#: library/gettext.rst:270 msgid "" "If a fallback has been set, forward :meth:`!gettext` to the fallback. " "Otherwise, return *message*. Overridden in derived classes." @@ -465,7 +457,7 @@ msgstr "" "Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" "ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:276 +#: library/gettext.rst:276 msgid "" "If a fallback has been set, forward :meth:`!ngettext` to the fallback. " "Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " @@ -475,25 +467,23 @@ msgstr "" "ci. Sinon, renvoie *singular* si *n* vaut 1, *plural* sinon. Surchargé " "dans les classes dérivées." -#: ../Doc/library/gettext.rst:283 -#, fuzzy +#: library/gettext.rst:283 msgid "" "If a fallback has been set, forward :meth:`pgettext` to the fallback. " "Otherwise, return the translated message. Overridden in derived classes." msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" -"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." +"Si un objet de substitution a été défini, transmet :meth:`pgettext` à celui-" +"ci. Sinon, renvoie le message traduit. Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:291 -#, fuzzy +#: library/gettext.rst:291 msgid "" "If a fallback has been set, forward :meth:`npgettext` to the fallback. " "Otherwise, return the translated message. Overridden in derived classes." msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" -"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." +"Si un objet de substitution a été défini, transmet :meth:`npgettext` à celui-" +"ci. Sinon, renvoie le message traduit. Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:300 +#: library/gettext.rst:300 msgid "" "Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation is " "returned as a byte string encoded in the preferred system encoding if no " @@ -505,7 +495,7 @@ msgstr "" "système si aucun autre n'a été défini avec :meth:`set_output_charset`. " "Surchargé dans les classes dérivées." -#: ../Doc/library/gettext.rst:307 ../Doc/library/gettext.rst:463 +#: library/gettext.rst:463 msgid "" "These methods should be avoided in Python 3. See the warning for the :func:" "`lgettext` function." @@ -513,7 +503,7 @@ msgstr "" "L'utilisation de ces méthodes doivent être évitée en Python 3. Voir " "l'avertissement de la fonction :func:`lgettext`." -#: ../Doc/library/gettext.rst:315 +#: library/gettext.rst:315 msgid "" "Return the \"protected\" :attr:`_info` variable, a dictionary containing the " "metadata found in the message catalog file." @@ -521,11 +511,11 @@ msgstr "" "Renvoie l'attribut \"protégé\" :attr:`_info`, dictionnaire contenant les " "métadonnées trouvées dans le fichier de catalogue de messages." -#: ../Doc/library/gettext.rst:321 +#: library/gettext.rst:321 msgid "Return the encoding of the message catalog file." msgstr "Renvoie l'encodage du fichier du catalogue de messages." -#: ../Doc/library/gettext.rst:326 +#: library/gettext.rst:326 msgid "" "Return the encoding used to return translated messages in :meth:`.lgettext` " "and :meth:`.lngettext`." @@ -533,11 +523,11 @@ msgstr "" "Renvoie l'encodage utilisé par :meth:`.lgettext` et :meth:`.lngettext` pour " "la traduction des messages." -#: ../Doc/library/gettext.rst:334 +#: library/gettext.rst:334 msgid "Change the encoding used to return translated messages." msgstr "Modifie l'encodage utilisé pour la traduction des messages." -#: ../Doc/library/gettext.rst:341 +#: library/gettext.rst:341 msgid "" "This method installs :meth:`.gettext` into the built-in namespace, binding " "it to ``_``." @@ -545,8 +535,7 @@ msgstr "" "Cette méthode positionne :meth:`.gettext` dans l'espace de nommage natif, en " "le liant à ``_``." -#: ../Doc/library/gettext.rst:344 -#, fuzzy +#: library/gettext.rst:344 msgid "" "If the *names* parameter is given, it must be a sequence containing the " "names of functions you want to install in the builtins namespace in addition " @@ -555,10 +544,11 @@ msgid "" msgstr "" "Si le paramètre *names* est renseigné, celui-ci doit être une séquence " "contenant les noms des fonctions que vous souhaitez positionner dans " -"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " -"sont ``'gettext'``, ``'ngettext'``, ``'lgettext'`` et ``'lngettext'``." +"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " +"sont ``'gettext'``, ``'ngettext'``, ``'pgettext'``, ``'npgettext'``, " +"``'lgettext'`` et ``'lngettext'``." -#: ../Doc/library/gettext.rst:349 +#: library/gettext.rst:349 msgid "" "Note that this is only one way, albeit the most convenient way, to make the :" "func:`_` function available to your application. Because it affects the " @@ -571,9 +561,9 @@ msgstr "" "cela affecte toute l'application, et plus particulièrement l'espace de " "nommage natif, les modules localisés ne devraient jamais y positionner :func:" "`_`. Au lieu de cela, ces derniers doivent plutôt utiliser le code suivant " -"pour rendre :func:`_` accessible par leurs modules : ::" +"pour rendre :func:`_` accessible par leurs modules ::" -#: ../Doc/library/gettext.rst:359 +#: library/gettext.rst:359 msgid "" "This puts :func:`_` only in the module's global namespace and so only " "affects calls within this module." @@ -581,15 +571,15 @@ msgstr "" "Cela met :func:`_` dans l'espace de nommage global du module uniquement et " "donc n'affectera ses appels que dans ce module." -#: ../Doc/library/gettext.rst:362 +#: library/gettext.rst:362 msgid "Added ``'pgettext'`` and ``'npgettext'``." -msgstr "" +msgstr "Ajout de ``'pgettext'`` et ``'npgettext'``." -#: ../Doc/library/gettext.rst:367 +#: library/gettext.rst:367 msgid "The :class:`GNUTranslations` class" msgstr "La classe :class:`GNUTranslations`" -#: ../Doc/library/gettext.rst:369 +#: library/gettext.rst:369 msgid "" "The :mod:`gettext` module provides one additional class derived from :class:" "`NullTranslations`: :class:`GNUTranslations`. This class overrides :meth:" @@ -601,7 +591,7 @@ msgstr "" "surcharge :meth:`_parse` pour permettre de lire les fichiers GNU :program:" "`gettext` :file:`.mo` au format petit et gros-boutiste." -#: ../Doc/library/gettext.rst:374 +#: library/gettext.rst:374 msgid "" ":class:`GNUTranslations` parses optional metadata out of the translation " "catalog. It is convention with GNU :program:`gettext` to include metadata as " @@ -619,14 +609,14 @@ msgstr "" "paires de la forme ``clef: valeur`` comme définie par la :rfc:`822`, et doit " "contenir la clef ``Project-Id-Version``. Si la clef ``Content-Type`` est " "trouvée dans une métadonnée, alors la propriété ``charset`` (jeu de " -"caractères) est utilisée pour initialiser la variable d'instance \"protégée" -"\" :attr:`_charset`, sinon cette dernière est positionnée à ``None``. Si " -"l'encodage du jeu de caractères est spécifié, tous les messages " +"caractères) est utilisée pour initialiser la variable d'instance " +"\"protégée\" :attr:`_charset`, sinon cette dernière est positionnée à " +"``None``. Si l'encodage du jeu de caractères est spécifié, tous les messages " "(identifiants et chaînes de caractères) lus depuis le catalogue sont " "convertis en chaînes Unicode via cet encodage, ou via l'encodage ASCII si " "non renseigné." -#: ../Doc/library/gettext.rst:384 +#: library/gettext.rst:384 msgid "" "Since message ids are read as Unicode strings too, all :meth:`*gettext` " "methods will assume message ids as Unicode strings, not byte strings." @@ -635,7 +625,7 @@ msgstr "" "chaînes Unicode, toutes les méthodes :meth:`*gettext` les considéreront " "ainsi, et pas comme des chaînes d'octets." -#: ../Doc/library/gettext.rst:387 +#: library/gettext.rst:387 msgid "" "The entire set of key/value pairs are placed into a dictionary and set as " "the \"protected\" :attr:`_info` instance variable." @@ -643,7 +633,7 @@ msgstr "" "La totalité des paires clef / valeur est insérée dans un dictionnaire et " "représente la variable d'instance \"protégée\" :attr:`_info`." -#: ../Doc/library/gettext.rst:390 +#: library/gettext.rst:390 msgid "" "If the :file:`.mo` file's magic number is invalid, the major version number " "is unexpected, or if other problems occur while reading the file, " @@ -654,14 +644,14 @@ msgstr "" "lecture du fichier, instancier une classe :class:`GNUTranslations` peut " "lever une exception :exc:`OSError`." -#: ../Doc/library/gettext.rst:396 +#: library/gettext.rst:396 msgid "" "The following methods are overridden from the base class implementation:" msgstr "" "Les méthodes suivantes, provenant de l'implémentation de la classe de base, " "ont été surchargée :" -#: ../Doc/library/gettext.rst:400 +#: library/gettext.rst:400 msgid "" "Look up the *message* id in the catalog and return the corresponding message " "string, as a Unicode string. If there is no entry in the catalog for the " @@ -675,7 +665,7 @@ msgstr "" "défini, la recherche est transmise à la méthode :meth:`~NullTranslations." "gettext` du substitut. Sinon, l'identifiant de *message* est renvoyé." -#: ../Doc/library/gettext.rst:409 +#: library/gettext.rst:409 msgid "" "Do a plural-forms lookup of a message id. *singular* is used as the message " "id for purposes of lookup in the catalog, while *n* is used to determine " @@ -686,7 +676,7 @@ msgstr "" "catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " "La chaîne de caractère du message renvoyée est une chaîne Unicode." -#: ../Doc/library/gettext.rst:413 +#: library/gettext.rst:413 msgid "" "If the message id is not found in the catalog, and a fallback is specified, " "the request is forwarded to the fallback's :meth:`~NullTranslations." @@ -698,12 +688,11 @@ msgstr "" "`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " "lorsque *n* vaut 1, *plural* dans tous les autres cas." -#: ../Doc/library/gettext.rst:418 +#: library/gettext.rst:418 msgid "Here is an example::" -msgstr "Voici un exemple : ::" +msgstr "Voici un exemple ::" -#: ../Doc/library/gettext.rst:430 -#, fuzzy +#: library/gettext.rst:430 msgid "" "Look up the *context* and *message* id in the catalog and return the " "corresponding message string, as a Unicode string. If there is no entry in " @@ -711,38 +700,36 @@ msgid "" "the look up is forwarded to the fallback's :meth:`pgettext` method. " "Otherwise, the *message* id is returned." msgstr "" -"Recherche l'identifiant de *message* dans le catalogue et renvoie le message " -"de la chaîne de caractères correspondante comme une chaîne Unicode. Si " -"aucun identifiant n'a été trouvé pour *message* et qu'un substitut a été " -"défini, la recherche est transmise à la méthode :meth:`~NullTranslations." -"gettext` du substitut. Sinon, l'identifiant de *message* est renvoyé." +"Recherche le *contexte* et l'identifiant de *message* dans le catalogue et " +"renvoie le message de la chaîne de caractères correspondante comme une " +"chaîne Unicode. Si aucun identifiant n'a été trouvé pour l'identifiant du " +"*message* et du *context* et qu'un substitut a été défini, la recherche est " +"transmise à la méthode :meth:`pgettext` du substitut. Sinon, l'identifiant " +"de *message* est renvoyé." -#: ../Doc/library/gettext.rst:441 -#, fuzzy +#: library/gettext.rst:441 msgid "" "Do a plural-forms lookup of a message id. *singular* is used as the message " "id for purposes of lookup in the catalog, while *n* is used to determine " "which plural form to use." msgstr "" "Effectue une recherche sur les formes plurielles de l'identifiant d'un " -"message. *singular* est utilisé pour la recherche de l'identifiant dans le " -"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " -"La chaîne de caractère du message renvoyée est une chaîne Unicode." +"message. *singular* est utilisé pour la recherche de l'identifiant dans le " +"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser." -#: ../Doc/library/gettext.rst:445 -#, fuzzy +#: library/gettext.rst:445 msgid "" "If the message id for *context* is not found in the catalog, and a fallback " "is specified, the request is forwarded to the fallback's :meth:`npgettext` " "method. Otherwise, when *n* is 1 *singular* is returned, and *plural* is " "returned in all other cases." msgstr "" -"Si l'identifiant du message n'est pas trouvé dans le catalogue et qu'un " -"substitut a été spécifié, la requête est transmise à la méthode :meth:" -"`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé *singular* " +"Si l'identifiant du message pour le *context* n'est pas trouvé dans le " +"catalogue et qu'un substitut a été spécifié, la requête est transmise à la " +"méthode :meth:`npgettext` du substitut. Sinon, est renvoyé *singular* " "lorsque *n* vaut 1, *plural* dans tous les autres cas." -#: ../Doc/library/gettext.rst:456 +#: library/gettext.rst:456 msgid "" "Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation is " "returned as a byte string encoded in the preferred system encoding if no " @@ -754,11 +741,11 @@ msgstr "" "système si aucun autre n'a été défini avec :meth:`~NullTranslations." "set_output_charset`." -#: ../Doc/library/gettext.rst:470 +#: library/gettext.rst:470 msgid "Solaris message catalog support" msgstr "Support du catalogue de message de Solaris" -#: ../Doc/library/gettext.rst:472 +#: library/gettext.rst:472 msgid "" "The Solaris operating system defines its own binary :file:`.mo` file format, " "but since no documentation can be found on this format, it is not supported " @@ -768,20 +755,20 @@ msgstr "" "binaire :file:`.mo`, mais pour l'heure, puisqu'on ne peut trouver de " "documentation sur ce format, il n'est pas géré." -#: ../Doc/library/gettext.rst:478 +#: library/gettext.rst:478 msgid "The Catalog constructor" msgstr "Le constructeur *Catalog*" -#: ../Doc/library/gettext.rst:482 +#: library/gettext.rst:482 msgid "" "GNOME uses a version of the :mod:`gettext` module by James Henstridge, but " "this version has a slightly different API. Its documented usage was::" msgstr "" "GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " "qui a une API légèrement différente. D'après la documentation, elle " -"s'utilise ainsi : ::" +"s'utilise ainsi ::" -#: ../Doc/library/gettext.rst:490 +#: library/gettext.rst:490 msgid "" "For compatibility with this older module, the function :func:`Catalog` is an " "alias for the :func:`translation` function described above." @@ -789,7 +776,7 @@ msgstr "" "Pour des raisons de compatibilité avec cet ancien module, la fonction :func:" "`Catalog` est un alias de la fonction :func:`translation` décrite ci-dessous." -#: ../Doc/library/gettext.rst:493 +#: library/gettext.rst:493 msgid "" "One difference between this module and Henstridge's: his catalog objects " "supported access through a mapping API, but this appears to be unused and so " @@ -799,11 +786,11 @@ msgstr "" "catalogue étaient accessibles depuis un schéma de l'API, mais cela semblait " "ne pas être utilisé et donc n'est pas pris en charge." -#: ../Doc/library/gettext.rst:499 +#: library/gettext.rst:499 msgid "Internationalizing your programs and modules" msgstr "Internationaliser vos programmes et modules" -#: ../Doc/library/gettext.rst:501 +#: library/gettext.rst:501 msgid "" "Internationalization (I18N) refers to the operation by which a program is " "made aware of multiple languages. Localization (L10N) refers to the " @@ -817,33 +804,33 @@ msgstr "" "locales, une fois celui-ci internationalisé. Afin de fournir du texte " "multilingue à votre programme Python, les étapes suivantes sont nécessaires :" -#: ../Doc/library/gettext.rst:507 +#: library/gettext.rst:507 msgid "" "prepare your program or module by specially marking translatable strings" msgstr "" "préparer votre programme ou module en marquant spécifiquement les chaînes à " "traduire" -#: ../Doc/library/gettext.rst:509 +#: library/gettext.rst:509 msgid "" "run a suite of tools over your marked files to generate raw messages catalogs" msgstr "" "lancer une suite d'outils sur les fichiers contenant des chaînes à traduire " "pour générer des catalogues de messages brut" -#: ../Doc/library/gettext.rst:511 +#: library/gettext.rst:511 msgid "create language-specific translations of the message catalogs" msgstr "" "créer les traductions spécifiques à une langue des catalogues de messages" -#: ../Doc/library/gettext.rst:513 +#: library/gettext.rst:513 msgid "" "use the :mod:`gettext` module so that message strings are properly translated" msgstr "" "utiliser le module :mod:`gettext` pour que les chaînes de caractères soient " "bien traduites" -#: ../Doc/library/gettext.rst:515 +#: library/gettext.rst:515 msgid "" "In order to prepare your code for I18N, you need to look at all the strings " "in your files. Any string that needs to be translated should be marked by " @@ -853,9 +840,9 @@ msgstr "" "Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher " "toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " "caractères à traduire doit être appliqué le marqueur ``_('...')`` --- c'est-" -"à-dire en appelant la fonction :func:`_`. Par exemple : ::" +"à-dire en appelant la fonction :func:`_`. Par exemple ::" -#: ../Doc/library/gettext.rst:524 +#: library/gettext.rst:524 msgid "" "In this example, the string ``'writing a log message'`` is marked as a " "candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " @@ -864,7 +851,7 @@ msgstr "" "Dans cet exemple, la chaîne ``'writing a log message'`` est maquée comme " "traduite, contrairement aux chaînes ``'mylog.txt'`` et ``'w'``." -#: ../Doc/library/gettext.rst:527 +#: library/gettext.rst:527 msgid "" "There are a few tools to extract the strings meant for translation. The " "original GNU :program:`gettext` only supported C or C++ source code but its " @@ -887,7 +874,7 @@ msgstr "" "François Pinard, nommé :program:`xpot`, fait de même et est disponible dans " "son `paquet po-utils `__." -#: ../Doc/library/gettext.rst:537 +#: library/gettext.rst:537 msgid "" "(Python also includes pure-Python versions of these programs, called :" "program:`pygettext.py` and :program:`msgfmt.py`; some Python distributions " @@ -911,7 +898,7 @@ msgstr "" "besoin du paquet GNU :program:`gettext` pour internationaliser vos " "applications en Python.)" -#: ../Doc/library/gettext.rst:549 +#: library/gettext.rst:549 msgid "" ":program:`xgettext`, :program:`pygettext`, and similar tools generate :file:" "`.po` files that are message catalogs. They are structured human-readable " @@ -924,7 +911,7 @@ msgstr "" "contiennent toutes les chaînes du code source marquées comme traduisible, " "ainsi que leur traduction à utiliser." -#: ../Doc/library/gettext.rst:555 +#: library/gettext.rst:555 msgid "" "Copies of these :file:`.po` files are then handed over to the individual " "human translators who write translations for every supported natural " @@ -943,7 +930,7 @@ msgstr "" "fichiers :file:`.mo` sont utilisés par le module :mod:`gettext` pour la " "traduction lors de l'exécution." -#: ../Doc/library/gettext.rst:564 +#: library/gettext.rst:564 msgid "" "How you use the :mod:`gettext` module in your code depends on whether you " "are internationalizing a single module or your entire application. The next " @@ -953,11 +940,11 @@ msgstr "" "de si vous internationalisez un seul module ou l'ensemble de votre " "application. Les deux sections suivantes traitent chacune des cas." -#: ../Doc/library/gettext.rst:570 +#: library/gettext.rst:570 msgid "Localizing your module" msgstr "Localiser votre module" -#: ../Doc/library/gettext.rst:572 +#: library/gettext.rst:572 msgid "" "If you are localizing your module, you must take care not to make global " "changes, e.g. to the built-in namespace. You should not use the GNU :program:" @@ -967,7 +954,7 @@ msgstr "" "globaux, e.g. dans l'espace de nommage natif. Vous ne devriez pas utiliser " "l’API GNU :program:`gettext` mais plutôt celle basée sur les classes." -#: ../Doc/library/gettext.rst:576 +#: library/gettext.rst:576 msgid "" "Let's say your module is called \"spam\" and the module's various natural " "language translation :file:`.mo` files reside in :file:`/usr/share/locale` " @@ -977,13 +964,13 @@ msgstr "" "Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " "de traduction dans les différentes langues naturelles soient dans :file:`/" "usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " -"pouvez alors mettre en haut de votre module : ::" +"pouvez alors mettre en haut de votre module ::" -#: ../Doc/library/gettext.rst:587 +#: library/gettext.rst:587 msgid "Localizing your application" msgstr "Localiser votre application" -#: ../Doc/library/gettext.rst:589 +#: library/gettext.rst:589 msgid "" "If you are localizing your application, you can install the :func:`_` " "function globally into the built-in namespace, usually in the main driver " @@ -996,27 +983,27 @@ msgstr "" "fichiers de votre application de n'utiliser que ``_('...')`` sans devoir le " "redéfinir explicitement dans chaque fichier." -#: ../Doc/library/gettext.rst:594 +#: library/gettext.rst:594 msgid "" "In the simple case then, you need only add the following bit of code to the " "main driver file of your application::" msgstr "" "Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " -"principal de votre application : ::" +"principal de votre application ::" -#: ../Doc/library/gettext.rst:600 +#: library/gettext.rst:600 msgid "" "If you need to set the locale directory, you can pass it into the :func:" "`install` function::" msgstr "" "Si vous avez besoin de définir le dossier des localisations, vous pouvez le " -"mettre en argument de la fonction :func:`install` : ::" +"mettre en argument de la fonction :func:`install` ::" -#: ../Doc/library/gettext.rst:608 +#: library/gettext.rst:608 msgid "Changing languages on the fly" msgstr "Changer de langue à la volée" -#: ../Doc/library/gettext.rst:610 +#: library/gettext.rst:610 msgid "" "If your program needs to support many languages at the same time, you may " "want to create multiple translation instances and then switch between them " @@ -1024,13 +1011,13 @@ msgid "" msgstr "" "Si votre programme a besoin de prendre en charge plusieurs langues en même " "temps, vous pouvez créer plusieurs instances de traduction, puis basculer " -"entre elles de façon explicite, comme ceci : ::" +"entre elles de façon explicite, comme ceci ::" -#: ../Doc/library/gettext.rst:631 +#: library/gettext.rst:631 msgid "Deferred translations" msgstr "Traductions différées" -#: ../Doc/library/gettext.rst:633 +#: library/gettext.rst:633 msgid "" "In most coding situations, strings are translated where they are coded. " "Occasionally however, you need to mark strings for translation, but defer " @@ -1039,9 +1026,9 @@ msgstr "" "Dans la plupart des cas, en programmation, les chaînes de caractères sont " "traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " "ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " -"exemple classique est : ::" +"exemple classique est ::" -#: ../Doc/library/gettext.rst:646 +#: library/gettext.rst:646 msgid "" "Here, you want to mark the strings in the ``animals`` list as being " "translatable, but you don't actually want to translate them until they are " @@ -1050,11 +1037,11 @@ msgstr "" "Ici, vous voulez marquer les chaînes de caractères de la liste ``animals`` " "comme étant traduisibles, mais ne les traduire qu'au moment de les afficher." -#: ../Doc/library/gettext.rst:650 +#: library/gettext.rst:650 msgid "Here is one way you can handle this situation::" -msgstr "Voici un moyen de gérer ce cas : ::" +msgstr "Voici un moyen de gérer ce cas ::" -#: ../Doc/library/gettext.rst:666 +#: library/gettext.rst:666 msgid "" "This works because the dummy definition of :func:`_` simply returns the " "string unchanged. And this dummy definition will temporarily override any " @@ -1069,7 +1056,7 @@ msgstr "" "Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " "l'espace de nommage local." -#: ../Doc/library/gettext.rst:672 +#: library/gettext.rst:672 msgid "" "Note that the second use of :func:`_` will not identify \"a\" as being " "translatable to the :program:`gettext` program, because the parameter is not " @@ -1079,11 +1066,11 @@ msgstr "" "comme traduisible par le programme :program:`gettext` car ce n'est pas un " "chaîne au sens propre." -#: ../Doc/library/gettext.rst:676 +#: library/gettext.rst:676 msgid "Another way to handle this is with the following example::" -msgstr "Voici une autre solution : ::" +msgstr "Voici une autre solution ::" -#: ../Doc/library/gettext.rst:690 +#: library/gettext.rst:690 msgid "" "In this case, you are marking translatable strings with the function :func:" "`N_`, which won't conflict with any definition of :func:`_`. However, you " @@ -1103,11 +1090,11 @@ msgstr "" "commande :option:`!-k`. Le choix du nom :func:`N_` ici est totalement " "arbitraire et aurait très bien pu être :func:`MarqueurDeTraduction`." -#: ../Doc/library/gettext.rst:701 +#: library/gettext.rst:701 msgid "Acknowledgements" msgstr "Remerciements" -#: ../Doc/library/gettext.rst:703 +#: library/gettext.rst:703 msgid "" "The following people contributed code, feedback, design suggestions, " "previous implementations, and valuable experience to the creation of this " @@ -1117,62 +1104,62 @@ msgstr "" "participé aux suggestions de conception et aux implémentations précédentes, " "et ont partagé leur expérience précieuse pour la création de ce module :" -#: ../Doc/library/gettext.rst:706 +#: library/gettext.rst:706 msgid "Peter Funk" msgstr "Peter Funk" -#: ../Doc/library/gettext.rst:708 +#: library/gettext.rst:708 msgid "James Henstridge" msgstr "James Henstridge" -#: ../Doc/library/gettext.rst:710 +#: library/gettext.rst:710 msgid "Juan David Ibáñez Palomar" msgstr "Juan David Ibáñez Palomar" -#: ../Doc/library/gettext.rst:712 +#: library/gettext.rst:712 msgid "Marc-André Lemburg" msgstr "Marc-André Lemburg" -#: ../Doc/library/gettext.rst:714 +#: library/gettext.rst:714 msgid "Martin von Löwis" msgstr "Martin von Löwis" -#: ../Doc/library/gettext.rst:716 +#: library/gettext.rst:716 msgid "François Pinard" msgstr "François Pinard" -#: ../Doc/library/gettext.rst:718 +#: library/gettext.rst:718 msgid "Barry Warsaw" msgstr "Barry Warsaw" -#: ../Doc/library/gettext.rst:720 +#: library/gettext.rst:720 msgid "Gustavo Niemeyer" msgstr "Gustavo Niemeyer" -#: ../Doc/library/gettext.rst:723 +#: library/gettext.rst:723 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/gettext.rst:724 +#: library/gettext.rst:724 msgid "" "The default locale directory is system dependent; for example, on RedHat " "Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" "locale`. The :mod:`gettext` module does not try to support these system " -"dependent defaults; instead its default is :file:`{sys.prefix}/share/locale` " -"(see :data:`sys.prefix`). For this reason, it is always best to call :func:" -"`bindtextdomain` with an explicit absolute path at the start of your " -"application." +"dependent defaults; instead its default is :file:`{sys.base_prefix}/share/" +"locale` (see :data:`sys.base_prefix`). For this reason, it is always best to " +"call :func:`bindtextdomain` with an explicit absolute path at the start of " +"your application." msgstr "" "Le dossier par défaut pour les localisations dépend du système : par " "exemple, sur RedHat c'est :file:`/usr/share/locale`, mais sur Solaris c'est :" "file:`/usr/lib/locale`. Le module :mod:`gettext` n'essaie pas de prendre en " "charge ce paramètre système dépendant du système d'exploitation, mais " -"utilise le dossier :file:`{sys.prefix}/share/locale` (voir :data:`sys." -"prefix`). C'est pour cette raison qu'il est toujours préférable d'appeler :" -"func:`bindtextdomain` en donnant explicitement un chemin absolu au début de " -"votre application." +"utilise le dossier :file:`{sys.base_prefix}/share/locale` (voir :data:`sys." +"base_prefix`). C'est pour cette raison qu'il est toujours préférable " +"d'appeler :func:`bindtextdomain` en donnant explicitement un chemin absolu " +"au début de votre application." -#: ../Doc/library/gettext.rst:732 +#: library/gettext.rst:732 msgid "See the footnote for :func:`bindtextdomain` above." msgstr "Voir la note de :func:`bindtextdomain` ci-dessus." diff --git a/library/glob.po b/library/glob.po index 91ef71a56a..21e0e86c9b 100644 --- a/library/glob.po +++ b/library/glob.po @@ -3,9 +3,9 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-10-09 17:54+0200\n" +"POT-Creation-Date: 2023-03-23 09:47+0100\n" "PO-Revision-Date: 2018-09-28 12:40+0200\n" "Last-Translator: Julien VITARD \n" "Language-Team: FRENCH \n" @@ -15,16 +15,16 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 1.8.11\n" -#: ../Doc/library/glob.rst:2 +#: library/glob.rst:2 msgid ":mod:`glob` --- Unix style pathname pattern expansion" msgstr "" ":mod:`glob` --- Recherche de chemins de style Unix selon certains motifs" -#: ../Doc/library/glob.rst:7 +#: library/glob.rst:7 msgid "**Source code:** :source:`Lib/glob.py`" msgstr "**Code source :** :source:`Lib/glob.py`" -#: ../Doc/library/glob.rst:21 +#: library/glob.rst:21 msgid "" "The :mod:`glob` module finds all the pathnames matching a specified pattern " "according to the rules used by the Unix shell, although results are returned " @@ -48,7 +48,7 @@ msgstr "" "remplacer le tilde et les variables shell, nous vous conseillons d'utiliser " "les fonctions :func:`os.path.expanduser` et :func:`os.path.expandvars`.)" -#: ../Doc/library/glob.rst:31 +#: library/glob.rst:31 msgid "" "For a literal match, wrap the meta-characters in brackets. For example, " "``'[?]'`` matches the character ``'?'``." @@ -56,13 +56,13 @@ msgstr "" "Pour une correspondance littérale, il faut entourer le métacaractère par des " "crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." -#: ../Doc/library/glob.rst:36 +#: library/glob.rst:36 msgid "The :mod:`pathlib` module offers high-level path objects." msgstr "" "Le module :mod:`pathlib` offre une représentation objet de haut niveau des " "chemins." -#: ../Doc/library/glob.rst:41 +#: library/glob.rst:41 #, fuzzy msgid "" "Return a possibly-empty list of path names that match *pathname*, which must " @@ -70,7 +70,9 @@ msgid "" "absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative (like :file:" "`../../Tools/\\*/\\*.gif`), and can contain shell-style wildcards. Broken " "symlinks are included in the results (as in the shell). Whether or not the " -"results are sorted depends on the file system." +"results are sorted depends on the file system. If a file that satisfies " +"conditions is removed or added during the call of this function, whether a " +"path name for that file be included is unspecified." msgstr "" "Renvoie une liste, potentiellement vide, de chemins correspondant au motif " "*pathname*, qui doit être une chaîne de caractères contenant la " @@ -80,26 +82,27 @@ msgstr "" "symboliques cassés sont aussi inclus dans les résultats (comme pour le " "shell)." -#: ../Doc/library/glob.rst:51 -#, fuzzy +#: library/glob.rst:53 msgid "" "If *recursive* is true, the pattern \"``**``\" will match any files and zero " "or more directories, subdirectories and symbolic links to directories. If " "the pattern is followed by an :data:`os.sep` or :data:`os.altsep` then files " "will not match." msgstr "" -"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers et, " -"zéro ou plus répertoires et sous-répertoires. Si le motif est suivi par un " -"caractère de séparation ``os.sep``, seuls les répertoires et sous-" -"répertoires sont reconnus." +"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers, " +"aucun ou plusieurs répertoires, sous-répertoires et liens symboliques aux " +"répertoires. Si le motif est suivi par :data:`os.sep` ou :data:`os.altsep` " +"alors les fichiers ne sont pas inclus dans le résultat." -#: ../Doc/library/glob.rst:57 ../Doc/library/glob.rst:71 +#: library/glob.rst:73 msgid "" "Raises an :ref:`auditing event ` ``glob.glob`` with arguments " "``pathname``, ``recursive``." msgstr "" +"Lève un :ref:`évènement d'audit ` ``glob.glob`` avec les arguments " +"``pathname``, ``recursive``." -#: ../Doc/library/glob.rst:59 +#: library/glob.rst:61 msgid "" "Using the \"``**``\" pattern in large directory trees may consume an " "inordinate amount of time." @@ -107,11 +110,11 @@ msgstr "" "Utiliser le motif \"``**``\" dans de grandes arborescences de dossier peut " "consommer une quantité de temps démesurée." -#: ../Doc/library/glob.rst:62 +#: library/glob.rst:64 msgid "Support for recursive globs using \"``**``\"." msgstr "Gestion des chemins récursifs utilisant le motif \"``**``\"." -#: ../Doc/library/glob.rst:68 +#: library/glob.rst:70 msgid "" "Return an :term:`iterator` which yields the same values as :func:`glob` " "without actually storing them all simultaneously." @@ -119,7 +122,7 @@ msgstr "" "Renvoie un :term:`iterator` qui produit les mêmes valeurs que :func:`glob`, " "sans toutes les charger en mémoire simultanément." -#: ../Doc/library/glob.rst:76 +#: library/glob.rst:78 msgid "" "Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " "if you want to match an arbitrary literal string that may have special " @@ -134,7 +137,7 @@ msgstr "" "Windows ``escape('//?/c:/Quo vadis?.txt')`` renvoie ``'//?/c:/Quo vadis[?]." "txt'``." -#: ../Doc/library/glob.rst:85 +#: library/glob.rst:87 msgid "" "For example, consider a directory containing the following files: :file:`1." "gif`, :file:`2.txt`, :file:`card.gif` and a subdirectory :file:`sub` which " @@ -148,7 +151,7 @@ msgstr "" "les résultats suivants. Notons que les composantes principales des chemins " "sont préservées. ::" -#: ../Doc/library/glob.rst:103 +#: library/glob.rst:105 msgid "" "If the directory contains files starting with ``.`` they won't be matched by " "default. For example, consider a directory containing :file:`card.gif` and :" @@ -158,11 +161,11 @@ msgstr "" "reconnus par défaut. Par exemple, considérons un répertoire contenant :file:" "`card.gif` et :file:`.card.gif` ::" -#: ../Doc/library/glob.rst:115 +#: library/glob.rst:117 msgid "Module :mod:`fnmatch`" msgstr "Module :mod:`fnmatch`" -#: ../Doc/library/glob.rst:116 +#: library/glob.rst:118 msgid "Shell-style filename (not path) expansion" msgstr "" "Recherche de noms de fichiers de style shell (ne concerne pas les chemins)" diff --git a/library/grp.po b/library/grp.po index 16e85e965b..1513fd627b 100644 --- a/library/grp.po +++ b/library/grp.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" @@ -133,13 +133,18 @@ msgid "Module :mod:`pwd`" msgstr "Module :mod:`pwd`" #: ../Doc/library/grp.rst:64 +#, fuzzy msgid "An interface to the user database, similar to this." -msgstr "" +msgstr "Interface pour la base de données des groupes, similaire à celle-ci." #: ../Doc/library/grp.rst:66 +#, fuzzy msgid "Module :mod:`spwd`" -msgstr "" +msgstr "Module :mod:`pwd`" #: ../Doc/library/grp.rst:67 +#, fuzzy msgid "An interface to the shadow password database, similar to this." msgstr "" +"Interface pour la base de données (normale) des mots de passe, semblable à " +"ceci." diff --git a/library/gzip.po b/library/gzip.po index 7ca15789c5..5c58f75e8c 100644 --- a/library/gzip.po +++ b/library/gzip.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-09-04 11:33+0200\n" "PO-Revision-Date: 2018-10-07 15:03+0200\n" @@ -367,22 +367,22 @@ msgstr "Exemples d'utilisation" #: ../Doc/library/gzip.rst:191 msgid "Example of how to read a compressed file::" -msgstr "Exemple montrant comment lire un fichier compressé : ::" +msgstr "Exemple montrant comment lire un fichier compressé ::" #: ../Doc/library/gzip.rst:197 msgid "Example of how to create a compressed GZIP file::" -msgstr "Exemple montrant comment créer un fichier GZIP : ::" +msgstr "Exemple montrant comment créer un fichier GZIP ::" #: ../Doc/library/gzip.rst:204 msgid "Example of how to GZIP compress an existing file::" msgstr "" -"Exemple montrant comment compresser dans un GZIP un fichier existant : ::" +"Exemple montrant comment compresser dans un GZIP un fichier existant ::" #: ../Doc/library/gzip.rst:212 msgid "Example of how to GZIP compress a binary string::" msgstr "" "Exemple montrant comment compresser dans un GZIP un binaire dans une " -"chaîne : ::" +"chaîne ::" #: ../Doc/library/gzip.rst:221 msgid "Module :mod:`zlib`" diff --git a/library/hashlib.po b/library/hashlib.po index bcfc3b4533..00f0ec5ea3 100644 --- a/library/hashlib.po +++ b/library/hashlib.po @@ -3,28 +3,28 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2018-11-29 16:06+0100\n" -"PO-Revision-Date: 2019-03-26 17:49+0100\n" +"PO-Revision-Date: 2020-04-27 22:47+0200\n" "Last-Translator: Jules Lasne \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" +"X-Generator: Poedit 2.2.3\n" -#: ../Doc/library/hashlib.rst:2 +#: library/hashlib.rst:2 msgid ":mod:`hashlib` --- Secure hashes and message digests" msgstr "" ":mod:`hashlib` --- Algorithmes de hachage sécurisés et synthèse de messages" -#: ../Doc/library/hashlib.rst:10 +#: library/hashlib.rst:10 msgid "**Source code:** :source:`Lib/hashlib.py`" msgstr "**Code source :** :source:`Lib/hashlib.py`" -#: ../Doc/library/hashlib.rst:23 +#: library/hashlib.rst:23 msgid "" "This module implements a common interface to many different secure hash and " "message digest algorithms. Included are the FIPS secure hash algorithms " @@ -42,7 +42,7 @@ msgstr "" "appelés\" algorithmes de synthèse de messages\". Le terme moderne est " "\"algorithme de hachage sécurisé\"." -#: ../Doc/library/hashlib.rst:32 +#: library/hashlib.rst:32 msgid "" "If you want the adler32 or crc32 hash functions, they are available in the :" "mod:`zlib` module." @@ -50,19 +50,19 @@ msgstr "" "Si vous préférez utiliser les fonctions de hachage *adler32* ou *crc32*, " "elles sont disponibles dans le module :mod:`zlib`." -#: ../Doc/library/hashlib.rst:37 +#: library/hashlib.rst:37 msgid "" -"Some algorithms have known hash collision weaknesses, refer to the \"See also" -"\" section at the end." +"Some algorithms have known hash collision weaknesses, refer to the \"See " +"also\" section at the end." msgstr "" "Certains algorithmes ont des faiblesses connues relatives à la collision, se " "référer à la section \"Voir aussi\" à la fin." -#: ../Doc/library/hashlib.rst:44 +#: library/hashlib.rst:44 msgid "Hash algorithms" msgstr "Algorithmes de hachage" -#: ../Doc/library/hashlib.rst:46 +#: library/hashlib.rst:46 msgid "" "There is one constructor method named for each type of :dfn:`hash`. All " "return a hash object with the same simple interface. For example: use :func:" @@ -75,13 +75,13 @@ msgstr "" "Il y a un constructeur nommé selon chaque type de :dfn:`hash`. Tous " "retournent un objet haché avec la même interface. Par exemple : utilisez :" "func:`sha256` pour créer un objet haché de type SHA-256. Vous pouvez " -"maintenant utilisez cet objet :term:`bytes-like objects ` " +"maintenant utiliser cet objet :term:`bytes-like objects ` " "(normalement des :class:`bytes`) en utilisant la méthode :meth:`update`. À " "tout moment vous pouvez demander le :dfn:`digest` de la concaténation des " "données fournies en utilisant les méthodes :meth:`digest` ou :meth:" "`hexdigest`." -#: ../Doc/library/hashlib.rst:56 +#: library/hashlib.rst:56 msgid "" "For better multithreading performance, the Python :term:`GIL` is released " "for data larger than 2047 bytes at object creation or on update." @@ -90,7 +90,7 @@ msgstr "" "`GIL` Python est relâché pour des données dont la taille est supérieure à " "2047 octets lors de leur création ou leur mise à jour." -#: ../Doc/library/hashlib.rst:61 +#: library/hashlib.rst:61 msgid "" "Feeding string objects into :meth:`update` is not supported, as hashes work " "on bytes, not on characters." @@ -99,7 +99,7 @@ msgstr "" "pas implémenté, comme les fonctions de hachages travaillent sur des *bytes* " "et pas sur des caractères." -#: ../Doc/library/hashlib.rst:66 +#: library/hashlib.rst:66 msgid "" "Constructors for hash algorithms that are always present in this module are :" "func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:" @@ -120,7 +120,7 @@ msgstr "" "formes les fonctions :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :" "func:`sha3_512`, :func:`shake_128`, :func:`shake_256` sont aussi disponibles." -#: ../Doc/library/hashlib.rst:76 +#: library/hashlib.rst:76 msgid "" "SHA3 (Keccak) and SHAKE constructors :func:`sha3_224`, :func:`sha3_256`, :" "func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`." @@ -129,11 +129,11 @@ msgstr "" "`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:" "`shake_256`." -#: ../Doc/library/hashlib.rst:80 +#: library/hashlib.rst:80 msgid ":func:`blake2b` and :func:`blake2s` were added." msgstr "Les fonctions :func:`blake2b` et :func:`blake2s` ont été ajoutées." -#: ../Doc/library/hashlib.rst:83 +#: library/hashlib.rst:83 msgid "" "For example, to obtain the digest of the byte string ``b'Nobody inspects the " "spammish repetition'``::" @@ -141,11 +141,11 @@ msgstr "" "Par exemple, pour obtenir l'empreinte de la chaîne ``b'Nobody inspects the " "spammish repetition'`` ::" -#: ../Doc/library/hashlib.rst:97 +#: library/hashlib.rst:97 msgid "More condensed:" msgstr "En plus condensé ::" -#: ../Doc/library/hashlib.rst:104 +#: library/hashlib.rst:104 msgid "" "Is a generic constructor that takes the string *name* of the desired " "algorithm as its first parameter. It also exists to allow access to the " @@ -159,15 +159,15 @@ msgstr "" "librairie OpenSSL peut offrir. Les constructeurs nommés sont beaucoup plus " "rapides que :func:`new` et doivent être privilégiés." -#: ../Doc/library/hashlib.rst:110 +#: library/hashlib.rst:110 msgid "Using :func:`new` with an algorithm provided by OpenSSL:" msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL ::" -#: ../Doc/library/hashlib.rst:117 +#: library/hashlib.rst:117 msgid "Hashlib provides the following constant attributes:" msgstr "*Hashlib* fournit les constantes suivantes ::" -#: ../Doc/library/hashlib.rst:121 +#: library/hashlib.rst:121 msgid "" "A set containing the names of the hash algorithms guaranteed to be supported " "by this module on all platforms. Note that 'md5' is in this list despite " @@ -179,7 +179,7 @@ msgstr "" "dans cette liste malgré certains éditeurs qui offrent une implémentation " "Python de la librairie compatible FIPS l'excluant." -#: ../Doc/library/hashlib.rst:130 +#: library/hashlib.rst:130 msgid "" "A set containing the names of the hash algorithms that are available in the " "running Python interpreter. These names will be recognized when passed to :" @@ -193,7 +193,7 @@ msgstr "" "ensemble. Le même algorithme peut apparaître plusieurs fois dans cet " "ensemble sous un nom différent (grâce à OpenSSL)." -#: ../Doc/library/hashlib.rst:138 +#: library/hashlib.rst:138 msgid "" "The following values are provided as constant attributes of the hash objects " "returned by the constructors:" @@ -201,19 +201,19 @@ msgstr "" "Les valeurs suivantes sont fournis en tant qu'attributs constants des objets " "hachés retournés par les constructeurs ::" -#: ../Doc/library/hashlib.rst:144 +#: library/hashlib.rst:144 msgid "The size of the resulting hash in bytes." msgstr "La taille du *hash* résultant en octets." -#: ../Doc/library/hashlib.rst:148 +#: library/hashlib.rst:148 msgid "The internal block size of the hash algorithm in bytes." msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." -#: ../Doc/library/hashlib.rst:150 +#: library/hashlib.rst:150 msgid "A hash object has the following attributes:" msgstr "L'objet haché possède les attributs suivants ::" -#: ../Doc/library/hashlib.rst:154 +#: library/hashlib.rst:154 msgid "" "The canonical name of this hash, always lowercase and always suitable as a " "parameter to :func:`new` to create another hash of this type." @@ -222,7 +222,7 @@ msgstr "" "transmissible à la fonction :func:`new` pour créer un autre objet haché de " "ce type." -#: ../Doc/library/hashlib.rst:157 +#: library/hashlib.rst:157 msgid "" "The name attribute has been present in CPython since its inception, but " "until Python 3.4 was not formally specified, so may not exist on some " @@ -232,11 +232,11 @@ msgstr "" "pas spécifié formellement jusqu'à Python 3.4, il peut ne pas exister sur " "certaines plate-formes." -#: ../Doc/library/hashlib.rst:162 +#: library/hashlib.rst:162 msgid "A hash object has the following methods:" msgstr "L'objet haché possède les méthodes suivantes ::" -#: ../Doc/library/hashlib.rst:167 +#: library/hashlib.rst:167 msgid "" "Update the hash object with the :term:`bytes-like object`. Repeated calls " "are equivalent to a single call with the concatenation of all the arguments: " @@ -246,7 +246,7 @@ msgstr "" "sont équivalent à la concaténation de tous les arguments : ``m.update(a); m." "update(b)`` est équivalent à ``m.update(a+b)``." -#: ../Doc/library/hashlib.rst:172 +#: library/hashlib.rst:172 msgid "" "The Python GIL is released to allow other threads to run while hash updates " "on data larger than 2047 bytes is taking place when using hash algorithms " @@ -257,7 +257,7 @@ msgstr "" "larges que 2047 octets, lorsque les algorithmes fournis par OpenSSL sont " "utilisés." -#: ../Doc/library/hashlib.rst:180 +#: library/hashlib.rst:180 msgid "" "Return the digest of the data passed to the :meth:`update` method so far. " "This is a bytes object of size :attr:`digest_size` which may contain bytes " @@ -267,7 +267,7 @@ msgstr "" "un objet de type *bytes* de taille :attr:`digest_size` qui contient des " "octets dans l'intervalle 0 à 255." -#: ../Doc/library/hashlib.rst:187 ../Doc/library/hashlib.rst:215 +#: library/hashlib.rst:215 msgid "" "Like :meth:`digest` except the digest is returned as a string object of " "double length, containing only hexadecimal digits. This may be used to " @@ -278,7 +278,7 @@ msgstr "" "hexadécimaux. Cela peut être utilisé pour échanger sans risque des valeurs " "dans les *e-mails* ou dans les environnements non binaires." -#: ../Doc/library/hashlib.rst:194 +#: library/hashlib.rst:194 msgid "" "Return a copy (\"clone\") of the hash object. This can be used to " "efficiently compute the digests of data sharing a common initial substring." @@ -287,11 +287,11 @@ msgstr "" "calculer efficacement les *digests* de données partageant des sous-chaînes " "communes." -#: ../Doc/library/hashlib.rst:199 +#: library/hashlib.rst:199 msgid "SHAKE variable length digests" msgstr "Synthèse de messages de taille variable SHAKE" -#: ../Doc/library/hashlib.rst:201 +#: library/hashlib.rst:201 msgid "" "The :func:`shake_128` and :func:`shake_256` algorithms provide variable " "length digests with length_in_bits//2 up to 128 or 256 bits of security. As " @@ -299,11 +299,12 @@ msgid "" "by the SHAKE algorithm." msgstr "" "Les algorithmes :func:`shake_128` et :func:`shake_256` fournissent des " -"messages de longueur variable avec des longueurs_en_bits//2 jusqu'à 128 ou " -"256 bits de sécurité. Leurs méthodes *digests* requièrent une longueur. Les " -"longueurs maximales ne sont pas limitées par l'algorithme SHAKE." +"messages de longueur variable avec des ``longueurs_en_bits // 2`` jusqu'à " +"128 ou 256 bits de sécurité. Leurs méthodes *digests* requièrent une " +"longueur. Les longueurs maximales ne sont pas limitées par l'algorithme " +"SHAKE." -#: ../Doc/library/hashlib.rst:208 +#: library/hashlib.rst:208 msgid "" "Return the digest of the data passed to the :meth:`update` method so far. " "This is a bytes object of size *length* which may contain bytes in the whole " @@ -313,17 +314,17 @@ msgstr "" "un objet de type *bytes* de taille *length* qui contient des octets dans " "l'intervalle 0 à 255." -#: ../Doc/library/hashlib.rst:221 +#: library/hashlib.rst:221 msgid "Key derivation" msgstr "Dérivation de clé" -#: ../Doc/library/hashlib.rst:223 +#: library/hashlib.rst:223 msgid "" "Key derivation and key stretching algorithms are designed for secure " "password hashing. Naive algorithms such as ``sha1(password)`` are not " "resistant against brute-force attacks. A good password hashing function must " -"be tunable, slow, and include a `salt `_." +"be tunable, slow, and include a `salt `_." msgstr "" "Les algorithmes de dérivation de clés et d'étirement de clés sont conçus " "pour le hachage sécurisé de mots de passe. Des algorithmes naïfs comme " @@ -331,7 +332,7 @@ msgstr "" "bonne fonction de hachage doit être paramétrable, lente, et inclure un `sel " "`_." -#: ../Doc/library/hashlib.rst:231 +#: library/hashlib.rst:231 msgid "" "The function provides PKCS#5 password-based key derivation function 2. It " "uses HMAC as pseudorandom function." @@ -340,7 +341,7 @@ msgstr "" "Cryptographic Standards #5 v2.0*). Elle utilise HMAC comme fonction de " "pseudo-aléatoire." -#: ../Doc/library/hashlib.rst:234 +#: library/hashlib.rst:234 msgid "" "The string *hash_name* is the desired name of the hash digest algorithm for " "HMAC, e.g. 'sha1' or 'sha256'. *password* and *salt* are interpreted as " @@ -355,7 +356,7 @@ msgstr "" "``1024``). *salt* doit être de 16 octets ou plus provenant d'une source " "correcte, e.g. :func:`os.urandom`." -#: ../Doc/library/hashlib.rst:240 +#: library/hashlib.rst:240 msgid "" "The number of *iterations* should be chosen based on the hash algorithm and " "computing power. As of 2013, at least 100,000 iterations of SHA-256 are " @@ -365,7 +366,7 @@ msgstr "" "hachage et de la puissance de calcul. En 2013, au moins 100000 itérations de " "SHA-256 sont recommandées." -#: ../Doc/library/hashlib.rst:244 +#: library/hashlib.rst:244 msgid "" "*dklen* is the length of the derived key. If *dklen* is ``None`` then the " "digest size of the hash algorithm *hash_name* is used, e.g. 64 for SHA-512." @@ -374,7 +375,7 @@ msgstr "" "taille du message de l'algorithme de hachage *hash_name* est utilisé, e.g. " "64 pour SHA-512." -#: ../Doc/library/hashlib.rst:256 +#: library/hashlib.rst:256 msgid "" "A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The " "Python implementation uses an inline version of :mod:`hmac`. It is about " @@ -384,7 +385,7 @@ msgstr "" "L'implémentation Python utilise une version anonyme de :mod:`hmac`. Elle est " "trois fois plus lente et ne libère pas le GIL." -#: ../Doc/library/hashlib.rst:262 +#: library/hashlib.rst:262 msgid "" "The function provides scrypt password-based key derivation function as " "defined in :rfc:`7914`." @@ -392,7 +393,7 @@ msgstr "" "La fonction fournit la fonction de dérivation de clé *scrypt* comme définie " "dans :rfc:`7914`." -#: ../Doc/library/hashlib.rst:265 +#: library/hashlib.rst:265 msgid "" "*password* and *salt* must be :term:`bytes-like objects `. Applications and libraries should limit *password* to a sensible " @@ -404,7 +405,7 @@ msgstr "" "longueur raisonnable (e.g. 1024). *salt* doit être de 16 octets ou plus " "provenant d'une source correcte, e.g. :func:`os.urandom`." -#: ../Doc/library/hashlib.rst:270 +#: library/hashlib.rst:270 msgid "" "*n* is the CPU/Memory cost factor, *r* the block size, *p* parallelization " "factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " @@ -414,15 +415,15 @@ msgstr "" "facteur de parallélisation et *maxmem* limite la mémoire (OpenSSL 1.1.0 " "limite à 32 MB par défaut). *dklen* est la longueur de la clé dérivée." -#: ../Doc/library/hashlib.rst:275 +#: library/hashlib.rst:275 msgid ":ref:`Availability `: OpenSSL 1.1+." msgstr ":ref:`Disponibilité ` : OpenSSL 1.1+." -#: ../Doc/library/hashlib.rst:280 +#: library/hashlib.rst:280 msgid "BLAKE2" msgstr "BLAKE2" -#: ../Doc/library/hashlib.rst:287 +#: library/hashlib.rst:287 msgid "" "BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " "in two flavors:" @@ -430,7 +431,7 @@ msgstr "" "BLAKE2_ est une fonction de hachage cryptographique définie dans la :rfc:" "`7693` et disponible en deux versions ::" -#: ../Doc/library/hashlib.rst:290 +#: library/hashlib.rst:290 msgid "" "**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " "between 1 and 64 bytes," @@ -438,15 +439,15 @@ msgstr "" "**BLAKE2b**, optimisée pour les plates-formes 64-bit et produisant des " "messages de toutes tailles entre 1 et 64 octets," -#: ../Doc/library/hashlib.rst:293 +#: library/hashlib.rst:293 msgid "" "**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " "any size between 1 and 32 bytes." msgstr "" -"**BLAKE2b**, optimisée pour les plates-formes de 8 à 32-bit et produisant " +"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32-bit et produisant " "des messages de toutes tailles entre 1 et 32 octets." -#: ../Doc/library/hashlib.rst:296 +#: library/hashlib.rst:296 msgid "" "BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " "**salted hashing**, **personalization**, and **tree hashing**." @@ -455,7 +456,7 @@ msgstr "" "rapide et plus simple pour HMAC_), **salted hashing**, **personalization**, " "et **tree hashing**." -#: ../Doc/library/hashlib.rst:299 +#: library/hashlib.rst:299 msgid "" "Hash objects from this module follow the API of standard library's :mod:" "`hashlib` objects." @@ -463,15 +464,15 @@ msgstr "" "Les objets hachés de ce module suivent l'API des objets du module :mod:" "`hashlib` de la librairie standard." -#: ../Doc/library/hashlib.rst:304 +#: library/hashlib.rst:304 msgid "Creating hash objects" msgstr "Création d'objets hachés" -#: ../Doc/library/hashlib.rst:306 +#: library/hashlib.rst:306 msgid "New hash objects are created by calling constructor functions:" msgstr "Les nouveaux objets hachés sont créés en appelant les constructeurs ::" -#: ../Doc/library/hashlib.rst:318 +#: library/hashlib.rst:318 msgid "" "These functions return the corresponding hash objects for calculating " "BLAKE2b or BLAKE2s. They optionally take these general parameters:" @@ -479,7 +480,7 @@ msgstr "" "Ces fonctions produisent l'objet haché correspondant aux calculs de BLAKE2b " "ou BLAKE2s. Elles prennent ces paramètres optionnels ::" -#: ../Doc/library/hashlib.rst:321 +#: library/hashlib.rst:321 msgid "" "*data*: initial chunk of data to hash, which must be :term:`bytes-like " "object`. It can be passed only as positional argument." @@ -487,11 +488,11 @@ msgstr "" "*data*: morceau initial de données à hacher, qui doit être un objet de type :" "term:`bytes-like object`. Il peut être passé comme argument positionnel." -#: ../Doc/library/hashlib.rst:324 +#: library/hashlib.rst:324 msgid "*digest_size*: size of output digest in bytes." msgstr "*digest_size*: taille en sortie du message en octets." -#: ../Doc/library/hashlib.rst:326 +#: library/hashlib.rst:326 msgid "" "*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " "BLAKE2s)." @@ -499,7 +500,7 @@ msgstr "" "*key*: clé pour les code d'authentification de message *keyed hashing* " "(jusqu'à 64 octets pour BLAKE2b, jusqu'à 32 octets pour BLAKE2s)." -#: ../Doc/library/hashlib.rst:329 +#: library/hashlib.rst:329 msgid "" "*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " "bytes for BLAKE2s)." @@ -507,7 +508,7 @@ msgstr "" "*salt*: sel pour le hachage randomisé *randomized hashing* (jusqu'à 16 " "octets pour BLAKE2b, jusqu'à 8 octets pour BLAKE2s)." -#: ../Doc/library/hashlib.rst:332 +#: library/hashlib.rst:332 msgid "" "*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " "for BLAKE2s)." @@ -515,57 +516,57 @@ msgstr "" "*person*: chaîne de personnalisation (jusqu'à 16 octets pour BLAKE2b, " "jusqu'à 8 octets pour BLAKE2s)." -#: ../Doc/library/hashlib.rst:335 +#: library/hashlib.rst:335 msgid "The following table shows limits for general parameters (in bytes):" msgstr "" "Le tableau suivant présente les limites des paramètres généraux (en " "octets) ::" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "Hash" msgstr "Hash" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "digest_size" msgstr "digest_size" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "len(key)" msgstr "len(key)" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "len(salt)" msgstr "len(salt)" -#: ../Doc/library/hashlib.rst:338 +#: library/hashlib.rst:338 msgid "len(person)" msgstr "len(person)" -#: ../Doc/library/hashlib.rst:340 +#: library/hashlib.rst:340 msgid "BLAKE2b" msgstr "BLAKE2b" -#: ../Doc/library/hashlib.rst:340 +#: library/hashlib.rst:340 msgid "64" msgstr "64" -#: ../Doc/library/hashlib.rst:340 +#: library/hashlib.rst:340 msgid "16" msgstr "16" -#: ../Doc/library/hashlib.rst:341 +#: library/hashlib.rst:341 msgid "BLAKE2s" msgstr "BLAKE2s" -#: ../Doc/library/hashlib.rst:341 +#: library/hashlib.rst:341 msgid "32" msgstr "32" -#: ../Doc/library/hashlib.rst:341 +#: library/hashlib.rst:341 msgid "8" msgstr "8" -#: ../Doc/library/hashlib.rst:346 +#: library/hashlib.rst:346 msgid "" "BLAKE2 specification defines constant lengths for salt and personalization " "parameters, however, for convenience, this implementation accepts byte " @@ -582,24 +583,24 @@ msgstr "" "``b'salt'`` et ``b'salt\\x00'`` sont la même valeur (Ce n'est pas le cas " "pour *key*.)" -#: ../Doc/library/hashlib.rst:353 +#: library/hashlib.rst:353 msgid "These sizes are available as module `constants`_ described below." msgstr "" "Ces tailles sont disponibles comme `constants`_ du module et décrites ci-" "dessous." -#: ../Doc/library/hashlib.rst:355 +#: library/hashlib.rst:355 msgid "" "Constructor functions also accept the following tree hashing parameters:" msgstr "" "Les fonctions constructeur acceptent aussi les paramètres suivants pour le " "*tree hashing* ::" -#: ../Doc/library/hashlib.rst:357 +#: library/hashlib.rst:357 msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." msgstr "*fanout*: *fanout* (0 à 255, 0 si illimité, 1 en mode séquentiel)." -#: ../Doc/library/hashlib.rst:359 +#: library/hashlib.rst:359 msgid "" "*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " "mode)." @@ -607,7 +608,7 @@ msgstr "" "*depth*: profondeur maximale de l'arbre (1 à 255, 255 si illimité, 1 en mode " "séquentiel)." -#: ../Doc/library/hashlib.rst:362 +#: library/hashlib.rst:362 msgid "" "*leaf_size*: maximal byte length of leaf (0 to 2**32-1, 0 if unlimited or in " "sequential mode)." @@ -615,7 +616,7 @@ msgstr "" "*leaf_size*: taille maximale en octets d'une feuille (0 à 2**32-1, 0 si " "illimité ou en mode séquentiel)." -#: ../Doc/library/hashlib.rst:365 +#: library/hashlib.rst:365 msgid "" "*node_offset*: node offset (0 to 2**64-1 for BLAKE2b, 0 to 2**48-1 for " "BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." @@ -623,14 +624,14 @@ msgstr "" "*node_offset*: décalage de nœud (0 à 2**64-1 pour BLAKE2b, 0 à 2**48-1 pour " "BLAKE2s, 0 pour la première feuille la plus à gauche, ou en mode séquentiel)." -#: ../Doc/library/hashlib.rst:368 +#: library/hashlib.rst:368 msgid "" "*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." msgstr "" "*node_depth*: profondeur de nœuds (0 à 255, 0 pour les feuilles, ou en mode " "séquentiel)." -#: ../Doc/library/hashlib.rst:370 +#: library/hashlib.rst:370 msgid "" "*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " "in sequential mode)." @@ -638,7 +639,7 @@ msgstr "" "*inner_size*: taille interne du message (0 à 64 pour BLAKE2b, 0 à 32 pour " "BLAKE2s, 0 en mode séquentiel)." -#: ../Doc/library/hashlib.rst:373 +#: library/hashlib.rst:373 msgid "" "*last_node*: boolean indicating whether the processed node is the last one " "(`False` for sequential mode)." @@ -646,7 +647,7 @@ msgstr "" "*last_node*: booléen indiquant si le nœud traité est le dernier (`False` " "pour le mode séquentiel)." -#: ../Doc/library/hashlib.rst:379 +#: library/hashlib.rst:379 msgid "" "See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." @@ -654,38 +655,38 @@ msgstr "" "Voir section 2.10 dans `BLAKE2 specification `_ pour une approche compréhensive du *tree hashing*." -#: ../Doc/library/hashlib.rst:385 +#: library/hashlib.rst:385 msgid "Constants" msgstr "Constantes" -#: ../Doc/library/hashlib.rst:390 +#: library/hashlib.rst:390 msgid "Salt length (maximum length accepted by constructors)." msgstr "Longueur du sel (longueur maximale acceptée par les constructeurs)." -#: ../Doc/library/hashlib.rst:396 +#: library/hashlib.rst:396 msgid "" "Personalization string length (maximum length accepted by constructors)." msgstr "" "Longueur de la chaîne de personnalisation (longueur maximale acceptée par " "les constructeurs)." -#: ../Doc/library/hashlib.rst:402 +#: library/hashlib.rst:402 msgid "Maximum key size." msgstr "Taille maximale de clé." -#: ../Doc/library/hashlib.rst:408 +#: library/hashlib.rst:408 msgid "Maximum digest size that the hash function can output." msgstr "Taille maximale du message que peut fournir la fonction de hachage." -#: ../Doc/library/hashlib.rst:412 +#: library/hashlib.rst:412 msgid "Examples" msgstr "Exemples" -#: ../Doc/library/hashlib.rst:415 +#: library/hashlib.rst:415 msgid "Simple hashing" msgstr "Hachage simple" -#: ../Doc/library/hashlib.rst:417 +#: library/hashlib.rst:417 msgid "" "To calculate hash of some data, you should first construct a hash object by " "calling the appropriate constructor function (:func:`blake2b` or :func:" @@ -700,7 +701,7 @@ msgstr "" "l'empreinte du message en appelant la méthode :meth:`digest` (ou :meth:" "`hexdigest` pour les chaînes hexadécimales)." -#: ../Doc/library/hashlib.rst:430 +#: library/hashlib.rst:430 msgid "" "As a shortcut, you can pass the first chunk of data to update directly to " "the constructor as the positional argument:" @@ -708,7 +709,7 @@ msgstr "" "Pour raccourcir, vous pouvez passer directement au constructeur, comme " "argument positionnel, le premier morceau du message à mettre à jour ::" -#: ../Doc/library/hashlib.rst:437 +#: library/hashlib.rst:437 msgid "" "You can call :meth:`hash.update` as many times as you need to iteratively " "update the hash:" @@ -716,11 +717,11 @@ msgstr "" "Vous pouvez appeler la méthode :meth:`hash.update` autant de fois que " "nécessaire pour mettre à jour le *hash* de manière itérative ::" -#: ../Doc/library/hashlib.rst:450 +#: library/hashlib.rst:450 msgid "Using different digest sizes" msgstr "Usage de tailles d'empreintes différentes" -#: ../Doc/library/hashlib.rst:452 +#: library/hashlib.rst:452 msgid "" "BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " "32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " @@ -731,7 +732,7 @@ msgstr "" "par BLAKE2b sans changer la taille de la sortie, nous pouvons dire à BLAKE2b " "de produire une empreinte de 20 octets ::" -#: ../Doc/library/hashlib.rst:466 +#: library/hashlib.rst:466 msgid "" "Hash objects with different digest sizes have completely different outputs " "(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " @@ -742,11 +743,11 @@ msgstr "" "de *hash* plus longs); BLAKE2b et BLAKE2s produisent des sorties différentes " "même si les longueurs des sorties sont les mêmes ::" -#: ../Doc/library/hashlib.rst:482 +#: library/hashlib.rst:482 msgid "Keyed hashing" msgstr "Code d'authentification de message" -#: ../Doc/library/hashlib.rst:484 +#: library/hashlib.rst:484 msgid "" "Keyed hashing can be used for authentication as a faster and simpler " "replacement for `Hash-based message authentication code `_)" @@ -851,7 +852,7 @@ msgstr "" "(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_, article en anglais)" -#: ../Doc/library/hashlib.rst:568 +#: library/hashlib.rst:568 msgid "" "In BLAKE2 the salt is processed as a one-time input to the hash function " "during initialization, rather than as an input to each compression function." @@ -859,7 +860,7 @@ msgstr "" "Dans BLAKE2, le sel est passé une seule fois lors de l'initialisation de la " "fonction de hachage, plutôt qu'à chaque appel d'une fonction de compression." -#: ../Doc/library/hashlib.rst:573 +#: library/hashlib.rst:573 msgid "" "*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " "cryptographic hash function, such as SHA-256, is not suitable for hashing " @@ -870,11 +871,11 @@ msgstr "" "mots de passe. Voir `BLAKE2 FAQ `_ pour plus " "d'informations." -#: ../Doc/library/hashlib.rst:596 +#: library/hashlib.rst:596 msgid "Personalization" msgstr "Personnalisation" -#: ../Doc/library/hashlib.rst:598 +#: library/hashlib.rst:598 msgid "" "Sometimes it is useful to force hash function to produce different digests " "for the same input for different purposes. Quoting the authors of the Skein " @@ -884,7 +885,7 @@ msgstr "" "différentes empreintes de message d'une même entrée pour différentes " "utilisations. Pour citer les auteurs de la fonction de hachage Skein  ::" -#: ../Doc/library/hashlib.rst:602 +#: library/hashlib.rst:602 msgid "" "We recommend that all application designers seriously consider doing this; " "we have seen many protocols where a hash that is computed in one part of the " @@ -901,7 +902,7 @@ msgstr "" "prendre en entrée le même *hash*. Personnaliser chaque fonction de hachage " "utilisée dans le protocole stoppe immédiatement ce genre d'attaque." -#: ../Doc/library/hashlib.rst:609 +#: library/hashlib.rst:609 msgid "" "(`The Skein Hash Function Family `_, p. 21)" @@ -909,12 +910,12 @@ msgstr "" "(`The Skein Hash Function Family `_, p. 21, article en anglais)" -#: ../Doc/library/hashlib.rst:613 +#: library/hashlib.rst:613 msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" msgstr "" "BLAKE2 peut être personnalisé en passant des *bytes* à l'argument *person* ::" -#: ../Doc/library/hashlib.rst:627 +#: library/hashlib.rst:627 msgid "" "Personalization together with the keyed mode can also be used to derive " "different keys from a single one." @@ -922,17 +923,17 @@ msgstr "" "La personnalisation et le *keyed mode* peuvent être utilisés ensemble pour " "dériver différentes clés à partir d'une seule." -#: ../Doc/library/hashlib.rst:641 +#: library/hashlib.rst:641 msgid "Tree mode" msgstr "Mode Arbre" -#: ../Doc/library/hashlib.rst:643 +#: library/hashlib.rst:643 msgid "Here's an example of hashing a minimal tree with two leaf nodes::" msgstr "" "L'exemple ci-dessous présente comment hacher un arbre minimal avec deux " "nœuds terminaux ::" -#: ../Doc/library/hashlib.rst:649 +#: library/hashlib.rst:649 msgid "" "This example uses 64-byte internal digests, and returns the 32-byte final " "digest::" @@ -940,11 +941,11 @@ msgstr "" "Cet exemple utilise en interne des empreintes de 64 octets, et produit " "finalement des empreintes 32 octets ::" -#: ../Doc/library/hashlib.rst:679 +#: library/hashlib.rst:679 msgid "Credits" msgstr "Crédits" -#: ../Doc/library/hashlib.rst:681 +#: library/hashlib.rst:681 msgid "" "BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " "Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " @@ -956,7 +957,7 @@ msgstr "" "créé par *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, et *Raphael " "C.-W. Phan*." -#: ../Doc/library/hashlib.rst:686 +#: library/hashlib.rst:686 msgid "" "It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " "Bernstein*." @@ -964,7 +965,7 @@ msgstr "" "Il utilise le cœur de l'algorithme de chiffrement de ChaCha_ conçu par " "*Daniel J. Bernstein*." -#: ../Doc/library/hashlib.rst:688 +#: library/hashlib.rst:688 msgid "" "The stdlib implementation is based on pyblake2_ module. It was written by " "*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " @@ -975,12 +976,12 @@ msgstr "" "l'implémentation C écrite par *Samuel Neves*. La documentation a été copiée " "depuis pyblake2_ et écrite par *Dmitry Chestnykh*." -#: ../Doc/library/hashlib.rst:692 +#: library/hashlib.rst:692 msgid "The C code was partly rewritten for Python by *Christian Heimes*." msgstr "" "Le code C a été partiellement réécrit pour Python par *Christian Heimes*." -#: ../Doc/library/hashlib.rst:694 +#: library/hashlib.rst:694 msgid "" "The following public domain dedication applies for both C hash function " "implementation, extension code, and this documentation:" @@ -988,7 +989,7 @@ msgstr "" "Le transfert dans le domaine publique s'applique pour l'implémentation C de " "la fonction de hachage, ses extensions et cette documentation ::" -#: ../Doc/library/hashlib.rst:697 +#: library/hashlib.rst:697 msgid "" "To the extent possible under law, the author(s) have dedicated all copyright " "and related and neighboring rights to this software to the public domain " @@ -999,7 +1000,7 @@ msgstr "" "domaine public dans le monde entier. Ce logiciel est distribué sans aucune " "garantie." -#: ../Doc/library/hashlib.rst:701 +#: library/hashlib.rst:701 msgid "" "You should have received a copy of the CC0 Public Domain Dedication along " "with this software. If not, see https://creativecommons.org/publicdomain/" @@ -1009,7 +1010,7 @@ msgstr "" "Domain Dedication*. Sinon, voir https://creativecommons.org/publicdomain/" "zero/1.0/." -#: ../Doc/library/hashlib.rst:705 +#: library/hashlib.rst:705 msgid "" "The following people have helped with development or contributed their " "changes to the project and the public domain according to the Creative " @@ -1019,38 +1020,38 @@ msgstr "" "modification du projet et au domaine public selon la licence Creative " "Commons Public Domain Dedication 1.0 Universal ::" -#: ../Doc/library/hashlib.rst:709 +#: library/hashlib.rst:709 msgid "*Alexandr Sokolovskiy*" msgstr "*Alexandr Sokolovskiy*" -#: ../Doc/library/hashlib.rst:723 +#: library/hashlib.rst:723 msgid "Module :mod:`hmac`" msgstr "Module :mod:`hmac`" -#: ../Doc/library/hashlib.rst:723 +#: library/hashlib.rst:723 msgid "A module to generate message authentication codes using hashes." msgstr "" "Un module pour générer des codes d'authentification utilisant des *hash*." -#: ../Doc/library/hashlib.rst:726 +#: library/hashlib.rst:726 msgid "Module :mod:`base64`" msgstr "Module :mod:`base64`" -#: ../Doc/library/hashlib.rst:726 +#: library/hashlib.rst:726 msgid "Another way to encode binary hashes for non-binary environments." msgstr "" "Un autre moyen d'encoder des *hash* binaires dans des environnements non " "binaires." -#: ../Doc/library/hashlib.rst:729 +#: library/hashlib.rst:729 msgid "https://blake2.net" msgstr "https://blake2.net" -#: ../Doc/library/hashlib.rst:729 +#: library/hashlib.rst:729 msgid "Official BLAKE2 website." msgstr "Site officiel de BLAKE2." -#: ../Doc/library/hashlib.rst:732 +#: library/hashlib.rst:732 msgid "" "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" "documents/fips180-2.pdf" @@ -1058,11 +1059,11 @@ msgstr "" "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/2002-08-01/" "documents/fips180-2.pdf" -#: ../Doc/library/hashlib.rst:732 +#: library/hashlib.rst:732 msgid "The FIPS 180-2 publication on Secure Hash Algorithms." msgstr "La publication FIPS 180-2 sur les algorithmes de hachage sécurisés." -#: ../Doc/library/hashlib.rst:736 +#: library/hashlib.rst:736 msgid "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" @@ -1070,7 +1071,7 @@ msgstr "" "https://en.wikipedia.org/wiki/" "Cryptographic_hash_function#Cryptographic_hash_algorithms" -#: ../Doc/library/hashlib.rst:735 +#: library/hashlib.rst:735 msgid "" "Wikipedia article with information on which algorithms have known issues and " "what that means regarding their use." @@ -1078,10 +1079,10 @@ msgstr "" "Article Wikipedia contenant les informations relatives aux algorithmes ayant " "des problèmes et leur interprétation au regard de leur utilisation." -#: ../Doc/library/hashlib.rst:738 +#: library/hashlib.rst:738 msgid "https://www.ietf.org/rfc/rfc2898.txt" msgstr "https://www.ietf.org/rfc/rfc2898.txt" -#: ../Doc/library/hashlib.rst:739 +#: library/hashlib.rst:739 msgid "PKCS #5: Password-Based Cryptography Specification Version 2.0" msgstr "PKCS #5: Password-Based Cryptography Specification Version 2.0" diff --git a/library/heapq.po b/library/heapq.po index 19aa3903a8..c0be357671 100644 --- a/library/heapq.po +++ b/library/heapq.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2019-10-09 17:54+0200\n" "PO-Revision-Date: 2019-09-16 12:04+0200\n" @@ -15,15 +15,15 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.2.1\n" -#: ../Doc/library/heapq.rst:2 +#: library/heapq.rst:2 msgid ":mod:`heapq` --- Heap queue algorithm" msgstr ":mod:`heapq` — File de priorité basée sur un tas" -#: ../Doc/library/heapq.rst:12 +#: library/heapq.rst:12 msgid "**Source code:** :source:`Lib/heapq.py`" msgstr "**Code source :** :source:`Lib/heapq.py`" -#: ../Doc/library/heapq.rst:16 +#: library/heapq.rst:16 msgid "" "This module provides an implementation of the heap queue algorithm, also " "known as the priority queue algorithm." @@ -31,7 +31,7 @@ msgstr "" "Ce module expose une implémentation de l'algorithme de file de priorité, " "basée sur un tas." -#: ../Doc/library/heapq.rst:19 +#: library/heapq.rst:19 msgid "" "Heaps are binary trees for which every parent node has a value less than or " "equal to any of its children. This implementation uses arrays for which " @@ -48,7 +48,7 @@ msgstr "" "considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son " "plus petit élément est toujours la racine, ``tas[0]``." -#: ../Doc/library/heapq.rst:26 +#: library/heapq.rst:26 msgid "" "The API below differs from textbook heap algorithms in two aspects: (a) We " "use zero-based indexing. This makes the relationship between the index for " @@ -58,25 +58,25 @@ msgid "" "\"max heap\" is more common in texts because of its suitability for in-place " "sorting)." msgstr "" -"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " -"(a) L'indiçage commence à zéro. Cela complexifie légèrement la relation " +"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " +"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation " "entre l'indice d'un nœud et les indices de ses fils mais est alignée avec " "l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* " -"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " -"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " +"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " +"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " "la littérature car il permet le classement sans tampon)." -#: ../Doc/library/heapq.rst:33 +#: library/heapq.rst:33 msgid "" "These two make it possible to view the heap as a regular Python list without " "surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` maintains " "the heap invariant!" msgstr "" "Ces deux points permettent d'aborder le tas comme une liste Python standard " -"sans surprise : ``heap[0]`` est le plus petit élément tandis que ``heap." -"sort()`` ne modifie pas le tas !" +"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` " +"conserve l'invariant du tas !" -#: ../Doc/library/heapq.rst:37 +#: library/heapq.rst:37 msgid "" "To create a heap, use a list initialized to ``[]``, or you can transform a " "populated list into a heap via function :func:`heapify`." @@ -85,17 +85,17 @@ msgstr "" "une liste existante et transformez la en tas à l'aide de la fonction :func:" "`heapify`." -#: ../Doc/library/heapq.rst:40 +#: library/heapq.rst:40 msgid "The following functions are provided:" -msgstr "Les fonctions suivantes sont fournies :" +msgstr "Les fonctions suivantes sont fournies :" -#: ../Doc/library/heapq.rst:45 +#: library/heapq.rst:45 msgid "Push the value *item* onto the *heap*, maintaining the heap invariant." msgstr "" "Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du " "tas." -#: ../Doc/library/heapq.rst:50 +#: library/heapq.rst:50 msgid "" "Pop and return the smallest item from the *heap*, maintaining the heap " "invariant. If the heap is empty, :exc:`IndexError` is raised. To access " @@ -105,7 +105,7 @@ msgstr "" "le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au " "plus petit élément sans le retirer, utilisez ``heap[0]``." -#: ../Doc/library/heapq.rst:57 +#: library/heapq.rst:57 msgid "" "Push *item* on the heap, then pop and return the smallest item from the " "*heap*. The combined action runs more efficiently than :func:`heappush` " @@ -115,13 +115,13 @@ msgstr "" "de *heap*. Cette action combinée est plus efficace que :func:`heappush` " "suivie par un appel séparé à :func:`heappop`." -#: ../Doc/library/heapq.rst:64 +#: library/heapq.rst:64 msgid "Transform list *x* into a heap, in-place, in linear time." msgstr "" "Transforme une liste *x* en un tas, sans utiliser de tampon et en temps " "linéaire." -#: ../Doc/library/heapq.rst:69 +#: library/heapq.rst:69 msgid "" "Pop and return the smallest item from the *heap*, and also push the new " "*item*. The heap size doesn't change. If the heap is empty, :exc:" @@ -131,7 +131,7 @@ msgstr "" "*item*. La taille du tas ne change pas. Si le tas est vide, une exception :" "exc:`IndexError` est levée." -#: ../Doc/library/heapq.rst:72 +#: library/heapq.rst:72 msgid "" "This one step operation is more efficient than a :func:`heappop` followed " "by :func:`heappush` and can be more appropriate when using a fixed-size " @@ -143,7 +143,7 @@ msgstr "" "est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément " "du tas et le remplace par *item*." -#: ../Doc/library/heapq.rst:77 +#: library/heapq.rst:77 msgid "" "The value returned may be larger than the *item* added. If that isn't " "desired, consider using :func:`heappushpop` instead. Its push/pop " @@ -155,12 +155,12 @@ msgstr "" "Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs " "et laisse la plus grande sur le tas." -#: ../Doc/library/heapq.rst:83 +#: library/heapq.rst:83 msgid "The module also offers three general purpose functions based on heaps." msgstr "" "Ce module contient également trois fonctions génériques utilisant les tas." -#: ../Doc/library/heapq.rst:88 +#: library/heapq.rst:88 msgid "" "Merge multiple sorted inputs into a single sorted output (for example, merge " "timestamped entries from multiple log files). Returns an :term:`iterator` " @@ -170,7 +170,7 @@ msgstr "" "exemple, fusionne des entrées datées provenant de multiples journaux " "applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées." -#: ../Doc/library/heapq.rst:92 +#: library/heapq.rst:92 msgid "" "Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, " "does not pull the data into memory all at once, and assumes that each of the " @@ -180,12 +180,12 @@ msgstr "" "itérable, ne stocke pas toutes les données en mémoire en une fois et suppose " "que chaque flux d'entrée est déjà classé (en ordre croissant)." -#: ../Doc/library/heapq.rst:96 +#: library/heapq.rst:96 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/heapq.rst:98 +#: library/heapq.rst:98 msgid "" "*key* specifies a :term:`key function` of one argument that is used to " "extract a comparison key from each input element. The default value is " @@ -195,7 +195,7 @@ msgstr "" "une clef de comparaison de chaque élément de la liste. La valeur par défaut " "est ``None`` (compare les éléments directement)." -#: ../Doc/library/heapq.rst:102 +#: library/heapq.rst:102 msgid "" "*reverse* is a boolean value. If set to ``True``, then the input elements " "are merged as if each comparison were reversed. To achieve behavior similar " @@ -208,11 +208,11 @@ msgstr "" "chain(*iterables), reverse=True)``, tous les itérables doivent être classés " "par ordre décroissant." -#: ../Doc/library/heapq.rst:107 +#: library/heapq.rst:107 msgid "Added the optional *key* and *reverse* parameters." msgstr "Ajout des paramètres optionnels *key* et *reverse*." -#: ../Doc/library/heapq.rst:113 +#: library/heapq.rst:113 msgid "" "Return a list with the *n* largest elements from the dataset defined by " "*iterable*. *key*, if provided, specifies a function of one argument that " @@ -224,9 +224,9 @@ msgstr "" "défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " "fonction à un argument qui est utilisée pour extraire la clé de comparaison " "de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " -"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." +"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." -#: ../Doc/library/heapq.rst:122 +#: library/heapq.rst:122 msgid "" "Return a list with the *n* smallest elements from the dataset defined by " "*iterable*. *key*, if provided, specifies a function of one argument that " @@ -238,9 +238,9 @@ msgstr "" "défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " "fonction à un argument qui est utilisée pour extraire la clé de comparaison " "de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " -"Équivalent à : ``sorted(iterable, key=key)[:n]``." +"Équivalent à : ``sorted(iterable, key=key)[:n]``." -#: ../Doc/library/heapq.rst:128 +#: library/heapq.rst:128 msgid "" "The latter two functions perform best for smaller values of *n*. For larger " "values, it is more efficient to use the :func:`sorted` function. Also, when " @@ -255,11 +255,11 @@ msgstr "" "utiliser ces fonctions de façon répétée, il est préférable de transformer " "l'itérable en tas." -#: ../Doc/library/heapq.rst:136 +#: library/heapq.rst:136 msgid "Basic Examples" msgstr "Exemples simples" -#: ../Doc/library/heapq.rst:138 +#: library/heapq.rst:138 msgid "" "A `heapsort `_ can be implemented by " "pushing all values onto a heap and then popping off the smallest values one " @@ -269,7 +269,7 @@ msgstr "" "implémenté en introduisant toutes les valeurs dans un tas puis en effectuant " "l'extraction des éléments un par un ::" -#: ../Doc/library/heapq.rst:151 +#: library/heapq.rst:151 msgid "" "This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " "implementation is not stable." @@ -277,37 +277,37 @@ msgstr "" "Ceci est similaire à ``sorted(iterable)`` mais, contrairement à :func:" "`sorted`, cette implémentation n'est pas stable." -#: ../Doc/library/heapq.rst:154 +#: library/heapq.rst:154 msgid "" "Heap elements can be tuples. This is useful for assigning comparison values " "(such as task priorities) alongside the main record being tracked::" msgstr "" -"Les éléments d'un tas peuvent être des n-uplets. C'est pratique pour " +"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour " "assigner des valeurs de comparaison (par exemple, des priorités de tâches) " -"en plus de l'élément qui est suivi ::" +"en plus de l'élément qui est suivi ::" -#: ../Doc/library/heapq.rst:167 +#: library/heapq.rst:167 msgid "Priority Queue Implementation Notes" msgstr "Notes d'implémentation de la file de priorité" -#: ../Doc/library/heapq.rst:169 +#: library/heapq.rst:169 msgid "" "A `priority queue `_ is common " "use for a heap, and it presents several implementation challenges:" msgstr "" -"Une `file de priorité `_ est une application courante des tas et présente plusieurs défis " -"d'implémentation :" +"Une `file de priorité `_ est une application courante des tas et présente " +"plusieurs défis d'implémentation :" -#: ../Doc/library/heapq.rst:172 +#: library/heapq.rst:172 msgid "" "Sort stability: how do you get two tasks with equal priorities to be " "returned in the order they were originally added?" msgstr "" -"Stabilité du classement : comment s'assurer que deux tâches avec la même " -"priorité sont renvoyées dans l'ordre de leur ajout ?" +"Stabilité du classement : comment s'assurer que deux tâches avec la même " +"priorité sont renvoyées dans l'ordre de leur ajout ?" -#: ../Doc/library/heapq.rst:175 +#: library/heapq.rst:175 msgid "" "Tuple comparison breaks for (priority, task) pairs if the priorities are " "equal and the tasks do not have a default comparison order." @@ -315,23 +315,23 @@ msgstr "" "La comparaison des couples (priorité, tâche) échoue si les priorités sont " "identiques et que les tâches n'ont pas de relation d'ordre par défaut." -#: ../Doc/library/heapq.rst:178 +#: library/heapq.rst:178 msgid "" "If the priority of a task changes, how do you move it to a new position in " "the heap?" msgstr "" "Si la priorité d'une tâche change, comment la déplacer à sa nouvelle " -"position dans le tas ?" +"position dans le tas ?" -#: ../Doc/library/heapq.rst:181 +#: library/heapq.rst:181 msgid "" "Or if a pending task needs to be deleted, how do you find it and remove it " "from the queue?" msgstr "" "Si une tâche en attente doit être supprimée, comment la trouver et la " -"supprimer de la file ?" +"supprimer de la file ?" -#: ../Doc/library/heapq.rst:184 +#: library/heapq.rst:184 msgid "" "A solution to the first two challenges is to store entries as 3-element list " "including the priority, an entry count, and the task. The entry count " @@ -347,7 +347,7 @@ msgstr "" "comparaison des triplets ne va jamais chercher à comparer des tâches entre " "elles." -#: ../Doc/library/heapq.rst:190 +#: library/heapq.rst:190 msgid "" "Another solution to the problem of non-comparable tasks is to create a " "wrapper class that ignores the task item and only compares the priority " @@ -355,9 +355,9 @@ msgid "" msgstr "" "Une autre solution au fait que les tâches ne possèdent pas de relation " "d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche " -"et ne compare que le champ priorité ::" +"et ne compare que le champ priorité ::" -#: ../Doc/library/heapq.rst:201 +#: library/heapq.rst:201 msgid "" "The remaining challenges revolve around finding a pending task and making " "changes to its priority or removing it entirely. Finding a task can be done " @@ -367,7 +367,7 @@ msgstr "" "priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un " "dictionnaire pointant vers une entrée dans la file." -#: ../Doc/library/heapq.rst:205 +#: library/heapq.rst:205 msgid "" "Removing the entry or changing its priority is more difficult because it " "would break the heap structure invariants. So, a possible solution is to " @@ -376,13 +376,13 @@ msgstr "" "Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " "romprait l'invariant de la structure de tas. Une solution possible est de " "marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " -"priorité modifiée ::" +"priorité modifiée ::" -#: ../Doc/library/heapq.rst:239 +#: library/heapq.rst:239 msgid "Theory" msgstr "Théorie" -#: ../Doc/library/heapq.rst:241 +#: library/heapq.rst:241 msgid "" "Heaps are arrays for which ``a[k] <= a[2*k+1]`` and ``a[k] <= a[2*k+2]`` for " "all *k*, counting elements from 0. For the sake of comparison, non-existing " @@ -395,15 +395,15 @@ msgstr "" "étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus " "petit élément." -#: ../Doc/library/heapq.rst:246 +#: library/heapq.rst:246 msgid "" "The strange invariant above is meant to be an efficient memory " "representation for a tournament. The numbers below are *k*, not ``a[k]``::" msgstr "" "L'invariant étrange ci-dessus est une représentation efficace en mémoire " -"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" +"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" -#: ../Doc/library/heapq.rst:259 +#: library/heapq.rst:259 msgid "" "In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In a " "usual binary tournament we see in sports, each cell is the winner over the " @@ -415,19 +415,19 @@ msgid "" "two cells it tops contain three different items, but the top cell \"wins\" " "over the two topped cells." msgstr "" -"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et ``2*k" -"+2``. Dans les tournois binaires habituels dans les compétitions sportives, " -"chaque nœud est le vainqueur des deux nœuds inférieurs et nous pouvons " -"tracer le chemin du vainqueur le long de l'arbre afin de voir qui étaient " -"ses adversaires. Cependant, dans de nombreuses applications informatiques de " -"ces tournois, nous n'avons pas besoin de produire l'historique du vainqueur. " -"Afin d'occuper moins de mémoire, on remplace le vainqueur lors de sa " -"promotion par un autre élément à un plus bas niveau. La règle devient alors " -"qu'un nœud et les deux nœuds qu'il chapeaute contiennent trois éléments " -"différents, mais le nœud supérieur « gagne » contre les deux nœuds " -"inférieurs." +"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et " +"``2*k+2``. Dans les tournois binaires habituels dans les compétitions " +"sportives, chaque nœud est le vainqueur des deux nœuds inférieurs et nous " +"pouvons tracer le chemin du vainqueur le long de l'arbre afin de voir qui " +"étaient ses adversaires. Cependant, dans de nombreuses applications " +"informatiques de ces tournois, nous n'avons pas besoin de produire " +"l'historique du vainqueur. Afin d'occuper moins de mémoire, on remplace le " +"vainqueur lors de sa promotion par un autre élément à un plus bas niveau. La " +"règle devient alors qu'un nœud et les deux nœuds qu'il chapeaute contiennent " +"trois éléments différents, mais le nœud supérieur « gagne » contre les deux " +"nœuds inférieurs." -#: ../Doc/library/heapq.rst:268 +#: library/heapq.rst:268 msgid "" "If this heap invariant is protected at all time, index 0 is clearly the " "overall winner. The simplest algorithmic way to remove it and find the " @@ -439,7 +439,7 @@ msgid "" msgstr "" "Si cet invariant de tas est vérifié à tout instant, alors l'élément à " "l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le " -"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " +"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " "(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à " "faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur " "avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette " @@ -447,29 +447,29 @@ msgstr "" "l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n " "log n) opérations." -#: ../Doc/library/heapq.rst:275 +#: library/heapq.rst:275 msgid "" "A nice feature of this sort is that you can efficiently insert new items " -"while the sort is going on, provided that the inserted items are not \"better" -"\" than the last 0'th element you extracted. This is especially useful in " -"simulation contexts, where the tree holds all incoming events, and the \"win" -"\" condition means the smallest scheduled time. When an event schedules " -"other events for execution, they are scheduled into the future, so they can " -"easily go into the heap. So, a heap is a good structure for implementing " -"schedulers (this is what I used for my MIDI sequencer :-)." -msgstr "" -"Une propriété agréable de cet algorithme est qu'il possible d'insérer " +"while the sort is going on, provided that the inserted items are not " +"\"better\" than the last 0'th element you extracted. This is especially " +"useful in simulation contexts, where the tree holds all incoming events, and " +"the \"win\" condition means the smallest scheduled time. When an event " +"schedules other events for execution, they are scheduled into the future, so " +"they can easily go into the heap. So, a heap is a good structure for " +"implementing schedulers (this is what I used for my MIDI sequencer :-)." +msgstr "" +"Une propriété agréable de cet algorithme est qu'il est possible d'insérer " "efficacement de nouveaux éléments en cours de classement, du moment que les " -"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " +"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " "extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la " -"liste des événements arrivants et que la condition de « victoire » est le " +"liste des événements arrivants et que la condition de « victoire » est le " "plus petit temps d'exécution planifié. Lorsqu'un événement programme " "l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et " "peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour " "implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon " "séquenceur MIDI ☺)." -#: ../Doc/library/heapq.rst:284 +#: library/heapq.rst:284 msgid "" "Various structures for implementing schedulers have been extensively " "studied, and heaps are good for this, as they are reasonably speedy, the " @@ -478,12 +478,12 @@ msgid "" "efficient overall, yet the worst cases might be terrible." msgstr "" "Plusieurs structures ont été étudiées en détail pour implémenter des " -"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " +"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " "rapides, leur vitesse est presque constante et le pire cas ne diffère pas " "trop du cas moyen. S'il existe des représentations qui sont plus efficaces " "en général, les pires cas peuvent être terriblement mauvais." -#: ../Doc/library/heapq.rst:290 +#: library/heapq.rst:290 msgid "" "Heaps are also very useful in big disk sorts. You most probably all know " "that a big sort implies producing \"runs\" (which are pre-sorted sequences, " @@ -509,7 +509,7 @@ msgstr "" "de la mémoire pour une entrée aléatoire et bien mieux pour une entrée " "approximativement triée." -#: ../Doc/library/heapq.rst:300 +#: library/heapq.rst:300 msgid "" "Moreover, if you output the 0'th item on disk and get an input which may not " "fit in the current tournament (because the value \"wins\" over the last " @@ -521,14 +521,14 @@ msgid "" msgstr "" "Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez " "en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa " -"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " +"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " "peut pas être stocké dans le tas donc la taille de ce dernier diminue. La " "mémoire libérée peut être réutilisée immédiatement pour progressivement " "construire un deuxième tas, qui croit à la même vitesse que le premier " "décroît. Lorsque le premier tas a complètement disparu, vous échangez les " -"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" +"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" -#: ../Doc/library/heapq.rst:308 +#: library/heapq.rst:308 msgid "" "In a word, heaps are useful memory structures to know. I use them in a few " "applications, and I think it is good to keep a 'heap' module around. :-)" @@ -537,11 +537,11 @@ msgstr "" "connaître. Je les utilise dans quelques applications et je pense qu'il est " "bon de garder le module *heap* sous le coude. ☺" -#: ../Doc/library/heapq.rst:312 +#: library/heapq.rst:312 msgid "Footnotes" msgstr "Notes" -#: ../Doc/library/heapq.rst:313 +#: library/heapq.rst:313 msgid "" "The disk balancing algorithms which are current, nowadays, are more annoying " "than clever, and this is a consequence of the seeking capabilities of the " @@ -559,8 +559,8 @@ msgstr "" "que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin " "était différent et il fallait être malin pour s'assurer (bien à l'avance) " "que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire " -"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " +"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " "pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de " "remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient " -"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " -"le Grand Art ! ☺" +"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " +"le Grand Art ! ☺" diff --git a/library/hmac.po b/library/hmac.po index 01e1f85007..b2fb91b2fa 100644 --- a/library/hmac.po +++ b/library/hmac.po @@ -3,20 +3,23 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2019-09-04 11:33+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2020-05-23 11:38+0200\n" +"PO-Revision-Date: 2020-04-27 22:24+0200\n" +"Last-Translator: Mathieu Dupuy \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.3\n" #: ../Doc/library/hmac.rst:2 msgid ":mod:`hmac` --- Keyed-Hashing for Message Authentication" msgstr "" +":mod:`hmac` — Authentification de messages par hachage en combinaison avec " +"une clé secrète" #: ../Doc/library/hmac.rst:10 msgid "**Source code:** :source:`Lib/hmac.py`" @@ -25,27 +28,46 @@ msgstr "**Code source :** :source:`Lib/hmac.py`" #: ../Doc/library/hmac.rst:14 msgid "This module implements the HMAC algorithm as described by :rfc:`2104`." msgstr "" +"Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`." #: ../Doc/library/hmac.rst:19 msgid "" "Return a new hmac object. *key* is a bytes or bytearray object giving the " "secret key. If *msg* is present, the method call ``update(msg)`` is made. " "*digestmod* is the digest name, digest constructor or module for the HMAC " -"object to use. It supports any name suitable to :func:`hashlib.new`." -msgstr "" - -#: ../Doc/library/hmac.rst:24 +"object to use. It may be any name suitable to :func:`hashlib.new`. Despite " +"its argument position, it is required." +msgstr "" +"Renvoie un nouvel objet HMAC. *key* est un objet *byte* ou *bytearray* " +"représentant la clé secrète. Si *msg* est présent, un appel à " +"``update(msg)`` est effectué. *digestmod* permet de choisir l’algorithme à " +"utiliser par l’objet HMAC, il accepte un nom de fonction de hachage (peut " +"être tout ce qui convient à :func:`hashlib.new`), un constructeur de " +"fonction de hachage ou un module implémentant la PEP 247. Bien qu’il soit " +"après *msg*, *digestmod* est un paramètre obligatoire." + +#: ../Doc/library/hmac.rst:25 msgid "" "Parameter *key* can be a bytes or bytearray object. Parameter *msg* can be " "of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " "name of a hash algorithm." msgstr "" +"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre " +"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le " +"paramètre *digestmod* peut être le nom d'un algorithme de hachage." -#: ../Doc/library/hmac.rst:30 -msgid "MD5 as implicit default digest for *digestmod* is deprecated." +#: ../Doc/library/hmac.rst:33 +msgid "" +"MD5 as implicit default digest for *digestmod* is deprecated. The digestmod " +"parameter is now required. Pass it as a keyword argument to avoid " +"awkwardness when you do not have an initial msg." msgstr "" +"MD5 en tant qu’algorithme cryptographique par défaut implicite pour " +"*digestmod* est obsolète. Le paramètre *digestmod* est maintenant requis. " +"Passez-le en argument nommé pour éviter la bizarrerie que ça donnerait quand " +"vous n'avez pas un *msg* initial." -#: ../Doc/library/hmac.rst:35 +#: ../Doc/library/hmac.rst:38 msgid "" "Return digest of *msg* for given secret *key* and *digest*. The function is " "equivalent to ``HMAC(key, msg, digest).digest()``, but uses an optimized C " @@ -53,88 +75,127 @@ msgid "" "The parameters *key*, *msg*, and *digest* have the same meaning as in :func:" "`~hmac.new`." msgstr "" +"Renvoie le code d'authentification de *msg*, pour la clé secrète *key* et à " +"l'algorithme *digest* donné. La fonction est équivalente à ``HMAC(key, msg, " +"digest).digest()``, mais elle utilise une implémentation optimisée en C ou " +"*inline*, qui est plus rapide pour les messages dont la taille leur permet " +"de tenir en mémoire vive. Les paramètres *key*, *msg* et *digest* ont la " +"même signification que pour :func:`~hmac.new`." -#: ../Doc/library/hmac.rst:41 +#: ../Doc/library/hmac.rst:44 msgid "" "CPython implementation detail, the optimized C implementation is only used " "when *digest* is a string and name of a digest algorithm, which is supported " "by OpenSSL." msgstr "" +"Détail d'implémentation CPython, l'implémentation C optimisée n'est utilisée " +"que lorsque le *digest* est une chaîne de caractères et le nom d'un " +"algorithme de hachage implémenté dans OpenSSL." -#: ../Doc/library/hmac.rst:48 +#: ../Doc/library/hmac.rst:51 msgid "An HMAC object has the following methods:" -msgstr "" +msgstr "Un objet HMAC a les méthodes suivantes :" -#: ../Doc/library/hmac.rst:52 +#: ../Doc/library/hmac.rst:55 msgid "" "Update the hmac object with *msg*. Repeated calls are equivalent to a " "single call with the concatenation of all the arguments: ``m.update(a); m." "update(b)`` is equivalent to ``m.update(a + b)``." msgstr "" +"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un " +"seul appel avec la concaténation de tous les arguments : ``m.update(a); m." +"update(b)`` est équivalent à ``m.update(a + b)``." -#: ../Doc/library/hmac.rst:56 +#: ../Doc/library/hmac.rst:59 msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." msgstr "" +"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`." -#: ../Doc/library/hmac.rst:62 +#: ../Doc/library/hmac.rst:65 msgid "" "Return the digest of the bytes passed to the :meth:`update` method so far. " "This bytes object will be the same length as the *digest_size* of the digest " "given to the constructor. It may contain non-ASCII bytes, including NUL " "bytes." msgstr "" +"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque " +"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de " +"la fonction de hachage donnée au constructeur. Il peut contenir des octets " +"qui ne sont pas dans la table ASCII, y compris des octets NUL." -#: ../Doc/library/hmac.rst:69 +#: ../Doc/library/hmac.rst:72 msgid "" "When comparing the output of :meth:`digest` to an externally-supplied digest " "during a verification routine, it is recommended to use the :func:" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu " +"par ailleurs par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles." -#: ../Doc/library/hmac.rst:77 +#: ../Doc/library/hmac.rst:80 msgid "" "Like :meth:`digest` except the digest is returned as a string twice the " "length containing only hexadecimal digits. This may be used to exchange the " "value safely in email or other non-binary environments." msgstr "" +"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de " +"caractères de taille doublée contenant seulement des chiffres hexadécimaux. " +"Cela permet d’échanger le résultat sans problèmes par e-mail ou dans " +"d'autres environnements ne gérant pas les données binaires." -#: ../Doc/library/hmac.rst:83 +#: ../Doc/library/hmac.rst:86 msgid "" "When comparing the output of :meth:`hexdigest` to an externally-supplied " "digest during a verification routine, it is recommended to use the :func:" "`compare_digest` function instead of the ``==`` operator to reduce the " "vulnerability to timing attacks." msgstr "" +"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat " +"connu obtenu par un service extérieur durant une routine de vérification, il " +"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " +"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur " +"les temps de réponse." -#: ../Doc/library/hmac.rst:91 +#: ../Doc/library/hmac.rst:94 msgid "" "Return a copy (\"clone\") of the hmac object. This can be used to " "efficiently compute the digests of strings that share a common initial " "substring." msgstr "" +"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de " +"manière efficace les empreintes cryptographiques de chaînes de caractères " +"qui ont en commun une sous-chaîne initiale." -#: ../Doc/library/hmac.rst:95 +#: ../Doc/library/hmac.rst:98 msgid "A hash object has the following attributes:" -msgstr "L'objet haché possède les attributs suivants ::" +msgstr "" +"Un objet *code d'authentification de message* (HMAC) possède les attributs " +"suivants :" -#: ../Doc/library/hmac.rst:99 +#: ../Doc/library/hmac.rst:102 msgid "The size of the resulting HMAC digest in bytes." msgstr "" +"La taille du code d'authentification (c.-à-d. de l'empreinte " +"cryptographique) en octets." -#: ../Doc/library/hmac.rst:103 +#: ../Doc/library/hmac.rst:106 msgid "The internal block size of the hash algorithm in bytes." msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." -#: ../Doc/library/hmac.rst:109 +#: ../Doc/library/hmac.rst:112 msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." msgstr "" +"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple " +"``hmac-md5``." -#: ../Doc/library/hmac.rst:114 +#: ../Doc/library/hmac.rst:117 msgid "This module also provides the following helper function:" -msgstr "" +msgstr "Ce module fournit également la fonction utilitaire suivante :" -#: ../Doc/library/hmac.rst:118 +#: ../Doc/library/hmac.rst:121 msgid "" "Return ``a == b``. This function uses an approach designed to prevent " "timing analysis by avoiding content-based short circuiting behaviour, making " @@ -142,18 +203,27 @@ msgid "" "either :class:`str` (ASCII only, as e.g. returned by :meth:`HMAC." "hexdigest`), or a :term:`bytes-like object`." msgstr "" +"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques " +"temporelles en évitant l'implémentation de courts-circuits basés sur le " +"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* " +"doivent être du même type : soit :class:`str` (caractères ASCII seulement, " +"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like " +"object`." -#: ../Doc/library/hmac.rst:126 +#: ../Doc/library/hmac.rst:129 msgid "" "If *a* and *b* are of different lengths, or if an error occurs, a timing " "attack could theoretically reveal information about the types and lengths of " "*a* and *b*—but not their values." msgstr "" +"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une " +"attaque temporelle pourrait en théorie obtenir des informations sur les " +"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs." -#: ../Doc/library/hmac.rst:136 +#: ../Doc/library/hmac.rst:138 msgid "Module :mod:`hashlib`" -msgstr "" +msgstr "Module :mod:`hashlib`" -#: ../Doc/library/hmac.rst:137 +#: ../Doc/library/hmac.rst:139 msgid "The Python module providing secure hash functions." -msgstr "" +msgstr "Le module Python fournissant des fonctions de hachage sécurisé." diff --git a/library/html.entities.po b/library/html.entities.po index 1fa137a265..22b87ed0df 100644 --- a/library/html.entities.po +++ b/library/html.entities.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-02 22:11+0200\n" "PO-Revision-Date: 2018-09-27 15:05+0200\n" diff --git a/library/html.parser.po b/library/html.parser.po index a1a31e0f7e..11e07930a9 100644 --- a/library/html.parser.po +++ b/library/html.parser.po @@ -3,7 +3,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Python 3.6\n" +"Project-Id-Version: Python 3\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" @@ -14,104 +14,141 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: ../Doc/library/html.parser.rst:2 +#: library/html.parser.rst:2 msgid ":mod:`html.parser` --- Simple HTML and XHTML parser" -msgstr "" +msgstr ":mod:`html.parser`— Un analyseur syntaxique simple pour HTML et XHTML" -#: ../Doc/library/html.parser.rst:7 +#: library/html.parser.rst:7 msgid "**Source code:** :source:`Lib/html/parser.py`" -msgstr "" +msgstr "**Code source :** :source:`Lib/html/parser.py`" -#: ../Doc/library/html.parser.rst:15 +#: library/html.parser.rst:15 msgid "" "This module defines a class :class:`HTMLParser` which serves as the basis " "for parsing text files formatted in HTML (HyperText Mark-up Language) and " "XHTML." msgstr "" +"Ce module définit une classe :class:`HTMLParser` qui sert de base pour " +"l'analyse syntaxique de fichiers texte formatés HTML (*HyperText Mark-up " +"Language*, le « langage de balisage hypertexte ») et XHTML (*EXtensible " +"HyperText Markup Language*, le « langage extensible de balisage " +"hypertexte »)." -#: ../Doc/library/html.parser.rst:20 +#: library/html.parser.rst:20 msgid "Create a parser instance able to parse invalid markup." msgstr "" +"Crée une instance d'analyseur capable de traiter tout balisage, même " +"invalide." -#: ../Doc/library/html.parser.rst:22 +#: library/html.parser.rst:22 msgid "" "If *convert_charrefs* is ``True`` (the default), all character references " "(except the ones in ``script``/``style`` elements) are automatically " "converted to the corresponding Unicode characters." msgstr "" +"Si *convert_charrefs* est ``True`` (valeur par défaut), toute référence de " +"caractère (sauf ceux enchâssés dans des éléments ``script``/``style``) est " +"automatiquement convertie en son caractère Unicode." -#: ../Doc/library/html.parser.rst:26 +#: library/html.parser.rst:26 msgid "" "An :class:`.HTMLParser` instance is fed HTML data and calls handler methods " "when start tags, end tags, text, comments, and other markup elements are " "encountered. The user should subclass :class:`.HTMLParser` and override its " "methods to implement the desired behavior." msgstr "" +"Une instance de :class:`.HTMLParser` est alimentée par des données HTML. " +"Elle fait appel à des méthodes offrant un traitement spécifique quand est " +"rencontré un élément de balisage : balise ouvrante ou fermante, textes, " +"commentaires… Pour implémenter le comportement désiré, l'utilisateur crée " +"une sous-classe de :class:`.HTMLParser` en surchargeant ses méthodes." -#: ../Doc/library/html.parser.rst:31 +#: library/html.parser.rst:31 msgid "" "This parser does not check that end tags match start tags or call the end-" "tag handler for elements which are closed implicitly by closing an outer " "element." msgstr "" +"Cet analyseur ne vérifie ni que les balises fermantes correspondent aux " +"balises ouvrantes, ni n'invoque le gestionnaire de balises fermantes pour " +"les éléments implicitement fermés par un élément extérieur." -#: ../Doc/library/html.parser.rst:34 +#: library/html.parser.rst:34 msgid "*convert_charrefs* keyword argument added." -msgstr "" +msgstr "L'argument *convert_charrefs* a été ajouté." -#: ../Doc/library/html.parser.rst:37 +#: library/html.parser.rst:37 msgid "The default value for argument *convert_charrefs* is now ``True``." msgstr "" +"La valeur par défaut de l'argument *convert_charrefs* est désormais ``True``." -#: ../Doc/library/html.parser.rst:42 +#: library/html.parser.rst:42 msgid "Example HTML Parser Application" -msgstr "" +msgstr "Exemple d'application de l'analyseur HTML" -#: ../Doc/library/html.parser.rst:44 +#: library/html.parser.rst:44 msgid "" "As a basic example, below is a simple HTML parser that uses the :class:" "`HTMLParser` class to print out start tags, end tags, and data as they are " "encountered::" msgstr "" +"Comme exemple simple, un analyseur HTML minimal qui utilise la classe :class:" +"`HTMLParser` pour afficher les balises ouvrantes, les balises fermantes " +"ainsi que les données quand elles apparaissent ::" -#: ../Doc/library/html.parser.rst:64 +#: library/html.parser.rst:64 msgid "The output will then be:" -msgstr "" +msgstr "La sortie est alors :" -#: ../Doc/library/html.parser.rst:83 +#: library/html.parser.rst:83 msgid ":class:`.HTMLParser` Methods" -msgstr "" +msgstr "Méthodes de la classe :class:`.HTMLParser`" -#: ../Doc/library/html.parser.rst:85 +#: library/html.parser.rst:85 msgid ":class:`HTMLParser` instances have the following methods:" msgstr "" +"Les instances de :class:`HTMLParser` disposent des méthodes suivantes :" -#: ../Doc/library/html.parser.rst:90 +#: library/html.parser.rst:90 msgid "" "Feed some text to the parser. It is processed insofar as it consists of " "complete elements; incomplete data is buffered until more data is fed or :" "meth:`close` is called. *data* must be :class:`str`." msgstr "" +"Alimente l'analyseur avec du texte. Ce texte est traité dans la mesure où il " +"constitue des éléments complets ; les données incomplètes sont mises dans un " +"tampon jusqu'à ce que d'autres données soient fournies ou que la méthode :" +"meth:`close` soit appelée. L'argument *data* doit être de classe :class:" +"`str`." -#: ../Doc/library/html.parser.rst:97 +#: library/html.parser.rst:97 msgid "" "Force processing of all buffered data as if it were followed by an end-of-" "file mark. This method may be redefined by a derived class to define " "additional processing at the end of the input, but the redefined version " "should always call the :class:`HTMLParser` base class method :meth:`close`." msgstr "" +"Force le traitement de toutes les données du tampon comme si elles étaient " +"suivies par un caractère *fin de fichier*. Cette méthode peut-être redéfinie " +"par une classe dérivée pour ajouter des traitements supplémentaires à la fin " +"de l'entrée, mais la version redéfinie devra impérativement appeler la " +"méthode :meth:`close` de la classe de base :class:`HTMLParser`." -#: ../Doc/library/html.parser.rst:105 +#: library/html.parser.rst:105 msgid "" "Reset the instance. Loses all unprocessed data. This is called implicitly " "at instantiation time." msgstr "" +"Réinitialise l'instance. Toutes les données non traitées sont perdues. Cette " +"méthode est appelée implicitement lors de l'instanciation." -#: ../Doc/library/html.parser.rst:111 +#: library/html.parser.rst:111 msgid "Return current line number and offset." msgstr "" +"Renvoie le numéro de ligne et le numéro du caractère dans la ligne où le " +"curseur est positionné." -#: ../Doc/library/html.parser.rst:116 +#: library/html.parser.rst:116 msgid "" "Return the text of the most recently opened start tag. This should not " "normally be needed for structured processing, but may be useful in dealing " @@ -119,21 +156,25 @@ msgid "" "(whitespace between attributes can be preserved, etc.)." msgstr "" -#: ../Doc/library/html.parser.rst:122 +#: library/html.parser.rst:122 msgid "" "The following methods are called when data or markup elements are " "encountered and they are meant to be overridden in a subclass. The base " "class implementations do nothing (except for :meth:`~HTMLParser." "handle_startendtag`):" msgstr "" +"Les méthodes suivantes sont appelées lors de la rencontre de données ou " +"d'éléments de balisage ; elles sont destinées à être surchargées par la sous-" +"classe. L'implémentation de la classe de base ne fait rien (sauf pour ce qui " +"est de :meth:`~HTMLParser.handle_startendtag`) :" -#: ../Doc/library/html.parser.rst:129 +#: library/html.parser.rst:129 msgid "" -"This method is called to handle the start of a tag (e.g. ``
``)." +"This method is called to handle the start of a tag (e.g. ``
``)." msgstr "" -#: ../Doc/library/html.parser.rst:131 +#: library/html.parser.rst:131 msgid "" "The *tag* argument is the name of the tag converted to lower case. The " "*attrs* argument is a list of ``(name, value)`` pairs containing the " @@ -141,30 +182,43 @@ msgid "" "translated to lower case, and quotes in the *value* have been removed, and " "character and entity references have been replaced." msgstr "" +"L'argument *tag* contient le nom de la balise en minuscules. L'argument " +"*attrs* contient une liste de *n-uplets* ``(name, value)`` regroupant les " +"attributs présents entre les symboles ``<`` et ``>`` de la balise. Le " +"paramètre *name* est converti en minuscule ; les guillemets sont supprimés " +"du paramètre *value* et toute entité de référence ou de caractère est " +"remplacée." -#: ../Doc/library/html.parser.rst:137 +#: library/html.parser.rst:137 msgid "" "For instance, for the tag ````, this method " "would be called as ``handle_starttag('a', [('href', 'https://www.cwi." "nl/')])``." msgstr "" +"Par exemple, pour la balise ````, cette " +"méthode est appelée par ``handle_starttag('a', [('href', 'https://www.cwi." +"nl/')])``." -#: ../Doc/library/html.parser.rst:140 +#: library/html.parser.rst:140 msgid "" "All entity references from :mod:`html.entities` are replaced in the " "attribute values." msgstr "" +"Toute référence d'entité présente dans :mod:`html.entities` est remplacée " +"dans la valeur des attributs." -#: ../Doc/library/html.parser.rst:146 +#: library/html.parser.rst:146 msgid "" "This method is called to handle the end tag of an element (e.g. ``
``)." msgstr "" +"Cette méthode est appelée pour traiter les balises fermantes (p. ex. ````)." -#: ../Doc/library/html.parser.rst:148 +#: library/html.parser.rst:148 msgid "The *tag* argument is the name of the tag converted to lower case." -msgstr "" +msgstr "L'argument *tag* est le nom de la balise en minuscules." -#: ../Doc/library/html.parser.rst:153 +#: library/html.parser.rst:153 msgid "" "Similar to :meth:`handle_starttag`, but called when the parser encounters an " "XHTML-style empty tag (````). This method may be overridden by " @@ -172,21 +226,33 @@ msgid "" "implementation simply calls :meth:`handle_starttag` and :meth:" "`handle_endtag`." msgstr "" +"Traitée de façon similaire à :meth:`handle_starttag`, mais appelée quand " +"l'analyseur rencontre une balise vide de type *XHTML* (p. ex. ````). Cette méthode peut-être surchargée par les sous-classes demandant " +"cette information lexicale ; l'implémentation par défaut appelle simplement :" +"meth:`handle_starttag` et :meth:`handle_endtag`." -#: ../Doc/library/html.parser.rst:161 +#: library/html.parser.rst:161 msgid "" "This method is called to process arbitrary data (e.g. text nodes and the " "content of ```` and ````)." msgstr "" +"Cette méthode est appelée pour traiter toute donnée arbitraire (p. ex. les " +"nœuds textuels ou les contenus de ```` et ``